kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/AliyunOSSAutoConfigure.java
@@ -80,7 +80,10 @@ // 医院Logo只保存在一个目录中 else if (fileInfo.getImgType().toLowerCase().equals("logo")) { fileFolder = "HospitalLogo/"; } else { }else if (fileInfo.getImgType().toLowerCase().equals("doctor")) { fileFolder = "DoctorImage/"; } else { fileFolder = "OtherImage/"+ folderByDate + "/"; } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/HospitalDoctorListVo.java
New file @@ -0,0 +1,40 @@ package com.kidgrow.usercenter.vo; import com.baomidou.mybatisplus.extension.activerecord.Model; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> * * @version 1.0 * @Description: <br> * @Project: H端用户列表<br> * @CreateDate: Created in 2020-06-16 14:02:50 <br> * @Author: <a href="411269194@kidgrow.com">hrj</a> */ @Data @NoArgsConstructor @AllArgsConstructor public class HospitalDoctorListVo extends Model<HospitalDoctorListVo> { private static final long serialVersionUID = 1L; private String createTime; private String departmentName; private String hospitalName; private String doctorName; private String doctorRank; private String doctorTel; @JsonSerialize(using = ToStringSerializer.class) private Long id; @JsonSerialize(using = ToStringSerializer.class) private Long userId; private boolean isAdminUser; private boolean doctorState; private String Mobile; private String userName; private boolean isDefaultAuth; private boolean enabled; } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/UserRegVo.java
@@ -1,6 +1,8 @@ package com.kidgrow.usercenter.vo; import com.baomidou.mybatisplus.extension.activerecord.Model; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -70,6 +72,7 @@ /** * 所属医院ID 注册用户固定传0 */ @JsonSerialize(using = ToStringSerializer.class) private Long hospitalId; /** * 医院名称 @@ -79,6 +82,7 @@ /** * 科室ID 注册用户固定传0 */ @JsonSerialize(using = ToStringSerializer.class) private Long departmentId; /** * 科室名称 @@ -87,6 +91,7 @@ /** * 职称ID 注册用户固定传0 */ @JsonSerialize(using = ToStringSerializer.class) private Long doctorRankId; /** * 职称 @@ -97,4 +102,8 @@ */ @NotNull(message = "医生状态 1正常 0试用不能为空") private Boolean doctorState; /** * 资质证书 图片地址 */ private String doctorCcie; } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysDoctorMapper.java
@@ -36,5 +36,5 @@ * @param userName * @return SysDoctor */ SysDoctor userIsAdmin(String userName); SysDoctor userIsAdmin(@Param("userName") String userName); } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysUserMapper.java
@@ -4,6 +4,7 @@ import com.kidgrow.common.model.DoctorUserAll; import com.kidgrow.common.model.SysUser; import com.kidgrow.db.mapper.SuperMapper; import com.kidgrow.usercenter.vo.HospitalDoctorListVo; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -40,5 +41,13 @@ * @param userId * @return */ DoctorUserAll findDoctorUserAllData(Long userId); DoctorUserAll findDoctorUserAllData(@Param("userId") Long userId); /** * 获取医院科室下的所有有效的医生 * @param hospitalId * @param departmentId * @return */ List<HospitalDoctorListVo> hospitalDoctorList(@Param("hospitalId") Long hospitalId, @Param("departmentId") Long departmentId); } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java
@@ -56,5 +56,12 @@ * @return */ ResultBody userIsAdmin(String userName); /** * 根据userid删除医生数据 * @param userId * @return */ int deleteByUserId(Long userId); } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysHospitalService.java
@@ -6,6 +6,7 @@ import com.kidgrow.common.service.ISuperService; import com.kidgrow.usercenter.model.SysHospital; import com.kidgrow.usercenter.vo.HospitalListVo; import org.springframework.web.bind.annotation.RequestBody; import java.util.Map; @@ -57,4 +58,11 @@ * @return */ ResultBody delete(Map<String, Object> params); /** * 修改logo数据 * @param params * @return */ ResultBody updateLogo(@RequestBody Map<String, Object> params); } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysOrganizationService.java
@@ -57,5 +57,12 @@ ResultBody getTree(Map<String, Object> params); boolean saveOrUpdateSer(SysOrganization sysOrganization); /** * 根据userid删除组织对应数据 * @param userId * @return */ int deleteByUserId(Long userId); } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java
@@ -144,5 +144,12 @@ * @return */ ResultBody doctorUserReg(UserRegVo userRegVo); /** * 获取医院科室下的所有有效的医生 * @param hospitalId * @param departmentId * @return */ ResultBody hospitalDoctorList(Long hospitalId, Long departmentId); } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java
@@ -110,6 +110,17 @@ return true; } /** * 根据userid删除医生数据 * @param userId * @return */ @Override public int deleteByUserId(Long userId) { Map<String, Object> params = new HashMap<>(); params.put("userId", userId); return baseMapper.deleteByMap(params); } @Override public ResultBody enable(Map<String, Object> params) { Long aLong = MapUtils.getLong(params,"id"); kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java
@@ -5,6 +5,7 @@ import com.kidgrow.common.model.ResultBody; import com.kidgrow.common.model.SysUser; import com.kidgrow.common.service.impl.SuperServiceImpl; import com.kidgrow.common.utils.StringUtils; import com.kidgrow.usercenter.mapper.SysDepartmentMapper; import com.kidgrow.usercenter.mapper.SysHospitalMapper; import com.kidgrow.usercenter.model.SysDepartment; @@ -161,4 +162,33 @@ int j=departmentMapper.updateById(sysDepartment); return (j > 0) ? ResultBody.ok().data(sysHospital).msg("删除成功") : ResultBody.failed("删除失败"); } /** * 更新医院logo * @param params * @return */ @Override public ResultBody updateLogo(Map<String, Object> params) { Long hospitalId = MapUtils.getLong(params, "hospitalId"); String hospitalLogo=MapUtils.getString(params, "hospitalLogo"); String hospitalLitLogo=MapUtils.getString(params, "hospitalLitLogo"); if (StringUtils.isNotBlank(hospitalId.toString())&&StringUtils.isNotBlank(hospitalLogo)&&StringUtils.isNotBlank(hospitalLitLogo)) { SysHospital sysHospital=baseMapper.selectById(hospitalId); if (sysHospital != null) { sysHospital.setHospitalLogo(hospitalLogo); sysHospital.setHospitalLitLogo(hospitalLitLogo); int u=baseMapper.updateById(sysHospital); return ResultBody.ok().data(u>0); } else { return ResultBody.failed("医院数据有误!"); } } else { return ResultBody.failed("修改数据有误!"); } } } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysOrganizationServiceImpl.java
@@ -9,6 +9,7 @@ import com.kidgrow.redis.util.RedisConstant; import com.kidgrow.redis.util.RedisUtils; import com.kidgrow.usercenter.mapper.SysOrganizationMapper; import com.kidgrow.usercenter.mapper.SysUserOrgMapper; import com.kidgrow.usercenter.service.ISysOrganizationService; import com.kidgrow.usercenter.vo.SysOrganizationVo; import lombok.extern.slf4j.Slf4j; @@ -18,10 +19,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.*; import java.util.stream.Collectors; /** @@ -38,7 +36,8 @@ public class SysOrganizationServiceImpl extends SuperServiceImpl<SysOrganizationMapper, SysOrganization> implements ISysOrganizationService { @Autowired RedisUtils redisUtils; @Autowired SysUserOrgMapper sysUserOrgMapper; /** * 列表 * @@ -142,6 +141,13 @@ return ResultBody.ok().data(treeData); } @Override public int deleteByUserId(Long userId) { Map<String, Object> params = new HashMap<>(); params.put("userId", userId); return sysUserOrgMapper.deleteByMap(params); } /** * 将数据 封装成 tree (递归方式) * @@ -156,7 +162,7 @@ for (Long id : idList ) { Map<String, Object> map = new HashMap<>(); map.put("id", ""+id); map.put("id", "" + id); map.put("name", collect.get(id).getOrgName()); map.put("level", collect.get(id).getOrgLevel()); map.put("parentId", collect.get(id).getOrgParentId()); @@ -189,7 +195,7 @@ } else { //更新 SysOrganization sysOrg = baseMapper.selectById(sysOrganization.getId()); if(sysOrg.getOrgParentId()!=sysOrganization.getOrgParentId()){ if (sysOrg.getOrgParentId() != sysOrganization.getOrgParentId()) { String code = this.getCode(sysOrganization); sysOrganization.setOrgCode(code); } @@ -203,36 +209,37 @@ /** * 获取自己组织的code * * @param sysOrganization * @return */ public String getCode(SysOrganization sysOrganization){ public String getCode(SysOrganization sysOrganization) { //获取父级 Long orgParentId = sysOrganization.getOrgParentId(); if (orgParentId == null) { return null; } SysOrganization sysOrg = baseMapper.selectById(orgParentId); if(sysOrg!=null){ if (sysOrg != null) { String orgCode = sysOrg.getOrgCode(); //查询 QueryWrapper queryWrapper=new QueryWrapper(); queryWrapper.eq("org_parent_id",sysOrg.getId()); QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.eq("org_parent_id", sysOrg.getId()); queryWrapper.orderByAsc("id"); List<SysOrganization> list = baseMapper.selectList(queryWrapper); if (list.size()>0) { if (list.size() > 0) { SysOrganization sysOrganizationLast = list.get(list.size() - 1); String orgCodeLast = sysOrganizationLast.getOrgCode(); String orgCodeLastQianZhui=orgCodeLast.substring(0,orgCodeLast.length() - 4); String orgCodeLastQianZhui = orgCodeLast.substring(0, orgCodeLast.length() - 4); Integer codenum = Integer.valueOf(orgCodeLast.substring(orgCodeLast.length() - 4)); String str="0000"; str+=(codenum+1); String str = "0000"; str += (codenum + 1); String substring = str.substring(str.length() - 4); return orgCodeLastQianZhui+substring; }else { return orgCodeLastQianZhui + substring; } else { String fucode = sysOrg.getOrgCode(); String str="0001"; return fucode+str; String str = "0001"; return fucode + str; } } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
@@ -16,6 +16,7 @@ import com.kidgrow.common.model.*; import com.kidgrow.common.service.impl.SuperServiceImpl; import com.kidgrow.common.utils.DateUtils; import com.kidgrow.common.utils.Pinyin4jUtil; import com.kidgrow.redis.util.RedisUtils; import com.kidgrow.sms.feign.SmsChuangLanService; import com.kidgrow.sms.model.ConstantSMS; @@ -23,6 +24,7 @@ import com.kidgrow.usercenter.model.SysDoctor; import com.kidgrow.usercenter.model.*; import com.kidgrow.usercenter.service.*; import com.kidgrow.usercenter.vo.HospitalDoctorListVo; import com.kidgrow.usercenter.vo.UserRegVo; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.MapUtils; @@ -106,8 +108,8 @@ } /** * * 获取登录用户的一系列信息 hrj 06-04修改 * * @param sysUser * @return */ @@ -135,7 +137,7 @@ } } //是否医院管理员 com.kidgrow.usercenter.model.SysDoctor sysDoctor=findDoctorByUserId(sysUser.getId()); com.kidgrow.usercenter.model.SysDoctor sysDoctor = findDoctorByUserId(sysUser.getId()); if (sysDoctor.getIsAdminUser() != null) { sysUser.setHAdminUser(sysDoctor.getIsAdminUser()); } @@ -220,7 +222,7 @@ @Transactional @Override public ResultBody updatePassword(Long id, String oldPassword, String newPassword,Boolean isdefault) { public ResultBody updatePassword(Long id, String oldPassword, String newPassword, Boolean isdefault) { SysUser sysUser = baseMapper.selectById(id); if (StrUtil.isNotBlank(oldPassword)) { if (!passwordEncoder.matches(oldPassword, sysUser.getPassword())) { @@ -228,7 +230,7 @@ } } if (StrUtil.isBlank(newPassword)) { newPassword =com.kidgrow.common.utils.RandomValueUtils.getRandom(6); newPassword = com.kidgrow.common.utils.RandomValueUtils.getRandom(6); } SysUser user = new SysUser(); user.setId(id); @@ -237,10 +239,9 @@ user.setDefaultAuth(true); } baseMapper.updateById(user); if (isdefault){ if (isdefault) { return ResultBody.ok().msg("密码重置成功!").data(newPassword); } else{ } else { return ResultBody.ok().msg("密码修改成功!").data(true); } } @@ -254,7 +255,7 @@ String authCode = MapUtils.getString(params, "authCode"); String userPassword = MapUtils.getString(params, "userPassword"); if (id > 0 && StringUtils.isNotBlank(oldTel)&& StringUtils.isNotBlank(newTel) && StringUtils.isNotBlank(authCode) && StringUtils.isNotBlank(userPassword)) { if (id > 0 && StringUtils.isNotBlank(oldTel) && StringUtils.isNotBlank(newTel) && StringUtils.isNotBlank(authCode) && StringUtils.isNotBlank(userPassword)) { //检查验证码 Object hget = redisUtils.hget(ConstantSMS.PHONE_SMS, newTel); if (hget != null) { @@ -282,9 +283,9 @@ user.setMobile(newTel); user.setUsername(newTel); //修改doctor表 com.kidgrow.usercenter.model.SysDoctor sysDoctorModel= findDoctorByUserId(user.getId()); com.kidgrow.usercenter.model.SysDoctor newsysDoctorModel= new com.kidgrow.usercenter.model.SysDoctor(); if (sysDoctorModel!=null) { com.kidgrow.usercenter.model.SysDoctor sysDoctorModel = findDoctorByUserId(user.getId()); com.kidgrow.usercenter.model.SysDoctor newsysDoctorModel = new com.kidgrow.usercenter.model.SysDoctor(); if (sysDoctorModel != null) { //理论上只有一个,如果有多个 只取第一个 newsysDoctorModel.setId(sysDoctorModel.getId()); newsysDoctorModel.setDoctorTel(newTel); @@ -292,7 +293,7 @@ } if (baseMapper.updateById(user) > 0) { //将Redis清除 redisUtils.hdel(ConstantSMS.PHONE_SMS,newTel); redisUtils.hdel(ConstantSMS.PHONE_SMS, newTel); return ResultBody.ok().msg("手机号修改成功!"); } else { return ResultBody.failed("手机号修改失败!"); @@ -364,7 +365,7 @@ if (StringUtils.isBlank(sysUser.getType())) { sysUser.setType(UserType.BACKEND.name()); } String defaultPassWord=com.kidgrow.common.utils.RandomValueUtils.getRandom(6); String defaultPassWord = com.kidgrow.common.utils.RandomValueUtils.getRandom(6); sysUser.setPassword(passwordEncoder.encode(defaultPassWord)); sysUser.setEnabled(Boolean.TRUE); } @@ -386,10 +387,24 @@ return result ? ResultBody.ok().data(sysUser).msg("操作成功") : ResultBody.failed("操作失败"); } /** * 删除用户 * * @param id * @return */ @Transactional(rollbackFor = Exception.class) @Override public boolean delUser(Long id) { //删除角色数据 roleUserService.deleteUserRole(id, null); //删除组织对应数据 organizationService.deleteByUserId(id); //删除医生数据 Map<String, Object> params = new HashMap<>(); params.put("userId", id); sysDoctorMapper.deleteByMap(params); //删除用户数据 return baseMapper.deleteById(id) > 0; } @@ -452,6 +467,7 @@ /** * 通过手机号 修改密码 * * @param map * @return */ @@ -508,6 +524,7 @@ /** * 通过手机号 注册验证 * * @param map * @return */ @@ -522,19 +539,20 @@ return ResultBody.failed("该手机号已经注册"); } Map<String, Object> mapDto=new HashMap(); mapDto.put("phone",phone); mapDto.put("type",ConstantSMS.REGISTER_SMS); Map<String, Object> mapDto = new HashMap(); mapDto.put("phone", phone); mapDto.put("type", ConstantSMS.REGISTER_SMS); return smsChuangLanService.sendVerificationCode(mapDto); } /** * 通过手机号修改 手机号 * * @param map * @return */ @Override public ResultBody updatePhone(Map<String, Object> map,SysUser sysUser) { public ResultBody updatePhone(Map<String, Object> map, SysUser sysUser) { String password = MapUtils.getString(map, "password"); if (StringUtils.isBlank(password)) { return ResultBody.failed("请输入密码"); @@ -543,14 +561,14 @@ if (StringUtils.isBlank(phone)) { return ResultBody.failed("请输入新手机号"); } if(!sysUser.getMobile().equals(password)){ if (!sysUser.getMobile().equals(password)) { return ResultBody.failed("请输入原手机号"); } String verificationCode = MapUtils.getString(map, "verificationCode"); if (StringUtils.isBlank(verificationCode)) { return ResultBody.failed("请输入验证码"); } if (!passwordEncoder.matches(sysUser.getPassword(),password)) { if (!passwordEncoder.matches(sysUser.getPassword(), password)) { return ResultBody.failed("密码错误"); } Object hget = redisUtils.hget(ConstantSMS.PHONE_SMS, map.get("phone").toString()); @@ -591,22 +609,24 @@ @Override public ResultBody findAppointUsers(Integer type) { List<SysUser> list = baseMapper.findAppointUsers(type); return ResultBody.ok().data(list); } List<SysUser> list = baseMapper.findAppointUsers(type); return ResultBody.ok().data(list); } /** * 根据userid获取用户其它信息 * * @param userId * @return */ @Override public ResultBody findDoctorUserAllData(Long userId) { if (userId>0) { if (userId > 0) { return ResultBody.ok().data(baseMapper.findDoctorUserAllData(userId)); } return ResultBody.ok().data(null); } /** * H端用户注册 管理员添加用户 * @param userRegVo @@ -751,7 +771,8 @@ sysDictionaries.setDictionariesKey(DictionariesConstants.DOCTOR_RANK); sysDictionaries.setDictionariesClassId(DictionariesConstants.DOCTOR_RANK_ID.toString()); //将名称汉字转为拼音 sysDictionaries.setDictionariesKey("temp"); sysDictionaries.setDictionariesKey(Pinyin4jUtil.makeStringByStringSet(Pinyin4jUtil.getPinyin(userRegVo.getDoctorRank(),true))); sysDictionaries.setDictionariesName(userRegVo.getDoctorRank()); sysDictionaries.setCreateUserId(0L); sysDictionaries.setCreateUserName("自动创建"); @@ -792,42 +813,59 @@ return ResultBody.failed("用户数据写入失败"); } } /** * 获取医院科室下的所有有效的医生 * @param hospitalId * @param departmentId * @return */ @Override public ResultBody hospitalDoctorList(Long hospitalId, Long departmentId) { if (hospitalId>0&&departmentId>0) { List<HospitalDoctorListVo> listVoList=baseMapper.hospitalDoctorList(hospitalId,departmentId); return ResultBody.ok().data(listVoList); } else { return ResultBody.failed("医院数据有误"); } } /** * 检查手机号是否已经注册 true存在 false不存在 * * @param phone * @return */ private boolean phoneIsUsed(String phone) { private boolean phoneIsUsed(String phone) { Map<String, Object> selectMap = new HashMap<>(); selectMap.put("mobile", phone); List<SysUser> sysUsers = baseMapper.selectByMap(selectMap); return (sysUsers.size()>0); return (sysUsers.size() > 0); } /** * 检查用户登录名是否已经注册 true存在 false不存在 * * @param userName * @return */ private boolean userNameIsUsed(String userName) { private boolean userNameIsUsed(String userName) { Map<String, Object> selectMap = new HashMap<>(); selectMap.put("username", userName); List<SysUser> sysUsers = baseMapper.selectByMap(selectMap); return (sysUsers.size()>0); return (sysUsers.size() > 0); } public com.kidgrow.usercenter.model.SysDoctor findDoctorByUserId(Long userId) { public com.kidgrow.usercenter.model.SysDoctor findDoctorByUserId(Long userId) { Map<String, Object> doctorMap = new HashMap<>(); doctorMap.put("user_id",userId); doctorMap.put("enabled",1); doctorMap.put("is_del",0); List<com.kidgrow.usercenter.model.SysDoctor> sysDoctorList=sysDoctorMapper.selectByMap(doctorMap); if (sysDoctorList.size()>0) { doctorMap.put("user_id", userId); doctorMap.put("enabled", 1); doctorMap.put("is_del", 0); List<com.kidgrow.usercenter.model.SysDoctor> sysDoctorList = sysDoctorMapper.selectByMap(doctorMap); if (sysDoctorList.size() > 0) { return sysDoctorList.get(0); } return new com.kidgrow.usercenter.model.SysDoctor(); } } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysUserMapper.xml
@@ -99,7 +99,7 @@ </if> </select> <select id="findDoctorUserAllData" resultType="com.kidgrow.common.model.DoctorUserAll"> <select id="findDoctorUserAllData" parameterType="long" resultType="com.kidgrow.common.model.DoctorUserAll"> SELECT sysuser.id, sysdoctor.doctor_name, sysdoctor.doctor_ccie, @@ -146,4 +146,25 @@ left JOIN sys_department sysdep on sysdoctor.department_id=sysdep.id where sysuser.id=#{userId} </select> <select id="hospitalDoctorList" parameterType="long" resultType="com.kidgrow.usercenter.vo.HospitalDoctorListVo"> SELECT dc.create_time, dc.department_name, dc.hospital_name, dc.doctor_name, dc.doctor_rank, dc.doctor_tel, dc.id, dc.user_id, dc.is_admin_user, dc.doctor_state, us.mobile, us.username, us.is_default_auth, us.enabled FROM sys_doctor dc LEFT JOIN sys_user us ON dc.user_id = us.id where dc.is_del=0 and dc.hospital_id=#{hospitalId} and dc.department_id=#{departmentId} </select> </mapper> kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java
@@ -129,7 +129,15 @@ SysHospital model = sysHospitalService.findByObject(sysHospital); return ResultBody.ok().data(model).msg("查询成功"); } /** * 修改医院logo */ @ApiOperation(value = "保存") @GetMapping("/updateLogo") public ResultBody updateLogo(@RequestBody Map<String, Object> params) { return sysHospitalService.updateLogo(params); } /** * 新增or更新 */ kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java
@@ -7,6 +7,7 @@ import com.kidgrow.common.context.ClientContextHolder; import com.kidgrow.common.model.*; import com.kidgrow.common.utils.ExcelUtil; import com.kidgrow.common.utils.StringUtils; import com.kidgrow.log.annotation.AuditLog; import com.kidgrow.searchcenter.client.service.IQueryService; import com.kidgrow.searchcenter.model.LogicDelDto; @@ -94,21 +95,22 @@ */ @GetMapping(value = "/users-anon/login", params = "username") @ApiOperation(value = "根据用户名查询用户") public LoginAppUser findByUsername(String username,HttpServletRequest request) { public LoginAppUser findByUsername(String username, HttpServletRequest request) { LoginAppUser loginAppUser =appUserService.findByUsername(username); if(loginAppUser!=null){ loginLogs(loginAppUser,request); LoginAppUser loginAppUser = appUserService.findByUsername(username); if (loginAppUser != null) { loginLogs(loginAppUser, request); } return loginAppUser; } /** * 用户登录日志 * * @param sysUser * @return */ private int loginLogs(LoginAppUser sysUser,HttpServletRequest request){ private int loginLogs(LoginAppUser sysUser, HttpServletRequest request) { SysUserLogs sysUserLogs = new SysUserLogs(); sysUserLogs.setClientId(ClientContextHolder.getClient()); sysUserLogs.setLoginAgentSystem(request.getHeader(CommonConstant.USER_AGENT_SYSTEM)); @@ -154,7 +156,7 @@ * @param sysUser */ @PutMapping("/users") @CachePut(value = "user", key = "#sysUser.username", unless="#result == null") @CachePut(value = "user", key = "#sysUser.username", unless = "#result == null") @AuditLog(operation = "'更新用户:' + #sysUser") public ResultBody updateSysUser(@RequestBody SysUser sysUser) { appUserService.updateById(sysUser); @@ -202,6 +204,21 @@ // log.info("IP:"+request.getHeader(CommonConstant.USER_AGENT_IP)); return appUserService.findUsers(params); } /** * 获取医院科室下的所有有效的医生 * @param hospitalId * @param departmentId * @return */ @ApiOperation(value = "用户查询列表") @GetMapping("/users/HDoctorusers") public ResultBody hospitalDoctorList(@RequestParam Long hospitalId, Long departmentId) { if (StringUtils.isNotBlank(hospitalId.toString()) && StringUtils.isNotBlank(departmentId.toString())) { return appUserService.hospitalDoctorList(hospitalId, departmentId); } else { return ResultBody.failed("查询参数有误"); } } /** * 修改用户状态 @@ -225,7 +242,8 @@ /** * 管理后台,给用户重置密码 *重置密码后,会将新密码返回到data字段。 * 重置密码后,会将新密码返回到data字段。 * * @param id */ @PutMapping(value = "/users/{id}/password") @@ -234,7 +252,7 @@ if (checkAdmin(id)) { return ResultBody.failed(ADMIN_CHANGE_MSG); } return appUserService.updatePassword(id, null, null,true); return appUserService.updatePassword(id, null, null, true); } /** @@ -245,43 +263,41 @@ if (checkAdmin(sysUser.getId())) { return ResultBody.failed().msg(ADMIN_CHANGE_MSG); } appUserService.updatePassword(sysUser.getId(), sysUser.getOldPassword(), sysUser.getNewPassword(),false); appUserService.updatePassword(sysUser.getId(), sysUser.getOldPassword(), sysUser.getNewPassword(), false); return ResultBody.ok().data(true).msg("密码重置成功"); } /** * 用户自己修改密码-后端以外 */ @PutMapping(value = "/users/resetpassword") public ResultBody resetClientPassword(@RequestParam Map<String, Object> params) { Long id=MapUtils.getLong(params, "id"); String oldPassword=MapUtils.getString(params,"oldPassword"); String newPassword=MapUtils.getString(params,"newPassword"); String refPassword=MapUtils.getString(params,"refPassword"); if (id>0&&!oldPassword.isEmpty()&&!newPassword.isEmpty()&&!refPassword.isEmpty()) { Long id = MapUtils.getLong(params, "id"); String oldPassword = MapUtils.getString(params, "oldPassword"); String newPassword = MapUtils.getString(params, "newPassword"); String refPassword = MapUtils.getString(params, "refPassword"); if (id > 0 && !oldPassword.isEmpty() && !newPassword.isEmpty() && !refPassword.isEmpty()) { if (refPassword.equals(newPassword)) { return appUserService.updatePassword(id,oldPassword,newPassword,false).data(true).msg("密码修改成功!"); } else { return appUserService.updatePassword(id, oldPassword, newPassword, false).data(true).msg("密码修改成功!"); } else { return ResultBody.failed("两次新密码输入不一致!").data(false); } } else { } else { return ResultBody.failed("必须参数有误!").data(false); } } /** * 用户修改自己的手机号 * * @param params * @return */ @PutMapping(value="/users/updateusertel") public ResultBody updateUserTel(@RequestParam Map<String,Object> params) { @PutMapping(value = "/users/updateusertel") public ResultBody updateUserTel(@RequestParam Map<String, Object> params) { return appUserService.updateUserTel(params); } /** * 删除用户 * @@ -293,8 +309,8 @@ if (checkAdmin(id)) { return ResultBody.failed(ADMIN_CHANGE_MSG); } appUserService.delUser(id); return ResultBody.ok().msg("删除成功").data(true); boolean v = appUserService.delUser(id); return ResultBody.ok().msg("删除成功").data(v); } @@ -334,7 +350,7 @@ @PostMapping(value = "/users/import") public ResultBody importExcl(@RequestParam("file") MultipartFile excl) throws Exception { int rowNum = 0; if(!excl.isEmpty()) { if (!excl.isEmpty()) { List<SysUserExcel> list = ExcelUtil.importExcel(excl, 0, 1, SysUserExcel.class); rowNum = list.size(); if (rowNum > 0) { @@ -349,7 +365,7 @@ appUserService.saveBatch(users); } } return ResultBody.ok().msg("导入数据成功,一共【"+rowNum+"】行"); return ResultBody.ok().msg("导入数据成功,一共【" + rowNum + "】行"); } @ApiOperation(value = "用户全文搜索列表") @@ -372,54 +388,60 @@ private boolean checkAdmin(long id) { return id == 1L; } @PostMapping("/users/findAll") public ResultBody findAll( @RequestBody Map<String,Object> map) { public ResultBody findAll(@RequestBody Map<String, Object> map) { return appUserService.findAll(map); } /** * 根据map查询 总个数 * * @param map * @return */ @PostMapping("/users/findCountByMap") public ResultBody findCountByMap( @RequestBody Map<String,Object> map) { public ResultBody findCountByMap(@RequestBody Map<String, Object> map) { return appUserService.findCountByMap(map); } /** * 获取当前用的 组织下的所有人员 */ @GetMapping("users/getThisUserOrganizationUser") public ResultBody getThisUserOrganizationUser(HttpServletRequest request){ public ResultBody getThisUserOrganizationUser(HttpServletRequest request) { return appUserService.getThisUserOrganizationUser(request); } /** * 通过手机修改密码 */ @PutMapping(value = "/users/passwordByPhone") public ResultBody passwordByPhone(@RequestBody Map<String,Object> map) { public ResultBody passwordByPhone(@RequestBody Map<String, Object> map) { return appUserService.passwordByPhone(map); } /** * 通过手机号注册 新用户 */ @PutMapping(value = "/users/registerByPhone") public ResultBody registerByPhone(@RequestBody Map<String,Object> map) { public ResultBody registerByPhone(@RequestBody Map<String, Object> map) { return appUserService.registerByPhone(map); } /** * 更换手机号 */ @PutMapping(value = "/users/updatePhone") public ResultBody updatePhone(@RequestBody Map<String,Object> map, @LoginUser SysUser sysUser) { return appUserService.updatePhone(map,sysUser); public ResultBody updatePhone(@RequestBody Map<String, Object> map, @LoginUser SysUser sysUser) { return appUserService.updatePhone(map, sysUser); } /** * 获取指定用户信息(销售人员和服务人员) */ @GetMapping("users/getAppointUser") public ResultBody getAppointUser(){ public ResultBody getAppointUser() { String type = request.getParameter("type"); return appUserService.findAppointUsers(Integer.parseInt(type)); kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/utils/Pinyin4jUtil.java
New file @@ -0,0 +1,149 @@ package com.kidgrow.common.utils; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; import net.sourceforge.pinyin4j.format.HanyuPinyinToneType; import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType; import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; import java.util.HashSet; import java.util.Set; public class Pinyin4jUtil { /** * getFirstSpellPinYin:(多音字的时候获取第一个). <br/> * @param src 传入的拼音字符串,以逗号隔开 * @param isFullSpell 是否全拼,true:全拼,false:第一个汉字全拼(其它汉字取首字母) * @return 第一个拼音 */ public static String getFirstSpellPinYin(String src , boolean isFullSpell) { String targetStr = Pinyin4jUtil.makeStringByStringSet(Pinyin4jUtil.getPinyin(src, isFullSpell)); String[] split = targetStr.split(","); if (split.length > 1) { targetStr = split[0]; } return targetStr; } /** * makeStringByStringSet:(拼音字符串集合转换字符串). <br/> * @param stringSet 拼音集合 * @return */ public static String makeStringByStringSet(Set<String> stringSet) { StringBuilder str = new StringBuilder(); int i = 0; if (stringSet.size() > 0) { for (String s : stringSet) { if (i == stringSet.size() - 1) { str.append(s); } else { str.append(s); } i++; } } return str.toString().toLowerCase(); } /** * getPinyin:(获取汉字拼音). <br/> * @param src 汉字 * @param isFullSpell 是否全拼,如果为true:全拼,false:首字全拼 * @return */ public static Set<String> getPinyin(String src, boolean isFullSpell) { if (src != null && !src.trim().equalsIgnoreCase("")) { char[] srcChar; srcChar = src.toCharArray(); // 汉语拼音格式输出类 HanyuPinyinOutputFormat hanYuPinOutputFormat = new HanyuPinyinOutputFormat(); // 输出设置,大小写,音标方式等 hanYuPinOutputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); hanYuPinOutputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); hanYuPinOutputFormat.setVCharType(HanyuPinyinVCharType.WITH_V); String[][] temp = new String[src.length()][]; for (int i = 0; i < srcChar.length; i++) { char c = srcChar[i]; if (String.valueOf(c).matches("[\\u4E00-\\u9FA5]+")) {//中文 try { temp[i] = PinyinHelper.toHanyuPinyinStringArray( srcChar[i], hanYuPinOutputFormat); if (!isFullSpell) { if (i == 0) { temp[i] = temp[i]; } else { String[] tTemps = new String[temp[i].length]; for (int j = 0; j < temp[i].length; j++) { char t = temp[i][j].charAt(0); tTemps[j] = Character.toString(t); } temp[i] = tTemps; } } } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } } else if (((int) c >= 65 && (int) c <= 90) || ((int) c >= 97 && (int) c <= 122)) {//英文 temp[i] = new String[] { String.valueOf(srcChar[i]) }; } else { temp[i] = new String[] { "" }; } } String[] pingyinArray = exchange(temp); Set<String> pinyinSet = new HashSet<String>(); for (int i = 0; i < pingyinArray.length; i++) { pinyinSet.add(pingyinArray[i]); } return pinyinSet; } return null; } /** * 递归 * @param strJaggedArray * @return */ public static String[] exchange(String[][] strJaggedArray) { String[][] temp = doExchange(strJaggedArray); return temp[0]; } /** * 递归 * @param strJaggedArray * @return */ private static String[][] doExchange(String[][] strJaggedArray) { int len = strJaggedArray.length; if (len >= 2) { int len1 = strJaggedArray[0].length; int len2 = strJaggedArray[1].length; int newlen = len1 * len2; String[] temp = new String[newlen]; int Index = 0; for (int i = 0; i < len1; i++) { for (int j = 0; j < len2; j++) { temp[Index] = strJaggedArray[0][i] + strJaggedArray[1][j]; Index++; } } String[][] newArray = new String[len - 1][]; for (int i = 2; i < len; i++) { newArray[i - 1] = strJaggedArray[i]; } newArray[0] = temp; return doExchange(newArray); } else { return strJaggedArray; } } } pom.xml
@@ -156,6 +156,16 @@ <version>${javax.activatio.version}</version> </dependency> <!-- jaxb模块引用 - end --> <dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.1</version> </dependency> <dependency> <groupId>net.coobird</groupId> <artifactId>thumbnailator</artifactId> <version>0.4.11</version> </dependency> </dependencies>