Browse Source

fix:课程单号唯一

ct 1 week ago
parent
commit
c97e56cef8

+ 1 - 1
fs-admin/src/main/java/com/fs/api/controller/CommonController.java → fs-admin/src/main/java/com/fs/api/controller/CommonApiController.java

@@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.RestController;
 @Api("公共接口")
 @RestController
 @RequestMapping(value="/app/common")
-public class CommonController {
+public class CommonApiController {
 
 
     @GetMapping("/genOrderCode")

+ 1 - 0
fs-admin/src/main/java/com/fs/core/config/SecurityConfig.java

@@ -126,6 +126,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 .antMatchers("/*/api-docs").anonymous()
                 .antMatchers("/druid/**").anonymous()
                 .antMatchers("/expense/**").anonymous()
+                .antMatchers("/app/common/genOrderCode").anonymous()
                 // 除上面外的所有请求全部需要鉴权认证
                 .anyRequest().authenticated()
                 .and()

+ 1 - 11
fs-common/src/main/java/com/fs/common/config/FSConfig.java

@@ -5,7 +5,7 @@ import org.springframework.stereotype.Component;
 
 /**
  * 读取项目相关配置
- *
+ * 
 
  */
 @Component
@@ -32,8 +32,6 @@ public class FSConfig
 
     private String url;
 
-    private static String commonApi;
-
     public String getUrl() {
         return url;
     }
@@ -136,12 +134,4 @@ public class FSConfig
     {
         return getProfile() + "/qr";
     }
-
-    public static String getCommonApi() {
-        return commonApi;
-    }
-
-    public static void setCommonApi(String commonApi) {
-        FSConfig.commonApi = commonApi;
-    }
 }

+ 13 - 0
fs-common/src/main/java/com/fs/common/config/FSSysConfig.java

@@ -49,6 +49,10 @@ public class FSSysConfig
 //    private String cwarehouseCode;
 //    private String cwarehouseName;
 
+
+
+    String commonApi;
+
     public String getKdnId() {
         return kdnId;
     }
@@ -288,4 +292,13 @@ public class FSSysConfig
 //    public void setCwarehouseName(String cwarehouseName) {
 //        this.cwarehouseName = cwarehouseName;
 //    }
+
+    public String getCommonApi() {
+        return commonApi;
+    }
+
+    public void setCommonApi(String commonApi) {
+        this.commonApi = commonApi;
+    }
+
 }

+ 7 - 1
fs-service-system/src/main/java/com/fs/core/utils/OrderCodeUtils.java

@@ -4,14 +4,20 @@ import cn.hutool.core.util.IdUtil;
 import cn.hutool.http.HttpRequest;
 import cn.hutool.json.JSONUtil;
 import com.fs.common.config.FSConfig;
+import com.fs.common.config.FSSysConfig;
 import com.fs.common.utils.spring.SpringUtils;
 import com.fs.core.vo.OrderCodeVO;
+import lombok.extern.slf4j.Slf4j;
 import org.redisson.api.RLock;
 import org.redisson.api.RedissonClient;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 
 import java.util.concurrent.TimeUnit;
 
+@Slf4j
 public class OrderCodeUtils {
+    static FSSysConfig fsSysConfig = SpringUtils.getBean(FSSysConfig.class);
 
     public static String genOrderSn(){
 
@@ -39,7 +45,7 @@ public class OrderCodeUtils {
     }
 
     public static String getOrderSn(){
-        String url= FSConfig.getCommonApi()+ "/app/common/genOrderCode";
+        String url= fsSysConfig.getCommonApi()+ "/app/common/genOrderCode";
         String json = HttpRequest.get(url)
                 .execute().body();
         OrderCodeVO vo= JSONUtil.toBean(json, OrderCodeVO.class);

+ 12 - 2
fs-service-system/src/main/java/com/fs/store/service/impl/FsStorePaymentServiceImpl.java

@@ -15,11 +15,13 @@ import com.fs.common.core.domain.R;
 import com.fs.common.utils.DateUtils;
 import com.fs.common.utils.IPUtils;
 import com.fs.common.utils.ServletUtils;
+import com.fs.common.utils.StringUtils;
 import com.fs.company.domain.CompanyConfig;
 import com.fs.company.domain.CompanyUser;
 import com.fs.company.mapper.CompanyConfigMapper;
 import com.fs.company.service.ICompanyService;
 import com.fs.company.service.ICompanyUserService;
+import com.fs.core.utils.OrderCodeUtils;
 import com.fs.course.config.RedPacketConfig;
 import com.fs.course.service.IFsCourseRedPacketLogService;
 import com.fs.pay.pay.config.PayConfig;
@@ -406,7 +408,11 @@ public class FsStorePaymentServiceImpl implements IFsStorePaymentService
         System.out.println("appid:"+config.getAppId());
         request.setOpenid(param.getOpenId());
 
-        String code = String.valueOf(IdUtil.getSnowflake(0, 0).nextId());
+//        String code = String.valueOf(IdUtil.getSnowflake(0, 0).nextId());
+        String code =  OrderCodeUtils.getOrderSn();
+        if(StringUtils.isEmpty(code)){
+            return R.error("红包单号生成失败,请重试");
+        }
         request.setOutBillNo("fsCourse" + code);
 
         Integer amount = WxPayUnifiedOrderRequest.yuanToFen(param.getAmount() != null ? param.getAmount().toString() : "0.1");
@@ -450,7 +456,11 @@ public class FsStorePaymentServiceImpl implements IFsStorePaymentService
 
         TransferBatchesRequest request = new TransferBatchesRequest();
         request.setAppid(config.getAppId());
-        String code = IdUtil.getSnowflake(0, 0).nextIdStr();
+//        String code = IdUtil.getSnowflake(0, 0).nextIdStr();
+        String code =  OrderCodeUtils.getOrderSn();
+        if(StringUtils.isEmpty(code)){
+            return R.error("红包单号生成失败,请重试");
+        }
         request.setOutBatchNo("fsCourse" + code);
         request.setBatchRemark("课堂答题奖励");
         request.setBatchName("课堂答题奖励");

+ 1 - 2
fs-service-system/src/main/resources/application-config-zkzh.yml

@@ -50,6 +50,7 @@ fsConfig:
   appId: 1661496555
   manuId: 0212af1e742b41b09089afeec98f8276
   callbackUrl: https://api.yjf.runtzh.com/app/prescribe/presribeNotify
+  commonApi: http://127.0.0.1:7011 #admin后台
 logging:
   level:
     org.springframework.web: INFO
@@ -115,5 +116,3 @@ cloud_host:
   company_name: 中康
 headerImg:
   imgUrl: https://zkzh-2025.oss-cn-beijing.aliyuncs.com/fs/20250619/e31b5e051a474a7a9b4ad02575b46196.png
-fs :
-  commonApi: http://172.21.76.167:7011 #admin后台