yumeng 4 years ago
parent
commit
225cfbb138

+ 7 - 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/UserAllocationController.java

@@ -100,11 +100,14 @@ public class UserAllocationController {
         }
         List<Integer> mediaList = new ArrayList<>();
         mediaList.add(mediaId);
-        List<ProjectMember> projectList = projectMemberService.getOwnProjects(mediaList);
-        projectMemberService.getOwnProjects(mediaList);
+    //    List<ProjectMember> projectList = projectMemberService.getOwnProjects(mediaList);
+        List<ProjectMember> productList = projectMemberService.getOwnProducts(mediaList,productId);
+        log.info("產品列表:{}",productList);
+
+      //  projectMemberService.getOwnProjects(mediaList);
         List<ProjectMember> projectMemberList = new ArrayList<>();
-        for (ProjectMember projectMember: projectList){
-            if (projectMember.getProductId() != productId){
+        for (ProjectMember projectMember: productList){
+            if (!projectMember.getProductId().equals(productId)){
                 continue;
             }
             List<UserAllocation> userAllocationList = userAllocationService.getAccountListByUserIdAndProductId(userId,projectMember.getProjectId(),productId);

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

@@ -48,4 +48,6 @@ public interface ProjectMemberMapper extends BaseMapper<ProjectMember> {
     List<Long> getProductByAccountIds(@Param("accountIds")JSONArray accountIds);
 
     List<JSONObject> getProjectByUserIdAndMediaIds(@Param("userId") String userId, @Param("mediaIds") List<Integer> mediaIds);
+
+    List<ProjectMember> getProductIds(@Param("userId") String userId,@Param("mediaList") List<Integer> mediaList);
 }

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

@@ -82,6 +82,30 @@
         </foreach>
     </select>
 
+    <select id="getProductIds" resultType="org.jeecg.modules.ctop.entity.ProjectMember">
+        select
+        a.project_id as projectId,
+        b.project_name as projectName,
+        b.advertiser_id as advertiserId,
+        b.advertiser_name as advertiserName,
+        b.media_id as mediaId,
+        b.product_id as productId
+        from
+        ctop_project_member a
+        left join ctop_project b on a.project_id = b.id
+        where b.product_id = #{productId}
+        <if test="userId !=null and userId!=''">
+            and a.user_id = #{userId}
+        </if>
+        and b.media_id in
+        <foreach collection="mediaIds" item="item" separator=","
+                 open="(" close=")">
+            #{item}
+        </foreach>
+        group by a.project_id
+    </select>
+
+
     <!-- 运营和运营负责人展示所在项目视频 -->
     <select id="operationProjects" resultType="org.jeecg.modules.ctop.entity.ProjectMember">
         select
@@ -202,7 +226,7 @@
     </select>
 
     <select id="getProductByAccountIds" resultType="java.lang.Long">
-        select  DISTINCT(product_id) from ctop_project where product_id is not NULL  and id in
+        select DISTINCT(product_id) from ctop_project where product_id is not NULL and id in
         (SELECT
         project_id
         FROM

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

@@ -48,4 +48,6 @@ public interface IProjectMemberService extends IService<ProjectMember> {
     List<Long> getProductByAccountIds(JSONArray accountIds);
 
     List<ProjectMember> getMapsByProjectList(List<ProjectMember> projectMembers);
+
+    List<ProjectMember> getOwnProducts(List<Integer> mediaList, Long productId);
 }

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

@@ -277,10 +277,12 @@ public class ProjectMemberServiceImpl extends ServiceImpl<ProjectMemberMapper, P
     public List<Long> getProjectByAccountIds(JSONArray accountIds) {
         return memberMapper.getProjectByAccountIds(accountIds);
     }
+
     @Override
-    public List<Long> getProductByAccountIds(JSONArray accountIds){
+    public List<Long> getProductByAccountIds(JSONArray accountIds) {
         return memberMapper.getProductByAccountIds(accountIds);
     }
+
     //视频报表
     @Override
     public List<ProjectMember> getOwnProjects(List<Integer> mediaIds) {
@@ -426,6 +428,29 @@ public class ProjectMemberServiceImpl extends ServiceImpl<ProjectMemberMapper, P
         return projectMembers;
     }
 
+    @Override
+    public List<ProjectMember> getOwnProducts(List<Integer> mediaList, Long productId) {
+        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        String userId = sysUser.getId();
+        String roleCode = memberMapper.getRoleCodeByUserId(userId);
+
+        //角色权限判断
+        List<ProjectMember> projectMemberList = null;
+        if ("admin".equals(roleCode)) {
+            userId = null;
+        } else {
+            //如果以上角色都不是的话直接查询此角色所属项目
+         //   projectMemberList = memberMapper.designProjects(userId, mediaList);
+            projectMemberList = memberMapper.getProductIds(userId, mediaList);
+        }
+
+        if (null == projectMemberList) {
+            projectMemberList = new ArrayList<>();
+        }
+
+        return projectMemberList;
+    }
+
 }