Browse Source

fix : 客服支付策略

bilingfeng 1 year ago
parent
commit
1fe193e3a1

+ 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" +

+ 10 - 0
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/service/IGamePayWayService.java

@@ -30,6 +30,16 @@ public interface IGamePayWayService extends IService<GamePayWay> {
      */
     GamePayWayDTO getGamePayWay(Long gameId, Long payWayId, Long payDeviceId);
 
+    /**
+     * 关闭订单获取支付配置,
+     *
+     * @param gameId      游戏id
+     * @param payWayId    支付方式id
+     * @param payDeviceId 支付设备id
+     * @return {@link GamePayWayDTO}
+     */
+    GamePayWayDTO closeOrderGetGamePayWay(Long gameId, Long payWayId, Long payDeviceId);
+
     /**
      * 游戏id列表
      *

+ 13 - 0
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/service/impl/GamePayWayServiceImpl.java

@@ -50,6 +50,19 @@ public class GamePayWayServiceImpl extends ServiceImpl<GamePayWayMapper, GamePay
         return BeanUtil.copy(gamePayWay, GamePayWayDTO.class);
     }
 
+    @Override
+    public GamePayWayDTO closeOrderGetGamePayWay(Long gameId, Long payWayId, Long payDeviceId) {
+        GamePayWay gamePayWay = getOne(new LambdaQueryWrapper<GamePayWay>()
+                .eq(GamePayWay::getGameId, gameId)
+                .eq(GamePayWay::getPayWayId, payWayId)
+                .eq(GamePayWay::getPayDeviceId, payDeviceId));
+        if (gamePayWay == null) {
+            log.error("参数错误, 关闭订单游戏支付配置信息不存在, gameId : {}, payWayId : {}, payDeviceId : {}", gameId, payWayId, payDeviceId);
+            throw new BaseException("参数错误, 关闭订单游戏支付配置信息不存在");
+        }
+        return BeanUtil.copy(gamePayWay, GamePayWayDTO.class);
+    }
+
     @Override
     public List<GamePayWayDTO> listOfGameId(Long gameId) {
         List<GamePayWay> gamePayWayList = list(new LambdaQueryWrapper<GamePayWay>()

+ 2 - 1
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/service/impl/GameUserRoleServiceImpl.java

@@ -21,6 +21,7 @@ import com.zanxiang.module.util.JsonUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.kafka.clients.producer.Producer;
 import org.apache.kafka.clients.producer.ProducerRecord;
+import org.apache.logging.log4j.util.Strings;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.beans.factory.annotation.Value;
@@ -111,7 +112,7 @@ public class GameUserRoleServiceImpl extends ServiceImpl<GameUserRoleMapper, Gam
             return super.update(new LambdaUpdateWrapper<GameUserRole>()
                     .set(GameUserRole::getRoleName, param.getRoleName())
                     .set(GameUserRole::getRoleLevel, param.getRoleLevel())
-                    .set(GameUserRole::getServerId, param.getServerId())
+                    .set(gameUserRole == null || Strings.isBlank(gameUserRole.getServerId()), GameUserRole::getServerId, param.getServerId())
                     .set(GameUserRole::getServerName, param.getServerName())
                     .set(param.getRoleVipLevel() != null, GameUserRole::getRoleVipLevel, param.getRoleVipLevel())
                     .set(param.getRolePower() != null, GameUserRole::getRolePower, param.getRolePower())

+ 1 - 1
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/service/pay/AliPayService.java

@@ -171,7 +171,7 @@ public class AliPayService extends PayBaseService {
     @Override
     public void closeOrder(PlatformOrderDTO platformOrderDTO) {
         //支付配置
-        GamePayWayDTO gamePayWayDTO = gamePayWayService.getGamePayWay(platformOrderDTO.getGameId(),
+        GamePayWayDTO gamePayWayDTO = gamePayWayService.closeOrderGetGamePayWay(platformOrderDTO.getGameId(),
                 platformOrderDTO.getPayWayId(), platformOrderDTO.getPayDeviceId());
         //初始化配置
         this.configInit(gamePayWayDTO);

+ 1 - 1
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/service/pay/WxPayService.java

@@ -285,7 +285,7 @@ public class WxPayService extends PayBaseService {
     @Override
     public void closeOrder(PlatformOrderDTO platformOrderDTO) {
         //支付配置
-        GamePayWayDTO gamePayWayDTO = gamePayWayService.getGamePayWay(platformOrderDTO.getGameId(),
+        GamePayWayDTO gamePayWayDTO = gamePayWayService.closeOrderGetGamePayWay(platformOrderDTO.getGameId(),
                 platformOrderDTO.getPayWayId(), platformOrderDTO.getPayDeviceId());
         //初始化配置
         WxPayConfigDTO config = this.notifyConfigInit(platformOrderDTO, gamePayWayDTO);