futian.liu
2023-12-13 2d02dee9812ff906c0a5db97a5d04154bf54fa3f
修改用户角色关联
6个文件已修改
166 ■■■■■ 已修改文件
admin-web/src/views/systemManger/server/user/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/FinSysTenantUserController.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/FinSysTenantUserSearchParam.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/response/FinSysTenantUserVO.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/FinSysTenantUserService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/impl/FinSysTenantUserServiceImpl.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin-web/src/views/systemManger/server/user/index.vue
@@ -109,7 +109,7 @@
          { title: '编号', field: 'userCode', align: 'left' },
          { title: '用户姓名', field: 'userName', align: 'left' },
          { title: '登录名', field: 'userPhone', align: 'center' },
          { title: '所属机构', field: 'userPhone', align: 'center', width: 150 },
          { title: '所属机构', field: 'tenantName', align: 'center', width: 150 },
          { title: '部门', field: 'sysDeptName', align: 'center' },
          {
            field: 'status',
consum-base/src/main/java/com/consum/base/controller/FinSysTenantUserController.java
@@ -12,7 +12,6 @@
import java.util.Set;
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.GetMapping;
@@ -29,6 +28,7 @@
import com.consum.base.BaseController;
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;
@@ -51,7 +51,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 +58,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;
@@ -119,32 +117,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);
    }
@@ -450,14 +436,14 @@
        // 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);
        }
        if (roleList != null && roleList.size() > 0) {
        if (!CollectionUtils.isEmpty(roleList)) {
            finSysTenantUserService.execInsertRoleUserList(roleList, sysUserId);
        }
        this.getFinSysTenantUserCache().remove(sysUserId.toString());
@@ -558,13 +544,12 @@
        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);
        HashMap<String, Object> map = new HashMap<>();
        map.put("list", list);
        map.put("list", roleList);
        map.put("data", finSysTenantUser);
        return ResponseValue.success(map);
    }
@@ -587,10 +572,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);
                }
@@ -633,7 +619,7 @@
        }
        // 1. 根据 user.getSysUserId() 查询
        // 已有的权限
        List<S_role> list = finSysTenantUserService.getByUserId(user.getSysUserId());
        List<S_role> list = finSysTenantUserService.getRoleBySysUserId(user.getSysUserId());
        // 选择的权限
        List<Long> roleList = user.getRoleList();
        // 先删除再添加
consum-base/src/main/java/com/consum/base/pojo/FinSysTenantUserSearchParam.java
@@ -39,4 +39,7 @@
    private Long sysUserId;
    private Integer pageNum;
    private Integer pageSize;
}
consum-base/src/main/java/com/consum/base/pojo/response/FinSysTenantUserVO.java
@@ -1,7 +1,7 @@
package com.consum.base.pojo.response;
import com.consum.model.po.FinSysTenantUser;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
@@ -12,7 +12,63 @@
 */
