当前位置: 首页 > news >正文

做家教中介 不建网站怎么做推广网络营销外包公司

做家教中介 不建网站怎么做,推广网络营销外包公司,网络课程系统网站建设费用,烟台网站建设哪家好文章目录 概要整体架构流程技术细节小结 概要 订单定时状态处理通常涉及到对订单状态进行定期检查,并根据订单的状态自动执行某些操作,比如关闭未支付的订单、自动确认收货等. 需求分析以及接口设计 需求分析 用户下单后可能存在的情况: …

文章目录

    • 概要
    • 整体架构流程
    • 技术细节
    • 小结

概要

订单定时状态处理通常涉及到对订单状态进行定期检查,并根据订单的状态自动执行某些操作,比如关闭未支付的订单、自动确认收货等.

需求分析以及接口设计

需求分析

用户下单后可能存在的情况:

  • 下单后15min内未支付,订单一直处于“待支付”状态

  • 用户收货后管理端未点击完成按钮,订单一直处于“派送中”状态

技术细节

对于上面两种情况需要通过定时任务来修改订单状态,具体逻辑为:

  • 通过定时任务每分钟检查一次是否存在支付超时订单(下单后超过15分钟仍未支付则判定为支付超时订单),如果存在则修改订单状态为“已取消”

  • 通过定时任务每天凌晨1点检查一次是否存在“派送中”的订单,如果存在则修改订单状态为“已完成”

1.task:

由于Springtask定时状态处理不需要通过接口调用,是自动执行的,所以不需要controller层

package com.sky.task;import com.sky.entity.Orders;
import com.sky.mapper.OrderMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;import java.time.LocalDateTime;
import java.util.List;@Component//加入Spring容器
@Slf4j
public class OrderTask {@Autowiredprivate OrderMapper orderMapper;@Scheduled(cron = "0 * * * * ?")//每分钟执行一次public void processTimeOutOrder(){log.info("定时处理订单超时的订单");LocalDateTime orderTime = LocalDateTime.now().plusMinutes(-15);//查询到未支付且超时的订单List<Orders> ordersList = orderMapper.getByStatusAndOrderTimeLT(Orders.UN_PAID,orderTime);//遍历这些订单,更改他们的状态,取消时间和取消原因,再更新表if(ordersList != null && ordersList.size() > 0){for (Orders orders : ordersList) {orders.setStatus(Orders.CANCELLED);orders.setCancelTime(LocalDateTime.now());orders.setCancelReason("订单超时,已被自动取消");orderMapper.update(orders);}}}@Scheduled(cron = "0 0 1 * * ? ")//每天凌晨一点执行一次public void processDeliveryOrder(){log.info("定时处理派送中的订单");LocalDateTime orderTime = LocalDateTime.now().plusMinutes(60);//每天凌晨0点执行一次//查询到正在派送的订单List<Orders> ordersList = orderMapper.getByStatusAndOrderTimeLT(Orders.DELIVERY_IN_PROGRESS,orderTime);//遍历这些订单,更改他们的状态,取消时间和取消原因,再更新表if(ordersList != null && ordersList.size() > 0){for (Orders orders : ordersList) {orders.setStatus(Orders.COMPLETED);orderMapper.update(orders);}}}}

2.Mapper层:

@Select("select * from `sky-take-out`.orders where status = #{status} and order_time < #{orderTime}")List<Orders> getByStatusAndOrderTimeLT(Integer status, LocalDateTime orderTime);

效果展示

http://www.mmbaike.com/news/31984.html

相关文章:

  • wordpress主题站模板下载国际购物网站平台有哪些
  • 萍乡做网站哪家好自己怎么给网站做优化排名
  • 建设项目验收网站app推广拉新一手渠道
  • 德勤管理咨询seo收费
  • 网站开发的晋升晋升空间路径长沙疫情最新情况
  • WordPress音乐免刷新百度seo官方网站
  • 平果县免费网站哪家好下载百度官方版
  • 婚介网站模板线上推广的公司
  • 现在的网站开发方式现在有什么技能培训班
  • 做网站制作外包优化网站排名需要多少钱
  • 树莓派做网站服务器怎样seo的特点是什么
  • 网站开发算是软件开发企业网络推广的方式有哪些
  • 你的网站正在建设中seo网络营销外包
  • 营销网站建设流程图优秀网站设计网站
  • 加盟型网站sem推广托管公司
  • 网站子域名查询北京搜索优化排名公司
  • 商融交通建设工程有限公司网站线上营销推广公司
  • 广州模板建站公司拉新推广赚钱的app
  • 影视网站模板怎么做深圳精准网络营销推广
  • 项目融资平台seo搜索引擎优化业务
  • 做企业网站需要提供什么资料武汉百度开户电话
  • 已经备案的网站新增ip怎么做阿里指数查询官网
  • 去哪个网站做职业测试好亚马逊关键词搜索器
  • 庆阳网站建设百度指数有什么作用
  • 广州建站模板搭建脚上起小水泡还很痒是什么原因
  • 阿里云域名备案网站建设方案书电商沙盘seo裤子关键词
  • 漳州网站建设中国百强城市榜单
  • 本地网站做哪方面吸引人徐州百度推广总代理
  • 自己做电影网站需要什么武汉seo服务
  • 做摄影的网站知乎seo关键词排名优化怎样收费