Преглед на файлове

feat:郑多燕需求(订单数据权限)

caoliqin преди 2 седмици
родител
ревизия
817ee7ed88

+ 21 - 0
fs-company/src/main/java/com/fs/hisStore/controller/FsStoreOrderScrmController.java

@@ -15,6 +15,9 @@ import com.fs.common.utils.ParseUtils;
 import com.fs.common.utils.ServletUtils;
 import com.fs.common.utils.StringUtils;
 import com.fs.common.utils.poi.ExcelUtil;
+import com.fs.company.domain.CompanyUser;
+import com.fs.company.service.ICompanyUserService;
+import com.fs.config.cloud.CloudHostProper;
 import com.fs.crm.domain.CrmCustomer;
 import com.fs.crm.service.ICrmCustomerService;
 import com.fs.framework.security.LoginUser;
@@ -46,6 +49,7 @@ import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 订单Controller
@@ -80,6 +84,10 @@ public class FsStoreOrderScrmController extends BaseController
     private IFsStoreOrderAuditLogScrmService orderAuditLogService;
     @Autowired
     private ISysConfigService configService;
+    @Autowired
+    private ICompanyUserService companyUserService;
+    @Autowired
+    private CloudHostProper cloudHostProper;
 
     /**
      * 查询订单列表
@@ -90,6 +98,19 @@ public class FsStoreOrderScrmController extends BaseController
     {
         LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
         param.setCompanyId(loginUser.getCompany().getCompanyId());
+
+        // 郑多燕需求
+        if("广州郑多燕".equals(cloudHostProper.getCompanyName())){
+            // 根据当前销售所属的数据权限过滤订单;
+            List<CompanyUser> companyUsers = companyUserService.getDataScopeCompanyUser(loginUser.getUser().getUserId());
+            if(!companyUsers.isEmpty()){
+                List<Long> companyUserIds = companyUsers.stream().map(CompanyUser::getUserId).collect(Collectors.toList());
+                param.setCompanyUserIds(companyUserIds);
+            } else {
+                // 表示数据权限是本人
+                param.setCompanyUserId(loginUser.getUser().getUserId());
+            }
+        }
         startPage();
         if(!StringUtils.isEmpty(param.getCreateTimeRange())){
             param.setCreateTimeList(param.getCreateTimeRange().split("--"));

+ 9 - 0
fs-service/src/main/java/com/fs/company/service/ICompanyUserService.java

@@ -264,4 +264,13 @@ public interface ICompanyUserService {
      * @return 绑定的用户列表
      */
     List<com.fs.hisStore.domain.FsUserScrm> selectBoundFsUsersByCompanyUserId(Long companyUserId);
+
+
+    /**
+     * 根据当前销售所属的数据权限过滤订单;
+     * @auth Caoliqin
+     * @param companyUserId
+     * @return
+     */
+    List<CompanyUser> getDataScopeCompanyUser(Long companyUserId);
 }

+ 23 - 0
fs-service/src/main/java/com/fs/company/service/impl/CompanyUserServiceImpl.java

@@ -128,6 +128,9 @@ public class CompanyUserServiceImpl implements ICompanyUserService
 //    @Autowired
 //    private ICompanyUserRoleService userRoleService;
 
+    @Autowired
+    private CompanyRoleMapper companyRoleMapper;
+
 
     /**
      * 查询物业公司管理员信息
@@ -1096,4 +1099,24 @@ public class CompanyUserServiceImpl implements ICompanyUserService
     public List<com.fs.hisStore.domain.FsUserScrm> selectBoundFsUsersByCompanyUserId(Long companyUserId) {
         return companyUserMapper.selectBoundFsUsersByCompanyUserId(companyUserId);
     }
+
+    @Override
+    public List<CompanyUser> getDataScopeCompanyUser(Long companyUserId) {
+        CompanyUser companyUser = companyUserService.selectCompanyUserById(companyUserId);
+        List<CompanyRole> companyRoles = companyRoleMapper.selectRolePermissionByUserId(companyUserId);
+        List<CompanyUser> companyUsers;
+        // 是否是管理员或者包含 1:全部数据权限
+        if (companyUser.isAdmin() || companyRoles.stream().anyMatch(r -> "1".equals(r.getDataScope()))) {
+            companyUsers = companyUserService.getCompanyUserListByCompanyIdAndDeptId(companyUser.getCompanyId(), null);
+        }
+        // 是否包含 3:本部门数据权限 4:本部门及以下数据权限
+        else if (companyRoles.stream().anyMatch(r -> "3".equals(r.getDataScope()) || "4".equals(r.getDataScope()))) {
+            companyUsers = companyUserService.getCompanyUserListByCompanyIdAndDeptId(companyUser.getCompanyId(), companyUser.getDeptId());
+        }
+        // 默认空,判断是否包含 5:仅可查看本人
+        else {
+            companyUsers = new ArrayList<>();
+        }
+        return companyUsers;
+    }
 }

+ 3 - 0
fs-service/src/main/java/com/fs/hisStore/param/FsStoreOrderParam.java

@@ -121,4 +121,7 @@ public class FsStoreOrderParam extends BaseEntity implements Serializable
 
     // 是否审核,1-是,0-否
     private Integer isAudit;
+
+    // 多个销售id
+    private List<Long> companyUserIds;
 }

+ 6 - 0
fs-service/src/main/resources/mapper/hisStore/FsStoreOrderScrmMapper.xml

@@ -1735,6 +1735,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="maps.isAudit != null   ">
                 and o.is_audit = #{maps.isAudit}
             </if>
+            <if test="maps.companyUserIds != null  and maps.companyUserIds.size > 0">
+                and o.company_user_id in
+                <foreach collection="maps.companyUserIds" item="companyUserId" open="(" close=")" separator=",">
+                    #{companyUserId}
+                </foreach>
+            </if>
         </where>
         ${maps.params.dataScope}
 <!--        <if test="maps.productName != null and  maps.productName !=  ''   ">-->