From 3053f3c6a8ea26d204e83e9f17a418d6928da5bc Mon Sep 17 00:00:00 2001 From: zhaoxiaohao <913652501@qq.com> Date: Tue, 16 Jun 2020 19:19:11 +0800 Subject: [PATCH] Merge branch 'dev' of http://192.168.2.240:7070/r/kidgrow-microservices-platform into dev --- kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/AliyunOSSAutoConfigure.java | 5 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java | 10 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysOrganizationService.java | 7 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysHospitalService.java | 8 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java | 30 +++ pom.xml | 10 + kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/HospitalDoctorListVo.java | 40 ++++ kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java | 94 +++++--- kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysUserMapper.xml | 23 ++ kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/utils/Pinyin4jUtil.java | 149 ++++++++++++++ kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysUserMapper.java | 11 + kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java | 7 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java | 114 +++++++--- kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java | 7 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java | 11 + kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysDoctorMapper.java | 2 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/UserRegVo.java | 9 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysOrganizationServiceImpl.java | 45 ++- 18 files changed, 484 insertions(+), 98 deletions(-) diff --git a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/AliyunOSSAutoConfigure.java b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/AliyunOSSAutoConfigure.java index aca4c2e..ec404eb 100644 --- a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/AliyunOSSAutoConfigure.java +++ b/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 + "/"; } diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/HospitalDoctorListVo.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/HospitalDoctorListVo.java new file mode 100644 index 0000000..8de54d2 --- /dev/null +++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/HospitalDoctorListVo.java @@ -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; +} diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/UserRegVo.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/UserRegVo.java index 6fecb03..a32a31b 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/UserRegVo.java +++ b/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; } diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysDoctorMapper.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysDoctorMapper.java index fefca02..0bd8d5f 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysDoctorMapper.java +++ b/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); } diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysUserMapper.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysUserMapper.java index 785ec79..a5d4183 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysUserMapper.java +++ b/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); } diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java index e22542c..616b200 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java +++ b/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); } diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysHospitalService.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysHospitalService.java index 6e57d42..3f0697c 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysHospitalService.java +++ b/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); } \ No newline at end of file diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysOrganizationService.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysOrganizationService.java index b904bee..282563d 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysOrganizationService.java +++ b/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); } diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java index 116ec5e..bb8d8b9 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java +++ b/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); } diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java index abab3a4..9102b36 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java +++ b/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"); diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java index 9d47ecf..e5f1a18 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java +++ b/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("修改数据有误!"); + } + } } diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysOrganizationServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysOrganizationServiceImpl.java index 09a1b2d..90a1bdf 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysOrganizationServiceImpl.java +++ b/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; } } diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java index b8e048b..ff57dbc 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java +++ b/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(); } - } \ No newline at end of file diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysUserMapper.xml b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysUserMapper.xml index 6616183..7d9be46 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysUserMapper.xml +++ b/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> \ No newline at end of file diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java index 0e8c2bc..faa384a 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java +++ b/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更新 */ diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java index dc15918..e12818f 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java +++ b/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)); diff --git a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/utils/Pinyin4jUtil.java b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/utils/Pinyin4jUtil.java new file mode 100644 index 0000000..dfccd2c --- /dev/null +++ b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/utils/Pinyin4jUtil.java @@ -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; + } + } + + +} diff --git a/pom.xml b/pom.xml index 7f29603..18c965b 100644 --- a/pom.xml +++ b/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> -- Gitblit v1.8.0