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

找别人做网站可靠吗百度指数网页版

找别人做网站可靠吗,百度指数网页版,python做网站的开发,网页设计公司怎么赚钱文章目录 Spring Task介绍cron表达式入门案例 订单状态定时处理需求分析代码开发功能测试 WebSocket介绍入门案例 来单提醒需求分析代码开发 客户催单需求分析代码开发 Spring Task 介绍 cron表达式 入门案例 订单状态定时处理 需求分析 代码开发 新建一个task包里面编写代码…

文章目录

  • Spring Task
    • 介绍
    • cron表达式
    • 入门案例
  • 订单状态定时处理
    • 需求分析
    • 代码开发
    • 功能测试
  • WebSocket
    • 介绍
    • 入门案例
  • 来单提醒
    • 需求分析
    • 代码开发
  • 客户催单
    • 需求分析
    • 代码开发

Spring Task

介绍

在这里插入图片描述
在这里插入图片描述

cron表达式

在这里插入图片描述

入门案例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

订单状态定时处理

在这里插入图片描述

需求分析

在这里插入图片描述

代码开发

新建一个task包里面编写代码。

package com.sky.task;/***定时任务类*/
@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 * * ?")//每天凌晨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);}}}
}

Mapper接口

    /*** 查询处理超时订单* @return*/@Select("select * from orders where status = #{status} and order_time < #{orderTime}")List<Orders> getByStatusAndOrderTimeLT(Integer status, LocalDateTime orderTime);

功能测试

在这里插入图片描述

WebSocket

介绍

在这里插入图片描述
在这里插入图片描述

入门案例

在这里插入图片描述
新建一个websocket包导入代码

package com.sky.websocket;import org.springframework.stereotype.Component;
import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;/*** WebSocket服务* 这个类使用了 @Component 注解,表明它是一个 Spring 管理的组件。* @ServerEndpoint("/ws/{sid}") 注解表示这是一个 WebSocket 端点,路径为 /ws/{sid},其中 {sid} 是一个占位符。* 在 onOpen 方法中,当有新的 WebSocket 连接建立时,将该连接的 Session 存储在 sessionMap 中。* 在 onMessage 方法中,当收到客户端消息时,进行处理。* 在 onClose 方法中,当连接关闭时,从 sessionMap 中移除相应的 Session。* 提供了 sendToAllClient 方法,用于向所有连接的客户端广播消息。*/
@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();}}}}

导入配置类

/*** WebSocket配置类,用于注册WebSocket的Bean*/
@Configuration
public class WebSocketConfiguration {/*** WebSocket 配置类(WebSocketConfiguration):* 这个配置类使用了 @Configuration 注解,表明它是一个配置类,Spring 会在启动时加载并处理它。* 通过 @Bean 注解,它创建了一个 ServerEndpointExporter Bean,该 Bean 是 Spring WebSocket 标准的端点导出器。* ServerEndpointExporter 的作用是将使用 @ServerEndpoint 注解声明的 WebSocket 端点注册到 Spring 容器中。* @return*/@Beanpublic ServerEndpointExporter serverEndpointExporter() {return new ServerEndpointExporter();}}

关系分析:

WebSocketConfiguration 中的 ServerEndpointExporter Bean 的存在,使得 Spring 能够自动检测并注册 WebSocketServer 中使用 @ServerEndpoint 注解声明的 WebSocket 端点。
WebSocketServer 类中通过 @ServerEndpoint 注解声明了一个 WebSocket 端点,并提供了处理连接建立、消息接收、连接关闭等逻辑。
当有新的 WebSocket 连接建立时,WebSocketServer 中的 onOpen 方法会被调用,将该连接的 Session 存储在 sessionMap 中。
当需要向所有客户端广播消息时,WebSocketServer 中的 sendToAllClient 方法会遍历 sessionMap,向每个客户端发送消息。
因此,通过 WebSocketConfiguration 的配置,WebSocketServer 中的 WebSocket 端点得以自动注册,而且可以在整个应用程序中共享 WebSocketServer 的实例。

来单提醒

需求分析

在这里插入图片描述
在这里插入图片描述

代码开发

在OrderService实现类中的函数修改

    /*** 支付成功,修改订单状态** @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);//转成json字符串String jsonString = JSON.toJSONString(map);webSocketServer.sendToAllClient(jsonString);}

客户催单

需求分析

在这里插入图片描述

代码开发

Controller层`

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

Service实现类

        /*** 客户催单* @param id*/@Overridepublic void reminder(Long id) {//根据id查询订单Orders orders = orderMapper.getByOrderId(id);//校验订单是否存在if (orders == 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", "订单号:" + orders.getNumber());//通过websocket向客户端浏览器推送消息webSocketServer.sendToAllClient(JSONObject.toJSONString(map));}
http://www.ahscrl.com/news/307.html

相关文章:

  • 带会员中心的WordPress主题搜索引擎seo是什么
  • 常州哪家做网站便宜百度怎么提交收录
  • html5网站提示软文广告例子
  • 天津建设银行网站首页免费的外贸网站推广方法
  • 师德师风建设好的小学网站企业邮箱怎么注册
  • wang域名的网站百度一下百度搜索官网
  • 可以找人帮忙做设计的网站关键词检测
  • 重庆网站建设 渝icp广州私人做网站
  • 一起做网站女装夏季蜜雪冰城网络营销案例分析
  • 大型购物网站建设费用太原搜索引擎优化招聘信息
  • 连云港做网站推广优化设计七年级下册数学答案
  • 做网站的流程前端做什么软文推广名词解释
  • 304hk 爱站网班级优化大师手机版下载(免费)
  • vs做网站头部的代码怎么样进行网络推广
  • gif网站素材今日最新的新闻
  • 南京网站建设价格学计算机哪个培训机构好
  • php mysql 企业网站源码网站生成器
  • 济南做网站多钱网站开发用什么语言
  • 唐山市网站建设公司网站推广技巧
  • 荷兰网站后缀网店运营推广中级实训
  • html查询网站制作湖南正规关键词优化
  • Wordpress图片热点搜索引擎优化名词解释
  • 模板建站总公司北京网讯百度科技有限公司
  • 网站建设自建的优点国内搜索引擎排名第一的是
  • 门户网站做pos机百度网站官网
  • 做的比较好的网站企业网站设计模板
  • centos6.6做网站搜索引擎提交入口大全
  • 手机网站设计只找亿企邦360地图怎么添加商户
  • 网站移动端的设计思想百度关键词搜索量统计
  • 优惠券精选网站怎么做西安网络科技公司排名