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

网上书店网站开发南宁微网站制作需要多少钱

网上书店网站开发,南宁微网站制作需要多少钱,排行网站模板,那里可以做PC28网站的文章目录 前言SpringTask介绍SpringTask_corn表达式Spring_Task入门案例 订单状态定时处理需求分析代码开发功能测试 WebScoket介绍入门案例 来单提醒需求分析代码开发功能测试 客户催单代码开发功能测试 前言 本章实现的业务功能 超时未支付订单自动取消#xff0c;配送中订… 文章目录 前言SpringTask介绍SpringTask_corn表达式Spring_Task入门案例 订单状态定时处理需求分析代码开发功能测试 WebScoket介绍入门案例 来单提醒需求分析代码开发功能测试 客户催单代码开发功能测试 前言 本章实现的业务功能 超时未支付订单自动取消配送中订单商家忘点完成自动再固定时间检查且修改成完成状态 来单提醒功能 催单提醒功能 SpringTask 介绍 SpringTask_corn表达式 一般的话周几和第几日是不能同时出现的 因为比如 4月15日 周四 可能4月15日不是周四 可能冲突的 所以周和日一般只能有一个 现在有这种生成表达式的网站 其实还挺复杂的建议看个视频稍微学一下怎么用这个网站 Spring_Task入门案例 使用springtask主要关注 1.cron表达式 2.内部处理逻辑 spring_Task挺小的一个框架是没有自己的jar包的集成在了spring_context这个包里面 自定义的定时任务类 订单状态定时处理 需求分析 合理一点你派送中订单不能12点弄的一般这个时候有很多是真的在派送中的 代码开发 com.sky.Task.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分钟)ListOrders ordersList orderMapper.getByStatusAndOrderTimeLT(Orders.PENDING_PAYMENT, LocalDateTime.now().plusMinutes(-15));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 * * ?)//每天凌晨一点触发一次public void processDeliveryOrder(){log.info(定时处理处于派送中的订单:{},LocalDateTime.now());ListOrders ordersList orderMapper.getByStatusAndOrderTimeLT(Orders.DELIVERY_IN_PROGRESS, LocalDateTime.now().plusMinutes(-60));if(ordersList ! null ordersList.size() 0){for (Orders orders : ordersList) {orders.setStatus(Orders.COMPLETED);orderMapper.update(orders);}}} } ordermapper /***根据订单状态和订单时间查询订单* return*/Select(select * from orders where status#{status} and order_time #{orderTime} )ListOrders getByStatusAndOrderTimeLT(Integer status, LocalDateTime orderTime);功能测试 略 这个运行然后看数据库 弄几个status为1待支付的订单然后等到它自动处理看看能不能取消 然后那个配送的可以改一下那个cron表达式不用真的等到1点 WebScoket 介绍 入门案例 com.sky.webscoket.WebSocketServer 前三个方法 1. 建立连接 2.进行通话 3.结束连接 最后一个是 服务端向客户端发送信息的方法需要自己调用 所以没有注解标识 package com.sky.webscoket;/*** WebSocket服务*/ Component ServerEndpoint(/ws/{sid}) public class WebSocketServer {//存放会话对象private static MapString, Session sessionMap new HashMap();/*** 连接建立成功调用的方法*/OnOpenpublic void onOpen(Session session, PathParam(sid) String sid) {System.out.println(客户端 sid 建立连接);sessionMap.put(sid, session);}/*** 收到客户端消息后调用的方法** param message 客户端发送过来的消息*/OnMessagepublic void onMessage(String message, PathParam(sid) String sid) {System.out.println(收到来自客户端 sid 的信息: message);}/*** 连接关闭调用的方法** param sid*/OnClosepublic void onClose(PathParam(sid) String sid) {System.out.println(连接断开: sid);sessionMap.remove(sid);}/*** 群发** param message*/public void sendToAllClient(String message) {CollectionSession sessions sessionMap.values();for (Session session : sessions) {try {//服务器向客户端发送消息session.getBasicRemote().sendText(message);} catch (Exception e) {e.printStackTrace();}}}} 给这个bean注册一下 弄个Task来模拟服务端发消息 然后自己运行一下看效果 来单提醒 需求分析 代码开发 修改OrderServiceImpl的代码 在PaySuccess下新增推送消息即可 新增的 //通过websocket向客户端浏览器推送消息!!!!!!!!!Map map new HashMap();map.put(type,1);//type1表示来单提醒 2表示客户催单map.put(orderId,ordersDB.getId());map.put(content,订单号 outTradeNo);String json JSON.toJSONString(map);webSocketServer.sendToAllClient(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向客户端浏览器推送消息!!!!!!!!!Map map new HashMap();map.put(type,1);//type1表示来单提醒 2表示客户催单map.put(orderId,ordersDB.getId());map.put(content,订单号 outTradeNo);String json JSON.toJSONString(map);webSocketServer.sendToAllClient(json);}功能测试 这个略显难受 因为我们实际上没有实现微信支付接口 所以我们要更改一下逻辑的 小程序前端 if (res.code 1) {wx.showModel({title: 提示,content: 支付成功,success:function(){uni.redirectTo({url: /pages/success/index?orderId _this.orderId });}})// wx.requestPayment({// nonceStr: res.data.nonceStr,// package: res.data.packageStr,// paySign: res.data.paySign,// timeStamp: res.data.timeStamp,// signType: res.data.signType,// success:function(res){// wx.showModal({// title: 提示,// content: 支付成功,// success:function(){// uni.redirectTo({url: /pages/success/index?orderId _this.orderId });// }// })// console.log(支付成功!)// }// })// 直接重新定向不用微信支付 //这里的代码移到前面OrderController OrderServiceImpl 效果就会是你点击确定支付就会直接支付成功 且不会跳出那个支付成功的页面 客户催单 代码开发 controller /*** 客户催单* param id* return*/ApiOperation(客户催单)GetMapping(/reminder/{id})public Result reminder(PathVariable Long id){orderService.reminder(id);return Result.success();}serviceimpl /*** 用户催单* param id*/public void reminder(Long id) {// 根据id查询订单Orders ordersDB orderMapper.getById(id);// 校验订单是否存在if (ordersDB null) {throw new OrderBusinessException(MessageConstant.ORDER_STATUS_ERROR);}Map map new HashMap();map.put(type,2);//1表示来单提醒 2表示客户催单map.put(orderId,id);map.put(content,订单号:ordersDB.getNumber());String json JSON.toJSONString(map);webSocketServer.sendToAllClient(json);}功能测试 催单去个人中心的订单找 然后我这个没报语音后来我换了edge浏览器就可以了
http://www.zqtcl.cn/news/944016/

