futian.liu
2023-12-21 a4273f1a1a6e63b7543acb2472b2af806fe44f41
consum-base/src/main/java/com/consum/base/controller/FinSysTenantUserController.java
@@ -1,13 +1,36 @@
package com.consum.base.controller;
import cn.hutool.core.util.ReflectUtil;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import org.apache.commons.compress.utils.Lists;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.excel.exception.ExcelDataConvertException;
import com.consum.base.BaseController;
import com.consum.base.core.type.StatesType;
import com.consum.base.core.utils.CommonUtil;
import com.consum.base.core.utils.MapperUtil;
import com.consum.base.core.utils.PageUtil;
import com.consum.base.pojo.FinSysTenantUserSearchParam;
import com.consum.base.pojo.FinSysTenantUserUpdParam;
import com.consum.base.pojo.ImportUserParam;
@@ -16,9 +39,10 @@
import com.consum.base.pojo.response.FinSysTenantUserVO;
import com.consum.base.pojo.response.FinSysTenantVO;
import com.consum.base.pojo.response.UserVO;
import com.consum.base.service.BaseWarehouseManagerService;
import com.consum.base.service.FinSysTenantDepartmentService;
import com.consum.base.service.FinSysTenantServiceImpl;
import com.consum.base.service.FinSysTenantUserServiceImpl;
import com.consum.base.service.FinSysTenantService;
import com.consum.base.service.FinSysTenantUserService;
import com.consum.model.po.FinSysTenant;
import com.consum.model.po.FinSysTenantDepartment;
import com.consum.model.po.FinSysTenantUser;
@@ -30,23 +54,17 @@
import com.iplatform.model.po.S_dept;
import com.iplatform.model.po.S_role;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.*;
import com.walker.infrastructure.utils.CollectionUtils;
import com.walker.infrastructure.utils.DateUtils;
import com.walker.infrastructure.utils.NumberGenerator;
import com.walker.infrastructure.utils.PhoneNumberUtils;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.web.ResponseValue;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.compress.utils.Lists;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.*;
/**
 * @Description 系统用户
@@ -60,11 +78,11 @@
    private String roleName;
    private FinSysTenantUserServiceImpl finSysTenantUserService;
    private FinSysTenantUserService finSysTenantUserService;
    private UserServiceImpl userService;
    private FinSysTenantServiceImpl finSysTenantService;
    private FinSysTenantService finSysTenantService;
    private RoleServiceImpl roleService;
@@ -72,16 +90,15 @@
    private FinSysTenantDepartmentService finSysTenantDepartmentService;
    @Autowired
    public void setUserService(UserServiceImpl userService) {
        this.userService = userService;
    }
    private BaseWarehouseManagerService baseWarehouseManagerService;
    @Autowired
    public FinSysTenantUserController(FinSysTenantServiceImpl finSysTenantService,
        FinSysTenantUserServiceImpl finSysTenantUserService, RoleServiceImpl roleService) {
    public FinSysTenantUserController(FinSysTenantService finSysTenantService,
        FinSysTenantUserService finSysTenantUserService, RoleServiceImpl roleService, UserServiceImpl userService) {
        this.finSysTenantUserService = finSysTenantUserService;
        this.finSysTenantService = finSysTenantService;
        this.roleService = roleService;
        this.userService = userService;
    }
    /**
@@ -96,74 +113,25 @@
        CommonUtil.copyProperties(param, param2);
        param = param2;
        if (param.getTenantCode() == 0) {
            FinSysTenantUser user = new FinSysTenantUser();
            Long id = this.getCurrentUser().getId();
            user.setSysUserId(id);
            List<FinSysTenantUser> select = finSysTenantUserService.select(user);
            if (select.size() > 0) {
                param.setTenantCode(new Long(select.get(0).getTenantCode()));
            String tenantId = this.getSysInfo().getTenantId();
            FinSysTenant finSysTenant = finSysTenantService.selectById(Long.valueOf(tenantId));
            if (finSysTenant != null) {
                param.setTenantCode(Long.valueOf(finSysTenant.getCode()));
            }
        }
        GenericPager<FinSysTenantUser> pager = this.finSysTenantUserService.queryAllPageUser(param);
        PageUtil<FinSysTenantUserVO> pager = this.finSysTenantUserService.queryAllPageUser(param);
        for (FinSysTenantUserVO finSysTenantUser : pager.getDatas()) {
            String tel = finSysTenantUser.getUserPhone() != null
                ? AESUtils.decryptStrAES(finSysTenantUser.getUserPhone(), PlatformRSAUtils.AES_KEY) : null;
            finSysTenantUser.setUserPhone(StringUtils.isNotEmpty(tel) ? PhoneNumberUtils.maskMobile(tel) : "");
        List<FinSysTenantUserVO> resultList = Lists.newArrayList();
        List<FinSysTenantUser> datas = pager.getDatas();
        if (datas.size() > 0) {
            for (FinSysTenantUser finSysTenantUser : datas) {
                FinSysTenantUserVO userVO = new FinSysTenantUserVO();
                if (finSysTenantUser.getUserPhone() != null) {
                    // 解密并脱敏
                    String tel = null;
                    try {
                        tel = AESUtils.decryptStrAES(finSysTenantUser.getUserPhone(), PlatformRSAUtils.AES_KEY);
                    } catch (Exception e) {
                        logger.error("解密手机号失败,原因:" + e);
                        tel = null;
                    }
                    if (StringUtils.isNotEmpty(tel)) {
                        finSysTenantUser.setUserPhone(PhoneNumberUtils.maskMobile(tel));
                    } else {
                        finSysTenantUser.setUserPhone("");
                    }
                } else {
                    finSysTenantUser.setUserPhone("");
                }
            // 列表不需要查询角色,只显示列表所需要的信息
            /*List<S_role> list = finSysTenantUserService.getByUserId(finSysTenantUser.getSysUserId());
            StringBuilder roleStr = new StringBuilder();
            list.forEach(s_role -> roleStr.append(s_role.getRole_name()).append(" "));
            finSysTenantUser.setRoleStr(roleStr.toString());
            finSysTenantUser.setIsSupplier(finSysTenantUser.getSupplierId() != null ? "是" : "否");*/
                // 循环去查角色
                Long sysUserId = finSysTenantUser.getSysUserId();
                if (sysUserId != null) {
                    List<S_role> list = finSysTenantUserService.getByUserId(sysUserId);
                    String roleStr = "";
                    for (S_role s_role : list) {
                        roleStr = roleStr + s_role.getRole_name() + "  ";
                    }
                    finSysTenantUser.setRoleStr(roleStr);
                }
                // 循环查询运维商id
                if (finSysTenantUser.getSupplierId() != null) {
                    finSysTenantUser.setIsSupplier("是");
                } else {
                    finSysTenantUser.setIsSupplier("否");
                }
                BeanUtils.copyProperties(finSysTenantUser, userVO);
                Long sysDeptId = finSysTenantUser.getSysDeptId();
                FinSysTenantDepartment department = finSysTenantDepartmentService.getById(sysDeptId);
                if (Objects.nonNull(department)) {
                    userVO.setSysDeptName(department.getName());
                }
                resultList.add(userVO);
            }
        }
        try {
            Field fieldDatas = GenericPager.class.getDeclaredField("datas");
            // fieldDatas.setAccessible(true);
            // fieldDatas.set(pager, resultList);
            ReflectUtil.setFieldValue(pager, fieldDatas, resultList);
        } catch (Exception e) {
            logger.error("分页列表查询失败,原因:" + e);
        }
        return ResponseValue.success(pager);
    }
