Browse Source

fix : 解决仙剑安卓APP充值CpOrderId不正确的问题

bilingfeng 2 months ago
parent
commit
4a195c12aa

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

@@ -25,7 +25,7 @@ public class SDKApplication {
 
     public static void main(String[] args) {
         SpringApplication.run(SDKApplication.class, args);
-        System.out.println("赞象SDK服务启动成功 <解决鸿蒙系统米大师兼容性问题> ( ´・・)ノ(._.`) \n" +
+        System.out.println("赞象SDK服务启动成功 <解决仙剑安卓APP充值CpOrderId不正确的问题> ( ´・・)ノ(._.`) \n" +
                 " ___________ _   __\n" +
                 "/  ___|  _  \\ | / /\n" +
                 "\\ `--.| | | | |/ / \n" +

+ 15 - 0
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/service/impl/OrderServiceImpl.java

@@ -1,8 +1,10 @@
 package com.zanxiang.game.module.sdk.service.impl;
 
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zanxiang.game.back.base.pojo.enums.OrderStatusEnum;
+import com.zanxiang.game.module.base.pojo.enums.GameCategoryEnum;
 import com.zanxiang.game.module.mybatis.entity.*;
 import com.zanxiang.game.module.mybatis.mapper.OrderMapper;
 import com.zanxiang.game.module.sdk.enums.KafkaEventTrackEnum;
@@ -141,6 +143,19 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 && !Objects.equals(order.getCpOrderId(), order.getExt())) {
             order.setCpOrderId(order.getExt());
         }
+        //仙剑安卓APP端CP订单id修正, ext字段中包含了订单id
+        if (Objects.equals(gameSupper.getId(), 12L) && Strings.isNotBlank(order.getExt())
+                && Objects.equals(game.getCategory(), GameCategoryEnum.CATEGORY_APP.getId())) {
+            //解析订单id, 若订单中的CP订单id不对, 则修正
+            String cpOrderId = null;
+            try {
+                cpOrderId = JSONObject.parse(order.getExt()).getString("orderId");
+            } catch (Exception ignored) {
+            }
+            if (Strings.isNotBlank(cpOrderId) && !Objects.equals(cpOrderId, order.getCpOrderId())) {
+                order.setCpOrderId(cpOrderId);
+            }
+        }
         return order;
     }