futian.liu
2023-12-21 a4273f1a1a6e63b7543acb2472b2af806fe44f41
consum-base/src/main/java/com/consum/base/controller/FinSysTenantUserController.java
@@ -12,7 +12,7 @@
import java.util.Set;
import org.apache.commons.compress.utils.Lists;
import org.springframework.beans.BeanUtils;
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;
@@ -27,8 +27,10 @@
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;
@@ -37,6 +39,7 @@
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.FinSysTenantService;
import com.consum.base.service.FinSysTenantUserService;
@@ -51,7 +54,6 @@
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.CollectionUtils;
import com.walker.infrastructure.utils.DateUtils;
import com.walker.infrastructure.utils.NumberGenerator;
@@ -59,7 +61,6 @@
import com.walker.infrastructure.utils.StringUtils;
import com.walker.web.ResponseValue;
import cn.hutool.core.util.ReflectUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -89,16 +90,15 @@
    private FinSysTenantDepartmentService finSysTenantDepartmentService;
    @Autowired
    public void setUserService(UserServiceImpl userService) {
        this.userService = userService;
    }
    private BaseWarehouseManagerService baseWarehouseManagerService;
    @Autowired
    public FinSysTenantUserController(FinSysTenantService finSysTenantService,
        FinSysTenantUserService finSysTenantUserService, RoleServiceImpl roleService) {
        FinSysTenantUserService finSysTenantUserService, RoleServiceImpl roleService, UserServiceImpl userService) {
        this.finSysTenantUserService = finSysTenantUserService;
        this.finSysTenantService = finSysTenantService;
        this.roleService = roleService;
        this.userService = userService;
    }
    /**
@@ -119,32 +119,20 @@
                param.setTenantCode(Long.valueOf(finSysTenant.getCode()));
            }
        }
        GenericPager<FinSysTenantUser> pager = this.finSysTenantUserService.queryAllPageUser(param);
        List<FinSysTenantUserVO> resultList = new ArrayList<>();
        for (FinSysTenantUser finSysTenantUser : pager.getDatas()) {
            FinSysTenantUserVO userVO = new FinSysTenantUserVO();
        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<S_role> list = finSysTenantUserService.getByUserId(finSysTenantUser.getSysUserId());
            // 列表不需要查询角色,只显示列表所需要的信息
            /*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 ? "是" : "否");*/
            finSysTenantUser.setIsSupplier(finSysTenantUser.getSupplierId() != null ? "是" : "否");
            BeanUtils.copyProperties(finSysTenantUser, userVO);
            FinSysTenantDepartment department = finSysTenantDepartmentService.getById(finSysTenantUser.getSysDeptId());
            if (Objects.nonNull(department)) {
                userVO.setSysDeptName(department.getName());
            }
            resultList.add(userVO);
        }
        ReflectUtil.setFieldValue(pager, "datas", resultList);
        return ResponseValue.success(pager);
    }
@@ -212,13 +200,7 @@
        // 是否删除 0是 1否
        tenantUser.setIsDelete(0);
        tenantUser.setSysUserId(NumberGenerator.getLongSequenceNumber());
        // 加密手机号
        String key = PlatformRSAUtils.AES_KEY;
        String encPhone = "";
        if (tenantUser.getUserPhone() != null) {
            encPhone = AESUtils.encryptStrAES(tenantUser.getUserPhone(), key);
        }
        tenantUser.setUserPhone(encPhone);
        setUserPhone(tenantUser, tenantUser.getUserPhone());
        String tenantId = tenantUser.getTenantId();
        FinSysTenant finSysTenant = finSysTenantService.selectById(Long.valueOf(tenantId));
        tenantUser.setTenantCode(finSysTenant.getCode());
@@ -230,9 +212,19 @@
            tenantUser.setTenantCode(sysInfo.getTenantCode());
            tenantUser.setTenantId(sysInfo.getTenantId());
            // 运维管理
            tenantUser.setSysDeptId(2l);
            tenantUser.setSysDeptId(2L);
        }
    }
    private void setUserPhone(FinSysTenantUser tenantUser, String userPhone) {
        // 加密手机号
        String key = PlatformRSAUtils.AES_KEY;
        String encPhone = "";
        if (StringUtils.isNotEmpty(userPhone)) {
            encPhone = AESUtils.encryptStrAES(userPhone, key);
        }
        tenantUser.setUserPhone(encPhone);
    }
    private S_user_core getsUserCore(FinSysTenantUser tenantUser) {
@@ -348,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);
                // 怎么获取左侧机构树数据
@@ -435,12 +425,7 @@
        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
@@ -450,14 +435,18 @@
        // 1. 根据 user.getSysUserId() 查询
        // 已有的权限
        Long sysUserId = user.getSysUserId();
        List<S_role> list = finSysTenantUserService.getByUserId(sysUserId);
        List<S_role> list = finSysTenantUserService.getRoleBySysUserId(sysUserId);
        // 选择的权限
        List<Long> roleList = user.getRoleList();
        // 先删除再添加
        if (list != null && list.size() > 0) {
        if (!CollectionUtils.isEmpty(list)) {
            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, sysUserId);
        }
        this.getFinSysTenantUserCache().remove(sysUserId.toString());
@@ -508,7 +497,7 @@
        finSysTenantUser.setStatus(user.getStatus());
        finSysTenantUserService.update(finSysTenantUser);
        // 2.更新平台用户 S_USER_CORE
        S_user_core userCore = buildUpdateUserCore(tenantUser);
        S_user_core userCore = buildUpdateUserCore(finSysTenantUser);
        this.userService.update(userCore);
        return ResponseValue.success(1);
    }
@@ -558,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);
    }
@@ -587,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);
                }
@@ -598,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);
@@ -633,14 +621,18 @@
        }
        // 1. 根据 user.getSysUserId() 查询
        // 已有的权限
        List<S_role> list = finSysTenantUserService.getByUserId(user.getSysUserId());
        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);
@@ -663,7 +655,7 @@
        }
        // 获取运维管理
        List<S_dept> depts = this.finSysTenantUserService.selectDept(roleName);
        if (depts == null || depts.size() == 0) {
        if (CollectionUtils.isEmpty(depts)) {
            return ResponseValue.error(roleName + "的角色不存在");
        }
        // 根据员工编号查询,如果存在则提示
@@ -724,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
@@ -832,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();
@@ -843,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());