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

网站排名稳定后后期如何优化一元云购网站建设模块

网站排名稳定后后期如何优化,一元云购网站建设模块,谷歌浏览器 官网下载,怎么用ip访问vps网站文章目录 查询历史订单查询订单详情取消订单再来一单 查询历史订单 分页查询历史订单可以根据订单状态查询展示订单数据时,需要展示的数据包括:下单时间、订单状态、订单金额、订单明细(商品名称、图片) #OrderController/*** 历…

文章目录

  • 查询历史订单
  • 查询订单详情
  • 取消订单
  • 再来一单


查询历史订单

  • 分页查询历史订单
  • 可以根据订单状态查询
  • 展示订单数据时,需要展示的数据包括:下单时间、订单状态、订单金额、订单明细(商品名称、图片)
#OrderController/*** 历史订单查询** @param page* @param pageSize* @param status   订单状态 1待付款 2待接单 3已接单 4派送中 5已完成 6已取消* @return*/
@GetMapping("/historyOrders")
@ApiOperation("历史订单查询")
public Result<PageResult> page(int page, int pageSize, Integer status) {PageResult pageResult = orderService.pageQueryUser(page, pageSize, status);return Result.success(pageResult);
}
#OrderService    
/*** 用户端订单分页查询* @param page* @param pageSize* @param status* @return*/PageResult pageQueryUser(int page, int pageSize, Integer status);
#OrderServiceImpl/*** 用户端订单分页查询** @param pageNum* @param pageSize* @param status* @return*/public PageResult pageQuery4User(int pageNum, int pageSize, Integer status) {// 设置分页PageHelper.startPage(pageNum, pageSize);OrdersPageQueryDTO ordersPageQueryDTO = new OrdersPageQueryDTO();ordersPageQueryDTO.setUserId(BaseContext.getCurrentId());ordersPageQueryDTO.setStatus(status);// 分页条件查询Page<Orders> page = orderMapper.pageQuery(ordersPageQueryDTO);List<OrderVO> list = new ArrayList();// 查询出订单明细,并封装入OrderVO进行响应if (page != null && page.getTotal() > 0) {for (Orders orders : page) {Long orderId = orders.getId();// 订单id// 查询订单明细List<OrderDetail> orderDetails = orderDetailMapper.getByOrderId(orderId);OrderVO orderVO = new OrderVO();BeanUtils.copyProperties(orders, orderVO);orderVO.setOrderDetailList(orderDetails);list.add(orderVO);}}return new PageResult(page.getTotal(), list);
}
/**OrderMapper* 分页条件查询并按下单时间排序* @param ordersPageQueryDTO*/
Page<Orders> pageQuery(OrdersPageQueryDTO ordersPageQueryDTO);
#OrderMapper.xml
<select id="pageQuery" resultType="Orders">select * from orders<where><if test="number != null and number!=''">and number like concat('%',#{number},'%')</if><if test="phone != null and phone!=''">and phone like concat('%',#{phone},'%')</if><if test="userId != null">and user_id = #{userId}</if><if test="status != null">and status = #{status}</if><if test="beginTime != null">and order_time &gt;= #{beginTime}</if><if test="endTime != null">and order_time &lt;= #{endTime}</if></where>order by order_time desc
</select>
/**  OrderDetailMapper* 根据订单id查询订单明细* @param orderId* @return*/
@Select("select * from order_detail where order_id = #{orderId}")
List<OrderDetail> getByOrderId(Long orderId);

查询订单详情

根据订单id查询订单详情 user/order/orderDetail/:id GET

/*** 查询订单详情* @param id* @return*/
@GetMapping("/orderDetail/{id}")
@ApiOperation("查询订单详情")
public Result<OrderVO> details(@PathVariable("id") Long id){OrderVO orderVO = orderService.details(id);return Result.success(orderVO);
}/***  订单详情* @param id* @return*/
OrderVO details(Long id);/**** 查询订单详情* @param id* @return*/
@Override
public OrderVO details(Long id) {//根据id查询订单Orders orders = orderMapper.getById(id);//查询该订单对应得菜品/套餐明显List<OrderDetail> orderDetailList = orderDetailMapper.getByOrderId(orders.getId());// 将该订单及其详情封装到OrderVO并返回OrderVO  orderVO = new OrderVO();BeanUtils.copyProperties(orders,orderVO);orderVO.setOrderDetailList(orderDetailList);return orderVO;
}/*** 根据id查询订单* @param id* @return*/
@Select("select * from orders where id = #{id}")
Orders getById(Long id);

取消订单

业务规则:

  • 待支付和待接单状态下,用户可直接取消订单
  • 商家已接单状态下,用户取消订单需电话沟通商家
  • 派送中状态下,用户取消订单需电话沟通商家
  • 如果在待接单状态下取消订单,需要给用户退款
  • 取消订单后需要将订单状态修改为“已取消”

PUT /user/order/cancel/{id}

/*** 用户取消订单* @param id* @return* @throws Exception*/
@PutMapping("/cancel/{id}")
@ApiOperation("取消订单")
public Result cancel(@PathVariable("id") Long id) throws Exception{//根据传入的订单id 取消订单orderService.userCancelById(id);return Result.success();
}/***  用户取消订单* @param id* @throws Exception*/
void userCancelById(Long id) throws Exception;/*** 取消订单* @param id* @throws Exception*/
@Override
public void userCancelById(Long id) throws Exception {//根据id查询订单Orders ordersDB = orderMapper.getById(id);if(ordersDB == null){//订单不存在throw new OrderBusinessException(MessageConstant.ORDER_NOT_FOUND);}//订单状态 1待付款 2待接单 3已接单 4派送中 5已完成 6已取消if(ordersDB.getStatus() > 2){throw new OrderBusinessException(MessageConstant.ORDER_STATUS_ERROR);}Orders orders = new Orders();orders.setId(ordersDB.getId());//订单处于待接单状态下取消 需要进行退款if(ordersDB.getStatus().equals(Orders.TO_BE_CONFIRMED)){//调用微信支付退款接口weChatPayUtil.refund(ordersDB.getNumber(),//商户订单号ordersDB.getNumber(),//商户退款单号new BigDecimal(0.01),//退款金额 单位 元new BigDecimal(0.01)// 原订单金额);//支付状态修改为 已退款orders.setPayStatus(Orders.REFUND);}//更新订单状态 取消原因 取消时间orders.setStatus(Orders.CANCELLED);orders.setCancelReason("用户取消");orders.setCancelTime(LocalDateTime.now());orderMapper.update(orders);
}

再来一单

POST /user/order/repetition/{id}

将原订单商品重新加入购物车中

/*** 再来一单* @param id* @return*/
@PostMapping("/repetition/{id}")
@ApiOperation("再来一单")
public Result repetition(@PathVariable Long id){orderService.repetition(id);return Result.success();
}/*** 再来一单* @param id*/
void repetition(Long id);/*** 再来一单* @param id*/
@Transactional
@Override
public void repetition(Long id) {//查询当前用户idLong userId = BaseContext.getCurrentId();//根据订单id查询当前订单详情List<OrderDetail> orderDetailList = orderDetailMapper.getByOrderId(id);//将订单详情对象转换为购物车对象List<ShoppingCart> shoppingCartList = orderDetailList.stream().map(x-> {ShoppingCart shoppingCart = new ShoppingCart();//将原订单详情里面的菜品信息重新复制到购物车对象BeanUtils.copyProperties(x, shoppingCart, "id");shoppingCart.setUserId(userId);shoppingCart.setCreateTime(LocalDateTime.now());return shoppingCart;}).collect(Collectors.toList());//将购物车对像批量添加到数据库shoppingCartMapper.insertBatch(shoppingCartList);
}
http://www.yayakq.cn/news/714177/

相关文章:

  • 网站建设网站营销网站托管一体化怎么制作糖葫芦教程
  • 北京最大专业网站建设网站的文字被爬取了
  • 网站建设有什么样好的建设意见遂宁网站建设略奥网络
  • 宁夏网站制作wordpress中文用户名注册
  • 网站建设次年续费合同大连开发区盛京医院
  • 网站制作与发布黄冈公司网站推广软件首选
  • 网站建设拷贝软件网站建设什么时候好
  • 专业网站推广公司开发一个app需要多长时间
  • wordpress的功能简介网站建设优化之优化关键字
  • 上海网站建设 知名做wordpress文章列表
  • 网站内页怎么做企业网站产品优化怎么做
  • 如何建设好英文网站邢台建站
  • 厦门开发网站公司同一个域名两个网站
  • 域名已注册怎样建设网站中国乐清网官网
  • 吉林省工伤保险网站个人博客网站开发的背景
  • 网站开发需要注意的问题国内10大网站建设公司
  • 品牌手机网站建设天河岗顶棠下上社网站建设开发
  • 能买源码的网站有哪些旅行社应做哪些网站
  • 入侵网站做排名咨询公司是干什么的
  • 网站推广的方法及技巧扁平图标网站
  • 企业网站的管理系统手机网站怎么做的
  • 贵阳的网站建设公司如何做响应式网站设计
  • 青冈县网站建设seo最好的工具
  • 宜昌网站建设宜昌wordpress 中文插件大全
  • 产品设计排版网站百度实名认证
  • 优对 网站开发不懂外贸做外贸网站好做吗
  • 怎么用ps做网站图片九龙坡网站建设公司
  • 做电影网站什么后果哪里可以检测丙型肝炎
  • 视频网站推广建设工程施工合同解释一
  • xml网站地图每天更新龙岩市企业网