Browse Source

Merge branch 'test'

Ritchie 1 year ago
parent
commit
f8ba3e0513
67 changed files with 2417 additions and 397 deletions
  1. 1 1
      src/main/java/com/szwl/aspect/MyWebMvcConfigurer.java
  2. 6 0
      src/main/java/com/szwl/config/MybatisPlusConfig.java
  3. 1 0
      src/main/java/com/szwl/constant/AuditEnum.java
  4. 9 5
      src/main/java/com/szwl/constant/HuifuConstant.java
  5. 15 14
      src/main/java/com/szwl/controller/AlarmRecordIndexController.java
  6. 179 147
      src/main/java/com/szwl/controller/IndexController.java
  7. 33 0
      src/main/java/com/szwl/controller/RabbitMqController.java
  8. 203 0
      src/main/java/com/szwl/controller/SyncOldAdminController.java
  9. 67 0
      src/main/java/com/szwl/controller/SyncOldAllController.java
  10. 509 0
      src/main/java/com/szwl/controller/SyncOldEquipmentController.java
  11. 43 0
      src/main/java/com/szwl/controller/SyncOldJoinpayMchController.java
  12. 64 0
      src/main/java/com/szwl/controller/SyncOldProductController.java
  13. 49 0
      src/main/java/com/szwl/controller/SyncOldProportionController.java
  14. 2 2
      src/main/java/com/szwl/controller/TAdController.java
  15. 89 12
      src/main/java/com/szwl/controller/TAdminController.java
  16. 9 27
      src/main/java/com/szwl/controller/TEquipmentApplyController.java
  17. 121 80
      src/main/java/com/szwl/controller/TEquipmentController.java
  18. 102 0
      src/main/java/com/szwl/controller/THuifuMchController.java
  19. 18 9
      src/main/java/com/szwl/controller/TJoinpayMchController.java
  20. 45 14
      src/main/java/com/szwl/controller/TMessageCodeController.java
  21. 19 4
      src/main/java/com/szwl/controller/TNoticeController.java
  22. 8 6
      src/main/java/com/szwl/controller/TOrderController.java
  23. 2 0
      src/main/java/com/szwl/controller/TPromoCodeController.java
  24. 30 8
      src/main/java/com/szwl/controller/TProportionController.java
  25. 5 0
      src/main/java/com/szwl/feign/bean/PayFeign.java
  26. 71 0
      src/main/java/com/szwl/feign/bean/SyncOldFeign.java
  27. 16 0
      src/main/java/com/szwl/mapper/TDiyFlowerMapper.java
  28. 2 2
      src/main/java/com/szwl/mapper/TEquipmentApplyMapper.java
  29. 7 2
      src/main/java/com/szwl/mapper/TEquipmentMapper.java
  30. 5 0
      src/main/java/com/szwl/mapper/TMessageCodeMapper.java
  31. 21 0
      src/main/java/com/szwl/mapper/xml/TDiyFlowerMapper.xml
  32. 4 1
      src/main/java/com/szwl/mapper/xml/TEquipmentApplyMapper.xml
  33. 6 1
      src/main/java/com/szwl/mapper/xml/TEquipmentDescMapper.xml
  34. 9 1
      src/main/java/com/szwl/mapper/xml/TEquipmentMapper.xml
  35. 2 1
      src/main/java/com/szwl/mapper/xml/THuifuMchCheckMapper.xml
  36. 7 0
      src/main/java/com/szwl/mapper/xml/TMessageCodeMapper.xml
  37. 12 0
      src/main/java/com/szwl/model/bean/EquipmentVo.java
  38. 55 0
      src/main/java/com/szwl/model/bean/TEquipmentDTO.java
  39. 2 1
      src/main/java/com/szwl/model/entity/TAdmin.java
  40. 2 1
      src/main/java/com/szwl/model/entity/TCoinOrder.java
  41. 50 0
      src/main/java/com/szwl/model/entity/TDiyFlower.java
  42. 20 4
      src/main/java/com/szwl/model/entity/TEquipment.java
  43. 8 2
      src/main/java/com/szwl/model/entity/TEquipmentApply.java
  44. 17 1
      src/main/java/com/szwl/model/entity/TEquipmentDesc.java
  45. 3 0
      src/main/java/com/szwl/model/entity/THuifuMchCheck.java
  46. 2 1
      src/main/java/com/szwl/model/entity/TOrder.java
  47. 18 0
      src/main/java/com/szwl/model/param/UploadParms.java
  48. 0 1
      src/main/java/com/szwl/model/utils/YunPianSms.java
  49. 16 0
      src/main/java/com/szwl/service/TDiyFlowerService.java
  50. 2 2
      src/main/java/com/szwl/service/TEquipmentApplyService.java
  51. 2 2
      src/main/java/com/szwl/service/TEquipmentService.java
  52. 15 0
      src/main/java/com/szwl/service/THuifuMchService.java
  53. 7 0
      src/main/java/com/szwl/service/TJoinpayMchService.java
  54. 5 1
      src/main/java/com/szwl/service/TMessageCodeService.java
  55. 1 1
      src/main/java/com/szwl/service/TOrderService.java
  56. 17 3
      src/main/java/com/szwl/service/impl/TAdminServiceImpl.java
  57. 20 0
      src/main/java/com/szwl/service/impl/TDiyFlowerServiceImpl.java
  58. 2 2
      src/main/java/com/szwl/service/impl/TEquipmentApplyServiceImpl.java
  59. 9 2
      src/main/java/com/szwl/service/impl/TEquipmentServiceImpl.java
  60. 119 9
      src/main/java/com/szwl/service/impl/THuifuMchServiceImpl.java
  61. 72 12
      src/main/java/com/szwl/service/impl/TJoinpayMchServiceImpl.java
  62. 20 9
      src/main/java/com/szwl/service/impl/TMessageCodeServiceImpl.java
  63. 3 3
      src/main/java/com/szwl/service/impl/TOrderServiceImpl.java
  64. 25 2
      src/main/java/com/szwl/util/HuifuUtils.java
  65. 97 0
      src/main/java/com/szwl/util/IDGenerator.java
  66. 16 0
      src/main/java/com/szwl/util/InsertBatchSomeColumnSqlInjector.java
  67. 1 1
      src/test/java/com/szwl/AutoGeneratorTests.java

+ 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","/tEquipmentDeleted/delOneDevice","/tWechat/**","/wxLogin/**"};
+                "/tLabel/**","/tArea/**","/error","/tWechat/**","/wxLogin/**", "/syncOldAdmin/**", "/syncOldAll/**", "/syncOldEquipment/**", "/syncOldProduct/**"};
         registry.addInterceptor(headTokenInterceptor).addPathPatterns("/**")
                 // swagger
                 .excludePathPatterns(swaggerExcludes)

+ 6 - 0
src/main/java/com/szwl/config/MybatisPlusConfig.java

@@ -3,6 +3,7 @@ package com.szwl.config;
 import com.baomidou.mybatisplus.annotation.DbType;
 import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import com.szwl.util.InsertBatchSomeColumnSqlInjector;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
@@ -20,4 +21,9 @@ public class MybatisPlusConfig {
         return interceptor;
     }
 
+
+    @Bean
+    public InsertBatchSomeColumnSqlInjector insertBatchSomeColumnSqlInjector() {
+        return new InsertBatchSomeColumnSqlInjector();
+    }
 }

+ 1 - 0
src/main/java/com/szwl/constant/AuditEnum.java

@@ -15,6 +15,7 @@ public enum AuditEnum implements IEnum<String> {
     UPDATE("UPDATE","修改"),
     DELETE("DELETE","删除"),
     LOGIN("LOGIN","登录"),
+    OFFLINE("OFFLINE","脱机"),
     PAY_ORDER("PAY_ORDER", "支付订单");
 
     private String code;

+ 9 - 5
src/main/java/com/szwl/constant/HuifuConstant.java

@@ -329,23 +329,27 @@ public class HuifuConstant {
         F22,
         F24,
         F40,
-        F41;
+        F41,
+        F55,
+        F56;
 
 
         private static Map<String, fileType> map = new HashMap<>();
 
         static {
             map.put("法人身份证正反面", F01);
-            map.put("法人身份证国徽面(人像面)", F02);
-            map.put("法人身份证人像面(国徽面)", F03);
+            map.put("法人身份证面(人像面)", F02);
+            map.put("法人身份证面(国徽面)", F03);
             map.put("营业执照", F07);
             map.put("开户许可证", F08);
             map.put("银行卡正面", F13);
             map.put("银行卡反面", F14);
             map.put("(线下场景)门头照", F22);
             map.put("(线下场景)内景照", F24);
-            map.put("法人身份证人像面", F40);
-            map.put("法人身份证国徽面", F41);
+            map.put("个人信息身份证人像面", F40);
+            map.put("个人信息身份证国徽面", F41);
+            map.put("结算人身份证人像面", F55);
+            map.put("结算人身份证国徽面", F56);
         }
 
         public static fileType forValue(String value) {

+ 15 - 14
src/main/java/com/szwl/controller/AlarmRecordIndexController.java

@@ -51,13 +51,8 @@ public class AlarmRecordIndexController {
         List<TEquipment> list = equipmentService.list(query);
         TEquipment equipment = list.get(0);
         if (equipment == null) {
-//            return JsonMessage.error("添加报警记录失败");
             return "添加报警记录失败";
         }
-//        if (equipment.getType() == null) {
-////            return JsonMessage.error("商家类型不存在");
-//            return "商家类型不存在";
-//        }
         Integer type = equipment.getType();
         Long adminId = equipment.getAdminId();
         Long equipmentId = equipment.getId();
@@ -81,6 +76,7 @@ public class AlarmRecordIndexController {
         TAdmin admin = adminService.getById(adminId);
         String email = admin.getEmail();
         String ifForeign = admin.getIfForeign();
+        String companyType = admin.getCompanyType();
         if(ifForeign.equals("1")){
             if(email!=null){
                 String subject = "Error message from Magic Candy Machine";
@@ -101,10 +97,8 @@ public class AlarmRecordIndexController {
                         "Magic Candy Service Team";
                 contnet.append(str1).append(name).append(str2).append(alarmRecordVo.getOccurrenceTime()).append(str3).append(alarmContent).append(str4);
                 new MailUtil().send(email,subject,contnet.toString());
-//                return JsonMessage.success("报警记录添加成功");
                 return "报警记录添加成功";
             }else {
-//                return JsonMessage.error("email is null");
                 return "email is null";
             }
         }
@@ -118,22 +112,30 @@ public class AlarmRecordIndexController {
                         if (StringUtils.isNotEmpty(split[i])) {
                             Long id = alarmRecord.getId();
                             String mess = ";序号:"+String.valueOf(id);
-                            result = YunPianSms.sendSms(appid, getMessage(alarmContent+mess, name, clientId), split[i]);
+                            if (StringUtils.isNotEmpty(companyType) && companyType.equals("1")) {
+                                // 如果是七云科技的用户
+                                result = YunPianSms.sendSms(appid, getSCMessage(alarmContent, name, clientId), split[i]);
+                            } else {
+                                // 如果是申泽智能的用户
+                                result = YunPianSms.sendSms(appid, getMessage(alarmContent+mess, name, clientId), split[i]);
+                            }
                         }
                     }
                 }
             }
 
         } catch (Exception e) {
-//            logger.info("短信发送结果:" + result);
         }
-//        return JsonMessage.success("报警记录添加成功");
         return "报警记录添加成功";
     }
 
     private String getMessage(String content, String name, String clientId) {
+        String message = "【申泽智能】您好,机器" + content + ",机器名:" + name + ",设备号:" + clientId;
+        return message;
+    }
 
-        String message = "您好,机器" + content + ",机器名:" + name + ",设备号:" + clientId;
+    private String getSCMessage(String content, String name, String clientId) {
+        String message = "【七云科技】您好,机器报警:" + content + ",机器名:" + name + ",设备编号:" + clientId + "。";
         return message;
     }
 
@@ -145,7 +147,6 @@ public class AlarmRecordIndexController {
     public String getTime() {
         Date date = new Date();
         SimpleDateFormat sformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//日期格式
-//        return JsonMessage.success(sformat.format(date));
         return sformat.format(date);
     }
 
@@ -164,9 +165,9 @@ public class AlarmRecordIndexController {
         TEquipment equipment = list.get(0);
         Date endDate = equipment.getEndDate();
         long endDateTime = endDate.getTime();
-        long time = new Date().getTime();
+        long time = System.currentTimeMillis();
         if(endDateTime>time){
-            if(endDateTime-time<=3*24*3600*1000l){
+            if(endDateTime-time<=3*24*3600*1000L){
                 //发短信
                 String result = null;
                 try {

+ 179 - 147
src/main/java/com/szwl/controller/IndexController.java

@@ -16,10 +16,14 @@ import com.szwl.model.utils.HttpClientSslUtils;
 import com.szwl.model.utils.PushUtils;
 import com.szwl.service.*;
 import com.szwl.service.es.EsTEquipmentService;
+import com.szwl.util.IDGenerator;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.StringUtils;
+import org.springframework.amqp.core.AmqpAdmin;
+import org.springframework.amqp.core.Binding;
+import org.springframework.amqp.core.Queue;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -36,29 +40,45 @@ import java.util.*;
 @Api(value = "/indexController", tags = {"设备信息上传接口"})
 @RestController
 @RequestMapping("/api/app_equipment/index")
-public class IndexController { ;
+public class IndexController {
+
     @Autowired
     TAdminService adminService;
+
     @Autowired
     TEquipmentService equipmentService;
+
     @Autowired
     TEquipmentApplyService equipmentApplyService;
+
     @Autowired
     TProductService productService;
+
     @Autowired
     TProportionService proportionService;
+
     @Autowired
     TEquipmentDescService equipmentDescService;
+
     @Autowired
     EsTEquipmentService esTEquipmentService;
+
     @Autowired
     TParametersService parametersService;
+
     @Autowired
     TPriceService priceService;
+
     @Autowired
     TPromoCodeService promoCodeService;
+
+    @Autowired
+    TDiyFlowerService diyFlowerService;
+
+    @Autowired
+    private AmqpAdmin amqpAdmin;
+
     @ApiOperation(value = "心跳")
-//    @PostMapping("/heart.htm")
     @RequestMapping(value = "/heart.htm", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
     @ResponseBody
     public String heart(@RequestBody EquipmentVo equipmentVo) {
@@ -76,13 +96,15 @@ public class IndexController { ;
         Integer eqeStatus = equipmentVo.getEqeStatus();
         Boolean is_sleep = equipmentVo.getIs_sleep();
         String netWorkingMode = equipmentVo.getNetWorkingMode();
+        String numberOne = equipmentVo.getNumberOne();
+        String candyGeneratorTm = equipmentVo.getCandyGeneratorTm();
+        String outsideTm = equipmentVo.getOutsideTm();
+        String outsideHd = equipmentVo.getOutsideHd();
+
         //有记录,则进行修改
         LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
         query.eq(TEquipment::getClientId,clientId);
-//        List<TEquipment> list = equipmentService.list(query);
-//        TEquipment _new = list.get(0);
         TEquipment _new = equipmentService.getOne(query);
-//        Equipment _new = equipmentService.findByClientId(clientId);
         if (_new != null) {
             _new.setNetWorkingMode(netWorkingMode);
             if(StringUtils.isNotEmpty(cabinetTm)){
@@ -152,11 +174,21 @@ public class IndexController { ;
             if(StringUtils.isNotEmpty(equipmentVo.getCornGeneratorTm())){
                 equipmentDesc.setCornGeneratorTm(equipmentVo.getCornGeneratorTm());
             }
+            if(StringUtils.isNotEmpty(numberOne)){
+                equipmentDesc.setNumberOne(numberOne);
+            }
+            if(StringUtils.isNotEmpty(candyGeneratorTm)){
+                equipmentDesc.setCandyGeneratorTm(candyGeneratorTm);
+            }
+            if(StringUtils.isNotEmpty(outsideHd)){
+                equipmentDesc.setOutsideHd(outsideHd);
+            }
+            if(StringUtils.isNotEmpty(outsideTm)){
+                equipmentDesc.setOutsideTm(outsideTm);
+            }
             equipmentDescService.updateById(equipmentDesc);
-//            return JsonMessage.success("心跳成功");
             return "心跳成功";
         }
-//        return JsonMessage.error("心跳失败");
         return "心跳失败";
     }
     /**
@@ -311,8 +343,6 @@ public class IndexController { ;
                                         //从18种变成30种花型
                                         saveProductMG12(equipment.getId());
                                     }
-                                    //从18种变成30种花型
-//                                    saveProductMG12(equipment.getId());
                                 }
                                 equipment.setEquimentType("MG320");
                             }
@@ -331,10 +361,6 @@ public class IndexController { ;
                                     proportionService.removeById(proportion.getId());
                                 }
                             }
-//                            if(String.valueOf(adminId).equals("3")||String.valueOf(adminId).equals("31")||String.valueOf(adminId).equals("506")||String.valueOf(adminId).equals("1090")){
-//                                //自动设置分销
-//                                setProportion(adminId,equipment.getId(),clientId);
-//                            }
                             try {
                                 esTEquipmentService.updateDataById(equipment);
                             }catch (Exception e) {
@@ -355,6 +381,7 @@ public class IndexController { ;
                         }else{
 
                             TEquipment equipment = new TEquipment();
+                            equipment.setId(IDGenerator.commonID());
                             equipment.setCreateDate(new Date());
                             equipment.setModifyDate(new Date());
                             equipment.setClientId(clientId);
@@ -377,12 +404,6 @@ public class IndexController { ;
                             }else {
                                 equipment.setEquimentType(equimentType);
                             }
-//                            if(equimentType.equals("MG330")){
-//                                equipment.setEquimentType("MG330");
-//                            }
-//                            if(equimentType.equals("POP320")){
-//                                equipment.setEquimentType(equimentType);
-//                            }
                             if(!StringUtils.isEmpty(equimentType)&&equimentType.equals("MG280")){
                                 Long monthBegin = getMonthBegin(new Date());
                                 long time = System.currentTimeMillis();
@@ -404,17 +425,10 @@ public class IndexController { ;
                                 equipmentService.sentMessage(clientId,PushUtils.buildJson("statusType", "agreed" + old).toString());
                                 PushUtils.push(equipmentApply.getGtClientId(), "【爆米花】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString());
                             }
-//                            Equipment byClientId = equipmentService.findByClientId(equipment.getClientId());
-//                            String data = com.alibaba.fastjson.JSON.toJSONString(byClientId);
                             LambdaQueryWrapper<TEquipment> query3 = Wrappers.lambdaQuery();
                             query3.eq(TEquipment::getClientId,clientId);
                             TEquipment tEquipment = equipmentService.getOne(query3);
-//                            List<TEquipment> list1 = equipmentService.list(query3);
                             try {
-//                                if(list1.size()>0){
-//                                    TEquipment tEquipment = list1.get(0);
-//                                    esTEquipmentService.insertData(tEquipment);
-//                                }
                                 if(tEquipment != null) {
                                     esTEquipmentService.insertData(tEquipment);
                                 }
@@ -426,13 +440,10 @@ public class IndexController { ;
                             equipmentDescService.save(equipmentDesc);
                         }
                         //获取设备的id
-//                        Long equipmentId = equipmentService.findByClientId(clientId).getId();
                         LambdaQueryWrapper<TEquipment> query1 = Wrappers.lambdaQuery();
                         query1.eq(TEquipment::getClientId,clientId);
-//                        List<TEquipment> list1 = equipmentService.list(query1);
                         TEquipment equipment = equipmentService.getOne(query1);
                         Long equipmentId = equipment.getId();
-//                        if (!productService.exists(Filter.eq("equipmentId", equipmentId))) {
                         if(StringUtils.isEmpty(machineType) || machineType.equals("0")) {
                             if(equipmentApply.getEquimentType()!=null&&equipmentApply.getEquimentType().equals("MG280")){
                                 saveProductMG280(equipmentId);
@@ -454,7 +465,6 @@ public class IndexController { ;
                     } else if (status.equals("rejected")) {
                         equipmentApply.setStatusType(2);
                         equipmentService.sentMessage(equipmentApply.getClientId(),PushUtils.buildJson("statusType", "rejected").toString());
-//                        PushUtils.push(equipmentApply.getGtClientId(), "【棉花糖】设备初始化申请", "拒绝", PushUtils.buildJson("statusType", "rejected").toString());
                     }
                     equipmentApplyService.updateById(equipmentApply);
                 }
@@ -490,11 +500,6 @@ public class IndexController { ;
                         case 2:
                             equipmentProportion.setProportion(adminProportion.getMerchantProportion());
                             equipmentProportion.setAgencyProportion(adminProportion.getAgencyProportion());
-//                                    if(adminProportion.getAgencyProportion().compareTo(new BigDecimal("0.00"))!=0){
-//                                        equipmentProportion.setAgencyId(admin.getAgencyId());
-//                                        TAdmin byId = adminService.getById(admin.getAgencyId());
-//                                        equipmentProportion.setAgencyName(byId.getUsername());
-//                                    }
                             equipmentProportion.setAgencyId(adminProportion.getAgencyId());
                             TAdmin byId = adminService.getById(adminProportion.getAgencyId());
                             equipmentProportion.setAgencyName(byId.getUsername());
@@ -505,20 +510,10 @@ public class IndexController { ;
                         case 3:
                             equipmentProportion.setProportion(adminProportion.getPersonageProportion());
                             equipmentProportion.setAgencyProportion(adminProportion.getAgencyProportion());
-//                                    if(adminProportion.getAgencyProportion().compareTo(new BigDecimal("0.00"))!=0){
-//                                        equipmentProportion.setAgencyId(admin.getAgencyId());
-//                                        TAdmin byId = adminService.getById(admin.getAgencyId());
-//                                        equipmentProportion.setAgencyName(byId.getUsername());
-//                                    }
                             equipmentProportion.setAgencyId(adminProportion.getAgencyId());
                             TAdmin byId1 = adminService.getById(adminProportion.getAgencyId());
                             equipmentProportion.setAgencyName(byId1.getUsername());
                             equipmentProportion.setMerchantProportion(adminProportion.getMerchantProportion());
-//                                    if(adminProportion.getMerchantProportion().compareTo(new BigDecimal("0.00"))!=0){
-//                                        equipmentProportion.setMerchantId(admin.getMerchantId());
-//                                        TAdmin byId = adminService.getById(admin.getMerchantId());
-//                                        equipmentProportion.setMerchantName(byId.getUsername());
-//                                    }
                             equipmentProportion.setMerchantId(adminProportion.getMerchantId());
                             TAdmin byId2 = adminService.getById(adminProportion.getMerchantId());
                             equipmentProportion.setMerchantName(byId2.getUsername());
@@ -710,6 +705,7 @@ public class IndexController { ;
         // 获取本月第一天的时间戳
         return c.getTimeInMillis();
     }
+
     public static Date nextMonthDate() {
         Calendar calendar = Calendar.getInstance();
         calendar.set(Calendar.DAY_OF_MONTH,10);
@@ -777,6 +773,7 @@ public class IndexController { ;
             return "error";
         }
     }
+
     /**
      * 设备类型  开机时上传
      *
@@ -794,10 +791,9 @@ public class IndexController { ;
             equipment.setEquimentType(equimentType);
             equipmentService.updateById(equipment);
         }
-
-//        return JsonMessage.success("success");
         return "success";
     }
+
     /**
      * 设备地址  开机时上传
      * @param clientId  个推
@@ -814,12 +810,11 @@ public class IndexController { ;
             equipment.setLongitude(Double.valueOf(longitude));
             equipment.setFullName(fullName+"-");
             equipmentService.updateById(equipment);
-//            return JsonMessage.success("success");
             return "success";
         }
-//        return JsonMessage.success("error");
         return "error";
     }
+
     /**
      * 商品调价
      */
