kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/AliyunOSSAutoConfigure.java
@@ -80,7 +80,10 @@ // 医院Logo只保存在一个目录中 else if (fileInfo.getImgType().toLowerCase().equals("logo")) { fileFolder = "HospitalLogo/"; } else { }else if (fileInfo.getImgType().toLowerCase().equals("doctor")) { fileFolder = "DoctorImage/"; } else { fileFolder = "OtherImage/"+ folderByDate + "/"; } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/HospitalDoctorListVo.java
New file @@ -0,0 +1,40 @@ package com.kidgrow.usercenter.vo; import com.baomidou.mybatisplus.extension.activerecord.Model; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> * * @version 1.0 * @Description: <br> * @Project: H端用户列表<br> * @CreateDate: Created in 2020-06-16 14:02:50 <br> * @Author: <a href="411269194@kidgrow.com">hrj</a> */ @Data @NoArgsConstructor @AllArgsConstructor public class HospitalDoctorListVo extends Model<HospitalDoctorListVo> { private static final long serialVersionUID = 1L; private String createTime; private String departmentName; private String hospitalName; private String doctorName; private String doctorRank; private String doctorTel; @JsonSerialize(using = ToStringSerializer.class) private Long id; @JsonSerialize(using = ToStringSerializer.class) private Long userId; private boolean isAdminUser; private boolean doctorState; private String Mobile; private String userName; private boolean isDefaultAuth; private boolean enabled; } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/UserRegVo.java
@@ -1,6 +1,8 @@ package com.kidgrow.usercenter.vo; import com.baomidou.mybatisplus.extension.activerecord.Model; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -70,6 +72,7 @@ /** * 所属医院ID 注册用户固定传0 */ @JsonSerialize(using = ToStringSerializer.class) private Long hospitalId; /** * 医院名称 @@ -79,6 +82,7 @@ /** * 科室ID 注册用户固定传0 */ @JsonSerialize(using = ToStringSerializer.class) private Long departmentId; /** * 科室名称 @@ -87,6 +91,7 @@ /** * 职称ID 注册用户固定传0 */ @JsonSerialize(using = ToStringSerializer.class) private Long doctorRankId; /** * 职称 @@ -97,4 +102,8 @@ */ @NotNull(message = "医生状态 1正常 0试用不能为空") private Boolean doctorState; /** * 资质证书 图片地址 */ private String doctorCcie; } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysDoctorMapper.java
@@ -36,5 +36,5 @@ * @param userName * @return SysDoctor */ SysDoctor userIsAdmin(String userName); SysDoctor userIsAdmin(@Param("userName") String userName); } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysUserMapper.java
@@ -4,6 +4,7 @@ import com.kidgrow.common.model.DoctorUserAll; import com.kidgrow.common.model.SysUser; import com.kidgrow.db.mapper.SuperMapper; import com.kidgrow.usercenter.vo.HospitalDoctorListVo; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -40,5 +41,13 @@ * @param userId * @return */ DoctorUserAll findDoctorUserAllData(Long userId); DoctorUserAll findDoctorUserAllData(@Param("userId") Long userId); /** * 获取医院科室下的所有有效的医生 * @param hospitalId * @param departmentId * @return */ List<HospitalDoctorListVo> hospitalDoctorList(@Param("hospitalId") Long hospitalId, @Param("departmentId") Long departmentId); } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysDoctorService.java
@@ -56,5 +56,12 @@ * @return */ ResultBody userIsAdmin(String userName); /** * 根据userid删除医生数据 * @param userId * @return */ int deleteByUserId(Long userId); } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysHospitalService.java
@@ -6,6 +6,7 @@ import com.kidgrow.common.service.ISuperService; import com.kidgrow.usercenter.model.SysHospital; import com.kidgrow.usercenter.vo.HospitalListVo; import org.springframework.web.bind.annotation.RequestBody; import java.util.Map; @@ -57,4 +58,11 @@ * @return */ ResultBody delete(Map<String, Object> params); /** * 修改logo数据 * @param params * @return */ ResultBody updateLogo(@RequestBody Map<String, Object> params); } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysOrganizationService.java
@@ -57,5 +57,12 @@ ResultBody getTree(Map<String, Object> params); boolean saveOrUpdateSer(SysOrganization sysOrganization); /** * 根据userid删除组织对应数据 * @param userId * @return */ int deleteByUserId(Long userId); } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java
@@ -144,5 +144,12 @@ * @return */ ResultBody doctorUserReg(UserRegVo userRegVo); /** * 获取医院科室下的所有有效的医生 * @param hospitalId * @param departmentId * @return */ ResultBody hospitalDoctorList(Long hospitalId, Long departmentId); } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java
@@ -110,6 +110,17 @@ return true; } /** * 根据userid删除医生数据 * @param userId * @return */ @Override public int deleteByUserId(Long userId) { Map<String, Object> params = new HashMap<>(); params.put("userId", userId); return baseMapper.deleteByMap(params); } @Override public ResultBody enable(Map<String, Object> params) { Long aLong = MapUtils.getLong(params,"id"); kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java
@@ -5,6 +5,7 @@ import com.kidgrow.common.model.ResultBody; import com.kidgrow.common.model.SysUser; import com.kidgrow.common.service.impl.SuperServiceImpl; import com.kidgrow.common.utils.StringUtils; import com.kidgrow.usercenter.mapper.SysDepartmentMapper; import com.kidgrow.usercenter.mapper.SysHospitalMapper; import com.kidgrow.usercenter.model.SysDepartment; @@ -161,4 +162,33 @@ int j=departmentMapper.updateById(sysDepartment); return (j > 0) ? ResultBody.ok().data(sysHospital).msg("删除成功") : ResultBody.failed("删除失败"); } /** * 更新医院logo * @param params * @return */ @Override public ResultBody updateLogo(Map<String, Object> params) { Long hospitalId = MapUtils.getLong(params, "hospitalId"); String hospitalLogo=MapUtils.getString(params, "hospitalLogo"); String hospitalLitLogo=MapUtils.getString(params, "hospitalLitLogo"); if (StringUtils.isNotBlank(hospitalId.toString())&&StringUtils.isNotBlank(hospitalLogo)&&StringUtils.isNotBlank(hospitalLitLogo)) { SysHospital sysHospital=baseMapper.selectById(hospitalId); if (sysHospital != null) { sysHospital.setHospitalLogo(hospitalLogo); sysHospital.setHospitalLitLogo(hospitalLitLogo); int u=baseMapper.updateById(sysHospital); return ResultBody.ok().data(u>0); } else { return ResultBody.failed("医院数据有误!"); } } else { return ResultBody.failed("修改数据有误!"); } } } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysOrganizationServiceImpl.java
@@ -9,6 +9,7 @@ import com.kidgrow.redis.util.RedisConstant; import com.kidgrow.redis.util.RedisUtils; import com.kidgrow.usercenter.mapper.SysOrganizationMapper; import com.kidgrow.usercenter.mapper.SysUserOrgMapper; import com.kidgrow.usercenter.service.ISysOrganizationService; import com.kidgrow.usercenter.vo.SysOrganizationVo; import lombok.extern.slf4j.Slf4j; @@ -18,10 +19,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.*; import java.util.stream.Collectors; /** @@ -38,7 +36,8 @@ public class SysOrganizationServiceImpl extends SuperServiceImpl<SysOrganizationMapper, SysOrganization> implements ISysOrganizationService { @Autowired RedisUtils redisUtils; @Autowired SysUserOrgMapper sysUserOrgMapper; /** * 列表 * @@ -142,6 +141,13 @@ return ResultBody.ok().data(treeData); } @Override public int deleteByUserId(Long userId) { Map<String, Object> params = new HashMap<>(); params.put("userId", userId); return sysUserOrgMapper.deleteByMap(params); } /** * 将数据 封装成 tree (递归方式) * @@ -203,6 +209,7 @@ /** * 获取自己组织的code * * @param sysOrganization * @return */ 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 */ @@ -239,8 +241,7 @@ baseMapper.updateById(user); if (isdefault){ return ResultBody.ok().msg("密码重置成功!").data(newPassword); } else{ } else { return ResultBody.ok().msg("密码修改成功!").data(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 */ @@ -530,6 +547,7 @@ /** * 通过手机号修改 手机号 * * @param map * @return */ @@ -597,6 +615,7 @@ /** * 根据userid获取用户其它信息 * * @param userId * @return */ @@ -607,6 +626,7 @@ } 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,33 +813,51 @@ 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); } /** * 检查用户登录名是否已经注册 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); } 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); @@ -829,5 +868,4 @@ } return new com.kidgrow.usercenter.model.SysDoctor(); } } kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysUserMapper.xml
@@ -99,7 +99,7 @@ </if> </select> <select id="findDoctorUserAllData" resultType="com.kidgrow.common.model.DoctorUserAll"> <select id="findDoctorUserAllData" parameterType="long" resultType="com.kidgrow.common.model.DoctorUserAll"> SELECT sysuser.id, sysdoctor.doctor_name, sysdoctor.doctor_ccie, @@ -146,4 +146,25 @@ left JOIN sys_department sysdep on sysdoctor.department_id=sysdep.id where sysuser.id=#{userId} </select> <select id="hospitalDoctorList" parameterType="long" resultType="com.kidgrow.usercenter.vo.HospitalDoctorListVo"> SELECT dc.create_time, dc.department_name, dc.hospital_name, dc.doctor_name, dc.doctor_rank, dc.doctor_tel, dc.id, dc.user_id, dc.is_admin_user, dc.doctor_state, us.mobile, us.username, us.is_default_auth, us.enabled FROM sys_doctor dc LEFT JOIN sys_user us ON dc.user_id = us.id where dc.is_del=0 and dc.hospital_id=#{hospitalId} and dc.department_id=#{departmentId} </select> </mapper> kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysHospitalController.java
@@ -129,7 +129,15 @@ SysHospital model = sysHospitalService.findByObject(sysHospital); return ResultBody.ok().data(model).msg("查询成功"); } /** * 修改医院logo */ @ApiOperation(value = "保存") @GetMapping("/updateLogo") public ResultBody updateLogo(@RequestBody Map<String, Object> params) { return sysHospitalService.updateLogo(params); } /** * 新增or更新 */ kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java
@@ -7,6 +7,7 @@ import com.kidgrow.common.context.ClientContextHolder; import com.kidgrow.common.model.*; import com.kidgrow.common.utils.ExcelUtil; import com.kidgrow.common.utils.StringUtils; import com.kidgrow.log.annotation.AuditLog; import com.kidgrow.searchcenter.client.service.IQueryService; import com.kidgrow.searchcenter.model.LogicDelDto; @@ -105,6 +106,7 @@ /** * 用户登录日志 * * @param sysUser * @return */ @@ -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("查询参数有误"); } } /** * 修改用户状态 @@ -226,6 +243,7 @@ /** * 管理后台,给用户重置密码 *重置密码后,会将新密码返回到data字段。 * * @param id */ @PutMapping(value = "/users/{id}/password") @@ -248,6 +266,7 @@ appUserService.updatePassword(sysUser.getId(), sysUser.getOldPassword(), sysUser.getNewPassword(),false); return ResultBody.ok().data(true).msg("密码重置成功"); } /** * 用户自己修改密码-后端以外 */ @@ -260,28 +279,25 @@ if (id>0&&!oldPassword.isEmpty()&&!newPassword.isEmpty()&&!refPassword.isEmpty()) { if (refPassword.equals(newPassword)) { return appUserService.updatePassword(id,oldPassword,newPassword,false).data(true).msg("密码修改成功!"); } else { } 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) { 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); } @@ -372,6 +388,7 @@ private boolean checkAdmin(long id) { return id == 1L; } @PostMapping("/users/findAll") public ResultBody findAll( @RequestBody Map<String,Object> map) { return appUserService.findAll(map); @@ -379,6 +396,7 @@ /** * 根据map查询 总个数 * * @param map * @return */ @@ -386,6 +404,7 @@ public ResultBody findCountByMap( @RequestBody Map<String,Object> map) { return appUserService.findCountByMap(map); } /** * 获取当前用的 组织下的所有人员 */ @@ -393,6 +412,7 @@ public ResultBody getThisUserOrganizationUser(HttpServletRequest request){ return appUserService.getThisUserOrganizationUser(request); } /** * 通过手机修改密码 */ @@ -400,6 +420,7 @@ public ResultBody passwordByPhone(@RequestBody Map<String,Object> map) { return appUserService.passwordByPhone(map); } /** * 通过手机号注册 新用户 */ @@ -407,6 +428,7 @@ public ResultBody registerByPhone(@RequestBody Map<String,Object> map) { return appUserService.registerByPhone(map); } /** * 更换手机号 */ 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>