李天标 3 years ago
parent
commit
c36c50fb7a
64 changed files with 3628 additions and 60 deletions
  1. 6 0
      pom.xml
  2. 224 0
      src/main/java/com/szwl/controller/ADIndexController.java
  3. 55 0
      src/main/java/com/szwl/controller/ApkInfoController.java
  4. 90 37
      src/main/java/com/szwl/controller/IndexController.java
  5. 89 0
      src/main/java/com/szwl/controller/TAdController.java
  6. 132 8
      src/main/java/com/szwl/controller/TAdminController.java
  7. 21 0
      src/main/java/com/szwl/controller/TAdminEquipmentController.java
  8. 70 0
      src/main/java/com/szwl/controller/TApkInfoController.java
  9. 358 0
      src/main/java/com/szwl/controller/TEquipmentApplyController.java
  10. 50 1
      src/main/java/com/szwl/controller/TEquipmentController.java
  11. 24 1
      src/main/java/com/szwl/controller/TEquipmentDescController.java
  12. 3 0
      src/main/java/com/szwl/controller/TJoinpayMchController.java
  13. 212 0
      src/main/java/com/szwl/controller/TLabelController.java
  14. 295 0
      src/main/java/com/szwl/controller/TOrderController.java
  15. 44 0
      src/main/java/com/szwl/controller/TPriceController.java
  16. 38 3
      src/main/java/com/szwl/controller/TProductController.java
  17. 249 5
      src/main/java/com/szwl/controller/TPromoCodeController.java
  18. 101 0
      src/main/java/com/szwl/controller/TTimeRuleController.java
  19. 14 0
      src/main/java/com/szwl/feign/bean/PayFeign.java
  20. 16 0
      src/main/java/com/szwl/mapper/TAdMapper.java
  21. 16 0
      src/main/java/com/szwl/mapper/TAdminEquipmentMapper.java
  22. 16 0
      src/main/java/com/szwl/mapper/TApkInfoMapper.java
  23. 17 0
      src/main/java/com/szwl/mapper/TLabelMapper.java
  24. 16 0
      src/main/java/com/szwl/mapper/TPriceMapper.java
  25. 16 0
      src/main/java/com/szwl/mapper/TTimeRuleMapper.java
  26. 30 0
      src/main/java/com/szwl/mapper/xml/TAdMapper.xml
  27. 17 0
      src/main/java/com/szwl/mapper/xml/TAdminEquipmentMapper.xml
  28. 24 0
      src/main/java/com/szwl/mapper/xml/TApkInfoMapper.xml
  29. 10 1
      src/main/java/com/szwl/mapper/xml/TEquipmentDescMapper.xml
  30. 18 0
      src/main/java/com/szwl/mapper/xml/TLabelMapper.xml
  31. 19 0
      src/main/java/com/szwl/mapper/xml/TPriceMapper.xml
  32. 19 0
      src/main/java/com/szwl/mapper/xml/TTimeRuleMapper.xml
  33. 108 0
      src/main/java/com/szwl/model/bean/EquipmentVo.java
  34. 14 0
      src/main/java/com/szwl/model/bo/R.java
  35. 147 0
      src/main/java/com/szwl/model/dto/AdVo.java
  36. 67 0
      src/main/java/com/szwl/model/dto/TimeRuleVo.java
  37. 79 0
      src/main/java/com/szwl/model/entity/TAd.java
  38. 32 0
      src/main/java/com/szwl/model/entity/TAdminEquipment.java
  39. 56 0
      src/main/java/com/szwl/model/entity/TApkInfo.java
  40. 59 0
      src/main/java/com/szwl/model/entity/TEquipmentDesc.java
  41. 56 0
      src/main/java/com/szwl/model/entity/TLabel.java
  42. 41 0
      src/main/java/com/szwl/model/entity/TPrice.java
  43. 41 0
      src/main/java/com/szwl/model/entity/TTimeRule.java
  44. 3 0
      src/main/java/com/szwl/model/param/AddLoginUserParam.java
  45. 16 0
      src/main/java/com/szwl/service/TAdService.java
  46. 16 0
      src/main/java/com/szwl/service/TAdminEquipmentService.java
  47. 16 0
      src/main/java/com/szwl/service/TApkInfoService.java
  48. 11 0
      src/main/java/com/szwl/service/TJoinpayMchService.java
  49. 17 0
      src/main/java/com/szwl/service/TLabelService.java
  50. 9 0
      src/main/java/com/szwl/service/TOrderService.java
  51. 16 0
      src/main/java/com/szwl/service/TPriceService.java
  52. 4 0
      src/main/java/com/szwl/service/TShandeMchService.java
  53. 16 0
      src/main/java/com/szwl/service/TTimeRuleService.java
  54. 20 0
      src/main/java/com/szwl/service/impl/TAdServiceImpl.java
  55. 20 0
      src/main/java/com/szwl/service/impl/TAdminEquipmentServiceImpl.java
  56. 20 0
      src/main/java/com/szwl/service/impl/TApkInfoServiceImpl.java
  57. 105 1
      src/main/java/com/szwl/service/impl/TJoinpayMchServiceImpl.java
  58. 23 0
      src/main/java/com/szwl/service/impl/TLabelServiceImpl.java
  59. 113 1
      src/main/java/com/szwl/service/impl/TOrderServiceImpl.java
  60. 20 0
      src/main/java/com/szwl/service/impl/TPriceServiceImpl.java
  61. 152 1
      src/main/java/com/szwl/service/impl/TShandeMchServiceImpl.java
  62. 20 0
      src/main/java/com/szwl/service/impl/TTimeRuleServiceImpl.java
  63. 1 0
      src/main/resources/bootstrap.yml
  64. 1 1
      src/test/java/com/szwl/AutoGeneratorTests.java

+ 6 - 0
pom.xml

@@ -203,6 +203,12 @@
 			<artifactId>commons-pool2</artifactId>
 		</dependency>
 		<!--redis end-->
+		<!--杉德支付-->
+		<dependency>
+			<groupId>cn.com.sand</groupId>
+			<artifactId>hmpay-sdk</artifactId>
+			<version>1.1.4</version>
+		</dependency>
 	</dependencies>
 
 	<build>

+ 224 - 0
src/main/java/com/szwl/controller/ADIndexController.java

@@ -0,0 +1,224 @@
+package com.szwl.controller;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.szwl.model.bo.JsonMessage;
+import com.szwl.model.dto.AdVo;
+import com.szwl.model.entity.TAd;
+import com.szwl.model.entity.TEquipment;
+import com.szwl.model.entity.TTimeRule;
+import com.szwl.service.TAdService;
+import com.szwl.service.TEquipmentService;
+import com.szwl.service.TTimeRuleService;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Controller;
+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.ResponseBody;
+
+import javax.annotation.Resource;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+@Controller("ADIndexController")
+@RequestMapping("/api/app_ADIndex/ADIndex")
+public class ADIndexController {
+    @Autowired
+    TAdService aDService;
+
+    @Autowired
+    private TTimeRuleService timeRuleService;
+
+    @Autowired
+    private TEquipmentService equipmentService;
+    @Resource
+    private RedisTemplate redisTemplate;
+    /**
+     * 根据广告id获取广告
+     */
+    @GetMapping(value = "/getAdById.htm", produces = "application/json;charset=UTF-8")
+    @ResponseBody
+    public Object getAdById(String id) {
+        if(StringUtils.isEmpty(id)){
+            return JsonMessage.error("id为null");
+        }
+        TAd ad = aDService.getById(id);
+        ArrayList<AdVo> list = new ArrayList<>();
+                AdVo adVo = new AdVo();
+                adVo.setAdType(String.valueOf(ad.getAdType()));
+                adVo.setLocationType(String.valueOf(ad.getLocationType()));
+                adVo.setName(ad.getName());
+                adVo.setOrder(ad.getOrders());
+                adVo.setUrl(ad.getUrl());
+                adVo.setCreateDate(ad.getCreateDate());
+                adVo.setId(ad.getId());
+                adVo.setMediaPreview(ad.getMediaPreview());
+                adVo.setDuration(ad.getDuration());
+                adVo.setScreenType(ad.getScreenType());
+                list.add(adVo);
+
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("code", 0);
+        jsonObject.put("data", JSONObject.toJSON(list).toString());
+        jsonObject.put("errmsg", "");
+        return jsonObject;
+    }
+
+    /**
+     * 设备获取默认广告
+     */
+    @GetMapping(value = "/getAd.htm", produces = "application/json;charset=UTF-8")
+    @ResponseBody
+    public Object getAdNew(String clientId,String equimentType) {
+        LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
+        query.eq(TEquipment::getClientId,clientId);
+        List<TEquipment> equipmentList = equipmentService.list(query);
+        TEquipment equipment = equipmentList.get(0);
+        String adminId = String.valueOf(equipment.getAdminId());
+        //1,获取
+        LambdaQueryWrapper<TAd> query1 = Wrappers.lambdaQuery();
+        query1.eq(TAd::getType,"0");
+        query1.eq(TAd::getEquipmentType,equimentType);
+        List<TAd> ads = aDService.list(query1);
+        ArrayList<AdVo> list = new ArrayList<>();
+        for (TAd ad : ads) {
+            if(adminId.equals(ad.getAdminId())||ad.getAdminId()==null){
+                AdVo adVo = new AdVo();
+                adVo.setAdType(String.valueOf(ad.getAdType()));
+                adVo.setLocationType(String.valueOf(ad.getLocationType()));
+                adVo.setName(ad.getName());
+                adVo.setOrder(ad.getOrders());
+                adVo.setUrl(ad.getUrl());
+                adVo.setCreateDate(ad.getCreateDate());
+                adVo.setId(ad.getId());
+                adVo.setMediaPreview(ad.getMediaPreview());
+                adVo.setDuration(ad.getDuration());
+                adVo.setScreenType(ad.getScreenType());
+                list.add(adVo);
+            }
+
+        }
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("code", 0);
+        jsonObject.put("data", JSONObject.toJSON(list).toString());
+        jsonObject.put("errmsg", "");
+        return jsonObject;
+    }
+    /**
+     * 设备获取广告
+     */
+    @GetMapping(value = "/getAdByEquipment.htm", produces = "application/json;charset=UTF-8")
+    @ResponseBody
+    public Object getAdByEquipment(String clientId,String equimentType) {
+        LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
+        query.eq(TEquipment::getClientId,clientId);
+        List<TEquipment> equipmentList = equipmentService.list(query);
+        TEquipment equipment = equipmentList.get(0);
+        String adminId = String.valueOf(equipment.getAdminId());
+        //1,获取
+        LambdaQueryWrapper<TAd> query1 = Wrappers.lambdaQuery();
+        query1.eq(TAd::getType,"0");
+        query1.eq(TAd::getEquipmentType,equimentType);
+        query1.eq(TAd::getAdminId,adminId);
+        List<TAd> ads = aDService.list(query1);
+        ArrayList<AdVo> list = new ArrayList<>();
+        for (TAd ad : ads) {
+            if(adminId.equals(ad.getAdminId())||ad.getAdminId()==null){
+                    AdVo adVo = new AdVo();
+                    adVo.setAdType(String.valueOf(ad.getAdType()));
+                    adVo.setLocationType(String.valueOf(ad.getLocationType()));
+                    adVo.setName(ad.getName());
+                    adVo.setOrder(ad.getOrders());
+                    adVo.setUrl(ad.getUrl());
+                    adVo.setCreateDate(ad.getCreateDate());
+                    adVo.setId(ad.getId());
+                    adVo.setMediaPreview(ad.getMediaPreview());
+                    adVo.setDuration(ad.getDuration());
+                    adVo.setScreenType(ad.getScreenType());
+                    list.add(adVo);
+            }
+
+        }
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("code", 0);
+        jsonObject.put("data", JSONObject.toJSON(list).toString());
+        jsonObject.put("errmsg", "");
+        return jsonObject;
+    }
+    /**
+     * 获取时间规则
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping(value = "/getTimeRule.htm", produces = "application/json;charset=UTF-8")
+    @ResponseBody
+    public JsonMessage getTimeRule(Long id) {
+        TTimeRule timeRule = timeRuleService.getById(id);
+        if (timeRule == null) {
+            return JsonMessage.error("该规则不存在");
+        }
+        String rule = timeRule.getRule();
+        return JsonMessage.success(rule);
+    }
+
+    /**
+     * 设备下载广告失败则更新设备的推送广告时间
+     *
+     * @return
+     */
+    @PostMapping(value = "/pushTimeUpdate.htm", produces = "application/json;charset=UTF-8")
+    @ResponseBody
+    public JsonMessage updatePushTimeUpdate(String clientId, String pushUpdateTime) {
+        LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
+        query.eq(TEquipment::getClientId,clientId);
+        List<TEquipment> equipmentList = equipmentService.list(query);
+        TEquipment equipment = equipmentList.get(0);
+        if (equipment == null) {
+            return JsonMessage.error("该设备不存在");
+        }
+        Date date = null;
+        try {
+            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            date = format.parse(pushUpdateTime);
+            equipment.setPushUpdateTime(date);
+        } catch (ParseException e) {
+            e.printStackTrace();
+            return JsonMessage.error("修改失败");
+        }
+        equipmentService.updateById(equipment);
+        return JsonMessage.success("修改成功");
+    }
+    /**
+     * 获取时间规则
+     *
+     * @param
+     * @return
+     */
+    @GetMapping(value = "/checkRedis.htm", produces = "application/json;charset=UTF-8")
+    @ResponseBody
+    public JsonMessage checkRedis(String str) {
+        Boolean hasKey = redisTemplate.hasKey(str);
+        return JsonMessage.success(hasKey);
+    }
+    /**
+     * 获取时间规则
+     *
+     * @param
+     * @return
+     */
+    @GetMapping(value = "/checkRedis2.htm", produces = "application/json;charset=UTF-8")
+    @ResponseBody
+    public JsonMessage checkRedis2(String key,String hashkey) {
+        Object o = redisTemplate.boundHashOps(key).get(hashkey);
+        return JsonMessage.success(o);
+    }
+}

+ 55 - 0
src/main/java/com/szwl/controller/ApkInfoController.java

