Explorar o código

fix : 解决梦回cpOrderId不正确的问题, 补充梦回发送弹窗消息的新字段

bilingfeng hai 6 meses
pai
achega
bebe5bbbef

+ 12 - 2
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/CpSendMsgLogServiceImpl.java

@@ -1,5 +1,6 @@
 package com.zanxiang.game.module.manage.service.impl;
 
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@@ -199,10 +200,19 @@ public class CpSendMsgLogServiceImpl extends ServiceImpl<CpSendMsgLogMapper, CpS
         param.put("serverid", serverId);
         param.put("roleIds", roleIdList);
         //图片地址弄一张最小的, CP方不会用, 有默认底图
-        List<String> imgList = Collections.singletonList("https://manage.84game.cn/image/WechatIMG56.jpeg");
         Map<String, Object> msgContent = new HashMap<>(2);
         msgContent.put("text", text);
-        msgContent.put("imgs", JsonUtil.toString(imgList));
+        //攻守CP方前端存在BUG, 这个图片地址不会展示, 但是必须给过去, 否则弹窗无法弹出
+        if (Objects.equals(gameSupper.getId(), 2L)) {
+            msgContent.put("imgs", JsonUtil.toString(Collections.singletonList("https://manage.84game.cn/image/WechatIMG56.jpeg")));
+        }
+        //增加自定义客服图片和获客链接参数 -梦回CP方已接入
+        if (Strings.isNotBlank(gameSupper.getCpSendMsgConfig())) {
+            JSONObject msgConfig = JSONObject.parse(gameSupper.getCpSendMsgConfig());
+            msgContent.put("qrCode", msgConfig.getString("qrCode"));
+            msgContent.put("superLink", msgConfig.getString("superLink"));
+        }
+        //添加消息参数内容
         param.put("msgContent", msgContent);
         //请求头
         HttpHeaders headers = new HttpHeaders();

+ 5 - 0
game-module/game-module-mybatis/src/main/java/com/zanxiang/game/module/mybatis/entity/GameSupper.java

@@ -50,6 +50,11 @@ public class GameSupper implements Serializable {
      */
     private String cpSendMsgKey;
 
+    /**
+     * CP发送消息配置
+     */
+    private String cpSendMsgConfig;
+
     /**
      * CP服务端交互密钥
      */

+ 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服务启动成功 <新游戏梦回解决订单中CP订单id不正确的问题> ( ´・・)ノ(._.`) \n" +
                 " ___________ _   __\n" +
                 "/  ___|  _  \\ | / /\n" +
                 "\\ `--.| | | | |/ / \n" +

+ 16 - 3
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/service/impl/OrderServiceImpl.java

@@ -23,6 +23,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
+import java.util.Objects;
 
 /**
  * 平台订单逻辑开发
@@ -52,6 +53,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
     @Autowired
     private ICallBackService callBackService;
 
+    @Autowired
+    private IGameSupperService gameSupperService;
+
     @Override
     @Transactional(rollbackFor = {Exception.class, RuntimeException.class})
     public Boolean createOrder(ProductPayParam payParam, User user, UserData userData) {
@@ -118,13 +122,22 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 .createTime(LocalDateTime.now())
                 .updateTime(LocalDateTime.now())
                 .build();
-        //蜀山天下, sdk前端存在bug, cp订单id参数修正
-        if (game.getId() == 29 && !order.getCpOrderId().contains("NZW")) {
-            //ext中记录了正确的cp订单id, 修正订单数据
+        //sdk前端存在bug, 可能将系统订单id作为CP订单id传上来的情况, 怀疑前端缓存问题导致, 这里参数修正
+        GameSupper gameSupper = gameSupperService.getById(game.getSuperGameId());
+        if (gameSupper == null) {
+            return order;
+        }
+        //蜀山天下CP订单id修正, 蜀山天下订单前缀固定为: NZW
+        if (Objects.equals(gameSupper.getId(), 8L) && !order.getCpOrderId().contains("NZW")) {
             if (Strings.isNotBlank(order.getExt()) && order.getExt().contains("NZW")) {
                 order.setCpOrderId(order.getExt());
             }
         }
+        //梦回白玉京CP订单id修正, ext字段中传的订单id
+        if (Objects.equals(gameSupper.getId(), 11L) && Strings.isNotBlank(order.getExt())
+                && !Objects.equals(order.getCpOrderId(), order.getExt())) {
+            order.setCpOrderId(order.getExt());
+        }
         return order;
     }