李天标 2 年 前
コミット
7977b12fcf
24 ファイル変更837 行追加100 行削除
  1. 2 2
      src/main/java/com/szwl/aspect/MyWebMvcConfigurer.java
  2. 2 2
      src/main/java/com/szwl/controller/ADIndexController.java
  3. 8 1
      src/main/java/com/szwl/controller/AlarmClockIndexController.java
  4. 24 1
      src/main/java/com/szwl/controller/ApkInfoController.java
  5. 73 2
      src/main/java/com/szwl/controller/IndexController.java
  6. 1 1
      src/main/java/com/szwl/controller/SugarDoOrderController.java
  7. 4 1
      src/main/java/com/szwl/controller/TAdController.java
  8. 1 0
      src/main/java/com/szwl/controller/TAdminController.java
  9. 24 23
      src/main/java/com/szwl/controller/TAlarmClockController.java
  10. 23 0
      src/main/java/com/szwl/controller/TApkInfoController.java
  11. 33 34
      src/main/java/com/szwl/controller/TEquipmentController.java
  12. 4 1
      src/main/java/com/szwl/controller/TJoinpayMchController.java
  13. 367 3
      src/main/java/com/szwl/controller/TOrderController.java
  14. 27 14
      src/main/java/com/szwl/controller/TPromoCodeController.java
  15. 2 2
      src/main/java/com/szwl/controller/TProportionController.java
  16. 43 0
      src/main/java/com/szwl/controller/TTimeRuleController.java
  17. 2 2
      src/main/java/com/szwl/model/bo/JoinpayConstant.java
  18. 5 0
      src/main/java/com/szwl/model/entity/TEquipment.java
  19. 7 1
      src/main/java/com/szwl/model/entity/TEquipmentDesc.java
  20. 3 0
      src/main/java/com/szwl/model/entity/TOrder.java
  21. 3 0
      src/main/java/com/szwl/model/entity/TTimeRule.java
  22. 11 0
      src/main/java/com/szwl/service/TJoinpayMchService.java
  23. 165 2
      src/main/java/com/szwl/service/impl/TJoinpayMchServiceImpl.java
  24. 3 8
      src/main/java/com/szwl/service/impl/TMessageCodeServiceImpl.java

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

