package com.szwl.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.szwl.feign.bean.SyncOldFeign; import com.szwl.feign.bean.SzwlFeign; import com.szwl.mapper.TCoinOrderMapper; import com.szwl.mapper.TOrderMapper; import com.szwl.model.bo.R; import com.szwl.model.bo.ResponseModel; import com.szwl.model.entity.TAdmin; import com.szwl.model.entity.TCoinOrder; import com.szwl.model.entity.TOrder; import com.szwl.service.TAdminService; import com.szwl.service.TCoinOrderService; import com.szwl.service.TOrderService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.List; @Slf4j @Api(value = "/syncOrder", tags = {"同步旧系统的order数据"}) @RestController @RequestMapping("/syncOrder") public class SyncOldOrderController { TAdminService adminService; SyncOldFeign syncOldFeign; @Resource SzwlFeign szwlFeign; @Resource TOrderMapper orderMapper; @Resource TCoinOrderMapper coinOrderMapper; public SyncOldOrderController(TAdminService adminService, SyncOldFeign syncOldFeign) { this.adminService = adminService; this.syncOldFeign = syncOldFeign; } @ApiOperation(value = "同步某客户某台机某一时间段内的订单") @PostMapping("/byCAT") public ResponseModel byCAT(String username, String clientId, String startTime, String endTime) { if (StringUtils.isEmpty(username) || StringUtils.isEmpty(clientId) || StringUtils.isEmpty(startTime) || StringUtils.isEmpty(endTime)) { return R.fail("参数不能为空"); } Boolean aBoolean = R.getDataIfSuccess(szwlFeign.getEquipmentBool(clientId)); if (!aBoolean) { return R.fail("clientId有误"); } TAdmin tAdmin = R.getDataIfSuccess(szwlFeign.getIdIfForeign(username)); Long adminId = tAdmin.getId(); String ifForeign = tAdmin.getIfForeign(); if ("0".equals(ifForeign)) { // 国内订单 List orderList = R.getDataIfSuccess(syncOldFeign.getOrderByACT(adminId, clientId, startTime, endTime)); if (orderList.size() == 0) { return R.fail("未查询到国内订单信息"); } if (orderList.size() > 10000) { return R.fail("数据量过大,请缩短时间范围"); } int i = orderMapper.insertBatchSomeColumn(orderList); return R.ok("同步用户" + username + "设备" + clientId + "从" + startTime + "至" + endTime + "的" + i + "条 order 信息成功"); } else if ("1".equals(ifForeign)) { // 海外订单 List coinOrderList = R.getDataIfSuccess(syncOldFeign.getCoinOrderByACT(adminId, clientId, startTime, endTime)); if (coinOrderList.size() == 0) { return R.fail("未查询到海外订单信息"); } if (coinOrderList.size() > 10000) { return R.fail("数据量过大,请缩短时间范围"); } int i = coinOrderMapper.insertBatchSomeColumn(coinOrderList); return R.ok("同步用户" + adminId + "设备" + clientId + "从" + startTime + "至" + endTime + "的" + i + "条 coin_order 信息成功"); } else { return R.fail("用户是否海内外?"); } } @ApiOperation(value = "同步国内某客户的某一设备某一时间段内的 order 订单") @PostMapping("/syncOrderByCAT") public ResponseModel syncOrderByCAT(String adminId, String clientId, String startTime, String endTime) { if (StringUtils.isNotEmpty(adminId) && StringUtils.isNotEmpty(clientId) && StringUtils.isNotEmpty(startTime) && StringUtils.isNotEmpty(endTime)) { long l = Long.parseLong(adminId); // SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // Date start = sdf.parse(startTime); // Date end = sdf.parse(endTime); List orderList = R.getDataIfSuccess(syncOldFeign.getOrderByACT(l, clientId, startTime, endTime)); if (orderList.size() == 0) { return R.fail("未查询到订单信息"); } if (orderList.size() > 10000) { return R.fail("数据量过大,请缩短时间范围"); } // 3中批量插入方式 // for (TOrder order : orderList) { //// System.out.println("order》》" + order); // orderService.save(order); // // } // orderService.saveBatch(orderList); // orderService.saveOrUpdateBatch(orderList); // saveBatch和insertBatchSomeColumn不会更新已存在的记录 orderMapper.insertBatchSomeColumn(orderList); return R.ok(adminId + "同步设备" + clientId + "从" + startTime + "至" + endTime + "的 order 信息成功"); } else { return R.fail("参数不能为空"); } } }