瀏覽代碼

审核通过默认赋值角色信息岗位部门,admin端加入创建销售公司,新增默认角色、部门、岗位信息

yjwang 3 天之前
父節點
當前提交
971dd8c52f

+ 13 - 1
fs-company-app/src/main/java/com/fs/app/controller/UserController.java

@@ -1,6 +1,7 @@
 package com.fs.app.controller;
 
 import cn.hutool.core.lang.Validator;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.fs.app.annotation.Login;
@@ -681,7 +682,18 @@ public class UserController extends AppBaseController {
     @PostMapping("/audit")
     public R auditUser(@RequestParam List<Long> userIds) {
         log.debug("批量审核用户 userIds :{}", userIds);
-        companyUserService.auditUsers(userIds);
+        if(ObjectUtil.isNotNull(userIds) && !userIds.isEmpty() && userIds.size() > 20){
+            return R.error("审核用户一次性不能大于20人!");
+        }
+
+        CompanyUser companyUser = companyUserService.selectCompanyUserByUserId(Long.parseLong(getUserId()));
+        if (ObjectUtil.isEmpty(companyUser)) {
+            return R.error("当前操作用户不存在!");
+        }else if (!companyUser.isAdmin()) {
+            return R.error("没有权限");
+        }
+
+        companyUserService.auditUsers(userIds,companyUser.getCompanyId());
         return R.ok();
     }
 

+ 3 - 0
fs-service/src/main/java/com/fs/company/mapper/CompanyDeptMapper.java

@@ -113,4 +113,7 @@ public interface CompanyDeptMapper
 
     @Select("select dept_name from company_dept where dept_id=${deptId} limit 1")
     String selectDeptNameById(@Param("deptId") Long deptId);
+
+    @Select("select dept_id,dept_name from company_dept where dept_name=#{deptName} limit 1")
+    CompanyDept selectDeptNameBydeptName(@Param("deptName") String deptName);
 }

+ 8 - 0
fs-service/src/main/java/com/fs/company/mapper/CompanyPostMapper.java

@@ -83,4 +83,12 @@ public interface CompanyPostMapper
      */
     List<CompanyPost> selectCompanyPostByIds(@Param("postIds") List<Long> postIds);
 
+
+    /**
+     * 获取默认岗位
+     * @param postCode 岗位编码
+     * @return 信息
+     * **/
+    CompanyPost selectCompanyPostCode(@Param("postCode") String postCode,@Param("companyId") Long companyId);
+
 }

+ 7 - 0
fs-service/src/main/java/com/fs/company/mapper/CompanyRoleMapper.java

@@ -77,4 +77,11 @@ public interface CompanyRoleMapper
      * @return  list
      */
     List<CompanyRole> selectRoleListByIds(@Param("roleIds") List<Long> roleIds);
+
+    /**
+     * 获取默认角色
+     * @param roleKey 角色key
+     * @return 角色信息
+     * **/
+    CompanyRole selectCompanyRoleByRoleKey(@Param("roleKey") String roleKey);
 }

+ 6 - 0
fs-service/src/main/java/com/fs/company/mapper/CompanyUserMapper.java

@@ -295,4 +295,10 @@ public interface CompanyUserMapper
     void batchUpdateUserDomain(@Param("ids") List<Long> ids,@Param("domain") String domain);
 
     List<QwOptionsVO> selectQwUserListLikeName(@Param("params") Map<String, Object> params);
+
+    /**
+     * 批量更新用户部门数据
+     * @param companyUserList 用户信息
+     * **/
+    void batchUpdateUserDept(@Param("companyUserList") List<CompanyUser> companyUserList);
 }

+ 15 - 0
fs-service/src/main/java/com/fs/company/service/ICompanyRoleService.java

@@ -94,4 +94,19 @@ public interface ICompanyRoleService
      * @return  list
      */
     List<CompanyRole> selectCompanyRoleByIds(List<Long> roleIds);
+
+    /**
+     * 获取默认角色
+     * @param roleKey 角色key
+     * @return 角色信息
+     * **/
+    CompanyRole selectCompanyRoleByRoleKey(String roleKey);
+
+
+    /**
+     * 插入默认角色
+     * @param role 角色对象
+     * @return
+     * **/
+    int insertDefaultRole(CompanyRole role);
 }

+ 6 - 1
fs-service/src/main/java/com/fs/company/service/ICompanyUserService.java

