Bladeren bron

根据媒体类型查询项目

yumeng 4 jaren geleden
bovenliggende
commit
e962fcde46

+ 50 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/ProjectMemberController.java

@@ -7,6 +7,7 @@ import cn.com.ctop.common.module.entity.SysUser;
 import cn.com.ctop.common.module.service.IProductService;
 import cn.com.ctop.common.module.service.IProjectService;
 import cn.com.ctop.common.module.service.ISysRoleExtService;
+import cn.com.ctop.common.module.service.IUserAllocationService;
 import cn.com.ctop.common.module.utils.Check;
 import cn.com.ctop.common.module.utils.ResultMapUtils;
 import cn.com.ctop.common.module.utils.StatusCode;
@@ -56,6 +57,8 @@ public class ProjectMemberController {
     private ISysUserService sysUserService;
     @Autowired
     private IAdvertiserService advertiserService;
+    @Autowired
+    private IUserAllocationService userAllocationService;
 
 
     /**
@@ -144,6 +147,53 @@ public class ProjectMemberController {
         return map;
     }
 
+
+    @PostMapping(value = "/participateListByMediaId")
+    public Result<List<JSONObject>> participateListByMediaId(@RequestBody JSONObject requestJson) {
+        Result<List<JSONObject>> result = new Result<>();
+        try {
+            String userId = requestJson.getString("userId");
+            if (Check.isNull(userId)) {
+                throw new Exception("请选择userId");
+            }
+            List<Integer> mediaIds = new ArrayList<>();
+            String type = requestJson.getString("type");
+            if ("kuaishou".equals(type)) {
+                mediaIds.add(2);
+                mediaIds.add(4);
+            } else if ("bytedance".equals(type)) {
+                mediaIds.add(1);
+                mediaIds.add(3);
+            }
+            if (Check.isNull(mediaIds)) {
+                throw new Exception("请选择媒体类型");
+            }
+            String roleCode = sysRoleService.getRoleCodeByUserId(userId);
+            if ("admin".equals(roleCode) || roleCode.contains("sale") || "meidaManager".equals(roleCode)) {
+                userId = null;
+            }
+            List<JSONObject> projectList = projectMemberService.getProjectByUserIdAndMediaIds(userId, mediaIds);
+            if (!Check.isNull(projectList)) {
+                for (int i = 0; i < projectList.size(); i++) {
+                    JSONObject project = projectList.get(i);
+                    List<JSONObject> accountList = userAllocationService.getAccountListByProject(project.getLong("projectId"));
+                    if (!Check.isNull(accountList)) {
+                        project.put("accountList", accountList);
+                    }
+                }
+            }
+            result.setSuccess(true);
+            result.setResult(projectList);
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            result.setSuccess(false);
+            result.setMessage(e.getMessage());
+        }
+        return result;
+    }
+
+
     @GetMapping("/projectList")
     public Map<String, Object> projectList() {
         Map<String, Object> result = new HashMap<>();

+ 12 - 10
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/mapper/ProjectMemberMapper.java

@@ -1,12 +1,12 @@
 package org.jeecg.modules.ctop.mapper;
 
 import cn.com.ctop.common.module.entity.Project;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.ctop.entity.ProjectMember;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * 项目成员
@@ -19,24 +19,26 @@ public interface ProjectMemberMapper extends BaseMapper<ProjectMember> {
 
     List<Long> selectProjectsByUserId(@Param("userId") String userId);
 
-    List<ProjectMember> adminProjects(@Param("mediaIds")List<Integer> mediaIds);
+    List<ProjectMember> adminProjects(@Param("mediaIds") List<Integer> mediaIds);
 
-    List<ProjectMember> designLeaderProjects(@Param("companyId")String companyId ,@Param("mediaIds")List<Integer> mediaIds);
+    List<ProjectMember> designLeaderProjects(@Param("companyId") String companyId, @Param("mediaIds") List<Integer> mediaIds);
 
-    List<ProjectMember> designProjects(@Param("userId")String userId, @Param("mediaIds")List<Integer> mediaIds);
+    List<ProjectMember> designProjects(@Param("userId") String userId, @Param("mediaIds") List<Integer> mediaIds);
 
-    List<ProjectMember> operationProjects(@Param("userId")String userId, @Param("mediaIds")List<Integer> mediaIds);
+    List<ProjectMember> operationProjects(@Param("userId") String userId, @Param("mediaIds") List<Integer> mediaIds);
 
-    String getRoleCodeByUserId(@Param("userId")String userId);
+    String getRoleCodeByUserId(@Param("userId") String userId);
 
-    String getCompanyIdByUserId(@Param("userId")String userId);
+    String getCompanyIdByUserId(@Param("userId") String userId);
 
-    List<ProjectMember> queryProjectMemberByUserId(@Param("userId")String userId, @Param("mediaIds")List<Integer> mediaIds);
+    List<ProjectMember> queryProjectMemberByUserId(@Param("userId") String userId, @Param("mediaIds") List<Integer> mediaIds);
 
 
-    List<ProjectMember> getSaleProjects(@Param("userId")String userId, @Param("mediaIds")List<Integer> mediaIds);
+    List<ProjectMember> getSaleProjects(@Param("userId") String userId, @Param("mediaIds") List<Integer> mediaIds);
 
     List<Long> getProjectByMap(@Param("userId") String userId);
 
-    List<Project> getProjectByUserId(@Param("userId")String userId);
+    List<Project> getProjectByUserId(@Param("userId") String userId);
+
+    List<JSONObject> getProjectByUserIdAndMediaIds(@Param("userId") String userId, @Param("mediaIds") List<Integer> mediaIds);
 }

+ 26 - 3
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/mapper/xml/ProjectMemberMapper.xml

@@ -16,9 +16,9 @@
         t1.project_name as projectName,
         t1.advertiser_id as advertiserId,
         (
-        select name from ctop_advertiser where  id = t1.advertiser_id
+        select name from ctop_advertiser where id = t1.advertiser_id
         )
-         as advertiserName,
+        as advertiserName,
         t1.media_id as mediaId,
         t1.max_bid as maxBid,
 
@@ -115,7 +115,7 @@
         b.project_name as projectName,
         a.advertiser_id as advertiserId,
         (
-        select name from ctop_advertiser where  id = a.advertiser_id
+        select name from ctop_advertiser where id = a.advertiser_id
         )
         as advertiserName,
         (SELECT media_id from ctop_project c where c.id=a.project_id limit 1) as mediaId
@@ -166,4 +166,27 @@
             member.user_id = #{userId}
     </select>
 
+
+    <select id="getProjectByUserIdAndMediaIds" resultType="com.alibaba.fastjson.JSONObject">
+        select
+        t2.id as 'projectId',
+        t2.project_name as 'projectName',
+        (select name from ctop_advertiser where id = t2.advertiser_id) as 'advertiserName'
+        from ctop_project_member t1
+        left join ctop_project t2
+        on t1.project_id = t2.id
+        where 1 = 1
+        <if test="userId !=null and userId!=''">
+            and t1.user_id = #{userId}
+        </if>
+        and t2.media_id in
+        <foreach collection="mediaIds" item="item" separator=","
+                 open="(" close=")">
+            #{item}
+        </foreach>
+        group by t2.id
+        order by t2.create_time desc
+    </select>
+
+
 </mapper>

+ 4 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/IProjectMemberService.java

@@ -2,6 +2,8 @@ package org.jeecg.modules.ctop.service;
 
 import cn.com.ctop.common.module.entity.Project;
 import cn.com.ctop.common.module.entity.SysUser;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.ctop.entity.ProjectMember;
 
@@ -33,4 +35,6 @@ public interface IProjectMemberService extends IService<ProjectMember> {
     List<Long> getProjectByMap(String userId);
 
     List<Project> selectListByUserId(String userId);
+
+    List<JSONObject> getProjectByUserIdAndMediaIds(String userId, List<Integer> mediaIds);
 }

+ 11 - 3
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/impl/ProjectMemberServiceImpl.java

@@ -7,6 +7,8 @@ import cn.com.ctop.common.module.mapper.UserAllocationMapper;
 import cn.com.ctop.common.module.service.ISysRoleExtService;
 import cn.com.ctop.common.module.utils.Check;
 import cn.com.ctop.common.module.utils.CtopAdConstant;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.apache.commons.lang.ArrayUtils;
@@ -103,13 +105,13 @@ public class ProjectMemberServiceImpl extends ServiceImpl<ProjectMemberMapper, P
     }
 
     @Override
-    public List<Map<String, Object>> getProjectAccountByUserId(String userId,String mediaType) {
+    public List<Map<String, Object>> getProjectAccountByUserId(String userId, String mediaType) {
         List<Map<String, Object>> result = new ArrayList<>();
         List<Integer> mediaList = new ArrayList<>();
-        if(mediaType.equals(CtopAdConstant.PLATFORM_TYPE_BYTEDANCE)){
+        if (mediaType.equals(CtopAdConstant.PLATFORM_TYPE_BYTEDANCE)) {
             mediaList.add(CtopAdConstant.PLATFORM_TYPE_BYTEDANCE_INT);
             mediaList.add(CtopAdConstant.PLATFORM_TYPE_BYTEDANCE_INSIDE_INT);
-        }else if(mediaType.equals(CtopAdConstant.PLATFORM_TYPE_KUAISHOU)){
+        } else if (mediaType.equals(CtopAdConstant.PLATFORM_TYPE_KUAISHOU)) {
             mediaList.add(CtopAdConstant.PLATFORM_TYPE_KUAISHOU_INT);
             mediaList.add(CtopAdConstant.PLATFORM_TYPE_KUAISHOU_INSIDE_INT);
         }
@@ -199,6 +201,7 @@ public class ProjectMemberServiceImpl extends ServiceImpl<ProjectMemberMapper, P
         return memberMapper.getProjectByUserId(userId);
     }
 
+
     //视频报表
     @Override
     public List<ProjectMember> getOwnProjects(List<Integer> mediaIds) {
@@ -222,5 +225,10 @@ public class ProjectMemberServiceImpl extends ServiceImpl<ProjectMemberMapper, P
         return projectMemberList;
     }
 
+    @Override
+    public List<JSONObject> getProjectByUserIdAndMediaIds(String userId, List<Integer> mediaIds) {
+        return memberMapper.getProjectByUserIdAndMediaIds(userId, mediaIds);
+    }
+
 
 }

+ 3 - 0
module-common/src/main/java/cn/com/ctop/common/module/mapper/UserAllocationMapper.java

@@ -1,6 +1,7 @@
 package cn.com.ctop.common.module.mapper;
 
 import cn.com.ctop.common.module.entity.UserAllocation;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -15,4 +16,6 @@ import java.util.List;
 public interface UserAllocationMapper extends BaseMapper<UserAllocation> {
     List<UserAllocation> selectAccountListByProjectId(@Param("projectId")Long projectId);
     String queryAdvertiserId(@Param("accountId")Long accountId);
+
+    List<JSONObject> getAccountListByProject(@Param("projectId") Long projectId);
 }

+ 10 - 0
module-common/src/main/java/cn/com/ctop/common/module/mapper/xml/UserAllocationMapper.xml

@@ -21,4 +21,14 @@
             ctop_user_allocation
         where account_id=#{accountId}
     </select>
+
+    <select id="getAccountListByProject" resultType="com.alibaba.fastjson.JSONObject">
+       select
+       account_id as 'accountId',
+       user_name as 'userName',
+       auth_name as 'authName'
+       from ctop_user_allocation
+       where project_id = #{projectId}
+       order by create_time desc
+    </select>
 </mapper>

+ 2 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/IUserAllocationService.java

@@ -26,4 +26,6 @@ public interface IUserAllocationService extends IService<UserAllocation> {
     List<UserAllocation> getByMediaId(String mediaId);
 
     String getAdvertiserIdByAccountId(Long accountId);
+
+    List<JSONObject> getAccountListByProject(Long projectId);
 }

+ 21 - 16
module-common/src/main/java/cn/com/ctop/common/module/service/impl/UserAllocationServiceImpl.java

@@ -36,7 +36,7 @@ public class UserAllocationServiceImpl extends ServiceImpl<UserAllocationMapper,
     }
 
     @Override
-    public List<UserAllocation> getByParams(Long projectId, String systemType,Integer accountStatus) {
+    public List<UserAllocation> getByParams(Long projectId, String systemType, Integer accountStatus) {
         QueryWrapper<UserAllocation> queryWrapper = new QueryWrapper<>();
         if (null != projectId && projectId != 0) {
             queryWrapper.eq("project_id", projectId);
@@ -44,8 +44,8 @@ public class UserAllocationServiceImpl extends ServiceImpl<UserAllocationMapper,
         if (null != systemType && !"".equals(systemType.trim())) {
             queryWrapper.eq("system_type", systemType);
         }
-        if(null!=accountStatus){
-            queryWrapper.eq("account_status",accountStatus);
+        if (null != accountStatus) {
+            queryWrapper.eq("account_status", accountStatus);
         }
         queryWrapper.orderByDesc("id");
         return this.list(queryWrapper);
@@ -53,34 +53,34 @@ public class UserAllocationServiceImpl extends ServiceImpl<UserAllocationMapper,
 
     @Override
     public Map<String, Object> getPangolinAccountListByParams(String userId, JSONObject data) {
-        Map<String,Object>result = new HashMap<>();
+        Map<String, Object> result = new HashMap<>();
         Long projectId = data.getLong("project_id");
-        QueryWrapper<UserAllocation>queryWrapper = new QueryWrapper<>();
+        QueryWrapper<UserAllocation> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("media_id", CtopAdConstant.PLATFORM_TYPE_PANGOLIN);
-        if(null != userId&&!"".equals(userId.trim())){
-            queryWrapper.eq("user_id",userId);
+        if (null != userId && !"".equals(userId.trim())) {
+            queryWrapper.eq("user_id", userId);
         }
-        if(null != projectId&&projectId != 0){
-            queryWrapper.eq("project_id",projectId);
+        if (null != projectId && projectId != 0) {
+            queryWrapper.eq("project_id", projectId);
         }
         List<UserAllocation> allocations = this.list(queryWrapper);
         ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS);
-        result.put("data",allocations);
+        result.put("data", allocations);
         return result;
     }
 
     @Override
     public Map<String, Object> getPangolinProjectListByParams(String userId) {
-        Map<String,Object>result = new HashMap<>();
-        QueryWrapper<UserAllocation>queryWrapper = new QueryWrapper<>();
+        Map<String, Object> result = new HashMap<>();
+        QueryWrapper<UserAllocation> queryWrapper = new QueryWrapper<>();
         queryWrapper.select("distinct project_id,project_name");
-        queryWrapper.eq("media_id",CtopAdConstant.PLATFORM_TYPE_PANGOLIN);
-        if(null != userId&&!"".equals(userId.trim())){
-            queryWrapper.eq("user_id",userId);
+        queryWrapper.eq("media_id", CtopAdConstant.PLATFORM_TYPE_PANGOLIN);
+        if (null != userId && !"".equals(userId.trim())) {
+            queryWrapper.eq("user_id", userId);
         }
         List<UserAllocation> allocations = this.list(queryWrapper);
         ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS);
-        result.put("data",allocations);
+        result.put("data", allocations);
         return result;
     }
 
@@ -98,4 +98,9 @@ public class UserAllocationServiceImpl extends ServiceImpl<UserAllocationMapper,
     public String getAdvertiserIdByAccountId(Long accountId) {
         return userAllocationMapper.queryAdvertiserId(accountId);
     }
+
+    @Override
+    public List<JSONObject> getAccountListByProject(Long projectId) {
+        return userAllocationMapper.getAccountListByProject(projectId);
+    }
 }