diff --git a/base-system-server/pom.xml b/base-system-server/pom.xml index b62fb97..ff53a39 100644 --- a/base-system-server/pom.xml +++ b/base-system-server/pom.xml @@ -32,6 +32,11 @@ + + cn.hutool + hutool-all + 4.5.16 + org.springframework.boot diff --git a/base-system-server/src/main/java/com/health/system/server/controller/SysUserController.java b/base-system-server/src/main/java/com/health/system/server/controller/SysUserController.java index e9aed5e..b80d5ab 100644 --- a/base-system-server/src/main/java/com/health/system/server/controller/SysUserController.java +++ b/base-system-server/src/main/java/com/health/system/server/controller/SysUserController.java @@ -38,7 +38,8 @@ import java.util.stream.Collectors; */ @RestController @RequestMapping("/user") -public class SysUserController extends BaseController { +public class SysUserController extends BaseController +{ @Autowired private ISysUserService userService; @@ -62,7 +63,8 @@ public class SysUserController extends BaseController { */ @RequiresPermissions("system:user:list") @GetMapping("/list") - public Result list(SysUser user) { + public Result list(SysUser user) + { startPage(); List list = userService.selectUserList(user); return getDataTable(list); @@ -71,7 +73,8 @@ public class SysUserController extends BaseController { @Log(title = "用户管理", businessType = BusinessType.EXPORT) @RequiresPermissions("system:user:export") @PostMapping("/export") - public void export(HttpServletResponse response, SysUser user) { + public void export(HttpServletResponse response, SysUser user) + { List list = userService.selectUserList(user); ExcelUtil util = new ExcelUtil(SysUser.class); util.exportExcel(response, list, "用户数据"); @@ -80,7 +83,8 @@ public class SysUserController extends BaseController { @Log(title = "用户管理", businessType = BusinessType.IMPORT) @RequiresPermissions("system:user:import") @PostMapping("/importData") - public Result importData(MultipartFile file, boolean updateSupport) throws Exception { + public Result importData(MultipartFile file, boolean updateSupport) throws Exception + { ExcelUtil util = new ExcelUtil(SysUser.class); List userList = util.importExcel(file.getInputStream()); String operName = SecurityUtils.getUsername(); @@ -89,7 +93,8 @@ public class SysUserController extends BaseController { } @PostMapping("/importTemplate") - public void importTemplate(HttpServletResponse response) throws IOException { + public void importTemplate(HttpServletResponse response) throws IOException + { ExcelUtil util = new ExcelUtil(SysUser.class); util.importTemplateExcel(response, "用户数据"); } @@ -99,9 +104,11 @@ public class SysUserController extends BaseController { */ @InnerAuth @GetMapping("/info/{username}") - public Result info(@PathVariable("username") String username) { + public Result info(@PathVariable("username") String username) + { SysUser sysUser = userService.selectUserByUserName(username); - if (StringUtils.isNull(sysUser)) { + if (StringUtils.isNull(sysUser)) + { return Result.error("用户名或密码错误"); } // 角色集合 @@ -120,12 +127,15 @@ public class SysUserController extends BaseController { */ @InnerAuth @PostMapping("/register") - public Result register(@RequestBody SysUser sysUser) { + public Result register(@RequestBody SysUser sysUser) + { String username = sysUser.getUserName(); - if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) { + if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) + { return Result.error("当前系统没有开启注册功能!"); } - if (!userService.checkUserNameUnique(sysUser)) { + if (!userService.checkUserNameUnique(sysUser)) + { return Result.error("保存用户'" + username + "'失败,注册账号已存在"); } return Result.success(userService.registerUser(sysUser)); @@ -140,7 +150,7 @@ public class SysUserController extends BaseController { } //注册 - @PostMapping("/register/user") + @PostMapping public Result registerUser(@RequestBody User user){ String userName = user.getUserName(); if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) @@ -157,7 +167,8 @@ public class SysUserController extends BaseController { * @return 用户信息 */ @GetMapping("getInfo") - public Result getInfo() { + public Result getInfo() + { SysUser user = userService.selectUserById(SecurityUtils.getUserId()); // 角色集合 Set roles = permissionService.getRolePermission(user); @@ -176,15 +187,17 @@ public class SysUserController extends BaseController { * 根据用户编号获取详细信息 */ @RequiresPermissions("system:user:query") - @GetMapping(value = {"/", "/{userId}"}) - public Result getInfo(@PathVariable(value = "userId", required = false) Long userId) { + @GetMapping(value = { "/", "/{userId}" }) + public Result getInfo(@PathVariable(value = "userId", required = false) Long userId) + { userService.checkUserDataScope(userId); Result result = Result.success(); Map map = new LinkedHashMap<>(); List roles = roleService.selectRoleAll(); map.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); map.put("posts", postService.selectPostAll()); - if (StringUtils.isNotNull(userId)) { + if (StringUtils.isNotNull(userId)) + { SysUser sysUser = userService.selectUserById(userId); map.put("susUser", sysUser); map.put("postIds", postService.selectPostListByUserId(userId)); @@ -200,12 +213,18 @@ public class SysUserController extends BaseController { @RequiresPermissions("system:user:add") @Log(title = "用户管理", businessType = BusinessType.INSERT) @PostMapping - public Result add(@Validated @RequestBody SysUser user) { - if (!userService.checkUserNameUnique(user)) { + public Result add(@Validated @RequestBody SysUser user) + { + if (!userService.checkUserNameUnique(user)) + { return error("新增用户'" + user.getUserName() + "'失败,登录账号已存在"); - } else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) { + } + else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) + { return error("新增用户'" + user.getUserName() + "'失败,手机号码已存在"); - } else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) { + } + else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) + { return error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在"); } //获取当前用户 @@ -221,14 +240,20 @@ public class SysUserController extends BaseController { @RequiresPermissions("system:user:edit") @Log(title = "用户管理", businessType = BusinessType.UPDATE) @PutMapping - public Result edit(@Validated @RequestBody SysUser user) { + public Result edit(@Validated @RequestBody SysUser user) + { userService.checkUserAllowed(user); userService.checkUserDataScope(user.getUserId()); - if (!userService.checkUserNameUnique(user)) { + if (!userService.checkUserNameUnique(user)) + { return error("修改用户'" + user.getUserName() + "'失败,登录账号已存在"); - } else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) { + } + else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) + { return error("修改用户'" + user.getUserName() + "'失败,手机号码已存在"); - } else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) { + } + else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) + { return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在"); } user.setUpdateBy(SecurityUtils.getUsername()); @@ -241,8 +266,10 @@ public class SysUserController extends BaseController { @RequiresPermissions("system:user:remove") @Log(title = "用户管理", businessType = BusinessType.DELETE) @DeleteMapping("/{userIds}") - public Result remove(@PathVariable Long[] userIds) { - if (ArrayUtils.contains(userIds, SecurityUtils.getUserId())) { + public Result remove(@PathVariable Long[] userIds) + { + if (ArrayUtils.contains(userIds, SecurityUtils.getUserId())) + { return error("当前用户不能删除"); } return toAjax(userService.deleteUserByIds(userIds)); @@ -254,7 +281,8 @@ public class SysUserController extends BaseController { @RequiresPermissions("system:user:edit") @Log(title = "用户管理", businessType = BusinessType.UPDATE) @PutMapping("/resetPwd") - public Result resetPwd(@RequestBody SysUser user) { + public Result resetPwd(@RequestBody SysUser user) + { userService.checkUserAllowed(user); userService.checkUserDataScope(user.getUserId()); user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); @@ -268,7 +296,8 @@ public class SysUserController extends BaseController { @RequiresPermissions("system:user:edit") @Log(title = "用户管理", businessType = BusinessType.UPDATE) @PutMapping("/changeStatus") - public Result changeStatus(@RequestBody SysUser user) { + public Result changeStatus(@RequestBody SysUser user) + { userService.checkUserAllowed(user); userService.checkUserDataScope(user.getUserId()); user.setUpdateBy(SecurityUtils.getUsername()); @@ -280,7 +309,8 @@ public class SysUserController extends BaseController { */ @RequiresPermissions("system:user:query") @GetMapping("/authRole/{userId}") - public Result authRole(@PathVariable("userId") Long userId) { + public Result authRole(@PathVariable("userId") Long userId) + { Result result = Result.success(); Map map = new LinkedHashMap<>(); SysUser user = userService.selectUserById(userId); @@ -297,7 +327,8 @@ public class SysUserController extends BaseController { @RequiresPermissions("system:user:edit") @Log(title = "用户管理", businessType = BusinessType.GRANT) @PutMapping("/authRole") - public Result insertAuthRole(Long userId, Long[] roleIds) { + public Result insertAuthRole(Long userId, Long[] roleIds) + { userService.checkUserDataScope(userId); userService.insertUserAuth(userId, roleIds); return success(); @@ -308,7 +339,8 @@ public class SysUserController extends BaseController { */ @RequiresPermissions("system:user:list") @GetMapping("/deptTree") - public Result deptTree(SysDept dept) { + public Result deptTree(SysDept dept) + { return success(deptService.selectDeptTreeList(dept)); } } diff --git a/base-system-server/src/main/java/com/health/system/server/service/ISysUserService.java b/base-system-server/src/main/java/com/health/system/server/service/ISysUserService.java index f4f656c..5c30193 100644 --- a/base-system-server/src/main/java/com/health/system/server/service/ISysUserService.java +++ b/base-system-server/src/main/java/com/health/system/server/service/ISysUserService.java @@ -1,7 +1,10 @@ package com.health.system.server.service; import java.util.List; + +import com.health.common.core.domain.Result; import com.health.system.common.domain.SysUser; +import com.health.system.common.domain.User; /** * 用户 业务层 @@ -203,4 +206,8 @@ public interface ISysUserService * @return 结果 */ public String importUser(List userList, Boolean isUpdateSupport, String operName); + + Result getEmailCode(String emailCount); + + Boolean registerNewUser(User user); } diff --git a/base-system-server/src/main/java/com/health/system/server/service/impl/SysUserServiceImpl.java b/base-system-server/src/main/java/com/health/system/server/service/impl/SysUserServiceImpl.java index 192eb7d..da61a20 100644 --- a/base-system-server/src/main/java/com/health/system/server/service/impl/SysUserServiceImpl.java +++ b/base-system-server/src/main/java/com/health/system/server/service/impl/SysUserServiceImpl.java @@ -1,6 +1,8 @@ package com.health.system.server.service.impl; +import cn.hutool.core.util.RandomUtil; import com.health.common.core.constant.UserConstants; +import com.health.common.core.domain.Result; import com.health.common.core.exception.ServiceException; import com.health.common.core.utils.SpringUtils; import com.health.common.core.utils.StringUtils; @@ -11,13 +13,21 @@ import com.health.system.common.domain.*; import com.health.system.server.mapper.*; import com.health.system.server.service.ISysConfigService; import com.health.system.server.service.ISysUserService; +import io.swagger.models.auth.In; +import org.apache.commons.lang3.RandomUtils; +import org.bouncycastle.pqc.math.linearalgebra.RandUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import javax.mail.MessagingException; +import javax.mail.internet.MimeMessage; import javax.validation.Validator; import java.util.ArrayList; import java.util.List; @@ -33,6 +43,10 @@ public class SysUserServiceImpl implements ISysUserService { private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class); + @Autowired + private RedisTemplate redisTemplate; + @Autowired + private JavaMailSender javaMailSender; @Autowired private SysUserMapper userMapper; @@ -252,7 +266,7 @@ public class SysUserServiceImpl implements ISysUserService // 新增用户信息 int rows = userMapper.insertUser(user); // 新增用户岗位关联 - insertUserPost(user); +// insertUserPost(user); // 新增用户与角色管理 insertUserRole(user); return rows; @@ -267,6 +281,7 @@ public class SysUserServiceImpl implements ISysUserService @Override public boolean registerUser(SysUser user) { + return userMapper.insertUser(user) > 0; } @@ -288,7 +303,7 @@ public class SysUserServiceImpl implements ISysUserService // 删除用户与岗位关联 userPostMapper.deleteUserPostByUserId(userId); // 新增用户与岗位管理 - insertUserPost(user); +// insertUserPost(user); return userMapper.updateUser(user); } @@ -375,7 +390,7 @@ public class SysUserServiceImpl implements ISysUserService */ public void insertUserRole(SysUser user) { - this.insertUserRole(user.getUserId(), user.getRoleIds()); + this.insertUserRole(user); } /** @@ -383,6 +398,11 @@ public class SysUserServiceImpl implements ISysUserService * * @param user 用户对象 */ +// public void insertUserPost(SysUser user){ +// Long deptId = user.getDeptId(); +// user.getUserId(); +// userPostMapper.addUserPost(userId,departmentId); +// } public void insertUserPost(SysUser user) { Long[] posts = user.getPostIds(); @@ -535,4 +555,36 @@ public class SysUserServiceImpl implements ISysUserService return successMsg.toString(); } + @Override + public Boolean registerNewUser(User user) { + Long roleId = user.getRoleId(); + //如果roleId==1证明是注册医生 + if (roleId==1){ + return userMapper.registerNewDoctor(user)>0; + } + //注册患者 + if (roleId==2){ + return userMapper.registerNewPatient(user)>0; + } + return null; + } + + @Override + public Result getEmailCode(String emailCount) { + String emailCode = RandomUtil.randomNumbers(4); + MimeMessage mimeMessage = javaMailSender.createMimeMessage(); + try { + MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true); + mimeMessageHelper.setFrom("371894675@qq.com"); + mimeMessageHelper.setTo(emailCount); + mimeMessageHelper.setSubject("邮箱验证码"); + mimeMessageHelper.setText("验证码为:"+emailCode); + + } catch (MessagingException e) { + throw new RuntimeException(e); + } + redisTemplate.opsForValue().set(emailCount,emailCode); + return Result.success(emailCode,"邮箱验证码发送成功"); + } + }