Ver código fonte

查询项目 添加公司约束

zhaoxian 3 anos atrás
pai
commit
ae47985e85

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

@@ -22,7 +22,7 @@ public interface ProjectMemberMapper extends BaseMapper<ProjectMember> {
 
     List<Long> selectProductsByUserId(@Param("userId") String userId);
 
-    List<ProjectMember> adminProjects(@Param("mediaIds") List<Integer> mediaIds);
+    List<ProjectMember> adminProjects(@Param("mediaIds") List<Integer> mediaIds, @Param("companyId") String companyId);
 
     List<ProjectMember> designLeaderProjects(@Param("companyId") String companyId, @Param("mediaIds") List<Integer> mediaIds);
 
@@ -34,7 +34,7 @@ public interface ProjectMemberMapper extends BaseMapper<ProjectMember> {
 
     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, @Param("companyId") String companyId);
 
 
     List<ProjectMember> getSaleProjects(@Param("userId") String userId, @Param("mediaIds") List<Integer> mediaIds);
@@ -51,7 +51,7 @@ public interface ProjectMemberMapper extends BaseMapper<ProjectMember> {
 
     List<ProjectMember> getProductIds(@Param("userId") String userId, @Param("mediaList") List<Integer> mediaList, @Param("productId") Long productId);
 
-    List<Long> getProjectIdsByProductId(@Param("productId") Long productId, @Param("userId") String userId, @Param("companyId") String companyId,@Param("mediaId") String mediaId);
+    List<Long> getProjectIdsByProductId(@Param("productId") Long productId, @Param("userId") String userId, @Param("companyId") String companyId, @Param("mediaId") String mediaId);
 
     List<ProjectMember> getlistByUserId(@Param("userId") String userId);
 }

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

@@ -3,17 +3,19 @@
 <mapper namespace="org.jeecg.modules.ctop.mapper.ProjectMemberMapper">
 
     <select id="selectProjectsByUserId" resultType="java.lang.Long">
-        select
-        DISTINCT(project_id)
-         from ctop_project_member
+        select DISTINCT(project_id)
+        from ctop_project_member
         where user_id = #{userId}
     </select>
 
     <select id="selectProductsByUserId" resultType="java.lang.Long">
-        select  DISTINCT(product_id) from ctop_project where product_id is not NULL  and id in
-         (select
-              DISTINCT(project_id)
-          from ctop_project_member where user_id = #{userId})
+        select DISTINCT(product_id)
+        from ctop_project
+        where product_id is not NULL
+          and id in
+              (select DISTINCT(project_id)
+               from ctop_project_member
+               where user_id = #{userId})
     </select>
 
     <!-- 设计师展示所有自己的角色下制作的视频 -->
@@ -38,6 +40,9 @@
                  open="(" close=")">
             #{item}
         </foreach>
+        <if test="companyId !=null and companyId!=''">
+            and company_id = #{companyId}
+        </if>
         order by create_time desc
     </select>
 
@@ -127,19 +132,15 @@
     </select>
 
     <select id="getRoleCodeByUserId" resultType="string">
-        select
-        role_code
-        from
-        sys_user_role a
-        left join sys_role b on a.role_id = b.id
+        select role_code
+        from sys_user_role a
+                 left join sys_role b on a.role_id = b.id
         where a.user_id = #{userId}
     </select>
 
     <select id="getCompanyIdByUserId" resultType="string">
-            select
-            company_id
-        from
-        user_company
+        select company_id
+        from user_company
         where user_id = #{userId}
     </select>
 
@@ -174,6 +175,9 @@
                  open="(" close=")">
             #{item}
         </foreach>
+        <if test="companyId !=null and companyId!=''">
+            and t1.company_id = #{companyId}
+        </if>
         order by t1.create_time desc
     </select>
 
@@ -204,12 +208,10 @@
         group by project_id
     </select>
     <select id="getProjectByUserId" resultType="cn.com.ctop.common.module.entity.Project">
-        select
-            project.*
-        from
-            ctop_project_member member left join ctop_project project on project.id = member.project_id
-        where
-            member.user_id = #{userId}
+        select project.*
+        from ctop_project_member member
+                 left join ctop_project project on project.id = member.project_id
+        where member.user_id = #{userId}
     </select>
 
     <select id="getProjectByAccountIds" resultType="java.lang.Long">
@@ -274,18 +276,18 @@
         ctop_project t1
         LEFT JOIN ctop_project_member t2 ON t1.id = t2.project_id
         <where>
-        <if test="userId != null and userId != ''">
-             AND t2.user_id = #{userId}
-        </if>
-        <if test="mediaId != null and mediaId != ''">
-             AND t1.media_id = #{mediaId}
-        </if>
-        <if test="companyId != null and companyId != ''">
-            AND t1.company_id = #{companyId}
-        </if>
-        <if test="productId != null and productId != ''">
-            AND t1.product_id = #{productId}
-        </if>
+            <if test="userId != null and userId != ''">
+                AND t2.user_id = #{userId}
+            </if>
+            <if test="mediaId != null and mediaId != ''">
+                AND t1.media_id = #{mediaId}
+            </if>
+            <if test="companyId != null and companyId != ''">
+                AND t1.company_id = #{companyId}
+            </if>
+            <if test="productId != null and productId != ''">
+                AND t1.product_id = #{productId}
+            </if>
         </where>
         GROUP BY
         t1.id
@@ -293,8 +295,8 @@
     <select id="getlistByUserId" resultType="org.jeecg.modules.ctop.entity.ProjectMember">
         select cp.id as id, cp.project_name as project_name, cp.media_id as media_id, ca.name as advertiser_name
         from ctop_project_member cpm
-                 left join ctop_project cp on cpm.project_id = cp.id
-                 left join ctop_advertiser ca on ca.id = cp.advertiser_id
+        left join ctop_project cp on cpm.project_id = cp.id
+        left join ctop_advertiser ca on ca.id = cp.advertiser_id
         where 1=1
         <if test="userId!=null">
             and cpm.user_id = #{userId}

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

@@ -2,11 +2,13 @@ package org.jeecg.modules.ctop.service.impl;
 
 import cn.com.ctop.common.module.entity.Project;
 import cn.com.ctop.common.module.entity.UserAllocation;
+import cn.com.ctop.common.module.entity.UserCompany;
 import cn.com.ctop.common.module.mapper.UserAllocationMapper;
 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.ISysUserService;
+import cn.com.ctop.common.module.service.IUserCompanyService;
 import cn.com.ctop.common.module.utils.Check;
 import cn.com.ctop.common.module.utils.CtopAdConstant;
 import com.alibaba.fastjson.JSONArray;
@@ -24,6 +26,7 @@ import org.jeecg.modules.ctop.service.IProjectMemberService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -52,8 +55,10 @@ public class ProjectMemberServiceImpl extends ServiceImpl<ProjectMemberMapper, P
     private IAdvertiserService advertiserService;
     @Autowired
     private IProductService productService;
+    @Resource
+    private IUserCompanyService userCompanyService;
 
-    private static final String[] PERMISSION_VIEW_PROJECT = {"admin", "saleDirector", "sale", "saleAssistant", "saleAm", "meidaManager"};
+    private static final String[] PERMISSION_VIEW_PROJECT = {"saleDirector", "sale", "saleAssistant", "saleAm", "meidaManager"};
 
     @Override
     public void addMember(SysUser sysUser, Project project) {
@@ -112,7 +117,7 @@ public class ProjectMemberServiceImpl extends ServiceImpl<ProjectMemberMapper, P
         } else if ("designTeamLeader".equals(roleCode)) {
             projectMemberList = memberMapper.designLeaderProjects(companyId, mediaIds);
         } else if ("admin".equals(roleCode)) {
-            projectMemberList = memberMapper.adminProjects(mediaIds);
+            projectMemberList = memberMapper.adminProjects(mediaIds, null);
         } else if ("operator".equals(roleCode) || "operationAssistant".equals(roleCode) || "touTiaoOperationManager".equals(roleCode)) {
             projectMemberList = memberMapper.designProjects(userId, mediaIds);
         } else {
@@ -142,7 +147,7 @@ public class ProjectMemberServiceImpl extends ServiceImpl<ProjectMemberMapper, P
         } else if ("designTeamLeader".equals(roleCode)) {
             projectMemberList = memberMapper.designLeaderProjects(companyId, mediaIds);
         } else if ("admin".equals(roleCode)) {
-            projectMemberList = memberMapper.adminProjects(mediaIds);
+            projectMemberList = memberMapper.adminProjects(mediaIds, null);
         } else if ("operator".equals(roleCode) || "operationAssistant".equals(roleCode) || "touTiaoOperationManager".equals(roleCode)) {
             projectMemberList = memberMapper.designProjects(userId, mediaIds);
         } else {
@@ -238,11 +243,18 @@ public class ProjectMemberServiceImpl extends ServiceImpl<ProjectMemberMapper, P
     }
 
     private List<ProjectMember> queryProjectMemberBy(String userId, List<Integer> mediaIds) {
+        UserCompany userCompany = userCompanyService.getByUserId(userId);
+        if (Check.isNull(userCompany)) {
+            return null;
+        }
+        String companyId = userCompany.getCompanyId();
         String roleCode = memberMapper.getRoleCodeByUserId(userId);
-        if (ArrayUtils.contains(PERMISSION_VIEW_PROJECT, roleCode)) {
-            return memberMapper.adminProjects(mediaIds);
+        if ("admin".equals(roleCode)) {
+            return memberMapper.adminProjects(mediaIds, null);
+        } else if (ArrayUtils.contains(PERMISSION_VIEW_PROJECT, roleCode)) {
+            return memberMapper.adminProjects(mediaIds, companyId);
         }
-        return memberMapper.queryProjectMemberByUserId(userId, mediaIds);
+        return memberMapper.queryProjectMemberByUserId(userId, mediaIds, companyId);
     }
 
 
@@ -256,7 +268,7 @@ public class ProjectMemberServiceImpl extends ServiceImpl<ProjectMemberMapper, P
         //角色权限判断
         List<ProjectMember> projectMemberList = null;
         if ("admin".equals(roleCode)) {
-            projectMemberList = memberMapper.adminProjects(mediaIds);
+            projectMemberList = memberMapper.adminProjects(mediaIds, null);
         } else {
             //如果以上角色都不是的话直接查询此角色所属项目
             projectMemberList = memberMapper.getSaleProjects(userId, mediaIds);
@@ -299,7 +311,7 @@ public class ProjectMemberServiceImpl extends ServiceImpl<ProjectMemberMapper, P
         //角色权限判断
         List<ProjectMember> projectMemberList = null;
         if ("admin".equals(roleCode)) {
-            projectMemberList = memberMapper.adminProjects(mediaIds);
+            projectMemberList = memberMapper.adminProjects(mediaIds, null);
         } else {
             //如果以上角色都不是的话直接查询此角色所属项目
             projectMemberList = memberMapper.designProjects(userId, mediaIds);
@@ -330,7 +342,7 @@ public class ProjectMemberServiceImpl extends ServiceImpl<ProjectMemberMapper, P
         }
 
         //查询登录账号下的项目
-        List<ProjectMember> projectMemberList = this.memberMapper.adminProjects(mediaList);
+        List<ProjectMember> projectMemberList = this.memberMapper.adminProjects(mediaList, null);
         if (projectMemberList.isEmpty()) {
             return result;
         }
@@ -459,8 +471,8 @@ public class ProjectMemberServiceImpl extends ServiceImpl<ProjectMemberMapper, P
     }
 
     @Override
-    public List<Long> getProjectIdsByProductId(Long productId, String userId,String companyId,String mediaId) {
-        return memberMapper.getProjectIdsByProductId(productId, userId, companyId,mediaId);
+    public List<Long> getProjectIdsByProductId(Long productId, String userId, String companyId, String mediaId) {
+        return memberMapper.getProjectIdsByProductId(productId, userId, companyId, mediaId);
     }
 
 }