Ver Fonte

feat: "同步旧系统的coinOrder数据"
feat: "根据 adminId 同步用户的所有机器设备"

Ritchie há 1 ano atrás
pai
commit
9e3e6906df

+ 1 - 1
src/main/java/com/szwl/aspect/MyWebMvcConfigurer.java

@@ -22,7 +22,7 @@ public class MyWebMvcConfigurer extends WebMvcConfigurationSupport {
         String[] myExcludes= {"/tAdmin/login","/tAdmin/save","/tAdmin/**","/tAdmin/updatePassword","/tMessageCode/**","/tJoinpayMch/**","/tLogo/**",
                 "/tProportion/**","/tProduct/**","/tPromoCode/**", "/tApkInfo/**", "/tProduct/selectProductList",  "/tApkInfo/**","/tJoinpayMchCheck/**","/tTimeRule/**","/sysRoleMenu/**",
                 "/tEquipmentApply/**","/tEquipment/**","/api/**","/tOrder/**","/tAlarmClock/**","/tNotice/**","/tParameters/**","/tAdmin/setRole",
-                "/tLabel/**","/tArea/**","/error","/tWechat/**","/wxLogin/**", "/syncByClient/**", "/syncByTime/**", "/syncOrder/**"};
+                "/tLabel/**","/tArea/**","/error","/tWechat/**","/wxLogin/**", "/syncByClient/**", "/syncByTime/**", "/syncOrder/**", "/syncCoinOrder/**"};
         registry.addInterceptor(headTokenInterceptor).addPathPatterns("/**")
                 // swagger
                 .excludePathPatterns(swaggerExcludes)

+ 27 - 1
src/main/java/com/szwl/controller/SyncByClientController.java

@@ -1,12 +1,15 @@
 package com.szwl.controller;
 
 
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.extension.injector.methods.InsertBatchSomeColumn;
 import com.szwl.feign.bean.SyncOldFeign;
 import com.szwl.model.bo.R;
 import com.szwl.model.bo.ResponseModel;
 import com.szwl.model.entity.TAdmin;
 import com.szwl.model.entity.TEquipment;
 import com.szwl.service.TAdminService;