@@ -194,7 +194,12 @@ public interface ICompanyUserService {
      */
     Boolean setIsRegisterMember(boolean status,  List<Long> userIds);
 
-    void auditUsers(List<Long> userIds);
+    /**
+     * 批量审核接口
+     * @param companyId 企业ID
+     * @param userIds 用户Id
+     * **/
+    void auditUsers(List<Long> userIds,Long companyId);
 
     CompanyUser selectCompanyUserByPhone(String phone);
 

+ 10 - 0
fs-service/src/main/java/com/fs/company/service/impl/CompanyRoleServiceImpl.java

@@ -271,4 +271,14 @@ public class CompanyRoleServiceImpl implements ICompanyRoleService
     public List<CompanyRole> selectCompanyRoleByIds(List<Long> roleIds) {
         return companyRoleMapper.selectRoleListByIds(roleIds);
     }
+
+    @Override
+    public CompanyRole selectCompanyRoleByRoleKey(String roleKey) {
+        return companyRoleMapper.selectCompanyRoleByRoleKey(roleKey);
+    }
+
+    @Override
+    public int insertDefaultRole(CompanyRole role) {
+        return companyRoleMapper.insertCompanyRole(role);
+    }
 }

+ 32 - 3
fs-service/src/main/java/com/fs/company/service/impl/CompanyServiceImpl.java

@@ -139,6 +139,18 @@ public class CompanyServiceImpl implements ICompanyService
             dept.setCreateTime(new Date());
             dept.setDeptName(company.getCompanyName());
             deptMapper.insertCompanyDept(dept);
+
+            //创建销售部门
+            CompanyDept saleDept=new CompanyDept();
+            saleDept.setParentId(0l);
+            saleDept.setAncestors("0");
+            saleDept.setStatus("0");
+            saleDept.setDeptName("销售(默认部门)");
+            saleDept.setCreateTime(new Date());
+            saleDept.setParentId(dept.getDeptId());
+            saleDept.setCompanyId(company.getCompanyId());
+            deptMapper.insertCompanyDept(saleDept);
+
             //创建岗位
             CompanyPost post=new CompanyPost();
             post.setCompanyId(company.getCompanyId());
@@ -147,6 +159,16 @@ public class CompanyServiceImpl implements ICompanyService
             post.setPostSort(0);
             post.setStatus("0");
             postMapper.insertCompanyPost(post);
+
+            //创建销售岗位
+            CompanyPost salePost=new CompanyPost();
+            salePost.setCompanyId(company.getCompanyId());
+            salePost.setPostCode("default_sale");
+            salePost.setPostName("销售");
+            salePost.setPostSort(0);
+            salePost.setStatus("0");
+            postMapper.insertCompanyPost(salePost);
+
             //创建角色
             // 创建管理员角色(拥有全部权限)
             CompanyRole adminRole = new CompanyRole();
@@ -165,18 +187,25 @@ public class CompanyServiceImpl implements ICompanyService
             salesRole.setRoleSort(1);
             salesRole.setDataScope("5");
             salesRole.setStatus("0");
-
             //增加销售角色菜单权限
             try {
                 String json = configService.selectConfigByKey("companymenu.config");
-                if (StringUtils.isNotEmpty(json)) {
+                if (StringUtils.isNotEmpty(json) && !json.equals("")) {
                     CompanyMenuConfig config = JSONUtil.toBean(json, CompanyMenuConfig.class);
                     salesRole.setMenuIds(config.getMenuIds());
-                    roleService.insertRole(salesRole);
+                    if(config.getMenuIds().length > 0){
+                        roleService.insertRole(salesRole);
+                    }else {
+                        roleService.insertDefaultRole(salesRole);
+                    }
+                }else {
+                    roleService.insertDefaultRole(salesRole);
                 }
+
             } catch (Exception e) {
                 logger.error("获取菜单配置失败", e);
             }
+
             //添加用户
             CompanyUser user=new CompanyUser();
             user.setCompanyId(company.getCompanyId());

+ 65 - 2
fs-service/src/main/java/com/fs/company/service/impl/CompanyUserServiceImpl.java

@@ -1,5 +1,6 @@
 package com.fs.company.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
 import com.fs.common.annotation.DataScope;
 import com.fs.common.core.domain.R;
@@ -56,6 +57,9 @@ public class CompanyUserServiceImpl implements ICompanyUserService
     @Autowired
     private QwUserMapper qwUserMapper;
 
+    @Autowired
+    private CompanyDeptMapper companyDeptMapper;
+
     @Autowired
     private CompanyUserRoleMapper userRoleMapper;
 
@@ -517,11 +521,70 @@ public class CompanyUserServiceImpl implements ICompanyUserService
     }
 
     @Override