@@ -864,12 +859,15 @@ public class IndexController { ;
 
         return "调价成功";
     }
+
     public Double tran(Double d){
         return new BigDecimal(d).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
     }
+
     public Double tran2(Double d){
         return new BigDecimal(d).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
     }
+
     /**
      * 密码修改
      *
@@ -895,14 +893,13 @@ public class IndexController { ;
                         break;
                 }
                 equipmentService.updateById(equipment);
-//                return JsonMessage.success("更新密码成功");
                 return "更新密码成功";
             }
 
         }
-//        return JsonMessage.error("更新密码失败");
         return "更新密码失败";
     }
+
     /**
      * 设备获取密码
      */
@@ -924,6 +921,7 @@ public class IndexController { ;
         jsonObject.put("errmsg", "");
         return jsonObject.toJSONString();
     }
+
     /**
      * 修改支付方式
      *
@@ -1015,7 +1013,6 @@ public class IndexController { ;
         }
     }
 
-
     /**
      * 脱离系统
      *
@@ -1039,6 +1036,7 @@ public class IndexController { ;
         equipmentService.updateById(equipment);
         return "脱离成功";
     }
+
     /**
      * 脱离系统
      *
@@ -1063,8 +1061,6 @@ public class IndexController { ;
         return "脱离成功";
     }
 
-
-
     /**
      * 修改设备联系人名称以及电话
      */
@@ -1099,6 +1095,7 @@ public class IndexController { ;
         equipmentService.updateById(equipment);
         return "修改成功";
     }
+
     /**
      * 获取二维码图片
      */
@@ -1113,6 +1110,7 @@ public class IndexController { ;
         }
         return "400";
     }
+
     /**
      * 上传4G卡号
      */
@@ -1123,14 +1121,13 @@ public class IndexController { ;
         query.eq(TEquipment::getClientId,clientId);
         TEquipment equipment = equipmentService.getOne(query);
         if (equipment == null) {
-//            return JsonMessage.error("该设备不存在");
             return "该设备不存在";
         }
         equipment.setSimNo(simNo);
         equipmentService.updateById(equipment);
-//        return JsonMessage.success("修改成功");
         return "修改成功";
     }
+
     /**
      * 上传机器的apk版本
      */
@@ -1147,6 +1144,7 @@ public class IndexController { ;
         equipmentService.updateById(equipment);
         return "success";
     }
+
     /**
      * 上传机器的做糖状态
      */
@@ -1165,6 +1163,7 @@ public class IndexController { ;
         equipmentDescService.updateById(equipmentDesc);
         return "success";
     }
+
     /**
      * 修改设备状态
      *
@@ -1188,6 +1187,7 @@ public class IndexController { ;
         }
         return "修改成功";
     }
+
     /**
      * 新修改设备状态
      *
@@ -1202,7 +1202,6 @@ public class IndexController { ;
         query.eq(TEquipment::getClientId,clientId);
         TEquipment equipment = equipmentService.getOne(query);
         if (equipment == null) {
-//            return JsonMessage.error("该设备不存在");
             return "该设备不存在";
         }
         if(eqeStatus!=null){
@@ -1210,9 +1209,9 @@ public class IndexController { ;
             equipment.setEqeStatus(eqeStatus);
             equipmentService.updateById(equipment);
         }
-//        return JsonMessage.success("修改成功");
         return "修改成功";
     }
+
     /**
      * 修改设备锁定状态
      *
@@ -1227,7 +1226,6 @@ public class IndexController { ;
         query.eq(TEquipment::getClientId,clientId);
         TEquipment equipment = equipmentService.getOne(query);
         if (equipment == null) {
-//            return JsonMessage.error("该设备不存在");
             return "该设备不存在";
         }
         equipment.setIsBlocked(block);
@@ -1308,12 +1306,11 @@ public class IndexController { ;
 
     /**
      * 修改设备共同参数/进阶参数
-     *  code 0:通用参数;1:进阶参数;2:调试页参数
+     *  code 0:通用参数;1:进阶参数;2:调试页参数;3:湿度参数
      * @param
      * @return
      */
     @RequestMapping(value = "/updateParamNew", method = RequestMethod.POST)
