Jelajahi Sumber

fix : 客服支付订单设置缓存

bilingfeng 1 tahun lalu
induk
melakukan
771ca8217d

+ 1 - 1
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/SDKApplication.java

@@ -23,7 +23,7 @@ public class SDKApplication {
 
     public static void main(String[] args) {
         SpringApplication.run(SDKApplication.class, args);
-        System.out.println("赞象SDK服务启动成功 <微信支付延迟到账的问题, 配置初始化修改> ( ´・・)ノ(._.`) \n" +
+        System.out.println("赞象SDK服务启动成功 <客服支付订单设置缓存> ( ´・・)ノ(._.`) \n" +
                 " ___________ _   __\n" +
                 "/  ___|  _  \\ | / /\n" +
                 "\\ `--.| | | | |/ / \n" +

+ 5 - 0
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/constant/RedisKeyConstant.java

@@ -57,4 +57,9 @@ public class RedisKeyConstant {
      */
     public static final String USER_CREATE = RedisKeyConstant.REDIS_PREFIX + "user_create";
 
+    /**
+     * 客服支付订单标记
+     */
+    public static final String GAME_CUSTOM_PAY_SIGN = "game_sdk_manage_custom_pay_sign_";
+
 }

+ 12 - 0
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/service/impl/OrderPayServiceImpl.java

@@ -6,6 +6,8 @@ import com.zanxiang.game.module.base.pojo.enums.PayDeviceEnum;
 import com.zanxiang.game.module.mybatis.entity.Order;
 import com.zanxiang.game.module.mybatis.entity.OrderPayParam;
 import com.zanxiang.game.module.mybatis.entity.User;
+import com.zanxiang.game.module.sdk.constant.RedisKeyConstant;
+import com.zanxiang.game.module.sdk.enums.ExpireTimeEnum;
 import com.zanxiang.game.module.sdk.enums.OrderStateEnum;
 import com.zanxiang.game.module.sdk.enums.PayTypeEnum;
 import com.zanxiang.game.module.sdk.pojo.dto.GamePayWayDTO;
@@ -16,6 +18,7 @@ import com.zanxiang.game.module.sdk.pojo.param.UserData;
 import com.zanxiang.game.module.sdk.pojo.vo.PayParamVO;
 import com.zanxiang.game.module.sdk.service.*;
 import com.zanxiang.game.module.sdk.service.pay.PayBaseService;
+import com.zanxiang.game.module.sdk.util.RedisUtil;
 import com.zanxiang.game.module.sdk.util.SpringUtils;
 import com.zanxiang.module.util.JsonUtil;
 import com.zanxiang.module.util.bean.BeanUtil;
@@ -58,6 +61,9 @@ public class OrderPayServiceImpl implements IOrderPayService {
     @Autowired
     private IUserService userService;
 
+    @Autowired
+    private RedisUtil<String> redisUtil;
+
     @Value("${payConfig.wxPay.customH5Url}")
     private String customH5Url;
 
@@ -183,6 +189,12 @@ public class OrderPayServiceImpl implements IOrderPayService {
             paramMap.put("description", "购买" + product.getAmount() + "元档充值");
             paramMap.put("serverUrl", this.serverUrl.contains("test") ? this.serverUrl + "/api/sdk" : this.serverUrl + "/sdk");
             log.error("下单参数返回, paramMap : {}", JsonUtil.toString(paramMap));
+            //客服支付添加redis缓存
+            if (Objects.equals(product.getPayDevice(), PayDeviceEnum.CUSTOM_PAY.getPayDeviceId())) {
+                //以玩家id为key, orderId为value, 设置5分钟缓存
+                redisUtil.setCache(RedisKeyConstant.GAME_CUSTOM_PAY_SIGN + user.getOpenId(),
+                        product.getOrderId(), ExpireTimeEnum.FIVE_MIN.getTime());
+            }
             return paramMap;
         }
         //创建支付参数