-    public void auditUsers(List<Long> userIds) {
+    public void auditUsers(List<Long> userIds,Long companyId) {
         if (userIds.isEmpty()) {
             return;
         }
-        companyUserMapper.auditUsers(userIds);
+        //获取用户信息
+        List<CompanyUser> companyUserList=companyUserMapper.getUserInfoByUserIds(userIds);
+
+        if(ObjectUtil.isNotNull(companyUserList) && !companyUserList.isEmpty()){
+
+            //获取默认角色信息
+            CompanyRole role=roleMapper.selectCompanyRoleByRoleKey(companyId+"_sales");
+
+            //获取默认部门
+            CompanyDept dept= companyDeptMapper.selectDeptNameBydeptName("销售(默认部门)");
+
+            //获取默认岗位
+            CompanyPost companyPost= postMapper.selectCompanyPostCode("default_sale",companyId);
+
+            //存储用户角色中间表
+            List<CompanyUserRole> companyUserRoleList=new LinkedList<>();
+
+            //存储岗位
+            List<CompanyUserPost> companyUserPosts=new LinkedList<>();
+            companyUserList.stream().forEach(c->{
+                //判断角色是否为空
+                if(ObjectUtil.isNotNull(role)){
+                    CompanyUserRole userRole=new CompanyUserRole();
+                    userRole.setRoleId(role.getRoleId());
+                    userRole.setUserId(c.getUserId());
+                    companyUserRoleList.add(userRole);
+                }
+
+                //判断部门
+                if(ObjectUtil.isNotNull(dept)){
+                    c.setDeptId(dept.getDeptId());
+                }
+
+                //判断岗位
+                if(ObjectUtil.isNotNull(companyPost)){
+                    //添加用户岗位表
+                    CompanyUserPost userPost=new CompanyUserPost();
+                    userPost.setPostId(companyPost.getPostId());
+                    userPost.setUserId(c.getUserId());
+                    companyUserPosts.add(userPost);
+                }
+
+            });
+
+            //批量插入角色用户中间表
+            if(!companyUserRoleList.isEmpty()){
+                userRoleMapper.batchUserRole(companyUserRoleList);
+            }
+
+            //批量插入用户岗位中间表
+            if(!companyUserPosts.isEmpty()){
+                userPostMapper.batchUserPost(companyUserPosts);
+            }
+
+            //批量更新用户部门信息
+            companyUserMapper.batchUpdateUserDept(companyUserList);
+
+            companyUserMapper.auditUsers(userIds);
+        }
+
     }
 
     @Override

+ 4 - 0
fs-service/src/main/resources/mapper/company/CompanyPostMapper.xml

@@ -129,4 +129,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             </if>
         </where>
     </select>
+    <select id="selectCompanyPostCode" resultType="com.fs.company.domain.CompanyPost">
+        <include refid="selectCompanyPostVo"/>
+        where post_code=#{postCode} AND company_id = #{companyId}
+    </select>
 </mapper>

+ 4 - 0
fs-service/src/main/resources/mapper/company/CompanyRoleMapper.xml

@@ -177,4 +177,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{roleId}
         </foreach>
     </select>
+
+    <select id="selectCompanyRoleByRoleKey" resultType="com.fs.company.domain.CompanyRole">
+        SELECT * FROM company_role WHERE del_flag=0 AND role_key = #{roleKey}
+    </select>
 </mapper>

+ 13 - 0
fs-service/src/main/resources/mapper/company/CompanyUserMapper.xml

@@ -510,4 +510,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <update id="batchUpdateUserDomain">
         update company_user set domain=#{domain} where user_id in <foreach collection="ids"  item="item" index="index" open="(" separator="," close=")">#{item}</foreach>
     </update>
+
+    <update id="batchUpdateUserDept">
+        UPDATE company_user
+        SET dept_id = CASE user_id
+        <foreach collection="companyUserList" item="item" separator=" ">
+            WHEN #{item.userId} THEN #{item.deptId}
+        </foreach>
+        END
+        WHERE user_id IN
+        <foreach collection="companyUserList" item="item" open="(" separator="," close=")">
+            #{item.userId}
+        </foreach>
+    </update>
 </mapper>