|
@ -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;
|
|
|
}
|
|
|
|
|
|
|