@@ -20,8 +20,8 @@ public class MyWebMvcConfigurer extends WebMvcConfigurationSupport {
     public void addInterceptors(InterceptorRegistry registry) {
         // 自定义去除的路径
         String[] myExcludes= {"/tAdmin/login","/tAdmin/save","/tAdmin/updatePassword","/tMessageCode/**","/tJoinpayMch/**","/tLogo/**",
-                "/tProportion/**","/tProduct/**","/tPromoCode/**", "/tProportionCheck/**", "/tProduct/selectProductList",  "/rabbitMqController/**","/tJoinpayMchCheck/**","/indexController/**","/sysRoleMenu/**",
-                "/tEquipmentApply/**","/tEquipment/**","/api/**","/tOrder/**","/tNotice/**","/tParameters/**",
+                "/tProportion/**","/tProduct/**","/tPromoCode/**", "/tApkInfo/**", "/tProduct/selectProductList",  "/tApkInfo/**","/tJoinpayMchCheck/**","/indexController/**","/sysRoleMenu/**",
+                "/tEquipmentApply/**","/tEquipment/**","/api/**","/tOrder/**","/tAlarmClock/**","/tNotice/**","/tParameters/**",
                 "/tLabel/**","/tArea/**","/error"};
         registry.addInterceptor(headTokenInterceptor).addPathPatterns("/**")
                 // swagger

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

@@ -204,7 +204,7 @@ public class ADIndexController {
         return "修改成功";
     }
     /**
-     * 获取时间规则
+     *
      *
      * @param
      * @return
@@ -216,7 +216,7 @@ public class ADIndexController {
         return JsonMessage.success(hasKey);
     }
     /**
-     * 获取时间规则
+     *
      *
      * @param
      * @return

+ 8 - 1
src/main/java/com/szwl/controller/AlarmClockIndexController.java

@@ -3,10 +3,12 @@ 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.entity.TAlarmClock;
 import com.szwl.model.entity.TAlarmClockItem;
 import com.szwl.model.entity.TEquipment;
 import com.szwl.model.utils.JsonUtils;
 import com.szwl.service.TAlarmClockItemService;
+import com.szwl.service.TAlarmClockService;
 import com.szwl.service.TEquipmentService;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -26,6 +28,8 @@ public class AlarmClockIndexController  {
     private TEquipmentService equipmentService;
     @Autowired
     private TAlarmClockItemService alarmClockItemService;
+    @Autowired
+    private TAlarmClockService alarmClockService;
 
     /**
      *
@@ -51,7 +55,10 @@ public class AlarmClockIndexController  {
                 JSONObject jsonObject = new JSONObject();
                 List<String> li = new ArrayList<>();
                 for (TAlarmClockItem alarmClockItem:list2){
-                    li.add(alarmClockItem.getWeek()+":"+alarmClockItem.getHour());
+                    TAlarmClock alarmClock = alarmClockService.getById(alarmClockItem.getClockId());
+                    if(alarmClock!=null&&alarmClock.getId()!=null&&alarmClock.getHour().equals(alarmClockItem.getHour())){
+                        li.add(alarmClockItem.getWeek()+":"+alarmClockItem.getHour());
+                    }
                 }
                 jsonObject.put("data", JsonUtils.toJson(li));
 //                return JsonMessage.success(jsonObject);

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

@@ -11,11 +11,14 @@ 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.model.utils.PushUtils;
 import com.szwl.service.TApkInfoService;
+import com.szwl.service.TEquipmentService;
 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.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.annotation.Resource;
@@ -29,7 +32,8 @@ import java.util.List;
 public class ApkInfoController {
     @Autowired
     TApkInfoService tApkInfoService;
-
+    @Autowired
+    TEquipmentService equipmentService;
     /**
      * 获得最新的更新数据
      *
@@ -77,4 +81,23 @@ public class ApkInfoController {
         }
         return "没有版本数据";
     }
+    /**
+     * 系统自动更新
+     *
+     * @param clientId
+     * @return
+     */
+    @RequestMapping(value = "/updateApk", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
+    @ResponseBody
+    public String separate(String clientId,String url) {
+        LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
+        query.eq(TEquipment::getClientId,clientId);
+        List<TEquipment> list = equipmentService.list(query);
+        TEquipment equipment = list.get(0);
+        if (equipment == null) {
+            return "该设备不存在";
+        }
+        equipmentService.sentMessage(clientId, PushUtils.buildJson("updateApk", url).toString());
+        return "推送成功";
+    }
 }

+ 73 - 2
src/main/java/com/szwl/controller/IndexController.java

@@ -26,6 +26,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.*;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
@@ -54,6 +55,8 @@ public class IndexController { ;
     @Autowired
     TParametersService parametersService;
     @Autowired
+    TPriceService priceService;
+    @Autowired
     TPromoCodeService promoCodeService;
     @ApiOperation(value = "心跳")
 //    @PostMapping("/heart.htm")
@@ -1010,7 +1013,42 @@ public class IndexController { ;
 //        return JsonMessage.success("修改成功");
         return "修改成功";
     }
-
+    /**
+     * 上传机器的apk版本
+     */
+    @RequestMapping(value = "/sendApkVersion.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
+    @ResponseBody
+    public String sendApkVersion(String clientId, String apkVersion) {
+        LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
+        query.eq(TEquipment::getClientId,clientId);
+        List<TEquipment> list = equipmentService.list(query);
+        TEquipment equipment = list.get(0);
+        if (equipment == null) {
+            return "该设备不存在";
+        }
+        equipment.setApkVersion(apkVersion);
+        equipmentService.updateById(equipment);
+        return "success";
+    }
+    /**
+     * 上传机器的做糖状态
+     */
+    @RequestMapping(value = "/equipmentStatus.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
+    @ResponseBody
+    public String equipmentStatus(String clientId, String status) {
+        LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
+        query.eq(TEquipment::getClientId,clientId);
+        List<TEquipment> list = equipmentService.list(query);
+        TEquipment equipment = list.get(0);
+        if (equipment == null) {
+            return "该设备不存在";
+        }
+        TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
+        //机器状态;0:空闲,1:在做糖;
+        equipmentDesc.setStatus(status);
+        equipmentDescService.updateById(equipmentDesc);
+        return "success";
+    }
     /**
      * 修改设备状态
      *
@@ -1679,6 +1717,28 @@ public class IndexController { ;
         return "error";
     }
     /**
+     *修改优惠券开关状态
+     *
+     * @param clientId
+
+     * @return
+     */
+    @GetMapping(value = "/updateCouponStatus.htm")
+    @ResponseBody
+    public String updateCouponStatus(String clientId,String couponStatus){
+        if(!StringUtils.isEmpty(clientId)&&StringUtils.isNotEmpty(couponStatus)){
+            LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
+            query.eq(TEquipment::getClientId,clientId);
+            List<TEquipment> list = equipmentService.list(query);
+            TEquipment equipment = list.get(0);
+            TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
+            equipmentDesc.setCouponStatus(couponStatus);
+            equipmentDescService.updateById(equipmentDesc);
+            return "success";
+        }
+        return "error";
+    }
+    /**
      *
      *
      * @param clientId
@@ -1688,7 +1748,16 @@ public class IndexController { ;
     @GetMapping(value = "/getYouHuiPrice.htm")
     @ResponseBody
     public String getYouHuiPrice(String clientId){
-        return "5";
+        LambdaQueryWrapper<TPrice> query = Wrappers.lambdaQuery();
+        query.eq(TPrice::getName,"优惠券");
+        List<TPrice> list = priceService.list(query);
+        if(list.size()>0){
+            TPrice tPrice = list.get(0);
+            Double price = tPrice.getPrice();
+            return new BigDecimal(price).setScale(0, RoundingMode.HALF_DOWN).toString();
+        }else {
+            return "5";
+        }
     }
 
     /**
@@ -1718,5 +1787,7 @@ public class IndexController { ;
 
         return "更新失败error";
     }
+
+
 }
 

+ 1 - 1
src/main/java/com/szwl/controller/SugarDoOrderController.java

@@ -41,7 +41,7 @@ public class SugarDoOrderController {
 
 
     //远程做糖状态回返
-    @RequestMapping(value = "/updateSugarDoStatus", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
+    @RequestMapping(value = "/updateSugarDoStatus.htm", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
     @ResponseBody
     public String updateSugarDoStatus(String clientId,  String status, String no,String note) {
         if(!StringUtils.isEmpty(no)&&!StringUtils.isEmpty(status)){

+ 4 - 1
src/main/java/com/szwl/controller/TAdController.java

@@ -64,7 +64,7 @@ public class TAdController {
         return R.ok(list);
     }
     @GetMapping("/getAdList")
-    public ResponseModel<?> getAdList(String type,String userName,String screenType) {
+    public ResponseModel<?> getAdList(String type,String userName,String name,String screenType) {
         LambdaQueryWrapper<TAd> query = Wrappers.lambdaQuery();
         if(StringUtils.isNotEmpty(type)){
             query.eq(TAd::getEquipmentType,type);
@@ -72,6 +72,9 @@ public class TAdController {
         if(StringUtils.isNotEmpty(userName)){
             query.eq(TAd::getUsername,userName);
         }
+        if(StringUtils.isNotEmpty(name)){
+            query.eq(TAd::getName,name);
+        }
         if(StringUtils.isNotEmpty(screenType)){
             query.eq(TAd::getScreenType,screenType);
         }

+ 1 - 0
src/main/java/com/szwl/controller/TAdminController.java

@@ -557,6 +557,7 @@ public class TAdminController {
                 query.eq(TAdmin::getRelationAdminId,id);
             }
         }
+        query.eq(TAdmin::getType,"2");
         query.orderByDesc(TAdmin::getCreateDate);
         Page<TAdmin> page = new Page<>(current, size, true);
         IPage<TAdmin> iPage = tAdminService.page(page, query);

+ 24 - 23
src/main/java/com/szwl/controller/TAlarmClockController.java

@@ -120,6 +120,7 @@ public class TAlarmClockController {
                     .body(new ResultMessage().setCode(false).setData(null).setMessage("数据为空"));
         }
         TAlarmClock tAlarmClock = tAlarmClockService.getById(alarmClock.getId());
+        tAlarmClock.setWeek(tAlarmClock.getWeek().substring(0,tAlarmClock.getWeek().length()-1));
         return ResponseEntity.status(HttpStatus.OK)
                 .body(new ResultMessage().setCode(true).setData(tAlarmClock).setMessage("SUCCESS"));
     }
@@ -155,10 +156,10 @@ public class TAlarmClockController {
                 String oldAlarmClockType = oldAlarmClock.getType();
                 oldAlarmClock.setType(alarmClock.getType());
                 String oldEquipmentIds = oldAlarmClock.getEquipmentIds();
-                oldAlarmClock.setEquipmentIds(alarmClock.getEquipmentIds());
+                oldAlarmClock.setEquipmentIds(alarmClock.getEquipmentIds()+",");
                 oldAlarmClock.setModifyDate(new Date());
-                oldAlarmClock.setHour(alarmClock.getHour());
-                oldAlarmClock.setWeek(alarmClock.getWeek());
+                oldAlarmClock.setHour(alarmClock.getHour()+":00");
+                oldAlarmClock.setWeek(alarmClock.getWeek()+",");
                 tAlarmClockService.updateById(oldAlarmClock);
                 //删除其对应的单个机器的数据
                 LambdaQueryWrapper<TAlarmClockItem> query = Wrappers.lambdaQuery();
@@ -178,7 +179,7 @@ public class TAlarmClockController {
             }else{
                 //没有修改了类型  判断机器有没有做改变
                 String oldEquipmentIds = oldAlarmClock.getEquipmentIds();
-                String nowEquipmentIds = alarmClock.getEquipmentIds();
+                String nowEquipmentIds = alarmClock.getEquipmentIds()+",";
                 Boolean b = changIds(oldEquipmentIds,nowEquipmentIds);
                 //b=true 机器改变  b=false 机器没有改变
                 if(b){
@@ -188,8 +189,8 @@ public class TAlarmClockController {
                     oldAlarmClock.setStatus(alarmClock.getStatus());
                     oldAlarmClock.setEquipmentIds(oldAlarmClock.getEquipmentIds());
                     oldAlarmClock.setModifyDate(new Date());
-                    oldAlarmClock.setHour(alarmClock.getHour());
-                    oldAlarmClock.setWeek(alarmClock.getWeek());
+                    oldAlarmClock.setHour(alarmClock.getHour()+":00");
+                    oldAlarmClock.setWeek(alarmClock.getWeek()+",");
                     tAlarmClockService.updateById(oldAlarmClock);
                     //删除其对应的单个机器的数据
 
@@ -210,14 +211,14 @@ public class TAlarmClockController {
                 }else{
                     //b=false 机器没有改变  修改了状态  没有修改了类型
                     //判断星期有没有改变
-                    Boolean aBoolean = changIds(oldAlarmClock.getWeek(), alarmClock.getWeek());
+                    Boolean aBoolean = changIds(oldAlarmClock.getWeek(), alarmClock.getWeek()+",");
                     if(aBoolean){
                         //week星期有改变
                         //修改t_alarm_clock的机器week及删除其对应的单个机器的数据,再重新创建。要把机器通知一遍
                         oldAlarmClock.setStatus(alarmClock.getStatus());
                         oldAlarmClock.setModifyDate(new Date());
-                        oldAlarmClock.setHour(alarmClock.getHour());
-                        oldAlarmClock.setWeek(alarmClock.getWeek());
+                        oldAlarmClock.setHour(alarmClock.getHour()+":00");
+                        oldAlarmClock.setWeek(alarmClock.getWeek()+",");
                         tAlarmClockService.updateById(oldAlarmClock);
                         //删除其对应的单个机器的数据
 //                        TAlarmClockItemExample itemExample = new TAlarmClockItemExample();
@@ -239,12 +240,12 @@ public class TAlarmClockController {
                     }else {
                         //week星期没有改变  修改了状态  没有修改了类型
                         //判断时间有没有改变
-                        if(!oldAlarmClock.getHour().equals(alarmClock.getHour())){
+                        if(!oldAlarmClock.getHour().equals(alarmClock.getHour()+":00")){
                             //有改变
                             //修改t_alarm_clock的机器hour及删除其对应的单个机器的数据,再重新创建。要把机器通知一遍
                             oldAlarmClock.setStatus(alarmClock.getStatus());
                             oldAlarmClock.setModifyDate(new Date());
-                            oldAlarmClock.setHour(alarmClock.getHour());
+                            oldAlarmClock.setHour(alarmClock.getHour()+":00");
                             tAlarmClockService.updateById(oldAlarmClock);
                             //删除其对应的单个机器的数据
 //                            TAlarmClockItemExample itemExample = new TAlarmClockItemExample();
@@ -301,10 +302,10 @@ public class TAlarmClockController {
                 String oldAlarmClockType = oldAlarmClock.getType();
                 oldAlarmClock.setType(alarmClock.getType());
                 String oldEquipmentIds = oldAlarmClock.getEquipmentIds();
-                oldAlarmClock.setEquipmentIds(alarmClock.getEquipmentIds());
+                oldAlarmClock.setEquipmentIds(alarmClock.getEquipmentIds()+",");
                 oldAlarmClock.setModifyDate(new Date());
-                oldAlarmClock.setHour(alarmClock.getHour());
-                oldAlarmClock.setWeek(alarmClock.getWeek());
+                oldAlarmClock.setHour(alarmClock.getHour()+":00");
+                oldAlarmClock.setWeek(alarmClock.getWeek()+",");
                 tAlarmClockService.updateById(oldAlarmClock);
                 //删除其对应的单个机器的数据
 //                TAlarmClockItemExample itemExample = new TAlarmClockItemExample();
@@ -328,17 +329,17 @@ public class TAlarmClockController {
             }else{
                 //没有修改类型  判断机器有没有做改变
                 String oldEquipmentIds = oldAlarmClock.getEquipmentIds();
-                String nowEquipmentIds = alarmClock.getEquipmentIds();
+                String nowEquipmentIds = alarmClock.getEquipmentIds()+",";
                 Boolean b = changIds(oldEquipmentIds,nowEquipmentIds);
                 //b=true 机器改变  b=false 机器没有改变
                 if(b){
                     //b=true 机器改变
                     //修改t_alarm_clock的机器ids及删除其对应的单个机器的数据,再重新创建。要把改变前和改变后的机器都通知一遍
                     //修改类型t_alarm_clock的机器ids
-                    oldAlarmClock.setEquipmentIds(alarmClock.getEquipmentIds());
+                    oldAlarmClock.setEquipmentIds(alarmClock.getEquipmentIds()+",");
                     oldAlarmClock.setModifyDate(new Date());
-                    oldAlarmClock.setHour(alarmClock.getHour());
-                    oldAlarmClock.setWeek(alarmClock.getWeek());
+                    oldAlarmClock.setHour(alarmClock.getHour()+":00");
+                    oldAlarmClock.setWeek(alarmClock.getWeek()+",");
                     tAlarmClockService.updateById(oldAlarmClock);
                     //删除其对应的单个机器的数据
 //                    TAlarmClockItemExample itemExample = new TAlarmClockItemExample();
@@ -362,14 +363,14 @@ public class TAlarmClockController {
                 }else{
                     //b=false 机器没有改变 没有修改状态 没有修改类型
                     //判断星期有没有改变
-                    Boolean aBoolean = changIds(oldAlarmClock.getWeek(), alarmClock.getWeek());
+                    Boolean aBoolean = changIds(oldAlarmClock.getWeek(), alarmClock.getWeek()+",");
                     if(aBoolean){
                         //week星期有改变
                         //修改t_alarm_clock的机器week及删除其对应的单个机器的数据,再重新创建。要把机器通知一遍
                         oldAlarmClock.setStatus(alarmClock.getStatus());
                         oldAlarmClock.setModifyDate(new Date());
-                        oldAlarmClock.setHour(alarmClock.getHour());
-                        oldAlarmClock.setWeek(alarmClock.getWeek());
+                        oldAlarmClock.setHour(alarmClock.getHour()+":00");
+                        oldAlarmClock.setWeek(alarmClock.getWeek()+",");
                         tAlarmClockService.updateById(oldAlarmClock);
                         //删除其对应的单个机器的数据
 //                        TAlarmClockItemExample itemExample = new TAlarmClockItemExample();
@@ -391,12 +392,12 @@ public class TAlarmClockController {
                     }else {
                         //week星期没有改变  修改了状态  没有修改了类型
                         //判断时间有没有改变
-                        if(!oldAlarmClock.getHour().equals(alarmClock.getHour())){
+                        if(!oldAlarmClock.getHour().equals(alarmClock.getHour()+":00")){
                             //有改变
                             //修改t_alarm_clock的机器hour及删除其对应的单个机器的数据,再重新创建。要把机器通知一遍
                             oldAlarmClock.setStatus(alarmClock.getStatus());
                             oldAlarmClock.setModifyDate(new Date());
-                            oldAlarmClock.setHour(alarmClock.getHour());
+                            oldAlarmClock.setHour(alarmClock.getHour()+":00");
                             tAlarmClockService.updateById(oldAlarmClock);
                             //删除其对应的单个机器的数据
 //                            TAlarmClockItemExample itemExample = new TAlarmClockItemExample();

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

@@ -12,6 +12,7 @@ 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.model.utils.PushUtils;
 import com.szwl.service.TApkInfoService;
 import com.szwl.service.TEquipmentService;
 import io.swagger.annotations.ApiOperation;
@@ -37,6 +38,8 @@ import static com.szwl.constant.ResponseCodesEnum.A0001;
 public class TApkInfoController {
     @Autowired
     TApkInfoService tApkInfoService;
+    @Autowired
+    TEquipmentService equipmentService;
     @GetMapping("/pageApkInfo")
     public ResponseModel<IPage<?>> pagePromoCode(long current, long size ) {
         LambdaQueryWrapper<TApkInfo> query = Wrappers.lambdaQuery();
@@ -86,5 +89,25 @@ public class TApkInfoController {
         }
         return  R.ok(null,"删除成功");
     }
+
+    /**
+     * 系统自动更新
+     *
+     * @param
+     * @return
+     */
+    @GetMapping(value = "/updateApk")
+    @ResponseBody
+    public ResponseModel<?> updateApk(String id,String url) {
+        if(StringUtils.isEmpty(id)&&StringUtils.isEmpty(url)){
+            return  R.fail(A0001,"参数有空");
+        }
+        TEquipment equipment = equipmentService.getById(id);
+        if (equipment == null) {
+            return  R.fail(A0001,"参数错误");
+        }
+        equipmentService.sentMessage(equipment.getClientId(), PushUtils.buildJson("updateApk", url).toString());
+        return  R.ok(null,"推送成功");
+    }
 }
 

+ 33 - 34
src/main/java/com/szwl/controller/TEquipmentController.java

@@ -96,7 +96,7 @@ public class TEquipmentController {
             }
         }
         if(StringUtils.isNotEmpty(clientId)){
-            query.eq(TEquipment::getClientId,clientId);
+            query.like(TEquipment::getClientId,clientId);
         }
         if(StringUtils.isNotEmpty(adminName)&&!adminName.equals("admin")){
             LambdaQueryWrapper<TAdmin> adminQuery = Wrappers.lambdaQuery();
@@ -186,6 +186,10 @@ public class TEquipmentController {
     @PostMapping("/findById")
     public ResponseModel<?> findById(@RequestParam Long id) {
         TEquipment equipment = tEquipmentService.getById(id);
+        TEquipmentDesc equipmentDesc = equipmentDescService.getById(equipment.getId());
+        if(equipmentDesc!=null){
+            equipment.setCouponStatus(equipmentDesc.getCouponStatus());
+        }
         return R.ok(equipment);
     }
     //查找设备
@@ -239,7 +243,12 @@ public class TEquipmentController {
         LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
         TAdmin admin = tAdminService.getById(adminId);
         Integer type = admin.getType();
-        query.eq(TEquipment::getAdminId,adminId);
+        if(type<2){
+            query.eq(TEquipment::getAdminId,238);
+        }else {
+            query.eq(TEquipment::getAdminId,adminId);
+        }
+
             if(type==3){
                 query.eq(TEquipment::getAdminId,adminId);
                 //查找属于这个商家子账户的设备 todo
@@ -362,38 +371,6 @@ public class TEquipmentController {
         tEquipmentService.sentMessage(oldEquipment.getClientId(),PushUtils.buildJson("selfName", oldEquipment.getSelfName()).toString());
         tEquipmentService.sentMessage(oldEquipment.getClientId(),PushUtils.buildJson("pushTimeRule", oldEquipment.getTimeRuleId() + "").toString());
         tEquipmentService.sentMessage(oldEquipment.getClientId(),PushUtils.buildJson("operational", oldEquipment.getOperationalName() + ":" + oldEquipment.getOperationalPhone()).toString());
-//        if(StringUtils.isEmpty(channel)||channel.equals("1")||StringUtils.isEmpty(equimentType)){
-//            //用个推
-////            PushUtils.push(oldEquipment.getGtClientId(), "设备支付方式", "设备支付方式", PushUtils.buildJson("payType", equipment.getPayType().toString() + ":" + equipment.getTimeRuleId()).toString());
-////            PushUtils.push(oldEquipment.getGtClientId(), "", "", PushUtils.buildJson("phone", equipment.getContactName() + ":" + equipment.getContactPhone().toString()).toString());
-////            PushUtils.push(oldEquipment.getGtClientId(), "", "", PushUtils.buildJson("companyPhone", equipment.getCompanyPhone()).toString());
-////            PushUtils.push(oldEquipment.getGtClientId(), "", "", PushUtils.buildJson("plcVersion",  equipment.getPlcVersion()).toString());
-////            PushUtils.push(oldEquipment.getGtClientId(), "", "", PushUtils.buildJson("selfName", equipment.getSelfName()).toString());
-////            PushUtils.push(oldEquipment.getGtClientId(), "", "", PushUtils.buildJson("operational", equipment.getOperationalName() + ":" + equipment.getOperationalPhone()).toString());
-////            PushUtils.push(oldEquipment.getGtClientId(), "", "", PushUtils.buildJson("pushTimeRule", equipment.getTimeRuleId() + "").toString());
-//        }
-//        if(StringUtils.isNotEmpty(channel)&&channel.equals("2")&&StringUtils.isNotEmpty(equimentType)){
-//            //用Mq
-//            //1 创建消息
-//            MessageProperties messageProperties = new MessageProperties();
-//            messageProperties.setContentType("application/json");
-//            messageProperties.setContentEncoding("utf-8");
-//            org.springframework.amqp.core.Message message = new org.springframework.amqp.core.Message(PushUtils.buildJson("payType", equipment.getPayType().toString() + ":" + equipment.getTimeRuleId()).toString().getBytes(), messageProperties);
-//            rabbitTemplate.send(equimentType, clientId, message);
-//            org.springframework.amqp.core.Message message2 = new org.springframework.amqp.core.Message(PushUtils.buildJson("phone", equipment.getContactName() + ":" + equipment.getContactPhone().toString()).toString().getBytes(), messageProperties);
-//            rabbitTemplate.send(equimentType, clientId, message2);
-//            org.springframework.amqp.core.Message message3 = new org.springframework.amqp.core.Message(PushUtils.buildJson("companyPhone", equipment.getCompanyPhone()).toString().getBytes(), messageProperties);
-//            rabbitTemplate.send(equimentType, clientId, message3);
-//            org.springframework.amqp.core.Message message4 = new org.springframework.amqp.core.Message(PushUtils.buildJson("plcVersion",  equipment.getPlcVersion()).toString().getBytes(), messageProperties);
-//            rabbitTemplate.send(equimentType, clientId, message4);
-//            org.springframework.amqp.core.Message message5 = new org.springframework.amqp.core.Message(PushUtils.buildJson("selfName", equipment.getSelfName()).toString().getBytes(), messageProperties);
-//            rabbitTemplate.send(equimentType, clientId, message5);
-//            org.springframework.amqp.core.Message message6 = new org.springframework.amqp.core.Message(PushUtils.buildJson("operational", equipment.getOperationalName() + ":" + equipment.getOperationalPhone()).toString().getBytes(), messageProperties);
-//            rabbitTemplate.send(equimentType, clientId, message6);
-//            org.springframework.amqp.core.Message message7 = new org.springframework.amqp.core.Message( PushUtils.buildJson("pushTimeRule", equipment.getTimeRuleId() + "").toString().getBytes(), messageProperties);
-//            rabbitTemplate.send(equimentType, clientId, message7);
-//        }
-
 
         return R.ok();
     }
@@ -659,6 +636,28 @@ public class TEquipmentController {
         }
         return R.ok(null,"修改成功");
     }
+    //
+    @ApiOperation(value = "修改优惠券开关状态")
+    @GetMapping("/updateCouponStatus")
+    public ResponseModel<?> updateCouponStatus(String equipmentId,String couponStatus) {
+        if(StringUtils.isEmpty(couponStatus)||StringUtils.isEmpty(equipmentId)){
+            return R.fail(ResponseCodesEnum.A0001,"参数有空");
+        }
+        TEquipment equipment = tEquipmentService.getById(equipmentId);
+        if(equipment==null||equipment.getId()==null){
+            return R.fail(ResponseCodesEnum.A0001,"找不到设备");
+        }
+//        tEquipmentService.sentMessage(equipment.getClientId(),PushUtils.buildJson("couponStatus", couponStatus).toString());
+        TEquipmentDesc tEquipmentDesc = equipmentDescService.getById(equipment.getId());
+        if (tEquipmentDesc!=null){
+//            tEquipmentDesc.setCouponStatus(couponStatus);
+//            equipmentDescService.updateById(tEquipmentDesc);
+            tEquipmentService.sentMessage(equipment.getClientId(),PushUtils.buildJson("couponStatus", couponStatus).toString());
+        }else {
+            return R.fail(ResponseCodesEnum.A0001,"找不到设备");
+        }
+        return R.ok(null,"修改成功");
+    }
     //查找设备
     @ApiOperation(value = "查找设备")
     @PostMapping("/findEquipment")

+ 4 - 1
src/main/java/com/szwl/controller/TJoinpayMchController.java

@@ -174,7 +174,10 @@ public class TJoinpayMchController {
         query.eq(TJoinpayMch::getAdminId,Long.valueOf(id));
         List<TJoinpayMch> list = tJoinpayMchService.list(query);
         TJoinpayMch tJoinpayMch = list.get(0);
-        return R.ok(tJoinpayMch);
+        tJoinpayMchService.refreshMch(tJoinpayMch);
+        String s = tJoinpayMchService.refreshMyAccount(tJoinpayMch);
+        TJoinpayMch joinpayMch = tJoinpayMchService.getById(tJoinpayMch.getId());
+        return R.ok(joinpayMch);
     }
 
     private ResponseModel<?> createCheckMch(TJoinpayMch mch, TJoinpayMch tJoinpayMch) {

+ 367 - 3
src/main/java/com/szwl/controller/TOrderController.java

@@ -157,8 +157,8 @@ public class TOrderController {
 //                }else {
 //
 ////                    altAmountPrice = altAmountPrice.multiply(refusePrice.divide(pri)).setScale(2, RoundingMode.HALF_DOWN);
-//                };
-                altAmountPrice = refusePrice.multiply(altAmountPrice.divide(sumPrice,2,BigDecimal.ROUND_HALF_UP)).setScale(2, RoundingMode.HALF_DOWN);
+//                };altAmountPrice
+                altAmountPrice = altAmountPrice.multiply(refusePrice.divide(sumPrice,2,BigDecimal.ROUND_HALF_UP)).setScale(2, RoundingMode.HALF_DOWN);
                 p = p.add(altAmountPrice);
                 refInfo.put("altRefAmount", altAmountPrice.toString());
                 if(order.getMarketingAmount()!=null){
@@ -377,7 +377,7 @@ public class TOrderController {
                             order.setRefundMarketingAmount(p8_MarketRefAmount);
                         }
                     }
-                    order.setRefundTrxNo(String.valueOf(torder.getRefundAmount()));
+                    order.setRefundTrxNo(String.valueOf(refusePrice));
                     payFeign.updateOrder(order);
                     return ResponseEntity
                             .status(HttpStatus.OK)
@@ -407,7 +407,371 @@ public class TOrderController {
                         .setData("申请退款已成功")
                         .setMessage("申请退款已成功"));
     }
+    /**
+     *  小程序退款
+     * @param
+     * @return
+     */
+    @GetMapping("/refuseByXcu")
+    public ResponseEntity<?> refuseByXcu(String id) {
+        TOrder order = R.getDataIfSuccess(payFeign.getOrder(id));
+        String orderStatus = order.getOrderStatus();
+        if(StringUtils.isNotEmpty(orderStatus)){
+            if(!orderStatus.equals("0")){
+                return ResponseEntity
+                        .status(HttpStatus.OK)
+                        .body(new ResultMessage()
+                                .setCode(false)
+                                .setData("")
+                                .setMessage("订单非排队状态"));
+            }
+        }
+        BigDecimal refusePrice = order.getPrice().setScale(2, RoundingMode.HALF_DOWN);
+        if(refusePrice.compareTo(new BigDecimal("0.00"))<=0){
+            return ResponseEntity
+                    .status(HttpStatus.OK)
+                    .body(new ResultMessage()
+                            .setCode(false)
+                            .setData("")
+                            .setMessage("退款金额非法"));
+        }
+        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 refusePrice = torder.getRefundAmount().setScale(2, RoundingMode.HALF_DOWN);
+//        if(refusePrice.compareTo(new BigDecimal("0.00"))==0){
+//            refusePrice = torder.getPrice();
+//        }
+        BigDecimal p = BigDecimal.ZERO;
+        BigDecimal price = BigDecimal.ZERO;
+        //订单总金额
+        BigDecimal sumPrice = BigDecimal.ZERO;
+        if(order.getRefundAmount()!=null){
+            sumPrice=sumPrice.add(order.getPrice()).add(order.getRefundAmount()).setScale(2, RoundingMode.HALF_DOWN);
+        }else {
+            sumPrice=sumPrice.add(order.getPrice()).setScale(2, RoundingMode.HALF_DOWN);
+        }
+//        for (int i = 0; i < altInfoArray.size(); i++) {
+//            JSONObject altInfoObject = altInfoArray.getJSONObject(i);
+//
+//            JSONObject refInfo = new JSONObject();
+//            refInfo.put("altMchNo", altInfoObject.getString("altMchNo"));
+//            String altAmount = altInfoObject.getString("altAmount");
+//
+//            BigDecimal pri = new BigDecimal(order.getPrice().toString()).setScale(2, RoundingMode.HALF_DOWN);
+//
+//            if(refusePrice.compareTo(pri)<0){
+//                //退部分的钱
+//                BigDecimal altAmountPrice = new BigDecimal(altAmount);
+//                altAmountPrice = altAmountPrice.multiply(refusePrice.divide(pri)).setScale(2, RoundingMode.HALF_DOWN);
+//                p = p.add(altAmountPrice);
+//                refInfo.put("altRefAmount", altAmountPrice.toString());
+//            }else {
+//                //退全部的钱
+//                BigDecimal altAmountPrice = new BigDecimal(altAmount);
+//                p = p.add(altAmountPrice);
+//                refInfo.put("altRefAmount", altInfoObject.getString("altAmount"));
+//            }
+//
+//
+//            price = price.add(altInfoObject.getBigDecimal("altAmount"));
+//            if (!altInfoObject.getBigDecimal("altAmount").toString().equals("0.00")) {
+//                altRefInfo.add(refInfo);
+//            }
+//        }
+        BigDecimal p8_MarketRefAmount = 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"));
+            String altAmount = altInfoObject.getString("altAmount");
+
+            BigDecimal pri = new BigDecimal(order.getPrice().toString()).setScale(2, RoundingMode.HALF_DOWN);
+
+            if(refusePrice.compareTo(pri)<0){
+                //退部分的钱
+                BigDecimal altAmountPrice = new BigDecimal(altAmount);
+//                if(order.getRefundAmount()!=null){
+//                    altAmountPrice = altAmountPrice.multiply(refusePrice.divide(sumPrice.subtract(BigDecimal.valueOf(order.getRefundAmount())))).setScale(2, RoundingMode.HALF_DOWN);
+//                }else {
+//
+////                    altAmountPrice = altAmountPrice.multiply(refusePrice.divide(pri)).setScale(2, RoundingMode.HALF_DOWN);
+//                };altAmountPrice
+                altAmountPrice = altAmountPrice.multiply(refusePrice.divide(sumPrice,2,BigDecimal.ROUND_HALF_UP)).setScale(2, RoundingMode.HALF_DOWN);
+                p = p.add(altAmountPrice);
+                refInfo.put("altRefAmount", altAmountPrice.toString());
+                if(order.getMarketingAmount()!=null){
+                    p8_MarketRefAmount = order.getMarketingAmount().multiply(refusePrice.divide(sumPrice,2,BigDecimal.ROUND_HALF_UP)).setScale(2, RoundingMode.HALF_DOWN);
+                }
+            }else {
+                //退全部的钱
+//                if(order.getRefundAmount()!=null){
+//                    BigDecimal altAmountPrice = new BigDecimal(altAmount);
+//                    p = p.add(altAmountPrice);
+//                    refInfo.put("altRefAmount", altInfoObject.getString("altAmount"));
+//                }else{
+//                    BigDecimal altAmountPrice = new BigDecimal(altAmount);
+//                    p = p.add(altAmountPrice);
+//                    refInfo.put("altRefAmount", altInfoObject.getString("altAmount"));
+//                }
+                BigDecimal altAmountPrice = new BigDecimal(altAmount).setScale(2, RoundingMode.HALF_DOWN);
+                BigDecimal divide = altAmountPrice.divide(sumPrice,2,BigDecimal.ROUND_HALF_UP).setScale(2, RoundingMode.HALF_DOWN);
+                altAmountPrice = refusePrice.multiply(divide).setScale(2, RoundingMode.HALF_DOWN);
+                p = p.add(altAmountPrice);
+                refInfo.put("altRefAmount", altAmountPrice.toString());
+                if(order.getMarketingAmount()!=null){
+                    p8_MarketRefAmount = order.getMarketingAmount().multiply(refusePrice.divide(sumPrice,2,BigDecimal.ROUND_HALF_UP)).setScale(2, RoundingMode.HALF_DOWN);
+                }
+
+            }
+
+
+            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);
+        BigDecimal adminPrice = refusePrice.subtract(p).setScale(2, RoundingMode.HALF_DOWN);
+        JSONObject refInfo = new JSONObject();
+        refInfo.put("altMchNo", JoinpayConstant.mch_no);
+        refInfo.put("altRefAmount", adminPrice.toString());
+        price = price.add(adminPrice);
+        if (!adminPrice.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(id));
+                    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), refusePrice.subtract(p8_MarketRefAmount), p8_MarketRefAmount,"", notifyUrl, altRefInfo.toString());
+                if ("退款申请成功".equals(result)) {
+                    order.setStatus(2);
+                    if(StringUtils.isNotEmpty(order.getCoupons())){
+                        //设置退款营销金额
+                        if(order.getRefundMarketingAmount()!=null){
+                            //累加
+                            order.setRefundMarketingAmount(order.getRefundMarketingAmount().add(p8_MarketRefAmount));
+                        }else {
+                            order.setRefundMarketingAmount(p8_MarketRefAmount);
+                        }
+                    }
+                    order.setRefundTrxNo(String.valueOf(refusePrice));
+                    payFeign.updateOrder(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("申请退款已成功"));
+    }
     @ApiOperation(value = "添加优惠码")
     @GetMapping("/equipmentPay")
         public ResponseModel<?> equipmentPay(Double number, Long equipmentId, String frpCode) {

+ 27 - 14
src/main/java/com/szwl/controller/TPromoCodeController.java

@@ -193,7 +193,7 @@ public class TPromoCodeController {
                 promoCodeService.save(promoCode);
         }
     }
-    @ApiOperation(value = "生成5元优惠券")
+    @ApiOperation(value = "生成n元优惠券")
     @GetMapping("/addYHJ")
     public ResponseModel<?> addYHJ(Long wxId,String flag) {
         if(wxId==null||StringUtils.isEmpty(flag)){
@@ -201,12 +201,17 @@ public class TPromoCodeController {
         }
         LambdaQueryWrapper<TPromoCode> query = Wrappers.lambdaQuery();
         query.eq(TPromoCode::getWxId,wxId);
-        if(flag.equals("YHJ5")||flag.equals("YHJ10")){
-            query.eq(TPromoCode::getType,"2");
-            List<TPromoCode> list = promoCodeService.list(query);
-            if(list.size()>0){
-                return R.ok(1,"此券每人限领一张,您已领取过,不能再领!");
-            }
+//        if(flag.equals("YHJ5")||flag.equals("YHJ10")){
+//            query.eq(TPromoCode::getType,"2");
+//            List<TPromoCode> list = promoCodeService.list(query);
+//            if(list.size()>0){
+//                return R.ok(1,"此券每人限领一张,您已领取过,不能再领!");
+//            }
+//        }
+        query.eq(TPromoCode::getType,"2");
+        List<TPromoCode> list = promoCodeService.list(query);
+        if(list.size()>0){
+            return R.ok(1,"此券每人限领一张,您已领取过,不能再领!");
         }
         String code = orderService.initSn(Long.valueOf(wxId));
         TPromoCode promoCode = new TPromoCode();
@@ -215,14 +220,22 @@ public class TPromoCodeController {
         promoCode.setCode(Long.parseLong(code.substring(code.length()-8,code.length())));
         promoCode.setAdminId(null);
         promoCode.setIsUse("0");
-        if(flag.equals("YHJ5")){
-            promoCode.setDiscount(5f);
-            promoCode.setType("2");
-        }
-        if(flag.equals("YHJ10")){
-            promoCode.setDiscount(10f);
-            promoCode.setType("2");
+//        if(flag.equals("YHJ5")){
+//            promoCode.setDiscount(5f);
+//            promoCode.setType("2");
+//        }
+//        if(flag.equals("YHJ10")){
+//            promoCode.setDiscount(10f);
+//            promoCode.setType("2");
+//        }
+        String[] js = flag.split("J");
+        String s = js[1];
+        int price = Integer.parseInt(s);
+        if(price>100){
+            return R.fail(A0001);
         }
+        promoCode.setDiscount(Float.valueOf(price));
+        promoCode.setType("2");
         Long data = Calendar.getInstance().getTimeInMillis();
         Long t = 3l;
         Long mon = 30L*24L*60L*60L*1000L;

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

@@ -180,11 +180,11 @@ public class TProportionController {
             }
             if(tProportion.getMerchantId()!=null){
                 TAdmin admin2 = adminService.getById(tProportion.getMerchantId());
-                tProportion.setAgencyName(admin2.getUsername());
+                tProportion.setMerchantName(admin2.getUsername());
             }
             if(tProportion.getPersonageId()!=null){
                 TAdmin admin3 = adminService.getById(tProportion.getId());
-                tProportion.setAgencyName(admin3.getUsername());
+                tProportion.setPersonageName(admin3.getUsername());
             }
             return R.ok(tProportion);
         }else {

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

@@ -77,10 +77,32 @@ public class TTimeRuleController {
         TTimeRule oldTimeRule = timeRuleService.getById(timeRule.getId());
         oldTimeRule.setName(timeRule.getName());
         oldTimeRule.setRule(timeRule.getRule());
+        oldTimeRule.setUserNames(timeRule.getUserNames());
         oldTimeRule.setModifyDate(new Date());
         timeRuleService.updateById(oldTimeRule);
         return R.ok(oldTimeRule,"修改成功");
     }
+
+    @GetMapping("/getList")
+    public ResponseModel<?> getList(String name) {
+        LambdaQueryWrapper<TTimeRule> query = Wrappers.lambdaQuery();
+        if(StringUtils.isNotEmpty(name)){
+            query.eq(TTimeRule::getName,name);
+        }
+        query.orderByDesc(TTimeRule::getCreateDate);
+        List<TTimeRule> list = timeRuleService.list(query);
+        return R.ok(list);
+    }
+    @GetMapping("/updateEquimentpTimeRule")
+    public ResponseModel<?> updateEquimentpTimeRule(String equipmentId,String timeRuleId) {
+        TEquipment equipment = equipmentService.getById(equipmentId);
+        if(equipment!=null&&equipment.getId()!=null){
+            equipment.setTimeRuleId(Long.valueOf(timeRuleId));
+            equipmentService.updateById(equipment);
+            equipmentService.sentMessage(equipment.getClientId(), PushUtils.buildJson("pushTimeRule", timeRuleId + "").toString());
+        }
+        return R.ok();
+    }
     /**
      * 获取时间规则
      *
@@ -132,6 +154,27 @@ public class TTimeRuleController {
             equipmentService.sentMessage(equipment.getClientId(), PushUtils.buildJson("pushTimeRule", id + "").toString());
 //            PushUtils.push(equipment.getGtClientId(), "", "", PushUtils.buildJson("pushTimeRule", id + "").toString());
         }
+        TTimeRule timeRule = timeRuleService.getById(id);
+        if(StringUtils.isNotEmpty(timeRule.getUserNames())){
+            String[] nameUsers = timeRule.getUserNames().split(",");
+            if(nameUsers.length>0){
+                for(int i=0;i<nameUsers.length;i++){
+                    LambdaQueryWrapper<TAdmin> query1 = Wrappers.lambdaQuery();
+                    query1.eq(TAdmin::getUsername,nameUsers[i]);
+                    List<TAdmin> list1 = adminService.list(query1);
+                    if(list1.size()>0){
+                        for(TAdmin admin:list1){
+                            LambdaQueryWrapper<TEquipment> query2 = Wrappers.lambdaQuery();
+                            query2.eq(TEquipment::getAdminId,admin.getId());
+                            List<TEquipment> list2 = equipmentService.list(query2);
+                            for(TEquipment equipment:list2){
+                                equipmentService.sentMessage(equipment.getClientId(), PushUtils.buildJson("pushTimeRule", id + "").toString());
+                            }
+                        }
+                    }
+                }
+            }
+        }
         return  R.ok(null,"推送成功");
     }
 }

+ 2 - 2
src/main/java/com/szwl/model/bo/JoinpayConstant.java

@@ -45,7 +45,7 @@ public class JoinpayConstant {
     public final static String mg280Notify_Url = "http://pay.sunzee.com.cn:49013/tOrder/mg280Notify.htm";
 //    public final static String mg280Notify_Url = "http://slb.sunzee.com.cn/api/order/mg280Notify.htm";
 
-    public final static String Notify_Url_PromoCode = "http://pay.sunzee.com.cn:49013/tOrder/promoCodeNotify.htm";
+    public final static String Notify_Url_PromoCode = "https://sz.sunzee.com.cn/PAY-SERVER/tOrder/promoCodeNotify";
 //    public final static String Notify_Url_PromoCode = "http://slb.sunzee.com.cn/api/order/promoCodeNotify.htm";
 
     public final static String Jiesuan_Url = "http://app.sunzee.com.cn/api/order/jiesuan.htm";
@@ -55,7 +55,7 @@ public class JoinpayConstant {
     /**
      *  退款成功回调
      */
-    public final static String Notify_Refund_Url = "http://sz.sunzee.com.cn/ORDER-SERVER/tOrder/notifyRefund.htm";
+    public final static String Notify_Refund_Url = "https://sz.sunzee.com.cn/PAY-SERVER/tOrder/notifyRefund";
     public final static String Admin_Notify_Refund_Url = "http://app.sunzee.com.cn/api/order/adminNotifyRefund.htm";
 
 

+ 5 - 0
src/main/java/com/szwl/model/entity/TEquipment.java

@@ -159,6 +159,9 @@ public class TEquipment implements Serializable {
     @ApiModelProperty(value = "PLC版本;")
     private String plcVersion;
 
+    @ApiModelProperty(value = "apk版本;")
+    private String apkVersion;
+
     @ApiModelProperty(value = "棉花糖机器类型,mg320,mg301;")
     private String equimentType;
 
@@ -171,5 +174,7 @@ public class TEquipment implements Serializable {
     @ApiModelProperty(value = "设备类型,0:棉花糖,1,爆米花")
     private String machineType;
 
+    @ApiModelProperty(value = "优惠券开关,0:关闭,1:开启")
+    private String couponStatus;
 
 }

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

@@ -87,6 +87,12 @@ public class TEquipmentDesc implements Serializable {
     @ApiModelProperty(value = "当前机器购物车模式;")
     private String payType;
 
+    /**
+     * 机器状态;0:空闲,1:在做糖
+     */
+    @ApiModelProperty(value = "机器状态;0:空闲,1:在做糖;")
+    private String status;
 
-
+    @ApiModelProperty(value = "优惠券开关,0:关闭,1:开启")
+    private String couponStatus;
 }

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

@@ -122,4 +122,7 @@ public class TOrder implements Serializable {
     private BigDecimal refundMarketingAmount;
 
     private String coupons;
+
+    //'订单状态;0:排队中,1:正在制作,2:已制作',
+    private String orderStatus;
 }

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

@@ -34,6 +34,9 @@ public class TTimeRule implements Serializable {
     @ApiModelProperty(value = "规则名称;")
     private String name;
 
+    @ApiModelProperty(value = "推送的商家;")
+    private String userNames;
+
     @ApiModelProperty(value = "时间规则;")
     private String rule;
 

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

@@ -27,6 +27,17 @@ public interface TJoinpayMchService extends MyIService<TJoinpayMch> {
                          String buyerId , String isAlt , String altType , JSONArray altInfo , String altUrl , BigDecimal marketingAmount) throws UnsupportedEncodingException;
 
     /**
+     * 分销商查询 , 直接刷新分销商字段
+     * @return : Constant.correct_code=成功,其他String表示错误信息
+     */
+    public String refreshMch(TJoinpayMch mch);
+
+    /**
+     * 分账方账户查询接口
+     * @return : Constant.correct_code=成功,其他String表示错误信息
+     */
+    public String refreshMyAccount(TJoinpayMch mch);
+    /**
      *   协议内容签约接口
      * @return : Constant.correct_code=成功,其他String表示错误信息
      */

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

@@ -44,8 +44,8 @@ import java.util.*;
 public class TJoinpayMchServiceImpl extends ServiceImpl<TJoinpayMchMapper, TJoinpayMch> implements TJoinpayMchService {
     @Autowired
     PayFeign payFeign;
-    @Autowired
-    TShandeMchMapper shandeMchMapper;
+//    @Autowired
+//    TShandeMchMapper shandeMchMapper;
     @Override
     public String createMch(TJoinpayMch mch) {
 
@@ -707,6 +707,169 @@ public class TJoinpayMchServiceImpl extends ServiceImpl<TJoinpayMchMapper, TJoin
         return result;
     }
 
+    @Override
+    public String refreshMch(TJoinpayMch mch) {
+
+        String login_name = mch.getLoginName();
+        if(StringUtils.isEmpty(login_name)){
+            return "账户不存在";
+        }
+
+        String url = "https://www.joinpay.com/allocFunds";
+        JSONObject requestData = new JSONObject(new LinkedHashMap());
+        requestData.put("alt_login_name", "test1_" + mch.getAdminId() + "@mianhuatang.com");
+
+
+        JSONObject requestJson = new JSONObject(new TreeMap<String, Object>());
+        requestJson.put("method", "altmch.query");
+        requestJson.put("version", "1.0");
+        requestJson.put("data", requestData);
+        // 32位随机字符串
+        String uuid = UUID.randomUUID().toString().trim().replaceAll("-", "");
+        requestJson.put("rand_str", uuid);
+        requestJson.put("sign_type", JoinpayConstant.sign_type_MD5);
+        requestJson.put("mch_no", JoinpayConstant.mch_no);
+
+
+        String sign = createMD5Sign(requestJson , JoinpayConstant.key);
+        requestJson.put("sign", sign.toUpperCase());
+//        logger.info("请求参数:" + requestJson);
+
+
+        org.json.JSONObject jsonObject;
+        try {
+
+
+            jsonObject = HttpClientUtils.postJson(url, requestJson.toString());
+//            logger.info("响应参数:" + jsonObject);
+
+            if(jsonObject.has("resp_code")){
+                mch.setRespCode(jsonObject.getString("resp_code"));
+            }
+
+            if(jsonObject.has("data")) {
+                org.json.JSONObject data = jsonObject.getJSONObject("data");
+                if (data.has("biz_code")) {
+                    mch.setBizCode(data.getString("biz_code"));
+                }
+
+                if (data.has("alt_mch_no")) {
+                    mch.setAltMchNo(data.getString("alt_mch_no"));
+                }
+
+                if (data.has("order_status")) {
+                    mch.setOrderStatus(data.getString("order_status"));
+                }
+                if (data.has("alt_main_balance")) {
+                    mch.setAltMainBalance(new BigDecimal(data.getString("alt_main_balance")));
+                }
+            }
+
+
+
+            // 判断请求是否正确,受理成功
+            if(jsonObject.has("resp_code")){
+                String resp_code = jsonObject.getString("resp_code");
+                mch.setRespCode(resp_code);
+                if(JoinpayConstant.resp_code2.equals(resp_code)){
+                    org.json.JSONObject data = jsonObject.getJSONObject("data");
+                    if(data.has("biz_msg")){
+                        return data.getString("biz_msg");
+                    }else{
+                        return JoinpayConstant.resp_code.get(resp_code);
+                    }
+                }
+            }else{
+                return "请求失败";
+            }
+
+
+
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        updateById(mch);
+
+        return Constant.correct_code;
+    }
+
+    @Override
+    public String refreshMyAccount(TJoinpayMch mch) {
+        String url = "https://www.joinpay.com/allocFunds";
+
+        if(StringUtils.isEmpty(mch.getAltMchNo())){
+            return "找不到商家编号";
+        }
+
+        JSONObject requestData = new JSONObject(new LinkedHashMap());
+        requestData.put("alt_mch_no" , mch.getAltMchNo());
+
+        JSONObject requestJson = new JSONObject(new TreeMap<String, Object>());
+        requestJson.put("method", "altAccount.get");
+        requestJson.put("version", "1.0");
+        requestJson.put("data", requestData);
+        // 32位随机字符串
+        String uuid = UUID.randomUUID().toString().trim().replaceAll("-", "");
+        requestJson.put("rand_str", uuid);
+        requestJson.put("sign_type", JoinpayConstant.sign_type_MD5);
+        requestJson.put("mch_no", JoinpayConstant.mch_no);
+
+        String sign = createMD5Sign(requestJson , JoinpayConstant.key);
+        requestJson.put("sign", sign.toUpperCase());
+//        logger.info("请求参数:" + requestJson);
+
+        org.json.JSONObject jsonObject;
+        try {
+
+            jsonObject = HttpClientUtils.postJson(url, requestJson.toString());
+//            logger.info("响应参数:" + jsonObject);
+
+            // 判断请求是否正确,受理成功
+            if(jsonObject.has("resp_code")){
+                String resp_code = jsonObject.getString("resp_code");
+                mch.setRespCode(resp_code);
+                if(JoinpayConstant.resp_code2.equals(resp_code)){
+                    org.json.JSONObject data = jsonObject.getJSONObject("data");
+                    if(data.has("biz_msg")){
+                        return data.getString("biz_msg");
+                    }else{
+                        return JoinpayConstant.resp_code.get(resp_code);
+                    }
+                }
+            }else{
+                return "请求失败";
+            }
+
+
+            // 处理data
+            if(jsonObject.has("data")){
+                org.json.JSONObject data = jsonObject.getJSONObject("data");
+
+                // 更新账户的金额
+
+                if(data.has("alt_main_balance")){
+                    mch.setAltMainBalance(new BigDecimal(data.getString("alt_main_balance")).divide(new BigDecimal(100)));
+                }
+
+                if(data.has("alt_guar_balance")){
+                    mch.setAltGuarBalance(new BigDecimal(data.getString("alt_guar_balance")).divide(new BigDecimal(100)));
+                }
+
+                if(data.has("alt_avil_balance")){
+                    mch.setAltAvilBalance(new BigDecimal(data.getString("alt_avil_balance")).divide(new BigDecimal(100)));
+                }
+
+                updateById(mch);
+            }
+
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        return Constant.correct_code;
+    }
+
     /**
      * 签名算法sign , hmac 签名
      *

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

@@ -68,14 +68,9 @@ public class TMessageCodeServiceImpl extends ServiceImpl<TMessageCodeMapper, TMe
         String code = addCode();
 //        String subject = "Verification code message";
         String subject =getSubject(type);
-        StringBuffer contnet = new StringBuffer();
-        getContnet(type,code);
-//        String str1="Dear customer<br>" +
-//                "<br>" +
-//                "Hello, your verification code is:";
-//        String str2=",please enter it within 3 minutes.";
-//        contnet.append(str1).append(code).append(str2);
-        new MailUtil().send(email,subject,contnet.toString());
+        String contnet = "";
+        contnet = getContnet(type,code);
+        new MailUtil().send(email,subject,contnet);
         TMessageCode tMessageCode = new TMessageCode();
         tMessageCode.setType(type);
         tMessageCode.setCode(code);