Explorar o código

Merge remote-tracking branch 'origin/package' into package

bilingfeng hai 9 meses
pai
achega
a31760281b
Modificáronse 12 ficheiros con 139 adicións e 46 borrados
  1. 4 2
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameOceanengineAppOrderLogServiceImpl.java
  2. 4 2
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameOceanengineOrderLogServiceImpl.java
  3. 27 10
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameTencentAppApiOrderServiceImpl.java
  4. 23 12
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameTencentAppApiRoleRegisterServiceImpl.java
  5. 24 13
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameTencentAppApiUserServiceImpl.java
  6. 4 4
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameTencentAppCallbackServiceImpl.java
  7. 4 2
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameTencentMiniGameOrderServiceImpl.java
  8. 3 1
      game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameTencentOrderServiceImpl.java
  9. 7 0
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/controller/AgentController.java
  10. 18 0
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/dto/TencentNewWebUserActionSetDTO.java
  11. 3 0
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/IAgentService.java
  12. 18 0
      game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/AgentServiceImpl.java

+ 4 - 2
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameOceanengineAppOrderLogServiceImpl.java

@@ -24,6 +24,7 @@ import com.zanxiang.game.back.serve.utils.OrderUtil;
 import com.zanxiang.game.module.base.ServerInfo;
 import com.zanxiang.game.module.base.pojo.vo.AgentRpcVO;
 import com.zanxiang.game.module.base.rpc.IAgentRpc;
+import com.zanxiang.module.util.ObjectUtil;
 import com.zanxiang.module.util.bean.BeanUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
@@ -434,7 +435,7 @@ public class GameOceanengineAppOrderLogServiceImpl extends ServiceImpl<GameOcean
 
         @Override
         public Long totalRechargeAmount() {
-            return gameOceanengineAppOrderLogService.getOne(new QueryWrapper<GameOceanengineAppOrderLog>()
+            Map<String, Object> data = gameOceanengineAppOrderLogService.getMap(new QueryWrapper<GameOceanengineAppOrderLog>()
                     .select("ifnull(sum(amount), 0) as amount").lambda()
                     .eq(GameOceanengineAppOrderLog::getGameId, orderLog.getGameId())
                     .eq(GameOceanengineAppOrderLog::getAccountId, orderLog.getAccountId())
@@ -442,7 +443,8 @@ public class GameOceanengineAppOrderLogServiceImpl extends ServiceImpl<GameOcean
                     .eq(GameOceanengineAppOrderLog::getOrderStatus, OrderStatusEnum.SUCCESS_PAY.getValue())
                     .eq(GameOceanengineAppOrderLog::getUserId, userLog.getUserId())
                     .ne(GameOceanengineAppOrderLog::getOrderNo, orderLog.getOrderNo())
-            ).getAmount();
+            );
+            return ObjectUtil.objToLong(data.get("amount"), 0L);
         }
     }
 }

+ 4 - 2
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameOceanengineOrderLogServiceImpl.java

@@ -33,6 +33,7 @@ import com.zanxiang.game.module.base.pojo.vo.AgentRpcVO;
 import com.zanxiang.game.module.base.rpc.IAgentRpc;
 import com.zanxiang.module.util.JsonUtil;
 import com.zanxiang.module.util.NumberUtil;
+import com.zanxiang.module.util.ObjectUtil;
 import com.zanxiang.module.util.bean.BeanUtil;
 import com.zanxiang.module.util.exception.BaseException;
 import lombok.extern.slf4j.Slf4j;
@@ -536,7 +537,7 @@ public class GameOceanengineOrderLogServiceImpl extends ServiceImpl<GameOceaneng
 
         @Override
         public Long totalRechargeAmount() {
-            return gameOceanengineOrderLogService.getOne(new QueryWrapper<GameOceanengineOrderLog>()
+            Map<String, Object> data = gameOceanengineOrderLogService.getMap(new QueryWrapper<GameOceanengineOrderLog>()
                     .select("ifnull(sum(amount), 0) as amount").lambda()
                     .eq(GameOceanengineOrderLog::getGameId, orderLog.getGameId())
                     .eq(GameOceanengineOrderLog::getAppId, orderLog.getAppId())
@@ -545,7 +546,8 @@ public class GameOceanengineOrderLogServiceImpl extends ServiceImpl<GameOceaneng
                     .eq(GameOceanengineOrderLog::getOrderStatus, OrderStatusEnum.SUCCESS_PAY.getValue())
                     .eq(GameOceanengineOrderLog::getOpenId, orderLog.getOpenId())
                     .ne(GameOceanengineOrderLog::getOrderNo, orderLog.getOrderNo())
-            ).getAmount();
+            );
+            return ObjectUtil.objToLong(data.get("amount"), 0L);
         }
     }
 }

