Browse Source

角色-菜单

wangzhinan 1 year ago
parent
commit
06af32e675

+ 113 - 3
business/base-service/src/main/java/com/yihu/jw/application/service/BaseApplicationRoleDictService.java

@ -189,12 +189,15 @@ public class BaseApplicationRoleDictService extends BaseJpaService<BaseApplicati
     * @return
     * @throws Exception
     */
    public List<BaseApplicationRoleUserDO> insertRoleUser(List<BaseApplicationRoleUserDO> roleUserDOS) throws Exception {
    public List<BaseApplicationRoleUserDO> insertRoleUser(List<BaseApplicationRoleUserDO> roleUserDOS,String uuid) throws Exception {
        if (roleUserDOS!=null&&roleUserDOS.size()!=0){
            String roleId = roleUserDOS.get(0).getRoleId();
            applicationRoleUserDao.deleteByRoleId(roleId);
            UserDO userDO = userDao.findById(uuid).get();
            for (BaseApplicationRoleUserDO roleUserDO:roleUserDOS){
                roleUserDO.setCreateTime(new Date());
                roleUserDO.setCreateUser(uuid);
                roleUserDO.setCreateUserName(userDO.getName());
            }
            return applicationRoleUserDao.saveAll(roleUserDOS);
        }else {
@ -207,8 +210,115 @@ public class BaseApplicationRoleDictService extends BaseJpaService<BaseApplicati
     * @param roleId
     * @return
     */
    public List<BaseApplicationRoleUserDO> selectUserByRoleId(String roleId){
        return applicationRoleUserDao.findByRoleId(roleId);
    public MixEnvelop selectUserByRoleId(String roleId,String userType,String userName,String userMobile,String userIdcard,String dept,
                                                              String jobTitleCode,Integer page,Integer size){
        MixEnvelop mixEnvelop = new MixEnvelop();
        String conditionSql = "";
        if ("xm_ykyy_wx".equals(wechatId)) {
            conditionSql = "to_char(ru.create_time,'YYYY-MM-DD hh24:mi:ss')  AS \"createTime\" ";
        } else {
            conditionSql = "date_format(ru.create_time,'%Y-%m-%d %H:%i:%S' )  AS \"createTime\" ";
        }
        String sql = "SELECT\n" +
                "\tru.id AS \"id\",\n" +
                "\tru.role_id AS \"roleId\",\n" +
                "\tru.user_type AS \"userType\",\n" +
                "\tru.user_code AS \"userCode\",\n" +
                "\n" +
                "IF (\n" +
                "\tp.`name` IS NULL,\n" +
                "\td. NAME,\n" +
                "\tp. NAME\n" +
                ") AS \"userName\",\n" +
                "IF (p.sex IS NULL, d.sex, p.sex) AS \"userSex\",\n" +
                "IF (\n" +
                "\tp.idcard IS NULL,\n" +
                "\td.idcard,\n" +
                "\tp.idcard\n" +
                ") AS \"userIdcard\",\n" +
                "\n" +
                "IF (\n" +
                "\tp.mobile IS NULL,\n" +
                "\td.mobile,\n" +
                "\tp.mobile\n" +
                ") AS \"userMobile\",\n" +
                "\trd.org_code as \"orgCode\",\n" +
                "\trd.saas_id as \"saasId\",\n" +
                "\to.`name` as \"orgName\",\n" +
                "\ts.`name` as \"saasName\",\n" +
                "\tdh.dept_name as \"deptName\",\n" +
                "\td.job_title_name as \"jobTitleName\",\n" +
                "\tru.create_user_name as \"createUserName\",\n" +
                conditionSql +
                "FROM\n" +
                "\tbase_application_role_user ru\n" +
                "LEFT JOIN base_application_role_dict rd ON ru.role_id = rd.id\n" +
                "LEFT JOIN base_saas s ON s.id =rd.saas_id \n" +
                "LEFT JOIN base_org o ON rd.org_code = o.code \n" +
                "LEFT JOIN base_patient p ON ru.user_code = p.id\n" +
                "LEFT JOIN base_doctor d ON ru.user_code = d.id\n" +
                "LEFT JOIN base_doctor_hospital dh ON d.id = dh.doctor_code ";
        String sqlTotal = " SELECT\n" +
                "\tCOUNT(1) as \"total\"\n" +
                "FROM\n" +
                "\tbase_application_role_user ru\n" +
                "LEFT JOIN base_application_role_dict rd ON ru.role_id = rd.id\n" +
                "LEFT JOIN base_saas s ON s.id =rd.saas_id \n" +
                "LEFT JOIN base_org o ON rd.org_code = o.code \n" +
                "LEFT JOIN base_patient p ON ru.user_code = p.id\n" +
                "LEFT JOIN base_doctor d ON ru.user_code = d.id\n" +
                "LEFT JOIN base_doctor_hospital dh ON d.id = dh.doctor_code\n ";
        String condition = " where 1=1 ";
        if (StringUtils.isNoneBlank(roleId)){
            condition +=" and ru.role_id ='"+roleId+"' ";
        }
        if (StringUtils.isNoneBlank(userType)){
            condition +=" and ru.user_type ='"+userType+"' ";
        }
        if (StringUtils.isNoneBlank(userName)){
            condition +=" and IF (\n" +
                    "\tp.`name` IS NULL,\n" +
                    "\td. NAME,\n" +
                    "\tp. NAME\n" +
                    ") LIKE '%"+userName+"%' ";
        }
        if (StringUtils.isNoneBlank(userMobile)){
            condition +=" and IF (\n" +
                    "\tp.mobile IS NULL,\n" +
                    "\td.mobile,\n" +
                    "\tp.mobile\n" +
                    ") like '%"+userMobile+"%' ";
        }
        if (StringUtils.isNoneBlank(userIdcard)){
            condition +=" and IF (\n" +
                    "\tp.idcard IS NULL,\n" +
                    "\td.idcard,\n" +
                    "\tp.idcard\n" +
                    ") like '%"+userIdcard+"%' ";
        }
        if (StringUtils.isNoneBlank(dept)){
            condition +=" and dh.dept_code = '"+dept+"' ";
        }
        if (StringUtils.isNoneBlank(jobTitleCode)){
            condition +=" and d.job_title_code = '"+jobTitleCode+"' ";
        }
        String orderCondition = " order by ru.create_time desc ";
        List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql+condition+orderCondition,page,size);
        Long count = 0L;
        List<Map<String,Object>> total = hibenateUtils.createSQLQuery(sqlTotal+condition);
        if(total!=null){
            //mysql 与 Oracle 聚合函数返回类型不一致,需要判断装换
            count = hibenateUtils.objTransformLong(total.get(0).get("total"));
        }
        mixEnvelop.setTotalCount(count.intValue());
        mixEnvelop.setDetailModelList(list);
        mixEnvelop.setPageSize(size);
        mixEnvelop.setCurrPage(page);
        return mixEnvelop;
    }

+ 20 - 3
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/application/BaseApplicationRoleDictEndpoint.java

@ -94,7 +94,8 @@ private BaseApplicationRoleDictService applicationRoleDictService;
            BaseApplicationRoleUserDO roleUserDO = toEntity(object.toJSONString(), BaseApplicationRoleUserDO.class);
            roleUserDOS.add(roleUserDO);
        }
        return success(applicationRoleDictService.insertRoleUser(roleUserDOS));
        String uuid = getUID();
        return success(applicationRoleDictService.insertRoleUser(roleUserDOS,uuid));
    }
@ -118,8 +119,24 @@ private BaseApplicationRoleDictService applicationRoleDictService;
    @ApiOperation(value = "根据角色id获取角色关联的成员")
    public Envelop selectUserByRoleId (
            @ApiParam(name = "roleId", value = "角色id", required = true)
            @RequestParam(value = "roleId") String roleId) throws Exception {
        return success(applicationRoleDictService.selectUserByRoleId(roleId));
            @RequestParam(value = "roleId") String roleId,
            @ApiParam(name = "userType", value = "用户type1患者2医生", required = false)
            @RequestParam(value = "userType",required = false) String userType,
            @ApiParam(name = "userName", value = "用户名称", required = false)
            @RequestParam(value = "userName",required = false) String userName,
            @ApiParam(name = "userMobile", value = "用户手机号", required = false)
            @RequestParam(value = "userMobile",required = false) String userMobile,
            @ApiParam(name = "userIdcard", value = "用户身份证", required = false)
            @RequestParam(value = "userIdcard",required = false) String userIdcard,
            @ApiParam(name = "dept", value = "科室代码", required = false)
            @RequestParam(value = "dept",required = false) String dept,
            @ApiParam(name = "jobTitleCode", value = "职称", required = false)
            @RequestParam(value = "jobTitleCode",required = false) String jobTitleCode,
            @ApiParam(name = "page", value = "页码", required = false)
            @RequestParam(value = "page",required = false) Integer page,
            @ApiParam(name = "size", value = "大小", required = false)
            @RequestParam(value = "size",required = false) Integer size) throws Exception {
        return success(applicationRoleDictService.selectUserByRoleId(roleId,userType,userName,userMobile,userIdcard,dept,jobTitleCode,page,size));
    }

+ 1 - 1
svr/svr-base/src/main/resources/application.yml

@ -1042,7 +1042,7 @@ fastDFS:
  fastdfs_file_url: http://10.172.0.61:80/
demo:
  flag: true
basedb: #base数据基础数据数据源,用于跨库查询
basedb:
  name: base
base:
  url: http://172.17.110.212:10020/