@Data
@ApiModel(value = "FinSysTenantUserVO", description = "机构用户信息")
public class FinSysTenantUserVO extends FinSysTenantUser {
public class FinSysTenantUserVO {
    // 主键
    @ApiModelProperty(value = "主键")
    private Long id;
    @ApiModelProperty(value = "用户编码")
    private String userCode;
    @ApiModelProperty(value = "用户姓名")
    private String userName;
    @ApiModelProperty(value = "用户登录名")
    private String userPhone;
    @ApiModelProperty(value = "机构id")
    private String tenantId;
    @ApiModelProperty(value = "机构名称")
    private String tenantName;
    @ApiModelProperty(value = "部门名称")
    private String sysDeptName;
    @ApiModelProperty(value = "状态 (0禁用1启用)")
    private Integer status;
    // private String createBy;
    //
    // private Long createTime;
    //
    // private String updateBy;
    //
    // private Long updateTime;
    //
    // private Integer sex;
    //
    // private Long seq;
    //
    // private Long sysUserId;
    //
    // private Long sysDeptId;
    //
    // private String tenantCode;
    //
    // private Integer isDelete;
    //
    // private Long supplierId;
    //
    //
    //
    // private String roleStr;
    //
    // private List<Long> roleList;
    //
    // // 是否为运维商 如果有运维商id 则代表是,反之不是
    // private String isSupplier;
}
consum-base/src/main/java/com/consum/base/service/FinSysTenantUserService.java
@@ -1,12 +1,13 @@
package com.consum.base.service;
import com.consum.base.pojo.response.FinSysTenantUserVO;
import java.util.List;
import com.consum.base.core.utils.PageUtil;
import com.consum.base.pojo.FinSysTenantUserSearchParam;
import com.consum.model.po.FinSysTenantUser;
import com.iplatform.model.po.S_dept;
import com.iplatform.model.po.S_role;
import com.walker.db.page.GenericPager;
import com.walker.jdbc.service.BaseService;
/**
@@ -17,7 +18,7 @@
 **/
public interface FinSysTenantUserService extends BaseService {
    GenericPager<FinSysTenantUser> queryAllPageUser(FinSysTenantUserSearchParam param);
    PageUtil<FinSysTenantUserVO> queryAllPageUser(FinSysTenantUserSearchParam param);
    FinSysTenantUser queryOneById(String id);
@@ -33,7 +34,7 @@
    FinSysTenantUser getByUserCode(String userCode);
    List<S_role> getByUserId(Long userId);
    List<S_role> getRoleBySysUserId(Long userId);
    List<S_role> getRoleAll();
consum-base/src/main/java/com/consum/base/service/impl/FinSysTenantUserServiceImpl.java
@@ -5,9 +5,14 @@
import java.util.List;
import java.util.Map;
import org.apache.commons.compress.utils.Lists;
import org.springframework.stereotype.Service;
import com.consum.base.core.utils.MapUtils;
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.response.FinSysTenantUserVO;
import com.consum.base.service.FinSysTenantUserService;
import com.consum.model.po.FinSysTenantUser;
import com.iplatform.base.util.PlatformRSAUtils;
@@ -24,7 +29,9 @@
    private static final String SQL_GET_USER =
        "SELECT * FROM fin_sys_tenant_user WHERE IS_DELETE = 0 AND `STATUS` = 1 AND TENANT_ID = ?";
    private static final String SQL_QH_PAGE_USER_PREFIX =
        "select fstu.* from FIN_SYS_TENANT_USER fstu where fstu.IS_DELETE = 0 ";
        "select fstu.id,fstu.USER_CODE,fstu.USER_NAME,fstu.USER_PHONE,fst.name tenantName,fstd.name sysDeptName,fst.STATUS from FIN_SYS_TENANT_USER fstu "
            + "left join fin_sys_tenant fst on fst.id =fstu.TENANT_ID "
            + "left join fin_sys_tenant_department fstd on fstd.id = fstu.SYS_DEPT_ID where fstu.IS_DELETE = 0 ";
    private static final String SQL_TENANT_USER =
        "select fstu.*, fst.TENANT_NAME, fst.LV from FIN_SYS_TENANT_USER fstu\n"
@@ -47,8 +54,8 @@
     * @Date 2023/7/17 14:26
     */
    @Override
    public GenericPager<FinSysTenantUser> queryAllPageUser(FinSysTenantUserSearchParam param) {
        Map<String, Object> parameter = new HashMap<>(5);
    public PageUtil<FinSysTenantUserVO> queryAllPageUser(FinSysTenantUserSearchParam param) {
        Map<String, Object> parameter = new HashMap<>(10);
        StringBuilder sql = new StringBuilder(SQL_QH_PAGE_USER_PREFIX);
        if (param.getTenantCode() > 0) {
            sql.append(" and fstu.TENANT_CODE =:tenantCode");
@@ -66,19 +73,11 @@
            sql.append(" and USER_CODE like :USER_CODE");
            parameter.put("USER_CODE", StringUtils.CHAR_PERCENT + param.getUserCode() + StringUtils.CHAR_PERCENT);
        }
        // if(StringUtils.isNotEmpty(param.getUserCode())){
        // sql.append(" and user_code like :user_code");
        // parameter.put("user_code", StringUtils.CHAR_PERCENT + param.getUserCode() + StringUtils.CHAR_PERCENT);
        // }
        if (param.getStatus() != null) {
            sql.append(" and status =:status");
            sql.append(" and fstu.status =:status");
            parameter.put("status", param.getStatus());
        }
        // if(param.getRoleId()!=null &&!param.getRoleId().equals("")){
        // sql.append(" and fstu.SYS_USER_ID in (select user_id from s_role_user where role_id = :role_id)");
        // parameter.put("role_id", param.getRoleId());
        // }
        if (StringUtils.isNotEmpty(param.getUserPhone())) {
            sql.append(" and USER_PHONE =:userPhone");
@@ -111,8 +110,19 @@
                sql.append(" and fstu.AGENT_JID is null ");
            }
        }
        sql.append(" ORDER BY SEQ asc ,CREATE_TIME desc");
        return this.selectSplit(sql.toString(), parameter, new FinSysTenantUser());
        sql.append(" ORDER BY SEQ asc ,fstu.CREATE_TIME desc");
        GenericPager<Map<String, Object>> mapGenericPager =
            this.selectSplit(sql.toString(), parameter, param.getPageNum(), param.getPageSize(), new MapperUtil());
        PageUtil pageUtil = new PageUtil(mapGenericPager);
        List<FinSysTenantUserVO> result = Lists.newArrayList();
        mapGenericPager.getDatas().forEach(map -> {
            FinSysTenantUserVO finSysTenantUserVO = MapUtils.convertMapToObj(map, FinSysTenantUserVO.class);
            result.add(finSysTenantUserVO);
        });
        pageUtil.setDatas(result);
        return pageUtil;
    }
    @Override
@@ -218,10 +228,10 @@
     * @return
     */
    @Override
    public List<S_role> getByUserId(Long userId) {
    public List<S_role> getRoleBySysUserId(Long userId) {
        Map<String, Object> parameter = new HashMap<>();
        StringBuilder sql = new StringBuilder(SQL_SELECT_USER_ID);
        sql.append("and ROLE_ID IN (SELECT DISTINCT(ROLE_ID) FROM S_ROLE_USER WHERE USER_ID= :userId )");
        StringBuilder sql = new StringBuilder("SELECT * FROM S_ROLE where ");
        sql.append("ROLE_ID IN (SELECT DISTINCT(ROLE_ID) FROM S_ROLE_USER WHERE USER_ID= :userId )");
        parameter.put("userId", userId);
        List<S_role> select = this.select(sql.toString(), parameter, new S_role());
        return select;