SyncOldOrderController.java 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. package com.szwl.controller;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  4. import com.szwl.feign.bean.SyncOldFeign;
  5. import com.szwl.feign.bean.SzwlFeign;
  6. import com.szwl.mapper.TCoinOrderMapper;
  7. import com.szwl.mapper.TOrderMapper;
  8. import com.szwl.model.bo.R;
  9. import com.szwl.model.bo.ResponseModel;
  10. import com.szwl.model.entity.TAdmin;
  11. import com.szwl.model.entity.TCoinOrder;
  12. import com.szwl.model.entity.TOrder;
  13. import com.szwl.service.TAdminService;
  14. import com.szwl.service.TCoinOrderService;
  15. import com.szwl.service.TOrderService;
  16. import io.swagger.annotations.Api;
  17. import io.swagger.annotations.ApiOperation;
  18. import lombok.extern.slf4j.Slf4j;
  19. import org.apache.commons.lang.StringUtils;
  20. import org.springframework.web.bind.annotation.PostMapping;
  21. import org.springframework.web.bind.annotation.RequestMapping;
  22. import org.springframework.web.bind.annotation.RestController;
  23. import javax.annotation.Resource;
  24. import java.util.List;
  25. @Slf4j
  26. @Api(value = "/syncOrder", tags = {"同步旧系统的order数据"})
  27. @RestController
  28. @RequestMapping("/syncOrder")
  29. public class SyncOldOrderController {
  30. TAdminService adminService;
  31. SyncOldFeign syncOldFeign;
  32. @Resource
  33. SzwlFeign szwlFeign;
  34. @Resource
  35. TOrderMapper orderMapper;
  36. @Resource
  37. TCoinOrderMapper coinOrderMapper;
  38. public SyncOldOrderController(TAdminService adminService, SyncOldFeign syncOldFeign) {
  39. this.adminService = adminService;
  40. this.syncOldFeign = syncOldFeign;
  41. }
  42. @ApiOperation(value = "同步某客户某台机某一时间段内的订单")
  43. @PostMapping("/byCAT")
  44. public ResponseModel<?> byCAT(String username, String clientId, String startTime, String endTime) {
  45. if (StringUtils.isEmpty(username) || StringUtils.isEmpty(clientId) || StringUtils.isEmpty(startTime) || StringUtils.isEmpty(endTime)) {
  46. return R.fail("参数不能为空");
  47. }
  48. Boolean aBoolean = R.getDataIfSuccess(szwlFeign.getEquipmentBool(clientId));
  49. if (!aBoolean) {
  50. return R.fail("clientId有误");
  51. }
  52. TAdmin tAdmin = R.getDataIfSuccess(szwlFeign.getIdIfForeign(username));
  53. Long adminId = tAdmin.getId();
  54. String ifForeign = tAdmin.getIfForeign();
  55. if ("0".equals(ifForeign)) { // 国内订单
  56. List<TOrder> orderList = R.getDataIfSuccess(syncOldFeign.getOrderByACT(adminId, clientId, startTime, endTime));
  57. if (orderList.size() == 0) {
  58. return R.fail("未查询到国内订单信息");
  59. }
  60. if (orderList.size() > 10000) {
  61. return R.fail("数据量过大,请缩短时间范围");
  62. }
  63. int i = orderMapper.insertBatchSomeColumn(orderList);
  64. return R.ok("同步用户" + username + "设备" + clientId + "从" + startTime + "至" + endTime + "的" + i + "条 order 信息成功");
  65. } else if ("1".equals(ifForeign)) { // 海外订单
  66. List<TCoinOrder> coinOrderList = R.getDataIfSuccess(syncOldFeign.getCoinOrderByACT(adminId, clientId, startTime, endTime));
  67. if (coinOrderList.size() == 0) {
  68. return R.fail("未查询到海外订单信息");
  69. }
  70. if (coinOrderList.size() > 10000) {
  71. return R.fail("数据量过大,请缩短时间范围");
  72. }
  73. int i = coinOrderMapper.insertBatchSomeColumn(coinOrderList);
  74. return R.ok("同步用户" + adminId + "设备" + clientId + "从" + startTime + "至" + endTime + "的" + i + "条 coin_order 信息成功");
  75. } else {
  76. return R.fail("用户是否海内外?");
  77. }
  78. }
  79. @ApiOperation(value = "同步国内某客户的某一设备某一时间段内的 order 订单")
  80. @PostMapping("/syncOrderByCAT")
  81. public ResponseModel<?> syncOrderByCAT(String adminId, String clientId, String startTime, String endTime) {
  82. if (StringUtils.isNotEmpty(adminId) && StringUtils.isNotEmpty(clientId) && StringUtils.isNotEmpty(startTime) && StringUtils.isNotEmpty(endTime)) {
  83. long l = Long.parseLong(adminId);
  84. // SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  85. // Date start = sdf.parse(startTime);
  86. // Date end = sdf.parse(endTime);
  87. List<TOrder> orderList = R.getDataIfSuccess(syncOldFeign.getOrderByACT(l, clientId, startTime, endTime));
  88. if (orderList.size() == 0) {
  89. return R.fail("未查询到订单信息");
  90. }
  91. if (orderList.size() > 10000) {
  92. return R.fail("数据量过大,请缩短时间范围");
  93. }
  94. // 3中批量插入方式
  95. // for (TOrder order : orderList) {
  96. //// System.out.println("order》》" + order);
  97. // orderService.save(order);
  98. //
  99. // }
  100. // orderService.saveBatch(orderList);
  101. // orderService.saveOrUpdateBatch(orderList);
  102. // saveBatch和insertBatchSomeColumn不会更新已存在的记录
  103. orderMapper.insertBatchSomeColumn(orderList);
  104. return R.ok(adminId + "同步设备" + clientId + "从" + startTime + "至" + endTime + "的 order 信息成功");
  105. } else {
  106. return R.fail("参数不能为空");
  107. }
  108. }
  109. }