96SEO 2026-02-19 20:51 7
历史订单可以根据订单状态查询展示订单数据时需要展示的数据包括下单时间、订单状态、订单金额、订单明细商品名称、图片

return*/GetMapping(/historyOrders)ApiOperation(历史订单查询)public
orderService.pageQuery4User(page,
设置分页PageHelper.startPage(pageNum,
OrdersPageQueryDTO();ordersPageQueryDTO.setUserId(BaseContext.getCurrentId());ordersPageQueryDTO.setStatus(status);//
orderMapper.pageQuery(ordersPageQueryDTO);ListOrderVO
orderDetailMapper.getByOrderId(orderId);OrderVO
OrderVO();BeanUtils.copyProperties(orders,
orderVO);orderVO.setOrderDetailList(orderDetails);list.add(orderVO);}}return
return*/GetMapping(/orderDetail/{id})ApiOperation(查询订单详情)public
orderService.details(id);return
orderDetailMapper.getByOrderId(orders.getId());//
OrderVO();BeanUtils.copyProperties(orders,
orderVO);orderVO.setOrderDetailList(orderDetailList);return
待支付和待接单状态下用户可直接取消订单商家已接单状态下用户取消订单需电话沟通商家派送中状态下用户取消订单需电话沟通商家如果在待接单状态下取消订单需要给用户退款取消订单后需要将订单状态修改为“已取消”
return*/PutMapping(/cancel/{id})ApiOperation(取消订单)public
{orderService.userCancelById(id);return
OrderBusinessException(MessageConstant.ORDER_NOT_FOUND);}//订单状态
OrderBusinessException(MessageConstant.ORDER_STATUS_ERROR);}Orders
Orders();orders.setId(ordersDB.getId());//
(ordersDB.getStatus().equals(Orders.TO_BE_CONFIRMED))
{//调用微信支付退款接口weChatPayUtil.refund(ordersDB.getNumber(),
BigDecimal(0.01));//原订单金额//支付状态修改为
退款orders.setPayStatus(Orders.REFUND);}//
更新订单状态、取消原因、取消时间orders.setStatus(Orders.CANCELLED);orders.setCancelReason(用户取消);orders.setCancelTime(LocalDateTime.now());orderMapper.update(orders);}
return*/PostMapping(/repetition/{id})ApiOperation(再来一单)public
{orderService.repetition(id);return
orderDetailMapper.getByOrderId(id);//
将订单详情对象转换为购物车对象ListShoppingCart
将原订单详情里面的菜品信息重新复制到购物车对象中BeanUtils.copyProperties(x,
id);shoppingCart.setUserId(userId);shoppingCart.setCreateTime(LocalDateTime.now());return
shoppingCart;}).collect(Collectors.toList());//
将购物车对象批量添加到数据库shoppingCartMapper.insertBatch(shoppingCartList);}
separator,(#{sc.name},#{sc.image},#{sc.userId},#{sc.dishId},#{sc.setmealId},#{sc.dishFlavor},#{sc.number},#{sc.amount},#{sc.createTime})/foreach
输入订单号/手机号进行搜索支持模糊搜索根据订单状态进行筛选下单时间进行时间筛选搜索内容为空提示未找到相关订单搜索结果页展示包含搜索关键词的内容分页展示搜索到的订单数据
RestController(adminOrderController)
return*/GetMapping(/conditionSearch)ApiOperation(订单搜索)public
conditionSearch(OrdersPageQueryDTO
orderService.conditionSearch(ordersPageQueryDTO);return
conditionSearch(OrdersPageQueryDTO
conditionSearch(OrdersPageQueryDTO
{PageHelper.startPage(ordersPageQueryDTO.getPage(),
ordersPageQueryDTO.getPageSize());PageOrders
orderMapper.pageQuery(ordersPageQueryDTO);//
部分订单状态需要额外返回订单菜品信息将Orders转化为OrderVOListOrderVO
需要返回订单菜品信息自定义OrderVO响应结果ListOrderVO
(!CollectionUtils.isEmpty(ordersList))
OrderVO();BeanUtils.copyProperties(orders,
将订单菜品信息封装到orderVO中并添加到orderVOListorderVO.setOrderDishes(orderDishes);orderVOList.add(orderVO);}}return
查询订单菜品详情信息订单中的菜品和数量ListOrderDetail
orderDetailMapper.getByOrderId(orders.getId());//
将每一条订单菜品信息拼接为字符串格式宫保鸡丁*3ListString
orderDish;}).collect(Collectors.toList());//
return*/GetMapping(/statistics)ApiOperation(各个状态的订单数量统计)public
orderService.statistics();return
Result.success(orderStatisticsVO);}
根据状态分别查询出待接单、待派送、派送中的订单数量Integer
orderMapper.countStatus(Orders.TO_BE_CONFIRMED);Integer
orderMapper.countStatus(Orders.CONFIRMED);Integer
orderMapper.countStatus(Orders.DELIVERY_IN_PROGRESS);//
将查询出的数据封装到orderStatisticsVO中响应OrderStatisticsVO
OrderStatisticsVO();orderStatisticsVO.setToBeConfirmed(toBeConfirmed);orderStatisticsVO.setConfirmed(confirmed);orderStatisticsVO.setDeliveryInProgress(deliveryInProgress);return
订单详情页面需要展示订单基本信息状态、订单号、下单时间、收货人、电话、收货地址、金额等订单详情页面需要展示订单明细数据商品名称、数量、单价
return*/GetMapping(/details/{id})ApiOperation(查询订单详情)public
orderService.details(id);return
return*/PutMapping(/confirm)ApiOperation(接单)public
{orderService.confirm(ordersConfirmDTO);return
Orders.builder().id(ordersConfirmDTO.getId()).status(Orders.CONFIRMED).build();orderMapper.update(orders);}
商家拒单其实就是将订单状态修改为“已取消”只有订单处于“待接单”状态时可以执行拒单操作商家拒单时需要指定拒单原因商家拒单时如果用户已经完成了支付需要为用户退款
return*/PutMapping(/rejection)ApiOperation(拒单)public
{orderService.rejection(ordersRejectionDTO);return
orderMapper.getById(ordersRejectionDTO.getId());//
!ordersDB.getStatus().equals(Orders.TO_BE_CONFIRMED))
OrderBusinessException(MessageConstant.ORDER_STATUS_ERROR);}//支付状态Integer
weChatPayUtil.refund(ordersDB.getNumber(),ordersDB.getNumber(),new
BigDecimal(0.01));log.info(申请退款{},
拒单需要退款根据订单id更新订单状态、拒单原因、取消时间Orders
Orders();orders.setId(ordersDB.getId());orders.setStatus(Orders.CANCELLED);orders.setRejectionReason(ordersRejectionDTO.getRejectionReason());orders.setCancelTime(LocalDateTime.now());orderMapper.update(orders);}
取消订单其实就是将订单状态修改为“已取消”商家取消订单时需要指定取消原因商家取消订单时如果用户已经完成了支付需要为用户退款
return*/PutMapping(/cancel)ApiOperation(取消订单)public
{orderService.cancel(ordersCancelDTO);return
orderMapper.getById(ordersCancelDTO.getId());//支付状态Integer
weChatPayUtil.refund(ordersDB.getNumber(),ordersDB.getNumber(),new
BigDecimal(0.01));log.info(申请退款{},
管理端取消订单需要退款根据订单id更新订单状态、取消原因、取消时间Orders
Orders();orders.setId(ordersCancelDTO.getId());orders.setStatus(Orders.CANCELLED);orders.setCancelReason(ordersCancelDTO.getCancelReason());orders.setCancelTime(LocalDateTime.now());orderMapper.update(orders);}
派送订单其实就是将订单状态修改为“派送中”只有状态为“待派送”的订单可以执行派送订单操作
return*/PutMapping(/delivery/{id})ApiOperation(派送订单)public
{orderService.delivery(id);return
!ordersDB.getStatus().equals(Orders.CONFIRMED))
OrderBusinessException(MessageConstant.ORDER_STATUS_ERROR);}Orders
Orders();orders.setId(ordersDB.getId());//
更新订单状态,状态转为派送中orders.setStatus(Orders.DELIVERY_IN_PROGRESS);orderMapper.update(orders);}
完成订单其实就是将订单状态修改为“已完成”只有状态为“派送中”的订单可以执行订单完成操作
return*/PutMapping(/complete/{id})ApiOperation(完成订单)public
{orderService.complete(id);return
!ordersDB.getStatus().equals(Orders.DELIVERY_IN_PROGRESS))
OrderBusinessException(MessageConstant.ORDER_STATUS_ERROR);}Orders
Orders();orders.setId(ordersDB.getId());//
更新订单状态,状态转为完成orders.setStatus(Orders.COMPLETED);orders.setDeliveryTime(LocalDateTime.now());orderMapper.update(orders);}
登录百度地图开放平台百度地图-百万开发者首选的地图服务商,提供专属的行业解决方案
Value(${sky.shop.address})private
shopAddress;Value(${sky.baidu.ak})private
HashMap();map.put(address,shopAddress);map.put(output,json);map.put(ak,ak);//获取店铺的经纬度坐标String
HttpClientUtil.doGet(https://api.map.baidu.com/geocoding/v3,
JSON.parseObject(shopCoordinate);if(!jsonObject.getString(status).equals(0)){throw
OrderBusinessException(店铺地址解析失败);}//数据解析JSONObject
jsonObject.getJSONObject(result).getJSONObject(location);String
location.getString(lng);//店铺经纬度坐标String
lng;map.put(address,address);//获取用户收货地址的经纬度坐标String
HttpClientUtil.doGet(https://api.map.baidu.com/geocoding/v3,
JSON.parseObject(userCoordinate);if(!jsonObject.getString(status).equals(0)){throw
OrderBusinessException(收货地址解析失败);}//数据解析location
jsonObject.getJSONObject(result).getJSONObject(location);lat
location.getString(lng);//用户收货地址经纬度坐标String
lng;map.put(origin,shopLngLat);map.put(destination,userLngLat);map.put(steps_info,0);//路线规划String
HttpClientUtil.doGet(https://api.map.baidu.com/directionlite/v1/driving,
JSON.parseObject(json);if(!jsonObject.getString(status).equals(0)){throw
OrderBusinessException(配送路线规划失败);}//数据解析JSONObject
jsonObject.getJSONObject(result);JSONArray
jsonArray.get(0)).get(distance);if(distance
OrderBusinessException(超出配送范围);}}
在OrderServiceImpl的submitOrder方法中调用上面的校验方法
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback