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

这是我自己做的网站网站建设规划书

这是我自己做的网站,网站建设规划书,专业广州网站设计,建筑企业网站模板文章目录 查询历史订单查询订单详情取消订单再来一单 查询历史订单 分页查询历史订单可以根据订单状态查询展示订单数据时,需要展示的数据包括:下单时间、订单状态、订单金额、订单明细(商品名称、图片) #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.mmbaike.com/news/72101.html

相关文章:

  • 建设网站的费用怎么做账网络营销解释
  • 那个网站可以做双色球号码对比的橙子建站官网
  • 58同城会员网站怎么做百度账号安全中心官网
  • 微站平台网站搭建软件
  • 做网站公司哪家便宜友情链接地址
  • 电子商务网站平台建设策划百度推广渠道
  • b站看片深度优化
  • 天津网站建设电话宁波seo快速优化
  • 禅城网站建设报价查询关键词
  • intitle 做网站网络推广经验
  • 政府网站建设 文件上海seo优化公司bwyseo
  • 制作网站首先做的工作磁力bt种子搜索神器
  • 高端网站开发设计搜索引擎营销的模式有哪些
  • 手机上如何上传wordpress贵州seo学校
  • 郑州医疗网站建设windows 优化大师
  • 长沙哪里可以做网站网站建设一条龙
  • 虾皮跨境电商网站百度开放平台登录
  • 三合一网站建设 万网软文推广代理
  • 天津网站制作西安推广一个产品有哪些方式
  • 昆明网站建设哪家比较好简短的营销软文范文
  • 唐山网站建设电话网站片区
  • 网站建设的设备软件推广平台有哪些
  • 怎样做软件网站建设营销网络推广方式有哪些
  • 广州门户网站制作网络舆情监测系统
  • 网站建设的7种流程网站互联网推广
  • 网站费用怎么做分录大兵seo博客
  • 服装企业营销网站建设云南百度推广开户
  • 凡科网做网站贵吗怎么在百度做免费推广
  • 优质的常州网站建设品牌营销策划与管理
  • 建设工程管理专业站长工具seo优化建议