Explorar o código

feature: 消费服务完善
1.解决根据系统参数判断是否发送消费记录不准确的问题(根据部署位置判断,只在本地部署系统判断)

luoyb hai 1 ano
pai
achega
a776e3bf6c

+ 9 - 0
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/config/DefaultConfig.java

@@ -19,7 +19,16 @@ import org.springframework.context.annotation.Configuration;
 @Data
 @AutoConfiguration
 public class DefaultConfig {
+    /**
+     * 系统默认租户编号
+     */
     @Value("${system.default-config.tenantId}")
     private String tenantId;
 
+    /**
+     * 系统部署位置 local=本地 cloud=云端
+     */
+    @Value("${locationFlag}")
+    private String locationFlag;
+
 }

+ 9 - 1
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/DefaultConstants.java

@@ -98,5 +98,13 @@ public interface DefaultConstants {
      */
     Long GRADUATE_ROLE_ID = 1844275170961874946L;
 
-    String PUSH_DATA = "1";
+    /**
+     * 本地部署标志
+     */
+    String LOCAL_FLAG = "local";
+
+    /**
+     * 云端部署标志
+     */
+    String CLOUD_FLAG = "cloud";
 }

+ 8 - 2
ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/business/BaseBusiness.java

@@ -11,6 +11,7 @@ import org.dromara.backstage.api.RemotePtParameterService;
 import org.dromara.backstage.api.domain.vo.RemoteCardVo;
 import org.dromara.backstage.api.domain.vo.RemoteMealTypeVo;
 import org.dromara.backstage.api.domain.vo.RemoteUserAccountVo;
+import org.dromara.common.core.config.DefaultConfig;
 import org.dromara.common.core.constant.ApiErrorTypeConstants;
 import org.dromara.common.core.constant.DefaultConstants;
 import org.dromara.common.core.domain.R;
@@ -28,6 +29,7 @@ import org.dromara.server.common.domain.vo.yc.YcPushConsumeInfoVo;
 import org.dromara.server.consume.domain.bo.*;
 import org.dromara.server.consume.domain.vo.*;
 import org.dromara.server.consume.service.*;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -58,6 +60,7 @@ public class BaseBusiness {
     private final IXfConsumeDetailService consumeDetailService;
     private final IPtBagService bagService;
     private final KafkaNormalProducer kafkaNormalProducer;
+    private final DefaultConfig defaultConfig;
 
     @DubboReference
     private final RemotePtParameterService remotePtParameterService;
@@ -158,8 +161,11 @@ public class BaseBusiness {
         }
 
         // 5.发送一条消费记录到kafka(教务就餐打卡)
-        String pushConsume = remotePtParameterService.getPtParameterByKey("PUSH_CONSUME_MQ");
-        if(ObjectUtil.equals(pushConsume, "1")){
+        //String pushConsume = remotePtParameterService.getPtParameterByKey("PUSH_CONSUME_MQ");
+        //if(ObjectUtil.equals(pushConsume, "1")){
+        //    this.sendConsumeToKafka(detailVos,userAccountVo);
+        //}
+        if (ObjectUtil.equals(defaultConfig.getLocationFlag(), DefaultConstants.LOCAL_FLAG)) {
             this.sendConsumeToKafka(detailVos,userAccountVo);
         }
         return R.ok();

+ 8 - 2
ruoyi-server/ruoyi-server-consume/src/main/java/org/dromara/server/consume/controller/v1/ConsumeController.java

@@ -8,7 +8,9 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.dromara.backstage.api.RemotePtParameterService;
+import org.dromara.common.core.config.DefaultConfig;
 import org.dromara.common.core.constant.CacheNames;
+import org.dromara.common.core.constant.DefaultConstants;
 import org.dromara.common.core.domain.R;
 import org.dromara.common.core.domain.model.ErrorInfo;
 import org.dromara.common.core.domain.model.ErrorResult;
@@ -46,6 +48,7 @@ public class ConsumeController {
     private final RecordConvertStrategyContent recordConvertStrategy;
     private final ConsumeBusiness consumeBusiness;
     private final BaseBusiness baseBusiness;
+    private final DefaultConfig defaultConfig;
     @DubboReference
     private final RemotePtParameterService remotePtParameterService;
 
@@ -145,10 +148,13 @@ public class ConsumeController {
         if (Objects.equals(type, "requestConsume")) {
             errorInfo = consumeBusiness.createOrder(bo, mac, xfPwd);
             //是否推送云端消费
-            String cloudConsume = remotePtParameterService.getPtParameterByKey("PUSH_CLOUD_CONSUME");
-            if(ObjectUtil.equals(cloudConsume,"1")){
+            if (ObjectUtil.equals(defaultConfig.getLocationFlag(), DefaultConstants.LOCAL_FLAG)) {
                 baseBusiness.sendCloudConsume(cloudConsumeBo);
             }
+            //String cloudConsume = remotePtParameterService.getPtParameterByKey("PUSH_CLOUD_CONSUME");
+            //if(ObjectUtil.equals(cloudConsume,"1")){
+            //    baseBusiness.sendCloudConsume(cloudConsumeBo);
+            //}
         } else if (Objects.equals(type, "uploadRecord")) {
             errorInfo = consumeBusiness.postOrder(bo, mac, xfPwd);
         } else {