OrdersService.java 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. package com.example.service;
  2. import cn.hutool.core.date.DateUtil;
  3. import cn.hutool.core.util.IdUtil;
  4. import cn.hutool.json.JSONUtil;
  5. import com.example.common.enums.OrderStatusDELIVERY;
  6. import com.example.common.enums.OrderStatusToShop;
  7. import com.example.common.enums.OrderType;
  8. import com.example.common.enums.ResultCodeEnum;
  9. import com.example.entity.Account;
  10. import com.example.entity.Orders;
  11. import com.example.entity.Product;
  12. import com.example.entity.User;
  13. import com.example.exception.CustomException;
  14. import com.example.mapper.OrdersMapper;
  15. import com.example.mapper.ProductMapper;
  16. import com.example.mapper.UserMapper;
  17. import com.example.utils.TokenUtils;
  18. import com.github.pagehelper.PageHelper;
  19. import com.github.pagehelper.PageInfo;
  20. import javax.annotation.Resource;
  21. import com.github.pagehelper.util.StringUtil;
  22. import org.springframework.stereotype.Service;
  23. import java.math.BigDecimal;
  24. import java.util.List;
  25. /**
  26. * 订单表业务处理
  27. **/
  28. @Service
  29. public class OrdersService {
  30. @Resource
  31. private OrdersMapper ordersMapper;
  32. @Resource
  33. private UserMapper userMapper;
  34. @Resource
  35. private ProductMapper productMapper;
  36. static final Integer costTime = 1200; //1200s 20分支
  37. public Integer getNumsWithShopId(Integer shopId){
  38. return ordersMapper.getUnfinishedNums(shopId);
  39. }
  40. /**
  41. * 小程序下单新增,点击下单
  42. */
  43. public Orders add(Orders orders) {
  44. // Account currentUser = TokenUtils.getCurrentUser();
  45. // if(currentUser== null){
  46. // currentUser = new User();
  47. // currentUser.setId(orders.getUserId());
  48. // }
  49. // User user = userMapper.selectById(currentUser.getId());
  50. // BigDecimal account = user.getAccount(); // 获取余额
  51. // BigDecimal cost = new BigDecimal(0),t_cost; //记录花费了多少钱
  52. //
  53. // // 扣除钱包余额
  54. // if(account.doubleValue() < cost.doubleValue()){
  55. // throw new CustomException(ResultCodeEnum.ACCOUNT_LIMIT_ERROR);
  56. // }
  57. // user.setAccount(account.subtract(cost));
  58. // userMapper.updateById(user); //更新扣费
  59. orders.setOrderState("待送达");
  60. // orders.setUserId(currentUser.getId()); // 设置用户id
  61. orders.setTransCode(IdUtil.getSnowflakeNextIdStr()); // 随机创建一个交易单号
  62. orders.setTimeOrder(DateUtil.now()); // 创建订单时间
  63. // 如果是外卖:这个是预计送达时间 ,如果是自提 这个是预计可取餐时间
  64. orders.setTimePre(String.valueOf(DateUtil.offsetSecond(DateUtil.dateSecond(),11))); //预计送达时间
  65. ordersMapper.insert(orders);
  66. Orders resOrders = ordersMapper.selectById(orders.getId());
  67. return resOrders;
  68. //this.setCache(orders.getId()); // 设置缓存 但是这里插入前是没有orders的id的应该怎么处理
  69. }
  70. /**
  71. * 删除
  72. */
  73. public void deleteById(Integer id) {
  74. ordersMapper.deleteById(id);
  75. }
  76. /**
  77. * 批量删除
  78. */
  79. public void deleteBatch(List<Integer> ids) {
  80. for (Integer id : ids) {
  81. ordersMapper.deleteById(id);
  82. }
  83. }
  84. /**
  85. * 修改
  86. */
  87. public void updateById(Orders orders) {
  88. ordersMapper.updateById(orders);
  89. }
  90. /**
  91. * 根据ID查询
  92. */
  93. public Orders selectById(Integer id) {
  94. return ordersMapper.selectById(id);
  95. }
  96. /**
  97. * 查询所有
  98. */
  99. public List<Orders> selectAll(Orders orders) {
  100. return ordersMapper.selectAll(orders);
  101. }
  102. /**
  103. * 分页查询
  104. */
  105. public PageInfo<Orders> selectPage(Orders orders, Integer pageNum, Integer pageSize) {
  106. PageHelper.startPage(pageNum, pageSize);
  107. List<Orders> list = ordersMapper.selectAll(orders);
  108. return PageInfo.of(list);
  109. }
  110. }