@@ -0,0 +1,55 @@
+/*
+ *
+ *  ApkInfoController
+ *
+ */
+package com.szwl.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.szwl.model.bo.JsonMessage;
+import com.szwl.model.entity.TApkInfo;
+import com.szwl.model.entity.TEquipment;
+import com.szwl.service.TApkInfoService;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * Controller - apk信息
+ */
+@Controller("appApkInfoController")
+@RequestMapping("api/appApkInfo")
+public class ApkInfoController {
+    @Autowired
+    TApkInfoService tApkInfoService;
+
+    /**
+     * 获得最新的更新数据
+     *
+     * @param model 型号
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/apkinfo.htm")
+    public Object getApkInfo(String model) {
+        if (StringUtils.isEmpty(model)) {
+            return JsonMessage.error("没有版本数据");
+        }
+        LambdaQueryWrapper<TApkInfo> query = Wrappers.lambdaQuery();
+        query.eq(TApkInfo::getModel,model);
+        List<TApkInfo> list = tApkInfoService.list(query);
+        TApkInfo info = list.get(0);
+            if (info != null) {
+                return JsonMessage.success(JSONObject.toJSONString(info));
+            }
+            return JsonMessage.error("没有版本数据");
+    }
+
+}

+ 90 - 37
src/main/java/com/szwl/controller/IndexController.java

@@ -110,6 +110,29 @@ public class IndexController { ;
             _new.setGtClientId(gtClientId);
             _new.setModifyDate(new Date());
             equipmentService.updateById(_new);
+            TEquipmentDesc equipmentDesc = equipmentDescService.getById(_new.getId());
+            if(StringUtils.isNotEmpty(equipmentVo.getBlueSugar())){
+                equipmentDesc.setBlueSugar(equipmentVo.getBlueSugar());
+            }
+            if(StringUtils.isNotEmpty(equipmentVo.getRedSugar())){
+                equipmentDesc.setRedSugar(equipmentVo.getRedSugar());
+            }
+            if(StringUtils.isNotEmpty(equipmentVo.getYellowSugar())){
+                equipmentDesc.setYellowSugar(equipmentVo.getYellowSugar());
+            }
+            if(StringUtils.isNotEmpty(equipmentVo.getWhiteSugar())){
+                equipmentDesc.setWhiteSugar(equipmentVo.getWhiteSugar());
+            }
+            if(StringUtils.isNotEmpty(equipmentVo.getWater())){
+                equipmentDesc.setWater(equipmentVo.getWater());
+            }
+            if(StringUtils.isNotEmpty(equipmentVo.getWasteWater())){
+                equipmentDesc.setWasteWater(equipmentVo.getWasteWater());
+            }
+            if(StringUtils.isNotEmpty(equipmentVo.getStick())){
+                equipmentDesc.setStick(equipmentVo.getStick());
+            }
+            equipmentDescService.updateById(equipmentDesc);
             return JsonMessage.success("心跳成功");
         }
         return JsonMessage.error("心跳失败");
@@ -237,6 +260,9 @@ public class IndexController { ;
                                 }
                                 equipment.setEquimentType("MG320");
                             }
+                            if(equipmentApply.getEquimentType().equals("MG330")){
+                                equipment.setEquimentType("MG330");
+                            }
                             equipmentService.updateById(equipment);
 //                            String data = com.alibaba.fastjson.JSON.toJSONString(equipment);
                             try {
@@ -289,6 +315,9 @@ public class IndexController { ;
                             }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();
@@ -369,15 +398,15 @@ public class IndexController { ;
      * @param id
      */
     private void saveProduct(Long id) {
-        String[] str = {"玫瑰精灵", "童心未泯", "五彩缤纷", "天雪恋舞", "水中芙蓉", "烈焰红唇", "美梦成真", "一见钟情", "幽兰爱恋", "心之守护",
-                "夏日爱恋", "冰美人", "国色天香", "赤子之心", "海洋之心", "水晶之恋", "彩色精灵", "小棉袄"};
+        String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09", "心之守护-A10",
+                "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18"};
 
         for (int i = 0; i < str.length; i++) {
             TProduct product = new TProduct();
-            product.setCreateDate(new Date());
-            product.setModifyDate(new Date());
             product.setEquipmentId(id);
-            product.setProductName(str[i]);
+            String[] split = str[i].split("-");
+            product.setProductName(split[0]);
+            product.setNo(split[1]);
             product.setRmbPrice(BigDecimal.ZERO);
             product.setCodePrice(BigDecimal.ZERO);
             productService.save(product);
@@ -385,14 +414,14 @@ public class IndexController { ;
 
     }
     private void saveProductMG280(Long id) {
-        String[] str = { "水中芙蓉", "水中芙蓉mini", "烈焰红唇", "烈焰红唇mini", "夏日爱恋", "夏日爱恋mini", "冰美人", "冰美人mini", "彩色精灵", "彩色精灵mini"};
+        String[] str = { "水中芙蓉-A05", "水中芙蓉mini-A31", "烈焰红唇-A06", "烈焰红唇mini-A32", "夏日爱恋-A11", "夏日爱恋mini-A33", "冰美人-A12", "冰美人mini-A34", "彩色精灵-A17", "彩色精灵mini-A35"};
 
         for (int i = 0; i < str.length; i++) {
             TProduct product = new TProduct();
-            product.setCreateDate(new Date());
-            product.setModifyDate(new Date());
             product.setEquipmentId(id);
-            product.setProductName(str[i]);
+            String[] split = str[i].split("-");
+            product.setProductName(split[0]);
+            product.setNo(split[1]);
             product.setRmbPrice(BigDecimal.ZERO);
             product.setCodePrice(BigDecimal.ZERO);
             productService.save(product);
@@ -400,16 +429,17 @@ public class IndexController { ;
 
     }
     private void saveProductMG1(Long id) {
-        String[] str = {"玫瑰精灵", "童心未泯", "五彩缤纷", "天雪恋舞", "水中芙蓉", "烈焰红唇", "美梦成真", "一见钟情", "幽兰爱恋", "心之守护",
-                "夏日爱恋", "冰美人", "国色天香", "赤子之心", "海洋之心", "水晶之恋", "彩色精灵", "小棉袄", "精灵蝶梦","夏日倾城","百花齐放","蜂缠蝶恋","豆蔻年华","星空幻想"
-                ,"坠入星空","雪花飞舞","春暖花开","花飞蝶舞","花样年华","心花怒放"};
+        String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09",
+                "心之守护-A10", "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18",
+                "精灵蝶梦-A19","夏日倾城-A20","百花齐放-A21","蜂缠蝶恋-A22","豆蔻年华-A23","星空幻想-A24","坠入星空-A25","雪花飞舞-A26","春暖花开-A27","花飞蝶舞-A28",
+                "花样年华-A29","心花怒放-A30"};
 
         for (int i = 0; i < str.length; i++) {
             TProduct product = new TProduct();
-            product.setCreateDate(new Date());
-            product.setModifyDate(new Date());
             product.setEquipmentId(id);
-            product.setProductName(str[i]);
+            String[] split = str[i].split("-");
+            product.setProductName(split[0]);
+            product.setNo(split[1]);
             product.setRmbPrice(BigDecimal.ZERO);
             product.setCodePrice(BigDecimal.ZERO);
             productService.save(product);
@@ -417,29 +447,29 @@ public class IndexController { ;
 
     }
     private void saveProductMG12(Long id) {
-        String[] str = { "精灵蝶梦","夏日倾城","百花齐放","蜂缠蝶恋","豆蔻年华","星空幻想"
-                ,"坠入星空","雪花飞舞","春暖花开","花飞蝶舞","花样年华","心花怒放"};
+        String[] str = { "精灵蝶梦-A19","夏日倾城-A20","百花齐放-A21","蜂缠蝶恋-A22","豆蔻年华-A23","星空幻想-A24"
+                ,"坠入星空-A25","雪花飞舞-A26","春暖花开-A27","花飞蝶舞-A28","花样年华-A29","心花怒放-A30"};
         for (int i = 0; i < str.length; i++) {
             TProduct product = new TProduct();
-            product.setCreateDate(new Date());
-            product.setModifyDate(new Date());
             product.setEquipmentId(id);
-            product.setProductName(str[i]);
+            String[] split = str[i].split("-");
+            product.setProductName(split[0]);
+            product.setNo(split[1]);
             product.setRmbPrice(BigDecimal.ZERO);
             product.setCodePrice(BigDecimal.ZERO);
             productService.save(product);
         }
     }
     private void saveProductMG22(Long id) {
-        String[] str = {"玫瑰精灵", "童心未泯", "五彩缤纷", "天雪恋舞", "水中芙蓉", "烈焰红唇", "美梦成真", "一见钟情", "幽兰爱恋", "心之守护",
-                "夏日爱恋", "冰美人", "国色天香", "赤子之心", "海洋之心", "水晶之恋", "彩色精灵", "小棉袄", "精灵蝶梦","蜂缠蝶恋","坠入星空","花飞蝶舞"};
+        String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09", "心之守护-A10",
+                "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18", "精灵蝶梦-A19","蜂缠蝶恋-A22","坠入星空-A25","花飞蝶舞-A28"};
 
         for (int i = 0; i < str.length; i++) {
             TProduct product = new TProduct();
-            product.setCreateDate(new Date());
-            product.setModifyDate(new Date());
             product.setEquipmentId(id);
-            product.setProductName(str[i]);
+            String[] split = str[i].split("-");
+            product.setProductName(split[0]);
+            product.setNo(split[1]);
             product.setRmbPrice(BigDecimal.ZERO);
             product.setCodePrice(BigDecimal.ZERO);
             productService.save(product);
@@ -447,15 +477,15 @@ public class IndexController { ;
 
     }
     private void saveProductMG26(Long id) {
-        String[] str = {"玫瑰精灵", "童心未泯", "五彩缤纷", "天雪恋舞", "水中芙蓉", "烈焰红唇", "美梦成真", "一见钟情", "幽兰爱恋", "心之守护",
-                "夏日爱恋", "冰美人", "国色天香", "赤子之心", "海洋之心", "水晶之恋", "彩色精灵", "小棉袄", "精灵蝶梦","蜂缠蝶恋","坠入星空","花飞蝶舞",
-                "夏日倾城", "雪花飞舞", "豆蔻年华", "花样年华"};
+        String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09", "心之守护-A10",
+                "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18", "精灵蝶梦-A19","蜂缠蝶恋-A22","坠入星空-A25","花飞蝶舞-A28",
+                "夏日倾城-A20", "雪花飞舞-A26", "豆蔻年华-A23", "花样年华-A29"};
         for (int i = 0; i < str.length; i++) {
             TProduct product = new TProduct();
-            product.setCreateDate(new Date());
-            product.setModifyDate(new Date());
             product.setEquipmentId(id);
-            product.setProductName(str[i]);
+            String[] split = str[i].split("-");
+            product.setProductName(split[0]);
+            product.setNo(split[1]);
             product.setRmbPrice(BigDecimal.ZERO);
             product.setCodePrice(BigDecimal.ZERO);
             productService.save(product);
@@ -578,7 +608,7 @@ public class IndexController { ;
      * @param clientId  个推
      * @return
      */
-    @RequestMapping(value = "/equimentArea", method = RequestMethod.GET)
+    @RequestMapping(value = "/equimentArea.htm", method = RequestMethod.GET)
     @ResponseBody
     public JsonMessage equimentArea(String clientId, String longitude, String latitude, String fullName){
         if(!StringUtils.isEmpty(longitude)&&!StringUtils.isEmpty(latitude)&&!StringUtils.isEmpty(fullName)){
@@ -597,7 +627,7 @@ public class IndexController { ;
     /**
      * 商品调价
      */
-    @RequestMapping(value = "/updateProduct", method = RequestMethod.POST)
+    @RequestMapping(value = "/updateProduct.htm", method = RequestMethod.POST)
     @ResponseBody
     public JsonMessage updateProduct(@RequestBody List<ProductVo> productVos) {
         Double f=0.00;
@@ -655,7 +685,7 @@ public class IndexController { ;
      * @return
      * @Param pwd 密码内容
      */
-    @RequestMapping(value = "/updatePwd", method = RequestMethod.POST)
+    @RequestMapping(value = "/updatePwd.htm", method = RequestMethod.POST)
     @ResponseBody
     public JsonMessage updatePwd(String clientId, String pwdType, String pwd) {
         LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
@@ -690,7 +720,7 @@ public class IndexController { ;
      *                 线上/线下
      * @return
      */
-    @RequestMapping(value = "/updatePayType", method = RequestMethod.POST)
+    @RequestMapping(value = "/updatePayType.htm", method = RequestMethod.POST)
     @ResponseBody
     public JsonMessage updatePayType(String clientId, String payType) {
         LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
@@ -708,7 +738,7 @@ public class IndexController { ;
     /**
      * 日志上传
      */
-    @RequestMapping(value = "/sendLog", method = RequestMethod.POST)
+    @RequestMapping(value = "/sendLog.htm", method = RequestMethod.POST)
     @ResponseBody
     public String uploadFile(HttpServletRequest request, HttpServletResponse response, String fileName) throws Exception{
 //        String fileName = request.getParameter("fileName");
@@ -984,7 +1014,7 @@ public class IndexController { ;
      * @param productTotal
      * @return
      */
-    @RequestMapping(value = "/updateProductTotal", method = RequestMethod.POST)
+    @RequestMapping(value = "/updateProductTotal.htm", method = RequestMethod.POST)
     @ResponseBody
     public JsonMessage updateProductTotal(String clientId, Integer productTotal) {
         LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
@@ -1245,5 +1275,28 @@ public class IndexController { ;
 //            return R.fail(ResponseCodesEnum.B0001,"你的错误信息");
 //        }
 //    }
+
+    /**
+     *是否启用物料监控功能
+     *   0:不启用,1:启用
+     * @param clientId  个推
+
+     * @return
+     */
+    @RequestMapping(value = "/updateMaterialStatus.htm", method = RequestMethod.POST)
+    @ResponseBody
+    public JsonMessage updateMaterialUse(String clientId, String isMaterialUse){
+        if(!StringUtils.isEmpty(clientId)&&!StringUtils.isEmpty(isMaterialUse)){
+            LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
+            query.eq(TEquipment::getClientId,clientId);
+            List<TEquipment> list1 = equipmentService.list(query);
+            TEquipment equipment = list1.get(0);
+            TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
+            equipmentDesc.setIsMaterialUse(isMaterialUse);
+            equipmentDescService.updateById(equipmentDesc);
+            return JsonMessage.success("success");
+        }
+        return JsonMessage.error("error");
+    }
 }
 

+ 89 - 0
src/main/java/com/szwl/controller/TAdController.java

@@ -0,0 +1,89 @@
+package com.szwl.controller;
+
+
+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.szwl.constant.ResponseCodesEnum;
+import com.szwl.model.bo.R;
+import com.szwl.model.bo.ResponseModel;
+import com.szwl.model.entity.TAd;
+import com.szwl.model.entity.TAdmin;
+import com.szwl.model.entity.TApkInfo;
+import com.szwl.service.TAdService;
+import com.szwl.service.TAdminService;
+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 java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author wuhs
+ * @since 2022-07-05
+ */
+@RestController
+@RequestMapping("/tAd")
+public class TAdController {
+    @Autowired
+    TAdService adService;
+    @Autowired
+    TAdminService adminService;
+    @GetMapping("/pageAd")
+    public ResponseModel<IPage<?>> pageAd(long current, long size ) {
+        LambdaQueryWrapper<TAd> query = Wrappers.lambdaQuery();
+        Page<TAd> page = new Page<>(current, size, true);
+        IPage<TAd> iPage = adService.page(page, query);
+        return R.ok(iPage);
+    }
+    @GetMapping("/listAd")
+    public ResponseModel<?> listAd() {
+        LambdaQueryWrapper<TAd> query = Wrappers.lambdaQuery();
+        List<TAd> list = adService.list(query);
+        return R.ok(list);
+    }
+    @ApiOperation(value = "添加")
+    @PostMapping("/add")
+    public ResponseModel<?> add(@RequestBody TAd ad) {
+        if(StringUtils.isEmpty(ad.getStatus())&&StringUtils.isEmpty(ad.getUrl())){
+            return R.fail(ResponseCodesEnum.A0001);
+        }
+        if(StringUtils.isNotEmpty(ad.getAdminId())){
+            LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
+            query.eq(TAdmin::getUsername,ad.getAdminId());
+            List<TAdmin> list = adminService.list(query);
+            TAdmin tAdmin = list.get(0);
+            ad.setAdminId(String.valueOf(tAdmin.getId()));
+        }
+        ad.setCreateDate(new Date());
+        ad.setModifyDate(new Date());
+        adService.save(ad);
+        return R.ok(ad);
+    }
+    @ApiOperation(value = "修改")
+    @PostMapping("/update")
+    public ResponseModel<?> update(@RequestBody TAd ad) {
+        if(StringUtils.isEmpty(ad.getStatus())&&StringUtils.isEmpty(ad.getUrl())){
+            return R.fail(ResponseCodesEnum.A0001);
+        }
+        if(StringUtils.isNotEmpty(ad.getAdminId())){
+            LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
+            query.eq(TAdmin::getUsername,ad.getAdminId());
+            List<TAdmin> list = adminService.list(query);
+            TAdmin tAdmin = list.get(0);
+            ad.setAdminId(String.valueOf(tAdmin.getId()));
+        }
+        ad.setModifyDate(new Date());
+        adService.updateById(ad);
+        return R.ok(ad);
+    }
+
+}
+

+ 132 - 8
src/main/java/com/szwl/controller/TAdminController.java

@@ -6,7 +6,9 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.lang.UUID;
 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.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.szwl.annotation.Audit;
 import com.szwl.constant.AuditEnum;
 import com.szwl.constant.ResponseCodesEnum;
@@ -15,14 +17,9 @@ import com.szwl.manager.TokenManager;
 import com.szwl.model.bo.R;
 import com.szwl.model.bo.ResponseModel;
 import com.szwl.model.bo.UserDetailBO;
-import com.szwl.model.entity.SysUserRole;
-import com.szwl.model.entity.TAdmin;
-import com.szwl.model.entity.TMessageCode;
+import com.szwl.model.entity.*;
 import com.szwl.model.param.AddLoginUserParam;
-import com.szwl.service.SysRoleService;
-import com.szwl.service.SysUserRoleService;
-import com.szwl.service.TAdminService;
-import com.szwl.service.TMessageCodeService;
+import com.szwl.service.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -58,6 +55,8 @@ public class TAdminController {
     @Autowired
     TAdminService tAdminService;
     @Autowired
+    TAdminEquipmentService tAdminEquipmentService;
+    @Autowired
     TMessageCodeService tMessageCodeService;
 
     @ApiOperation(value = "添加账号")
@@ -76,8 +75,28 @@ public class TAdminController {
         entity.setModifyDate(now);
         entity.setIsLocked(false);
         entity.setLoginFailureCount(0);
-
         tAdminService.save(entity);
+        // 管理的机器 需要再建立一个关系表 type区分全部还是部分
+        String equipmentIds = param.getEquipmentIds();
+        if(StringUtils.isNotEmpty(equipmentIds)){
+            if(equipmentIds.equals("all")){
+                //管理全部机器
+                TAdminEquipment tAdminEquipment = new TAdminEquipment();
+                tAdminEquipment.setAdminId(entity.getId());
+                //0:全部机器,1:部分机器
+                tAdminEquipment.setType("0");
+                tAdminEquipmentService.save(tAdminEquipment);
+            }else {
+                //部分机器
+                TAdminEquipment tAdminEquipment = new TAdminEquipment();
+                tAdminEquipment.setAdminId(entity.getId());
+                //0:全部机器,1:部分机器
+                tAdminEquipment.setType("1");
+                tAdminEquipment.setEquipmentIds(param.getEquipmentIds());
+                tAdminEquipmentService.save(tAdminEquipment);
+            }
+        }
+
         log.debug("添加账号 id:{},TAdmin:{}",entity.getId(),entity);
         // 保存用户角色关系
         List<SysUserRole> userRoleList = param.getRoleList()
@@ -221,5 +240,110 @@ public class TAdminController {
         TAdmin tAdmin = tAdminService.getById(id);
         return R.ok(tAdmin);
     }
+
+    @ApiOperation(value = "获取账号列表 分页")
+    @GetMapping("/pageAdmin")
+    public ResponseModel<IPage<?>> pageAdmin(String id,String name,String userName,String ifForeign,long current,long size ) {
+        LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
+        if(StringUtils.isNotEmpty(name)){
+            query.eq(TAdmin::getName,name);
+        }
+        if(StringUtils.isNotEmpty(userName)){
+            query.like(TAdmin::getUsername,userName);
+        }
+        if(StringUtils.isNotEmpty(ifForeign)){
+            query.like(TAdmin::getIfForeign,ifForeign);
+        }
+        if(StringUtils.isNotEmpty(id)){
+            query.like(TAdmin::getRelationAdminId,id);
+        }
+        Page<TAdmin> page = new Page<>(current, size, true);
+        IPage<TAdmin> iPage = tAdminService.page(page, query);
+        return R.ok(iPage);
+    }
+    @ApiOperation(value = "获取账号列表")
+    @GetMapping("/listAdmin")
+    public ResponseModel<?> listAdmin(String adminId ) {
+        LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
+        if(StringUtils.isNotEmpty(adminId)){
+            query.like(TAdmin::getRelationAdminId,adminId);
+        }
+        List<TAdmin> list = tAdminService.list(query);
+        return R.ok(list);
+    }
+
+    @ApiOperation(value = "修改账号")
+    @PostMapping("/update")
+    @Transactional
+    public ResponseModel<?> update(@RequestBody TAdmin admin) {
+        //校验是否有重复的
+        LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
+        query.eq(TAdmin::getUsername,admin.getUsername());
+        List<TAdmin> list = tAdminService.list(query);
+        TAdmin oldAdmin = list.get(0);
+        if(StringUtils.isNotEmpty(admin.getPassword())){
+            oldAdmin.setPassword(admin.getPassword());
+        }
+        if(StringUtils.isNotEmpty(admin.getName())){
+            oldAdmin.setName(admin.getName());
+        }
+        if(StringUtils.isNotEmpty(admin.getIfForeign())){
+            oldAdmin.setIfForeign(admin.getIfForeign());
+        }
+        if(StringUtils.isNotEmpty(admin.getTradeMerchantNo())){
+            oldAdmin.setTradeMerchantNo(admin.getTradeMerchantNo());
+        }
+        if(StringUtils.isNotEmpty(admin.getPayPlatform())){
+            oldAdmin.setPayPlatform(admin.getPayPlatform());
+        }
+        if(StringUtils.isNotEmpty(admin.getPromoCodeOpen())){
+            oldAdmin.setPromoCodeOpen(admin.getPromoCodeOpen());
+        }
+        if(StringUtils.isNotEmpty(admin.getPhone())){
+            oldAdmin.setPhone(admin.getPhone());
+        }
+        if(StringUtils.isNotEmpty(admin.getEmail())){
+            oldAdmin.setEmail(admin.getEmail());
+        }
+        if(admin.getApplyStartTime()!=null){
+            oldAdmin.setApplyStartTime(admin.getApplyStartTime());
+        }
+        if(admin.getApplyEndTime()!=null){
+            oldAdmin.setApplyEndTime(admin.getApplyEndTime());
+        }
+        oldAdmin.setModifyDate(new Date());
+        tAdminService.updateById(oldAdmin);
+        return R.ok();
+    }
+
+    @ApiOperation(value = "获取所有关联(下级)账号信息")
+    @GetMapping("/getAdminIdList")
+    public ResponseModel<List<Long>> getAdminIdList(String adminId) {
+        LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
+        query.eq(TAdmin::getRelationAdminId,adminId);
+        List<TAdmin> list = tAdminService.list(query);
+        List<Long> idList =new ArrayList<>();
+        for(TAdmin admin:list){
+            idList.add(admin.getId());
+        }
+        return R.ok(idList);
+    }
+    @ApiOperation(value = "获取所有关联(下级)账号信息")
+    @GetMapping("/getAdminList")
+    public ResponseModel<?> getAdminList(String adminId) {
+        LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
+        query.eq(TAdmin::getRelationAdminId,adminId);
+        List<TAdmin> list = tAdminService.list(query);
+        return R.ok(list);
+    }
+    @ApiOperation(value = "获取账号信息byname")
+    @GetMapping("/getAdminByUsername")
+    public ResponseModel<TAdmin> getAdminByUsername(String username) {
+        LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
+        query.eq(TAdmin::getUsername,username);
+        List<TAdmin> list = tAdminService.list(query);
+        TAdmin tAdmin = list.get(0);
+        return R.ok(tAdmin);
+    }
 }
 

+ 21 - 0
src/main/java/com/szwl/controller/TAdminEquipmentController.java

@@ -0,0 +1,21 @@
+package com.szwl.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author wuhs
+ * @since 2022-07-04
+ */
+@RestController
+@RequestMapping("/tAdminEquipment")
+public class TAdminEquipmentController {
+
+}
+

+ 70 - 0
src/main/java/com/szwl/controller/TApkInfoController.java

@@ -0,0 +1,70 @@
+package com.szwl.controller;
+
+
+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.szwl.constant.ResponseCodesEnum;
+import com.szwl.model.bo.R;
+import com.szwl.model.bo.ResponseModel;
+import com.szwl.model.entity.TAdmin;
+import com.szwl.model.entity.TApkInfo;
+import com.szwl.model.entity.TEquipment;
+import com.szwl.model.entity.TPromoCode;
+import com.szwl.service.TApkInfoService;
+import com.szwl.service.TEquipmentService;
+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 java.util.Date;
+import java.util.List;
+
+import static com.szwl.constant.ResponseCodesEnum.A0001;
+
+/**
+ * <p>
+ * 安卓App版本 前端控制器
+ * </p>
+ *
+ * @author wuhs
+ * @since 2022-07-04
+ */
+@RestController
+@RequestMapping("/tApkInfo")
+public class TApkInfoController {
+    @Autowired
+    TApkInfoService tApkInfoService;
+    @GetMapping("/pageApkInfo")
+    public ResponseModel<IPage<?>> pagePromoCode(long current, long size ) {
+        LambdaQueryWrapper<TApkInfo> query = Wrappers.lambdaQuery();
+        Page<TApkInfo> page = new Page<>(current, size, true);
+        IPage<TApkInfo> iPage = tApkInfoService.page(page, query);
+        return R.ok(iPage);
+    }
+
+    @ApiOperation(value = "添加")
+    @PostMapping("/add")
+    public ResponseModel<?> add(@RequestBody TApkInfo tApkInfo) {
+        if(StringUtils.isEmpty(tApkInfo.getDownloadUrl())&&tApkInfo.getVersion()==null&&StringUtils.isEmpty(tApkInfo.getVersionName())){
+            return R.fail(ResponseCodesEnum.A0001);
+        }
+        tApkInfo.setCreateDate(new Date());
+        tApkInfo.setModifyDate(new Date());
+        tApkInfoService.save(tApkInfo);
+        return R.ok(tApkInfo);
+    }
+    @ApiOperation(value = "修改")
+    @PostMapping("/update")
+    public ResponseModel<?> update(@RequestBody TApkInfo tApkInfo) {
+        if(StringUtils.isEmpty(tApkInfo.getDownloadUrl())&&tApkInfo.getVersion()==null&&StringUtils.isEmpty(tApkInfo.getVersionName())){
+            return R.fail(ResponseCodesEnum.A0001);
+        }
+        tApkInfo.setModifyDate(new Date());
+        tApkInfoService.updateById(tApkInfo);
+        return R.ok(tApkInfo);
+    }
+}
+

+ 358 - 0
src/main/java/com/szwl/controller/TEquipmentApplyController.java

@@ -1,10 +1,35 @@
 package com.szwl.controller;
 
 
+import cn.com.crbank.ommo.bean.ResultMessage;
+import cn.com.crbank.ommo.esUtil.BeanUtils;
+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.szwl.model.bean.TEquipmentDTO;
+import com.szwl.model.bo.R;
+import com.szwl.model.bo.ResponseModel;
+import com.szwl.model.entity.*;
+import com.szwl.model.utils.PushUtils;
+import com.szwl.service.*;
+import com.szwl.service.es.EsTEquipmentService;
+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.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 java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
 /**
  * <p>
  * 设备连接申请表 前端控制器
@@ -14,8 +39,341 @@ import org.springframework.web.bind.annotation.RestController;
  * @since 2022-04-21
  */
 @RestController
+@Api(value = "/tEquipmentApply", tags = {"设备连接申请表"})
 @RequestMapping("/tEquipmentApply")
 public class TEquipmentApplyController {
+    @Autowired
+    TAdminService adminService;
+    @Autowired
+    TEquipmentApplyService equipmentApplyService;
+    @Autowired
+    TEquipmentService equipmentService;
+
+    @Autowired
+    TProductService productService;
+    @Autowired
+    TEquipmentDescService equipmentDescService;
+    @Autowired
+    EsTEquipmentService esTEquipmentService;
+
+    @ApiOperation(value = "查找机器审核列表")
+    @GetMapping("/pageTEquipmentApply")
+    public ResponseModel<IPage<?>> pageTEquipmentApply(String clientId, String userName,String managerId,String type, long current, long size ) {
+
+        LambdaQueryWrapper<TEquipmentApply> query = Wrappers.lambdaQuery();
+        if(StringUtils.isNotEmpty(clientId)){
+            query.like(TEquipmentApply::getClientId,clientId);
+        }
+        if(StringUtils.isNotEmpty(userName)){
+            LambdaQueryWrapper<TAdmin> adminQuery = Wrappers.lambdaQuery();
+            adminQuery.eq(TAdmin::getUsername,userName);
+            List<TAdmin> list = adminService.list(adminQuery);
+            if(list.size()>0){
+                query.eq(TEquipmentApply::getAdminId,list.get(0).getId());
+            }
+        }
+        if(StringUtils.isNotEmpty(type)){
+            query.eq(TEquipmentApply::getType,type);
+        }
+        if(StringUtils.isNotEmpty(managerId)){
+            query.like(TEquipmentApply::getManagerId,managerId);
+        }
+        Page<TEquipmentApply> page = new Page<>(current, size, true);
+        IPage<TEquipmentApply> iPage = equipmentApplyService.page(page, query);
+        return R.ok(iPage);
+    }
+    /**
+     * 更新申请状态
+     */
+    @ApiOperation(value = "更新申请状态")
+    @GetMapping("/changeStatus")
+    public ResponseModel<?> changeStatus(Long id, String status) {
+
+        if (null != id) {
+            TEquipmentApply equipmentApply = equipmentApplyService.getById(id);
+            if (equipmentApply != null) {
+                if (!StringUtils.isEmpty(status)) {
+                    if (status.equals("agreed")) {
+                        String clientId = equipmentApply.getClientId();
+
+                        //判断是否设备初始化
+
+                        Long adminId = equipmentApply.getAdminId();
+                        String adminLevel = equipmentApply.getAdminLevel();
+                        String adminUserName = equipmentApply.getAdminUserName();
+                        Integer type = equipmentApply.getType();
+                        String gtClientId = equipmentApply.getGtClientId();
+                        String equimentType = equipmentApply.getEquimentType();
+
+                        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);
+                        equipmentApply.setStatusType(3);
+                        if (list.size() > 0) {
+                            //表示设备第二次申请了:主要为了区分脱离以及初始化
+                            old = "1";
+                            //重新修改设备名称
+                            TEquipment equipment = list.get(0);
+                            equipment.setClientId(clientId);
+                            equipment.setGtClientId(gtClientId);
+                            equipment.setAdminId(adminId);
+                            equipment.setAdminLevel(adminLevel);
+                            equipment.setAdminUserName(adminUserName);
+                            equipment.setType(type);
+                            if(equipmentApply.getEquimentType().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);
+                                    if(productList.size()==18){
+                                        //从18种变成30种花型
+                                        saveProductMG12(equipment.getId());
+                                    }
+                                    //从18种变成30种花型
+//                                    saveProductMG12(equipment.getId());
+                                }
+                                equipment.setEquimentType("MG320");
+                            }
+                            if(equipmentApply.getEquimentType().equals("MG330")){
+                                equipment.setEquimentType("MG330");
+                            }
+
+                            equipmentService.updateById(equipment);
+                            String data = com.alibaba.fastjson.JSON.toJSONString(equipment);
+                            try {
+                                esTEquipmentService.updateDataById(equipment);
+                            }catch (Exception e) {
+                                e.printStackTrace();
+                            }
+                            equipmentService.sentMessage(equipmentApply.getClientId(),PushUtils.buildJson("statusType", "agreed" + old).toString());
+                            PushUtils.push(equipmentApply.getGtClientId(), "【棉花糖】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString());
+                            equipmentApplyService.updateById(equipmentApply);
+                            equipmentService.sentMessage(equipmentApply.getClientId(),PushUtils.buildJson("endDate",String.valueOf(equipment.getEndDate().getTime()) ).toString());
+                            PushUtils.push(equipmentApply.getGtClientId(), "", "", PushUtils.buildJson("endDate",String.valueOf(equipment.getEndDate().getTime()) ).toString());
+                            return R.ok();
+                        }
+
+                        TEquipment equipment = new TEquipment();
+                        equipment.setClientId(clientId);
+                        equipment.setManagerId(equipmentApply.getManagerId());
+                        equipment.setAdminId(adminId);
+                        equipment.setAdminLevel(adminLevel);
+                        equipment.setGtClientId(gtClientId);
+                        equipment.setAdminUserName(adminUserName);
+                        equipment.setIsUsing(true);
+                        equipment.setIsNetWork(true);
+                        equipment.setGuestPwd("123456");
+                        equipment.setAdminPwd("123456");
+                        equipment.setChannel("1");
+                        equipment.setProductTotal(0);
+                        equipment.setType(type);
+                        //设置默认规则
+                        equipment.setTimeRuleId(Long.valueOf(1));
+                        if(equimentType.equals("MG320-1")){
+                            equipment.setEquimentType("MG320");
+                        }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();
+                            if(time<monthBegin){
+                                equipment.setEndDate(new Date(monthBegin));
+                            }else{
+                                Date date = nextMonthDate();
+                                equipment.setEndDate(date);
+                            }
+                            equipmentService.sentMessage(equipmentApply.getClientId(), PushUtils.buildJson("endDate",String.valueOf(equipment.getEndDate().getTime()) ).toString());
+                            PushUtils.push(equipmentApply.getGtClientId(), "", "", PushUtils.buildJson("endDate",String.valueOf(equipment.getEndDate().getTime()) ).toString());
+                        }
+                        equipmentService.save(equipment);
+                        equipmentService.sentMessage(equipmentApply.getClientId(), PushUtils.buildJson("statusType", "agreed" + old).toString());
+                        PushUtils.push(equipmentApply.getGtClientId(), "【棉花糖】设备初始化申请", "同意", PushUtils.buildJson("statusType", "agreed" + old).toString());
+                        //获取设备的id
+                        Long equipmentId = equipment.getId();
+                        if(equipmentApply.getEquimentType()!=null&&equipmentApply.getEquimentType().equals("MG280")){
+                            saveProductMG280(equipmentId);
+                        } else if(equipmentApply.getEquimentType()!=null&&equipmentApply.getEquimentType().equals("MG320-1")){
+                            saveProductMG1(equipmentId);
+                        } else{
+                                saveProduct(equipmentId);
+                            }
+                        LambdaQueryWrapper<TEquipment> query1 = Wrappers.lambdaQuery();
+                        query1.eq(TEquipment::getClientId,clientId);
+                        List<TEquipment> list1 = equipmentService.list(query1);
+                        try {
+                            if(list1.size()>0){
+                                TEquipment tEquipment = list1.get(0);
+                                esTEquipmentService.insertData(tEquipment);
+                            }
+                        }catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        TEquipmentDesc equipmentDesc = new TEquipmentDesc();
+                        equipmentDesc.setEquipmentId(list1.get(0).getId());
+                        equipmentDescService.save(equipmentDesc);
+
+                    } 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);
+
+
+                }
+            }
+        }
+        return R.ok();
+    }
+
+    /**
+     * 添加产品
+     *
+     * @param id
+     */
+
+    private void saveProduct(Long id) {
+        String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09", "心之守护-A10",
+                "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18"};
+
+        for (int i = 0; i < str.length; i++) {
+            TProduct product = new TProduct();
+            product.setEquipmentId(id);
+            String[] split = str[i].split("-");
+            product.setProductName(split[0]);
+            product.setNo(split[1]);
+            product.setRmbPrice(BigDecimal.ZERO);
+            product.setCodePrice(BigDecimal.ZERO);
+            productService.save(product);
+        }
+
+    }
+    private void saveProductMG280(Long id) {
+        String[] str = { "水中芙蓉-A05", "水中芙蓉mini-A31", "烈焰红唇-A06", "烈焰红唇mini-A32", "夏日爱恋-A11", "夏日爱恋mini-A33", "冰美人-A12", "冰美人mini-A34", "彩色精灵-A17", "彩色精灵mini-A35"};
+
+        for (int i = 0; i < str.length; i++) {
+            TProduct product = new TProduct();
+            product.setEquipmentId(id);
+            String[] split = str[i].split("-");
+            product.setProductName(split[0]);
+            product.setNo(split[1]);
+            product.setRmbPrice(BigDecimal.ZERO);
+            product.setCodePrice(BigDecimal.ZERO);
+            productService.save(product);
+        }
+
+    }
+    private void saveProductMG1(Long id) {
+        String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09",
+                "心之守护-A10", "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18",
+                "精灵蝶梦-A19","夏日倾城-A20","百花齐放-A21","蜂缠蝶恋-A22","豆蔻年华-A23","星空幻想-A24","坠入星空-A25","雪花飞舞-A26","春暖花开-A27","花飞蝶舞-A28",
+                "花样年华-A29","心花怒放-A30"};
+
+        for (int i = 0; i < str.length; i++) {
+            TProduct product = new TProduct();
+            product.setEquipmentId(id);
+            String[] split = str[i].split("-");
+            product.setProductName(split[0]);
+            product.setNo(split[1]);
+            product.setRmbPrice(BigDecimal.ZERO);
+            product.setCodePrice(BigDecimal.ZERO);
+            productService.save(product);
+        }
+
+    }
+    private void saveProductMG12(Long id) {
+        String[] str = { "精灵蝶梦-A19","夏日倾城-A20","百花齐放-A21","蜂缠蝶恋-A22","豆蔻年华-A23","星空幻想-A24"
+                ,"坠入星空-A25","雪花飞舞-A26","春暖花开-A27","花飞蝶舞-A28","花样年华-A29","心花怒放-A30"};
+        for (int i = 0; i < str.length; i++) {
+            TProduct product = new TProduct();
+            product.setEquipmentId(id);
+            String[] split = str[i].split("-");
+            product.setProductName(split[0]);
+            product.setNo(split[1]);
+            product.setRmbPrice(BigDecimal.ZERO);
+            product.setCodePrice(BigDecimal.ZERO);
+            productService.save(product);
+        }
+    }
+    private void saveProductMG22(Long id) {
+        String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09", "心之守护-A10",
+                "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18", "精灵蝶梦-A19","蜂缠蝶恋-A22","坠入星空-A25","花飞蝶舞-A28"};
+
+        for (int i = 0; i < str.length; i++) {
+            TProduct product = new TProduct();
+            product.setEquipmentId(id);
+            String[] split = str[i].split("-");
+            product.setProductName(split[0]);
+            product.setNo(split[1]);
+            product.setRmbPrice(BigDecimal.ZERO);
+            product.setCodePrice(BigDecimal.ZERO);
+            productService.save(product);
+        }
+
+    }
+    private void saveProductMG26(Long id) {
+        String[] str = {"玫瑰精灵-A01", "童心未泯-A02", "五彩缤纷-A03", "天雪恋舞-A04", "水中芙蓉-A05", "烈焰红唇-A06", "美梦成真-A07", "一见钟情-A08", "幽兰爱恋-A09", "心之守护-A10",
+                "夏日爱恋-A11", "冰美人-A12", "国色天香-A13", "赤子之心-A14", "海洋之心-A15", "水晶之恋-A16", "彩色精灵-A17", "小棉袄-A18", "精灵蝶梦-A19","蜂缠蝶恋-A22","坠入星空-A25","花飞蝶舞-A28",
+                "夏日倾城-A20", "雪花飞舞-A26", "豆蔻年华-A23", "花样年华-A29"};
+        for (int i = 0; i < str.length; i++) {
+            TProduct product = new TProduct();
+            product.setEquipmentId(id);
+            String[] split = str[i].split("-");
+            product.setProductName(split[0]);
+            product.setNo(split[1]);
+            product.setRmbPrice(BigDecimal.ZERO);
+            product.setCodePrice(BigDecimal.ZERO);
+            productService.save(product);
+        }
+
+    }
+    /**
+     * 获取指定日期所在月份开始的时间戳
+     * @param date 指定日期
+     * @return
+     */
+    public static Long getMonthBegin(Date date) {
+        Calendar c = Calendar.getInstance();
+        c.setTime(date);
+
+        //设置为10号,当前日期既为本月10号
+        c.set(Calendar.DAY_OF_MONTH, 10);
+        //将小时至0
+        c.set(Calendar.HOUR_OF_DAY, 0);
+        //将分钟至0
+        c.set(Calendar.MINUTE, 0);
+        //将秒至0
+        c.set(Calendar.SECOND,0);
+        //将毫秒至0
+        c.set(Calendar.MILLISECOND, 0);
+        // 获取本月第一天的时间戳
+        return c.getTimeInMillis();
+    }
+    public static Date nextMonthDate() {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.DAY_OF_MONTH,10);
+        //将小时至0
+        calendar.set(Calendar.HOUR_OF_DAY, 0);
+        //将分钟至0
+        calendar.set(Calendar.MINUTE, 0);
+        //将秒至0
+        calendar.set(Calendar.SECOND,0);
+        //将毫秒至0
+        calendar.set(Calendar.MILLISECOND, 0);
+        calendar.add(Calendar.MONTH,1);
+        return calendar.getTime();
+    }
 
 }
 

+ 50 - 1
src/main/java/com/szwl/controller/TEquipmentController.java

@@ -4,6 +4,7 @@ package com.szwl.controller;
 import cn.com.crbank.ommo.bean.ResultMessage;
 import cn.com.crbank.ommo.esUtil.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;
@@ -57,6 +58,8 @@ public class TEquipmentController {
     TAreaService tAreaService;
     @Autowired
     TOrderService tOrderService;
+    @Autowired
+    TAdminEquipmentService tAdminEquipmentService;
 
     /**
      *
@@ -78,6 +81,15 @@ public class TEquipmentController {
             }
             if(type==3){
                 //查找属于这个商家子账户的设备 todo
+                TAdminEquipment adminEquipment = tAdminEquipmentService.getById(admin.getId());
+                if(adminEquipment.getType().equals("0")){
+                    //全部机器
+                    query.eq(TEquipment::getAdminId,id);
+                }else {
+                    String equipmentIds = adminEquipment.getEquipmentIds();
+                    List<String> equipmentIdList = JSON.parseArray(equipmentIds, String.class);
+                    query.in(TEquipment::getId,equipmentIdList);
+                }
             }
         }
         if(StringUtils.isNotEmpty(clientId)){
@@ -166,11 +178,48 @@ public class TEquipmentController {
     @GetMapping("/findEquipmentByClientId")
     public ResponseModel<TEquipment> findEquipmentByClientId(String  clientId) {
         LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
-        query.eq(TEquipment::getClientId,clientId);
+        query.like(TEquipment::getClientId,clientId);
         List<TEquipment> list = tEquipmentService.list(query);
         TEquipment equipment = list.get(0);
         return R.ok(equipment);
     }
+    //查找设备
+    @ApiOperation(value = "获取对应的机器编号")
+    @GetMapping("/getClientIdList")
+    public ResponseModel<TAdminEquipment> getClientIdList(String  adminId) {
+        //查找属于这个商家子账户的设备
+        TAdminEquipment adminEquipment = tAdminEquipmentService.getById(adminId);
+
+        return R.ok(adminEquipment);
+    }
+    //查找设备
+    @ApiOperation(value = "adminId查找设备")
+    @GetMapping("/listEquipment")
+    public ResponseModel<?> listEquipment(String  adminId) {
+        LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
+        TAdmin admin = tAdminService.getById(adminId);
+        Integer type = admin.getType();
+        if(type>1){
+            if(type==2){
+                query.eq(TEquipment::getAdminId,adminId);
+            }
+            if(type==3){
+                //查找属于这个商家子账户的设备 todo
+                TAdminEquipment adminEquipment = tAdminEquipmentService.getById(admin.getId());
+                if(adminEquipment.getType().equals("0")){
+                    //全部机器
+                    query.eq(TEquipment::getAdminId,adminId);
+                }else {
+                    String equipmentIds = adminEquipment.getEquipmentIds();
+                    List<String> equipmentIdList = JSON.parseArray(equipmentIds, String.class);
+                    query.in(TEquipment::getId,equipmentIdList);
+                }
+            }
+        }
+//        query.eq(TEquipment::getAdminId,adminId);
+        List<TEquipment> list = tEquipmentService.list(query);
+        return R.ok(list);
+    }
     /**
      * 更新
      */

+ 24 - 1
src/main/java/com/szwl/controller/TEquipmentDescController.java

@@ -1,10 +1,22 @@
 package com.szwl.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.szwl.model.bo.R;
+import com.szwl.model.bo.ResponseModel;
+import com.szwl.model.entity.TEquipment;
+import com.szwl.model.entity.TEquipmentDesc;
+import com.szwl.service.TEquipmentDescService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 /**
  * <p>
  *  前端控制器
@@ -16,6 +28,17 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 @RequestMapping("/tEquipmentDesc")
 public class TEquipmentDescController {
-
+    @Autowired
+    TEquipmentDescService equipmentDescService;
+    //查找设备
+    @ApiOperation(value = "ClientId查找设备")
+    @GetMapping("/findEquipmentById")
+    public ResponseModel<TEquipmentDesc> findEquipmentById(Long  id) {
+        LambdaQueryWrapper<TEquipmentDesc> query = Wrappers.lambdaQuery();
+        query.eq(TEquipmentDesc::getEquipmentId,id);
+        List<TEquipmentDesc> list = equipmentDescService.list(query);
+        TEquipmentDesc equipment = list.get(0);
+        return R.ok(equipment);
+    }
 }
 

+ 3 - 0
src/main/java/com/szwl/controller/TJoinpayMchController.java

@@ -14,6 +14,7 @@ import com.szwl.model.entity.TJoinpayMchCheck;
 import com.szwl.service.TAdminService;
 import com.szwl.service.TJoinpayMchCheckService;
 import com.szwl.service.TJoinpayMchService;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,6 +32,8 @@ import java.util.List;
  * @author wuhs
  * @since 2022-04-29
  */
+@Api(value = "/tJoinpayMch", tags = {"汇聚支付"})
+
 @RestController
 @RequestMapping("/tJoinpayMch")
 public class TJoinpayMchController {

+ 212 - 0
src/main/java/com/szwl/controller/TLabelController.java

@@ -0,0 +1,212 @@
+package com.szwl.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.gexin.fastjson.JSON;
+import com.szwl.constant.ResponseCodesEnum;
+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.model.entity.TLabel;
+import com.szwl.model.entity.TPrice;
+import com.szwl.service.TAdminService;
+import com.szwl.service.TEquipmentService;
+import com.szwl.service.TLabelService;
+import com.szwl.service.TPriceService;
+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.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * (如一个优惠码多少钱) 前端控制器
+ * </p>
+ *
+ * @author wuhs
+ * @since 2022-06-30
+ */
+@Api(value = "/tLabel", tags = {"标签"})
+
+@RestController
+@RequestMapping("/tLabel")
+public class TLabelController {
+    @Autowired
+    TAdminService adminService;
+    @Autowired
+    TEquipmentService equipmentService;
+    @Autowired
+    TLabelService labelService;
+
+    @ApiOperation(value = "添加标签")
+    @GetMapping("/add")
+    public ResponseModel<?> add(@RequestBody TLabel label) {
+        if(StringUtils.isNotEmpty(label.getName())&&StringUtils.isNotEmpty(label.getType())&&label.getAdminId()!=null){
+            label.setCreateDate(new Date());
+            label.setModifyDate(new Date());
+            List<String> ids = new ArrayList<>();
+            if(label.getType().equals("0")){
+                String adminNames = label.getAdminNames();
+                if(StringUtils.isNotEmpty(adminNames)){
+                    List<String> adminNamelist = JSON.parseArray(adminNames, String.class);
+                    for(String username:adminNamelist){
+                        LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
+                        query.like(TAdmin::getUsername,username);
+                        List<TAdmin> list = adminService.list(query);
+                        TAdmin tAdmin = list.get(0);
+                        ids.add(String.valueOf(tAdmin.getId()));
+                    }
+                }
+            }
+            if(label.getType().equals("1")){
+                String equipmentNames = label.getEquipmentNames();
+                if(StringUtils.isNotEmpty(equipmentNames)){
+                    List<String> equipmentNamelist = JSON.parseArray(equipmentNames, String.class);
+                    for(String name:equipmentNamelist){
+                        LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
+                        query.like(TEquipment::getName,name);
+                        List<TEquipment> list = equipmentService.list(query);
+                        TEquipment equipment = list.get(0);
+                        ids.add(String.valueOf(equipment.getId()));
+                    }
+
+                }
+            }
+            if(ids.size()>0){
+                if(label.getType().equals("0")){
+                    label.setAdminIds(ids.toString());
+                }
+                if(label.getType().equals("1")){
+                   label.setEquipmentIds(ids.toString());
+                }
+            }
+        }else {
+            return R.fail(ResponseCodesEnum.A0001);
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "获取标签列表")
+    @GetMapping("/list")
+    public ResponseModel<?> list(String adminId) {
+        LambdaQueryWrapper<TLabel> query = Wrappers.lambdaQuery();
+        query.like(TLabel::getAdminId,adminId);
+        List<TLabel> list = labelService.list(query);
+        return R.ok(list);
+    }
+    @ApiOperation(value = "获取标签详情")
+    @GetMapping("/getOne")
+    public ResponseModel<?> getOne(String id) {
+        TLabel label = labelService.getById(id);
+//        List<String> ids = new ArrayList<>();
+//        if(label.getType().equals("0")){
+//            String adminNames = label.getAdminNames();
+//            if(StringUtils.isNotEmpty(adminNames)){
+//                List<String> adminNamelist = JSON.parseArray(adminNames, String.class);
+//                for(String username:adminNamelist){
+//                    LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
+//                    query.like(TAdmin::getUsername,username);
+//                    List<TAdmin> list = adminService.list(query);
+//                    TAdmin tAdmin = list.get(0);
+//                    ids.add(String.valueOf(tAdmin.getUsername()));
+//                }
+//            }
+//        }
+//        if(label.getType().equals("1")){
+//            String equipmentNames = label.getEquipmentNames();
+//            if(StringUtils.isNotEmpty(equipmentNames)){
+//                List<String> equipmentNamelist = JSON.parseArray(equipmentNames, String.class);
+//                for(String name:equipmentNamelist){
+//                    LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
+//                    query.like(TEquipment::getName,name);
+//                    List<TEquipment> list = equipmentService.list(query);
+//                    TEquipment equipment = list.get(0);
+//                    ids.add(String.valueOf(equipment.getId()));
+//                }
+//
+//            }
+//        }
+        return R.ok(label);
+    }
+    @ApiOperation(value = "修改标签")
+    @GetMapping("/update")
+    public ResponseModel<?> update(@RequestBody TLabel label) {
+        if(StringUtils.isNotEmpty(label.getName())&&StringUtils.isNotEmpty(label.getType())&&label.getAdminId()!=null){
+            label.setModifyDate(new Date());
+            List<String> ids = new ArrayList<>();
+            if(label.getType().equals("0")){
+                String adminNames = label.getAdminNames();
+                if(StringUtils.isNotEmpty(adminNames)){
+                    List<String> adminNamelist = JSON.parseArray(adminNames, String.class);
+                    for(String username:adminNamelist){
+                        LambdaQueryWrapper<TAdmin> query = Wrappers.lambdaQuery();
+                        query.like(TAdmin::getUsername,username);
+                        List<TAdmin> list = adminService.list(query);
+                        TAdmin tAdmin = list.get(0);
+                        ids.add(String.valueOf(tAdmin.getId()));
+                    }
+                }
+            }
+            if(label.getType().equals("1")){
+                String equipmentNames = label.getEquipmentNames();
+                if(StringUtils.isNotEmpty(equipmentNames)){
+                    List<String> equipmentNamelist = JSON.parseArray(equipmentNames, String.class);
+                    for(String name:equipmentNamelist){
+                        LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
+                        query.like(TEquipment::getName,name);
+                        List<TEquipment> list = equipmentService.list(query);
+                        TEquipment equipment = list.get(0);
+                        ids.add(String.valueOf(equipment.getId()));
+                    }
+
+                }
+            }
+            if(ids.size()>0){
+                if(label.getType().equals("0")){
+                    label.setAdminIds(ids.toString());
+                }
+                if(label.getType().equals("1")){
+                    label.setEquipmentIds(ids.toString());
+                }
+            }
+        }else {
+            return R.fail(ResponseCodesEnum.A0001);
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "单个机器绑定标签")
+    @GetMapping("/equipmentToLabel")
+    public ResponseModel<?> equipmentToLabel(String equipmentId,String labelIds) {
+        TEquipment tEquipment = equipmentService.getById(equipmentId);
+        if(tEquipment==null||tEquipment.getId()==null||StringUtils.isEmpty(labelIds)){
+            return R.fail(ResponseCodesEnum.A0001);
+        }
+        List<String> labelIdList = JSON.parseArray(labelIds, String.class);
+        if(labelIdList.size()>0){
+            for(String id:labelIdList){
+                TLabel label = labelService.getById(id);
+                if(label.getType().equals("1")){
+                    String ids = label.getEquipmentIds();
+                    List<String> list = JSON.parseArray(ids, String.class);
+                    list.add(equipmentId);
+                    label.setModifyDate(new Date());
+                    label.setEquipmentIds(list.toString());
+                    labelService.updateById(label);
+                }
+            }
+        }
+        return R.ok();
+    }
+}
+

+ 295 - 0
src/main/java/com/szwl/controller/TOrderController.java

@@ -1,10 +1,40 @@
 package com.szwl.controller;
 
 
+import cn.com.crbank.ommo.bean.ResultMessage;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.szwl.feign.bean.PayFeign;
+import com.szwl.model.bo.JoinpayConstant;
+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.model.entity.TOrder;
+import com.szwl.model.entity.TShandeMch;
+import com.szwl.model.utils.Constant;
+import com.szwl.service.TAdminService;
+import com.szwl.service.TEquipmentService;
+import com.szwl.service.TOrderService;
+import com.szwl.service.TShandeMchService;
+import com.szwl.service.es.EsTOrderService;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+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.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.Date;
+import java.util.List;
+
 /**
  * <p>
  *  前端控制器
@@ -16,6 +46,271 @@ import org.springframework.web.bind.annotation.RestController;
 @RestController
 @RequestMapping("/tOrder")
 public class TOrderController {
+    @Autowired
+    TAdminService tAdminService;
+    @Autowired
+    TEquipmentService tEquipmentService;
+    @Autowired
+    TOrderService orderService;
+    @Autowired
+    PayFeign payFeign;
+    @Autowired
+    TShandeMchService tShandeMchService;
+    @Autowired
+    EsTOrderService esTOrderService;
+    /**
+     *  退款
+     * @param
+     * @return
+     */
+    @PostMapping("/refund")
+    public ResponseEntity<?> refund(@RequestBody TOrder torder) {
+        TOrder order = R.getDataIfSuccess(payFeign.getOrder(String.valueOf(torder.getId())));
+        TEquipment equipment = tEquipmentService.getById(order.getEquipmentId());
+        Long equipmentId = equipment.getId();
+        if (order.getProductName().equals("280充值")) {
+            return ResponseEntity
+                    .status(HttpStatus.OK)
+                    .body(new ResultMessage()
+                            .setCode(false)
+                            .setData("订单不退款")
+                            .setMessage("订单不退款"));
+        }
+        if (order.getStatus().equals("0")) {
+            return ResponseEntity
+                    .status(HttpStatus.OK)
+                    .body(new ResultMessage()
+                            .setCode(false)
+                            .setData("订单非支付状态")
+                            .setMessage("订单非支付状态"));
+        }
+
+//        TAdmin admin = tAdminService.selectEntityById(order.getAdminId());
+//		if(admin.getIsRefund()!=null&&admin.getIsRefund().equals("0")){
+////			return JsonMessage.error("机器设定不退款");
+//		}
+
+        String notifyUrl = JoinpayConstant.Notify_Refund_Url;
+
+        JSONArray altInfoArray = JSONArray.parseArray(order.getAltInfo());
+        JSONArray altRefInfo = new JSONArray();
+
+        BigDecimal price = BigDecimal.ZERO;
+        for (int i = 0; i < altInfoArray.size(); i++) {
+            JSONObject altInfoObject = altInfoArray.getJSONObject(i);
+
+            JSONObject refInfo = new JSONObject();
+            refInfo.put("altMchNo", altInfoObject.getString("altMchNo"));
+            refInfo.put("altRefAmount", altInfoObject.getString("altAmount"));
+
+            price = price.add(altInfoObject.getBigDecimal("altAmount"));
+            if (!altInfoObject.getBigDecimal("altAmount").toString().equals("0.00")) {
+                altRefInfo.add(refInfo);
+            }
+        }
+        // 特殊处理下:添加多一个平台方分销的金额
+        // 平台获得的收益
+        BigDecimal adminPrice = new BigDecimal(order.getPrice().toString()).subtract(price);
+        JSONObject refInfo = new JSONObject();
+        refInfo.put("altMchNo", JoinpayConstant.mch_no);
+        refInfo.put("altRefAmount", adminPrice.toString());
+        price = price.add(adminPrice);
+        if (!adminPrice.toString().toString().equals("0.00")) {
+            altRefInfo.add(refInfo);
+        }
+        String text = "";
+        //需要知道订单是哪一个平台的,不能以账号的为标准  0或null为汇聚,1为杉德支付
+        String payPlatform = order.getPayPlatform();
+        if (StringUtils.isNotEmpty(payPlatform) && payPlatform.equals("1")) {
+            try {
+                String refund = tShandeMchService.refund(order.getId(), orderService.initRefundSn(equipmentId).toString(), price, "", altRefInfo.toString());
+                com.gexin.fastjson.JSONObject jsonObject =  com.gexin.fastjson.JSON.parseObject(refund);
+                String sub_code = jsonObject.getString("sub_code");
+                //订单号
+                if (StringUtils.isNotEmpty(sub_code)&&sub_code.equals("REFUND_SUCCESS")) {
+                    order.setStatus(3);
+                    String refund_settle_amount = jsonObject.getString("refund_settle_amount");
+                    String refund_plat_trx_no = jsonObject.getString("refund_plat_trx_no");
+                    order.setRefundTrxNo(refund_plat_trx_no);
+                    order.setRefundAmount(new BigDecimal(refund_settle_amount));
+                    order.setRefundDate(new Date());
+                    payFeign.updateOrder(order);
+                    //金额表今日金额要改 要分类型
+                    TAdmin admin =  tAdminService.getById(order.getAdminId());
+                    Integer orderType = order.getType();
+                    switch (orderType) {
+                        case 0:
+                            BigDecimal agencyProportion = order.getAgencyProportion();
+                            // 代理分销获得利润
+                            BigDecimal agencyPrice = price.multiply(agencyProportion.divide(new BigDecimal(100))).setScale(2, RoundingMode.HALF_DOWN);
+                            //修改金额表的今日金额
+                            LambdaQueryWrapper<TShandeMch> query = Wrappers.lambdaQuery();
+                            query.eq(TShandeMch::getAdminId,order.getAdminId());
+                            List<TShandeMch> list = tShandeMchService.list(query);
+                            if(list.size()>0){
+                                TShandeMch shandeMch = list.get(0);
+                                BigDecimal todayBalance = shandeMch.getTodayBalance();
+                                todayBalance = todayBalance.subtract(agencyPrice).setScale(2, RoundingMode.HALF_DOWN);
+                                shandeMch.setTodayBalance(todayBalance);
+                                shandeMch.setModifyDate(new Date());
+                                tShandeMchService.updateById(shandeMch);
+                            }
+                            break;
+                        case 1:
+                            BigDecimal agencyProportion1 = order.getAgencyProportion();
+                            BigDecimal merchantProportion1 = order.getMerchantProportion();
+                            // 代理分销获得利润
+                            BigDecimal agencyPrice1 = price.multiply(agencyProportion1.divide(new BigDecimal(100))).setScale(2, RoundingMode.HALF_DOWN);
+                            // 经销商分销获得利润
+                            BigDecimal merchantAmount1 = price.multiply(merchantProportion1.divide(new BigDecimal(100))).setScale(2, RoundingMode.HALF_DOWN);
+                            //修改代理金额表的今日金额
+//                            TShandeMchExample shandeMchExample1 = new TShandeMchExample();
+//                            TShandeMchExample.Criteria shandeMchExampleCriteria1 = shandeMchExample1.createCriteria();
+//                            shandeMchExampleCriteria1.andAdminIdEqualTo(admin.getParentId());
+//                            List<TShandeMch> list1 = tShandeMchService.selectByOption(shandeMchExample1);
+                            LambdaQueryWrapper<TShandeMch> query1 = Wrappers.lambdaQuery();
+                            query1.eq(TShandeMch::getAdminId,order.getAgencyId());
+                            List<TShandeMch> list1 = tShandeMchService.list(query1);
+                            if(list1.size()>0){
+                                TShandeMch shandeMch = list1.get(0);
+                                BigDecimal todayBalance = shandeMch.getTodayBalance();
+                                todayBalance = todayBalance.subtract(agencyPrice1).setScale(2, RoundingMode.HALF_DOWN);
+                                shandeMch.setTodayBalance(todayBalance);
+                                shandeMch.setModifyDate(new Date());
+                                tShandeMchService.updateById(shandeMch);
+                            }
+                            //修改经销商金额表的今日金额
+//                            TShandeMchExample shandeMchExample2 = new TShandeMchExample();
+//                            TShandeMchExample.Criteria shandeMchExampleCriteria2 = shandeMchExample2.createCriteria();
+//                            shandeMchExampleCriteria2.andAdminIdEqualTo(admin.getId());
+//                            List<TShandeMch> list2 = tShandeMchService.selectByOption(shandeMchExample2);
+                            LambdaQueryWrapper<TShandeMch> query2 = Wrappers.lambdaQuery();
+                            query2.eq(TShandeMch::getAdminId,admin.getId());
+                            List<TShandeMch> list2 = tShandeMchService.list(query2);
+                            if(list2.size()>0){
+                                TShandeMch shandeMch = list2.get(0);
+                                BigDecimal todayBalance = shandeMch.getTodayBalance();
+                                todayBalance = todayBalance.subtract(merchantAmount1).setScale(2, RoundingMode.HALF_DOWN);
+                                shandeMch.setTodayBalance(todayBalance);
+                                shandeMch.setModifyDate(new Date());
+                                tShandeMchService.updateById(shandeMch);
+                            }
+                            break;
+                        case 2:
+
+                            BigDecimal agencyProportion2 = order.getAgencyProportion();
+                            BigDecimal merchantProportion2 = order.getMerchantProportion();
+                            BigDecimal personageProportion2 = order.getPersonageProportion();
+                            // 代理分销获得利润
+                            BigDecimal agencyAmount = price.multiply(agencyProportion2.divide(new BigDecimal(100))).setScale(2, RoundingMode.HALF_DOWN);
+                            // 经销商分销获得利润
+                            BigDecimal merchantAmount = price.multiply(merchantProportion2.divide(new BigDecimal(100))).setScale(2, RoundingMode.HALF_DOWN);
+                            // 经销商分销获得利润
+                            BigDecimal personageAmount = price.multiply(personageProportion2.divide(new BigDecimal(100))).setScale(2, RoundingMode.HALF_DOWN);
+                            //修改代理金额表的今日金额
+//                            TShandeMchExample shandeMchExample3 = new TShandeMchExample();
+//                            TShandeMchExample.Criteria shandeMchExampleCriteria3 = shandeMchExample3.createCriteria();
+//                            shandeMchExampleCriteria3.andAdminIdEqualTo(admin.getAgencyId());
+//                            List<TShandeMch> list3 = tShandeMchService.selectByOption(shandeMchExample3);
+                            LambdaQueryWrapper<TShandeMch> query3 = Wrappers.lambdaQuery();
+                            query3.eq(TShandeMch::getAdminId,order.getAgencyId());
+                            List<TShandeMch> list3 = tShandeMchService.list(query3);
+                            if(list3.size()>0){
+                                TShandeMch shandeMch = list3.get(0);
+                                BigDecimal todayBalance = shandeMch.getTodayBalance();
+                                todayBalance = todayBalance.subtract(agencyAmount).setScale(2, RoundingMode.HALF_DOWN);
+                                shandeMch.setTodayBalance(todayBalance);
+                                shandeMch.setModifyDate(new Date());
+                                tShandeMchService.updateById(shandeMch);
+                            }
+                            //修改经销商金额表的今日金额
+//                            TShandeMchExample shandeMchExample4 = new TShandeMchExample();
+//                            TShandeMchExample.Criteria shandeMchExampleCriteria4 = shandeMchExample4.createCriteria();
+//                            shandeMchExampleCriteria4.andAdminIdEqualTo(admin.getMerchantId());
+//                            List<TShandeMch> list4 = tShandeMchService.selectByOption(shandeMchExample4);
+                            LambdaQueryWrapper<TShandeMch> query4 = Wrappers.lambdaQuery();
+                            query4.eq(TShandeMch::getAdminId,order.getMerchantId());
+                            List<TShandeMch> list4 = tShandeMchService.list(query4);
+                            if(list4.size()>0){
+                                TShandeMch shandeMch = list4.get(0);
+                                BigDecimal todayBalance = shandeMch.getTodayBalance();
+                                todayBalance = todayBalance.subtract(merchantAmount).setScale(2, RoundingMode.HALF_DOWN);
+                                shandeMch.setTodayBalance(todayBalance);
+                                shandeMch.setModifyDate(new Date());
+                                tShandeMchService.updateById(shandeMch);
+                            }
+                            //修改终端金额表的今日金额
+//                            TShandeMchExample shandeMchExample5 = new TShandeMchExample();
+//                            TShandeMchExample.Criteria shandeMchExampleCriteria5 = shandeMchExample5.createCriteria();
+//                            shandeMchExampleCriteria5.andAdminIdEqualTo(admin.getId());
+//                            List<TShandeMch> list5 = tShandeMchService.selectByOption(shandeMchExample5);
+                            LambdaQueryWrapper<TShandeMch> query5 = Wrappers.lambdaQuery();
+                            query5.eq(TShandeMch::getAdminId,admin.getId());
+                            List<TShandeMch> list5 = tShandeMchService.list(query5);
+                            if(list5.size()>0){
+                                TShandeMch shandeMch = list5.get(0);
+                                BigDecimal todayBalance = shandeMch.getTodayBalance();
+                                todayBalance = todayBalance.subtract(personageAmount).setScale(2, RoundingMode.HALF_DOWN);
+                                shandeMch.setTodayBalance(todayBalance);
+                                shandeMch.setModifyDate(new Date());
+                                tShandeMchService.updateById(shandeMch);
+                            }
+                            break;
+                    }
+                    TOrder order1 = R.getDataIfSuccess(payFeign.getOrder(String.valueOf(torder.getId())));
+                    order1.setModifyDate(new Date());
+                    esTOrderService.updateDataById(order1);
+                    return ResponseEntity
+                            .status(HttpStatus.OK)
+                            .body(new ResultMessage()
+                                    .setCode(true)
+                                    .setData("申请退款已成功")
+                                    .setMessage("申请退款已成功"));
+                } else {
+                    return ResponseEntity
+                            .status(HttpStatus.OK)
+                            .body(new ResultMessage()
+                                    .setCode(false)
+                                    .setData("申请退款失败")
+                                    .setMessage(refund));
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        } else {
+            try {
+                String result = orderService.refund(order.getSn(), orderService.initRefundSn(equipmentId), price, "", notifyUrl, altRefInfo.toString());
+                if (Constant.correct_code.equals(result)) {
+                    order.setStatus(2);
+                    payFeign.updateOrder(order);
+//                    tOrderService.updateById(order);
+                    return ResponseEntity
+                            .status(HttpStatus.OK)
+                            .body(new ResultMessage()
+                                    .setCode(true)
+                                    .setData("申请退款已成功")
+                                    .setMessage("申请退款已成功"));
+                } else {
+                    return ResponseEntity
+                            .status(HttpStatus.OK)
+                            .body(new ResultMessage()
+                                    .setCode(false)
+                                    .setData("申请退款失败")
+                                    .setMessage("申请退款失败"));
+                }
+
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+
 
+        return ResponseEntity
+                .status(HttpStatus.OK)
+                .body(new ResultMessage()
+                        .setCode(true)
+                        .setData("申请退款已成功")
+                        .setMessage("申请退款已成功"));
+    }
 }
 

+ 44 - 0
src/main/java/com/szwl/controller/TPriceController.java

@@ -0,0 +1,44 @@
+package com.szwl.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+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.model.entity.TPrice;
+import com.szwl.service.TPriceService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 金额表(如一个优惠码多少钱) 前端控制器
+ * </p>
+ *
+ * @author wuhs
+ * @since 2022-06-30
+ */
+@RestController
+@RequestMapping("/tPrice")
+public class TPriceController {
+    @Autowired
+    TPriceService priceService;
+    @ApiOperation(value = "获取价格")
+    @GetMapping("/getPrice")
+    public ResponseModel<TPrice> getPrice(String name) {
+        LambdaQueryWrapper<TPrice> query = Wrappers.lambdaQuery();
+        query.eq(TPrice::getName,name);
+        List<TPrice> list = priceService.list(query);
+        return R.ok(list.get(0));
+    }
+
+}
+

+ 38 - 3
src/main/java/com/szwl/controller/TProductController.java

@@ -10,10 +10,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.gexin.fastjson.JSON;
 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.model.entity.TProduct;
 import com.szwl.model.entity.TPromoCode;
 import com.szwl.model.utils.PushUtils;
+import com.szwl.service.TAdminService;
 import com.szwl.service.TEquipmentService;
 import com.szwl.service.TProductService;
 import io.swagger.annotations.Api;
@@ -45,10 +47,12 @@ public class TProductController {
     TEquipmentService tEquipmentService;
     @Autowired
     TProductService tProductService;
+    @Autowired
+    TAdminService tAdminService;
 
     @ApiOperation(value = "查询商品列表信息")
     @GetMapping("/selectProducts")
-    public ResponseEntity<?> doSugar(String equipmentId){
+    public ResponseEntity<?> selectProducts(String equipmentId){
         if(StringUtils.isEmpty(equipmentId)){
             return ResponseEntity.status(HttpStatus.OK)
                     .body(new ResultMessage().setCode(false).setData(null).setMessage(""));
@@ -145,13 +149,44 @@ public class TProductController {
 
     @ApiOperation(value = "获取商品")
     @GetMapping("/getTProduct")
-    public ResponseModel<TProduct> getTProduct(String  code,String equipmentId) {
+    public ResponseModel<TProduct> getTProduct(@RequestParam(value = "equipmentId")String equipmentId,@RequestParam(value = "productName")String productName) {
         LambdaQueryWrapper<TProduct> query = Wrappers.lambdaQuery();
-        query.eq(TProduct::getProductName,code);
+        query.eq(TProduct::getProductName,productName);
         query.eq(TProduct::getEquipmentId,Long.valueOf(equipmentId));
         List<TProduct> list = tProductService.list(query);
         TProduct tProduct = list.get(0);
         return R.ok(tProduct);
     }
+
+    @ApiOperation(value = "查询商品列表信息 下拉列表查询")
+    @GetMapping("/getProducts")
+    public ResponseEntity<?> getProducts(String adminId){
+        if(StringUtils.isEmpty(adminId)){
+            return ResponseEntity.status(HttpStatus.OK)
+                    .body(new ResultMessage().setCode(false).setData(null).setMessage(""));
+        }
+        TAdmin admin = tAdminService.getById(adminId);
+        if(admin.getType()==3){
+            TAdmin parentAdmin = tAdminService.getById(admin.getParentId());
+            adminId = String.valueOf(parentAdmin.getId());
+        }
+        if(admin.getType()<2){
+            adminId = "5";
+        }
+        LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
+        query.eq(TEquipment::getAdminId,adminId);
+        List<TEquipment> list = tEquipmentService.list(query);
+        if(list.size()>0){
+            TEquipment equipment = list.get(0);
+            LambdaQueryWrapper<TProduct> query1 = Wrappers.lambdaQuery();
+            query1.eq(TProduct::getEquipmentId,equipment.getId());
+            List<TProduct> list1 = tProductService.list(query1);
+            return ResponseEntity.status(HttpStatus.OK)
+                    .body(new ResultMessage().setCode(true).setData(list1).setMessage("SUCCESS"));
+        }else {
+            return ResponseEntity.status(HttpStatus.OK)
+                    .body(new ResultMessage().setCode(false).setData(null).setMessage(""));
+        }
+    }
 }
 

+ 249 - 5
src/main/java/com/szwl/controller/TPromoCodeController.java

@@ -1,23 +1,35 @@
 package com.szwl.controller;
 
 
+import com.alibaba.fastjson.JSONArray;
+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.szwl.feign.bean.PayFeign;
+import com.szwl.model.bo.JoinpayConstant;
 import com.szwl.model.bo.R;
 import com.szwl.model.bo.ResponseModel;
-import com.szwl.model.entity.TEquipment;
-import com.szwl.model.entity.TPromoCode;
-import com.szwl.service.TEquipmentService;
-import com.szwl.service.TPromoCodeService;
+import com.szwl.model.entity.*;
+import com.szwl.service.*;
+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.RequestMapping;
 
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.io.UnsupportedEncodingException;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+import static com.szwl.constant.ResponseCodesEnum.A0001;
+
 /**
  * <p>
  * 优惠码列表 前端控制器
@@ -26,6 +38,7 @@ import org.springframework.web.bind.annotation.RestController;
  * @author wuhs
  * @since 2022-06-17
  */
+@Api(value = "/tPromoCode", tags = {"优惠码"})
 @RestController
 @RequestMapping("/tPromoCode")
 public class TPromoCodeController {
@@ -33,6 +46,16 @@ public class TPromoCodeController {
     TEquipmentService tEquipmentService;
     @Autowired
     TPromoCodeService promoCodeService;
+    @Autowired
+    TPriceService priceService;
+    @Autowired
+    TAdminService adminService;
+    @Autowired
+    TOrderService orderService;
+    @Autowired
+    TJoinpayMchService joinpayMchService;
+    @Autowired
+    PayFeign payFeign;
     @ApiOperation(value = "获取优惠码")
     @GetMapping("/getTPromoCode")
     public ResponseModel<IPage<TPromoCode>> getTPromoCode(String  code) {
@@ -44,10 +67,231 @@ public class TPromoCodeController {
     }
     @ApiOperation(value = "修改优惠码")
     @GetMapping("/updatePromoCode")
-    public void updatePromoCode(String id,String type) {
+    public void updatePromoCode(@RequestParam(value = "id")String id, @RequestParam(value = "type")String type) {
         TPromoCode promoCode = promoCodeService.getById(id);
         promoCode.setIsUse(type);
         promoCodeService.updateById(promoCode);
     }
+    @ApiOperation(value = "生成0折优惠码")
+    @GetMapping("/addPromoCode")
+    public void addPromoCode(@RequestParam(value = "adminId")String adminId,@RequestParam(value = "lastUseDate")Date lastUseDate,@RequestParam(value = "number")String number) {
+        int num = Integer.parseInt(number);
+        List<String> codes = new ArrayList<>();
+        for (int i = 0; i < num; i++) {
+            String code = orderService.initSn(Long.valueOf(adminId));
+            StringBuffer str = new StringBuffer();
+            str.append(code.substring(0, 6));
+            codes.add(str.toString());
+        }
+        TAdmin admin = adminService.getById(adminId);
+        for (String code : codes) {
+                TPromoCode promoCode = new TPromoCode();
+                promoCode.setCreateDate(new Date());
+                promoCode.setModifyDate(new Date());
+                promoCode.setCode(Long.parseLong(code));
+                promoCode.setAdminId(adminId);
+                promoCode.setIsUse("0");
+                promoCode.setDiscount(0f);
+                promoCode.setLastUseDate(lastUseDate);
+                promoCode.setCreateDate(new Date());
+                promoCode.setUserName(admin.getUsername());
+                promoCodeService.save(promoCode);
+        }
+    }
+    @ApiOperation(value = "添加优惠码")
+    @GetMapping("/add")
+    public ResponseModel<?> add(Long adminId,int number,Float discount,Float month,String type,String frpCode) {
+        if(discount==null||month==null||adminId==null||StringUtils.isEmpty(type)){
+            return R.fail(A0001);
+        }
+        TAdmin admin = adminService.getById(adminId);
+        if(String.valueOf(admin.getId()).equals("1")){
+            List<String> codes =new ArrayList<>();
+            for(int i=0;i<number;i++){
+                StringBuilder num = new StringBuilder();
+                Random random = new Random();
+                for (int j = 0; j < 8; j++) {
+                    num.append(String.valueOf(random.nextInt(10)));
+                }
+                String code = num.toString();
+                codes.add(code);
+            }
+            Long data = Calendar.getInstance().getTimeInMillis();
+            Float mm = month*10;
+            String m = String.valueOf(mm);
+            String[] split = m.split("\\.");
+            String th = split[0];
+            Long t = Long.valueOf(th);
+            Long mon = 30L*24L*60L*60L*1000L;
+            Long d = data + ((mon*t)/10);
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            String sd = sdf.format(new Date(Long.parseLong(String.valueOf(d))));
+            Date lastUseDate = new Date(Long.parseLong(String.valueOf(d)));
+            for(String code : codes){
+                TPromoCode promoCode = new TPromoCode();
+                promoCode.setCode(Long.parseLong(code));
+                promoCode.setAdminId(String.valueOf(admin.getId()));
+                promoCode.setIsUse("0");
+                promoCode.setDiscount(discount);
+                promoCode.setLastUseDate(lastUseDate);
+                promoCode.setCreateDate(new Date());
+                promoCode.setUserName(admin.getUsername());
+                promoCode.setType(type);
+                promoCodeService.save(promoCode);
+            }
+            return R.ok();
+        }
+        LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
+        query.eq(TEquipment::getAdminId,admin.getId());
+        List<TEquipment> list = tEquipmentService.list(query);
+        TEquipment equipment = list.get(0);
+        if(list.size()==0){
+            // "要有机器才能购买优惠码";
+            return R.fail("没有机器");
+        }
+        //0折优惠码需要支付
+        if(type.equals("0")&&discount==0){
+            if(admin.getPromoCodeOpen()==null||admin.getPromoCodeOpen().equals("1")){
+                Long equipmentId = equipment.getId();
+                Double money = null;
+                LambdaQueryWrapper<TPrice> query1 = Wrappers.lambdaQuery();
+                query1.eq(TPrice::getName,"优惠码");
+                List<TPrice> prices = priceService.list(query1);
+                for(TPrice price:prices){
+                    if(price.getName().equals("优惠码")){
+                        money = price.getPrice();
+                    }
+                }
+
+                String sn = orderService.initSn(equipmentId);
+                String orderNo = sn;
+                String productName = "优惠码";
+                BigDecimal price = BigDecimal.valueOf(money*number);
+                BigDecimal cutPrice = price.multiply(new BigDecimal(100)).divide(new BigDecimal(100));
+                BigDecimal amount = cutPrice;
+                String productDesc = "";
+                String commonParameter = "";
+                String returnUrl = null;
+                String notifyUrl = JoinpayConstant.Notify_Url_PromoCode;
+                String isShowPic = "1";
+                String openId = null;
+                String authCode = null;
+                String appid = null;
+                String transactionModel = null;
+                String tradeMerchantNo = null;
+                String buyerId = null;
+                String isAlt = "0";
+                String altType = null;
+                String altUrl = null;
+                BigDecimal marketingAmount = null;
+//                frpCode = "WEIXIN_NATIVE";
+                TOrder order1 = new TOrder();
+                order1.setSn(sn);
+                order1.setType(0);
+                order1.setAdminId(admin.getId());
+                order1.setProductName(productName);
+                order1.setPrice(price);
+                order1.setEquipmentId(equipmentId);
+                order1.setClientId(equipment.getClientId());
+                order1.setStatus(0);
+                order1.setFrpCode(frpCode);
+                order1.setRefundTrxNo(String.valueOf(month));
+                order1.setCreateDate(new Date());
+                order1.setModifyDate(new Date());
+                payFeign.addOrder(order1);
+                JSONArray altInfo = new JSONArray();
+                String result = null;
+                try {
+                    result = joinpayMchService.uniPay(
+                            orderNo, amount, productName, productDesc,
+                            commonParameter, returnUrl, notifyUrl, frpCode,
+                            isShowPic, openId, authCode, appid, transactionModel, tradeMerchantNo,
+                            buyerId, isAlt, altType, altInfo, altUrl, marketingAmount
+                    );
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    return R.fail("申请支付失败");
+                }
+                JSONObject resultJson = JSONObject.parseObject(result);
+                // 汇聚支付支付申请返回支付二维码图片
+                String rd_Pic = resultJson.getString("rd_Pic");
+                if (resultJson == null || StringUtils.isBlank(rd_Pic)) {
+                    return R.fail("找不到支付图片");
+                }
+                JSONObject kindData = new JSONObject();
+                kindData.put("sn", sn);
+                kindData.put("price", price);
+                kindData.put("image", rd_Pic);
+                return R.ok(kindData);
+            }
+
+        }
+        Long equipmentId = equipment.getId();
+
+        List<String> codes =new ArrayList<>();
+        for(int i=0;i<number;i++){
+            String code = orderService.initSn(equipmentId);
+            StringBuffer str = new StringBuffer();
+            str.append(code.substring(0,6));
+            codes.add(str.toString());
+        }
+        Long data = Calendar.getInstance().getTimeInMillis();
+        Float mm = month*10;
+        String m = String.valueOf(mm);
+        String[] split = m.split("\\.");
+        String th = split[0];
+        Long t = Long.valueOf(th);
+        Long mon = 30L*24L*60L*60L*1000L;
+        Long d = data + ((mon*t)/10);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String sd = sdf.format(new Date(Long.parseLong(String.valueOf(d))));
+        Date lastUseDate = new Date(Long.parseLong(String.valueOf(d)));
+        for(String code : codes){
+            TPromoCode promoCode = new TPromoCode();
+            promoCode.setCode(Long.parseLong(code));
+            promoCode.setAdminId(String.valueOf(admin.getId()));
+            promoCode.setIsUse("0");
+            promoCode.setDiscount(discount);
+            promoCode.setLastUseDate(lastUseDate);
+            promoCode.setCreateDate(new Date());
+            promoCode.setUserName(admin.getUsername());
+            promoCode.setType(type);
+            promoCodeService.save(promoCode);
+        }
+        return R.ok();
+    }
+    @ApiOperation(value = "获取优惠码列表")
+    @GetMapping("/pagePromoCode")
+    public ResponseModel<IPage<?>> pagePromoCode(String adminId , String code, String isUse, Date useStratDate,Date useEndDate,Date createStratDate,Date createEndDate,  long current, long size ) {
+        LambdaQueryWrapper<TPromoCode> query = Wrappers.lambdaQuery();
+        if(StringUtils.isNotEmpty(adminId)){
+            TAdmin admin = adminService.getById(adminId);
+            if(admin.getType()==0||admin.getType()==1){
+
+            }else {
+                query.eq(TPromoCode::getAdminId,adminId);
+            }
+        }else {
+            return R.fail(A0001);
+        }
+        if(StringUtils.isNotEmpty(code)){
+            query.eq(TPromoCode::getCode,code);
+        }
+        if(StringUtils.isNotEmpty(isUse)){
+            query.like(TPromoCode::getIsUse,isUse);
+        }
+        if(useStratDate!=null&&useEndDate!=null){
+            query.gt(TPromoCode::getUseDate,useStratDate);
+            query.lt(TPromoCode::getUseDate,useEndDate);
+        }
+        if(createStratDate!=null&&createEndDate!=null){
+            query.gt(TPromoCode::getCreateDate,createStratDate);
+            query.lt(TPromoCode::getCreateDate,createEndDate);
+        }
+
+        Page<TPromoCode> page = new Page<>(current, size, true);
+        IPage<TPromoCode> iPage = promoCodeService.page(page, query);
+        return R.ok(iPage);
+    }
 }
 

+ 101 - 0
src/main/java/com/szwl/controller/TTimeRuleController.java

@@ -0,0 +1,101 @@
+package com.szwl.controller;
+
+
+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.szwl.constant.ResponseCodesEnum;
+import com.szwl.model.bo.R;
+import com.szwl.model.bo.ResponseModel;
+import com.szwl.model.entity.TAd;
+import com.szwl.model.entity.TAdmin;
+import com.szwl.model.entity.TEquipment;
+import com.szwl.model.entity.TTimeRule;
+import com.szwl.model.utils.PushUtils;
+import com.szwl.service.TAdService;
+import com.szwl.service.TAdminService;
+import com.szwl.service.TEquipmentService;
+import com.szwl.service.TTimeRuleService;
+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 java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 广告规则 前端控制器
+ * </p>
+ *
+ * @author wuhs
+ * @since 2022-07-05
+ */
+@RestController
+@RequestMapping("/tTimeRule")
+public class TTimeRuleController {
+    @Autowired
+    TAdService adService;
+    @Autowired
+    TAdminService adminService;
+    @Autowired
+    TTimeRuleService timeRuleService;
+    @Autowired
+    TEquipmentService equipmentService;
+
+    private static final String[] times = {"0-1", "1-2", "2-3", "3-4", "4-5", "5-6", "6-7", "7-8",
+            "8-9", "9-10", "10-11", "11-12", "12-13", "13-14", "14-15", "15-16", "16-17", "17-18", "18-19", "19-20"
+            , "20-21", "21-22", "22-23", "23-24"};
+    @GetMapping("/pageAd")
+    public ResponseModel<IPage<?>> pageAd(long current, long size ) {
+        LambdaQueryWrapper<TTimeRule> query = Wrappers.lambdaQuery();
+        Page<TTimeRule> page = new Page<>(current, size, true);
+        IPage<TTimeRule> iPage = timeRuleService.page(page, query);
+        return R.ok(iPage);
+    }
+    @ApiOperation(value = "添加")
+    @PostMapping("/add")
+    public ResponseModel<?> add(@RequestBody TTimeRule timeRule) {
+        if(StringUtils.isEmpty(timeRule.getName())&&StringUtils.isEmpty(timeRule.getRule())){
+            return R.fail(ResponseCodesEnum.A0001);
+        }
+        timeRule.setCreateDate(new Date());
+        timeRule.setModifyDate(new Date());
+        timeRuleService.save(timeRule);
+        return R.ok(timeRule);
+    }
+    @ApiOperation(value = "修改")
+    @PostMapping("/update")
+    public ResponseModel<?> update(@RequestBody TTimeRule timeRule) {
+        if(StringUtils.isEmpty(timeRule.getName())&&StringUtils.isEmpty(timeRule.getRule())){
+            return R.fail(ResponseCodesEnum.A0001);
+        }
+        timeRule.setModifyDate(new Date());
+        timeRuleService.updateById(timeRule);
+        return R.ok(timeRule);
+    }
+
+    /**
+     * 推送时间规则广告id
+     *
+     * @param id 规则id
+     * @return
+     */
+    @GetMapping(value = "/pullTimeRule")
+    @ResponseBody
+    public ResponseModel<?> pullTimeRule(Long id) {
+        LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
+        query.eq(TEquipment::getTimeRuleId,id);
+        List<TEquipment> list = equipmentService.list(query);
+        //查询出用这个广告规则的设备
+        for (TEquipment equipment : list) {
+            equipmentService.sentMessage(equipment.getClientId(), PushUtils.buildJson("pushTimeRule", id + "").toString());
+//            PushUtils.push(equipment.getGtClientId(), "", "", PushUtils.buildJson("pushTimeRule", id + "").toString());
+        }
+        return  R.ok();
+    }
+}
+

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

@@ -1,10 +1,16 @@
 package com.szwl.feign.bean;
 
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.szwl.model.bo.ResponseModel;
+import com.szwl.model.entity.TOrder;
 import com.szwl.model.query.TAdminParam;
 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.RequestBody;
+
+import java.math.BigDecimal;
 
 
 @FeignClient(name = "pay-server")
@@ -12,4 +18,12 @@ public interface PayFeign {
 
     @GetMapping("/test/testPay")
     ResponseModel<IPage<?>> testPay(String id);
+    @PostMapping("/tOrder/addOrder")
+    ResponseModel<?> addOrder(@RequestBody TOrder order);
+    @GetMapping("/tOrder/getOrder")
+    ResponseModel<TOrder> getOrder(String id);
+    @PostMapping("/tOrder/updateOrder")
+    ResponseModel<?> updateOrder(@RequestBody TOrder order);
+//    @GetMapping("/tOrder/tradeServiceUniPay")
+//    String tradeServiceUniPay(String orderNo, BigDecimal amount, String productName, String productDesc, String commonParameter, String returnUrl, String notifyUrl, String frpCode, String isShowPic, String openId, String authCode, String appid, String transactionModel, String tradeMerchantNo, String buyerId, String isAlt, String altType, JSONArray altInfo, String altUrl, BigDecimal marketingAmount);
 }

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

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

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

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

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

@@ -0,0 +1,16 @@
+package com.szwl.mapper;
+
+import com.szwl.model.entity.TApkInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 安卓App版本 Mapper 接口
+ * </p>
+ *
+ * @author wuhs
+ * @since 2022-07-04
+ */
+public interface TApkInfoMapper extends BaseMapper<TApkInfo> {
+
+}

+ 17 - 0
src/main/java/com/szwl/mapper/TLabelMapper.java

@@ -0,0 +1,17 @@
+package com.szwl.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.szwl.model.entity.TLabel;
+import com.szwl.model.entity.TPrice;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author wuhs
+ * @since 2022-06-30
+ */
+public interface TLabelMapper extends BaseMapper<TLabel> {
+
+}

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

@@ -0,0 +1,16 @@
+package com.szwl.mapper;
+
+import com.szwl.model.entity.TPrice;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 金额表(如一个优惠码多少钱) Mapper 接口
+ * </p>
+ *
+ * @author wuhs
+ * @since 2022-06-30
+ */
+public interface TPriceMapper extends BaseMapper<TPrice> {
+
+}

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

@@ -0,0 +1,16 @@
+package com.szwl.mapper;
+
+import com.szwl.model.entity.TTimeRule;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 广告规则 Mapper 接口
+ * </p>
+ *
+ * @author wuhs
+ * @since 2022-07-05
+ */
+public interface TTimeRuleMapper extends BaseMapper<TTimeRule> {
+
+}

+ 30 - 0
src/main/java/com/szwl/mapper/xml/TAdMapper.xml

@@ -0,0 +1,30 @@
+<?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.TAdMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.szwl.model.entity.TAd">
+        <id column="id" property="id" />
+        <result column="create_date" property="createDate" />
+        <result column="modify_date" property="modifyDate" />
+        <result column="ad_type" property="adType" />
+        <result column="admin_id" property="adminId" />
+        <result column="location_type" property="locationType" />
+        <result column="name" property="name" />
+        <result column="url" property="url" />
+        <result column="orders" property="orders" />
+        <result column="duration" property="duration" />
+        <result column="media_preview" property="mediaPreview" />
+        <result column="plays" property="plays" />
+        <result column="status" property="status" />
+        <result column="time_rule" property="timeRule" />
+        <result column="screen_type" property="screenType" />
+        <result column="equipment_type" property="equipmentType" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, create_date, modify_date, ad_type, admin_id, location_type, name, url, orders, duration, media_preview, plays, status, time_rule, screen_type, equipment_type
+    </sql>
+
+</mapper>

+ 17 - 0
src/main/java/com/szwl/mapper/xml/TAdminEquipmentMapper.xml

@@ -0,0 +1,17 @@
+<?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.TAdminEquipmentMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.szwl.model.entity.TAdminEquipment">
+        <result column="admin_id" property="adminId" />
+        <result column="equipment_ids" property="equipmentIds" />
+        <result column="type" property="type" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        admin_id, equipment_ids, type
+    </sql>
+
+</mapper>

+ 24 - 0
src/main/java/com/szwl/mapper/xml/TApkInfoMapper.xml

@@ -0,0 +1,24 @@
+<?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.TApkInfoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.szwl.model.entity.TApkInfo">
+        <id column="id" property="id" />
+        <result column="create_date" property="createDate" />
+        <result column="modify_date" property="modifyDate" />
+        <result column="apk_size" property="apkSize" />
+        <result column="download_url" property="downloadUrl" />
+        <result column="is_force" property="isForce" />
+        <result column="version" property="version" />
+        <result column="version_info" property="versionInfo" />
+        <result column="version_name" property="versionName" />
+        <result column="model" property="model" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, create_date, modify_date, apk_size, download_url, is_force, version, version_info, version_name, model
+    </sql>
+
+</mapper>

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

@@ -6,11 +6,20 @@
     <resultMap id="BaseResultMap" type="com.szwl.model.entity.TEquipmentDesc">
         <id column="equipment_id" property="equipmentId" />
         <result column="flowers" property="flowers" />
+        <result column="white_sugar" property="whiteSugar" />
+        <result column="red_sugar" property="redSugar" />
+        <result column="yellow_sugar" property="yellowSugar" />
+        <result column="blue_sugar" property="blueSugar" />
+        <result column="stick" property="stick" />
+        <result column="water" property="water" />
+        <result column="waste_water" property="wasteWater" />
+        <result column="is_material_use" property="isMaterialUse" />
+        <result column="pay_type" property="payType" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        equipment_id, flowers
+        equipment_id, flowers,red_sugar, yellow_sugar, blue_sugar, stick, water, waste_water, is_material_use,pay_type
     </sql>
 
 </mapper>

+ 18 - 0
src/main/java/com/szwl/mapper/xml/TLabelMapper.xml

@@ -0,0 +1,18 @@
+<?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.TPriceMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.szwl.model.entity.TLabel">
+        <id column="id" property="id" />
+        <result column="name" property="name" />
+        <result column="create_date" property="createDate" />
+        <result column="modify_date" property="modifyDate" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, name, create_date, modify_date
+    </sql>
+
+</mapper>

+ 19 - 0
src/main/java/com/szwl/mapper/xml/TPriceMapper.xml

@@ -0,0 +1,19 @@
+<?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.TPriceMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.szwl.model.entity.TPrice">
+        <id column="id" property="id" />
+        <result column="name" property="name" />
+        <result column="price" property="price" />
+        <result column="create_date" property="createDate" />
+        <result column="modify_date" property="modifyDate" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, name, price, create_date, modify_date
+    </sql>
+
+</mapper>

+ 19 - 0
src/main/java/com/szwl/mapper/xml/TTimeRuleMapper.xml

@@ -0,0 +1,19 @@
+<?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.TTimeRuleMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.szwl.model.entity.TTimeRule">
+        <id column="id" property="id" />
+        <result column="create_date" property="createDate" />
+        <result column="modify_date" property="modifyDate" />
+        <result column="name" property="name" />
+        <result column="rule" property="rule" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, create_date, modify_date, name, rule
+    </sql>
+
+</mapper>

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

@@ -77,6 +77,50 @@ public class EquipmentVo {
      */
     private String gtClientId;
 
+    /**
+     *白糖
+     */
+    private String whiteSugar;
+
+    /**
+     *红糖
+     */
+    private String redSugar;
+
+    /**
+     黄糖
+     blueSugar:蓝糖
+     stick:棍
+     water:水
+     wasteWater:废水
+     */
+    private String yellowSugar;
+
+    /**
+     * 蓝糖
+     */
+    private String blueSugar;
+
+    /**
+     * 棍
+     */
+    private String stick;
+
+    /**
+     * 水
+     */
+    private String water;
+
+    /**
+     * 废水
+     */
+    private String wasteWater;
+
+    /**
+     * 是否启用物料监控功能,0:不启用,1:启用
+     */
+    private String isMaterialUse;
+
     public String getClientId() {
         return clientId;
     }
@@ -188,4 +232,68 @@ public class EquipmentVo {
     public void setGtClientId(String gtClientId) {
         this.gtClientId = gtClientId;
     }
+
+    public String getWhiteSugar() {
+        return whiteSugar;
+    }
+
+    public void setWhiteSugar(String whiteSugar) {
+        this.whiteSugar = whiteSugar;
+    }
+
+    public String getRedSugar() {
+        return redSugar;
+    }
+
+    public void setRedSugar(String redSugar) {
+        this.redSugar = redSugar;
+    }
+
+    public String getYellowSugar() {
+        return yellowSugar;
+    }
+
+    public void setYellowSugar(String yellowSugar) {
+        this.yellowSugar = yellowSugar;
+    }
+
+    public String getBlueSugar() {
+        return blueSugar;
+    }
+
+    public void setBlueSugar(String blueSugar) {
+        this.blueSugar = blueSugar;
+    }
+
+    public String getStick() {
+        return stick;
+    }
+
+    public void setStick(String stick) {
+        this.stick = stick;
+    }
+
+    public String getWater() {
+        return water;
+    }
+
+    public void setWater(String water) {
+        this.water = water;
+    }
+
+    public String getWasteWater() {
+        return wasteWater;
+    }
+
+    public void setWasteWater(String wasteWater) {
+        this.wasteWater = wasteWater;
+    }
+
+    public String getIsMaterialUse() {
+        return isMaterialUse;
+    }
+
+    public void setIsMaterialUse(String isMaterialUse) {
+        this.isMaterialUse = isMaterialUse;
+    }
 }

+ 14 - 0
src/main/java/com/szwl/model/bo/R.java

@@ -2,6 +2,7 @@ package com.szwl.model.bo;
 
 
 import com.szwl.constant.ResponseCodesEnum;
+import com.szwl.exception.MyException;
 
 public class R<T> {
 
@@ -34,4 +35,17 @@ public class R<T> {
     public static <T> ResponseModel<T> fail(ResponseCodesEnum code, String formatter, Object... obj) {
         return ResponseModel.fail(code, String.format(formatter, obj));
     }
+    /**
+     * 获取feign结果,如果成功获取data,失败抛出异常
+     *
+     * @param resp
+     * @param <T>
+     * @return
+     */
+    public static <T> T getDataIfSuccess(ResponseModel<T> resp) {
+        if (!resp.isSuccess()) {
+            throw new MyException(resp.getMessage());
+        }
+        return resp.getData();
+    }
 }

+ 147 - 0
src/main/java/com/szwl/model/dto/AdVo.java

@@ -0,0 +1,147 @@
+package com.szwl.model.dto;
+
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class AdVo implements Serializable {
+
+    private Long id;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createDate;
+
+    /**
+     * 广告名称
+     */
+    private String name;
+
+    /**
+     * 广告类型
+     */
+
+    private String adType;
+
+    /**
+     * 位置类型
+     */
+    private String locationType;
+    /**
+     * 广告地址
+     */
+    private String url;
+
+    private String adminId;
+
+    private Integer order;
+
+    /**
+     * 视屏缩略图
+     */
+    private String mediaPreview;
+
+    /**
+     * 广告时长
+     */
+    private Long duration;
+
+    /**
+     * 0代表A屏
+     * 1代表B屏
+     */
+    private Integer screenType;
+
+
+    public Integer getScreenType() {
+        return screenType;
+    }
+
+    public void setScreenType(Integer screenType) {
+        this.screenType = screenType;
+    }
+
+    public Long getDuration() {
+        return duration;
+    }
+
+    public void setDuration(Long duration) {
+        this.duration = duration;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getAdminId() {
+        return adminId;
+    }
+
+    public void setAdminId(String adminId) {
+        this.adminId = adminId;
+    }
+
+    public String getAdType() {
+        return adType;
+    }
+
+    public void setAdType(String adType) {
+        this.adType = adType;
+    }
+
+    public String getLocationType() {
+        return locationType;
+    }
+
+    public void setLocationType(String locationType) {
+        this.locationType = locationType;
+    }
+
+    public Integer getOrder() {
+        return order;
+    }
+
+    public void setOrder(Integer order) {
+        this.order = order;
+    }
+
+    public Date getCreateDate() {
+        return createDate;
+    }
+
+    public void setCreateDate(Date createDate) {
+
+        this.createDate = createDate;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getMediaPreview() {
+        return mediaPreview;
+    }
+
+    public void setMediaPreview(String mediaPreview) {
+        this.mediaPreview = mediaPreview;
+    }
+
+
+}

+ 67 - 0
src/main/java/com/szwl/model/dto/TimeRuleVo.java

@@ -0,0 +1,67 @@
+package com.szwl.model.dto;
+
+import com.szwl.model.entity.TAd;
+
+import java.util.List;
+
+public class TimeRuleVo {
+
+    /**
+     * 规则名称
+     */
+    private String name;
+
+    private String time;
+
+    private List<TAd> ads;
+
+    /**
+     * 广告规则id
+     */
+    private Long id;
+
+    /**
+     * 广告内容的id
+     */
+    private List<String> ad;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public List<String> getAd() {
+        return ad;
+    }
+
+    public void setAd(List<String> ad) {
+        this.ad = ad;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getTime() {
+        return time;
+    }
+
+    public void setTime(String time) {
+        this.time = time;
+    }
+
+    public List<TAd> getAds() {
+        return ads;
+    }
+
+    public void setAds(List<TAd> ads) {
+        this.ads = ads;
+    }
+}

+ 79 - 0
src/main/java/com/szwl/model/entity/TAd.java

@@ -0,0 +1,79 @@
+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 2022-07-05
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="TAd对象", description="")
+public class TAd implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    private Date createDate;
+
+    private Date modifyDate;
+    //广告类型 0:图片,1:视频
+    private Integer adType;
+
+    private String adminId;
+    //位置类型 0:棉花糖宣传广告,1:外接广告
+    private Integer locationType;
+
+    private String name;
+    /**
+     * 广告地址
+     */
+    private String url;
+
+    private Integer orders;
+    /**
+     * 广告时长
+     */
+    private Long duration;
+    /**
+     * 视屏缩略图
+     */
+    private String mediaPreview;
+    /**
+     * 播放次数
+     */
+    private Long plays;
+    /**
+     * 状态
+     */
+    private String status;
+
+    private String timeRule;
+    /**
+     * 0代表A屏
+     * 1代表B屏
+     */
+    private Integer screenType;
+
+    @ApiModelProperty(value = "适用机器类型")
+    private String equipmentType;
+
+    /**
+     * 0默认下载
+     * 1不默认下载
+     */
+    private String type;
+}

+ 32 - 0
src/main/java/com/szwl/model/entity/TAdminEquipment.java

@@ -0,0 +1,32 @@
+package com.szwl.model.entity;
+
+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 2022-07-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="TAdminEquipment对象", description="")
+public class TAdminEquipment implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Long adminId;
+
+    private String equipmentIds;
+
+    @ApiModelProperty(value = "0:全部机器,1:部分机器")
+    private String type;
+
+
+}

+ 56 - 0
src/main/java/com/szwl/model/entity/TApkInfo.java

@@ -0,0 +1,56 @@
+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>
+ * 安卓App版本
+ * </p>
+ *
+ * @author wuhs
+ * @since 2022-07-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="TApkInfo对象", description="安卓App版本")
+public class TApkInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    private Date createDate;
+
+    private Date modifyDate;
+
+    @ApiModelProperty(value = "大小;")
+    private Long apkSize;
+
+    @ApiModelProperty(value = "下载地址;")
+    private String downloadUrl;
+
+    @ApiModelProperty(value = "是否强制更新;")
+    private Boolean isForce;
+
+    @ApiModelProperty(value = "版本号;")
+    private Integer version;
+
+    @ApiModelProperty(value = "信息;")
+    private String versionInfo;
+
+    @ApiModelProperty(value = "名称;")
+    private String versionName;
+
+    @ApiModelProperty(value = "型号;")
+    private String model;
+
+
+}

+ 59 - 0
src/main/java/com/szwl/model/entity/TEquipmentDesc.java

@@ -29,5 +29,64 @@ public class TEquipmentDesc implements Serializable {
     @ApiModelProperty(value = "花型数量;")
     private String flowers;
 
+    /**
+     *白糖
+     */
+    @ApiModelProperty(value = "白糖;")
+    private String whiteSugar;
+
+    /**
+     *红糖
+     */
+    @ApiModelProperty(value = "红糖;")
+    private String redSugar;
+
+    /**
+     黄糖
+     blueSugar:蓝糖
+     stick:棍
+     water:水
+     wasteWater:废水
+     */
+    @ApiModelProperty(value = "黄糖;")
+    private String yellowSugar;
+
+    /**
+     * 蓝糖
+     */
+    @ApiModelProperty(value = "蓝糖;")
+    private String blueSugar;
+
+    /**
+     * 棍
+     */
+    @ApiModelProperty(value = "棍;")
+    private String stick;
+
+    /**
+     * 水
+     */
+    @ApiModelProperty(value = "水;")
+    private String water;
+
+    /**
+     * 废水
+     */
+    @ApiModelProperty(value = "废水;")
+    private String wasteWater;
+
+    /**
+     * 是否启用物料监控功能,0:不启用,1:启用
+     */
+    @ApiModelProperty(value = "是否启用物料监控功能;")
+    private String isMaterialUse;
+
+    /**
+     * 当前机器购物车模式,0:原始模式,1:第二件半价
+     */
+    @ApiModelProperty(value = "当前机器购物车模式;")
+    private String payType;
+
+
 
 }

+ 56 - 0
src/main/java/com/szwl/model/entity/TLabel.java

@@ -0,0 +1,56 @@
+package com.szwl.model.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 金额表(如一个优惠码多少钱)
+ * </p>
+ *
+ * @author wuhs
+ * @since 2022-06-30
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="TLabel对象", description="")
+public class TLabel implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    @ApiModelProperty(value = "用户id;")
+    private Long adminId;
+
+    @ApiModelProperty(value = ";")
+    private String adminIds;
+
+    @ApiModelProperty(value = ";")
+    private String adminNames;
+
+    @ApiModelProperty(value = "标签类型,0:商户标签,1:机器标签")
+    private String type;
+
+    @ApiModelProperty(value = ";")
+    private String equipmentIds;
+
+    @ApiModelProperty(value = ";")
+    private String equipmentNames;
+
+    @ApiModelProperty(value = "名称;")
+    private String name;
+
+    private Date createDate;
+
+    private Date modifyDate;
+
+
+}

+ 41 - 0
src/main/java/com/szwl/model/entity/TPrice.java

@@ -0,0 +1,41 @@
+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 2022-06-30
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="TPrice对象", description="金额表(如一个优惠码多少钱)")
+public class TPrice implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty(value = "名称;")
+    private String name;
+
+    @ApiModelProperty(value = "金额;")
+    private Double price;
+
+    private Date createDate;
+
+    private Date modifyDate;
+
+
+}

+ 41 - 0
src/main/java/com/szwl/model/entity/TTimeRule.java

@@ -0,0 +1,41 @@
+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 2022-07-05
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="TTimeRule对象", description="广告规则")
+public class TTimeRule implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    private Date createDate;
+
+    private Date modifyDate;
+
+    @ApiModelProperty(value = "规则名称;")
+    private String name;
+
+    @ApiModelProperty(value = "时间规则;")
+    private String rule;
+
+
+}

+ 3 - 0
src/main/java/com/szwl/model/param/AddLoginUserParam.java

@@ -35,4 +35,7 @@ public class AddLoginUserParam {
     @NotEmpty(message = "请选择角色")
     @ApiModelProperty("角色id list")
     List<String> roleList;
+
+    @ApiModelProperty(value = "机器列表")
+    private String equipmentIds;
 }

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

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

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

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

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

@@ -0,0 +1,16 @@
+package com.szwl.service;
+
+import com.szwl.model.entity.TApkInfo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 安卓App版本 服务类
+ * </p>
+ *
+ * @author wuhs
+ * @since 2022-07-04
+ */
+public interface TApkInfoService extends IService<TApkInfo> {
+
+}

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

@@ -1,8 +1,12 @@
 package com.szwl.service;
 
+import com.alibaba.fastjson.JSONArray;
 import com.szwl.model.entity.TJoinpayMch;
 import com.szwl.service.base.MyIService;
 
+import java.io.UnsupportedEncodingException;
+import java.math.BigDecimal;
+
 /**
  * <p>
  * 汇聚支付用户收款信息表 服务类
@@ -16,4 +20,11 @@ public interface TJoinpayMchService extends MyIService<TJoinpayMch> {
     String createMch(TJoinpayMch tJoinpayMch);
 
     String updateMch(TJoinpayMch mch);
+
+    public String uniPay(String sn , BigDecimal amount , String productName , String productDesc ,
+                         String commonParameter , String returnUrl , String notifyUrl , String frpCode ,
+                         String isShowPic , String openId , String authCode , String appid , String transactionModel , String tradeMerchantNo ,
+                         String buyerId , String isAlt , String altType , JSONArray altInfo , String altUrl , BigDecimal marketingAmount) throws UnsupportedEncodingException;
+
+
 }

+ 17 - 0
src/main/java/com/szwl/service/TLabelService.java

@@ -0,0 +1,17 @@
+package com.szwl.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.szwl.model.entity.TLabel;
+import com.szwl.model.entity.TPrice;
+
+/**
+ * <p>
+ * (如一个优惠码多少钱) 服务类
+ * </p>
+ *
+ * @author wuhs
+ * @since 2022-06-30
+ */
+public interface TLabelService extends IService<TLabel> {
+
+}

+ 9 - 0
src/main/java/com/szwl/service/TOrderService.java

@@ -3,6 +3,7 @@ package com.szwl.service;
 import com.szwl.model.entity.TOrder;
 import com.szwl.service.base.MyIService;
 
+import java.math.BigDecimal;
 import java.util.Map;
 
 /**
@@ -16,4 +17,12 @@ import java.util.Map;
 public interface TOrderService extends MyIService<TOrder> {
 
     Double getAreaPrice(Map<String, Object> params);
+    /**
+     * 生成订单号
+     */
+    String initSn(Long equipmentId);
+
+    Object initRefundSn(Long equipmentId);
+
+    String refund(String sn, Object o, BigDecimal price, String s, String notifyUrl, String s1);
 }

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

@@ -0,0 +1,16 @@
+package com.szwl.service;
+
+import com.szwl.model.entity.TPrice;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 金额表(如一个优惠码多少钱) 服务类
+ * </p>
+ *
+ * @author wuhs
+ * @since 2022-06-30
+ */
+public interface TPriceService extends IService<TPrice> {
+
+}

+ 4 - 0
src/main/java/com/szwl/service/TShandeMchService.java

@@ -3,6 +3,9 @@ package com.szwl.service;
 import com.szwl.model.entity.TShandeMch;
 import com.szwl.service.base.MyIService;
 
+import java.io.UnsupportedEncodingException;
+import java.math.BigDecimal;
+
 /**
  * <p>
  * 杉德支付收款信息 服务类
@@ -13,4 +16,5 @@ import com.szwl.service.base.MyIService;
  */
 public interface TShandeMchService extends MyIService<TShandeMch> {
 
+    public String refund(Long id , String refundSn , BigDecimal refundAmount , String refundReason , String altRefInfo) throws UnsupportedEncodingException;
 }

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

@@ -0,0 +1,16 @@
+package com.szwl.service;
+
+import com.szwl.model.entity.TTimeRule;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 广告规则 服务类
+ * </p>
+ *
+ * @author wuhs
+ * @since 2022-07-05
+ */
+public interface TTimeRuleService extends IService<TTimeRule> {
+
+}

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

@@ -0,0 +1,20 @@
+package com.szwl.service.impl;
+
+import com.szwl.model.entity.TAd;
+import com.szwl.mapper.TAdMapper;
+import com.szwl.service.TAdService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author wuhs
+ * @since 2022-07-05
+ */
+@Service
+public class TAdServiceImpl extends ServiceImpl<TAdMapper, TAd> implements TAdService {
+
+}

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

@@ -0,0 +1,20 @@
+package com.szwl.service.impl;
+
+import com.szwl.model.entity.TAdminEquipment;
+import com.szwl.mapper.TAdminEquipmentMapper;
+import com.szwl.service.TAdminEquipmentService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author wuhs
+ * @since 2022-07-04
+ */
+@Service
+public class TAdminEquipmentServiceImpl extends ServiceImpl<TAdminEquipmentMapper, TAdminEquipment> implements TAdminEquipmentService {
+
+}

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

@@ -0,0 +1,20 @@
+package com.szwl.service.impl;
+
+import com.szwl.model.entity.TApkInfo;
+import com.szwl.mapper.TApkInfoMapper;
+import com.szwl.service.TApkInfoService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 安卓App版本 服务实现类
+ * </p>
+ *
+ * @author wuhs
+ * @since 2022-07-04
+ */
+@Service
+public class TApkInfoServiceImpl extends ServiceImpl<TApkInfoMapper, TApkInfo> implements TApkInfoService {
+
+}

+ 105 - 1
src/main/java/com/szwl/service/impl/TJoinpayMchServiceImpl.java

@@ -1,10 +1,16 @@
 package com.szwl.service.impl;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.szwl.feign.bean.PayFeign;
+import com.szwl.mapper.TShandeMchMapper;
 import com.szwl.model.bo.JoinpayConstant;
+import com.szwl.model.bo.R;
 import com.szwl.model.entity.TJoinpayMch;
 import com.szwl.mapper.TJoinpayMchMapper;
 import com.szwl.model.entity.TJoinpayMchCheck;
+import com.szwl.model.entity.TOrder;
+import com.szwl.model.entity.TShandeMch;
 import com.szwl.model.utils.AESUtil;
 import com.szwl.model.utils.Constant;
 import com.szwl.model.utils.HttpClientUtils;
@@ -12,9 +18,17 @@ import com.szwl.model.utils.RSAUtil;
 import com.szwl.service.TJoinpayMchService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.http.message.BasicNameValuePair;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
 import java.util.*;
 
 /**
@@ -27,7 +41,10 @@ import java.util.*;
  */
 @Service
 public class TJoinpayMchServiceImpl extends ServiceImpl<TJoinpayMchMapper, TJoinpayMch> implements TJoinpayMchService {
-
+    @Autowired
+    PayFeign payFeign;
+    @Autowired
+    TShandeMchMapper shandeMchMapper;
     @Override
     public String createMch(TJoinpayMch mch) {
 
@@ -345,4 +362,91 @@ public class TJoinpayMchServiceImpl extends ServiceImpl<TJoinpayMchMapper, TJoin
         String sign = DigestUtils.md5Hex(sb.toString());
         return sign;
     }
+
+
+
+    @Override
+    public String uniPay(String sn, BigDecimal amount, String productName, String productDesc, String commonParameter,
+                         String returnUrl, String notifyUrl, String frpCode, String isShowPic, String openId, String authCode,
+                         String appid, String transactionModel, String tradeMerchantNo, String buyerId, String isAlt, String altType,
+                         JSONArray altInfo, String altUrl, BigDecimal marketingAmount) throws UnsupportedEncodingException {
+
+        String url = "https://www.joinpay.com/trade/uniPayApi.action";
+
+
+        List<BasicNameValuePair> data = new ArrayList<BasicNameValuePair>();
+
+
+
+        data.add(new BasicNameValuePair("p0_Version", JoinpayConstant.pay_version));
+        data.add(new BasicNameValuePair("p1_MerchantNo", JoinpayConstant.mch_no));
+        data.add(new BasicNameValuePair("p2_OrderNo", sn));
+        data.add(new BasicNameValuePair("p3_Amount", amount.setScale(2, RoundingMode.HALF_DOWN).toString()));
+        data.add(new BasicNameValuePair("p4_Cur", JoinpayConstant.Cur_RMB));
+        data.add(new BasicNameValuePair("p5_ProductName", URLEncoder.encode(productName, "utf-8")));
+        data.add(new BasicNameValuePair("p6_ProductDesc", URLEncoder.encode(productDesc, "utf-8")));
+        data.add(new BasicNameValuePair("p7_Mp", URLEncoder.encode(commonParameter, "utf-8")));
+        data.add(new BasicNameValuePair("p8_ReturnUrl", returnUrl));
+        data.add(new BasicNameValuePair("p9_NotifyUrl", notifyUrl));
+        data.add(new BasicNameValuePair("q1_FrpCode", frpCode));
+        data.add(new BasicNameValuePair("q2_MerchantBankCode", ""));
+        data.add(new BasicNameValuePair("q4_IsShowPic", isShowPic));
+        data.add(new BasicNameValuePair("q5_OpenId", openId));
+        data.add(new BasicNameValuePair("q6_AuthCode", authCode));
+        data.add(new BasicNameValuePair("q7_AppId", appid));
+        data.add(new BasicNameValuePair("q8_TerminalNo", ""));
+        data.add(new BasicNameValuePair("q9_TransactionModel", transactionModel));
+        if(!StringUtils.isEmpty(tradeMerchantNo)){
+            data.add(new BasicNameValuePair("qa_TradeMerchantNo",tradeMerchantNo));
+        }
+//        data.add(new BasicNameValuePair("qa_TradeMerchantNo", tradeMerchantNo));
+        data.add(new BasicNameValuePair("qb_buyerId", buyerId));
+        data.add(new BasicNameValuePair("qc_IsAlt", isAlt));
+        data.add(new BasicNameValuePair("qd_AltType", altType));
+        data.add(new BasicNameValuePair("qe_AltInfo", altInfo==null?null:altInfo.toString()));
+        data.add(new BasicNameValuePair("qf_AltUrl", altUrl));
+
+        data.add(new BasicNameValuePair("qg_MarketingAmount", marketingAmount==null?null:marketingAmount.setScale(2, RoundingMode.HALF_DOWN).toString()));
+
+        // TODO: 2019-04-01  空值不参与签名!!!!!!!!!!!!!!!!!!
+
+
+        String hmac = createHmacSign(data, JoinpayConstant.key);
+        data.add(new BasicNameValuePair("hmac", hmac));
+//        logger.info("请求参数:" + data);
+
+        String result = HttpClientUtils.postKeyValue(url, data);
+//        logger.info("响应参数:" + result);
+
+
+        return result;
+    }
+
+    /**
+     * 签名算法sign , hmac 签名
+     *
+     * @param data
+     * @return
+     */
+    public static String createHmacSign( List<BasicNameValuePair> data , String key) throws UnsupportedEncodingException {
+
+        StringBuffer sb = new StringBuffer();
+        Iterator<BasicNameValuePair> es = data.iterator();
+        while (es.hasNext()) {
+            BasicNameValuePair entry = (BasicNameValuePair) es.next();
+            String k = (String) entry.getName();
+            String v = (String) entry.getValue();
+            if (null != v && !"".equals(v) && !"sign".equals(k) && !"key".equals(k)) {
+                sb.append(URLDecoder.decode(String.valueOf(v), "utf-8"));
+            }
+        }
+
+        sb.append(key);
+//        logger.info("签名字符串:" + sb.toString());
+        String sign = DigestUtils.md5Hex(sb.toString());
+        return sign;
+    }
+
+
+
 }

+ 23 - 0
src/main/java/com/szwl/service/impl/TLabelServiceImpl.java

@@ -0,0 +1,23 @@
+package com.szwl.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.szwl.mapper.TLabelMapper;
+import com.szwl.mapper.TPriceMapper;
+import com.szwl.model.entity.TLabel;
+import com.szwl.model.entity.TPrice;
+import com.szwl.service.TLabelService;
+import com.szwl.service.TPriceService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 金额表(如一个优惠码多少钱) 服务实现类
+ * </p>
+ *
+ * @author wuhs
+ * @since 2022-06-30
+ */
+@Service
+public class TLabelServiceImpl extends ServiceImpl<TLabelMapper, TLabel> implements TLabelService {
+
+}

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

@@ -1,13 +1,24 @@
 package com.szwl.service.impl;
 
+import com.szwl.model.bo.JoinpayConstant;
 import com.szwl.model.entity.TOrder;
 import com.szwl.mapper.TOrderMapper;
+import com.szwl.model.utils.Constant;
+import com.szwl.model.utils.HttpClientUtils;
 import com.szwl.service.TOrderService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.codec.digest.DigestUtils;
+import org.apache.http.message.BasicNameValuePair;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Map;
+import java.io.UnsupportedEncodingException;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.net.URLDecoder;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 /**
  * <p>
@@ -25,4 +36,105 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
     public Double getAreaPrice(Map<String, Object> params) {
         return tOrderMapper.getAreaPrice(params);
     }
+
+    @Override
+    @Transactional
+    public synchronized String initSn(Long equipmentId) {
+        StringBuilder number = new StringBuilder();
+        if (equipmentId != null) {
+            Random random = new Random();
+            /**
+             * 6位随机
+             */
+            for (int i = 0; i < 6; i++) {
+                number.append(String.valueOf(random.nextInt(10)));
+            }
+            /**
+             * 设备id
+             */
+            number.append(equipmentId.toString());
+            /**
+             * 日期
+             */
+            number.append(new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()));
+        }
+        return number.toString();
+    }
+
+    @Override
+    public Object initRefundSn(Long equipmentId) {
+        StringBuilder number = new StringBuilder();
+        if (equipmentId != null) {
+            Random random = new Random();
+            /**
+             * 6位随机
+             */
+            for (int i = 0; i < 6; i++) {
+                number.append(String.valueOf(random.nextInt(10)));
+            }
+            /**
+             * 设备id
+             */
+            number.append(equipmentId.toString());
+            /**
+             * 日期
+             */
+            number.append(new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()));
+        }
+        return "r" + number.toString();
+    }
+    @Override
+    public String refund(String sn , Object refundSn  , BigDecimal refundAmount , String refundReason , String notifyUrl , String altRefInfo ) {
+        String url = "https://www.joinpay.com/trade/refund.action";
+
+        List<BasicNameValuePair> data = new ArrayList<BasicNameValuePair>();
+
+        data.add(new BasicNameValuePair("p1_MerchantNo", JoinpayConstant.mch_no));
+        data.add(new BasicNameValuePair("p2_OrderNo", sn));
+        data.add(new BasicNameValuePair("p3_RefundOrderNo", refundSn.toString()));
+        data.add(new BasicNameValuePair("p4_RefundAmount", refundAmount.setScale(2, RoundingMode.HALF_DOWN).toString()));
+        data.add(new BasicNameValuePair("p5_RefundReason", refundReason));
+        data.add(new BasicNameValuePair("p6_NotifyUrl", notifyUrl));
+        data.add(new BasicNameValuePair("p7_AltRefInfo", altRefInfo==null?null:altRefInfo.toString()));
+
+        // TODO: 2019-04-01  空值不参与签名!!!!!!!!!!!!!!!!!!
+
+
+        String hmac = null;
+        try {
+            hmac = createHmacSign(data, JoinpayConstant.key);
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
+        data.add(new BasicNameValuePair("hmac", hmac));
+
+
+        String result = HttpClientUtils.postKeyValue(url, data);
+
+
+        return Constant.correct_code;
+    }
+    /**
+     * 签名算法sign , hmac 签名
+     *
+     * @param data
+     * @return
+     */
+    public static String createHmacSign( List<BasicNameValuePair> data , String key) throws UnsupportedEncodingException {
+
+        StringBuffer sb = new StringBuffer();
+        Iterator<BasicNameValuePair> es = data.iterator();
+        while (es.hasNext()) {
+            BasicNameValuePair entry = (BasicNameValuePair) es.next();
+            String k = (String) entry.getName();
+            String v = (String) entry.getValue();
+            if (null != v && !"".equals(v) && !"sign".equals(k) && !"key".equals(k)) {
+                sb.append(URLDecoder.decode(String.valueOf(v), "utf-8"));
+            }
+        }
+
+        sb.append(key);
+        String sign = DigestUtils.md5Hex(sb.toString());
+        return sign;
+    }
 }

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

@@ -0,0 +1,20 @@
+package com.szwl.service.impl;
+
+import com.szwl.model.entity.TPrice;
+import com.szwl.mapper.TPriceMapper;
+import com.szwl.service.TPriceService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 金额表(如一个优惠码多少钱) 服务实现类
+ * </p>
+ *
+ * @author wuhs
+ * @since 2022-06-30
+ */
+@Service
+public class TPriceServiceImpl extends ServiceImpl<TPriceMapper, TPrice> implements TPriceService {
+
+}

File diff suppressed because it is too large
+ 152 - 1
src/main/java/com/szwl/service/impl/TShandeMchServiceImpl.java


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

@@ -0,0 +1,20 @@
+package com.szwl.service.impl;
+
+import com.szwl.model.entity.TTimeRule;
+import com.szwl.mapper.TTimeRuleMapper;
+import com.szwl.service.TTimeRuleService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 广告规则 服务实现类
+ * </p>
+ *
+ * @author wuhs
+ * @since 2022-07-05
+ */
+@Service
+public class TTimeRuleServiceImpl extends ServiceImpl<TTimeRuleMapper, TTimeRule> implements TTimeRuleService {
+
+}

+ 1 - 0
src/main/resources/bootstrap.yml

@@ -66,6 +66,7 @@ spring:
       commandTimeout: 50000
       #集群配置
       nodes: 10.0.0.153:7000,10.0.0.153:7001,10.0.0.152:7001,10.0.0.152:7000,10.0.0.155:7001,10.0.0.155:7000
+#      nodes: 47.112.127.131:7000,47.112.127.131:7001,112.74.63.148:7001,112.74.63.148:7000,120.78.140.173:7001,120.78.140.173:7000
       pool:
         # 连接池最大连接数(使用负值表示没有限制)
         max-active: 5000

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

@@ -47,7 +47,7 @@ class AutoGeneratorTests {
 		strategyConfig
 //				.setCapitalMode(true)//设置全局大写命名
 				.setInclude(new String[]{
-						"audit_log"
+						""
 				})//只会生成该表
 				.setEntityLombokModel(true)//实体类生成之后自动添加lombok注解
 				.setNaming(NamingStrategy.underline_to_camel)//数据库表映射到实体的命名策略