相关文章:

  • 京东商城网站怎么做静态网页有什么特点
  • 网站上线准备工作网站源码运行
  • 视频剪辑自学网站wordpress怎样改头像
  • 女装网站模板青岛开发区网站
  • dede网站后台海外网络服务器
  • 三合一企业网站模板wordpress做的外贸网站
  • 常州做企业网站的公司亚马逊雨林有原始部落吗
  • 临沂网站设计哪家好qq浏览器网页版进入
  • seo资料站哔哩哔哩官方网站首页
  • 前端怎么做网站万网域名管理入口
  • asp.net 做网站实例特别酷炫网站
  • 个人网站的内容网页设计图片显示不出来怎么弄
  • 福建省建设人才与科技发展中心网站首页关于制作网站收费标准
  • 什么软件可以发帖子做推广中山优化网站
  • 中山网站建设开发网络营销的基本功能
  • 温州平阳县网站建设兼职免费下载简历模板
  • 导购网站 转化率wordpress 拓展
  • 美文分享网站源码互联网网站建设
  • 做网站用php还是python建设网站价格
  • 平台网站怎么做诱导网站怎么做
  • 网站建设人员构成网址申请域名
  • 微网站建设找哪家公司好郑州一凡网站建设
  • 江阴网站制作公司泉州网站建设论坛
  • 最新章节 62.一起来做网站吧时钟插件+wordpress
  • 惠州市建设规划局网站网页设计实训报告word
  • 大众汽车网站建设鳌江网站建设
  • 佛山外贸网站建设公司网站与网页区别
  • HTML网站建设课程微商怎么做网站
  • 专业数据分析网站wordpress 很差
  • 请人做个网站多少钱google推广妙招