-//    @PostMapping(value = "/updateParamNew", produces = "text/html;charset=utf-8")
     @ResponseBody
     public String updateParamNew(Integer code, String clientId, @RequestBody List<CommonParamVo> commonParamVos) {
         LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
@@ -1329,9 +1326,9 @@ public class IndexController { ;
         queryParameters.eq(TParameters::getClientId,clientId);
         queryParameters.eq(TParameters::getStatus,code);
         queryParameters.eq(TParameters::getEquipmentId,equipment.getId());
-        List<TParameters> list1 = parametersService.list(queryParameters);
-        if(list1.size()>0){
-            for(TParameters parameters:list1){
+        List<TParameters> list = parametersService.list(queryParameters);
+        if(list.size()>0){
+            for(TParameters parameters:list){
                 //删除旧的参数
                 parametersService.removeById(parameters.getId());
             }
@@ -1353,7 +1350,7 @@ public class IndexController { ;
 
     /**
      * 修改单个设备共同参数/进阶参数
-     *  code 0:通用参数;1:进阶参数;2:调试页参数
+     *  code 0:通用参数;1:进阶参数;2:调试页参数;3:湿度参数
      * @param
      * @return
      */
@@ -1364,15 +1361,8 @@ public class IndexController { ;
         query.eq(TEquipment::getClientId,clientId);
         TEquipment equipment = equipmentService.getOne(query);
         if (equipment == null) {
-//            return JsonMessage.error("设备不存在");
             return "设备不存在";
         }
-//        ArrayList<Filter> filters = new ArrayList<>();
-//        filters.add(Filter.eq("status", code));
-//        filters.add(Filter.eq("clientId", clientId));
-//        filters.add(Filter.eq("equipmentId", equipment.getId()));
-//        filters.add(Filter.eq("name", name));
-//        List<Parameters> list = parametersService.findList(null, filters, null);
         LambdaQueryWrapper<TParameters> queryParameters = Wrappers.lambdaQuery();
         queryParameters.eq(TParameters::getClientId,clientId);
         queryParameters.eq(TParameters::getStatus,code);
@@ -1388,6 +1378,7 @@ public class IndexController { ;
 
         return "修改成功";
     }
+
     /**
      * 获取机器列表
      */
@@ -1405,7 +1396,6 @@ public class IndexController { ;
             jsonObject.put("errmsg", "name为空");
             return jsonObject.toJSONString();
         }
-//        Admin admin = adminService.find(Long.valueOf(adminId));
         TAdmin admin = adminService.getById(adminId);
         if(!admin.getUsername().equals(name)){
             jsonObject.put("code", 1);
@@ -1416,7 +1406,6 @@ public class IndexController { ;
         LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
         query.eq(TEquipment::getAdminId,Long.valueOf(adminId));
         List<TEquipment> equipmentList = equipmentService.list(query);
-//        List<TEquipment> equipmentList = equipmentService.findByAdminId(Long.valueOf(adminId));
         for(TEquipment equipment:equipmentList){
             EquipmentDTO equipmentDTO = new EquipmentDTO();
             equipmentDTO.setClientId(equipment.getClientId());
@@ -1453,27 +1442,21 @@ public class IndexController { ;
             jsonObject.put("errmsg", "clientId为空");
             return jsonObject.toJSONString();
         }
-//        KafkaProperties.Admin admin = adminService.find(Long.valueOf(adminId));
         TAdmin admin = adminService.getById(Long.valueOf(adminId));
 
         LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
         query.eq(TEquipment::getClientId,clientId);
         TEquipment equipment = equipmentService.getOne(query);
-//        Equipment equipment = equipmentService.findByClientId(clientId);
 
         if(!equipment.getAdminId().toString().equals(admin.getId().toString())){
             jsonObject.put("code", 1);
             jsonObject.put("errmsg", "clientId与adminId不匹配");
             return jsonObject.toJSONString();
         }
-//        ArrayList<Filter> filters = new ArrayList<>();
-//        filters.add(Filter.eq("equipmentId", equipment.getId()));
-//        List<Product> products = productService.findList(null, filters, null);
         List<String> list = new ArrayList<>();
         LambdaQueryWrapper<TProduct> queryProduct = Wrappers.lambdaQuery();
         queryProduct.eq(TProduct::getEquipmentId,equipment.getId());
         List<TProduct> products = productService.list(queryProduct);
-//        TProduct tProduct = products.get(0);
         for (TProduct product:products){
             list.add(product.getProductName());
         }
@@ -1503,58 +1486,16 @@ public class IndexController { ;
         LambdaQueryWrapper<TProduct> queryProduct = Wrappers.lambdaQuery();
         queryProduct.eq(TProduct::getEquipmentId,equipment.getId());
         List<TProduct> products = productService.list(queryProduct);
-//        TProduct tProduct = products.get(0);
         for (TProduct product:products){
             product.setCreateDate(null);
             product.setModifyDate(null);
         }
-//        jsonObject.put("code", 0);
-//        jsonObject.put("productions", JsonUtils.toJson(list));
-//        jsonObject.put("errmsg", "");
-//        jsonObject.put("total", list.size());
-//        return jsonObject.toJSONString();
         JSONObject jsonObject1 = new JSONObject();
         jsonObject1.put("code", 0);
         jsonObject1.put("data", JSONObject.toJSON(products).toString());
         jsonObject1.put("errmsg", "");
-//        return jsonObject1.toString();
         return JSONObject.toJSON(products).toString();
     }
-//    @ApiOperation(value = "分页查询")
-//    @GetMapping("/testPage")
-//    public ResponseModel<IPage<?>> testPage(TAdminParam param) {
-//        LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
-//        query.eq(TAdmin::getIsEnabled,true);
-//        if(StrUtil.isNotBlank(param.getName())){
-//            query.like(TAdmin::getName,param.getName());
-//        }
-//        query.orderByDesc(TAdmin::getApplyStartTime);
-//        Page<TAdmin> page = new Page<>(param.getCurrent(), param.getSize(), true);
-//        IPage<TAdmin> iPage = tAdminService.page(page, query);
-//        return R.ok(iPage);
-//    }
-//
-//    @ApiOperation(value = "列表查询")
-//    @GetMapping("/testList")
-//    public ResponseModel<List<?>> testList(TAdminParam param) {
-//        LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
-//        query.eq(TAdmin::getIsEnabled,true);
-//        if(StrUtil.isNotBlank(param.getName())){
-//            query.like(TAdmin::getName,param.getName());
-//        }
-//        query.orderByDesc(TAdmin::getApplyStartTime);
-//        List<TAdmin> list = tAdminService.list(query);
-//        return R.ok(list);
-//    }
-//    @ApiOperation(value = "返回失败")
-//    @GetMapping("/testError")
-//    public ResponseModel<List<?>> testError(boolean success) {
-//        if(success){
-//            return R.ok();
-//        }else{
-//            return R.fail(ResponseCodesEnum.B0001,"你的错误信息");
-//        }
-//    }
 
     /**
      *是否启用物料监控功能
@@ -1605,6 +1546,7 @@ public class IndexController { ;
         promoCodeService.updateById(promoCode);
         return "success";
     }
+
     //验证优惠码
     @RequestMapping(value = "/selectCode.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
     @ResponseBody
@@ -1620,7 +1562,6 @@ public class IndexController { ;
         TPromoCode promoCode = new TPromoCode();
         if (codeList.size() == 0) {
             //不存在
-//            return JsonMessage.success("1");
             return "1";
         }
         for (TPromoCode cod : codeList) {
@@ -1636,7 +1577,6 @@ public class IndexController { ;
         }
         if(promoCode.getAdminId()==null){
             //不是本机
-//            return JsonMessage.success("3");
             return "3";
         }
         Date lastUseDate = null;
@@ -1648,17 +1588,14 @@ public class IndexController { ;
             promoCode.setIsUse("2");
             promoCodeService.updateById(promoCode);
             //过期
-//            return JsonMessage.success("4");
             return "4";
         }
         if (promoCode.getId() == null) {
             //不存在
-//            return JsonMessage.success("1");
             return "1";
         }
         if (promoCode.getIsUse().equals("1")) {
             //被使用
-//            return JsonMessage.success("2");
             return "2";
         }
         if(!promoCode.getAdminId().equals("1")){
@@ -1666,23 +1603,20 @@ public class IndexController { ;
 
             } else {
                 //不是本机
-//                return JsonMessage.success("3");
                 return "3";
             }
         }
         if (promoCode.getDiscount() == null) {
             //旧优惠码
-//            return JsonMessage.success("0");
             return "0";
         }
         if (promoCode.getDiscount() != null && promoCode.getDiscount() == 0) {
             //0折
-//            return JsonMessage.success("0");
             return "0";
         }
-//        return JsonMessage.success("success");
         return "success";
     }
+
     //修改机器的分销
     @RequestMapping(value = "/updateProportion.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
     @ResponseBody
@@ -1741,11 +1675,6 @@ public class IndexController { ;
                                 case 2:
                                     equipmentProportion.setProportion(adminProportion.getMerchantProportion());
                                     equipmentProportion.setAgencyProportion(adminProportion.getAgencyProportion());
-//                                    if(adminProportion.getAgencyProportion().compareTo(new BigDecimal("0.00"))!=0){
-//                                        equipmentProportion.setAgencyId(admin.getAgencyId());
-//                                        TAdmin byId = adminService.getById(admin.getAgencyId());
-//                                        equipmentProportion.setAgencyName(byId.getUsername());
-//                                    }
                                     equipmentProportion.setAgencyId(admin.getAgencyId());
                                     TAdmin byId = adminService.getById(admin.getAgencyId());
                                     equipmentProportion.setAgencyName(byId.getUsername());
@@ -1756,20 +1685,10 @@ public class IndexController { ;
                                 case 3:
                                     equipmentProportion.setProportion(adminProportion.getPersonageProportion());
                                     equipmentProportion.setAgencyProportion(adminProportion.getAgencyProportion());
-//                                    if(adminProportion.getAgencyProportion().compareTo(new BigDecimal("0.00"))!=0){
-//                                        equipmentProportion.setAgencyId(admin.getAgencyId());
-//                                        TAdmin byId = adminService.getById(admin.getAgencyId());
-//                                        equipmentProportion.setAgencyName(byId.getUsername());
-//                                    }
                                     equipmentProportion.setAgencyId(admin.getAgencyId());
                                     TAdmin byId1 = adminService.getById(admin.getAgencyId());
                                     equipmentProportion.setAgencyName(byId1.getUsername());
                                     equipmentProportion.setMerchantProportion(adminProportion.getMerchantProportion());
-//                                    if(adminProportion.getMerchantProportion().compareTo(new BigDecimal("0.00"))!=0){
-//                                        equipmentProportion.setMerchantId(admin.getMerchantId());
-//                                        TAdmin byId = adminService.getById(admin.getMerchantId());
-//                                        equipmentProportion.setMerchantName(byId.getUsername());
-//                                    }
                                     equipmentProportion.setMerchantId(admin.getMerchantId());
                                     TAdmin byId2 = adminService.getById(admin.getMerchantId());
                                     equipmentProportion.setMerchantName(byId2.getUsername());
@@ -1788,6 +1707,7 @@ public class IndexController { ;
         }
         return "success";
     }
+
     /**
      *
      *
@@ -1818,8 +1738,9 @@ public class IndexController { ;
         }
         return "error";
     }
+
     /**
-     *修改优惠券开关状态
+     * 修改优惠券开关状态
      *
      * @param clientId
 
@@ -1984,5 +1905,116 @@ public class IndexController { ;
         return "success";
     }
 
+    /**
+     * 上传DIY花型功能开关状态
+     * @param clientId:设备编号
+     * @param DIYFlowerStatus:开关状态, 0: 关闭, 1: 开启
+     * @return
+     */
+    @GetMapping(value = "/updateDIYFlowerStatus")
+    @ResponseBody
+    public String updateDIYFlowerStatus(String clientId, String DIYFlowerStatus){
+        if(StringUtils.isNotEmpty(clientId)&&StringUtils.isNotEmpty(DIYFlowerStatus)){
+            LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
+            query.eq(TEquipment::getClientId,clientId);
+            TEquipment equipment = equipmentService.getOne(query);
+            TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
+            equipmentDesc.setDiyFlowerStatus(DIYFlowerStatus);
+            equipmentDescService.updateById(equipmentDesc);
+            // 如果为开启状态
+            if (DIYFlowerStatus.equals("1")) {
+                LambdaQueryWrapper<TDiyFlower> queryWrapper = Wrappers.lambdaQuery();
+                queryWrapper.eq(TDiyFlower::getEquipmentId, equipment.getId());
+                List<TDiyFlower> list = diyFlowerService.list(queryWrapper);
+                // 如何为空就添加新的花型形状和颜色
+                if (list.size() == 0) {
+                    saveDIYProduct(equipment.getId());
+                }
+            }
+            return "success";
+        }
+        return "error";
+    }
+
+    /**
+     * 添加DIY花型产品
+     * @param id
+     */
+    private void saveDIYProduct(Long id) {
+        String[] str = {"圆五花-S01", "圆心-S02", "心-S03", "圆蝴蝶-S04", "圆四叶草-S05", "圆六花瓣-S06", "圆三叶草-A07", "圆三花瓣-S08", "蘑菇-S09",
+                "白糖-T01", "红糖-T02", "黄糖-T03", "蓝糖-T04"};
+
+        for (int i = 0; i < str.length; i++) {
+            TDiyFlower diyFlower = new TDiyFlower();
+            diyFlower.setCreateDate(new Date());
+            diyFlower.setModifyDate(new Date());
+            diyFlower.setEquipmentId(id);
+            String[] split = str[i].split("-");
+            diyFlower.setName(split[0]);
+            diyFlower.setNo(split[1]);
+            diyFlower.setShowType("1");
+            diyFlowerService.save(diyFlower);
+        }
+
+    }
+
+    /**
+     * 上传DIY花型形状/糖显示状态
+     * @param clientId 设备编号
+     * @param tProductBean 包含形状/糖的编号和状态
+     * @return
+     */
+    @RequestMapping(value = "/updateDIYFlowerShow", method = RequestMethod.POST)
+    @ResponseBody
+    public String updateDIYFlowerShow(@RequestParam String clientId, @RequestBody List<TProductBean> tProductBean) {
+        if(StringUtils.isEmpty(clientId)||tProductBean == null) {
+            return "参数为空";
+        }
+        LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
+        query.eq(TEquipment::getClientId,clientId);
+        TEquipment equipment = equipmentService.getOnly(query);
+        if (equipment==null) {
+            return "找不到设备信息";
+        }
+        Long equipmentId = equipment.getId();
+        ArrayList<TDiyFlower> diyFlowers = new ArrayList<>();
+        for (TProductBean productBean : tProductBean) {
+            String no = productBean.getNo();
+            String showType = productBean.getShowType();
+            LambdaQueryWrapper<TDiyFlower> wrapper = new LambdaQueryWrapper<>();
+            wrapper.eq(TDiyFlower::getEquipmentId,equipmentId);
+            wrapper.eq(TDiyFlower::getNo,no);
+            TDiyFlower diyFlower = diyFlowerService.getOne(wrapper);
+            diyFlower.setShowType(showType);
+            diyFlowers.add(diyFlower);
+        }
+        boolean res = diyFlowerService.updateBatchById(diyFlowers);
+        if (!res) {
+            return "error";
+        }
+        return "success";
+    }
+
+    /**
+     * 花型数目 开机时上传
+     *
+     * @param clientId  个推
+
+     * @return
+     */
+    @RequestMapping(value = "/flowerNumber", method = RequestMethod.POST, produces = "text/html;charset=utf-8")
+    @ResponseBody
+    public String flowerNumber(String clientId, String flowerNumber){
+        if(!StringUtils.isEmpty(flowerNumber)){
+            LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
+            query.eq(TEquipment::getClientId,clientId);
+            TEquipment equipment = equipmentService.getOne(query);
+            equipment.setFlowers(flowerNumber);
+            equipmentService.updateById(equipment);
+            return "success";
+        }
+        return "fail";
+    }
+
 }
 

+ 33 - 0
src/main/java/com/szwl/controller/RabbitMqController.java

@@ -106,4 +106,37 @@ public class RabbitMqController {
         }
         return "success";
     }
+
+    /**
+     * 修改机型重新创建MQ队列
+     * @param
+     * @return
+     */
+    @GetMapping(value = "/updateEquipmentType")
+    @ResponseBody
+    public String updateEquipmentType(String clientId, String equipmentType){
+        if (StringUtils.isNotEmpty(clientId) && StringUtils.isNotEmpty(equipmentType)) {
+            // 删除MQ队列
+            amqpAdmin.deleteQueue(clientId);
+            // 重新创建队列
+            Map<String,Object> arg = new HashMap<>();
+            arg.put("x-message-ttl",1800000);
+            amqpAdmin.declareQueue(new Queue(clientId, true, false, false, arg));
+            HashMap<String, Object> objectObjectHashMap = new HashMap<>();
+            amqpAdmin.declareBinding(new Binding(clientId,
+                    Binding.DestinationType.QUEUE,
+                    equipmentType, clientId, objectObjectHashMap));
+            LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
+            query.eq(TEquipment::getClientId, clientId);
+            TEquipment equipment = tEquipmentService.getOne(query);
+            if(equipment != null){
+                equipment.setEquimentType(equipmentType);
+                tEquipmentService.updateById(equipment);
+                return "success";
+            }
+            return "找不到设备";
+        }
+
+        return "参数为空";
+    }
 }

File diff suppressed because it is too large
+ 203 - 0
src/main/java/com/szwl/controller/SyncOldAdminController.java


+ 67 - 0
src/main/java/com/szwl/controller/SyncOldAllController.java

@@ -0,0 +1,67 @@
+package com.szwl.controller;
+
+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 io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+@Slf4j
+@Api(value = "/syncOldAll", tags = {"根据设备&用户同步旧系统数据"})
+@RestController
+@RequestMapping("/syncOldAll")
+public class SyncOldAllController {
+
+    SyncOldFeign syncOldFeign;
+    TAdminService adminService;
+
+    public SyncOldAllController(SyncOldFeign syncOldFeign, TAdminService adminService) {
+        this.syncOldFeign = syncOldFeign;
+        this.adminService = adminService;
+    }
+
+    @ApiOperation(value = "根据设备同步旧系统所有数据")
+    @PostMapping("/byClient")
+    public ResponseModel<?> byClient(@RequestBody Map<String, String> params) {
+
+        // 查询 2023-03-19 开始到现在的所有表信息
+        String clientId = params.get("clientId");
+        String adminId = params.get("adminId");
+
+        // 查旧系统的admin信息
+//        ResponseModel<?> adminOld = syncOldFeign.getAdminById(adminId);
+//        adminOld.getData();
+
+        // 查旧系统的equipment信息
+        syncOldFeign.getEquipmentByClientId(clientId);
+
+        // 插入到新系统数据库
+        TAdmin adminNew = new TAdmin();
+        TEquipment equipmentNew = new TEquipment();
+
+        TAdmin adminOld = R.getDataIfSuccess(syncOldFeign.getAdminById(adminId));
+//        System.out.println(adminOld);
+
+        adminService.saveOrUpdate(adminOld);
+
+        return R.ok("同步成功");
+    }
+
+
+    @ApiOperation(value = "同步某一时间段内的所有数据")
+    @PostMapping("/inTime")
+    public ResponseModel<?> inTime(@RequestBody Map<String, String> params) {
+
+        return R.ok("同步成功");
+    }
+}

+ 509 - 0
src/main/java/com/szwl/controller/SyncOldEquipmentController.java

@@ -0,0 +1,509 @@
+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.mapper.TEquipmentMapper;
+import com.szwl.model.bo.R;
+import com.szwl.model.bo.ResponseModel;
+import com.szwl.model.entity.TEquipment;
+import com.szwl.service.TEquipmentService;
+import com.szwl.util.IDGenerator;
+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.Date;
+import java.util.List;
+
+@Slf4j
+@Api(value = "/syncOldEquipment", tags = {"同步旧系统的 equipment 设备数据"})
+@RestController
+@RequestMapping("/syncOldEquipment")
+public class SyncOldEquipmentController {
+
+    SyncOldFeign syncOldFeign;
+
+    TEquipmentService equipmentService;
+
+    @Resource
+    TEquipmentMapper equipmentMapper;
+
+    public SyncOldEquipmentController(SyncOldFeign syncOldFeign, TEquipmentService equipmentService) {
+        this.syncOldFeign = syncOldFeign;
+        this.equipmentService = equipmentService;
+    }
+
+    @ApiOperation(value = "同步某一台机器的信息")
+    @PostMapping("/syncOneEquipmentByClientId")
+    public ResponseModel<?> syncOneEquipmentByClientId(String clientId) {
+        if (StringUtils.isNotEmpty(clientId)) {
+            TEquipment oldEquipment = R.getDataIfSuccess(syncOldFeign.getEquipmentByClientId(clientId));
+
+            Long id = oldEquipment.getId();
+            Date createDate = oldEquipment.getCreateDate();
+            Date modifyDate = oldEquipment.getModifyDate();
+            Long adminId = oldEquipment.getAdminId();
+            String adminLevel = oldEquipment.getAdminLevel();
+            String adminPwd = oldEquipment.getAdminPwd();
+            Long areaId = oldEquipment.getAreaId();
+            String cabinetHd = oldEquipment.getCabinetHd();
+            String cabinetTm = oldEquipment.getCabinetTm();
+//            String clientId = oldEquipment.getClientId();
+            String contactName = oldEquipment.getContactName();
+            String contactPhone = oldEquipment.getContactPhone();
+            String operationalPhone = oldEquipment.getOperationalPhone();
+            String operationalName = oldEquipment.getOperationalName();
+            String furnaceSp = oldEquipment.getFurnaceSp();
+            String furnaceTm = oldEquipment.getFurnaceTm();
+            String guestPwd = oldEquipment.getGuestPwd();
+            Boolean isNetWork = oldEquipment.getIsNetWork();
+            Boolean isUsing = oldEquipment.getIsUsing();
+            Date lastUpdateTime = oldEquipment.getLastUpdateTime();
+            Double latitude = oldEquipment.getLatitude();
+            Double longitude = oldEquipment.getLongitude();
+            String managerId = oldEquipment.getManagerId();
+            String selfName = oldEquipment.getSelfName();
+            String channel = oldEquipment.getChannel();
+            String name = oldEquipment.getName();
+            String netWorkingMode = oldEquipment.getNetWorkingMode();
+            String operator = oldEquipment.getOperator();
+            Integer payType = oldEquipment.getPayType();
+            Integer productTotal = oldEquipment.getProductTotal();
+            String simNo = oldEquipment.getSimNo();
+            String sn = oldEquipment.getSn();
+            String adminUserName = oldEquipment.getAdminUserName();
+            Long agencyId = oldEquipment.getAgencyId();
+            Long merchantId = oldEquipment.getMerchantId();
+            String companyPhone = oldEquipment.getCompanyPhone();
+            Long personageId = oldEquipment.getPersonageId();
+            Integer type = oldEquipment.getType();
+            String fullName = oldEquipment.getFullName();
+            Date pushUpdateTime = oldEquipment.getPushUpdateTime();
+            Long timeRuleId = oldEquipment.getTimeRuleId();
+            String gtClientId = oldEquipment.getGtClientId();
+            Integer eqeStatus = oldEquipment.getEqeStatus();
+            Boolean isBlocked = oldEquipment.getIsBlocked();
+            String messageReceiver = oldEquipment.getMessageReceiver();
+            Boolean isSleep = oldEquipment.getIsSleep();
+            String advancedParameters = oldEquipment.getAdvancedParameters();
+            String volume = oldEquipment.getVolume();
+            String commonParameters = oldEquipment.getCommonParameters();
+            String network = oldEquipment.getNetwork();
+            String offTime = oldEquipment.getOffTime();
+            String bootTime = oldEquipment.getBootTime();
+            String plcVersion = oldEquipment.getPlcVersion();
+            String equipmentType = oldEquipment.getEquimentType();
+            Date endDate = oldEquipment.getEndDate();
+            String flowers = oldEquipment.getFlowers();
+            String machineType = oldEquipment.getMachineType();
+//                String apkVersion = oldEquipment.getApkVersion(); // 旧系统没有
+//                String couponStatus = oldEquipment.getCouponStatus(); // 旧系统没有
+            String paymentType = oldEquipment.getPaymentType();
+            String companyType = oldEquipment.getCompanyType();
+
+            TEquipment equipment = new TEquipment();
+            equipment.setId(id);
+            equipment.setCreateDate(createDate);
+            equipment.setModifyDate(modifyDate);
+            equipment.setAdminId(adminId);
+            equipment.setAdminLevel(adminLevel);
+            equipment.setAdminPwd(adminPwd);
+            equipment.setAreaId(areaId);
+            equipment.setCabinetHd(cabinetHd);
+            equipment.setCabinetTm(cabinetTm);
+            equipment.setClientId(clientId);
+            equipment.setContactName(contactName);
+            equipment.setContactPhone(contactPhone);
+            equipment.setOperationalPhone(operationalPhone);
+            equipment.setOperationalName(operationalName);
+            equipment.setFurnaceSp(furnaceSp);
+            equipment.setFurnaceTm(furnaceTm);
+            equipment.setGuestPwd(guestPwd);
+            equipment.setIsNetWork(isNetWork);
+            equipment.setIsUsing(isUsing);
+            equipment.setLastUpdateTime(lastUpdateTime);
+            equipment.setLatitude(latitude);
+            equipment.setLongitude(longitude);
+            equipment.setManagerId(managerId);
+            equipment.setSelfName(selfName);
+            equipment.setChannel(channel);
+            equipment.setName(name);
+            equipment.setNetWorkingMode(netWorkingMode);
+            equipment.setOperator(operator);
+            equipment.setPayType(payType);
+            equipment.setProductTotal(productTotal);
+            equipment.setSimNo(simNo);
+            equipment.setSn(sn);
+            equipment.setAdminUserName(adminUserName);
+            equipment.setAgencyId(agencyId);
+            equipment.setMerchantId(merchantId);
+            equipment.setCompanyPhone(companyPhone);
+            equipment.setPersonageId(personageId);
+            equipment.setType(type);
+            equipment.setFullName(fullName);
+            equipment.setPushUpdateTime(pushUpdateTime);
+            equipment.setTimeRuleId(timeRuleId);
+            equipment.setGtClientId(gtClientId);
+            equipment.setEqeStatus(eqeStatus);
+            equipment.setIsBlocked(isBlocked);
+            equipment.setMessageReceiver(messageReceiver);
+            equipment.setIsSleep(isSleep);
+            equipment.setAdvancedParameters(advancedParameters);
+            equipment.setVolume(volume);
+            equipment.setCommonParameters(commonParameters);
+            equipment.setNetwork(network);
+            equipment.setOffTime(offTime);
+            equipment.setBootTime(bootTime);
+            equipment.setPlcVersion(plcVersion);
+            equipment.setEquimentType(equipmentType);
+            equipment.setEndDate(endDate);
+            equipment.setFlowers(flowers);
+            equipment.setMachineType(machineType);
+//                equipment.setApkVersion();
+//                equipment.setCouponStatus();
+            equipment.setCompanyType(companyType);
+            equipment.setPaymentType(paymentType);
+
+            equipmentService.save(oldEquipment);
+
+            return R.ok("同步设备编号" + clientId + "的 equipment 信息成功");
+
+
+        } else {
+            return R.fail("参数有误");
+        }
+    }
+
+//    @ApiOperation(value = "同步一台机器设备")
+
+    /*
+        获取 adminId 的所有设备信息
+        先查新旧系统两边的设备信息
+            if 新系统账户下没有设备
+                直接将旧系统的设备批量插入
+            if 新系统账户下有设备
+                比较设备编号有没有重复的
+                if 没有,直接插入
+                if 有,报错
+     */
+    @ApiOperation(value = "同步 adminId 用户名下的所有机器设备") // 考虑权限和上下级
+    @PostMapping("/syncEquipmentsByAdminId")
+    public ResponseModel<?> syncEquipmentsByAdminId(Long adminId) {
+        if (adminId != null) {
+            List<TEquipment> oldEquipmentList = R.getDataIfSuccess(syncOldFeign.getEquipmentByAdminId(adminId));
+
+
+            LambdaQueryWrapper<TEquipment> lqw = Wrappers.lambdaQuery();
+            lqw.eq(TEquipment::getAdminId, adminId);
+            List<TEquipment> newEquipmentList = equipmentService.list(lqw);
+
+
+            if (newEquipmentList.isEmpty()) {
+                // 伪批量插入
+//                equipmentService.saveBatch(oldEquipmentList);
+                // 真批量插入
+//                equipmentMapper.insertBatchSomeColumn(oldEquipmentList);
+                for (TEquipment oldEquipment : oldEquipmentList) {
+                    Long id = oldEquipment.getId();
+                    Date createDate = oldEquipment.getCreateDate();
+                    Date modifyDate = oldEquipment.getModifyDate();
+//                    Long adminId = oldEquipment.getAdminId();
+                    String adminLevel = oldEquipment.getAdminLevel();
+                    String adminPwd = oldEquipment.getAdminPwd();
+                    Long areaId = oldEquipment.getAreaId();
+                    String cabinetHd = oldEquipment.getCabinetHd();
+                    String cabinetTm = oldEquipment.getCabinetTm();
+//                    String clientId = oldEquipment.getClientId();
+                    String contactName = oldEquipment.getContactName();
+                    String contactPhone = oldEquipment.getContactPhone();
+                    String operationalPhone = oldEquipment.getOperationalPhone();
+                    String operationalName = oldEquipment.getOperationalName();
+                    String furnaceSp = oldEquipment.getFurnaceSp();
+                    String furnaceTm = oldEquipment.getFurnaceTm();
+                    String guestPwd = oldEquipment.getGuestPwd();
+                    Boolean isNetWork = oldEquipment.getIsNetWork();
+                    Boolean isUsing = oldEquipment.getIsUsing();
+                    Date lastUpdateTime = oldEquipment.getLastUpdateTime();
+                    Double latitude = oldEquipment.getLatitude();
+                    Double longitude = oldEquipment.getLongitude();
+                    String managerId = oldEquipment.getManagerId();
+                    String selfName = oldEquipment.getSelfName();
+                    String channel = oldEquipment.getChannel();
+                    String name = oldEquipment.getName();
+                    String netWorkingMode = oldEquipment.getNetWorkingMode();
+                    String operator = oldEquipment.getOperator();
+                    Integer payType = oldEquipment.getPayType();
+                    Integer productTotal = oldEquipment.getProductTotal();
+                    String simNo = oldEquipment.getSimNo();
+                    String sn = oldEquipment.getSn();
+                    String adminUserName = oldEquipment.getAdminUserName();
+                    Long agencyId = oldEquipment.getAgencyId();
+                    Long merchantId = oldEquipment.getMerchantId();
+                    String companyPhone = oldEquipment.getCompanyPhone();
+                    Long personageId = oldEquipment.getPersonageId();
+                    Integer type = oldEquipment.getType();
+                    String fullName = oldEquipment.getFullName();
+                    Date pushUpdateTime = oldEquipment.getPushUpdateTime();
+                    Long timeRuleId = oldEquipment.getTimeRuleId();
+                    String gtClientId = oldEquipment.getGtClientId();
+                    Integer eqeStatus = oldEquipment.getEqeStatus();
+                    Boolean isBlocked = oldEquipment.getIsBlocked();
+                    String messageReceiver = oldEquipment.getMessageReceiver();
+                    Boolean isSleep = oldEquipment.getIsSleep();
+                    String advancedParameters = oldEquipment.getAdvancedParameters();
+                    String volume = oldEquipment.getVolume();
+                    String commonParameters = oldEquipment.getCommonParameters();
+                    String network = oldEquipment.getNetwork();
+                    String offTime = oldEquipment.getOffTime();
+                    String bootTime = oldEquipment.getBootTime();
+                    String plcVersion = oldEquipment.getPlcVersion();
+                    String equipmentType = oldEquipment.getEquimentType();
+                    Date endDate = oldEquipment.getEndDate();
+                    String flowers = oldEquipment.getFlowers();
+                    String machineType = oldEquipment.getMachineType();
+//                    String apkVersion = oldEquipment.getApkVersion(); // 旧系统没有
+//                    String couponStatus = oldEquipment.getCouponStatus(); // 旧系统没有
+                    String paymentType = oldEquipment.getPaymentType();
+                    String companyType = oldEquipment.getCompanyType();
+
+                    TEquipment equipment = new TEquipment();
+                    equipment.setId(id);
+                    equipment.setCreateDate(createDate);
+                    equipment.setModifyDate(modifyDate);
+                    equipment.setAdminId(adminId);
+                    equipment.setAdminLevel(adminLevel);
+                    equipment.setAdminPwd(adminPwd);
+                    equipment.setAreaId(areaId);
+                    equipment.setCabinetHd(cabinetHd);
+                    equipment.setCabinetTm(cabinetTm);
+//                    equipment.setClientId(clientId);
+                    equipment.setContactName(contactName);
+                    equipment.setContactPhone(contactPhone);
+                    equipment.setOperationalPhone(operationalPhone);
+                    equipment.setOperationalName(operationalName);
+                    equipment.setFurnaceSp(furnaceSp);
+                    equipment.setFurnaceTm(furnaceTm);
+                    equipment.setGuestPwd(guestPwd);
+                    equipment.setIsNetWork(isNetWork);
+                    equipment.setIsUsing(isUsing);
+                    equipment.setLastUpdateTime(lastUpdateTime);
+                    equipment.setLatitude(latitude);
+                    equipment.setLongitude(longitude);
+                    equipment.setManagerId(managerId);
+                    equipment.setSelfName(selfName);
+                    equipment.setChannel(channel);
+                    equipment.setName(name);
+                    equipment.setNetWorkingMode(netWorkingMode);
+                    equipment.setOperator(operator);
+                    equipment.setPayType(payType);
+                    equipment.setProductTotal(productTotal);
+                    equipment.setSimNo(simNo);
+                    equipment.setSn(sn);
+                    equipment.setAdminUserName(adminUserName);
+                    equipment.setAgencyId(agencyId);
+                    equipment.setMerchantId(merchantId);
+                    equipment.setCompanyPhone(companyPhone);
+                    equipment.setPersonageId(personageId);
+                    equipment.setType(type);
+                    equipment.setFullName(fullName);
+                    equipment.setPushUpdateTime(pushUpdateTime);
+                    equipment.setTimeRuleId(timeRuleId);
+                    equipment.setGtClientId(gtClientId);
+                    equipment.setEqeStatus(eqeStatus);
+                    equipment.setIsBlocked(isBlocked);
+                    equipment.setMessageReceiver(messageReceiver);
+                    equipment.setIsSleep(isSleep);
+                    equipment.setAdvancedParameters(advancedParameters);
+                    equipment.setVolume(volume);
+                    equipment.setCommonParameters(commonParameters);
+                    equipment.setNetwork(network);
+                    equipment.setOffTime(offTime);
+                    equipment.setBootTime(bootTime);
+                    equipment.setPlcVersion(plcVersion);
+                    equipment.setEquimentType(equipmentType);
+                    equipment.setEndDate(endDate);
+                    equipment.setFlowers(flowers);
+                    equipment.setMachineType(machineType);
+//                    equipment.setApkVersion();
+//                    equipment.setCouponStatus();
+                    equipment.setCompanyType(companyType);
+                    equipment.setPaymentType(paymentType);
+
+                    equipmentService.save(oldEquipment);
+
+                }
+
+            }
+//            else {
+//                for (TEquipment oldEquipment : oldEquipmentList) {
+//                    for (TEquipment newEquipment : newEquipmentList) {
+//                        if (newEquipment.getId().equals(oldEquipment.getId())) {
+//                            return R.fail("新系统已存在相同id的记录");
+//                        }
+//                        else {
+//                            equipmentService.save(oldEquipment);
+//                        }
+//                    }
+//                }
+//            }
+
+
+            return R.ok("批量插入成功");
+        } else {
+            return R.fail("旧系统用户不存在");
+        }
+    }
+
+    @ApiOperation(value = "同步旧系统某一时间段内的所有 t_equipment ") // 废弃~~~ 改用 getEquipmentByAdmin
+    @PostMapping("/syncEquipmentsInTime")
+    public ResponseModel<?> syncEquipmentsInTime(String startTime, String endTime) {
+        if (StringUtils.isNotEmpty(startTime) && StringUtils.isNotEmpty(endTime)) {
+            List<TEquipment> oldEquipmentList = R.getDataIfSuccess(syncOldFeign.getEquipmentInTime(startTime, endTime));
+
+//            equipmentService.saveBatch(oldEquipmentList); // 伪批量
+
+//            equipmentMapper.insertBatchSomeColumn(oldEquipmentList); // 真批量
+
+            for (TEquipment oldEquipment : oldEquipmentList) {
+//                equipmentService.saveOrUpdate(oldEquipment); // 防止新旧表结构不同,不做直接插入
+                Long id = oldEquipment.getId();
+                Date createDate = oldEquipment.getCreateDate();
+                Date modifyDate = oldEquipment.getModifyDate();
+                Long adminId = oldEquipment.getAdminId();
+                String adminLevel = oldEquipment.getAdminLevel();
+                String adminPwd = oldEquipment.getAdminPwd();
+                Long areaId = oldEquipment.getAreaId();
+                String cabinetHd = oldEquipment.getCabinetHd();
+                String cabinetTm = oldEquipment.getCabinetTm();
+                String clientId = oldEquipment.getClientId();
+                String contactName = oldEquipment.getContactName();
+                String contactPhone = oldEquipment.getContactPhone();
+                String operationalPhone = oldEquipment.getOperationalPhone();
+                String operationalName = oldEquipment.getOperationalName();
+                String furnaceSp = oldEquipment.getFurnaceSp();
+                String furnaceTm = oldEquipment.getFurnaceTm();
+                String guestPwd = oldEquipment.getGuestPwd();
+                Boolean isNetWork = oldEquipment.getIsNetWork();
+                Boolean isUsing = oldEquipment.getIsUsing();
+                Date lastUpdateTime = oldEquipment.getLastUpdateTime();
+                Double latitude = oldEquipment.getLatitude();
+                Double longitude = oldEquipment.getLongitude();
+                String managerId = oldEquipment.getManagerId();
+                String selfName = oldEquipment.getSelfName();
+                String channel = oldEquipment.getChannel();
+                String name = oldEquipment.getName();
+                String netWorkingMode = oldEquipment.getNetWorkingMode();
+                String operator = oldEquipment.getOperator();
+                Integer payType = oldEquipment.getPayType();
+                Integer productTotal = oldEquipment.getProductTotal();
+                String simNo = oldEquipment.getSimNo();
+                String sn = oldEquipment.getSn();
+                String adminUserName = oldEquipment.getAdminUserName();
+                Long agencyId = oldEquipment.getAgencyId();
+                Long merchantId = oldEquipment.getMerchantId();
+                String companyPhone = oldEquipment.getCompanyPhone();
+                Long personageId = oldEquipment.getPersonageId();
+                Integer type = oldEquipment.getType();
+                String fullName = oldEquipment.getFullName();
+                Date pushUpdateTime = oldEquipment.getPushUpdateTime();
+                Long timeRuleId = oldEquipment.getTimeRuleId();
+                String gtClientId = oldEquipment.getGtClientId();
+                Integer eqeStatus = oldEquipment.getEqeStatus();
+                Boolean isBlocked = oldEquipment.getIsBlocked();
+                String messageReceiver = oldEquipment.getMessageReceiver();
+                Boolean isSleep = oldEquipment.getIsSleep();
+                String advancedParameters = oldEquipment.getAdvancedParameters();
+                String volume = oldEquipment.getVolume();
+                String commonParameters = oldEquipment.getCommonParameters();
+                String network = oldEquipment.getNetwork();
+                String offTime = oldEquipment.getOffTime();
+                String bootTime = oldEquipment.getBootTime();
+                String plcVersion = oldEquipment.getPlcVersion();
+                String equipmentType = oldEquipment.getEquimentType();
+                Date endDate = oldEquipment.getEndDate();
+                String flowers = oldEquipment.getFlowers();
+                String machineType = oldEquipment.getMachineType();
+//                String apkVersion = oldEquipment.getApkVersion(); // 旧系统没有
+//                String couponStatus = oldEquipment.getCouponStatus(); // 旧系统没有
+                String paymentType = oldEquipment.getPaymentType();
+                String companyType = oldEquipment.getCompanyType();
+
+                TEquipment equipment = new TEquipment();
+                equipment.setId(id);
+                equipment.setCreateDate(createDate);
+                equipment.setModifyDate(modifyDate);
+                equipment.setAdminId(adminId);
+                equipment.setAdminLevel(adminLevel);
+                equipment.setAdminPwd(adminPwd);
+                equipment.setAreaId(areaId);
+                equipment.setCabinetHd(cabinetHd);
+                equipment.setCabinetTm(cabinetTm);
+                equipment.setClientId(clientId);
+                equipment.setContactName(contactName);
+                equipment.setContactPhone(contactPhone);
+                equipment.setOperationalPhone(operationalPhone);
+                equipment.setOperationalName(operationalName);
+                equipment.setFurnaceSp(furnaceSp);
+                equipment.setFurnaceTm(furnaceTm);
+                equipment.setGuestPwd(guestPwd);
+                equipment.setIsNetWork(isNetWork);
+                equipment.setIsUsing(isUsing);
+                equipment.setLastUpdateTime(lastUpdateTime);
+                equipment.setLatitude(latitude);
+                equipment.setLongitude(longitude);
+                equipment.setManagerId(managerId);
+                equipment.setSelfName(selfName);
+                equipment.setChannel(channel);
+                equipment.setName(name);
+                equipment.setNetWorkingMode(netWorkingMode);
+                equipment.setOperator(operator);
+                equipment.setPayType(payType);
+                equipment.setProductTotal(productTotal);
+                equipment.setSimNo(simNo);
+                equipment.setSn(sn);
+                equipment.setAdminUserName(adminUserName);
+                equipment.setAgencyId(agencyId);
+                equipment.setMerchantId(merchantId);
+                equipment.setCompanyPhone(companyPhone);
+                equipment.setPersonageId(personageId);
+                equipment.setType(type);
+                equipment.setFullName(fullName);
+                equipment.setPushUpdateTime(pushUpdateTime);
+                equipment.setTimeRuleId(timeRuleId);
+                equipment.setGtClientId(gtClientId);
+                equipment.setEqeStatus(eqeStatus);
+                equipment.setIsBlocked(isBlocked);
+                equipment.setMessageReceiver(messageReceiver);
+                equipment.setIsSleep(isSleep);
+                equipment.setAdvancedParameters(advancedParameters);
+                equipment.setVolume(volume);
+                equipment.setCommonParameters(commonParameters);
+                equipment.setNetwork(network);
+                equipment.setOffTime(offTime);
+                equipment.setBootTime(bootTime);
+                equipment.setPlcVersion(plcVersion);
+                equipment.setEquimentType(equipmentType);
+                equipment.setEndDate(endDate);
+                equipment.setFlowers(flowers);
+                equipment.setMachineType(machineType);
+//                equipment.setApkVersion();
+//                equipment.setCouponStatus();
+                equipment.setCompanyType(companyType);
+                equipment.setPaymentType(paymentType);
+
+                equipmentService.save(oldEquipment);
+            }
+            return R.ok("同步" + startTime + "至" + endTime + "的 equipment 信息成功");
+        } else {
+            return R.fail("时间参数不能为空");
+        }
+    }
+
+
+}

+ 43 - 0
src/main/java/com/szwl/controller/SyncOldJoinpayMchController.java

@@ -0,0 +1,43 @@
+package com.szwl.controller;
+
+import com.szwl.feign.bean.SyncOldFeign;
+import com.szwl.model.bo.R;
+import com.szwl.model.bo.ResponseModel;
+import com.szwl.model.entity.TJoinpayMch;
+import com.szwl.service.TJoinpayMchService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Objects;
+
+@Slf4j
+@Api(value = "/syncOldJoinpayMch", tags = {"根据用户同步旧系统分销数据"})
+@RestController
+@RequestMapping("/syncOldJoinpayMch")
+public class SyncOldJoinpayMchController {
+
+    TJoinpayMchService joinpayMchService;
+    SyncOldFeign syncOldFeign;
+
+    public SyncOldJoinpayMchController(TJoinpayMchService joinpayMchService, SyncOldFeign syncOldFeign) {
+        this.joinpayMchService = joinpayMchService;
+        this.syncOldFeign = syncOldFeign;
+    }
+
+    @ApiOperation(value = "根据用户id同步汇聚支付信息")
+    @PostMapping("/syncJoinpayMchByAdminId")
+    public ResponseModel<?> syncJoinpayMchByAdminId(Long adminId) {
+        if (adminId == null) {
+            return R.fail("参数不能为空");
+        }
+        TJoinpayMch joinpayMch = R.getDataIfSuccess(syncOldFeign.getJoinpayMchByAdminId(adminId));
+        if (Objects.nonNull(joinpayMch)) {
+            joinpayMchService.save(joinpayMch);
+        }
+        return R.ok("同步用户" + adminId + "的汇聚支付信息成功");
+    }
+}

+ 64 - 0
src/main/java/com/szwl/controller/SyncOldProductController.java

@@ -0,0 +1,64 @@
+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.model.bo.R;
+import com.szwl.model.bo.ResponseModel;
+import com.szwl.model.entity.TEquipment;
+import com.szwl.model.entity.TProduct;
+import com.szwl.service.TEquipmentService;
+import com.szwl.service.TProductService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.omg.CORBA.Object;
+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;
+import java.util.Objects;
+
+@Slf4j
+@Api(value = "/syncOldProduct", tags = {"同步旧系统的 product 花型数据"})
+@RestController
+@RequestMapping("/syncOldProduct")
+public class SyncOldProductController {
+
+    TEquipmentService equipmentService;
+
+    TProductService productService;
+
+    SyncOldFeign syncOldFeign;
+
+    public SyncOldProductController(TEquipmentService equipmentService, TProductService productService, SyncOldFeign syncOldFeign) {
+        this.equipmentService = equipmentService;
+        this.productService = productService;
+        this.syncOldFeign = syncOldFeign;
+    }
+
+
+    @ApiOperation(value = "同步花型数据")
+    @PostMapping("/syncProductByEquipmentId")
+    public ResponseModel<?> syncProductByEquipmentId(String equipmentId) {
+        if (StringUtils.isEmpty(equipmentId)) {
+            return R.fail("参数不能为空");
+        }
+
+        LambdaQueryWrapper<TProduct> wrapper = Wrappers.lambdaQuery();
+        wrapper.eq(TProduct::getEquipmentId, equipmentId);
+        TProduct product = productService.getOne(wrapper);
+        if (Objects.isNull(product)) {
+            List<TProduct> productList = R.getDataIfSuccess(syncOldFeign.getProductByEquipmentId(equipmentId));
+//            TProduct newProduct = new TProduct();
+            productService.saveBatch(productList);
+            return R.ok("同步" + equipmentId + "的花型数据成功");
+        } else {
+            return R.fail("花型数据已存在");
+        }
+    }
+
+}

+ 49 - 0
src/main/java/com/szwl/controller/SyncOldProportionController.java

@@ -0,0 +1,49 @@
+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.model.bo.R;
+import com.szwl.model.bo.ResponseModel;
+import com.szwl.model.entity.TProportion;
+import com.szwl.service.TProportionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Objects;
+
+@Slf4j
+@Api(value = "/syncOldProportion", tags = {"同步旧系统的分销信息"})
+@RestController
+@RequestMapping("/syncOldProportion")
+public class SyncOldProportionController {
+
+    SyncOldFeign syncOldFeign;
+    TProportionService proportionService;
+
+
+    public SyncOldProportionController(SyncOldFeign syncOldFeign, TProportionService proportionService) {
+        this.syncOldFeign = syncOldFeign;
+        this.proportionService = proportionService;
+    }
+
+
+    @ApiOperation(value = "根据用户id同步分销信息")
+    @PostMapping("/syncProportionByAdminId")
+    public ResponseModel<?> syncProportionByAdminId(Long adminId) {
+        if(adminId == null) {
+            return R.fail("参数不能为空");
+        }
+
+        TProportion proportion = R.getDataIfSuccess(syncOldFeign.getProportionByAdminId(adminId));
+        if (Objects.nonNull(proportion)) {
+            proportionService.save(proportion);
+        }
+        return R.ok("同步用户" + adminId + "分销信息成功");
+    }
+
+}

+ 2 - 2
src/main/java/com/szwl/controller/TAdController.java

@@ -70,10 +70,10 @@ public class TAdController {
             query.eq(TAd::getEquipmentType,type);
         }
         if(StringUtils.isNotEmpty(userName)){
-            query.eq(TAd::getUsername,userName);
+            query.like(TAd::getUsername,userName);
         }
         if(StringUtils.isNotEmpty(name)){
-            query.eq(TAd::getName,name);
+            query.like(TAd::getName,name);
         }
         if(StringUtils.isNotEmpty(screenType)){
             query.eq(TAd::getScreenType,screenType);

+ 89 - 12
src/main/java/com/szwl/controller/TAdminController.java

@@ -3,11 +3,9 @@ package com.szwl.controller;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.lang.UUID;
-import cn.hutool.core.util.IdUtil;
-import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -24,24 +22,20 @@ import com.szwl.model.dto.RegisterParamDTO;
 import com.szwl.model.entity.*;
 import com.szwl.model.param.AddLoginUserParam;
 import com.szwl.model.param.UpdateLoginUserParam;
-import com.szwl.model.param.UpdateSysRoleParam;
 import com.szwl.model.utils.AdminUtils;
 import com.szwl.service.*;
+import com.szwl.util.IDGenerator;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.repository.query.Param;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletRequest;
 import javax.validation.Valid;
-import javax.validation.constraints.NotBlank;
-import java.math.BigDecimal;
 import java.util.*;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
@@ -505,6 +499,7 @@ public class TAdminController {
                 return R.fail(ResponseCodesEnum.A0002, "验证码错误");
             }
             tMessageCode.setStatus("1");
+//            admin.setId(IDGenerator.commonID()); // admin 表改回原来的自增ID
             admin.setCreateDate(new Date());
             admin.setModifyDate(new Date());
             admin.setIsAdmined(true);
@@ -517,6 +512,9 @@ public class TAdminController {
             admin.setUsername(registerParam.getUsername());
             admin.setName(registerParam.getName());
             admin.setIfForeign(registerParam.getIfForeign());
+            if (registerParam.getIfForeign().equals("1")) {
+                admin.setPromoCodeOpen("0");
+            }
             admin.setCompanyType(registerParam.getCompanyType());
             if (Pattern.matches(phoneReg, phoneOrEmail)) {
                 admin.setPhone(registerParam.getPhoneOrEmail());
@@ -585,7 +583,7 @@ public class TAdminController {
     @ApiOperation(value = "登录")
     @PostMapping("/login")
     @Audit(type = AuditEnum.LOGIN, content = "#username + '请求登录'")
-    public ResponseModel<UserDetailBO> login(String username, String password, String hostName) {
+    public ResponseModel<UserDetailBO> login(String username, String password, String hostName, HttpServletRequest request) {
         if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password)) {
             return R.fail(ResponseCodesEnum.A0001, "参数有空");
         }
@@ -625,6 +623,44 @@ public class TAdminController {
         if (StringUtils.isEmpty(tAdmin.getManagerId())) {
             String managerId = AdminUtils.encrypt(false, tAdmin.getId());
             tAdmin.setManagerId(managerId);
+        }
+        // 设置登录时间
+        tAdmin.setLoginDate(new Date());
+        // 登录IP
+        String ipAddress = null;
+        // 获取通过代理服务器传递的真实IP地址
+        String xForwardedForHeader = request.getHeader("X-Forwarded-For");
+        if (xForwardedForHeader == null) {
+            ipAddress = request.getRemoteAddr();
+        } else {
+            // 多次反向代理后会有多个IP值,第一个IP才是真实IP
+            String[] ips = xForwardedForHeader.split(",");
+            ipAddress = ips[0].trim();
+        }
+        tAdmin.setLoginIp(ipAddress);
+        tAdminService.updateById(tAdmin);
+        UserDetailBO userDetailBO = tAdminService.getUserDetailBO(tAdmin);
+        return R.ok(userDetailBO);
+    }
+
+    @ApiOperation(value = "切换自动登录")
+    @GetMapping("/autoLogin")
+    @Audit(type = AuditEnum.LOGIN, content = "切换登录'")
+    public ResponseModel<UserDetailBO> autoLogin(@RequestParam String id) {
+        if (StringUtils.isEmpty(id)) {
+            return R.fail(ResponseCodesEnum.A0001, "参数有空");
+        }
+
+        //验证用户名登录
+        Long adminId = Long.valueOf(id);
+        TAdmin admin = tAdminService.getById(adminId);
+        TAdmin tAdmin = Optional.ofNullable(admin)
+                .orElseThrow(() -> new BizException(ResponseCodesEnum.L0002));
+
+        // 添加系统id
+        if (StringUtils.isEmpty(tAdmin.getManagerId())) {
+            String managerId = AdminUtils.encrypt(false, tAdmin.getId());
+            tAdmin.setManagerId(managerId);
             tAdminService.getById(tAdmin);
         }
         UserDetailBO userDetailBO = tAdminService.getUserDetailBO(tAdmin);
@@ -688,10 +724,10 @@ public class TAdminController {
         }
         LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
         if (StringUtils.isNotEmpty(name)) {
-            query.eq(TAdmin::getName, name);
+            query.like(TAdmin::getName, name);
         }
         if (StringUtils.isNotEmpty(userName)) {
-            query.eq(TAdmin::getUsername, userName);
+            query.like(TAdmin::getUsername, userName);
         }
         if (StringUtils.isNotEmpty(ifForeign)) {
             query.eq(TAdmin::getIfForeign, ifForeign);
@@ -931,5 +967,46 @@ public class TAdminController {
         }
         return R.ok();
     }
+
+    @ApiOperation(value = "批量修改支付平台")
+    @GetMapping("/updatePayPlatform")
+    public ResponseModel<?> updatePayPlatform(@RequestParam String id, @RequestParam String payPlatform) {
+        Integer adminId = Integer.valueOf(id);
+        UpdateWrapper<TAdmin> updateWrapper = new UpdateWrapper<>();
+        // 申泽管理员
+        if (adminId == 2738) {
+            updateWrapper.isNull("company_type").or().eq("company_type", 0);
+        }
+        // 七云管理员
+        if (adminId == 2739) {
+            updateWrapper.eq("company_type", 1);
+        }
+        updateWrapper.set("pay_platform",payPlatform);
+        tAdminService.update(null, updateWrapper);
+        return R.ok();
+    }
+
+    @ApiOperation(value = "一键迁移")
+    @GetMapping("/oneKeyMigration")
+    public ResponseModel<?> oneKeyMigration(Long adminId) {
+        LambdaQueryWrapper<SysRole> query4 = Wrappers.lambdaQuery();
+        query4.eq(SysRole::getAdminId, "1");
+        query4.eq(SysRole::getRoleName, "商家");
+        List<SysRole> list2 = sysRoleService.list(query4);
+        if (list2.size() > 0) {
+            SysRole sysRole = list2.get(0);
+            SysRole newSysRole = new SysRole();
+            newSysRole.setAdminId(adminId);
+            newSysRole.setMenuCodesJson(sysRole.getMenuCodesJson());
+            newSysRole.setRoleName("商家");
+            sysRoleService.save(newSysRole);
+            SysUserRole sysUserRole = new SysUserRole();
+            sysUserRole.setRoleId(newSysRole.getRoleId());
+            sysUserRole.setUserId(String.valueOf(adminId));
+            boolean save = sysUserRoleService.save(sysUserRole);
+            return R.ok("success");
+        }
+        return R.fail(ResponseCodesEnum.A0001,"fail");
+    }
 }
 

+ 9 - 27
src/main/java/com/szwl/controller/TEquipmentApplyController.java

@@ -15,6 +15,7 @@ import com.szwl.model.entity.*;
 import com.szwl.model.utils.PushUtils;
 import com.szwl.service.*;
 import com.szwl.service.es.EsTEquipmentService;
+import com.szwl.util.IDGenerator;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang.StringUtils;
@@ -33,11 +34,11 @@ import java.util.stream.Collectors;
 
 /**
  * <p>
- * 设备连接申请表 前端控制器
+ *  前端控制器
  * </p>
  *
  * @author wuhs
- * @since 2022-04-21
+ * @since 2023-10-25
  */
 @RestController
 @Api(value = "/tEquipmentApply", tags = {"设备连接申请表"})
@@ -148,9 +149,6 @@ public class TEquipmentApplyController {
                             return R.fail(ResponseCodesEnum.A0001,"已生成机器");
                         }
                         String old = "";
-//                        ArrayList<Filter> filters = new ArrayList<>();
-//                        filters.add(Filter.eq("clientId", clientId + "xxx"));
-//                        List<Equipment> list = equipmentService.findList(null, filters, null);
                         LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
                         query.like(TEquipment::getClientId,clientId+"xxx");
                         List<TEquipment> list = equipmentService.list(query);
@@ -168,13 +166,12 @@ public class TEquipmentApplyController {
                             equipment.setAdminLevel(adminLevel);
                             equipment.setAdminUserName(adminUserName);
                             equipment.setType(type);
-                            equipment.setCompanyType(companyType); // 公司平台
-                            equipment.setMachineType(machineType); // 设备类型
+                            // 公司平台
+                            equipment.setCompanyType(companyType);
+                            // 设备类型
+                            equipment.setMachineType(machineType);
                             if(equimentType.equals("MG320-1")){
                                 if(!equipmentApply.getEquimentType().equals(equipment.getEquimentType())&&equipment.getEquimentType().equals("MG320")){
-//                                    List<Filter> filter = new ArrayList<>();
-//                                    filter.add(Filter.eq("equipmentId",  equipment.getId()));
-//                                    List<Product> productList = productService.findList(null, filter, null);
                                     LambdaQueryWrapper<TProduct> queryProduct = Wrappers.lambdaQuery();
                                     queryProduct.eq(TProduct::getEquipmentId,equipment.getId());
                                     List<TProduct> productList = productService.list(queryProduct);
@@ -182,18 +179,11 @@ public class TEquipmentApplyController {
                                         //从18种变成30种花型
                                         saveProductMG12(equipment.getId());
                                     }
-                                    //从18种变成30种花型
-//                                    saveProductMG12(equipment.getId());
                                 }
                                 equipment.setEquimentType("MG320");
                             } else {
                                 equipment.setEquimentType(equimentType);
                             }
-//                            if(equipmentApply.getEquimentType().equals("MG330")){
-//                                equipment.setEquimentType("MG330");
-//                            }
-//                            if(equipmentApply.getEquimentType().equals("POP320")) {
-//                            }
 
                             equipmentService.updateById(equipment);
                             LambdaQueryWrapper<TProportion> queryProportion = Wrappers.lambdaQuery();
@@ -204,7 +194,6 @@ public class TEquipmentApplyController {
                                     proportionService.removeById(proportion.getId());
                                 }
                             }
-//                            String data = com.alibaba.fastjson.JSON.toJSONString(equipment);
                             try {
                                 esTEquipmentService.updateDataById(equipment);
                             }catch (Exception e) {
@@ -224,6 +213,7 @@ public class TEquipmentApplyController {
                             return R.ok(null,"审核成功");
                         }
                         TEquipment equipment = new TEquipment();
+                        equipment.setId(IDGenerator.commonID());
                         equipment.setCreateDate(new Date());
                         equipment.setModifyDate(new Date());
                         equipment.setClientId(clientId);
@@ -248,12 +238,9 @@ public class TEquipmentApplyController {
                         }else {
                             equipment.setEquimentType(equimentType);
                         }
-//                        if(equipmentApply.getEquimentType().equals("MG330")){
-//                            equipment.setEquimentType("MG330");
-//                        }
                         if(!StringUtils.isEmpty(equimentType)&&equimentType.equals("MG280")){
                             Long monthBegin = getMonthBegin(new Date());
-                            long time = new Date().getTime();
+                            long time = System.currentTimeMillis();
                             if(time<monthBegin){
                                 equipment.setEndDate(new Date(monthBegin));
                             }else{
@@ -285,13 +272,8 @@ public class TEquipmentApplyController {
                         }
                         LambdaQueryWrapper<TEquipment> query1 = Wrappers.lambdaQuery();
                         query1.eq(TEquipment::getClientId,clientId);
-//                        List<TEquipment> list1 = equipmentService.list(query1);
                         TEquipment tEquipment = equipmentService.getOne(query1);
                         try {
-//                            if(list1.size()>0){
-//                                TEquipment tEquipment = list1.get(0);
-//                                esTEquipmentService.insertData(tEquipment);
-//                            }
                             if(tEquipment != null) {
                                 esTEquipmentService.insertData(tEquipment);
                             }

+ 121 - 80
src/main/java/com/szwl/controller/TEquipmentController.java

@@ -4,18 +4,20 @@ package com.szwl.controller;
 import cn.com.crbank.ommo.bean.ResultMessage;
 import cn.com.crbank.ommo.esUtil.BeanUtils;
 //import org.apache.commons.beanutils.BeanUtils;
-import cn.hutool.core.util.StrUtil;
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gexin.fastjson.JSON;
+import com.szwl.annotation.Audit;
+import com.szwl.constant.AuditEnum;
 import com.szwl.constant.ResponseCodesEnum;
+import com.szwl.manager.TokenManager;
 import com.szwl.model.bean.*;
-import com.szwl.model.bo.JsonMessage;
 import com.szwl.model.bo.R;
 import com.szwl.model.bo.ResponseModel;
+import com.szwl.model.bo.UserDetailBO;
 import com.szwl.model.entity.*;
 import com.szwl.model.param.PasswordParam;
 import com.szwl.model.query.StatisticsParam;
@@ -52,35 +54,51 @@ import static com.szwl.constant.ResponseCodesEnum.*;
 
 /**
  * <p>
- * 设备表 前端控制器
+ *  前端控制器
  * </p>
  *
  * @author wuhs
- * @since 2022-04-19
+ * @since 2023-10-25
  */
 @Api(value = "/tEquipment", tags = {"设备控制器"})
 @RestController
 @RequestMapping("/tEquipment")
 public class TEquipmentController {
+
     @Autowired
     TEquipmentService tEquipmentService;
+
     @Autowired
     TEquipmentDescService equipmentDescService;
+
     @Autowired
     TAdminService tAdminService;
+
     @Autowired
     TParametersService parametersService;
+
     @Autowired
     TAlarmRecordService tAlarmRecordService;
+
     @Autowired
     TAreaService tAreaService;
+
     @Autowired
     TOrderService tOrderService;
+
     @Autowired
     TAdminEquipmentService tAdminEquipmentService;
+
+    @Autowired
+    TDiyFlowerService tDiyFlowerService;
+
+    TokenManager tokenManager;
+
     private int j;
 
-    private static final int TIMEOUT = 30000;  // 超时时间为30秒
+    // 超时时间为30秒
+    private static final int TIMEOUT = 30000;
+
     /**
      * @param adminName     商户的登录名
      * @param equipmentName 机器名称
@@ -96,11 +114,11 @@ public class TEquipmentController {
         LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
         TAdmin admin = tAdminService.getById(id);
         // 申泽管理员
-        if(id == 2738) {
+        if (id == 2738) {
             companyType = "0";
         }
         // 七云管理员
-        if(id == 2739) {
+        if (id == 2739) {
             companyType = "1";
         }
         Integer type = admin.getType();
@@ -134,7 +152,7 @@ public class TEquipmentController {
             }
         }
         if (StringUtils.isNotEmpty(equipmentName)) {
-            query.eq(TEquipment::getName, equipmentName);
+            query.like(TEquipment::getName, equipmentName);
         }
         if (StringUtils.isNotEmpty(areaName)) {
             query.like(TEquipment::getFullName, areaName);
@@ -153,10 +171,10 @@ public class TEquipmentController {
         }
         // 公司平台
         if (StringUtils.isNotEmpty(companyType)) {
-            if(companyType.equals("0")) {
+            if (companyType.equals("0")) {
                 query.isNull(TEquipment::getCompanyType)
                         .or().eq(TEquipment::getCompanyType, companyType);
-            }else {
+            } else {
                 query.eq(TEquipment::getCompanyType, companyType);
             }
         }
@@ -180,7 +198,7 @@ public class TEquipmentController {
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
             Date date = null;
             try {
-                date  = sdf.parse(todayDate);
+                date = sdf.parse(todayDate);
             } catch (ParseException e) {
                 e.printStackTrace();
             }
@@ -228,6 +246,11 @@ public class TEquipmentController {
                 equipmentDTO.setCupQuantity(equipmentDesc.getCupQuantity());
                 equipmentDTO.setStirTm(equipmentDesc.getStirTm());
                 equipmentDTO.setCornGeneratorTm(equipmentDesc.getCornGeneratorTm());
+                equipmentDTO.setNumberOne(equipmentDesc.getNumberOne());
+                equipmentDTO.setCandyGeneratorTm(equipmentDesc.getCandyGeneratorTm());
+                equipmentDTO.setOutsideHd(equipmentDesc.getOutsideHd());
+                equipmentDTO.setOutsideTm(equipmentDesc.getOutsideTm());
+                equipmentDTO.setDiyFlowerStatus(equipmentDesc.getDiyFlowerStatus());
             }
 
         }
@@ -243,14 +266,19 @@ public class TEquipmentController {
         TEquipmentDTO equipmentDTO = new TEquipmentDTO();
 //        BeanUtils.copyProperties(equipment, equipmentDTO);
         BeanUtils.copyPropertiesIgnoreNull(equipment, equipmentDTO, true);
-        TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
+        TEquipmentDesc equipmentDesc = equipmentDescService.getById(id);
         if (equipmentDesc != null) {
             equipmentDTO.setCouponStatus(equipmentDesc.getCouponStatus());
             equipmentDTO.setInDoor(equipmentDesc.getInDoor());
             equipmentDTO.setOutDoor(equipmentDesc.getOutDoor());
-            if(equipmentDesc.getFlowers() != null) {
+            if (equipmentDesc.getFlowers() != null) {
                 equipmentDTO.setFlowers(equipmentDesc.getFlowers());
             }
+            equipmentDTO.setNumberOne(equipmentDesc.getNumberOne());
+            equipmentDTO.setCandyGeneratorTm(equipmentDesc.getCandyGeneratorTm());
+            equipmentDTO.setOutsideHd(equipmentDesc.getOutsideHd());
+            equipmentDTO.setOutsideTm(equipmentDesc.getOutsideTm());
+            equipmentDTO.setDiyFlowerStatus(equipmentDesc.getDiyFlowerStatus());
         }
         String messageReceiver = equipment.getMessageReceiver();
         if (StringUtils.isNotEmpty(messageReceiver)) {
@@ -286,19 +314,15 @@ public class TEquipmentController {
         return R.ok(equipment);
     }
 
-    //查找设备
     @ApiOperation(value = "ClientId查找设备")
     @GetMapping("/findEquipmentByClientId")
     public ResponseModel<TEquipment> findEquipmentByClientId(@RequestParam String clientId) {
         LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
         query.eq(TEquipment::getClientId, clientId);
-//        List<TEquipment> list = tEquipmentService.list(query);
-//        TEquipment equipment = list.get(0);
         TEquipment equipment = tEquipmentService.getOnly(query);
         return R.ok(equipment);
     }
 
-    //查找设备
     @ApiOperation(value = "获取对应的机器id")
     @GetMapping("/getClientIdList")
     public ResponseModel<TAdminEquipment> getClientIdList(@RequestParam String adminId) {
@@ -308,7 +332,6 @@ public class TEquipmentController {
         return R.ok(adminEquipment);
     }
 
-    //查找设备
     @ApiOperation(value = "获取对应的机器编号")
     @GetMapping("/getClientIds")
     public ResponseModel<List<String>> getClientIds(@RequestParam String adminId) {
@@ -337,7 +360,6 @@ public class TEquipmentController {
         return R.ok(iPage);
     }
 
-    //查找设备
     @ApiOperation(value = "adminId查找设备")
     @GetMapping("/listEquipment")
     public ResponseModel<?> listEquipment(String adminId) {
@@ -404,7 +426,6 @@ public class TEquipmentController {
      * 更新
      */
     @ApiOperation(value = "更新机器")
-//    @PostMapping("/update")
     @RequestMapping(value = "/update", method = RequestMethod.POST)
     public ResponseModel<?> update(@RequestBody TEquipmentDTO equipment) {
         //获取修改前的设备
@@ -522,14 +543,10 @@ public class TEquipmentController {
         List<TAdminDTO> resultList = new ArrayList<>();
 
         if ("admin".equals(param.getUsername())) { // 管理员查所有商家
-//            List<TAdmin> adminList = tAdminService.selectByOption(null);
             List<TAdmin> adminList = tAdminService.list();
-//            List<TEquipment> equipmentList = tEquipmentService.selectByOption(null);
             List<TEquipment> equipmentList = tEquipmentService.list();
-//            List<TAlarmRecord> alarmRecordList = tAlarmRecordService.getLastAlarmRecord(null);
             List<TAlarmRecord> alarmRecordList = tAlarmRecordService.list();
             //获取当前用户今天所有机器的所以警报信息
-//            List<TAlarmRecord> alarmList = tAlarmRecordService.getAlarmList(null);
             List<TAlarmRecord> alarmList = tAlarmRecordService.getAlarmList(null);
 
             resultList = adminList.stream().map(e -> {
@@ -572,10 +589,6 @@ public class TEquipmentController {
         } else { // 只查当前商家的设备列表
             TAdminDTO dto = new TAdminDTO();
             BeanUtils.copyPropertiesIgnoreNull(param, dto, true);
-//            TEquipmentExample example = new TEquipmentExample();
-//            TEquipmentExample.Criteria criteria = example.createCriteria();
-//            criteria.andAdminIdEqualTo(param.getId());
-//            List<TEquipment> equipmentList = tEquipmentService.selectByOption(example);
             // 需要区分是否商家子账户
             LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
             query.eq(TEquipment::getAdminId, param.getId());
@@ -595,7 +608,6 @@ public class TEquipmentController {
                 //获取该机器的所有警报信息
                 List<TAlarmRecord> eqAlarmList = alarmList.stream().filter(alarm -> equipment.getClientId().equals(alarm.getClientId())).collect(Collectors.toList());
                 equipmentDTO.setAlarmList(eqAlarmList);
-//                if(DateUtils.isSameDay(new Date(),op.get().getOccurrenceTime())){
                 if (eqAlarmList.size() > 0) {
                     int i = 0;
                     for (TAlarmRecord alarmRecord : eqAlarmList) {
@@ -652,7 +664,6 @@ public class TEquipmentController {
 
     }
 
-    //修改机器信息
     @ApiOperation(value = "修改机器信息")
     @PostMapping("/updateEquipment")
     public ResponseEntity<?> updateEquipment(@RequestBody TEquipment equipment) {
@@ -699,7 +710,6 @@ public class TEquipmentController {
 
     }
 
-    //根据机器id获取用户信息
     @ApiOperation(value = "根据机器id获取用户信息")
     @PostMapping("/findByEquipment")
     public ResponseEntity<?> findByEquipment(@RequestBody TEquipment equipment) {
@@ -709,7 +719,6 @@ public class TEquipmentController {
                 .body(new ResultMessage().setCode(false).setData(tAdmin).setMessage(""));
     }
 
-    //根据机器编号获取用户信息
     @ApiOperation(value = "根据机器编号获取用户信息")
     @PostMapping("/getEquipmentListLikeClientId")
     public ResponseEntity<?> getEquipmentListLikeClientId(@RequestBody TEquipment equipment) {
@@ -717,10 +726,6 @@ public class TEquipmentController {
             return ResponseEntity.status(HttpStatus.OK)
                     .body(new ResultMessage().setCode(false).setData("").setMessage("设备编号为空"));
         }
-//        TEquipmentExample example = new TEquipmentExample();
-//        TEquipmentExample.Criteria criteria = example.createCriteria();
-//        criteria.andClientIdLike(equipment.getClientId());
-//        List<TEquipment> list = tEquipmentService.selectByOption(example);
         LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
         query.like(TEquipment::getClientId, equipment.getClientId());
         List<TEquipment> list = tEquipmentService.list(query);
@@ -728,9 +733,9 @@ public class TEquipmentController {
                 .body(new ResultMessage().setCode(true).setData(list).setMessage(""));
     }
 
-    //脱机
     @ApiOperation(value = "脱机")
     @PostMapping("/tuoji")
+    @Audit(type = AuditEnum.OFFLINE, content = "#equipment.adminUserName + '对设备' +  #equipment.clientId + '进行了脱机操作'")
     public ResponseEntity<?> tuoji(@RequestBody TEquipment equipment) {
         if (equipment.getId() == null) {
             return ResponseEntity.status(HttpStatus.OK)
@@ -738,7 +743,7 @@ public class TEquipmentController {
         }
         TEquipment tEquipment = tEquipmentService.getById(equipment.getId());
         tEquipmentService.sentMessage(tEquipment.getClientId(), PushUtils.buildJson("tuoji", "0").toString());
-        if ("xxx".equals(tEquipment.getClientId().substring(tEquipment.getClientId().length() - 3, tEquipment.getClientId().length()))) {
+        if ("xxx".equals(tEquipment.getClientId().substring(tEquipment.getClientId().length() - 3))) {
             return ResponseEntity.status(HttpStatus.OK)
                     .body(new ResultMessage().setCode(true).setData("").setMessage("发送成功!"));
         }
@@ -748,7 +753,6 @@ public class TEquipmentController {
                 .body(new ResultMessage().setCode(true).setData("").setMessage("发送成功!"));
     }
 
-    //一键补料
     @ApiOperation(value = "一键补料")
     @GetMapping("/buliao")
     public ResponseModel<?> buliao(String equipmentId) {
@@ -774,7 +778,6 @@ public class TEquipmentController {
         return R.ok(null, "发送请求成功");
     }
 
-    //
     @ApiOperation(value = "修改优惠券开关状态")
     @GetMapping("/updateCouponStatus")
     public ResponseModel<?> updateCouponStatus(String equipmentId, String couponStatus) {
@@ -785,11 +788,8 @@ public class TEquipmentController {
         if (equipment == null || equipment.getId() == null) {
             return R.fail(ResponseCodesEnum.A0001, "找不到设备");
         }
-//        tEquipmentService.sentMessage(equipment.getClientId(),PushUtils.buildJson("couponStatus", couponStatus).toString());
         TEquipmentDesc tEquipmentDesc = equipmentDescService.getById(equipment.getId());
         if (tEquipmentDesc != null) {
-//            tEquipmentDesc.setCouponStatus(couponStatus);
-//            equipmentDescService.updateById(tEquipmentDesc);
             tEquipmentService.sentMessage(equipment.getClientId(), PushUtils.buildJson("couponStatus", couponStatus).toString());
         } else {
             return R.fail(ResponseCodesEnum.A0001, "找不到设备");
@@ -797,7 +797,6 @@ public class TEquipmentController {
         return R.ok(null, "修改成功");
     }
 
-    //查找设备
     @ApiOperation(value = "查找设备")
     @PostMapping("/findEquipment")
     public ResponseEntity<?> findEquipment(@RequestBody TEquipment equipment) {
@@ -806,7 +805,6 @@ public class TEquipmentController {
                 .body(new ResultMessage().setCode(false).setData(tEquipment).setMessage(""));
     }
 
-    //获取机器数量
     @ApiOperation(value = "获取机器数量")
     @PostMapping("/getMachineNum")
     public ResponseModel<?> getMachineNum(@RequestBody StatisticsParam param) {
@@ -869,7 +867,7 @@ public class TEquipmentController {
         String adminPwd = passwordParam.getAdminPwd();
         String guestPwd = passwordParam.getGuestPwd();
         TEquipment tEquipment = tEquipmentService.getById(equipmentId);
-        if(tEquipment==null) {
+        if (tEquipment == null) {
             return R.fail(ResponseCodesEnum.A0001, "找不到设备");
         }
         if (StringUtils.isNotEmpty(guestPwd)) {
@@ -885,14 +883,13 @@ public class TEquipmentController {
         return R.ok(null, "修改成功");
     }
 
-    //远程开门
     @ApiOperation(value = "远程开门")
     @PostMapping("/openDoor")
     public ResponseEntity<?> openDoor(@RequestBody StatisticsParam param) {
         String equipmentId = param.getEquipmentId();
         Long id = Long.valueOf(equipmentId);
         TEquipment equipment = tEquipmentService.getById(id);
-        tEquipmentService.sentMessage(equipment.getClientId(),PushUtils.buildJson("openDoor", "0").toString());
+        tEquipmentService.sentMessage(equipment.getClientId(), PushUtils.buildJson("openDoor", "0").toString());
 //        PushUtils.push(equipment.getGtClientId(), "", "", PushUtils.buildJson("openDoor", "0").toString());
         return ResponseEntity
                 .status(HttpStatus.OK)
@@ -921,8 +918,6 @@ public class TEquipmentController {
         return R.ok(null, "修改成功");
     }
 
-
-    //查看是否远程来关机成功
     @ApiOperation(value = "查看是否远程来关机成功")
     @PostMapping("/checkStatus")
     public ResponseEntity<?> checkStatus(@RequestBody StatisticsParam param) {
@@ -990,7 +985,6 @@ public class TEquipmentController {
         return time;
     }
 
-    //机器睡眠
     @ApiOperation(value = "机器睡眠")
     @PostMapping("/sleep")
     public ResponseEntity<?> sleep(@RequestBody StatisticsParam param) {
@@ -1021,7 +1015,6 @@ public class TEquipmentController {
                         .setMessage("SUCCESS"));
     }
 
-    // 获取机器开关机状态
     @ApiOperation(value = "获取机器开关机状态")
     @PostMapping("/onoffStatus")
     public ResponseEntity<?> onoffStatus(@RequestBody StatisticsParam param) {
@@ -1038,7 +1031,6 @@ public class TEquipmentController {
                         .setMessage("SUCCESS"));
     }
 
-    // 获取所有机器开关机状态
     @ApiOperation(value = "获取所有机器开关机状态")
     @PostMapping("/equipmentStatus")
     public ResponseEntity<?> equipmentStatus(@RequestBody StatisticsParam param) {
@@ -1052,10 +1044,6 @@ public class TEquipmentController {
                             .setData("SUCCESS")
                             .setMessage("SUCCESS"));
         }
-//        TEquipmentExample example = new TEquipmentExample();
-//        TEquipmentExample.Criteria criteria = example.createCriteria();
-//        criteria.andAdminIdEqualTo(Long.valueOf(adminId));
-//        List<TEquipment> equipmentList = tEquipmentService.selectByOption(example);
         LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
         query.eq(TEquipment::getAdminId, Long.valueOf(adminId));
         List<TEquipment> equipmentList = tEquipmentService.list(query);
@@ -1073,15 +1061,10 @@ public class TEquipmentController {
                         .setMessage("SUCCESS"));
     }
 
-    // 检验所有机器是否开机
     @ApiOperation(value = "检验所有机器是否开机")
     @PostMapping("/checkEquipmentStatus")
     public ResponseEntity<?> checkEquipmentStatus(@RequestBody StatisticsParam param) {
         String adminId = param.getAdminId();
-//        TEquipmentExample example = new TEquipmentExample();
-//        TEquipmentExample.Criteria criteria = example.createCriteria();
-//        criteria.andAdminIdEqualTo(Long.valueOf(adminId));
-//        List<TEquipment> equipmentList = tEquipmentService.selectByOption(example);
         LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
         query.eq(TEquipment::getAdminId, Long.valueOf(adminId));
         List<TEquipment> equipmentList = tEquipmentService.list(query);
@@ -1090,9 +1073,6 @@ public class TEquipmentController {
             for (TEquipment equipment : equipmentList) {
                 long modifyTime = equipment.getModifyDate().getTime();
                 if (nowTime > modifyTime && (nowTime - modifyTime) > 310000) {
-//                    if((nowTime-modifyTime)>310000){
-//                        equipment.setEqeStatus(0);
-//                    }
                     equipment.setCabinetTm("");
                     equipment.setCabinetHd("");
                     equipment.setFurnaceTm("");
@@ -1109,7 +1089,6 @@ public class TEquipmentController {
                         .setMessage("SUCCESS"));
     }
 
-    //机器开关机
     @ApiOperation(value = "机器开关机")
     @PostMapping("/onOff")
     public ResponseEntity<?> onOff(@RequestBody StatisticsParam param) {
@@ -1141,13 +1120,11 @@ public class TEquipmentController {
             equipment.setEqeStatus(1);
         }
         Long time = getNetworkTime();
-//        long time = new Date().getTime();
-//        PushUtils.push(equipment.getGtClientId(), String.valueOf(time), "", PushUtils.buildJson("eqeStatus", eqeStatus).toString());
         if (time == null) {
             time = getNetworkTime();
         }
         if (time == null) {
-            time = new Date().getTime();
+            time = System.currentTimeMillis();
         }
         if (time != null) {
 //            System.out.println("time=="+time);
@@ -1519,6 +1496,7 @@ public class TEquipmentController {
 
     /**
      * 下载日志
+     *
      * @param equipmentId
      * @param day
      * @param response
@@ -1530,18 +1508,18 @@ public class TEquipmentController {
 /*        if(day.length()!=8){
             return R.fail(A0001,"日期格式有误");
         }*/
-        if(StringUtils.isEmpty(equipmentId)) {
+        if (StringUtils.isEmpty(equipmentId)) {
             return R.fail(A0001);
         }
         TEquipment tEquipment = tEquipmentService.getById(equipmentId);
         if (tEquipment == null) {
-            return R.fail(A0001,"该设备不存在");
+            return R.fail(A0001, "该设备不存在");
         }
         String clientId = tEquipment.getClientId();
-        String kind = day+"-"+clientId;
-        String filepath = "/home/hboxs/log/"+kind+".txt";
+        String kind = day + "-" + clientId;
+        String filepath = "/home/hboxs/log/" + kind + ".txt";
         // 1.1 如果文件已存在,直接下载
-        if(Files.exists(Paths.get(filepath))) {
+        if (Files.exists(Paths.get(filepath))) {
 //            DownloadUtils.downloadFile(filepath, response);
 //            return R.ok();
             try {
@@ -1549,16 +1527,16 @@ public class TEquipmentController {
                 return R.ok();
             } catch (IOException e) {
                 e.printStackTrace();
-                return R.fail(B0004,"请重试");
+                return R.fail(B0004, "请重试");
             }
         }
         String channel = tEquipment.getChannel();
         String equimentType = tEquipment.getEquimentType();
-        if(StringUtils.isEmpty(channel)||channel.equals("1")||StringUtils.isEmpty(equimentType)){
+        if (StringUtils.isEmpty(channel) || channel.equals("1") || StringUtils.isEmpty(equimentType)) {
             //用个推
             PushUtils.push(tEquipment.getGtClientId(), "", "", PushUtils.buildJson("log", kind).toString());
         }
-        if(StringUtils.isNotEmpty(channel)&&channel.equals("2")&&StringUtils.isNotEmpty(equimentType)){
+        if (StringUtils.isNotEmpty(channel) && channel.equals("2") && StringUtils.isNotEmpty(equimentType)) {
             //用Mq
             tEquipmentService.sentMessage(tEquipment.getClientId(), PushUtils.buildJson("log", kind).toString());
         }
@@ -1579,7 +1557,7 @@ public class TEquipmentController {
                 // 文件存在,取消定时器
                 future.cancel(false);
                 break;
-            }else {
+            } else {
                 Thread.sleep(1000);
                 if (System.currentTimeMillis() - startTime >= TIMEOUT) {
                     // 超过最大等待时间,抛出异常
@@ -1618,9 +1596,72 @@ public class TEquipmentController {
     public ResponseModel<List<TEquipment>> findEquipmentByClientIds(@RequestParam("clientIds") List<String> clientIds) {
 
         LambdaQueryWrapper<TEquipment> wrapper = new LambdaQueryWrapper<>();
-        wrapper.in(TEquipment::getClientId,clientIds);
+        wrapper.in(TEquipment::getClientId, clientIds);
         List<TEquipment> list = tEquipmentService.list(wrapper);
         return R.ok(list);
     }
+
+    @ApiOperation(value = "修改DIY花型功能开关状态")
+    @GetMapping("/updateDIYFlowerStatus")
+    public ResponseModel<?> updateDIYFlowerStatus(String equipmentId, String DIYFlowerStatus) {
+        if (StringUtils.isEmpty(DIYFlowerStatus) || StringUtils.isEmpty(equipmentId)) {
+            return R.fail(ResponseCodesEnum.A0001, "参数有空");
+        }
+        TEquipment equipment = tEquipmentService.getById(equipmentId);
+        if (equipment == null || equipment.getId() == null) {
+            return R.fail(ResponseCodesEnum.A0001, "找不到设备");
+        }
+        TEquipmentDesc tEquipmentDesc = equipmentDescService.getById(equipment.getId());
+        if (tEquipmentDesc != null) {
+            tEquipmentService.sentMessage(equipment.getClientId(), PushUtils.buildJson("DIYFlowerStatus", DIYFlowerStatus).toString());
+        } else {
+            return R.fail(ResponseCodesEnum.A0001, "找不到设备");
+        }
+        return R.ok(null, "发送成功");
+    }
+
+    @ApiOperation(value = "修改DIY花型的形状或是否显示")
+    @PostMapping("/updateDIYProductShow")
+    public ResponseModel<?> updateDIYProductShow(@RequestBody String productList) {
+        JSONObject jsonObject = JSONObject.parseObject(productList);
+        List<TDiyFlower> products = JSONObject.parseArray(jsonObject.get("productList").toString(), TDiyFlower.class);
+        if(products.size()>0){
+            TDiyFlower diyFlower = products.get(0);
+            if(diyFlower==null && diyFlower.getEquipmentId()==null){
+                return R.fail(ResponseCodesEnum.A0001,"找不到当前设备");
+            }
+        }
+        TEquipment equipment = tEquipmentService.getById(products.get(0).getEquipmentId());
+        if(equipment==null){
+            return R.fail(ResponseCodesEnum.A0001,"请退出重试");
+        }
+        List<TProductBean> list = new ArrayList<>();
+        for(TDiyFlower product:products){
+            TProductBean productBean = new TProductBean();
+            if(product!=null&&product.getId()!=null){
+                productBean.setShowType(product.getShowType());
+                if(StringUtils.isEmpty(product.getShowType())){
+                    productBean.setShowType("1");
+                }
+                productBean.setProductName(product.getName());
+                list.add(productBean);
+            }
+        }
+        tEquipmentService.sentMessage(equipment.getClientId(), PushUtils.buildJson("updateDIYProductShow", JSON.toJSONString(list)).toString());
+//        tDiyFlowerService.updateBatchById(products);
+        return R.ok(null,"修改请求发送成功");
+    }
+
+    @ApiOperation(value = "查询DIY花型列表信息")
+    @GetMapping("/selectDIYFlowers")
+    public ResponseModel<?> selectDIYFlowers(String equipmentId){
+        if (StringUtils.isEmpty(equipmentId)) {
+            return R.fail(ResponseCodesEnum.A0001, "参数有空");
+        }
+        LambdaQueryWrapper<TDiyFlower> query = Wrappers.lambdaQuery();
+        query.eq(TDiyFlower::getEquipmentId,Long.valueOf(equipmentId));
+        List<TDiyFlower> list = tDiyFlowerService.list(query);
+        return R.ok(list);
+    }
 }
 

+ 102 - 0
src/main/java/com/szwl/controller/THuifuMchController.java

@@ -5,16 +5,20 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.huifu.bspay.sdk.opps.core.exception.BasePayException;
 import com.szwl.constant.HuifuConstant;
 import com.szwl.constant.ResponseCodesEnum;
 import com.szwl.model.bo.R;
 import com.szwl.model.bo.ResponseModel;
 import com.szwl.model.entity.THuifuMch;
 import com.szwl.model.entity.THuifuMchCheck;
+import com.szwl.model.entity.TJoinpayMch;
+import com.szwl.model.param.UploadParms;
 import com.szwl.service.THuifuMchCheckService;
 import com.szwl.service.THuifuMchService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -50,6 +54,27 @@ public class THuifuMchController {
         if (tHuifuMchCheck.getAdminId() == null) {
             return R.fail(ResponseCodesEnum.A0001);
         }
+        LambdaQueryWrapper<THuifuMchCheck> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(THuifuMchCheck::getAdminId,tHuifuMchCheck.getAdminId());
+        THuifuMchCheck huifuMchCheck = tHuifuMchCheckService.getOne(queryWrapper);
+        if(huifuMchCheck != null) {
+            tHuifuMchCheck.setModifyDate(new Date());
+            tHuifuMchCheck.setStatus("0");
+            if(tHuifuMchCheck.getType().equals("0")) {
+                if(StringUtils.isNotEmpty(huifuMchCheck.getCardFrontPic())
+                        && StringUtils.isNotEmpty(huifuMchCheck.getLegalCertBackPic()) && StringUtils.isNotEmpty(huifuMchCheck.getLegalCertFrontPic()) ) {
+                    tHuifuMchCheck.setStatus("1");
+                }
+            } else  {
+                if(StringUtils.isNotEmpty(huifuMchCheck.getCertFrontPic())
+                        && StringUtils.isNotEmpty(huifuMchCheck.getCertBackPic()) && StringUtils.isNotEmpty(huifuMchCheck.getLicensePic())
+                        && StringUtils.isNotEmpty(huifuMchCheck.getRegAcctPic())) {
+                    tHuifuMchCheck.setStatus("1");
+                }
+            }
+            tHuifuMchCheckService.updateById(tHuifuMchCheck);
+            return R.ok();
+        }
         tHuifuMchCheck.setCreateDate(new Date());
         tHuifuMchCheck.setModifyDate(new Date());
         tHuifuMchCheck.setStatus("0");
@@ -91,6 +116,12 @@ public class THuifuMchController {
         THuifuMchCheck huifuMchCheck = tHuifuMchCheckService.getById(id);
         String data = null;
         if(status.equals("1")) {
+            LambdaQueryWrapper<THuifuMch> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(THuifuMch::getAdminId, huifuMchCheck.getAdminId());
+            THuifuMch tHuifuMch = tHuifuMchService.getOne(queryWrapper);
+            if(tHuifuMch != null) {
+                return R.ok("商户已入驻,请勿重复入驻");
+            }
             //通过
             // 判断商户类型,“0”为个人,“1”为企业
             if(huifuMchCheck.getType().equals("0")) {
@@ -263,5 +294,76 @@ public class THuifuMchController {
         }
     }
 
+    @ApiOperation(value = "上传材料图片")
+    @PostMapping("/newUploadPic")
+    public ResponseModel<?> newUploadPic(@RequestBody UploadParms uploadParms){
+        Long adminId = uploadParms.getAdminId();
+        String base64Str = uploadParms.getBase64Str();
+        String fileType = uploadParms.getFileType();
+        if (adminId == null) {
+            return R.fail(ResponseCodesEnum.A0001);
+        }
+        // 找到用户id对应的审核信息
+        LambdaQueryWrapper<THuifuMchCheck> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(THuifuMchCheck::getAdminId,adminId);
+        THuifuMchCheck tHuifuMchCheck = tHuifuMchCheckService.getOne(queryWrapper);
+        if(tHuifuMchCheck == null) {
+            return R.fail(ResponseCodesEnum.A0206,"还未填写个人资料");
+        }
+        String result = "";
+        String huifuId = null;
+        if(StringUtils.isNotEmpty(tHuifuMchCheck.getHuifuId())) {
+            huifuId = tHuifuMchCheck.getHuifuId();
+        }
+        if(StringUtils.isNotEmpty(base64Str)) {
+            try{
+                if(fileType.equals(HuifuConstant.fileType.F02.toString())) {
+                    result = tHuifuMchService.newUploadPic(base64Str, HuifuConstant.fileType.F02, huifuId);
+                    tHuifuMchCheck.setLegalCertFrontPic(result);
+                } else if (fileType.equals(HuifuConstant.fileType.F03.toString())){
+                    result = tHuifuMchService.newUploadPic(base64Str, HuifuConstant.fileType.F03, huifuId);
+                    tHuifuMchCheck.setLegalCertBackPic(result);
+                } else if (fileType.equals(HuifuConstant.fileType.F13.toString())) {
+                    result = tHuifuMchService.newUploadPic(base64Str, HuifuConstant.fileType.F13, huifuId);
+                    tHuifuMchCheck.setCardFrontPic(result);
+                } else if (fileType.equals(HuifuConstant.fileType.F07.toString())) {
+                    result = tHuifuMchService.newUploadPic(base64Str, HuifuConstant.fileType.F07, huifuId);
+                    tHuifuMchCheck.setLicensePic(result);
+                } else if (fileType.equals(HuifuConstant.fileType.F08.toString())) {
+                    result = tHuifuMchService.newUploadPic(base64Str, HuifuConstant.fileType.F08, huifuId);
+                    tHuifuMchCheck.setRegAcctPic(result);
+                } else if (fileType.equals(HuifuConstant.fileType.F40.toString())) {
+                    result = tHuifuMchService.newUploadPic(base64Str, HuifuConstant.fileType.F40, huifuId);
+                    tHuifuMchCheck.setLegalCertFrontPic(result);
+                } else if (fileType.equals(HuifuConstant.fileType.F41.toString())) {
+                    result = tHuifuMchService.newUploadPic(base64Str, HuifuConstant.fileType.F41, huifuId);
+                    tHuifuMchCheck.setLegalCertBackPic(result);
+                } else if (fileType.equals(HuifuConstant.fileType.F55.toString())) {
+                    result = tHuifuMchService.newUploadPic(base64Str, HuifuConstant.fileType.F55, huifuId);
+                    tHuifuMchCheck.setCertFrontPic(result);
+                } else if (fileType.equals(HuifuConstant.fileType.F56.toString())) {
+                    result = tHuifuMchService.newUploadPic(base64Str, HuifuConstant.fileType.F56, huifuId);
+                    tHuifuMchCheck.setCertBackPic(result);
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        if(StrUtil.isNotEmpty(result)) {
+            tHuifuMchCheckService.updateById(tHuifuMchCheck);
+            return R.ok("上传成功").setData(result);
+        } else {
+            return R.fail(ResponseCodesEnum.F0000,"上传失败");
+        }
+    }
+
+    @ApiOperation(value = "更新签约状态")
+    @PostMapping("/updateConStat")
+    public ResponseModel<?> updateConStat(@RequestBody THuifuMchCheck huifuMchCheck) throws BasePayException {
+        THuifuMchCheck tHuifuMchCheck = tHuifuMchCheckService.getById(huifuMchCheck.getId());
+        String str = tHuifuMchService.updateConStat(tHuifuMchCheck);
+        return R.ok(str);
+    }
+
 }
 

+ 18 - 9
src/main/java/com/szwl/controller/TJoinpayMchController.java

@@ -109,15 +109,17 @@ public class TJoinpayMchController {
             //取消审核步骤
 //            ResponseModel<?> checkMch = createCheckMch(mch, tJoinpayMch);
             //提交并修改
-            if(!mch.getApproveStatus().equals("审核通过")){
-                if (!StringUtils.isEmpty(tJoinpayMch.getLegalPerson())) {
-                    mch.setLegalPerson(tJoinpayMch.getLegalPerson());
-                }
-                if (tJoinpayMch.getIdCardNo()!=null) {
-                    mch.setIdCardNo(tJoinpayMch.getIdCardNo());
-                }
-                if (!StringUtils.isEmpty(tJoinpayMch.getLicenseNo())) {
-                    mch.setLicenseNo(tJoinpayMch.getLicenseNo());
+            if(StringUtils.isNotEmpty(mch.getApproveStatus())) {
+                if(!mch.getApproveStatus().equals("审核通过")){
+                    if (!StringUtils.isEmpty(tJoinpayMch.getLegalPerson())) {
+                        mch.setLegalPerson(tJoinpayMch.getLegalPerson());
+                    }
+                    if (tJoinpayMch.getIdCardNo()!=null) {
+                        mch.setIdCardNo(tJoinpayMch.getIdCardNo());
+                    }
+                    if (!StringUtils.isEmpty(tJoinpayMch.getLicenseNo())) {
+                        mch.setLicenseNo(tJoinpayMch.getLicenseNo());
+                    }
                 }
             }
 
@@ -323,6 +325,13 @@ public class TJoinpayMchController {
         }
     }
 
+    @ApiOperation(value = "更新图片审核状态")
+    @PostMapping("/updateApproveStatus")
+    public ResponseModel<?> updateApproveStatus(@RequestBody TJoinpayMch mch) {
+        TJoinpayMch byId = tJoinpayMchService.getById(mch.getId());
+        String str = tJoinpayMchService.updateApproveStatus(byId);
+        return R.ok(str);
+    }
 
 }
 

+ 45 - 14
src/main/java/com/szwl/controller/TMessageCodeController.java

@@ -14,11 +14,13 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+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;
 
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 import java.util.regex.Pattern;
@@ -40,22 +42,49 @@ public class TMessageCodeController {
     @Autowired
     TMessageCodeService tMessageCodeService;
 
+    @ApiOperation(value = "获取上次发送验证码的时间")
+    @GetMapping("/getLastSendTime")
+    public ResponseModel<?> getLastSendTime(String phoneOrEmail) {
+        if (StringUtils.isEmpty(phoneOrEmail)) {
+            return R.fail(ResponseCodesEnum.A0100, "手机号或邮箱为空!");
+        }
+        // 查询该 手机号/邮箱 最后一次发送验证码的时间
+        Date lastSendTime = tMessageCodeService.getLastSendTime(phoneOrEmail);
+//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//        String format = sdf.format(lastSendTime);
+//        return R.ok(format);
+        return R.ok(lastSendTime); // 返回时间戳
+    }
+
     @ApiOperation(value = "发送注册验证码")
     @PostMapping("/sentRegisterCode")
-    public ResponseModel<?> sentRegisterCode(String ifForeign, String phoneOrEmail) {
+    public ResponseModel<?> sentRegisterCode(String ifForeign, String phoneOrEmail, String hostName) {
+        if (StringUtils.isEmpty(phoneOrEmail)) {
+            // 说明参数为空
+            return R.fail(ResponseCodesEnum.A0100, "手机号或邮箱为空!");
+        }
+        // 查询该 手机号/邮箱 最后一次发送验证码的时间
+        Date lastSendTime = tMessageCodeService.getLastSendTime(phoneOrEmail);
+        long lastTime = lastSendTime.getTime();
+        long currentTime = System.currentTimeMillis();
+        if (currentTime - lastTime < 10 * 60 * 1000) {
+            return R.fail("请勿频繁发送,10分钟后再试");
+        }
+        String SZ = "Sunzee";
+        String companyType = "";
+        if (StringUtils.isNotEmpty(hostName) && SZ.equals(hostName)) {
+            companyType = "0";
+        } else {
+            companyType = "1";
+        }
         // 如果是国内
         if (ifForeign.equals("0")) {
-            if (StringUtils.isEmpty(phoneOrEmail)) {
-                // 说明参数为空
-                return R.fail(ResponseCodesEnum.A0100, "手机号或邮箱为空!");
-            }
             // 定义国内手机号和邮箱的正则表达式
             String phoneReg = "^1[3-9]\\d{9}$";
             String emailReg = "^[a-zA-Z0-9_-]+([a-zA-Z0-9_.-]*[a-zA-Z0-9])*@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$";
 
             // 判断 phoneOrEmail 是手机号还是邮箱
             if (Pattern.matches(phoneReg, phoneOrEmail)) {
-                System.out.println("这是一个手机号");
                 //检测是否已有手机号注册
                 LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
                 query.eq(TAdmin::getPhone, phoneOrEmail);
@@ -64,10 +93,9 @@ public class TMessageCodeController {
                     return R.fail(ResponseCodesEnum.A0202, "用户手机号已存在");
                 }
                 // 国内发送短信
-                String result = tMessageCodeService.sentMessage("0", phoneOrEmail);
+                String result = tMessageCodeService.sentMessage("0", phoneOrEmail, companyType);
                 return R.ok(result);
             } else if (Pattern.matches(emailReg, phoneOrEmail)) {
-                System.out.println("这是一个邮箱地址");
                 // 检测是否已有邮箱注册
                 LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
                 query.eq(TAdmin::getEmail, phoneOrEmail);
@@ -83,10 +111,6 @@ public class TMessageCodeController {
                 return R.fail(ResponseCodesEnum.A0100, "不是有效的手机号或邮箱地址");
             }
         } else {
-            // 海外
-            if (StringUtils.isEmpty(phoneOrEmail)) {
-                return R.fail(ResponseCodesEnum.A0100, "邮箱为空!");
-            }
             //检测是否已有邮箱注册
             LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
             query.eq(TAdmin::getEmail, phoneOrEmail);
@@ -102,7 +126,7 @@ public class TMessageCodeController {
 
     @ApiOperation(value = "发送忘记密码验证码")
     @PostMapping("/sentForgetCode")
-    public ResponseModel<?> sentForgetCode(String ifForeign, String username, String phoneOrEmail) {
+    public ResponseModel<?> sentForgetCode(String ifForeign, String username, String phoneOrEmail, String hostName) {
 
         if (StringUtils.isEmpty(username)) {
             return R.fail(ResponseCodesEnum.A0100, "用户名为空!");
@@ -110,6 +134,13 @@ public class TMessageCodeController {
         if (ifForeign.equals("2")) {
             ifForeign = "0";
         }
+        String SZ = "Sunzee";
+        String companyType = "";
+        if (StringUtils.isNotEmpty(hostName) && SZ.equals(hostName)) {
+            companyType = "0";
+        } else {
+            companyType = "1";
+        }
         // 如果是国内
         if (ifForeign.equals("0")) {
             if (StringUtils.isEmpty(phoneOrEmail)) {
@@ -131,7 +162,7 @@ public class TMessageCodeController {
                     return R.fail(ResponseCodesEnum.A0001, "登录名或手机号出错");
                 }
                 //国内发送短信
-                String result = tMessageCodeService.sentMessage("1", phoneOrEmail);
+                String result = tMessageCodeService.sentMessage("1", phoneOrEmail, companyType);
                 return R.ok(result);
             } else if (Pattern.matches(emailReg, phoneOrEmail)) {
                 System.out.println("忘记密码 >>> 这是一个邮箱地址");

+ 19 - 4
src/main/java/com/szwl/controller/TNoticeController.java

@@ -16,11 +16,9 @@ import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
-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;
+import org.springframework.web.bind.annotation.*;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -38,6 +36,23 @@ public class TNoticeController {
     TAdminService tAdminService;
     @Autowired
     TNoticeService noticeService;
+
+    @ApiOperation(value = "添加公告")
+    @PostMapping("/addNotice")
+    public ResponseModel<?> addNotice(@RequestBody TNotice notice) {
+        if(StringUtils.isEmpty(notice.getNote())){
+            return R.fail(ResponseCodesEnum.A0001,"内容为空");
+        }
+        TNotice tNotice = new TNotice();
+        tNotice.setCreateDate(new Date());
+        tNotice.setModifyDate(new Date());
+        tNotice.setTitle(notice.getTitle());
+        tNotice.setNote(notice.getNote());
+        tNotice.setStatus("0");
+        noticeService.save(tNotice);
+        return R.ok(tNotice,"添加成功");
+    }
+
     @ApiOperation(value = "获取公告")
     @GetMapping("/getNotice")
     public ResponseModel<?> getNotice(String adminId) {

+ 8 - 6
src/main/java/com/szwl/controller/TOrderController.java

@@ -17,6 +17,7 @@ import com.szwl.model.bo.ResponseModel;
 import com.szwl.model.entity.*;
 import com.szwl.service.*;
 import com.szwl.service.es.EsTOrderService;
+import com.szwl.util.IDGenerator;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -71,7 +72,7 @@ public class TOrderController {
     private TProportionService proportionService;
 
     /**
-     *  退款
+     * 退款
      * @param
      * @return
      */
@@ -245,7 +246,7 @@ public class TOrderController {
             }
         } else {
             try {
-                String result = orderService.refund(order.getSn(), orderService.initRefundSn(equipmentId, refundNumber), refusePrice.subtract(p8_MarketRefAmount), p8_MarketRefAmount,"", notifyUrl, altRefInfo.toString());
+                String result = orderService.refund(order.getSn(), orderService.initRefundSn(equipment.getClientId(), refundNumber), refusePrice.subtract(p8_MarketRefAmount), p8_MarketRefAmount,"", notifyUrl, altRefInfo.toString());
                 if ("退款申请成功".equals(result)) {
                     order.setStatus(2);
                     if(StringUtils.isNotEmpty(order.getCoupons())){
@@ -286,7 +287,7 @@ public class TOrderController {
         return R.ok("申请退款已成功");
     }
     /**
-     *  小程序退款
+     * 小程序退款
      * @param
      * @return
      */
@@ -458,7 +459,7 @@ public class TOrderController {
             }
         } else {
             try {
-                String result = orderService.refund(order.getSn(), orderService.initRefundSn(equipmentId, refundNumber), refusePrice.subtract(p8_MarketRefAmount), p8_MarketRefAmount,"", notifyUrl, altRefInfo.toString());
+                String result = orderService.refund(order.getSn(), orderService.initRefundSn(equipment.getClientId(), refundNumber), refusePrice.subtract(p8_MarketRefAmount), p8_MarketRefAmount,"", notifyUrl, altRefInfo.toString());
                 if ("退款申请成功".equals(result)) {
                     order.setStatus(2);
                     if(StringUtils.isNotEmpty(order.getCoupons())){
@@ -556,6 +557,7 @@ public class TOrderController {
         BigDecimal marketingAmount = null;
 //                frpCode = "WEIXIN_NATIVE";
         TOrder order1 = new TOrder();
+        order1.setId(IDGenerator.orderID());
         order1.setSn(sn);
         order1.setType(0);
         order1.setAdminId(admin.getId());
@@ -1046,7 +1048,7 @@ public class TOrderController {
         String payPlatform = order.getPayPlatform();
         if (StringUtils.isNotEmpty(payPlatform) && payPlatform.equals("1")) {
             try {
-                String refund = tShandeMchService.refund(order.getId(), orderService.initRefundSn(equipmentId, refundNumber).toString(), price, "", altRefInfo.toString());
+                String refund = tShandeMchService.refund(order.getId(), orderService.initRefundSn(equipment.getClientId(), refundNumber).toString(), price, "", altRefInfo.toString());
                 com.gexin.fastjson.JSONObject jsonObject =  com.gexin.fastjson.JSON.parseObject(refund);
                 String sub_code = jsonObject.getString("sub_code");
                 //订单号
@@ -1183,7 +1185,7 @@ public class TOrderController {
             }
         } else {
             try {
-                String result = orderService.refund(order.getSn(), orderService.initRefundSn(equipmentId, refundNumber), refusePrice.subtract(p8_MarketRefAmount), p8_MarketRefAmount,"", notifyUrl, altRefInfo.toString());
+                String result = orderService.refund(order.getSn(), orderService.initRefundSn(equipment.getClientId(), refundNumber), refusePrice.subtract(p8_MarketRefAmount), p8_MarketRefAmount,"", notifyUrl, altRefInfo.toString());
                 if ("退款申请成功".equals(result)) {
                     order.setStatus(2);
                     if(StringUtils.isNotEmpty(order.getCoupons())){

+ 2 - 0
src/main/java/com/szwl/controller/TPromoCodeController.java

@@ -18,6 +18,7 @@ import com.szwl.model.dto.PromoCodeTarget;
 import com.szwl.model.entity.*;
 import com.szwl.model.utils.DateUtils;
 import com.szwl.service.*;
+import com.szwl.util.IDGenerator;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang.StringUtils;
@@ -401,6 +402,7 @@ public class TPromoCodeController {
                 BigDecimal marketingAmount = null;
 //                frpCode = "WEIXIN_NATIVE";
                 TOrder order1 = new TOrder();
+                order1.setId(IDGenerator.orderID());
                 order1.setSn(sn);
                 order1.setType(0);
                 order1.setAdminId(admin.getId());

+ 30 - 8
src/main/java/com/szwl/controller/TProportionController.java

@@ -84,10 +84,12 @@ public class TProportionController {
                 for(TProportionCheck proportionCheck:records){
                     if(proportionCheck.getEquipmentId()!=null){
                         TEquipment equipment = tEquipmentService.getById(proportionCheck.getEquipmentId());
-                        if(StringUtils.isNotEmpty(equipment.getName())){
-                            proportionCheck.setEquipmentName(equipment.getName());
-                        }else {
-                            proportionCheck.setEquipmentName(equipment.getClientId());
+                        if(equipment != null) {
+                            if(StringUtils.isNotEmpty(equipment.getName())){
+                                proportionCheck.setEquipmentName(equipment.getName());
+                            }else {
+                                proportionCheck.setEquipmentName(equipment.getClientId());
+                            }
                         }
                     }
 
@@ -127,10 +129,12 @@ public class TProportionController {
                 for(TProportion proportion:records){
                     if(proportion.getEquipmentId()!=null){
                         TEquipment equipment = tEquipmentService.getById(proportion.getEquipmentId());
-                        if(StringUtils.isNotEmpty(equipment.getName())){
-                            proportion.setEquipmentName(equipment.getName());
-                        }else {
-                            proportion.setEquipmentName(equipment.getClientId());
+                        if(equipment != null) {
+                            if(StringUtils.isNotEmpty(equipment.getName())){
+                                proportion.setEquipmentName(equipment.getName());
+                            }else {
+                                proportion.setEquipmentName(equipment.getClientId());
+                            }
                         }
                     }
                 }
@@ -181,6 +185,21 @@ public class TProportionController {
         query.orderByDesc(TProportionCheck::getCreateDate);
         Page<TProportionCheck> page = new Page<>(current, size, true);
         IPage<TProportionCheck> iPage = tProportionCheckService.page(page, query);
+        List<TProportionCheck> records = iPage.getRecords();
+        if(records.size()>0){
+            for(TProportionCheck proportionCheck:records){
+                if(proportionCheck.getEquipmentId()!=null){
+                    TEquipment equipment = tEquipmentService.getById(proportionCheck.getEquipmentId());
+                    if(equipment != null) {
+                        if(StringUtils.isNotEmpty(equipment.getName())){
+                            proportionCheck.setEquipmentName(equipment.getName());
+                        }else {
+                            proportionCheck.setEquipmentName(equipment.getClientId());
+                        }
+                    }
+                }
+            }
+        }
         return R.ok(iPage);
 
     }
@@ -349,6 +368,7 @@ public class TProportionController {
                 proportionCheck.setAgencyName(tProportion.getAgencyName());
                 proportionCheck.setMerchantName(tProportion.getMerchantName());
                 proportionCheck.setPersonageName(tProportion.getPersonageName());
+                proportionCheck.setEquipmentName(equipment.getName());
                 proportionCheck.setCreateDate(new Date());
                 proportionCheck.setModifyDate(new Date());
                 proportionCheck.setCheckType("0");
@@ -362,6 +382,7 @@ public class TProportionController {
                 tProportion.setMerchantId(merchantId);
                 tProportion.setPersonageId(personageId);
                 tProportion.setEquipmentId(equipment.getId());
+                tProportion.setEquipmentName(equipment.getName());
                 tProportion.setAgencyProportion(BigDecimal.valueOf(0.00));
                 tProportion.setMerchantProportion(BigDecimal.valueOf(0.00));
                 tProportion.setPersonageProportion(BigDecimal.valueOf(0.00));
@@ -374,6 +395,7 @@ public class TProportionController {
                 TProportionCheck proportionCheck = new TProportionCheck();
                 proportionCheck.setAdminId(tProportion.getAdminId());
                 proportionCheck.setEquipmentId(equipment.getId());
+                proportionCheck.setEquipmentName(equipment.getName());
                 proportionCheck.setClientId(tProportion.getClientId());
                 proportionCheck.setType(tProportion.getType());
                 proportionCheck.setProportion(tProportion.getProportion());

+ 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);
 

+ 71 - 0
src/main/java/com/szwl/feign/bean/SyncOldFeign.java

@@ -0,0 +1,71 @@
+package com.szwl.feign.bean;
+
+import com.szwl.model.bo.ResponseModel;
+import com.szwl.model.entity.*;
+import org.springframework.cloud.openfeign.FeignClient;
+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.RequestParam;
+
+import java.util.Date;
+import java.util.List;
+
+@FeignClient(name = "syncOld-server")
+//@FeignClient(name = "syncOld-server", url = "http://127.0.0.1:49015")
+public interface SyncOldFeign {
+    @GetMapping("/oldProportion/getProportionByAdminId")
+    ResponseModel<TProportion> getProportionByAdminId(@RequestParam Long adminId);
+
+    @GetMapping("/oldJoinpayMch/getJoinpayMchByAdminId")
+    ResponseModel<TJoinpayMch> getJoinpayMchByAdminId(@RequestParam Long adminId);
+
+    @GetMapping("/oldProduct/getProductByEquipmentId")
+    ResponseModel<List<TProduct>> getProductByEquipmentId(@RequestParam String equipmentId);
+
+    /**
+     * 通过 adminId 获取用户信息
+     * @param adminId
+     * @return
+     */
+    @GetMapping("/oldAdmin/getAdminById")
+    ResponseModel<TAdmin> getAdminById(@RequestParam String adminId);
+
+
+    /**
+     * 查找 adminId 用户的所有 equipment
+     * @param adminId
+     * @return
+     */
+    @GetMapping("/oldEquipment/getEquipmentByAdminId")
+    ResponseModel<List<TEquipment>> getEquipmentByAdminId(@RequestParam Long adminId);
+
+
+    /**
+     * 通过 clientId 获取机器信息
+     * @param clientId
+     * @return
+     */
+    @GetMapping("/oldEquipment/getEquipmentByClientId")
+    ResponseModel<TEquipment> getEquipmentByClientId(@RequestParam String clientId);
+
+
+    /**
+     * 获取某一时间段内的所有 equipment
+     * @param startTime
+     * @param endTime
+     */
+    @GetMapping("/oldEquipment/getEquipmentInTime")
+    ResponseModel<List<TEquipment>> getEquipmentInTime(@RequestParam String startTime, @RequestParam String endTime);
+
+    /**
+     * 获取某一时间段内的所有 admin
+     * @param startTime
+     * @param endTime
+     * @return
+     */
+    @GetMapping("/oldAdmin/getAdminInTime")
+    ResponseModel<List<TAdmin>> getAdminInTime(@RequestParam String startTime, @RequestParam String endTime);
+
+
+}

+ 16 - 0
src/main/java/com/szwl/mapper/TDiyFlowerMapper.java

@@ -0,0 +1,16 @@
+package com.szwl.mapper;
+
+import com.szwl.model.entity.TDiyFlower;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author wuhs
+ * @since 2023-11-07
+ */
+public interface TDiyFlowerMapper extends BaseMapper<TDiyFlower> {
+
+}

+ 2 - 2
src/main/java/com/szwl/mapper/TEquipmentApplyMapper.java

@@ -5,11 +5,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
 /**
  * <p>
- * 设备连接申请表 Mapper 接口
+ *  Mapper 接口
  * </p>
  *
  * @author wuhs
- * @since 2022-04-21
+ * @since 2023-10-25
  */
 public interface TEquipmentApplyMapper extends BaseMapper<TEquipmentApply> {
 

+ 7 - 2
src/main/java/com/szwl/mapper/TEquipmentMapper.java

@@ -4,17 +4,22 @@ import com.szwl.model.entity.TEquipment;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.szwl.model.query.StatisticsParam;
 
+import java.util.List;
+
 /**
  * <p>
- * 设备表 Mapper 接口
+ *  Mapper 接口
  * </p>
  *
  * @author wuhs
- * @since 2022-04-19
+ * @since 2023-10-25
  */
 public interface TEquipmentMapper extends BaseMapper<TEquipment> {
 
     String findMachineTotalNum(StatisticsParam param);
 
     String findMachineUseNum(StatisticsParam param);
+
+    int insertBatchSomeColumn(List<TEquipment> entityList);
+
 }

+ 5 - 0
src/main/java/com/szwl/mapper/TMessageCodeMapper.java

@@ -3,6 +3,9 @@ package com.szwl.mapper;
 import com.szwl.model.entity.TMessageCode;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.Date;
 
 /**
  * <p>
@@ -15,4 +18,6 @@ import org.springframework.stereotype.Component;
 @Component
 public interface TMessageCodeMapper extends BaseMapper<TMessageCode> {
 
+    Date getLastSendTimeByEmailOrPhone(@RequestParam String phoneOrEmail);
+
 }

+ 21 - 0
src/main/java/com/szwl/mapper/xml/TDiyFlowerMapper.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.szwl.mapper.TDiyFlowerMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.szwl.model.entity.TDiyFlower">
+        <id column="id" property="id" />
+        <result column="create_date" property="createDate" />
+        <result column="modify_date" property="modifyDate" />
+        <result column="equipment_id" property="equipmentId" />
+        <result column="name" property="name" />
+        <result column="no" property="no" />
+        <result column="show_type" property="showType" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, create_date, modify_date, equipment_id, name, no, show_type
+    </sql>
+
+</mapper>

+ 4 - 1
src/main/java/com/szwl/mapper/xml/TEquipmentApplyMapper.xml

@@ -13,6 +13,9 @@
         <result column="client_id" property="clientId" />
         <result column="manager_id" property="managerId" />
         <result column="status_type" property="statusType" />
+        <result column="agency_id" property="agencyId" />
+        <result column="merchant_id" property="merchantId" />
+        <result column="personage_id" property="personageId" />
         <result column="type" property="type" />
         <result column="gt_client_id" property="gtClientId" />
         <result column="equiment_type" property="equimentType" />
@@ -21,7 +24,7 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, create_date, modify_date, admin_id, admin_level, admin_user_name, client_id, manager_id, status_type, type, gt_client_id, equiment_type, machine_type
+        id, create_date, modify_date, admin_id, admin_level, admin_user_name, client_id, manager_id, status_type, agency_id, merchant_id, personage_id, type, gt_client_id, equiment_type, machine_type
     </sql>
 
 </mapper>

+ 6 - 1
src/main/java/com/szwl/mapper/xml/TEquipmentDescMapper.xml

@@ -24,11 +24,16 @@
         <result column="cup_quantity" property="cupQuantity" />
         <result column="stir_tm" property="stirTm" />
         <result column="corn_generator_tm" property="cornGeneratorTm" />
+        <result column="number_one" property="numberOne" />
+        <result column="candy_generator_tm" property="candyGeneratorTm" />
+        <result column="outside_tm" property="outsideTm" />
+        <result column="outside_hd" property="outsideHd" />
+        <result column="diy_flower_status" property="diyFlowerStatus" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        equipment_id, flowers, white_sugar, red_sugar, yellow_sugar, blue_sugar, stick, water, waste_water, is_material_use, pay_type, note, status, coupon_status, out_door, in_door, sleep_desc, cup_quantity, stir_tm, corn_generator_tm
+        equipment_id, flowers, white_sugar, red_sugar, yellow_sugar, blue_sugar, stick, water, waste_water, is_material_use, pay_type, note, status, coupon_status, out_door, in_door, sleep_desc, cup_quantity, stir_tm, corn_generator_tm, number_one, candy_generator_tm, outside_tm, outside_hd, diy_flower_status
     </sql>
 
 </mapper>

File diff suppressed because it is too large
+ 9 - 1
src/main/java/com/szwl/mapper/xml/TEquipmentMapper.xml


File diff suppressed because it is too large
+ 2 - 1
src/main/java/com/szwl/mapper/xml/THuifuMchCheckMapper.xml


+ 7 - 0
src/main/java/com/szwl/mapper/xml/TMessageCodeMapper.xml

@@ -20,4 +20,11 @@
         id, create_date, modify_date, admin_id, phone, code, type, status, note
     </sql>
 
+    <!-- 获取指定邮箱或手机号的最近一次发送验证码时间 -->
+    <select id="getLastSendTimeByEmailOrPhone" resultType="java.util.Date">
+        SELECT
+            MAX(create_date)
+        FROM t_message_code
+        WHERE phone = #{phoneOrEmail}
+    </select>
 </mapper>

+ 12 - 0
src/main/java/com/szwl/model/bean/EquipmentVo.java

@@ -133,4 +133,16 @@ public class EquipmentVo {
     @ApiModelProperty(value = "玉米发生器温度")
     private String cornGeneratorTm;
 
+    @ApiModelProperty(value = "NO.1000温度")
+    private String numberOne;
+
+    @ApiModelProperty(value = "棉花糖发生器温度")
+    private String candyGeneratorTm;
+
+    @ApiModelProperty(value = "柜外温度")
+    private String outsideTm;
+
+    @ApiModelProperty(value = "柜外湿度")
+    private String outsideHd;
+
 }

+ 55 - 0
src/main/java/com/szwl/model/bean/TEquipmentDTO.java

@@ -110,6 +110,21 @@ public class TEquipmentDTO extends TEquipment {
     @ApiModelProperty(value = "玉米发生器温度")
     private String cornGeneratorTm;
 
+    @ApiModelProperty(value = "NO.1000温度")
+    private String numberOne;
+
+    @ApiModelProperty(value = "棉花糖发生器温度")
+    private String candyGeneratorTm;
+
+    @ApiModelProperty(value = "柜外温度")
+    private String outsideTm;
+
+    @ApiModelProperty(value = "柜外湿度")
+    private String outsideHd;
+
+    @ApiModelProperty(value = "DIY花型功能开关,0:关闭,1:开启")
+    private String diyFlowerStatus;
+
     public Long getCupQuantity() {
         return cupQuantity;
     }
@@ -286,4 +301,44 @@ public class TEquipmentDTO extends TEquipment {
     public void setMessageReceiver3(String messageReceiver3) {
         this.messageReceiver3 = messageReceiver3;
     }
+
+    public String getNumberOne() {
+        return numberOne;
+    }
+
+    public void setNumberOne(String numberOne) {
+        this.numberOne = numberOne;
+    }
+
+    public String getCandyGeneratorTm() {
+        return candyGeneratorTm;
+    }
+
+    public void setCandyGeneratorTm(String candyGeneratorTm) {
+        this.candyGeneratorTm = candyGeneratorTm;
+    }
+
+    public String getOutsideTm() {
+        return outsideTm;
+    }
+
+    public void setOutsideTm(String outsideTm) {
+        this.outsideTm = outsideTm;
+    }
+
+    public String getOutsideHd() {
+        return outsideHd;
+    }
+
+    public void setOutsideHd(String outsideHd) {
+        this.outsideHd = outsideHd;
+    }
+
+    public String getDiyFlowerStatus() {
+        return diyFlowerStatus;
+    }
+
+    public void setDiyFlowerStatus(String diyFlowerStatus) {
+        this.diyFlowerStatus = diyFlowerStatus;
+    }
 }

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

@@ -29,6 +29,7 @@ public class TAdmin implements Serializable {
     private static final long serialVersionUID = 1L;
 
     @TableId(value = "id", type = IdType.AUTO)
+//    @TableId(value = "id", type = IdType.ASSIGN_ID)
     private Long id;
 
     @ApiModelProperty(value = "创建时间")
@@ -113,7 +114,7 @@ public class TAdmin implements Serializable {
     @ApiModelProperty(value = "短信验证码")
     private String code;
 
-    @ApiModelProperty(value = "支付平台  0或null为汇聚,1为杉德支付")
+    @ApiModelProperty(value = "支付平台  0或null为汇聚,1为汇付支付")
     private String payPlatform;
 
     private String logoRule;

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

@@ -25,7 +25,8 @@ public class TCoinOrder implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    @TableId(value = "id", type = IdType.AUTO)
+//    @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
     private Long id;
 
     private Date createDate;

+ 50 - 0
src/main/java/com/szwl/model/entity/TDiyFlower.java

@@ -0,0 +1,50 @@
+package com.szwl.model.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wuhs
+ * @since 2023-11-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="TDiyFlower对象", description="")
+public class TDiyFlower implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "唯一ID")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "创建时间")
+    private Date createDate;
+
+    @ApiModelProperty(value = "修改时间")
+    private Date modifyDate;
+
+    @ApiModelProperty(value = "设备ID")
+    private Long equipmentId;
+
+    @ApiModelProperty(value = "形状名称或者颜色")
+    private String name;
+
+    @ApiModelProperty(value = "编号")
+    private String no;
+
+    @ApiModelProperty(value = "是否显示")
+    private String showType;
+
+
+}

+ 20 - 4
src/main/java/com/szwl/model/entity/TEquipment.java

@@ -15,7 +15,7 @@ import lombok.EqualsAndHashCode;
  * </p>
  *
  * @author wuhs
- * @since 2023-06-21
+ * @since 2023-10-25
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -25,7 +25,7 @@ public class TEquipment implements Serializable {
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty(value = "设备唯一ID")
-    @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
     private Long id;
 
     @ApiModelProperty(value = "创建时间")
@@ -123,10 +123,14 @@ public class TEquipment implements Serializable {
     @ApiModelProperty(value = "所属商家")
     private String adminUserName;
 
-    @ApiModelProperty(value = "公司电话")
+    private Long agencyId;
+
+    private Long merchantId;
+
     private String companyPhone;
 
-    @ApiModelProperty(value = "0:分账方2个,1:分账方3个,3:分账方4个,3:分账方超4个")
+    private Long personageId;
+
     private Integer type;
 
     @ApiModelProperty(value = "地址全名")
@@ -153,12 +157,20 @@ public class TEquipment implements Serializable {
     @ApiModelProperty(value = "睡眠状态,睡眠为true,不睡眠false")
     private Boolean isSleep;
 
+    private String advancedParameters;
+
     @ApiModelProperty(value = "音量")
     private String volume;
 
+    private String commonParameters;
+
     @ApiModelProperty(value = "远程开关机的时间戳")
     private String network;
 
+    private String offTime;
+
+    private String bootTime;
+
     @ApiModelProperty(value = "PLC版本")
     private String plcVersion;
 
@@ -183,4 +195,8 @@ public class TEquipment implements Serializable {
     @ApiModelProperty(value = "公司平台,0或空为申泽,1为七云")
     private String companyType;
 
+    @ApiModelProperty(value = "支付方式:为了远程修改支付方式")
+    private String paymentType;
+
+
 }

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

@@ -11,11 +11,11 @@ import lombok.EqualsAndHashCode;
 
 /**
  * <p>
- * 设备连接申请表
+ * 
  * </p>
  *
  * @author wuhs
- * @since 2022-04-21
+ * @since 2023-10-25
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -49,6 +49,12 @@ public class TEquipmentApply implements Serializable {
     @ApiModelProperty(value = "申请状态,1,申请中;2,已拒绝;3,已同意;")
     private Integer statusType;
 
+    private Long agencyId;
+
+    private Long merchantId;
+
+    private Long personageId;
+
     @ApiModelProperty(value = "商家类型;")
     private Integer type;
 

+ 17 - 1
src/main/java/com/szwl/model/entity/TEquipmentDesc.java

@@ -14,7 +14,7 @@ import lombok.EqualsAndHashCode;
  * </p>
  *
  * @author wuhs
- * @since 2023-08-17
+ * @since 2023-11-06
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -23,6 +23,7 @@ public class TEquipmentDesc implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
+    @ApiModelProperty(value = "设备唯一ID")
     @TableId(value = "equipment_id", type = IdType.ASSIGN_ID)
     private Long equipmentId;
 
@@ -82,5 +83,20 @@ public class TEquipmentDesc implements Serializable {
     @ApiModelProperty(value = "玉米发生器温度")
     private String cornGeneratorTm;
 
+    @ApiModelProperty(value = "NO.1000温度")
+    private String numberOne;
+
+    @ApiModelProperty(value = "棉花糖发生器温度")
+    private String candyGeneratorTm;
+
+    @ApiModelProperty(value = "柜外温度")
+    private String outsideTm;
+
+    @ApiModelProperty(value = "柜外湿度")
+    private String outsideHd;
+
+    @ApiModelProperty(value = "DIY花型功能开关,0:关闭,1:开启")
+    private String diyFlowerStatus;
+
 
 }

+ 3 - 0
src/main/java/com/szwl/model/entity/THuifuMchCheck.java

@@ -172,5 +172,8 @@ public class THuifuMchCheck implements Serializable {
     @ApiModelProperty(value = "法人身份证人像面")
     private String legalCertFrontPic;
 
+    @ApiModelProperty(value = "签约状态:2:创建合同异常	3:待签约	4:签约中	5:签约完成(电子协议只有签约完成才能做交易)	6:已失效	7:已拒签	8:签约失败")
+    private String conStat;
+
 
 }

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

@@ -25,7 +25,8 @@ public class TOrder implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    @TableId(value = "id", type = IdType.AUTO)
+//    @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
     private Long id;
 
     private Date createDate;

+ 18 - 0
src/main/java/com/szwl/model/param/UploadParms.java

@@ -0,0 +1,18 @@
+package com.szwl.model.param;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+@Accessors(chain = true)
+@ApiModel(description = "")
+@Data
+public class UploadParms {
+
+    private String base64Str;
+
+    private Long adminId;
+
+    private String fileType;
+
+}

+ 0 - 1
src/main/java/com/szwl/model/utils/YunPianSms.java

@@ -99,7 +99,6 @@ public final class YunPianSms {
      * @return json格式字符串
      * @throws IOException
      */
-
     public static String sendSms(String apikey, String text, String mobile) throws IOException {
         Map<String, String> params = new HashMap<String, String>();
         params.put("apikey", apikey);

+ 16 - 0
src/main/java/com/szwl/service/TDiyFlowerService.java

@@ -0,0 +1,16 @@
+package com.szwl.service;
+
+import com.szwl.model.entity.TDiyFlower;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author wuhs
+ * @since 2023-11-07
+ */
+public interface TDiyFlowerService extends IService<TDiyFlower> {
+
+}

+ 2 - 2
src/main/java/com/szwl/service/TEquipmentApplyService.java

@@ -6,11 +6,11 @@ import com.szwl.service.base.MyIService;
 
 /**
  * <p>
- * 设备连接申请表 服务类
+ *  服务类
  * </p>
  *
  * @author wuhs
- * @since 2022-04-21
+ * @since 2023-10-25
  */
 public interface TEquipmentApplyService extends MyIService<TEquipmentApply> {
 

+ 2 - 2
src/main/java/com/szwl/service/TEquipmentService.java

@@ -6,11 +6,11 @@ import com.szwl.service.base.MyIService;
 
 /**
  * <p>
- * 设备表 服务类
+ *  服务类
  * </p>
  *
  * @author wuhs
- * @since 2022-04-19
+ * @since 2023-10-25
  */
 public interface TEquipmentService extends MyIService<TEquipment> {
     /**

+ 15 - 0
src/main/java/com/szwl/service/THuifuMchService.java

@@ -67,4 +67,19 @@ public interface THuifuMchService extends IService<THuifuMch> {
      * @return
      */
     String sendSms(THuifuMch tHuifuMch) throws Exception;
+
+    /**
+     * 汇付上传图片
+     * @param base64Str
+     * @param fileType
+     * @return
+     */
+    String newUploadPic(String base64Str, HuifuConstant.fileType fileType, String huifuId);
+
+    /**
+     * 更新签约状态
+     * @param tHuifuMchCheck
+     * @return
+     */
+    String updateConStat(THuifuMchCheck tHuifuMchCheck) throws BasePayException;
 }

+ 7 - 0
src/main/java/com/szwl/service/TJoinpayMchService.java

@@ -46,4 +46,11 @@ public interface TJoinpayMchService extends MyIService<TJoinpayMch> {
     String sendCard(TJoinpayMch mch, String cardPositive, String cardNegative, String status);
 
     String sendCardBusiness(TJoinpayMch mch, String cardPositive, String cardNegative, String tradeLicence, String openAccountLicence, String status);
+
+    /**
+     * 图片审批查询接口
+     * @param mch
+     * @return
+     */
+    String updateApproveStatus(TJoinpayMch mch);
 }

+ 5 - 1
src/main/java/com/szwl/service/TMessageCodeService.java

@@ -3,6 +3,8 @@ package com.szwl.service;
 import com.szwl.model.entity.TMessageCode;
 import com.szwl.service.base.MyIService;
 
+import java.util.Date;
+
 /**
  * <p>
  * 短信验证码 服务类
@@ -16,9 +18,11 @@ public interface TMessageCodeService extends MyIService<TMessageCode> {
     /*
     * 发送短信验证码
     * */
-    String sentMessage(String type, String phone);
+    String sentMessage(String type, String phone, String companyType);
     /*
      * 发送邮箱验证码
      * */
     String sentEmail(String type, String email);
+
+    Date getLastSendTime(String phoneOrEmail);
 }

+ 1 - 1
src/main/java/com/szwl/service/TOrderService.java

@@ -22,7 +22,7 @@ public interface TOrderService extends MyIService<TOrder> {
      */
     String initSn(Long equipmentId);
 
-    Object initRefundSn(Long equipmentId, int refundNumber);
+    Object initRefundSn(String clientId, int refundNumber);
 
     String refund(String sn, Object o, BigDecimal price,BigDecimal p8_MarketRefAmount,String s, String notifyUrl, String s1);
 }

+ 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;
     }
+
 }

+ 20 - 0
src/main/java/com/szwl/service/impl/TDiyFlowerServiceImpl.java

@@ -0,0 +1,20 @@
+package com.szwl.service.impl;
+
+import com.szwl.model.entity.TDiyFlower;
+import com.szwl.mapper.TDiyFlowerMapper;
+import com.szwl.service.TDiyFlowerService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author wuhs
+ * @since 2023-11-07
+ */
+@Service
+public class TDiyFlowerServiceImpl extends ServiceImpl<TDiyFlowerMapper, TDiyFlower> implements TDiyFlowerService {
+
+}

+ 2 - 2
src/main/java/com/szwl/service/impl/TEquipmentApplyServiceImpl.java

@@ -8,11 +8,11 @@ import org.springframework.stereotype.Service;
 
 /**
  * <p>
- * 设备连接申请表 服务实现类
+ *  服务实现类
  * </p>
  *
  * @author wuhs
- * @since 2022-04-21
+ * @since 2023-10-25
  */
 @Service
 public class TEquipmentApplyServiceImpl extends ServiceImpl<TEquipmentApplyMapper, TEquipmentApply> implements TEquipmentApplyService {

+ 9 - 2
src/main/java/com/szwl/service/impl/TEquipmentServiceImpl.java

@@ -18,11 +18,11 @@ import java.util.List;
 
 /**
  * <p>
- * 设备表 服务实现类
+ *  服务实现类
  * </p>
  *
  * @author wuhs
- * @since 2022-04-19
+ * @since 2023-10-25
  */
 @Service
 public class TEquipmentServiceImpl extends ServiceImpl<TEquipmentMapper, TEquipment> implements TEquipmentService {
@@ -68,4 +68,11 @@ public class TEquipmentServiceImpl extends ServiceImpl<TEquipmentMapper, TEquipm
     public String findMachineUseNum(StatisticsParam param) {
         return tEquipmentMapper.findMachineUseNum(param);
     }
+
+//    @Override
+//    public Integer insertBatchSomeColumn(List<TEquipment> entityList) {
+//        return tEquipmentMapper.insertBatchSomeColumn(entityList);
+//    }
+
+
 }

+ 119 - 9
src/main/java/com/szwl/service/impl/THuifuMchServiceImpl.java

@@ -6,6 +6,8 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.huifu.bspay.sdk.opps.core.exception.BasePayException;
 import com.huifu.bspay.sdk.opps.core.utils.DateTools;
 import com.huifu.bspay.sdk.opps.core.utils.OkHttpClientTools;
@@ -22,6 +24,7 @@ import com.szwl.service.THuifuMchService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.szwl.util.HuifuUtils;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
 import org.apache.http.HttpEntity;
 import org.apache.http.HttpStatus;
 import org.apache.http.client.methods.CloseableHttpResponse;
@@ -43,6 +46,8 @@ import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 
+import static com.szwl.util.HuifuUtils.base64ToTempImage;
+
 /**
  * <p>
  *  服务实现类
@@ -109,9 +114,9 @@ public class THuifuMchServiceImpl extends ServiceImpl<THuifuMchMapper, THuifuMch
         request.put("legal_cert_no", tHuifuMchCheck.getCertNo());
         // 结算卡正面
         request.put("settle_card_front_pic", tHuifuMchCheck.getCardFrontPic());
-        // 法人身份证人像面
-        request.put("legal_cert_back_pic", tHuifuMchCheck.getLegalCertBackPic());
         // 法人身份证国徽面
+        request.put("legal_cert_back_pic", tHuifuMchCheck.getLegalCertBackPic());
+        // 法人身份证人像面
         request.put("legal_cert_front_pic", tHuifuMchCheck.getLegalCertFrontPic());
         // 结算卡信息配置
         JSONObject cardInfo = new JSONObject();
@@ -444,16 +449,14 @@ public class THuifuMchServiceImpl extends ServiceImpl<THuifuMchMapper, THuifuMch
             cardInfo.put("mp", huifuMchCheck.getMp());
         }
         cardInfo.put("settle_card_front_pic", huifuMchCheck.getCardFrontPic());
-        cardInfo.put("settle_cert_front_pic", huifuMchCheck.getCertBackPic());
-        cardInfo.put("settle_cert_back_pic", huifuMchCheck.getCertFrontPic());
-        cardInfo.put("legal_cert_front_pic", huifuMchCheck.getCertBackPic());
-        cardInfo.put("legal_cert_back_pic", huifuMchCheck.getCertFrontPic());
+        cardInfo.put("settle_cert_front_pic", huifuMchCheck.getCertFrontPic());
+        cardInfo.put("settle_cert_back_pic", huifuMchCheck.getCertBackPic());
+        cardInfo.put("legal_cert_front_pic", huifuMchCheck.getLegalCertFrontPic());
+        cardInfo.put("legal_cert_back_pic", huifuMchCheck.getLegalCertBackPic());
         if(StrUtil.isNotEmpty(huifuMchCheck.getSms())) {
             cardInfo.put("verify_code", huifuMchCheck.getSms());
         }
         request.put("card_info", cardInfo);
-//        request.put("legal_cert_front_pic", huifuMchCheck.getCertBackPic());
-//        request.put("legal_cert_back_pic", huifuMchCheck.getCertFrontPic());
         // 签名:sign
         String s = JSON.toJSONString(request);
         String s1 = JSON.toJSONString(JSONObject.parseObject(s, TreeMap.class));
@@ -558,7 +561,6 @@ public class THuifuMchServiceImpl extends ServiceImpl<THuifuMchMapper, THuifuMch
             e.printStackTrace();
         }
         return result;
-
     }
 
     @Override
@@ -610,6 +612,12 @@ public class THuifuMchServiceImpl extends ServiceImpl<THuifuMchMapper, THuifuMch
         }
     }
 
+    /**
+     * 汇付发送验证码
+     * @param tHuifuMch
+     * @return
+     * @throws Exception
+     */
     @Override
     public String sendSms(THuifuMch tHuifuMch) throws Exception {
         String url = "https://api.huifu.com/v2/merchant/basicdata/sms/send";
@@ -645,4 +653,106 @@ public class THuifuMchServiceImpl extends ServiceImpl<THuifuMchMapper, THuifuMch
         String respCode = data.getString("resp_code");
         return respCode;
     }
+
+    /**
+     * 汇付上传图片
+     * @param base64Str
+     * @return
+     */
+    @Override
+    public String newUploadPic(String base64Str, HuifuConstant.fileType fileType, String huifuId) {
+        String url = "https://api.huifu.com/v2/supplementary/picture";
+        // 请求参数
+        Map<String, Object> params = new HashMap<String, Object>();
+        // 请求流水号,需保证当天商户下唯一,推荐采用日期时间+几位流水号的形式
+        params.put("req_seq_id", SequenceTools.getReqSeqId32());
+        params.put("req_date", DateTools.getCurrentDateYYYYMMDD());
+        params.put("file_type", fileType);
+        if(StringUtils.isNotEmpty(huifuId)) {
+        params.put("huifu_id", huifuId);
+        }
+        String data = JSON.toJSONString(params);
+
+
+        CloseableHttpClient httpclient1 = HttpClients.createDefault();
+        CloseableHttpResponse response = null;
+        String result = null;
+        File tempFile = new File("");
+        try {
+            tempFile = base64ToTempImage(base64Str);
+
+            HttpPost httpPost = new HttpPost(url);
+            ContentType contentType = ContentType.create("text/plain", Charset.forName("UTF-8"));
+            MultipartEntityBuilder mEntityBuilder = MultipartEntityBuilder.create();
+            mEntityBuilder.addTextBody("sys_id", HuifuConstant.SYS_ID, contentType);
+            mEntityBuilder.addTextBody("product_id", HuifuConstant.PRODUCT_ID, contentType);
+            mEntityBuilder.addTextBody("data", data, contentType);
+            mEntityBuilder.addBinaryBody("file", tempFile);
+
+            httpPost.setEntity(mEntityBuilder.build());
+            response = httpclient1.execute(httpPost);
+            int statusCode = response.getStatusLine().getStatusCode();
+            if (statusCode == HttpStatus.SC_OK) {
+                HttpEntity resEntity = response.getEntity();
+                result = EntityUtils.toString(resEntity);
+                System.out.print(result);
+                JSONObject jsonObject = JSONObject.parseObject(result);
+                JSONObject dataObject = jsonObject.getJSONObject("data");
+                result = dataObject.getString("file_id");
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally{
+            tempFile.delete();
+        }
+        return result;
+    }
+
+    @Override
+    public String updateConStat(THuifuMchCheck tHuifuMchCheck) throws BasePayException {
+        // 请求接口
+        String url = "https://api.huifu.com/v2/merchant/basicdata/query";
+        // 请求参数:Data
+        JSONObject request = new JSONObject();
+        request.put("req_seq_id", SequenceTools.getReqSeqId32());
+        request.put("req_date", DateTools.getCurrentDateYYYYMMDD());
+        request.put("huifu_id", tHuifuMchCheck.getHuifuId());
+
+
+        // 签名:sign
+        String s = JSON.toJSONString(request);
+        String s1 = JSON.toJSONString(JSONObject.parseObject(s, TreeMap.class));
+        String sign = HuifuUtils.sign(s1, HuifuConstant.RSA_PRIVATE_KEY);
+
+        // 公共参数
+        System.out.println("请求参数:"+ request);
+        JSONObject requestData = new JSONObject();
+        requestData.put("sys_id", HuifuConstant.SYS_ID);
+        requestData.put("product_id", HuifuConstant.PRODUCT_ID);
+        requestData.put("sign", sign);
+        requestData.put("data", request);
+        System.out.println("请求体:"+ requestData);
+
+        String success = OkHttpClientTools.httpPost(url, requestData.toString(), HuifuConstant.PRODUCT_ID);
+        JSONObject result = JSONObject.parseObject(success);
+        log.info("汇付返回参数:{}", result);
+        JSONObject data = result.getJSONObject("data");
+        String respCode = data.getString("resp_code");
+        if(respCode.equals("00000000") || respCode.equals("00000100")) {
+            try {
+                ObjectMapper objectMapper = new ObjectMapper();
+                JsonNode rootNode = objectMapper.readTree(success);
+                JsonNode agreementInfoList = rootNode.path("data").path("agreement_info_list");
+                JsonNode agreementNode = objectMapper.readTree(agreementInfoList.asText()).get(0);
+                String conStatValue = agreementNode.path("con_stat").asText();
+                System.out.println("con_stat value: " + conStatValue);
+                tHuifuMchCheck.setConStat(conStatValue);
+                tHuifuMchCheckService.updateById(tHuifuMchCheck);
+                return conStatValue;
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        return null;
+    }
 }

+ 72 - 12
src/main/java/com/szwl/service/impl/TJoinpayMchServiceImpl.java

@@ -39,8 +39,7 @@ import java.util.*;
 public class TJoinpayMchServiceImpl extends ServiceImpl<TJoinpayMchMapper, TJoinpayMch> implements TJoinpayMchService {
     @Autowired
     PayFeign payFeign;
-//    @Autowired
-//    TShandeMchMapper shandeMchMapper;
+
     @Override
     public String createMch(TJoinpayMch mch) {
 
@@ -56,16 +55,11 @@ public class TJoinpayMchServiceImpl extends ServiceImpl<TJoinpayMchMapper, TJoin
         JSONObject requestData = new JSONObject(new LinkedHashMap());
 
         String login_name = "test1_" + adminId + "@mianhuatang.com";
-//        String login_name = mch.getLegal_person();
         mch.setLoginName(login_name);
-
-//        String alt_mch_name = "test1_" + adminId  + "@mianhuatang.com";
-//        String alt_mch_name = mch.getLegal_person();
-
         String alt_mch_name = mch.getBankAccountName();
         mch.setAltMchName(alt_mch_name);
         mch.setAltMchShortName("");
-//        mch.setAlt_mch_short_name("");
+
 
         // 格式为16 位随机字符串:16 位随机字符串
         String aes_key1 = getRandomString(16);
@@ -216,10 +210,11 @@ public class TJoinpayMchServiceImpl extends ServiceImpl<TJoinpayMchMapper, TJoin
         String aes_key2 = getRandomString(16);
 
         requestData.put("alt_mch_no", mch.getAltMchNo());
-        if(!mch.getApproveStatus().equals("审核通过")){
-            requestData.put("legal_person", mch.getLegalPerson());
-            requestData.put("id_card_no",  mch.getIdCardNo());
-
+        if(StringUtils.isNotEmpty(mch.getApproveStatus())) {
+            if(!mch.getApproveStatus().equals("审核通过")){
+                requestData.put("legal_person", mch.getLegalPerson());
+                requestData.put("id_card_no",  mch.getIdCardNo());
+            }
         }
 //        requestData.put("legal_person", AESUtil.encrypt(legal_person, aes_key1 ,  aes_key2 ));
 //        requestData.put("legal_person", mch.getLegalPerson());
@@ -610,6 +605,71 @@ public class TJoinpayMchServiceImpl extends ServiceImpl<TJoinpayMchMapper, TJoin
         return back;
     }
 
+    @Override
+    public String updateApproveStatus(TJoinpayMch mch) {
+
+        String url = "https://www.joinpay.com/allocFunds";
+
+        if(StringUtils.isEmpty(mch.getAltMchNo())){
+            return "找不到商家编号";
+        }
+
+        JSONObject requestData = new JSONObject(new LinkedHashMap());
+        requestData.put("alt_mch_no" , mch.getAltMchNo());
+
+        JSONObject requestJson = new JSONObject(new TreeMap<String, Object>());
+        requestJson.put("method", "altMchPics.queryPicsInfo");
+        requestJson.put("version", "1.0");
+        requestJson.put("data", requestData);
+        // 32位随机字符串
+        String uuid = UUID.randomUUID().toString().trim().replaceAll("-", "");
+        requestJson.put("rand_str", uuid);
+        requestJson.put("sign_type", JoinpayConstant.sign_type_MD5);
+        requestJson.put("mch_no", JoinpayConstant.mch_no);
+
+        String sign = createMD5Sign(requestJson , JoinpayConstant.key);
+        requestJson.put("sign", sign.toUpperCase());
+//        logger.info("请求参数:" + requestJson);
+        String back=null;
+        org.json.JSONObject jsonObject;
+        try {
+            jsonObject = HttpClientUtils.postJson(url, requestJson.toString());
+            System.out.println(jsonObject.getJSONObject("data"));
+
+            // 判断请求是否正确,受理成功
+            if(jsonObject.has("resp_code")){
+                String resp_code = jsonObject.getString("resp_code");
+                mch.setRespCode(resp_code);
+            }else{
+                return "请求失败";
+            }
+            // 处理data
+            if(jsonObject.has("data")){
+                org.json.JSONObject data = jsonObject.getJSONObject("data");
+                String biz_code = data.getString("biz_code");
+                String approve_status = data.getString("approve_status");
+                String approve_note = data.getString("approve_note");
+                if(biz_code.equals("B100000")){
+                    if(approve_status.equals("P1000")) {
+                        mch.setApproveStatus("审核通过");
+                        mch.setApproveNote("");
+                        back = approve_status;
+                    } else if (approve_status.equals("P2000")){
+                        mch.setApproveStatus("审核不通过");
+                        mch.setApproveNote(approve_note);
+                        back = approve_status;
+                    }
+                }
+                updateById(mch);
+            }
+
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        return back;
+    }
+
 
     /**
      * 获取随机字符串

+ 20 - 9
src/main/java/com/szwl/service/impl/TMessageCodeServiceImpl.java

@@ -8,6 +8,7 @@ import com.szwl.model.utils.YunPianSms;
 import com.szwl.service.TMessageCodeService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.lang.StringUtils;
+import org.elasticsearch.cluster.routing.RerouteService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -32,16 +33,16 @@ public class TMessageCodeServiceImpl extends ServiceImpl<TMessageCodeMapper, TMe
      * 发送短信验证码
      * */
     @Override
-    public String sentMessage(String type, String phone) {
+    public String sentMessage(String type, String phone, String companyType) {
         String result = null;
         String retu = null;
         try {
             String code = addCode();
-            result = YunPianSms.sendSms(appid, getMessage(type, code), phone);
+            result = YunPianSms.sendSms(appid, getMessage(companyType, code), phone);
             JSONObject sult = JSONObject.parseObject(result);
             Object msg = sult.get("msg");
             Object mobile = sult.get("mobile");
-            retu = (msg+":"+mobile).toString();
+            retu = msg+":" + phone;
             if(mobile!=null){
                 TMessageCode tMessageCode = new TMessageCode();
                 tMessageCode.setType(type);
@@ -78,8 +79,18 @@ public class TMessageCodeServiceImpl extends ServiceImpl<TMessageCodeMapper, TMe
         tMessageCode.setCreateDate(new Date());
         tMessageCode.setStatus("0");
         tMessageCodeMapper.insert(tMessageCode);
-        return "success";
+        return "发送成功Success";
     }
+
+    @Override
+    public Date getLastSendTime(String phoneOrEmail) {
+        if (StringUtils.isEmpty(phoneOrEmail)) {
+            return null;
+        }
+        Date lastSendTime = tMessageCodeMapper.getLastSendTimeByEmailOrPhone(phoneOrEmail);
+        return lastSendTime != null ? lastSendTime : new Date(0);
+    }
+
     //邮件标题
     private String getSubject(String type) {
         String subject = "";
@@ -108,13 +119,13 @@ public class TMessageCodeServiceImpl extends ServiceImpl<TMessageCodeMapper, TMe
         return retu;
     }
 
-    private String getMessage(String type, String code) {
+    private String getMessage(String companyType, String code) {
         String message = "";
-        if(StringUtils.isNotEmpty(type)&&type.equals("0")){
-            message = "您好,您的验证码是"+code+",请于3分钟内输入。";
+        if(StringUtils.isNotEmpty(companyType)&&companyType.equals("0")){
+            message = "【申泽智能】您好,您的验证码是"+code+",请于3分钟内输入。";
         }
-        if(StringUtils.isNotEmpty(type)&&type.equals("1")){
-            message = "您好,您的验证码是"+code+",请于3分钟内输入。";
+        if(StringUtils.isNotEmpty(companyType)&&companyType.equals("1")){
+            message = "【七云科技】您好,您的验证码是"+code+",请于3分钟内输入。";
         }
         return message;
     }

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

@@ -64,9 +64,9 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
     }
 
     @Override
-    public Object initRefundSn(Long equipmentId, int refundNumber) {
+    public Object initRefundSn(String clientId, int refundNumber) {
         StringBuilder number = new StringBuilder();
-        if (equipmentId != null) {
+        if (clientId != null) {
             Random random = new Random();
             /**
              * 6位随机
@@ -77,7 +77,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
             /**
              * 设备id
              */
-            number.append(equipmentId.toString());
+            number.append(clientId.substring(clientId.length() - 6));
             /**
              * 日期
              */

+ 25 - 2
src/main/java/com/szwl/util/HuifuUtils.java

@@ -2,10 +2,11 @@ package com.szwl.util;
 
 import cn.hutool.core.util.RandomUtil;
 import com.huifu.bspay.sdk.opps.core.utils.DateTools;
-import com.huifu.bspay.sdk.opps.core.utils.RandomTools;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
 
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
 import java.security.KeyFactory;
 import java.security.PrivateKey;
 import java.security.PublicKey;
@@ -77,4 +78,26 @@ public class HuifuUtils {
         String numbers = RandomUtil.randomNumbers(10);
         return new StringBuilder(DateTools.getCurrentDateTimeYYYYMMDDHHMMSSSSS()).append(numbers).toString();
     }
+
+    /**
+     * 转base64为图片
+     * @param base64Str
+     * @return
+     * @throws IOException
+     */
+    public static File base64ToTempImage(String base64Str) throws IOException {
+        // 解码base64字符串
+        byte[] imageBytes = Base64.getDecoder().decode(base64Str.split(",")[1]);
+
+        // 创建一个临时文件
+        File tempFile = File.createTempFile("temp_image", ".jpg");
+
+        // 将解码后的数据写入临时文件
+        try (FileOutputStream fos = new FileOutputStream(tempFile)) {
+            fos.write(imageBytes);
+        }
+
+        // 返回临时文件
+        return tempFile;
+    }
 }

+ 97 - 0
src/main/java/com/szwl/util/IDGenerator.java

@@ -0,0 +1,97 @@
+package com.szwl.util;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Random;
+import java.util.concurrent.atomic.AtomicLong;
+
+public class IDGenerator {
+    private static final AtomicLong seq = new AtomicLong(0);
+    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
+    private static final SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+
+
+    /**
+     * 生成唯一的16位长整型ID --> equipment等常用表
+     *
+     * @return 订单ID
+     */
+    public static synchronized long commonID() {
+        String timestamp = dateFormat1.format(new Date()).substring(2);
+        long threadId = Thread.currentThread().getId();
+        String s1 = String.valueOf(threadId);
+        char c = s1.charAt(s1.length() - 1);
+        //huTool工具集的雪花算法 --> 生成19位id
+        //参数1为终端ID
+        //参数2为数据中心ID
+//        Snowflake snowflake = IdUtil.getSnowflake(1, 1);
+//        long id = snowflake.nextId();
+//        System.out.println("id***" + id);
+
+        return Long.parseLong(timestamp + c);
+    }
+
+    /**
+     * 生成唯一的18位长整型ID --> 用于国内订单
+     *
+     * @return 订单ID
+     */
+    public static synchronized long orderID() {
+        String timestamp = dateFormat.format(new Date()).substring(2);
+        long threadId = Thread.currentThread().getId();
+        String s1 = String.valueOf(threadId);
+        char c = s1.charAt(s1.length() - 1);
+        String randomNumber = generateRandomNumber();
+
+        // 乐观锁部分
+        long currentSeq;
+        long nextSeq;
+        do {
+            currentSeq = seq.get();
+            nextSeq = (currentSeq >= 999) ? 0 : currentSeq + 1;
+        } while (!seq.compareAndSet(currentSeq, nextSeq));
+        String s2 = String.valueOf(nextSeq);
+        char c1 = s2.charAt(s2.length() - 1);
+
+        String s = "5"; // 表示国内订单
+        return Long.parseLong(s + timestamp + c + randomNumber + c1);
+    }
+
+    /**
+     * 生成唯一的18位长整型ID --> 用于海外订单
+     *
+     * @return 订单ID
+     */
+    public static synchronized long coinOrderID() {
+        String timestamp = dateFormat.format(new Date()).substring(2);
+        long threadId = Thread.currentThread().getId();
+        String s1 = String.valueOf(threadId);
+        char c = s1.charAt(s1.length() - 1);
+        String randomNumber = generateRandomNumber();
+
+        // 乐观锁部分
+        long currentSeq;
+        long nextSeq;
+        do {
+            currentSeq = seq.get();
+            nextSeq = (currentSeq >= 999) ? 0 : currentSeq + 1;
+        } while (!seq.compareAndSet(currentSeq, nextSeq));
+        String s2 = String.valueOf(nextSeq);
+        char c1 = s2.charAt(s2.length() - 1);
+
+        String s = "1"; // 表示海外订单
+        return Long.parseLong(s + timestamp + c + randomNumber + c1);
+    }
+
+    /**
+     * 生成3位伪随机数
+     * 因为long类型范围是-9223372036854775808到9223372036854775807,无法容纳更大范围数字,可以将数据库字段类型改为无符号,或者使用varchar类型
+     * @return 随机数
+     */
+    private static String generateRandomNumber() {
+        Random random = new Random();
+        int nextInt = random.nextInt(1000);
+        // 格式化为3位数,并在不满三位的数字前面补零
+        return String.format("%03d", nextInt);
+    }
+}

+ 16 - 0
src/main/java/com/szwl/util/InsertBatchSomeColumnSqlInjector.java

@@ -0,0 +1,16 @@
+package com.szwl.util;
+
+import com.baomidou.mybatisplus.core.injector.AbstractMethod;
+import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
+import com.baomidou.mybatisplus.extension.injector.methods.InsertBatchSomeColumn;
+
+import java.util.List;
+
+public class InsertBatchSomeColumnSqlInjector extends DefaultSqlInjector {
+    @Override
+    public List<AbstractMethod> getMethodList(Class<?> mapperClass) {
+        List<AbstractMethod> methodList = super.getMethodList(mapperClass);
+        methodList.add(new InsertBatchSomeColumn());
+        return methodList;
+    }
+}

+ 1 - 1
src/test/java/com/szwl/AutoGeneratorTests.java

@@ -39,7 +39,7 @@ class AutoGeneratorTests {
 		//配置数据源
 		DataSourceConfig dataSourceConfig = new DataSourceConfig();
 		dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver")
-				.setUrl("jdbc:mysql://rm-wz995mu26a1479kz0so.mysql.rds.aliyuncs.com:3306/szwl")
+				.setUrl("jdbc:mysql://rm-wz995mu26a1479kz0so.mysql.rds.aliyuncs.com:3306/szwl-test")
 				.setUsername("root").setPassword("sunzee@020");
 
 		//策略配置