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; /** * 职称 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/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/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/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/SysUserServiceImpl.java
@@ -16,15 +16,15 @@ 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; import com.kidgrow.usercenter.mapper.SysDoctorMapper; import com.kidgrow.usercenter.mapper.SysRoleMenuMapper; import com.kidgrow.usercenter.mapper.SysUserMapper; import com.kidgrow.usercenter.mapper.*; 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; @@ -81,6 +81,13 @@ private DistributedLock lock; @Autowired private SysDoctorMapper sysDoctorMapper; @Autowired private SysRoleMapper sysRoleMapper; @Autowired private SysUserRoleMapper sysUserRoleMapper; private final String HOSPITAL_ADMIN="hospital_admin"; @Override public LoginAppUser findByUsername(String username) { @@ -622,7 +629,6 @@ /** * H端用户注册 管理员添加用户 * * @param userRegVo * @return */ @@ -633,27 +639,31 @@ return ResultBody.failed("该手机号已经注册"); } //检查判断是注册 还是添加用户,注册用户先走基本数据建设 if (StringUtils.isBlank(userRegVo.getHospitalId().toString())) { if (userRegVo.getHospitalId()==null) { userRegVo.setDoctorState(true); //添加医院组织结构数据 List<SysOrganization> sysOrganizationList = new ArrayList<SysOrganization>(); SysOrganization sysOrganizationHos = new SysOrganization(); List<SysOrganization> sysOrganizationList=new ArrayList<SysOrganization>(); SysOrganization sysOrganizationHos=new SysOrganization(); sysOrganizationHos.setOrgAttr(1); sysOrganizationHos.setOrgLevel(1); sysOrganizationHos.setOrgName(userRegVo.getHospitalName()); sysOrganizationHos.setCreateUserName("自主注册"); sysOrganizationHos.setCreateUserId(0L); sysOrganizationList.add(sysOrganizationHos); //添加科室组织数据 SysOrganization sysOrganizationDe = new SysOrganization(); SysOrganization sysOrganizationDe=new SysOrganization(); sysOrganizationDe.setOrgAttr(2); sysOrganizationDe.setOrgLevel(2); sysOrganizationDe.setOrgName(userRegVo.getDepartmentName()); sysOrganizationDe.setCreateUserName("自主注册"); sysOrganizationDe.setCreateUserId(0L); sysOrganizationList.add(sysOrganizationDe); //批量写入 boolean orgRe = organizationService.saveBatch(sysOrganizationList); boolean orgRe= organizationService.saveBatch(sysOrganizationList); if (orgRe) { //写医院数据 SysHospital sysHospital = new SysHospital(); SysHospital sysHospital=new SysHospital(); sysHospital.setHospitalName(userRegVo.getHospitalName()); sysHospital.setOrgId(sysOrganizationHos.getId()); sysHospital.setAccountsCount(1); @@ -661,11 +671,11 @@ sysHospital.setCreateUserId(0L); sysHospital.setCreateUserName("自主注册"); boolean h = hospitalService.save(sysHospital); boolean h=hospitalService.save(sysHospital); if (h) { userRegVo.setHospitalId(sysHospital.getId()); //保存科室数据 SysDepartment sysDepartment = new SysDepartment(); SysDepartment sysDepartment=new SysDepartment(); sysDepartment.setHospitalId(sysHospital.getId()); sysDepartment.setOrgId(sysOrganizationDe.getId()); sysDepartment.setDepartmentName(userRegVo.getDepartmentName()); @@ -674,30 +684,38 @@ sysDepartment.setSaleUserTel("0"); sysDepartment.setServerUserId(0L); sysDepartment.setServerUserTel("0"); boolean d = departmentService.save(sysDepartment); sysDepartment.setServerUserName("自主注册"); boolean d=departmentService.save(sysDepartment); if (!d) { return ResultBody.failed("科室数据写入失败"); } else { } else { userRegVo.setDepartmentId(sysDepartment.getId()); } } else { } else { return ResultBody.failed("医院数据写入失败"); } } else { } else { return ResultBody.failed("组织数据写入失败"); } } //添加用户数据 如果没有输入密码,将会创建一个默认密码返回 String defaultPassWord = ""; SysUser sysUser = new SysUser(); String defaultPassWord=""; SysUser sysUser=new SysUser(); sysUser.setUsername(userRegVo.getUsername()); sysUser.setMobile(userRegVo.getMobile()); if (StringUtils.isBlank(userRegVo.getPassword())) { defaultPassWord = com.kidgrow.common.utils.RandomValueUtils.getRandom(6); defaultPassWord=com.kidgrow.common.utils.RandomValueUtils.getRandom(6); sysUser.setPassword(passwordEncoder.encode(defaultPassWord)); sysUser.setDefaultAuth(true); userRegVo.setPassword(defaultPassWord); } else { } else { sysUser.setPassword(passwordEncoder.encode(userRegVo.getPassword())); sysUser.setDefaultAuth(false); } @@ -706,45 +724,66 @@ sysUser.setEnabled(true); if (StringUtils.isNotBlank(userRegVo.getType())) { sysUser.setType(userRegVo.getType()); } else { } else { sysUser.setType(UserType.DOCTOR.name()); } sysUser.setHAdminUser(false); sysUser.setOpenId(userRegVo.getOpenId()); sysUser.setDel(false); boolean u = this.save(sysUser); if (u) { sysUser.setTenantId("hospital"); boolean u=this.save(sysUser); if(u) { //保存 角色信息 Map<String,Object> map= new HashMap<>(); map.put("code",HOSPITAL_ADMIN); map.put("enabled",1); map.put("is_del",0); List<SysRole> sysRoles = sysRoleMapper.selectByMap(map); if(sysRoles.size()>0){ //保存一个角色 SysRole sysRole = sysRoles.get(0); SysRoleUser sysRoleUser=new SysRoleUser(); sysRoleUser.setRoleId(sysRole.getId()); sysRoleUser.setUserId(sysUser.getId()); int insert = sysUserRoleMapper.insert(sysRoleUser); } //写入职务数据 if (StringUtils.isNotBlank(userRegVo.getDoctorRank())) { //检查医生职务是否存在 Map<String, Object> selectMap = new HashMap<>(); selectMap.put("dictionaries_name", userRegVo.getDoctorRank()); List<SysDictionaries> dictionariesList = sysDictionariesService.findAll(selectMap); if (dictionariesList.size() > 0) { List<SysDictionaries> dictionariesList=sysDictionariesService.findAll(selectMap); if (dictionariesList.size()>0) { for (int i = dictionariesList.size() - 1; i >= 0; i--) { if (dictionariesList.get(i).getDictionariesName().equals(userRegVo.getDoctorRank())) { userRegVo.setDoctorRankId(dictionariesList.get(i).getId()); break; } } } else { } else { //创建字典数据 SysDictionaries sysDictionaries = new SysDictionaries(); SysDictionaries sysDictionaries=new SysDictionaries(); 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("自动创建"); boolean d = sysDictionariesService.save(sysDictionaries); boolean d=sysDictionariesService.save(sysDictionaries); if (d) { userRegVo.setDoctorRankId(sysDictionaries.getId()); } } } //写入医生数据 SysDoctor sysDoctor = new SysDoctor(); SysDoctor sysDoctor=new SysDoctor(); sysDoctor.setUserId(sysUser.getId()); sysDoctor.setHospitalId(userRegVo.getHospitalId()); sysDoctor.setHospitalName(userRegVo.getHospitalName()); @@ -759,21 +798,36 @@ sysDoctor.setDoctorName(userRegVo.getNickname()); sysDoctor.setServerUserId(0L); sysDoctor.setServerUserName("自主注册"); if (sysDoctorMapper.insert(sysDoctor) == 1) { if (StringUtils.isNotBlank(defaultPassWord)) { //默认密码需要返回 sysUser.setPassword(defaultPassWord); } else { sysUser.setPassword(""); } return ResultBody.ok(200, "注册成功").data(sysUser); } else { if (sysDoctorMapper.insert(sysDoctor)==1) { sysUser.setPassword(userRegVo.getPassword()); return ResultBody.ok().data(sysUser); // return ResultBody.ok(200,"注册成功").data(sysUser); } else { return ResultBody.failed("医生数据写入失败"); } } else { } else { 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("医院数据有误"); } } @@ -813,14 +867,5 @@ return sysDoctorList.get(0); } return new com.kidgrow.usercenter.model.SysDoctor(); } public ResultBody userIsAdmin(String userName) { Map<String, Object> selectMap = new HashMap<>(); selectMap.put("username", userName); List<SysUser> sysUsers = baseMapper.selectByMap(selectMap); return null; } } 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,7 +309,7 @@ if (checkAdmin(id)) { return ResultBody.failed(ADMIN_CHANGE_MSG); } boolean v= appUserService.delUser(id); 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>