Переглянути джерело

fix:"优化MQTT远程脱机"

soobin 1 місяць тому
батько
коміт
cb3cbac850

+ 0 - 1
src/main/java/com/szwl/config/MqttConfig.java

@@ -133,7 +133,6 @@ public class MqttConfig {
                     }
                 });
             }
-            log.info("MQTT客户端已连接,客户端ID:{}", clientId);
         } catch (MqttException e) {
             log.info("MQTT客户端连接失败");
             e.printStackTrace();

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

@@ -88,7 +88,7 @@ public class CallbackController {
     @ResponseBody
     public String withdrawHuifu(HttpServletRequest request) {
         String respData = request.getParameter("resp_data");
-        log.info("汇付提现回调,参数,respData={}", respData);
+//        log.info("汇付提现回调,参数,respData={}", respData);
         try {
             // 验签请参sign
             String sign = request.getParameter("sign");

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

@@ -737,6 +737,8 @@ public class IndexController {
             product.setNo(split[1]);
             product.setRmbPrice(new BigDecimal(0.01));
             product.setCodePrice(new BigDecimal(0.01));
+            product.setSellStatus(true);
+            product.setShowType("1");
             productService.save(product);
         }
     }

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

@@ -290,7 +290,6 @@ public class TAdminController {
                 admin.setPassword(param.getPassword());
             }
             tAdminService.updateById(admin);
-            log.debug("修改账号 id:{},TAdmin:{}", admin.getId(), admin);
             return R.ok(admin);
         }
         return R.fail(ResponseCodesEnum.A0100);
@@ -329,7 +328,7 @@ public class TAdminController {
             SysUserRole sysUserRole = sysUserRoleService.getOne(query2);
             sysUserRoleService.removeById(sysUserRole.getId());
             tAdminService.removeById(admin.getId());
-            log.debug("删除账号 id:{},TAdmin:{}", admin.getId(), admin);
+//            log.debug("删除账号 id:{},TAdmin:{}", admin.getId(), admin);
             return R.ok(admin);
         }
         return R.fail(ResponseCodesEnum.A0100);

+ 8 - 5
src/main/java/com/szwl/controller/TEquipmentController.java

@@ -1519,15 +1519,18 @@ public class TEquipmentController {
 
         TEquipment equipment = tEquipmentService.getById(param.getId());
         if (equipment != null) {
-            if ("xxx".equals(equipment.getClientId().substring(equipment.getClientId().length() - 3))) {
-                return R.fail("该设备已脱机");
+            String clientId = equipment.getClientId();
+            if (!"xxx".equals(equipment.getClientId().substring(equipment.getClientId().length() - 3))) {
+                equipment.setClientId(equipment.getClientId() + "xxx");
+                tEquipmentService.updateById(equipment);
+            } else {
+                clientId = equipment.getClientId().substring(0, equipment.getClientId().length() - 3);
             }
             // MQTT消息
-            String clientId = equipment.getClientId();
             String message = PushUtils.buildJson(OperationType.OFFLINE.getCode(), "0").toString();
-            tEquipmentService.sendRemoteMessage(equipment.getClientId(), OperationType.OFFLINE, message, adminId);
+            tEquipmentService.sendRemoteMessage(clientId, OperationType.OFFLINE, message, adminId);
             // MQ消息
-            tEquipmentService.sentMessage(clientId, PushUtils.buildJson("tuoji", "0").toString());
+            tEquipmentService.sentOffMessage(clientId, PushUtils.buildJson("tuoji", "0").toString(), equipment.getEquimentType());
             return R.ok();
         }
         return R.fail(ResponseCodesEnum.A0001);

+ 1 - 2
src/main/java/com/szwl/controller/TOrderController.java

@@ -242,7 +242,6 @@ public class TOrderController {
                         String phone = admin.getPhone();
                         if (StringUtils.isNotEmpty(phone)) {
                             String result = orderService.sendRefundSms(order, phone, name);
-                            log.info("退款短信发送结果:{}", result);
                         }
                     }
 
@@ -287,7 +286,7 @@ public class TOrderController {
                         String phone = admin.getPhone();
                         if (StringUtils.isNotEmpty(phone)) {
                             String sendResult = orderService.sendRefundSms(order, phone, name);
-                            log.info("退款短信发送结果:{}", sendResult);
+//                            log.info("退款短信发送结果:{}", sendResult);
                         }
                     }
                     order.setRefundTrxNo(String.valueOf(refusePrice));

+ 2 - 4
src/main/java/com/szwl/controller/TWechatController.java

@@ -319,9 +319,7 @@ public class TWechatController {
                         "&secret=" + HuifuConstant.SC_WX_APP_SECRET +
                         "&code=" + authCode +
                         "&grant_type=authorization_code";
-                log.info("获取openID:{}", openUrl);
                 org.json.JSONObject jsonObject = HttpClientUtils.get(openUrl);
-                log.info("获取openID结果:{}", jsonObject);
                 openid = jsonObject.getString("openid");
             } catch (Exception e) {
                 e.printStackTrace();
@@ -334,9 +332,9 @@ public class TWechatController {
                         "&secret=" + HuifuConstant.SZ_WX_APP_SECRET +
                         "&code=" + authCode +
                         "&grant_type=authorization_code";
-                log.info("获取openID:{}", openUrl);
+//                log.info("获取openID:{}", openUrl);
                 org.json.JSONObject jsonObject = HttpClientUtils.get(openUrl);
-                log.info("获取openID结果:{}", jsonObject);
+//                log.info("获取openID结果:{}", jsonObject);
                 openid = jsonObject.getString("openid");
             } catch (Exception e) {
                 e.printStackTrace();

+ 0 - 1
src/main/java/com/szwl/handle/ResponseMessageHandler.java

@@ -35,7 +35,6 @@ public class ResponseMessageHandler implements MqttMessageHandler {
         processors.forEach(processor ->
                 processorMap.put(processor.getSupportedOperationType(), processor)
         );
-        log.info("Loaded response processors: {}", processorMap.keySet());
     }
 
     @Override

+ 4 - 2
src/main/java/com/szwl/handle/response/OfflineProcessor.java

@@ -28,8 +28,10 @@ public class OfflineProcessor implements ResponseProcessor {
             query.eq(TEquipment::getClientId, clientId);
             TEquipment equipment = tEquipmentService.getOne(query);
             if (equipment != null) {
-                equipment.setClientId(equipment.getClientId() + "xxx");
-                tEquipmentService.updateById(equipment);
+                if (!"xxx".equals(equipment.getClientId().substring(equipment.getClientId().length() - 3))) {
+                    equipment.setClientId(equipment.getClientId() + "xxx");
+                    tEquipmentService.updateById(equipment);
+                }
             }
         }
     }

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

@@ -10,7 +10,7 @@ import java.util.Optional;
 
 /**
  * <p>
- *  服务类
+ * 服务类
  * </p>
  *
  * @author wuhs
@@ -20,10 +20,20 @@ public interface TEquipmentService extends MyIService<TEquipment> {
     /**
      * 发送信息,1:个推,2:MQ
      */
-    String sentMessage(String clientId,String json);
+    String sentMessage(String clientId, String json);
+
+    /**
+     * 发送脱机消息
+     *
+     * @param clientId
+     * @param json
+     * @return
+     */
+    String sentOffMessage(String clientId, String json, String equimentType);
 
     /**
      * 主动发送远程操作消息
+     *
      * @param clientId
      * @param operationType
      * @param message
@@ -38,6 +48,7 @@ public interface TEquipmentService extends MyIService<TEquipment> {
     String findMachineTotalNum(StatisticsParam param);
 
     String findMachineUseNum(StatisticsParam param);
+
     String findMachineUseNumAdmin(StatisticsParam param);
 
     Optional<String> syncOneEquipmentByClientId(String clientId);
@@ -56,6 +67,7 @@ public interface TEquipmentService extends MyIService<TEquipment> {
 
     /**
      * 通知客户重置花型价格
+     *
      * @param adminId
      * @param deviceId
      */

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

@@ -114,6 +114,21 @@ public class TEquipmentServiceImpl extends ServiceImpl<TEquipmentMapper, TEquipm
     }
 
     @Override
+    public String sentOffMessage(String clientId, String json, String equimentType) {
+        //用Mq
+        //1 创建消息
+        MessageProperties messageProperties = new MessageProperties();
+        messageProperties.setContentType("application/json");  // 更改为JSON类型
+        messageProperties.setContentEncoding("UTF-8");  // 明确指定编码
+
+        // 将JSON字符串转为UTF-8字节数组
+        byte[] jsonBytes = json.getBytes(StandardCharsets.UTF_8);
+        org.springframework.amqp.core.Message message = new org.springframework.amqp.core.Message(jsonBytes, messageProperties);
+        amqpTemplate.send(equimentType, clientId, message);
+        return "success";
+    }
+
+    @Override
     public void sendRemoteMessage(String clientId, OperationType operationType, String message, Long adminId) {
         MessageLog messageLog = new MessageLog();
         messageLog.setMsgId(System.currentTimeMillis() + RandomUtil.randomNumbers(10));

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

@@ -50,6 +50,8 @@ public class TGoodsDataServiceImpl extends ServiceImpl<TGoodsDataMapper, TGoodsD
             product.setNo(split[1]);
             product.setRmbPrice(new BigDecimal(0.01));
             product.setCodePrice(new BigDecimal(0.01));
+            product.setSellStatus(true);
+            product.setShowType("1");
             productService.save(product);
         }
     }

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

@@ -382,12 +382,12 @@ public class THuifuMchServiceImpl extends ServiceImpl<THuifuMchMapper, THuifuMch
         requestData.put("product_id", HuifuConstant.PRODUCT_ID);
         requestData.put("sign", sign);
         requestData.put("data", request);
-        log.info("退款请求参数:{}", requestData);
+//        log.info("退款请求参数:{}", requestData);
         String success = OkHttpClientTools.httpPost(url, requestData.toString(), HuifuConstant.PRODUCT_ID);
         System.out.println("返回的数据:" + success);
         // 拿到返回参数
         JSONObject result = JSONObject.parseObject(success);
-        log.info("汇付返回参数:{}", result);
+//        log.info("汇付返回参数:{}", result);
         JSONObject data = result.getJSONObject("data");
         String transStat = data.getString("trans_stat");
         String respCode = data.getString("resp_code");
@@ -427,7 +427,7 @@ public class THuifuMchServiceImpl extends ServiceImpl<THuifuMchMapper, THuifuMch
 
         String success = OkHttpClientTools.httpPost(url, requestData.toString(), HuifuConstant.PRODUCT_ID);
         JSONObject result = JSONObject.parseObject(success);
-        log.info("汇付返回参数:{}", result);
+//        log.info("汇付返回参数:{}", result);
         JSONObject data = result.getJSONObject("data");
         String respCode = data.getString("resp_code");
         if (respCode.equals("00000000") || respCode.equals("00000100")) {
@@ -468,7 +468,7 @@ public class THuifuMchServiceImpl extends ServiceImpl<THuifuMchMapper, THuifuMch
 
 
         // 公共参数
-        log.info("余额查询请求参数:{}", request);
+//        log.info("余额查询请求参数:{}", request);
         JSONObject requestData = new JSONObject();
         requestData.put("sys_id", HuifuConstant.SYS_ID);
         requestData.put("product_id", HuifuConstant.PRODUCT_ID);

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

@@ -652,7 +652,7 @@ public class TJoinpayMchServiceImpl extends ServiceImpl<TJoinpayMchMapper, TJoin
         try {
 
             jsonObject = HttpClientUtils.postJson(url, requestJson.toString());
-            log.info("查询余额返回数据:{}", jsonObject);
+//            log.info("查询余额返回数据:{}", jsonObject);
 
             // 判断请求是否正确,受理成功
             if (jsonObject.has("resp_code")) {
@@ -709,12 +709,12 @@ public class TJoinpayMchServiceImpl extends ServiceImpl<TJoinpayMchMapper, TJoin
         requestJson.put("mch_no", JoinpayConstant.mch_no);
         String sign = createMD5Sign(requestJson, JoinpayConstant.key);
         requestJson.put("sign", sign.toUpperCase());
-        log.info("提现参数:{}", requestJson);
+//        log.info("提现参数:{}", requestJson);
 
         org.json.JSONObject jsonObject;
         try {
             jsonObject = HttpClientUtils.postJson(url, requestJson.toString());
-            log.info("提现结果:{}", jsonObject);
+//            log.info("提现结果:{}", jsonObject);
             // 判断请求是否正确,受理成功
             if(jsonObject.has("resp_code")){
                 String respCode = jsonObject.getString("resp_code");
@@ -854,12 +854,12 @@ public class TJoinpayMchServiceImpl extends ServiceImpl<TJoinpayMchMapper, TJoin
         requestJson.put("mch_no", JoinpayConstant.mch_no);
         String sign = createMD5Sign(requestJson, JoinpayConstant.key);
         requestJson.put("sign", sign.toUpperCase());
-        log.info("提现参数:{}", requestJson);
+//        log.info("提现参数:{}", requestJson);
 
         org.json.JSONObject jsonObject;
         try {
             jsonObject = HttpClientUtils.postJson(url, requestJson.toString());
-            log.info("提现结果:{}", jsonObject);
+//            log.info("提现结果:{}", jsonObject);
             // 判断请求是否正确,受理成功
             if(jsonObject.has("resp_code")){
                 String respCode = jsonObject.getString("resp_code");

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

@@ -125,7 +125,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
         String result = HttpClientUtils.postKeyValue(url, data);
 
         JSONObject resultJson = JSONObject.parseObject(result);
-        log.info("汇聚返回参数:{}", resultJson);
+//        log.info("汇聚返回参数:{}", resultJson);
         System.out.println(result);
         return resultJson.getString("rc_CodeMsg");
     }

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

@@ -159,7 +159,7 @@ public class TWechatServiceImpl extends ServiceImpl<TWechatMapper, TWechat> impl
                 stringBuffer.append(line);
             }
             JSONObject jsonObject = JSONObject.parseObject(stringBuffer.toString());
-            log.info("获取token:{}",jsonObject.toString());
+//            log.info("获取token:{}",jsonObject.toString());
             accessToken = jsonObject.getString("access_token");
             if(StringUtils.isEmpty(companyType) || companyType.equals("0")) {
                 TAdmin admin = adminService.getById(2738L);
@@ -267,6 +267,6 @@ public class TWechatServiceImpl extends ServiceImpl<TWechatMapper, TWechat> impl
         String messageCode = jsonObject.getString("errcode");
         String msgId = jsonObject.getString("msgid");
         System.out.println("messageCode : " + messageCode + ", msgId: " +msgId);
-        log.info("微信推送结果:{}","messageCode : " + messageCode + ", msgId: " +msgId);
+//        log.info("微信推送结果:{}","messageCode : " + messageCode + ", msgId: " +msgId);
     }
 }

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

@@ -56,6 +56,7 @@ logging:
     name: /app/applogs/${spring.application.name}/${spring.application.name}.log
     path: /app/applogs/${spring.application.name}/${spring.application.name}.log
     max-size: 100MB
+    max-history: 15
   level:
     com.szwl: debug