+ 27 - 10
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameTencentAppApiOrderServiceImpl.java

@@ -8,8 +8,11 @@ import com.github.sd4324530.jtuple.Tuple2;
 import com.github.sd4324530.jtuple.Tuple3;
 import com.zanxiang.advertising.tencent.base.AdvertisingTencentServer;
 import com.zanxiang.advertising.tencent.base.pojo.dto.DataReportOfAccountIdRpcDTO;
+import com.zanxiang.advertising.tencent.base.pojo.dto.DataReportOfAccountIdV3RpcDTO;
 import com.zanxiang.advertising.tencent.base.pojo.dto.UserActionRpcDTO;
+import com.zanxiang.advertising.tencent.base.pojo.dto.UserActionV3RpcDTO;
 import com.zanxiang.advertising.tencent.base.rpc.IUserActionSetRpc;
+import com.zanxiang.advertising.tencent.base.rpc.IUserActionSetV3Rpc;
 import com.zanxiang.game.back.base.pojo.enums.OrderStatusEnum;
 import com.zanxiang.game.back.serve.dao.mapper.GameTencentAppApiOrderMapper;
 import com.zanxiang.game.back.serve.pojo.TencentAppReport;
@@ -22,6 +25,7 @@ import com.zanxiang.game.back.serve.service.*;
 import com.zanxiang.game.back.serve.utils.BackPolicyUtil;
 import com.zanxiang.module.util.DateUtil;
 import com.zanxiang.module.util.NumberUtil;
+import com.zanxiang.module.util.ObjectUtil;
 import com.zanxiang.module.util.URIUtil;
 import com.zanxiang.module.util.encryption.Md5Util;
 import com.zanxiang.module.util.exception.BaseException;
