OrderServiceImpl.java 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. package com.ruoyi.demo.service.impl;
  2. import cn.hutool.core.lang.Dict;
  3. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  4. import com.github.pagehelper.PageHelper;
  5. import com.github.pagehelper.PageInfo;
  6. import com.ruoyi.demo.entity.*;
  7. import com.ruoyi.demo.entity.bo.OrderAddBo;
  8. import com.ruoyi.demo.entity.bo.PlanBo;
  9. import com.ruoyi.demo.mapper.*;
  10. import com.ruoyi.demo.service.OrderService;
  11. import com.ruoyi.demo.utils.SignUtil;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.stereotype.Service;
  14. import org.springframework.transaction.annotation.Transactional;
  15. import java.util.List;
  16. import java.util.Map;
  17. @Service
  18. @Transactional
  19. public class OrderServiceImpl implements OrderService {
  20. @Autowired
  21. OrderMapper orderMapper;
  22. @Autowired
  23. AppMapper appMapper;
  24. @Autowired
  25. StatisticsMapper statisticsMapper;
  26. @Autowired
  27. PlanMapper planMapper;
  28. @Autowired
  29. EquipmentMapper equipmentMapper;
  30. @Autowired
  31. DlUserMapper dlUserMapper;
  32. // 获取sign——用于测试
  33. @Override
  34. public String getSign(OrderAddBo bo) {
  35. QueryWrapper<App> appQueryWrapper = new QueryWrapper<>();
  36. appQueryWrapper.eq("appkey",bo.getAppkey());
  37. App app = appMapper.selectOne(appQueryWrapper);
  38. if (app == null)
  39. return "error";
  40. Map<String,Object> params = Dict.create()
  41. .set("appkey",bo.getAppkey())
  42. .set("createTime",bo.getTime())
  43. .set("dealCount",bo.getDealCount())
  44. .set("equipmentCode",bo.getEquipmentCode())
  45. .set("goodsId",bo.getGoodsId())
  46. .set("goodsName",bo.getGoodsName())
  47. .set("goodsPrice",bo.getGoodsPrice())
  48. .set("orderId",bo.getOrderId())
  49. .set("userId",bo.getUserId())
  50. .set("userName",bo.getUserName())
  51. .set("userTelephone",bo.getUserTelephone())
  52. .set("vendorId",bo.getVendorId())
  53. .set("vendorName",bo.getVendorName())
  54. .set("sign",null)
  55. .set("specs",bo.getSpecs())
  56. .set("state",bo.getState());
  57. return SignUtil.sign(params,app.getAppSecret());
  58. }
  59. // 添加订单
  60. @Override
  61. public int addOrder(OrderAddBo bo) {
  62. QueryWrapper<App> appQueryWrapper = new QueryWrapper<>();
  63. appQueryWrapper.eq("appkey",bo.getAppkey());
  64. App app = appMapper.selectOne(appQueryWrapper);
  65. if (app == null)
  66. return -1;
  67. Map<String,Object> params = Dict.create()
  68. .set("appkey",bo.getAppkey())
  69. .set("createTime",bo.getTime())
  70. .set("dealCount",bo.getDealCount())
  71. .set("equipmentCode",bo.getEquipmentCode())
  72. .set("goodsId",bo.getGoodsId())
  73. .set("goodsName",bo.getGoodsName())
  74. .set("goodsPrice",bo.getGoodsPrice())
  75. .set("orderId",bo.getOrderId())
  76. .set("userId",bo.getUserId())
  77. .set("userName",bo.getUserName())
  78. .set("userTelephone",bo.getUserTelephone())
  79. .set("vendorId",bo.getVendorId())
  80. .set("vendorName",bo.getVendorName())
  81. .set("sign",bo.getSign())
  82. .set("specs",bo.getSpecs())
  83. .set("state",bo.getState());
  84. if (!SignUtil.verify(params,app.getAppSecret()))
  85. return -3;
  86. // 验证通过后,如果用户不存在,则添加用户;否则更新用户信息
  87. QueryWrapper<Plan> planQueryWrapper = new QueryWrapper<>();
  88. planQueryWrapper.eq("plan_id",bo.getPlanId());
  89. Plan plan = planMapper.selectOne(planQueryWrapper);
  90. QueryWrapper<Equipment> equipmentQueryWrapper = new QueryWrapper<>();
  91. equipmentQueryWrapper.eq("equipment_code",bo.getEquipmentCode());
  92. Equipment equipment = equipmentMapper.selectOne(equipmentQueryWrapper);
  93. QueryWrapper<DlUser> userQueryWrapper = new QueryWrapper<>();
  94. userQueryWrapper.eq("user_id",bo.getUserId());
  95. DlUser user = dlUserMapper.selectOne(userQueryWrapper);
  96. if (user == null)
  97. dlUserMapper.insert(new DlUser(bo,equipment));
  98. else{
  99. user.setEndEquipmentId(equipment.getEquipmentId());
  100. user.setEndEquipmentName(equipment.getEquipmentName());
  101. user.setEndEquipmentCode(equipment.getEquipmentCode());
  102. user.setEndTime(bo.getTime());
  103. dlUserMapper.update(user,userQueryWrapper);
  104. }
  105. // 添加交易行为记录
  106. statisticsMapper.insert(new Statistics(bo,plan,equipment));
  107. // 添加订单
  108. return orderMapper.insert(new Order(bo,app));
  109. }
  110. // 查询订单列表
  111. @Override
  112. public PageInfo<List<Order>> getOrderList(PlanBo bo) {
  113. PageHelper.startPage(bo.getPageNum(),bo.getPageSize(),true);
  114. QueryWrapper<Order> queryWrapper = new QueryWrapper<>();
  115. if (bo.getText() != null)
  116. queryWrapper.like("order_id",bo.getText())
  117. .or()
  118. .like("goods_name",bo.getText())
  119. .or()
  120. .like("user_name",bo.getText())
  121. .or()
  122. .like("vendor_name",bo.getText());
  123. if (bo.getStartTime() != null)
  124. queryWrapper.apply("create_time >= STR_TO_DATE({0},'%Y-%m-%d %H:%i:%s')",bo.getStartTime());
  125. if (bo.getEndTime() != null)
  126. queryWrapper.apply("create_time <= STR_TO_DATE({0},'%Y-%m-%d %H:%i:%s')",bo.getEndTime());
  127. List<Order> orders = orderMapper.selectList(queryWrapper);
  128. return new PageInfo(orders);
  129. }
  130. }