Procházet zdrojové kódy

游戏广告策略配置(修改2-新增批量启停接口)

Letianhua před 1 rokem
rodič
revize
867d8988e0

+ 11 - 3
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/controller/GameAdMonitorController.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.zanxiang.erp.security.annotation.PreAuthorize;
 import com.zanxiang.game.module.manage.pojo.params.GameAdPolicyAddOrUpdateParam;
 import com.zanxiang.game.module.manage.pojo.params.GameAdPolicyBatchOperationParam;
+import com.zanxiang.game.module.manage.pojo.params.GameAdPolicyBatchStartParam;
 import com.zanxiang.game.module.manage.pojo.params.GameAdPolicyListParam;
 import com.zanxiang.game.module.manage.pojo.vo.GameAdPolicyListVO;
 import com.zanxiang.game.module.manage.service.IGameAdMonitorService;
@@ -32,7 +33,7 @@ public class GameAdMonitorController {
     @Autowired
     private IGameAdMonitorService gameAdMonitorService;
 
-    @ApiOperation(value = "游戏广告策略配置新增或修改或添加白名单")
+    @ApiOperation(value = "游戏广告策略配置新增或修改")
     @PostMapping("/add/or/update")
     @PreAuthorize(permissionKey = "manage:adPolicy:addOrUpdate")
     public ResultVO<Boolean> addOrUpdate(@Validated @RequestBody GameAdPolicyAddOrUpdateParam param) {
@@ -53,11 +54,18 @@ public class GameAdMonitorController {
         return ResultVO.ok(gameAdMonitorService.listOfPage(param));
     }
 
-    @ApiOperation(value = "游戏广告策略配置批量操作:添加白名单;启用;暂停")
+    @ApiOperation(value = "游戏广告策略配置批量操作:添加白名单")
     @PostMapping("/batch/operation")
     @PreAuthorize(permissionKey = "manage:adPolicy:batchOperation")
-    public ResultVO<Boolean> batchOperation(@RequestBody GameAdPolicyBatchOperationParam param) {
+    public ResultVO<Boolean> batchOperation(@Validated @RequestBody GameAdPolicyBatchOperationParam param) {
         return ResultVO.ok(gameAdMonitorService.batchOperation(param));
     }
 
+    @ApiOperation(value = "游戏广告策略配置批量操作:启用;暂停")
+    @PostMapping("/batch/start")
+    @PreAuthorize(permissionKey = "manage:adPolicy:batchStart")
+    public ResultVO<Boolean> batchStart(@Validated @RequestBody GameAdPolicyBatchStartParam param) {
+        return ResultVO.ok(gameAdMonitorService.batchStart(param));
+    }
+
 }

+ 2 - 3
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/params/GameAdPolicyAddOrUpdateParam.java

@@ -67,10 +67,9 @@ public class GameAdPolicyAddOrUpdateParam {
     private Integer ruleDimension;
 
     /**
-     * 生效范围(依据规则维度变化):ALLADS(默认维度:当前创建人的所有广告);其他(对应规则维度的ID字符串,'-'间隔)
+     * 生效范围(依据规则维度变化):NULL(默认维度:当前创建人的所有广告);其他(对应规则维度的ID字符串,'-'间隔)
      */
-    @NotEmpty
-    @ApiModelProperty("生效范围(依据规则维度变化):0(默认维度:当前创建人的所有广告);其他(对应规则维度的ID集合)")
+    @ApiModelProperty("生效范围(依据规则维度变化):NULL(默认维度:当前创建人的所有广告);其他(对应规则维度的ID集合)")
     private List<Long> effectiveScope;
 
     /**

+ 0 - 6
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/params/GameAdPolicyBatchOperationParam.java

@@ -23,12 +23,6 @@ public class GameAdPolicyBatchOperationParam {
     @ApiModelProperty("id列表(需要批量操作的ID)")
     private List<Long> ids;
 
-    /**
-     * 是否启用
-     */
-    @ApiModelProperty("是否启用")
-    private Boolean isStart;
-
     /**
      * 规则下的账号白名单(','间隔)
      */

+ 34 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/pojo/params/GameAdPolicyBatchStartParam.java

@@ -0,0 +1,34 @@
+package com.zanxiang.game.module.manage.pojo.params;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * @author tianhua
+ * @version 1.0
+ * @description: 批量操作参数列表
+ * @date 2023/12/28 15:53
+ */
+@Data
+public class GameAdPolicyBatchStartParam {
+
+    /**
+     * id列表(需要批量操作的ID)
+     */
+    @NotEmpty(message = "id列表不能传空")
+    @ApiModelProperty("id列表(需要批量操作的ID)")
+    private List<Long> ids;
+
+    /**
+     * 是否启用
+     */
+    @NotNull(message = "启用状态不能为空")
+    @ApiModelProperty("是否启用")
+    private Boolean isStart;
+
+}

+ 4 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/IGameAdMonitorService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zanxiang.game.module.manage.pojo.params.GameAdPolicyAddOrUpdateParam;
 import com.zanxiang.game.module.manage.pojo.params.GameAdPolicyBatchOperationParam;
+import com.zanxiang.game.module.manage.pojo.params.GameAdPolicyBatchStartParam;
 import com.zanxiang.game.module.manage.pojo.params.GameAdPolicyListParam;
 import com.zanxiang.game.module.manage.pojo.vo.GameAdPolicyListVO;
 import com.zanxiang.game.module.mybatis.entity.GameAdMonitor;
@@ -25,4 +26,7 @@ public interface IGameAdMonitorService extends IService<GameAdMonitor> {
     IPage<GameAdPolicyListVO> listOfPage(GameAdPolicyListParam param);
 
     boolean batchOperation(GameAdPolicyBatchOperationParam param);
+
+    boolean batchStart(GameAdPolicyBatchStartParam param);
+
 }

+ 21 - 5
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/GameAdMonitorServiceImpl.java

@@ -10,6 +10,7 @@ import com.zanxiang.erp.security.util.SecurityUtil;
 import com.zanxiang.game.module.manage.pojo.dto.GameDTO;
 import com.zanxiang.game.module.manage.pojo.params.GameAdPolicyAddOrUpdateParam;
 import com.zanxiang.game.module.manage.pojo.params.GameAdPolicyBatchOperationParam;
+import com.zanxiang.game.module.manage.pojo.params.GameAdPolicyBatchStartParam;
 import com.zanxiang.game.module.manage.pojo.params.GameAdPolicyListParam;
 import com.zanxiang.game.module.manage.pojo.vo.GameAdPolicyListVO;
 import com.zanxiang.game.module.manage.pojo.vo.GameAdRuleConditionVO;
@@ -65,7 +66,8 @@ public class GameAdMonitorServiceImpl extends ServiceImpl<GameAdMonitorMapper, G
                 .eq(GameAdMonitor::getGameId, param.getGameId())
                 .eq(GameAdMonitor::getMediaType, param.getMediaType())
                 .eq(GameAdMonitor::getRuleDimension, param.getRuleDimension())
-                .eq(GameAdMonitor::getEffectiveScope, StringUtils.join(param.getEffectiveScope().toArray(), "-"))
+                .eq(GameAdMonitor::getEffectiveScope, StringUtils.join(CollectionUtils.isEmpty(param.getEffectiveScope())
+                        ? null : param.getEffectiveScope().toArray(), "-"))
                 .eq(GameAdMonitor::getAlarmType, param.getAlarmType())
                 .eq(GameAdMonitor::getAlarmFrequency, param.getAlarmFrequency())
                 .eq(GameAdMonitor::getAlarmCount, param.getAlarmCount())
@@ -87,7 +89,8 @@ public class GameAdMonitorServiceImpl extends ServiceImpl<GameAdMonitorMapper, G
                 .gameId(param.getGameId())
                 .mediaType(param.getMediaType())
                 .ruleDimension(param.getRuleDimension())
-                .effectiveScope(StringUtils.join(param.getEffectiveScope().toArray(), "-"))
+                .effectiveScope(StringUtils.join(CollectionUtils.isEmpty(param.getEffectiveScope())
+                        ? null : param.getEffectiveScope().toArray(), "-"))
                 .isStart(param.getIsStart())
                 .alarmType(param.getAlarmType())
                 .alarmFrequency(param.getAlarmFrequency())
@@ -140,7 +143,6 @@ public class GameAdMonitorServiceImpl extends ServiceImpl<GameAdMonitorMapper, G
         //当前操作人员
         Long sysUserId = SecurityUtil.getUserId();
         return update(new LambdaUpdateWrapper<GameAdMonitor>()
-                .set(param.getIsStart() != null, GameAdMonitor::getIsStart, param.getIsStart())
                 .set(GameAdMonitor::getAccountWhitelist, StringUtils.join(CollectionUtils.isEmpty(param.getAccountWhitelist()) ?
                         null : param.getAccountWhitelist().toArray(), "-"))
                 .set(param.getAccountValidTime() != null, GameAdMonitor::getAccountValidTime, param.getAdValidTime())
@@ -153,6 +155,19 @@ public class GameAdMonitorServiceImpl extends ServiceImpl<GameAdMonitorMapper, G
         );
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean batchStart(GameAdPolicyBatchStartParam param) {
+        //当前操作人员
+        Long sysUserId = SecurityUtil.getUserId();
+        return update(new LambdaUpdateWrapper<GameAdMonitor>()
+                .set(GameAdMonitor::getIsStart, param.getIsStart())
+                .set(GameAdMonitor::getUpdateBy, sysUserId)
+                .set(GameAdMonitor::getUpdateTime, LocalDateTime.now())
+                .in(GameAdMonitor::getId, param.getIds())
+        );
+    }
+
     private GameAdPolicyListVO toVO(GameAdMonitor vo) {
         GameDTO game = gameService.getById(vo.getId());
         List<GameAdRuleConditionVO> ruleConditionVOList = JsonUtil.toObj(vo.getRuleCondition(), List.class);
@@ -165,8 +180,9 @@ public class GameAdMonitorServiceImpl extends ServiceImpl<GameAdMonitorMapper, G
                 .gameName(game == null ? null : game.getName())
                 .mediaType(vo.getMediaType())
                 .ruleDimension(vo.getRuleDimension())
-                .effectiveScope(Arrays.stream(vo.getEffectiveScope().split("-")).
-                        map(Long::valueOf).collect(Collectors.toList()))
+                .effectiveScope(StringUtils.isBlank(vo.getEffectiveScope()) ? null :
+                        Arrays.stream(vo.getEffectiveScope().split("-"))
+                        .map(Long::valueOf).collect(Collectors.toList()))
                 .isStart(vo.getIsStart())
                 .alarmType(vo.getAlarmType())
                 .alarmFrequency(vo.getAlarmFrequency())