+import com.szwl.service.TEquipmentService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -22,10 +25,33 @@ public class SyncByClientController {
 
     TAdminService adminService;
     SyncOldFeign syncOldFeign;
+    TEquipmentService equipmentService;
 
-    public SyncByClientController(TAdminService adminService, SyncOldFeign syncOldFeign) {
+    public SyncByClientController(TAdminService adminService, SyncOldFeign syncOldFeign, TEquipmentService equipmentService) {
         this.adminService = adminService;
         this.syncOldFeign = syncOldFeign;
+        this.equipmentService = equipmentService;
+    }
+
+
+    @ApiOperation(value = "根据 adminId 同步用户的所有机器设备") // 考虑权限和上下级
+    @PostMapping("/getEquipmentByAdminId")
+    public ResponseModel<?> getEquipmentByAdminId(Long adminId) {
+        if (adminId != null) {
+            List<TEquipment> equipmentList = R.getDataIfSuccess(syncOldFeign.getEquipmentByAdminId(adminId));
+            // TODO: 批量插入到新系统数据库
+//            InsertBatchSomeColumn
+//            InsertBatchSomeColumn insertBatchSomeColumn = new InsertBatchSomeColumn;
+//            insertBatchSomeColumn()
+//            equipmentList.add(new InsertBatchSomeColumn(i -> i.getFieldFill() != FieldFill.UPDATE));
+            equipmentService.saveBatch(equipmentList);
+
+//            if (b) {
+                return R.ok("批量插入成功");
+//            }
+        } else {
+            return R.fail("旧系统用户不存在");
+        }
     }
 
 

+ 46 - 7
src/main/java/com/szwl/controller/SyncByTimeController.java

@@ -1,5 +1,8 @@
 package com.szwl.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.injector.methods.InsertBatchSomeColumn;
 import com.szwl.feign.bean.SyncOldFeign;
 import com.szwl.model.bo.R;
 import com.szwl.model.bo.ResponseModel;
@@ -12,6 +15,7 @@ import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 import org.apache.ibatis.session.SqlSessionFactory;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -36,7 +40,8 @@ public class SyncByTimeController {
         this.syncOldFeign = syncOldFeign;
     }
 
-    @ApiOperation(value = "同步旧系统某一时间段内的 t_equipment ")
+
+    @ApiOperation(value = "同步旧系统某一时间段内的 t_equipment ") // 废弃~~~ 改用 getEquipmentByAdmin
     @PostMapping("/getEquipmentInTime")
     public ResponseModel<?> getEquipmentInTime(String startTime, String endTime) {
         if (StringUtils.isNotEmpty(startTime) && StringUtils.isNotEmpty(endTime)) {
@@ -44,7 +49,9 @@ public class SyncByTimeController {
 
             // 构建MybatisBatch
 //            new MybatisBatch<>(SqlSessionFactory, )
-
+//            equipmentService.
+            // TODO: 批量插入
+//            InsertBatchSomeColumn
             for (TEquipment oldEquipment : oldEquipmentList) {
 //                equipmentService.saveOrUpdate(oldEquipment); // 防止新旧表结构不同,不做直接插入
                 Long id = oldEquipment.getId();
@@ -172,14 +179,45 @@ public class SyncByTimeController {
                 equipment.setCompanyType(companyType);
                 equipment.setPaymentType(paymentType);
 
-                equipmentService.saveOrUpdate(oldEquipment);
+                equipmentService.save(oldEquipment);
             }
+            return R.ok("同步" + startTime + "至" + endTime + "的 equipment 信息成功");
+        } else {
+            return R.fail("时间参数不能为空");
         }
-        return R.fail("时间参数有误");
     }
 
+    @ApiOperation(value = "修改 admin 的 type 类型")
+    @PostMapping("/updateAdminInfo")
+    public ResponseModel<?> updateAdminInfo(String startTime, String endTime) {
+        if (StringUtils.isNotEmpty(startTime) && StringUtils.isNotEmpty(endTime)) {
+            LambdaQueryWrapper<TAdmin> lqw = Wrappers.lambdaQuery();
+            lqw.between(TAdmin::getCreateDate, startTime, endTime);
+            List<TAdmin> adminList = adminService.list(lqw);
+            for (TAdmin admin : adminList) {
+                Integer type = admin.getType();
+                if (type == 0) {
+                    admin.setType(1);
+                    adminService.updateById(admin);
+                }
+                if (type == 1) {
+                    admin.setType(2);
+                    adminService.updateById(admin);
+                }
+                // 旧系统的是按照:管理,省级,市级,终端进行划分
+//                if (type == 3) {
+//
+//                }
+            }
+            return R.ok("修改 admin 信息成功");
+
+        } else {
+            return R.fail("时间参数不能为空");
+        }
+
+    }
 
-    @ApiOperation(value = "同步旧系统某一时间段内的 t_admin ")
+    @ApiOperation(value = "同步旧系统某一时间段内的 t_admin ") // admin 表已改回自增
     @PostMapping("/getAdminInTime")
     public ResponseModel<?> getAdminInTime(String startTime, String endTime) {
         if (StringUtils.isNotEmpty(startTime) && StringUtils.isNotEmpty(endTime)) {
@@ -270,11 +308,12 @@ public class SyncByTimeController {
                 admin.setCompanyType(companyType);
                 admin.setCurrencySymbol(currencySymbol);
 
-                adminService.saveOrUpdate(admin);
+                adminService.save(admin);
             }
             return R.ok("同步" + startTime + "至" + endTime + "的 admin 信息成功");
+        }else {
+            return R.fail("时间参数不能为空");
         }
-        return R.fail("时间参数有误");
     }
 
 }

+ 42 - 0
src/main/java/com/szwl/controller/SyncCoinOrderController.java

@@ -1,14 +1,56 @@
 package com.szwl.controller;
 
+import com.szwl.feign.bean.PayFeign;
+import com.szwl.feign.bean.SyncOldFeign;
+import com.szwl.model.bo.R;
+import com.szwl.model.bo.ResponseModel;
+import com.szwl.model.entity.TCoinOrder;
+import com.szwl.model.entity.TOrder;
 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 java.util.List;
+
 @Slf4j
 @Api(value = "/syncCoinOrder", tags = {"同步旧系统的coinOrder数据"})
 @RestController
 @RequestMapping("/syncCoinOrder")
 public class SyncCoinOrderController {
 
+    SyncOldFeign syncOldFeign;
+
+    PayFeign payFeign;
+
+    public SyncCoinOrderController(SyncOldFeign syncOldFeign, PayFeign payFeign) {
+        this.syncOldFeign = syncOldFeign;
+        this.payFeign = payFeign;
+    }
+
+
+    @ApiOperation(value = "同步海外某客户的某一设备某一时间段内的 coinOrder 订单")
+    @PostMapping("/getCoinOrderByCAT")
+    public ResponseModel<?> getCoinOrderByCAT(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);
+
+            List<TCoinOrder> coinOrderList = R.getDataIfSuccess(syncOldFeign.getCoinOrderByACT(l, clientId, startTime, endTime));
+
+            if (coinOrderList.size()>1000) {
+                return R.fail("数据量过大,请缩短时间范围");
+            }
+            for (TCoinOrder coinOrder : coinOrderList) {
+//                System.out.println("coinOrder》》" + coinOrder);
+                payFeign.addCoinOrder(coinOrder);
+            }
+
+            return R.ok(adminId + "同步设备" + clientId + "从" + startTime + "至" + endTime + "的 coinOrder 信息成功");
+        } else {
+            return R.fail("参数不能为空");
+        }
+    }
 }

+ 14 - 9
src/main/java/com/szwl/controller/SyncOrderController.java

@@ -1,5 +1,6 @@
 package com.szwl.controller;
 
+import com.szwl.feign.bean.PayFeign;
 import com.szwl.feign.bean.SyncOldFeign;
 import com.szwl.model.bo.R;
 import com.szwl.model.bo.ResponseModel;
@@ -23,17 +24,16 @@ import java.util.List;
 @RequestMapping("/syncOrder")
 public class SyncOrderController {
 
+    PayFeign payFeign;
     TOrderService orderService;
-
     SyncOldFeign syncOldFeign;
-    public SyncOrderController(TOrderService orderService, SyncOldFeign syncOldFeign) {
+    public SyncOrderController(PayFeign payFeign, TOrderService orderService, SyncOldFeign syncOldFeign) {
+        this.payFeign = payFeign;
         this.orderService = orderService;
         this.syncOldFeign = syncOldFeign;
     }
 
-
-
-    @ApiOperation(value = "同步某客户的某一设备某一时间段内的订单")
+    @ApiOperation(value = "同步国内某客户的某一设备某一时间段内的 order 订单")
     @PostMapping("/getOrderByCAT")
     public ResponseModel<?> getOrderByCAT(String adminId, String clientId, String startTime, String endTime) {
         if (StringUtils.isNotEmpty(adminId) && StringUtils.isNotEmpty(clientId) && StringUtils.isNotEmpty(startTime) && StringUtils.isNotEmpty(endTime)) {
@@ -44,14 +44,19 @@ public class SyncOrderController {
 
             List<TOrder> orderList = R.getDataIfSuccess(syncOldFeign.getOrderByACT(l, clientId, startTime, endTime));
 
+            if (orderList.size()>1000) {
+                return R.fail("数据量过大,请缩短时间范围");
+            }
+
             for (TOrder order : orderList) {
-                System.out.println("order》》" + order);
-//                TODO: 这里插入数据失败
-//                orderService.save(order);
+//                System.out.println("order》》" + order);
+                payFeign.addOrder(order);
             }
+
             return R.ok(adminId + "同步设备" + clientId + "从" + startTime + "至" + endTime + "的 order 信息成功");
+        } else {
+            return R.fail("参数不能为空");
         }
-        return R.fail("参数不能为空");
     }
 
 }

+ 5 - 0
src/main/java/com/szwl/feign/bean/PayFeign.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.szwl.model.bo.ResponseModel;
 import com.szwl.model.entity.TAirwallexWallet;
+import com.szwl.model.entity.TCoinOrder;
 import com.szwl.model.entity.TOrder;
 import com.szwl.model.entity.TOrderDetails;
 import com.szwl.model.query.TAdminParam;
@@ -19,6 +20,7 @@ import java.util.List;
 
 // url 指定pay-server所在的地址
 @FeignClient(name = "pay-server")
+//@FeignClient(name = "pay-server", url = "http://127.0.0.1:49013")
 public interface PayFeign {
 
     @GetMapping("/test/testPay")
@@ -27,6 +29,9 @@ public interface PayFeign {
     @PostMapping("/tOrder/addOrder")
     ResponseModel<?> addOrder(@RequestBody TOrder order);
 
+    @PostMapping("/tCoinOrder/addCoinOrder")
+    ResponseModel<?> addCoinOrder(@RequestBody TCoinOrder coinOrder);
+
     @GetMapping("/tOrder/getOrder")
     ResponseModel<TOrder> getOrder(@RequestParam String id);
 

+ 23 - 1
src/main/java/com/szwl/feign/bean/SyncOldFeign.java

@@ -2,6 +2,7 @@ package com.szwl.feign.bean;
 
 import com.szwl.model.bo.ResponseModel;
 import com.szwl.model.entity.TAdmin;
+import com.szwl.model.entity.TCoinOrder;
 import com.szwl.model.entity.TEquipment;
 import com.szwl.model.entity.TOrder;
 import org.springframework.cloud.openfeign.FeignClient;
@@ -16,6 +17,19 @@ import java.util.List;
 //@FeignClient(name = "syncOld-server", url = "http://127.0.0.1:49015")
 public interface SyncOldFeign {
 
+
+
+    /**
+     * syncOrder 同步 coinOrder 表
+     * @param adminId
+     * @param clientId
+     * @param startTime
+     * @param endTime
+     * @return
+     */
+    @PostMapping("/syncCoinOrder/getCoinOrderByACT")
+    ResponseModel<List<TCoinOrder>> getCoinOrderByACT(@RequestParam Long adminId, @RequestParam String clientId, @RequestParam String startTime, @RequestParam String endTime);
+
     /**
      * syncOrder 同步 order 表
      * @param adminId
@@ -37,6 +51,15 @@ public interface SyncOldFeign {
     ResponseModel<TAdmin> getAdminById(@RequestParam String adminId);
 
     /**
+     * 查找 adminId 用户的所有 equipment
+     * @param adminId
+     * @return
+     */
+    @PostMapping("/syncOldByClient/getEquipmentByAdminId")
+    ResponseModel<List<TEquipment>> getEquipmentByAdminId(@RequestParam Long adminId);
+
+
+    /**
      * 通过 clientId 获取机器信息
      * @param clientId
      * @return
@@ -45,7 +68,6 @@ public interface SyncOldFeign {
     ResponseModel<TEquipment> getEquipmentByClientId(@RequestParam String clientId);
 
 
-
     /**
      * 获取某一时间段内的所有 equipment
      * @param startTime

+ 2 - 2
src/main/java/com/szwl/model/entity/TAdmin.java

@@ -28,8 +28,8 @@ public class TAdmin implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-//    @TableId(value = "id", type = IdType.AUTO)
-    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    @TableId(value = "id", type = IdType.AUTO)
+//    @TableId(value = "id", type = IdType.ASSIGN_ID)
     private Long id;
 
     @ApiModelProperty(value = "创建时间")

+ 17 - 3
src/main/java/com/szwl/service/impl/TAdminServiceImpl.java

@@ -3,8 +3,11 @@ package com.szwl.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.IdUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.szwl.manager.TokenManager;
+import com.szwl.model.bo.R;
 import com.szwl.model.bo.UserDetailBO;
 import com.szwl.model.entity.TAdmin;
 import com.szwl.mapper.TAdminMapper;
@@ -14,9 +17,11 @@ import com.szwl.service.SysRoleService;
 import com.szwl.service.SysUserRoleService;
 import com.szwl.service.TAdminService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.util.List;
 import java.util.Set;
 
@@ -30,13 +35,21 @@ import java.util.Set;
  */
 @Service
 public class TAdminServiceImpl extends ServiceImpl<TAdminMapper, TAdmin> implements TAdminService {
-    @Autowired
+//    @Autowired
     SysRoleService sysRoleService;
-    @Autowired
+//    @Autowired
     SysUserRoleService sysUserRoleService;
-    @Autowired
+//    @Autowired
     TokenManager tokenManager;
 
+    public TAdminServiceImpl(SysRoleService sysRoleService, SysUserRoleService sysUserRoleService, TokenManager tokenManager) {
+        this.sysRoleService = sysRoleService;
+        this.sysUserRoleService = sysUserRoleService;
+        this.tokenManager = tokenManager;
+    }
+
+    //    @Resource
+
     @Override
     public List<TAdmin> listByXml(TAdminParam param){
         return this.baseMapper.queryByXml(param);
@@ -61,4 +74,5 @@ public class TAdminServiceImpl extends ServiceImpl<TAdminMapper, TAdmin> impleme
         tokenManager.saveAuthentication(token,userDetailBO);
         return userDetailBO;
     }
+
 }