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

网站开发的实践报告石家庄市工程勘察设计咨询业协会

网站开发的实践报告,石家庄市工程勘察设计咨询业协会,wordpress允许上传rar,廊坊网站建设方案服务2-19 WebSocket&来单提醒&客户催单 01 07-WebSocket_介绍 02 08-WebSocket_入门案例 04 10-来单提醒_需求分析和设计 05 11-来单提醒_代码开发 这一步操作就是服务端和客户端握手的链接 这个请求是先请求到nginx再转发到后端的 ,nginx配置如下:…

2-19 WebSocket&来单提醒&客户催单

01 07-WebSocket_介绍

02 08-WebSocket_入门案例

04 10-来单提醒_需求分析和设计

 

05 11-来单提醒_代码开发

这一步操作就是服务端和客户端握手的链接

这个请求是先请求到nginx再转发到后端的 ,nginx配置如下:

 最后还是请求到8080的。

具体的请求方法应该写在支付成功的方法中,来将订单传输给服务器。


以下对paysuccess方法进行补足:

  //通过websocket向客户端浏览器推送消息 type orderId contentMap map = new HashMap();map.put("type", 2);map.put("orderId", ordersDB.getId());map.put("content", "订单号:" + outTradeNo);String  json = JSON.toJSONString(map);webSocketServer.sendToAllClient(json);

07 13-客户催单_需求分析和设计

08 14-客户催单_代码开发

代码实现如下:

@Overridepublic 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",id);map.put("content","订单号:"+ordersDB.getNumber());//  通过websocket发送消息webSocketServer.sendToAllClient(JSON.toJSONString(map));}

2-20 营业额统计

01 01-Apache ECharts_介绍

03 03-营业额统计_需求分析和设计

04 04-营业额统计_代码开发

package com.sky.controller.admin;import com.sky.result.Result;
import com.sky.service.ReportService;
import com.sky.vo.TurnoverReportVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.time.LocalDate;@RestController
@RequestMapping("/admin/report")
@Api(tags = "数据统计接口")
@Slf4j
public class ReportController {@Autowiredprivate ReportService reportService;/*** 营业额统计* @param begin* @param end* @return*/@GetMapping("/turnoverStatistics")@ApiOperation("营业额统计")public Result<TurnoverReportVO> turnoverStatistics(@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin,@DateTimeFormat(pattern = "yyyy-MM-dd")LocalDate end) {log.info("查询营业额数据:{}到{}", begin, end);TurnoverReportVO turnoverReportVO = reportService.getTurnoverStatistics(begin, end);return Result.success(turnoverReportVO);}
}package com.sky.service.impl;import com.sky.entity.Orders;
import com.sky.mapper.OrderMapper;
import com.sky.service.ReportService;
import com.sky.vo.TurnoverReportVO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;@Service
@Slf4j
public class ReportServiceImpl implements ReportService {@Autowiredprivate OrderMapper orderMapper;/*** 营业额统计* @param begin* @param end* @return*/@Overridepublic TurnoverReportVO getTurnoverStatistics(LocalDate begin, LocalDate end) {log.info("查询营业额数据:{}到{}", begin, end);//创建一个集合用于存放begin到end范围内每天的日期List<LocalDate> dateList = new ArrayList<>();dateList.add(begin);while (!begin.equals(end)) {begin = begin.plusDays(1);dateList.add(begin);}//日期计算可以通过上述的方式实现遍历累加//存放每天营业额List<Double> turnoverList = new ArrayList<>();for (LocalDate date : dateList) {//查询date日期对应的营业额//select sum(amount) from orders where order_time > begin and order_time < end and status  = 5LocalDateTime beginTime = LocalDateTime.of(date, LocalTime.MIN);LocalDateTime endTime = LocalDateTime.of(date, LocalTime.MAX);Map map= new HashMap<>();map.put("begin", beginTime);map.put("end", endTime);map.put("status", Orders.COMPLETED);Double turnover = orderMapper.sumByMap(map);turnover = turnover == null ? 0.0 : turnover;//如果turnover为null,则赋值为0.0 不然就是他自己,防止空指针异常turnoverList.add(turnover);}return TurnoverReportVO.builder().dateList(StringUtils.join(dateList, ",")).build();}
}

http://www.dtcms.com/a/473397.html

相关文章:

  • TensorFlow深度学习实战——图分类
  • SAP MM采购信息记录维护接口分享
  • 网站搭建装修风格大全2021新款简约
  • Mysql初阶第八讲:Mysql表的内外连接
  • SpringCloud 入门 - Gateway 网关与 OpenFeign 服务调用
  • uniapp 选择城市(城市列表选择)
  • AR小白入门指南:从零开始开发增强现实应用
  • 02_k8s资源清单
  • 2025年渗透测试面试题总结-109(题目+回答)
  • uniapp配置自动导入uni生命周期等方法
  • flink的Standalone-HA模式安装
  • Flink时态表关联:实现数据“时间旅行”的终极方案
  • 做哪类英文网站赚钱wordpress 页面 列表
  • nginx + spring cloud + redis + mysql + ELFK 部署
  • 【黑马点评 - 实战篇01】Redis项目实战(Windows安装Redis6.2.6 + 发送验证码 + 短信验证码登录注册 + 拦截器链 - 登录校验)
  • 汕头市通信建设管理局网站二网站手
  • FreeRTOS小记
  • 数据结构实战:顺序表全解析 - 从零实现到性能分析
  • 【C++进阶】继承上 概念及其定义 赋值兼容转换 子类默认成员函数的详解分析
  • 华为matebook16s 2022禁用触摸板和触摸屏操作
  • GridRow 和 Column 有啥区别
  • 030159网站建设与维护中国科技成就素材
  • Echarts 5.6.0 Grid 坐标系中 Y 轴可视化的优化之路
  • Java 线程池如何知道一个线程的任务已经执行完成
  • JVM字节码与类的加载(一):类的加载过程详解
  • 强军网网站建设网站需要备案才能建设吗
  • 耄大厨——AI厨师智能体(3-工具调用)
  • (二)黑马React(导航/账单项目)
  • SA-LSTM
  • 【Java并发】深入理解synchronized