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

垂直网站 开源码网站被攻击怎么让百度重新蜘蛛自动抓

垂直网站 开源码,网站被攻击怎么让百度重新蜘蛛自动抓,空间网站,机械东莞网站建设文章目录 前言SpringTask介绍SpringTask_corn表达式Spring_Task入门案例 订单状态定时处理需求分析代码开发功能测试 WebScoket介绍入门案例 来单提醒需求分析代码开发功能测试 客户催单代码开发功能测试 前言 本章实现的业务功能 超时未支付订单自动取消,配送中订…

文章目录

  • 前言
  • 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分钟)List<Orders> 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());List<Orders> 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} ")List<Orders> 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 Map<String, 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) {Collection<Session> 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.yayakq.cn/news/417075/

相关文章:

  • 网站托管维护方案做网站设计挣钱吗
  • 临沭有做网站的吗知名企业网站搭建
  • 做外贸营销网站设计公司官网需要发什么
  • 品牌网站设计标准搜索引擎优化的作用是什么
  • 网站后台全能模板企业网站页面
  • 新手容易上手的cms做企业网站wordpress添加幻灯片
  • 做怎个样网做站个网站网站建设需要注意的事情
  • 网站刷排名工具微信网站搭建哪家好
  • 网站建设方案多少钱个人业务网站免费制作
  • 网站ip段屏蔽建设的网站后台会自动退出是正常的
  • 找在家做的兼职上什么网站好威海网站开发
  • 西安网站设计公司排名app软件开发价目表
  • 东营垦利成都搜狗seo
  • 网站开发北京公司wordpress建站教程新手
  • 网站哪个语言好wordpress调用分类id
  • 建设网站首页应该采用东莞模板建站哪家好
  • 做电商网站哪家好网址没封的来一个
  • 有教做鱼骨图的网站吗wordpress 挂马漏洞
  • 图书网站建设实训总结ps网站头部
  • 阿里云服务器可以做多少个网站南阳seo网站价格
  • 如何设计商务网站前程无忧网杭州网站建设类岗位
  • 网站界面优化学会网站建设项目
  • 建网站怎么赚流量知名的咨询行业网站制作
  • 如何找网站推广专业网站建设模板
  • 做了网站应该如何推广专业排名优化公司
  • 博星卓越网站建设实验代码wordpress dux商城
  • 安徽省建设工程网站建网站和开发网站
  • 网站被做301跳转了怎么办uc官方网站开发者中心
  • 晋江网站建设企业公司的网站建设服务费
  • 专业设计网站排名广州网络推广定制