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

做长图网站德州极速网站建设

做长图网站,德州极速网站建设,企业网站建设的必要性和重要性,深圳包装设计有限公司Spring Task 同学们可以看我这篇文章 Spring Task初学-CSDN博客 订单状态定时处理 新建OrderTask /*** 定时任务类,定时处理订单状态*/ Component Slf4j public class OrderTask {Autowiredprivate OrderMapper orderMapper;/*** 处理超时订单的方法*/Scheduled(c…

Spring Task

同学们可以看我这篇文章

Spring Task初学-CSDN博客

 

订单状态定时处理

新建OrderTask

/*** 定时任务类,定时处理订单状态*/
@Component
@Slf4j
public class OrderTask {@Autowiredprivate OrderMapper orderMapper;/*** 处理超时订单的方法*/@Scheduled(cron = "0 * * * * ? ") //每分钟触发一次public void processTimeoutOrder(){log.info("定时处理超市订单:{}", LocalDateTime.now());//select * from orders where status = ? and order_time < (当前时间-15分钟)LocalDateTime time = LocalDateTime.now().plusMinutes(-15);List<Orders> ordersList = orderMapper.getByStatusAndOrderTimeLT(Orders.PENDING_PAYMENT, time);if(ordersList != null && ordersList.size() > 0){for (Orders orders : ordersList) {orders.setStatus(Orders.CANCELLED);orders.setCancelReason("订单超时,自动取消");orders.setCancelTime(LocalDateTime.now());orderMapper.update(orders);}}}/*** 处理一直处于派送中状态的订单*/@Scheduled(cron = "0 0 1 * * ?") //每天凌晨1点触发一次public void processDeliveryOrder(){log.info("定时处理处于派送中的订单:{}",LocalDateTime.now());List<Orders> ordersList = orderMapper.getByStatusAndOrderTimeLT(Orders.DELIVERY_IN_PROGRESS, LocalDateTime.now().plusHours(-1));if(ordersList != null && ordersList.size() > 0){for (Orders orders : ordersList) {orders.setStatus(Orders.COMPLETED);orderMapper.update(orders);}}}
}

WebSocket

这篇文章详细讲解了WebScoket:

WebSocket初学-CSDN博客

来单提醒

只需要在paySuccess(OrderServiceIpl中)这个方法中稍微改动一下就行了,

主要是创建了一个HashMap对象map,用于存储要发送给客户端的消息内容。type字段设置为1,表示这是一个来单提醒。 orderId字段设置为订单的ID。 content字段包含订单号的文本信息。 使用JSON库(如阿里巴巴的fastjson)将map对象转换为JSON字符串json。 调用webSocketServer的sendToAllClient方法,将JSON字符串json发送给所有连接的客户端。这通常用于实时通知客户端订单状态的变更。

    /*** 支付成功,修改订单状态** @param outTradeNo*/public void paySuccess(String outTradeNo) {// 根据订单号查询订单Orders ordersDB = orderMapper.getByNumber(outTradeNo);// 根据订单id更新订单的状态、支付方式、支付状态、结账时间Orders orders = Orders.builder().id(ordersDB.getId()).status(Orders.TO_BE_CONFIRMED).payStatus(Orders.PAID).checkoutTime(LocalDateTime.now()).build();orderMapper.update(orders);//通过websocket向客户端浏览器推送消息 type orderId contentMap map = new HashMap();map.put("type",1);//1表示来单提醒,2表示用户催单map.put("orderId",ordersDB.getId());map.put("content","订单号:"+outTradeNo);String json = JSON.toJSONString(map);webSocketServer.sendToAllClient(json);}

功能测试:

 

客户催单

逻辑跟来单提醒差不多 

接口设计

user/OrdreController

    /*** 催单* @param id* @return*/@GetMapping("/reminder/{id}")@ApiOperation("催单")public Result reminder(@PathVariable Long id){orderService.reminder(id);return Result.success();}

OrderService

    /*** 催单* @param id*/void reminder(Long id);

 OrderServiceImpl

    /*** 催单* @param id*/public void reminder(Long id) {//根据id查询订单Orders ordersDB = orderMapper.getbyId(id);// 校验订单是否存在,并且状态为4if(ordersDB == null){throw new OrderBusinessException(MessageConstant.ORDER_STATUS_ERROR);}Map map = new HashMap();map.put("type",2);map.put("orderId",ordersDB.getId());map.put("content","订单号:"+ordersDB.getNumber());//通过webSocketServer向客户端浏览器推送消息webSocketServer.sendToAllClient(JSON.toJSONString(map));}

功能测试

http://www.yayakq.cn/news/447612/

相关文章:

  • 专业做网站的公司有企业形象网站模板
  • 公司网站设计与制网站开发用什么代码
  • 如何建自己网站wordpress设置页面加载js
  • 建设厅网站更改登陆密码东莞网站建设平台
  • 做网站制作利润有多少网站栏目页面
  • 做网站的功能结构布局制作网页首页教程
  • 如何利用网络平台挣钱搜索引擎优化的五个方面
  • 制作网站入门wordpress静态ip
  • 建设一个个人网站不需要网站建设商城制作
  • 宜都市网站建设qianhu微建站
  • 有哪个网站做正品港货怎么制作网页快捷方式
  • 上海官方网站建设做班级相册网站的目的意义
  • 青海企业网站开发定制深圳公司名称核准查询
  • 金属材料东莞网站建设php 视频播放网站开发
  • 杭州网站的特点大鹏网站建设建站好不好
  • 苏州大型网站建设wordpress 响应式图片
  • 网站登录界面用什么软件做学习吧网站
  • 静态网站教程wordpress qq stmp
  • 去年做那些网站能致富标识设计师
  • 铁道部建设监理协会网站企业在网站推广
  • 大学生做网站和做app做网站需要几步
  • 外贸网站设计制作怎样做网站 app教程
  • 衡阳网站制作公司温州建设工程网站
  • 白山网站建设怎么在小程序里开店铺
  • 大连 手机网站案例建设银行 钓鱼网站
  • 网站建设技术方案wordpress 魔
  • 青岛网站排名多少钱做财务还是网站运营
  • 淘宝客网站需要备案吗白菜博主的返利网站怎么做
  • 郑州制作网站wordpress 修改登录页面
  • 吉林网络公司网站建设网站影响seo的标签