@@ -195,60 +163,94 @@
            return ResponseValue.error("参数为空");
        }
        // 根据员工编号查询,如果存在则提示
        if (finSysTenantUserService.getByUserCode(tenantUser.getUserCode()) != null
            && finSysTenantUserService.getByUserCode(tenantUser.getUserCode()) > 0) {
        FinSysTenantUser userCode = finSysTenantUserService.getByUserCode(tenantUser.getUserCode());
        if (userCode != null) {
            return ResponseValue.error("员工编号重复");
        }
        if (StringUtils.isEmpty(tenantUser.getTenantId()) || "0".equals(tenantUser.getTenantId())) {
            return ResponseValue.error("添加时请选择区县");
        }
        if (StringUtils.isEmpty(tenantUser.getTenantCode()) || "0".equals(tenantUser.getTenantCode())) {
            return ResponseValue.error("添加时请选择区县");
        }
        // 插入系统用户
        buildTenantUser(tenantUser, null);
        this.finSysTenantUserService.insert(tenantUser);
        // 插入平台用户
        S_user_core userCore = getsUserCore(tenantUser);
        this.userService.insert(userCore);
        // 插入平台机构
        // 少角色id
        // 机构id 多个
        List<Long> roleList = user.getRoleList();
        if (!CollectionUtils.isEmpty(roleList)) {
            // 用户id
            Long sysUserId = tenantUser.getSysUserId();
            this.finSysTenantUserService.execInsertRoleUserList(roleList, sysUserId);
        }
        // this.getFinCustomerCache().remove();
        return ResponseValue.success(1);
    }
    private void buildTenantUser(FinSysTenantUser tenantUser, FinSysTenantUser sysInfo) {
        tenantUser.setId(NumberGenerator.getLongSequenceNumber());
        tenantUser.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
        tenantUser.setCreateBy(this.getCurrentUser().getUser_name());
        tenantUser.setUpdateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
        tenantUser.setUpdateBy(this.getCurrentUser().getUser_name());
        // user.setStatus(1);// 0禁用 1启用
        // 是否删除 0是 1否
        tenantUser.setIsDelete(0);
        tenantUser.setSysUserId(NumberGenerator.getLongSequenceNumber());
        setUserPhone(tenantUser, tenantUser.getUserPhone());
        String tenantId = tenantUser.getTenantId();
        FinSysTenant finSysTenant = finSysTenantService.selectById(Long.valueOf(tenantId));
        tenantUser.setTenantCode(finSysTenant.getCode());
        // 处理方法addSupplier
        if (sysInfo != null) {
            tenantUser.setIsDelete(1);
            tenantUser.setLv(sysInfo.getLv());
            tenantUser.setTenantCode(sysInfo.getTenantCode());
            tenantUser.setTenantId(sysInfo.getTenantId());
            // 运维管理
            tenantUser.setSysDeptId(2L);
        }
    }
    private void setUserPhone(FinSysTenantUser tenantUser, String userPhone) {
        // 加密手机号
        String key = PlatformRSAUtils.AES_KEY;
        String encPhone = "";
        if (tenantUser.getUserPhone() != null) {
            encPhone = AESUtils.encryptStrAES(tenantUser.getUserPhone(), key);
        if (StringUtils.isNotEmpty(userPhone)) {
            encPhone = AESUtils.encryptStrAES(userPhone, key);
        }
        tenantUser.setUserPhone(encPhone);
        // 怎么获取左侧机构树数据
        tenantUser.setSysDeptId(3L); // 对应平台机构id 默认为平台管理
        this.finSysTenantUserService.insert(tenantUser);
    }
        // 插入平台用户
    private S_user_core getsUserCore(FinSysTenantUser tenantUser) {
        S_user_core userCore = new S_user_core();
        userCore.setId(tenantUser.getSysUserId());
        userCore.setDept_id(3L); // 部门id,目前写死
        userCore.setOrg_id(tenantUser.getSysDeptId()); // 机构id
        // 部门id 部门信息未同步,只填充数据
        userCore.setDept_id(tenantUser.getSysDeptId());
        // 机构id
        userCore.setOrg_id(tenantUser.getSysDeptId());
        userCore.setOrg_id(1L);
        userCore.setUser_name(tenantUser.getUserCode()); // 用户账号
        // 用户账号
        userCore.setUser_name(tenantUser.getUserCode());
        userCore.setNick_name(tenantUser.getUserName());
        // 用户类型 先默认设置为2
        userCore.setUser_type(2);
        userCore.setPhonenumber(encPhone);
        userCore.setPhonenumber(tenantUser.getUserPhone());
        userCore.setSex(tenantUser.getSex().toString());
        // 初始化密码 123456
        String pws = this.getArgumentVariable(ArgumentsConstants.KEY_SECURITY_PASSWORD_INIT).getStringValue();
        userCore.setPassword(pws);
        // 平台用户表和系统用户 表状态相反
        if (tenantUser.getStatus() == 0) {
            tenantUser.setStatus(1);
            userCore.setStatus(1);
        } else {
            tenantUser.setStatus(0);
            userCore.setStatus(0);
        }
        userCore.setStatus(tenantUser.getStatus());
        userCore.setDel_flag(0);
        userCore.setCreate_by(this.getCurrentUser().getUser_name());
        userCore.setCreate_time(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
@@ -271,16 +273,7 @@
        userCore.setType(1);
        // 商户id,0-平台
        userCore.setMer_id(0L);
        this.userService.insert(userCore);
        // 插入平台机构
        // 少角色id
        List<Long> roleList = user.getRoleList(); // 机构id 多个
        if (!CollectionUtils.isEmpty(roleList)) {
            Long sysUserId = tenantUser.getSysUserId(); // 用户id
            this.finSysTenantUserService.execInsertRoleUserList(roleList, sysUserId);
        }
        // this.getFinCustomerCache().remove();
        return ResponseValue.success(1);
        return userCore;
    }
    /**
@@ -292,7 +285,7 @@
    public ResponseValue importUser(@RequestParam String tenantId, @RequestParam String tenantCode, MultipartFile file)
        throws IOException {
        String originalFilename = file.getOriginalFilename();
        if (!"xls".equals(originalFilename.substring(originalFilename.lastIndexOf(".") + 1))) {
        if (!originalFilename.endsWith("xls")) {
            return ResponseValue.error("文件格式有误!");
        }
        S_user_core currentUser = this.getCurrentUser();
@@ -317,7 +310,7 @@
                    throw new ImportUserParamVerifyException("单元格不能为空!");
                }
                // 根据员工编号查询,如果存在则提示
                if (finSysTenantUserService.getByUserCode(data.getUserCode()) > 0) {
                if (finSysTenantUserService.getByUserCode(data.getUserCode()) != null) {
                    throw new ImportUserParamVerifyException("员工编号为空或已存在!");
                }
                if (data.getSex() < 1 && data.getSex() > 0) {
@@ -347,9 +340,7 @@
                user.setSysUserId(NumberGenerator.getLongSequenceNumber());
                user.setRemark("批量导入");
                // 加密手机号
                String key = PlatformRSAUtils.AES_KEY;
                String encPhone = AESUtils.encryptStrAES(data.getUserPhone(), key);
                user.setUserPhone(encPhone);
                setUserPhone(user, data.getUserPhone());
                user.setIsDelete(1);
                // 怎么获取左侧机构树数据
@@ -397,49 +388,7 @@
        ArrayList<S_user_core> sUserCores = new ArrayList<>();
        for (FinSysTenantUser user : finSysTenantUsers) {
            // 插入平台用户
            S_user_core userCore = new S_user_core();
            userCore.setId(user.getSysUserId());
            userCore.setDept_id(3L); // 部门id,目前写死
            userCore.setOrg_id(user.getSysDeptId()); // 机构id
            userCore.setOrg_id(1L);
            userCore.setUser_name(user.getUserCode()); // 用户账号
            userCore.setNick_name(user.getUserName());
            // 用户类型 先默认设置为2
            userCore.setUser_type(2);
            userCore.setPhonenumber(user.getUserPhone());
            userCore.setSex(user.getSex().toString());
            // 初始化密码 123456
            String pws = this.getArgumentVariable(ArgumentsConstants.KEY_SECURITY_PASSWORD_INIT).getStringValue();
            userCore.setPassword(pws);
            // 平台用户表和系统用户 表状态相反
            if (user.getStatus() == 0) {
                user.setStatus(1);
            } else {
                user.setStatus(0);
            }
            userCore.setStatus(user.getStatus());
            userCore.setDel_flag(0);
            userCore.setCreate_by(this.getCurrentUser().getUser_name());
            userCore.setCreate_time(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
            userCore.setRemark(user.getRemark());
            userCore.setType(1);
            userCore.setBind_client_id("0");
            userCore.setBind_wechat(0);
            userCore.setModify_pwd(0);
            userCore.setBind_mobile(0);
            userCore.setBind_mail(0);
            userCore.setProfile_id(0L);
            userCore.setIs_wechat_public(0);
            userCore.setIs_wechat_routine(0);
            userCore.setIs_wechat_ios(0);
            userCore.setIs_wechat_android(0);
            userCore.setIs_logoff(0);
            userCore.setLogoff_time(0L);
            userCore.setIs_sms(0);
            // 管理员类型:1= 平台超管, 2=商户超管, 3=系统管理员,4=商户管理员
            userCore.setType(1);
            // 商户id,0-平台
            userCore.setMer_id(0L);
            S_user_core userCore = getsUserCore(user);
            sUserCores.add(userCore);
        }
        // 保存用户信息
@@ -476,26 +425,45 @@
        if (tenantUser == null) {
            return ResponseValue.error("参数为空");
        }
        String key = PlatformRSAUtils.AES_KEY;
        String encPhone = "";
        if (tenantUser.getUserPhone() != null) {
            encPhone = AESUtils.encryptStrAES(tenantUser.getUserPhone(), key);
        }
        tenantUser.setUserPhone(encPhone);
        setUserPhone(tenantUser, tenantUser.getUserPhone());
        // 1.更新系统用户 FIN_SYS_TENANT_USER
        finSysTenantUserService.update(tenantUser);
        // 2.更新平台用户 S_USER_CORE
        S_user_core userCore = buildUpdateUserCore(user);
        this.userService.update(userCore);
        // 3. 更新角色配置 S_ROLE_USER
        // 1. 根据 user.getSysUserId() 查询
        // 已有的权限
        Long sysUserId = user.getSysUserId();
        List<S_role> list = finSysTenantUserService.getRoleBySysUserId(sysUserId);
        // 选择的权限
        List<Long> roleList = user.getRoleList();
        // 先删除再添加
        if (!CollectionUtils.isEmpty(list)) {
            finSysTenantUserService.execDelRoleUserList(sysUserId);
            // 删除库管员信息记录
            list.stream().filter(item -> "仓库管理员".equals(item.getRole_name())).findFirst()
                .ifPresent(item -> baseWarehouseManagerService.deleteMangerBySysUserId(sysUserId));
        }
        if (!CollectionUtils.isEmpty(roleList)) {
            // 因为不知道该用户需要管理那个仓库 故不新增仓库管理员信息,只添加角色
            finSysTenantUserService.execInsertRoleUserList(roleList, sysUserId);
        }
        this.getFinSysTenantUserCache().remove(sysUserId.toString());
        return ResponseValue.success(1);
    }
    private S_user_core buildUpdateUserCore(FinSysTenantUser user) {
        S_user_core userCore = new S_user_core();
        userCore.setId(user.getSysUserId());
        userCore.setUpdate_by(this.getCurrentUser().getUser_name());
        userCore.setUpdate_time(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
        // 平台用户表和系统用户 表状态相反
        if (user.getStatus() == 0) {
            user.setStatus(1);
            userCore.setStatus(1);
        } else {
            user.setStatus(0);
            userCore.setStatus(0);
        }
        userCore.setStatus(user.getStatus());
        if (user.getSex() != null) {
            userCore.setSex(user.getSex().toString());
        }
@@ -503,20 +471,8 @@
        userCore.setNick_name(user.getUserName());
        // 加密手机号
        userCore.setPhonenumber(user.getUserPhone());
        this.userService.update(userCore);
        // 3. 更新角色配置 S_ROLE_USER
        // 1. 根据 user.getSysUserId() 查询
        List<S_role> list = finSysTenantUserService.getByUserId(user.getSysUserId()); // 已有的权限
        List<Long> roleList = user.getRoleList(); // 选择的权限
        // 先删除再添加
        if (list != null && list.size() > 0) {
            finSysTenantUserService.execDelRoleUserList(user.getSysUserId());
        }
        if (roleList != null && roleList.size() > 0) {
            finSysTenantUserService.execInsertRoleUserList(roleList, user.getSysUserId());
        }
        this.getFinSysTenantUserCache().remove(user.getSysUserId() + "");
        return ResponseValue.success(1);
        return userCore;
    }
    /**
@@ -534,25 +490,14 @@
            return ResponseValue.error("参数为空");
        }
        // 1.更新系统用户 FIN_SYS_TENANT_USER 应该是查询 然后只改状态
        List<FinSysTenantUser> select = finSysTenantUserService.select(new FinSysTenantUser(tenantUser.getId()));
        if (select == null || select.size() == 0) {
        FinSysTenantUser finSysTenantUser = finSysTenantUserService.queryOneById(tenantUser.getId().toString());
        if (finSysTenantUser == null) {
            return ResponseValue.error("用户不存在");
        }
        FinSysTenantUser finSysTenantUser = select.get(0);
        finSysTenantUser.setStatus(user.getStatus());
        finSysTenantUserService.update(finSysTenantUser);
        // 2.更新平台用户 S_USER_CORE
        S_user_core userCore = new S_user_core();
        userCore.setId(user.getSysUserId());
        userCore.setUpdate_by(this.getCurrentUser().getUser_name());
        userCore.setUpdate_time(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
        // 平台用户表和系统用户 表状态相反
        if (user.getStatus() == 0) {
            user.setStatus(1);
        } else {
            user.setStatus(0);
        }
        userCore.setStatus(user.getStatus());
        S_user_core userCore = buildUpdateUserCore(finSysTenantUser);
        this.userService.update(userCore);
        return ResponseValue.success(1);
    }
@@ -573,13 +518,14 @@
            return ResponseValue.error("用户信息不存在");
        }
        // 初始化密码 123456
        String stringValue = this.getArgumentVariable(ArgumentsConstants.KEY_SECURITY_PASSWORD_INIT).getStringValue();// 密文
        // 密文
        String password = this.getArgumentVariable(ArgumentsConstants.KEY_SECURITY_PASSWORD_INIT).getStringValue();
        // 1. 修改用户表
        // 用户表id
        Long sysUserId = user.getSysUserId();
        S_user_core userCore = new S_user_core();
        userCore.setId(sysUserId);
        userCore.setPassword(stringValue);
        userCore.setPassword(password);
        userCore.setModify_pwd(0);
        userService.update(userCore);
        // 2. 修改平台用户(不用修改)
@@ -601,13 +547,15 @@
        if (finSysTenantUser == null) {
            return ResponseValue.error("用户信息不存在");
        }
        String s = AESUtils.decryptStrAES(finSysTenantUser.getUserPhone(), PlatformRSAUtils.AES_KEY);
        finSysTenantUser.setUserPhone(s);
        String phone = AESUtils.decryptStrAES(finSysTenantUser.getUserPhone(), PlatformRSAUtils.AES_KEY);
        finSysTenantUser.setUserPhone(phone);
        Long sysUserId = finSysTenantUser.getSysUserId();
        List<S_role> list = finSysTenantUserService.getByUserId(sysUserId);
        List<S_role> roleList = finSysTenantUserService.getRoleBySysUserId(sysUserId);
        // 过滤仓库管理员的显示
        roleList.removeIf(role -> role.getRole_name().equals("仓库管理员"));
        HashMap<String, Object> map = new HashMap<>();
        map.put("list", list);
        map.put("list", roleList);
        map.put("data", finSysTenantUser);
        return ResponseValue.success(map);
    }
@@ -630,10 +578,11 @@
                sysInfo.setUserPhone(AESUtils.decryptStrAES(userPhone, key));
            }
            // 查询 用户角色 TODO 临时解决 将来放配置文件中
            // 查询 用户角色
            // 已有的权限
            List<S_role> list = finSysTenantUserService.getByUserId(sysInfo.getSysUserId());
            List<S_role> list = finSysTenantUserService.getRoleBySysUserId(sysInfo.getSysUserId());
            for (S_role s_role : list) {
                // TODO 临时解决 将来放配置文件中
                if (s_role.getRole_id() != null && s_role.getRole_id().equals(1690961420053L)) {
                    sysInfo.setKfStatus(1);
                }
@@ -641,19 +590,15 @@
            // 查询父类的orgcode 需要将自己的org先查出来 再根据parentid 查父类
            String tenantId = sysInfo.getTenantId();
            if (tenantId != null && !tenantId.equals("")) {
                List<FinSysTenant> select = finSysTenantService.select(new FinSysTenant(Long.valueOf(tenantId)));
                if (select != null && select.size() > 0) {
                    FinSysTenant finSysTenant = select.get(0);
                    if (finSysTenant != null && finSysTenant.getParentId() != null) {
                        List<FinSysTenant> parents =
                            finSysTenantService.select(new FinSysTenant(finSysTenant.getParentId()));
                        if (parents != null && parents.size() > 0) {
                            sysInfo.setParentCode(parents.get(0).getCode());
                        }
            if (StringUtils.isNotEmpty(tenantId)) {
                FinSysTenant finSysTenant = finSysTenantService.get(new FinSysTenant(Long.valueOf(tenantId)));
                if (finSysTenant != null && finSysTenant.getParentId() != null) {
                    FinSysTenant parentTenant = finSysTenantService.get(new FinSysTenant(finSysTenant.getParentId()));
                    if (ObjectUtils.isNotEmpty(parentTenant)) {
                        sysInfo.setParentCode(parentTenant.getCode());
                    }
                }
            }
        }
        return ResponseValue.success(sysInfo);
@@ -675,13 +620,19 @@
            return ResponseValue.error("参数为空");
        }
        // 1. 根据 user.getSysUserId() 查询
        List<S_role> list = finSysTenantUserService.getByUserId(user.getSysUserId()); // 已有的权限
        List<Long> roleList = user.getRoleList(); // 选择的权限
        // 已有的权限
        List<S_role> list = finSysTenantUserService.getRoleBySysUserId(user.getSysUserId());
        // 选择的权限
        List<Long> roleList = user.getRoleList();
        // 先删除再添加
        if (list != null && list.size() > 0) {
            finSysTenantUserService.execDelRoleUserList(user.getSysUserId());
        if (!CollectionUtils.isEmpty(list)) {
            Long sysUserId = user.getSysUserId();
            finSysTenantUserService.execDelRoleUserList(sysUserId);
            // 删除库管员信息记录
            list.stream().filter(item -> "仓库管理员".equals(item.getRole_name())).findFirst()
                .ifPresent(item -> baseWarehouseManagerService.deleteMangerBySysUserId(sysUserId));
        }
        if (roleList != null && roleList.size() > 0) {
        if (!CollectionUtils.isEmpty(roleList)) {
            finSysTenantUserService.execInsertRoleUserList(roleList, user.getSysUserId());
        }
        return ResponseValue.success(1);
@@ -704,80 +655,22 @@
        }
        // 获取运维管理
        List<S_dept> depts = this.finSysTenantUserService.selectDept(roleName);
        if (depts == null || depts.size() == 0) {
        if (CollectionUtils.isEmpty(depts)) {
            return ResponseValue.error(roleName + "的角色不存在");
        }
        // 根据员工编号查询,如果存在则提示
        if (finSysTenantUserService.getByUserCode(user.getUserCode()) != null
            && finSysTenantUserService.getByUserCode(user.getUserCode()) > 0) {
        if (finSysTenantUserService.getByUserCode(user.getUserCode()) != null) {
            return ResponseValue.error("员工编号重复");
        }
        FinSysTenantUser sysInfo = this.getSysInfo();
        // 插入系统用户
        user.setId(NumberGenerator.getLongSequenceNumber());
        user.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
        user.setCreateBy(this.getCurrentUser().getUser_name());
        user.setUpdateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
        user.setUpdateBy(this.getCurrentUser().getUser_name());
        user.setIsDelete(0);// 是否删除 0是 1否
        user.setSysUserId(NumberGenerator.getLongSequenceNumber());
        user.setIsDelete(1);
        user.setLv(sysInfo.getLv());
        user.setTenantCode(sysInfo.getTenantCode());
        user.setTenantId(sysInfo.getTenantId());
        user.setSysDeptId(2l); // 运维管理
        // 加密手机号
        String key = PlatformRSAUtils.AES_KEY;
        String userPhone = user.getUserPhone();
        String encPhone = "";
        if (userPhone != null) {
            encPhone = AESUtils.encryptStrAES(userPhone, key);
            user.setUserPhone(encPhone);
        }
        buildTenantUser(user, sysInfo);
        this.finSysTenantUserService.insert(user);
        // 插入平台用户
        S_user_core userCore = new S_user_core();
        userCore.setId(user.getSysUserId());
        userCore.setDept_id(depts.get(0).getId()); // 部门
        userCore.setOrg_id(1L);
        // userCore.setUser_name(); //用户账号
        userCore.setUser_name(user.getUserCode()); // 用户账号
        userCore.setNick_name(user.getUserName());
        // 用户类型 先默认设置为2
        userCore.setUser_type(2);
        userCore.setPhonenumber(userPhone);
        // 初始化密码 123456
        String pws = this.getArgumentVariable(ArgumentsConstants.KEY_SECURITY_PASSWORD_INIT).getStringValue();
        userCore.setPassword(pws);
        if (user.getStatus() == 0) {
            userCore.setStatus(1);
        } else {
            userCore.setStatus(0);
        }
        userCore.setDel_flag(0);
        userCore.setCreate_by(this.getCurrentUser().getCreate_by());
        userCore.setCreate_time(DateUtils.getDateTimeNumber());
        userCore.setRemark(user.getRemark());
        userCore.setType(1);
        userCore.setBind_client_id("0");
        userCore.setBind_wechat(0);
        userCore.setModify_pwd(0);
        userCore.setBind_mobile(0);
        userCore.setBind_mail(0);
        userCore.setProfile_id(0L);
        userCore.setIs_wechat_public(0);
        userCore.setIs_wechat_routine(0);
        userCore.setIs_wechat_ios(0);
        userCore.setIs_wechat_android(0);
        userCore.setIs_logoff(0);
        userCore.setLogoff_time(0L);
        userCore.setIs_sms(0);
        // 管理员类型:1= 平台超管, 2=商户超管, 3=系统管理员,4=商户管理员
        S_user_core userCore = buildUpdateUserCore(user);
        // 部门
        userCore.setDept_id(depts.get(0).getId());
        userCore.setType(2);
        // 商户id,0-平台
        userCore.setMer_id(0L);
        this.userService.insert(userCore);
        // 插入平台机构
        // 少角色id
@@ -823,21 +716,16 @@
            return ResponseValue.error("用户信息不存在");
        }
        String avatar = userParam.getAvatar();
        if (!picFormatArr.contains(avatar.substring(avatar.lastIndexOf(".")))) {
        if (StringUtils.isNotEmpty(avatar) && !picFormatArr.contains(avatar.substring(avatar.lastIndexOf(".")))) {
            return ResponseValue.error("头像格式不允许");
        }
        FinSysTenantUser updUser = new FinSysTenantUser();
        updUser.setId(sysInfo.getId());
        updUser.setAvatar(userParam.getAvatar());
        updUser.setAvatar(avatar);
        updUser.setEmail(userParam.getEmail());
        updUser.setUserName(userParam.getUserName());
        updUser.setSex(userParam.getSex());
        String encPhone = "";
        if (userParam.getUserPhone() != null) {
            String key = PlatformRSAUtils.AES_KEY;
            encPhone = AESUtils.encryptStrAES(userParam.getUserPhone(), key);
        }
        updUser.setUserPhone(encPhone);
        setUserPhone(updUser, userParam.getUserPhone());
        // 1.更新系统用户 FIN_SYS_TENANT_USER
        finSysTenantUserService.update(updUser);
        // 2.更新平台用户 S_USER_CORE
@@ -931,6 +819,8 @@
        // 部门
        FinSysTenantDepartment finSysTenantDepartment = new FinSysTenantDepartment();
        finSysTenantDepartment.setTenantId(agencyId);
        finSysTenantDepartment.setStatus(StatesType.NORMAL.getValue());
        finSysTenantDepartment.setIsDelete(0);
        List<FinSysTenantDepartment> tenantDepartmentList =
            finSysTenantDepartmentService.select(finSysTenantDepartment);
        List<DepartmentVO> departmentVOList = Lists.newArrayList();
@@ -942,8 +832,8 @@
            departmentVO.setName(department.getName());
            departmentVO.setType("department");
            String sql = "SELECT SYS_USER_ID,USER_NAME FROM " + "fin_sys_tenant_user "
                + "WHERE SYS_DEPT_ID =:deptId AND SYS_USER_ID NOT IN(SELECT MANAGER_ID FROM base_warehouse_manager)";
            String sql = "SELECT SYS_USER_ID,USER_NAME FROM fin_sys_tenant_user "
                + "WHERE STATUS =1 and SYS_DEPT_ID =:deptId AND SYS_USER_ID NOT IN(SELECT MANAGER_ID FROM base_warehouse_manager)";
            Map<String, Object> param = new HashMap<>();
            param.put("deptId", id);
            List<Map<String, Object>> select = finSysTenantUserService.select(sql, param, new MapperUtil());