Переглянути джерело

feat : 推广渠道接口提交

bilingfeng 2 роки тому
батько
коміт
d7718e8120

+ 18 - 0
game-module/game-common/src/main/java/com/zanxiang/common/enums/PromoProviderEnum.java

@@ -3,6 +3,8 @@ package com.zanxiang.common.enums;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 
+import java.util.Objects;
+
 /**
  * @author : lingfeng
  * @time : 2022-10-26
@@ -36,4 +38,20 @@ public enum PromoProviderEnum {
      * 推广媒体
      */
     private String providerName;
+
+    /**
+     * 被类型名称
+     *
+     * @param type 类型
+     * @return {@link String}
+     */
+    public static String getNameByType(Integer type) {
+        PromoProviderEnum[] values = PromoProviderEnum.values();
+        for (PromoProviderEnum promoProviderEnum : values) {
+            if (Objects.equals(promoProviderEnum.getProviderId(), type)) {
+                return promoProviderEnum.getProviderName();
+            }
+        }
+        return null;
+    }
 }

+ 1 - 1
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/dto/PromoAccountDTO.java

@@ -58,7 +58,7 @@ public class PromoAccountDTO {
     /**
      * 推广账号类型
      */
-    private String accountType;
+    private Integer accountType;
 
     /**
      * 备注

+ 32 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/dto/PromoSiteDTO.java

@@ -0,0 +1,32 @@
+package com.zanxiang.manage.domain.dto;
+
+import lombok.Data;
+
+/**
+ * @author : lingfeng
+ * @time : 2022-11-24
+ * @description : 推广版位位置
+ */
+@Data
+public class PromoSiteDTO {
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 推广媒体id
+     */
+    private Long mediaId;
+
+    /**
+     * 媒体版位
+     */
+    private String plateSite;
+
+    /**
+     * 媒体位置
+     */
+    private String mediaSite;
+}

+ 19 - 1
game-module/game-manage/src/main/java/com/zanxiang/manage/domain/vo/PromoChannelListVO.java

@@ -19,6 +19,12 @@ public class PromoChannelListVO {
     @ApiModelProperty(notes = "主键")
     private Long id;
 
+    /**
+     * 推广账号主键id
+     */
+    @ApiModelProperty(notes = "推广账号主键id")
+    private Long accountId;
+
     /**
      * 投手id
      */
@@ -53,7 +59,13 @@ public class PromoChannelListVO {
      * 推广媒体
      */
     @ApiModelProperty(notes = "推广媒体")
-    private Long mediaName;
+    private String mediaName;
+
+    /**
+     * 推广版位位置id
+     */
+    @ApiModelProperty(notes = "推广版位位置id")
+    private Long promoSiteId;
 
     /**
      * 媒体位置
@@ -67,6 +79,12 @@ public class PromoChannelListVO {
     @ApiModelProperty(notes = "媒体版位")
     private String plateSite;
 
+    /**
+     * 推广服务商id
+     */
+    @ApiModelProperty(notes = "推广服务商id")
+    private Integer providerId;
+
     /**
      * 推广服务商
      */

+ 45 - 8
game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/PromoChannelServiceImpl.java

@@ -7,19 +7,17 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zanxiang.common.enums.DeleteEnum;
+import com.zanxiang.common.enums.PromoAccountTypeEnum;
+import com.zanxiang.common.enums.PromoProviderEnum;
 import com.zanxiang.common.enums.StatusEnum;
 import com.zanxiang.common.text.UUID;
 import com.zanxiang.common.utils.bean.BeanUtils;
-import com.zanxiang.manage.domain.dto.PromoChannelDTO;
-import com.zanxiang.manage.domain.dto.PromoMediaDTO;
+import com.zanxiang.manage.domain.dto.*;
 import com.zanxiang.manage.domain.params.PromoChannelAddUpdateParam;
 import com.zanxiang.manage.domain.params.PromoChannelListParam;
 import com.zanxiang.manage.domain.vo.PromoChannelChoiceVO;
 import com.zanxiang.manage.domain.vo.PromoChannelListVO;
-import com.zanxiang.manage.service.PromoAccountService;
-import com.zanxiang.manage.service.PromoChannelService;
-import com.zanxiang.manage.service.PromoMediaService;
-import com.zanxiang.manage.service.PromoSiteService;
+import com.zanxiang.manage.service.*;
 import com.zanxiang.mybatis.entity.PromoAccount;
 import com.zanxiang.mybatis.entity.PromoChannel;
 import com.zanxiang.mybatis.entity.PromoSite;
@@ -53,6 +51,12 @@ public class PromoChannelServiceImpl extends ServiceImpl<PromoChannelMapper, Pro
     @Autowired
     private PromoSiteService promoSiteService;
 
+    @Autowired
+    private GameService gameService;
+
+    @Autowired
+    private GameCategoryService gameCategoryService;
+
     /**
      * 查询推广媒体列表
      *
@@ -62,9 +66,13 @@ public class PromoChannelServiceImpl extends ServiceImpl<PromoChannelMapper, Pro
     @Override
     public IPage<PromoChannelListVO> list(PromoChannelListParam param) {
         Map<Long, PromoMediaDTO> promoMediaMap = promoMediaService.promoMediaMap();
+        Map<Long, PromoSiteDTO> promoSiteMap = promoSiteService.promoSiteMap();
+        Map<Long, PromoAccountDTO> promoAccountMap = promoAccountService.promoAccountMap();
+        Map<Long, GameDTO> gameMap = gameService.gameMap();
+        Map<Long, GameCategoryDTO> gameCategoryMap = gameCategoryService.gameCategoryMap();
         return page(param.toPage(), new QueryWrapper<PromoChannel>().lambda()
                 .orderByDesc(PromoChannel::getCreateTime))
-                .convert(promoAccount -> this.toVo(promoMediaMap, promoAccount));
+                .convert(promoAccount -> this.toVo(promoAccountMap, promoMediaMap, promoAccount, promoSiteMap, gameMap, gameCategoryMap));
     }
 
     /**
@@ -74,11 +82,40 @@ public class PromoChannelServiceImpl extends ServiceImpl<PromoChannelMapper, Pro
      * @param promoChannel  推广渠道
      * @return {@link PromoChannelListVO}
      */
-    private PromoChannelListVO toVo(Map<Long, PromoMediaDTO> promoMediaMap, PromoChannel promoChannel) {
+    private PromoChannelListVO toVo(Map<Long, PromoAccountDTO> promoAccountMap, Map<Long, PromoMediaDTO> promoMediaMap, PromoChannel promoChannel,
+                                    Map<Long, PromoSiteDTO> promoSiteMap, Map<Long, GameDTO> gameMap, Map<Long, GameCategoryDTO> gameCategoryMap) {
         PromoChannelListVO promoChannelListVO = BeanUtils.copy(promoChannel, PromoChannelListVO.class);
         if (Objects.isNull(promoChannelListVO)) {
             return null;
         }
+        PromoAccountDTO promoAccountDTO = promoAccountMap.get(promoChannelListVO.getAccountId());
+        if (promoAccountDTO != null) {
+            promoChannelListVO.setPitcherId(promoAccountDTO.getPitcherId());
+            promoChannelListVO.setPitcherName(promoAccountDTO.getPitcherName());
+            promoChannelListVO.setPitcherGroupId(promoAccountDTO.getPitcherGroupId());
+            promoChannelListVO.setPitcherGroupName(promoAccountDTO.getPitcherGroupName());
+            promoChannelListVO.setAccountName(promoAccountDTO.getName());
+            promoChannelListVO.setAccountTypeName(PromoAccountTypeEnum.getNameByType(promoAccountDTO.getAccountType()));
+        }
+        PromoMediaDTO promoMediaDTO = promoMediaMap.get(promoChannelListVO.getMediaId());
+        if (promoMediaDTO != null) {
+            promoChannelListVO.setMediaName(promoMediaDTO.getName());
+        }
+        PromoSiteDTO promoSiteDTO = promoSiteMap.get(promoChannelListVO.getPromoSiteId());
+        if (promoSiteDTO != null) {
+            promoChannelListVO.setMediaSite(promoSiteDTO.getMediaSite());
+            promoChannelListVO.setPlateSite(promoSiteDTO.getPlateSite());
+        }
+        GameDTO gameDTO = gameMap.get(promoChannelListVO.getGameId());
+        if (gameDTO != null){
+            promoChannelListVO.setGameName(gameDTO.getName());
+            GameCategoryDTO gameCategoryDTO = gameCategoryMap.get(gameDTO.getCategory());
+            if (gameCategoryDTO != null){
+                promoChannelListVO.setGameCategory(gameCategoryDTO.getId());
+                promoChannelListVO.setGameCategoryName(gameCategoryDTO.getName());
+            }
+        }
+        promoChannelListVO.setProviderName(PromoProviderEnum.getNameByType(promoChannelListVO.getProviderId()));
         return promoChannelListVO;
     }
 

+ 20 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/service/Impl/PromoSiteServiceImpl.java

@@ -4,12 +4,14 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.zanxiang.common.enums.DeleteEnum;
 import com.zanxiang.common.enums.StatusEnum;
 import com.zanxiang.common.exception.BaseException;
 import com.zanxiang.common.utils.bean.BeanUtils;
 import com.zanxiang.manage.domain.dto.PromoMediaDTO;
+import com.zanxiang.manage.domain.dto.PromoSiteDTO;
 import com.zanxiang.manage.domain.params.PromoSiteAddOrUpdateParam;
 import com.zanxiang.manage.domain.params.PromoSiteListParam;
 import com.zanxiang.manage.domain.vo.PromoSiteLinkageChoiceVO;
@@ -26,9 +28,12 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 /**
  * @author : lingfeng
@@ -42,6 +47,21 @@ public class PromoSiteServiceImpl extends ServiceImpl<PromoSiteMapper, PromoSite
     @Autowired
     private PromoMediaService promoMediaService;
 
+    /**
+     * 推广媒体位置版位信息
+     *
+     * @return : 返回所有推广媒体位置版位
+     */
+    @Override
+    public Map<Long, PromoSiteDTO> promoSiteMap() {
+        List<PromoSite> promoSiteList = super.list();
+        if (CollectionUtils.isEmpty(promoSiteList)) {
+            return Collections.emptyMap();
+        }
+        List<PromoSiteDTO> promoSiteDTOList = BeanUtils.copyList(promoSiteList, PromoSiteDTO.class);
+        return promoSiteDTOList.stream().collect(Collectors.toMap(PromoSiteDTO::getId, Function.identity()));
+    }
+
     /**
      * 媒体版位位置联动选择列表
      *

+ 9 - 0
game-module/game-manage/src/main/java/com/zanxiang/manage/service/PromoSiteService.java

@@ -2,6 +2,7 @@ package com.zanxiang.manage.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.zanxiang.manage.domain.dto.PromoSiteDTO;
 import com.zanxiang.manage.domain.params.PromoSiteAddOrUpdateParam;
 import com.zanxiang.manage.domain.params.PromoSiteListParam;
 import com.zanxiang.manage.domain.vo.PromoSiteLinkageChoiceVO;
@@ -9,6 +10,7 @@ import com.zanxiang.manage.domain.vo.PromoSiteListVO;
 import com.zanxiang.mybatis.entity.PromoSite;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author : lingfeng
@@ -17,6 +19,13 @@ import java.util.List;
  */
 public interface PromoSiteService extends IService<PromoSite> {
 
+    /**
+     * 推广媒体位置版位信息
+     *
+     * @return : 返回所有推广媒体位置版位
+     */
+    Map<Long, PromoSiteDTO> promoSiteMap();
+
     /**
      * 媒体版位位置联动选择列表
      *