@@ -46,7 +50,7 @@ public class GameTencentAppApiOrderServiceImpl extends ServiceImpl<GameTencentAp
 implements IGameTencentAppApiOrderService {
 
     @DubboReference(providedBy = AdvertisingTencentServer.SERVER_DUBBO_NAME)
-    private IUserActionSetRpc userActionSetRpc;
+    private IUserActionSetV3Rpc userActionSetRpc;
     @Autowired
     private IGameTencentAppApiBackLogService gameTencentAppApiBackLogService;
     @Autowired
@@ -219,20 +223,32 @@ implements IGameTencentAppApiOrderService {
         }
         GameTencentAppCallback callback = gameTencentAppCallbackService.getById(user.getCallbackId());
 
+        UserActionV3RpcDTO.UserIdRpcDTO userId = UserActionV3RpcDTO.UserIdRpcDTO.builder().build();
+        if ("android".equalsIgnoreCase(callback.getDeviceOsType()))  {
+            if(StringUtils.isNotBlank(callback.getMuid())) {
+                userId.setHashImei(callback.getMuid());
+            }
+            if(StringUtils.isNotBlank(callback.getHashOaid())) {
+                userId.setHashOaid(callback.getHashOaid());
+            }
+            if(StringUtils.isNotBlank(callback.getHashAndroidId())) {
+                userId.setHashAndroidId(callback.getHashAndroidId());
+            }
+        } else {
+            if(StringUtils.isNotBlank(callback.getMuid())) {
+                userId.setHashIdfa(callback.getMuid());
+            }
+        }
         Map<String, Object> actionParams = new HashMap<>();
         actionParams.put("value", backMoney);
-        DataReportOfAccountIdRpcDTO dataReportOfAccountIdRpcDTO = DataReportOfAccountIdRpcDTO.builder()
+        DataReportOfAccountIdV3RpcDTO dataReportOfAccountIdRpcDTO = DataReportOfAccountIdV3RpcDTO.builder()
                 .accountId(user.getAdAccountId())
                 .userActionSetId(user.getUserActionSetId())
-                .action(UserActionRpcDTO.builder()
+                .action(UserActionV3RpcDTO.builder()
                         .actionTime(backTime)
                         .actionType(ActionTypeEnum.PURCHASE.getActionType())
-                        .userId(UserActionRpcDTO.UserIdRpcDTO.builder()
-                                .hashImei(StringUtils.isBlank(user.getImei()) ? null : Md5Util.encrypt32(user.getImei().toLowerCase()).toLowerCase())
-                                .hashIdfa(StringUtils.isBlank(user.getOaid()) ? null : Md5Util.encrypt32(user.getIdfa().toLowerCase()).toLowerCase())
-                                .hashOaid(StringUtils.isBlank(user.getOaid()) ? null : Md5Util.encrypt32(user.getOaid().toLowerCase()).toLowerCase())
-                                .build())
-                        .trace(UserActionRpcDTO.TraceRpcDTO.builder()
+                        .userId(userId)
+                        .trace(UserActionV3RpcDTO.TraceRpcDTO.builder()
                                 .clickId(callback.getClickId())
                                 .build())
                         .actionParam(actionParams)
@@ -447,7 +463,7 @@ implements IGameTencentAppApiOrderService {
 
         @Override
         public Long totalRechargeAmount() {
-            return gameTencentAppApiOrderService.count(new QueryWrapper<GameTencentAppApiOrder>()
+            Map<String, Object> data = gameTencentAppApiOrderService.getMap(new QueryWrapper<GameTencentAppApiOrder>()
                     .select("ifnull(sum(recharge_money), 0) as recharge_money").lambda()
                     .eq(GameTencentAppApiOrder::getGameId, orderLog.getGameId())
                     .eq(GameTencentAppApiOrder::getAdAccountId, orderLog.getAdAccountId())
@@ -456,6 +472,7 @@ implements IGameTencentAppApiOrderService {
                     .eq(GameTencentAppApiOrder::getUserId, orderLog.getUserId())
                     .ne(GameTencentAppApiOrder::getOrderId, orderLog.getOrderId())
             );
+            return ObjectUtil.objToLong(data.get("recharge_money"), 0L);
         }
     }
 }

+ 23 - 12
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameTencentAppApiRoleRegisterServiceImpl.java

@@ -5,10 +5,9 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.sd4324530.jtuple.Tuple2;
 import com.zanxiang.advertising.tencent.base.AdvertisingTencentServer;
-import com.zanxiang.advertising.tencent.base.pojo.dto.DataReportOfAccountIdRpcDTO;
-import com.zanxiang.advertising.tencent.base.pojo.dto.DataReportOfAppIdRpcDTO;
-import com.zanxiang.advertising.tencent.base.pojo.dto.UserActionRpcDTO;
+import com.zanxiang.advertising.tencent.base.pojo.dto.*;
 import com.zanxiang.advertising.tencent.base.rpc.IUserActionSetRpc;
+import com.zanxiang.advertising.tencent.base.rpc.IUserActionSetV3Rpc;
 import com.zanxiang.game.back.serve.dao.mapper.GameTencentAppApiRoleRegisterMapper;
 import com.zanxiang.game.back.serve.pojo.entity.*;
 import com.zanxiang.game.back.serve.pojo.enums.ActionTypeEnum;
@@ -40,7 +39,7 @@ implements IGameTencentAppApiRoleRegisterService {
     @Autowired
     private IGameTencentAppCallbackService gameTencentAppCallbackService;
     @DubboReference(providedBy = AdvertisingTencentServer.SERVER_DUBBO_NAME)
-    private IUserActionSetRpc userActionSetRpc;
+    private IUserActionSetV3Rpc userActionSetRpc;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -90,18 +89,30 @@ implements IGameTencentAppApiRoleRegisterService {
 
         GameTencentAppCallback callback = gameTencentAppCallbackService.getById(user.getCallbackId());
 
-        DataReportOfAccountIdRpcDTO dataReportOfAccountIdRpcDTO = DataReportOfAccountIdRpcDTO.builder()
+        UserActionV3RpcDTO.UserIdRpcDTO userId = UserActionV3RpcDTO.UserIdRpcDTO.builder().build();
+        if ("android".equalsIgnoreCase(callback.getDeviceOsType()))  {
+            if(StringUtils.isNotBlank(callback.getMuid())) {
+                userId.setHashImei(callback.getMuid());
+            }
+            if(StringUtils.isNotBlank(callback.getHashOaid())) {
+                userId.setHashOaid(callback.getHashOaid());
+            }
+            if(StringUtils.isNotBlank(callback.getHashAndroidId())) {
+                userId.setHashAndroidId(callback.getHashAndroidId());
+            }
+        } else {
+            if(StringUtils.isNotBlank(callback.getMuid())) {
+                userId.setHashIdfa(callback.getMuid());
+            }
+        }
+        DataReportOfAccountIdV3RpcDTO dataReportOfAccountIdRpcDTO = DataReportOfAccountIdV3RpcDTO.builder()
                 .accountId(user.getAdAccountId())
                 .userActionSetId(user.getUserActionSetId())
-                .action(UserActionRpcDTO.builder()
+                .action(UserActionV3RpcDTO.builder()
                         .actionTime(roleRegisterLog.getRegisterTime())
                         .actionType(ActionTypeEnum.CREATE_ROLE.getActionType())
-                        .userId(UserActionRpcDTO.UserIdRpcDTO.builder()
-                                .hashImei(StringUtils.isBlank(user.getImei()) ? null : Md5Util.encrypt32(user.getImei().toLowerCase()).toLowerCase())
-                                .hashIdfa(StringUtils.isBlank(user.getOaid()) ? null : Md5Util.encrypt32(user.getIdfa().toLowerCase()).toLowerCase())
-                                .hashOaid(StringUtils.isBlank(user.getOaid()) ? null : Md5Util.encrypt32(user.getOaid().toLowerCase()).toLowerCase())
-                                .build())
-                        .trace(UserActionRpcDTO.TraceRpcDTO.builder()
+                        .userId(userId)
+                        .trace(UserActionV3RpcDTO.TraceRpcDTO.builder()
                                 .clickId(callback.getClickId())
                                 .build())
                         .build())

+ 24 - 13
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameTencentAppApiUserServiceImpl.java

@@ -5,9 +5,9 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.sd4324530.jtuple.Tuple2;
 import com.zanxiang.advertising.tencent.base.AdvertisingTencentServer;
-import com.zanxiang.advertising.tencent.base.pojo.dto.DataReportOfAccountIdRpcDTO;
-import com.zanxiang.advertising.tencent.base.pojo.dto.UserActionRpcDTO;
-import com.zanxiang.advertising.tencent.base.rpc.IUserActionSetRpc;
+import com.zanxiang.advertising.tencent.base.pojo.dto.DataReportOfAccountIdV3RpcDTO;
+import com.zanxiang.advertising.tencent.base.pojo.dto.UserActionV3RpcDTO;
+import com.zanxiang.advertising.tencent.base.rpc.IUserActionSetV3Rpc;
 import com.zanxiang.game.back.serve.dao.mapper.GameTencentAppApiUserMapper;
 import com.zanxiang.game.back.serve.pojo.entity.GameTencentAppApiBackLog;
 import com.zanxiang.game.back.serve.pojo.entity.GameTencentAppApiUser;
@@ -17,7 +17,6 @@ import com.zanxiang.game.back.serve.pojo.enums.BackStatusEnum;
 import com.zanxiang.game.back.serve.service.IGameTencentAppApiBackLogService;
 import com.zanxiang.game.back.serve.service.IGameTencentAppApiUserService;
 import com.zanxiang.game.back.serve.service.IGameTencentAppCallbackService;
-import com.zanxiang.module.util.encryption.Md5Util;
 import com.zanxiang.module.util.pojo.ResultVO;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -41,7 +40,7 @@ implements IGameTencentAppApiUserService {
     @Autowired
     private RestTemplate restTemplate;
     @DubboReference(providedBy = AdvertisingTencentServer.SERVER_DUBBO_NAME)
-    private IUserActionSetRpc userActionSetRpc;
+    private IUserActionSetV3Rpc userActionSetRpc;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -84,18 +83,30 @@ implements IGameTencentAppApiUserService {
 
         GameTencentAppCallback callback = gameTencentAppCallbackService.getById(userLog.getCallbackId());
 
-        DataReportOfAccountIdRpcDTO dataReportOfAccountIdRpcDTO = DataReportOfAccountIdRpcDTO.builder()
+        UserActionV3RpcDTO.UserIdRpcDTO userId = UserActionV3RpcDTO.UserIdRpcDTO.builder().build();
+        if ("android".equalsIgnoreCase(callback.getDeviceOsType()))  {
+            if(StringUtils.isNotBlank(callback.getMuid())) {
+                userId.setHashImei(callback.getMuid());
+            }
+            if(StringUtils.isNotBlank(callback.getHashOaid())) {
+                userId.setHashOaid(callback.getHashOaid());
+            }
+            if(StringUtils.isNotBlank(callback.getHashAndroidId())) {
+                userId.setHashAndroidId(callback.getHashAndroidId());
+            }
+        } else {
+            if(StringUtils.isNotBlank(callback.getMuid())) {
+                userId.setHashIdfa(callback.getMuid());
+            }
+        }
+        DataReportOfAccountIdV3RpcDTO dataReportOfAccountIdRpcDTO = DataReportOfAccountIdV3RpcDTO.builder()
                 .accountId(userLog.getAdAccountId())
                 .userActionSetId(userLog.getUserActionSetId())
-                .action(UserActionRpcDTO.builder()
+                .action(UserActionV3RpcDTO.builder()
                         .actionTime(userLog.getRegisterTime())
                         .actionType(ActionTypeEnum.ACTIVATE_APP.getActionType())
-                        .userId(UserActionRpcDTO.UserIdRpcDTO.builder()
-                                .hashImei(StringUtils.isBlank(userLog.getImei()) ? null : Md5Util.encrypt32(userLog.getImei().toLowerCase()).toLowerCase())
-                                .hashIdfa(StringUtils.isBlank(userLog.getOaid()) ? null : Md5Util.encrypt32(userLog.getIdfa().toLowerCase()).toLowerCase())
-                                .hashOaid(StringUtils.isBlank(userLog.getOaid()) ? null : Md5Util.encrypt32(userLog.getOaid().toLowerCase()).toLowerCase())
-                                .build())
-                        .trace(UserActionRpcDTO.TraceRpcDTO.builder()
+                        .userId(userId)
+                        .trace(UserActionV3RpcDTO.TraceRpcDTO.builder()
                                 .clickId(callback.getClickId())
                                 .build())
                         .build())

+ 4 - 4
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameTencentAppCallbackServiceImpl.java

@@ -83,10 +83,10 @@ implements IGameTencentAppCallbackService {
             if(StringUtils.isNoneBlank(idfa)) {
                 and.or().eq(GameTencentAppCallback::getMuid, Md5Util.encrypt32(idfa.toUpperCase()).toLowerCase());
             }
-            and.or().and(StringUtils.isNoneBlank(ip), tmp -> {
-                        tmp.ge(GameTencentAppCallback::getClickTime, DateUtil.localDateTimeToSecond(regTime.plusDays(2)))
-                                .eq(GameTencentAppCallback::getIp, ip);
-                    });
+            and.or(StringUtils.isNoneBlank(ip), tmp -> {
+                tmp.ge(GameTencentAppCallback::getClickTime, DateUtil.localDateTimeToSecond(regTime.plusDays(2)))
+                        .eq(GameTencentAppCallback::getIp, ip);
+            });
         });
         return getOne(qw);
     }

+ 4 - 2
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameTencentMiniGameOrderServiceImpl.java

@@ -36,6 +36,7 @@ import com.zanxiang.game.module.base.ServerInfo;
 import com.zanxiang.game.module.base.pojo.vo.AgentRpcVO;
 import com.zanxiang.game.module.base.rpc.IAgentRpc;
 import com.zanxiang.module.util.NumberUtil;
+import com.zanxiang.module.util.ObjectUtil;
 import com.zanxiang.module.util.bean.BeanUtil;
 import com.zanxiang.module.util.exception.BaseException;
 import lombok.extern.slf4j.Slf4j;
@@ -473,7 +474,7 @@ public class GameTencentMiniGameOrderServiceImpl extends ServiceImpl<GameTencent
 
         @Override
         public Long totalRechargeAmount() {
-            return gameTencentMiniGameOrderService.getOne(new QueryWrapper<GameTencentMiniGameOrder>()
+            Map<String, Object> data = gameTencentMiniGameOrderService.getMap(new QueryWrapper<GameTencentMiniGameOrder>()
                     .select("ifnull(sum(recharge_money), 0) as recharge_money").lambda()
                     .eq(GameTencentMiniGameOrder::getGameId, orderLog.getGameId())
                     .eq(GameTencentMiniGameOrder::getWechatAppId, orderLog.getWechatAppId())
@@ -482,7 +483,8 @@ public class GameTencentMiniGameOrderServiceImpl extends ServiceImpl<GameTencent
                     .eq(GameTencentMiniGameOrder::getOrderStatus, OrderStatusEnum.SUCCESS_PAY.getValue())
                     .eq(GameTencentMiniGameOrder::getWechatOpenid, orderLog.getWechatOpenid())
                     .ne(GameTencentMiniGameOrder::getOrderId, orderLog.getOrderId())
-            ).getRechargeMoney();
+            );
+            return ObjectUtil.objToLong(data.get("recharge_money"), 0L);
         }
     }
 }

+ 3 - 1
game-back/game-back-serve/src/main/java/com/zanxiang/game/back/serve/service/impl/GameTencentOrderServiceImpl.java

@@ -40,6 +40,7 @@ import com.zanxiang.game.module.base.ServerInfo;
 import com.zanxiang.game.module.base.pojo.vo.AgentRpcVO;
 import com.zanxiang.game.module.base.rpc.IAgentRpc;
 import com.zanxiang.module.util.NumberUtil;
+import com.zanxiang.module.util.ObjectUtil;
 import com.zanxiang.module.util.bean.BeanUtil;
 import com.zanxiang.module.util.exception.BaseException;
 import com.zanxiang.module.util.pojo.ResultVO;
@@ -532,7 +533,7 @@ public class GameTencentOrderServiceImpl extends ServiceImpl<GameTencentOrderMap
 
         @Override
         public Long totalRechargeAmount() {
-            return gameTencentOrderService.count(new QueryWrapper<GameTencentOrder>()
+            Map<String, Object> data = gameTencentOrderService.getMap(new QueryWrapper<GameTencentOrder>()
                     .select("ifnull(sum(recharge_money), 0) as recharge_money").lambda()
                     .eq(GameTencentOrder::getGameId, orderLog.getGameId())
                     .eq(GameTencentOrder::getWechatAppId, orderLog.getWechatAppId())
@@ -542,6 +543,7 @@ public class GameTencentOrderServiceImpl extends ServiceImpl<GameTencentOrderMap
                     .eq(GameTencentOrder::getWechatOpenid, orderLog.getWechatOpenid())
                     .ne(GameTencentOrder::getOrderId, orderLog.getOrderId())
             );
+            return ObjectUtil.objToLong(data.get("recharge_money"), 0L);
         }
     }
 }

+ 7 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/controller/AgentController.java

@@ -3,6 +3,7 @@ package com.zanxiang.game.module.manage.controller;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.zanxiang.erp.security.annotation.PreAuthorize;
 import com.zanxiang.game.module.base.pojo.enums.AccountTypeEnum;
+import com.zanxiang.game.module.manage.pojo.dto.TencentNewWebUserActionSetDTO;
 import com.zanxiang.game.module.manage.pojo.params.AgentAddParam;
 import com.zanxiang.game.module.manage.pojo.params.AgentListParam;
 import com.zanxiang.game.module.manage.pojo.vo.AgentVO;
@@ -32,6 +33,12 @@ public class AgentController {
         return ResultVO.ok(agentService.listOfPage(dto));
     }
 
+    @PreAuthorize(permissionKey = "manage:agent:newWebUserActionSet")
+    @PostMapping("/newWebUserActionSet")
+    public ResultVO<Boolean> newWebUserActionSet(@RequestBody @Validated TencentNewWebUserActionSetDTO dto) {
+        return ResultVO.ok(agentService.newWebUserActionSet(dto));
+    }
+
     @PreAuthorize(permissionKey = "manage:agent:add")
     @PostMapping
     public ResultVO<Boolean> add(@Validated @RequestBody AgentAddParam dto) {

+ 18 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/dto/TencentNewWebUserActionSetDTO.java

@@ -0,0 +1,18 @@
+package com.zanxiang.game.module.manage.pojo.dto;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+@Data
+public class TencentNewWebUserActionSetDTO {
+
+    @NotNull(message = "参数错误!!!")
+    private Long adAccountId;
+
+    @NotBlank(message = "数据源名称不能为空")
+    private String name;
+
+    private String description;
+}

+ 3 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/IAgentService.java

@@ -3,6 +3,7 @@ package com.zanxiang.game.module.manage.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zanxiang.game.module.manage.pojo.dto.AgentDTO;
+import com.zanxiang.game.module.manage.pojo.dto.TencentNewWebUserActionSetDTO;
 import com.zanxiang.game.module.manage.pojo.params.AgentAddParam;
 import com.zanxiang.game.module.manage.pojo.params.AgentListParam;
 import com.zanxiang.game.module.manage.pojo.vo.AgentAccountChoiceVO;
@@ -92,4 +93,6 @@ public interface IAgentService extends IService<Agent> {
      * @return {@link AgentDTO}
      */
     AgentDTO getAgentById(long agentId);
+
+    Boolean newWebUserActionSet(TencentNewWebUserActionSetDTO dto);
 }

+ 18 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/AgentServiceImpl.java

@@ -7,9 +7,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zanxiang.advertising.tencent.base.AdvertisingTencentServer;
+import com.zanxiang.advertising.tencent.base.pojo.dto.CreateUserActionSetV3RpcDTO;
 import com.zanxiang.advertising.tencent.base.pojo.vo.UserActionSetRpcVO;
 import com.zanxiang.advertising.tencent.base.rpc.IAdAccountRpc;
 import com.zanxiang.advertising.tencent.base.rpc.IUserActionSetRpc;
+import com.zanxiang.advertising.tencent.base.rpc.IUserActionSetV3Rpc;
 import com.zanxiang.erp.base.ErpServer;
 import com.zanxiang.erp.base.pojo.vo.SysGameUserGroupRpcVO;
 import com.zanxiang.erp.base.rpc.ISysGameUserGroupRpc;
@@ -21,6 +23,7 @@ import com.zanxiang.game.back.base.rpc.IGameBackPolicyRpc;
 import com.zanxiang.game.module.base.pojo.enums.AccountTypeEnum;
 import com.zanxiang.game.module.base.pojo.enums.GameAuthEnum;
 import com.zanxiang.game.module.manage.pojo.dto.AgentDTO;
+import com.zanxiang.game.module.manage.pojo.dto.TencentNewWebUserActionSetDTO;
 import com.zanxiang.game.module.manage.pojo.params.AgentAddParam;
 import com.zanxiang.game.module.manage.pojo.params.AgentListParam;
 import com.zanxiang.game.module.manage.pojo.vo.AgentAccountChoiceVO;
@@ -70,6 +73,9 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
     @DubboReference(providedBy = AdvertisingTencentServer.SERVER_DUBBO_NAME)
     private IUserActionSetRpc userActionSetRpc;
 
+    @DubboReference(providedBy = AdvertisingTencentServer.SERVER_DUBBO_NAME)
+    private IUserActionSetV3Rpc userActionSetV3Rpc;
+
     @DubboReference(providedBy = ErpServer.SERVER_DUBBO_NAME)
     private ISysUserRpc sysUserRpc;
 
@@ -107,6 +113,18 @@ public class AgentServiceImpl extends ServiceImpl<AgentMapper, Agent> implements
         return result;
     }
 
+    @Override
+    public Boolean newWebUserActionSet(TencentNewWebUserActionSetDTO dto) {
+        return userActionSetV3Rpc.create(CreateUserActionSetV3RpcDTO.builder()
+                        .accountId(dto.getAdAccountId())
+                        .type("WEB")
+                        .name(dto.getName())
+                        .description(dto.getDescription())
+                        .enableConversionClaim(true)
+                        .unique(true)
+                .build()).getData() != null;
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean add(AgentAddParam dto) {