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