diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java index 581380e..a1e5cb9 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserService.java @@ -126,6 +126,20 @@ public interface ISysUserService { SysUser getSysUserByLoginName(String loginName); /** + * 根据手机号查询账号 + * @param email + * @return + */ + SysUser getSysUserByEmail(String email); + + /** + * 根据手机号查询账号 + * @param phone + * @return + */ + SysUser getSysUserByPhone(String phone); + + /** * 查出用户角色关系 * @param userId * @return @@ -138,5 +152,27 @@ public interface ISysUserService { * @param id * @return */ - boolean checkLoginName(String userLoginName,long id); + boolean checkSysUserLoginName(String userLoginName, long id); + + /** + * 判断邮箱是否存在 + * @param email + * @param id + * @return + */ + boolean checkSysUserEmail(String email,long id); + + /** + * 判断手机是否存在 + * @param phone + * @param id + * @return + */ + boolean checkSysUserPhone(String phone,long id); + + /** + * 用户唯一教研 + * @param user + */ + void checkSysUserOnly(SysUser user); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java index fbfd4ca..eb6915d 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java @@ -72,6 +72,9 @@ public class SysUserController extends CoreBaseController{ .build(); } + // 用户唯一校验 + sysUserService.checkSysUserOnly(sysUser); + SysUserInfo userInfo = sysUserInfoService.getSysUserInfoById(sysUser.getUserInfoId()); if(userInfo == null){ throw ImppExceptionBuilder.newInstance() @@ -126,13 +129,8 @@ public class SysUserController extends CoreBaseController{ .build(); } - if (sysUserService.checkLoginName(sysUser.getUserLoginName(), sysUser.getId())) { - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) - .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) - .setErrorDetail("用户名已存在") - .build(); - } + // 用户唯一校验 + sysUserService.checkSysUserOnly(sysUser); // 用户信息封装 SysUserInfo userInfo = sysUserService.getSysUserInfoById(sysUser.getUserInfoId()); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java index a6dafe0..7fb2785 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserService.java @@ -17,6 +17,7 @@ import cn.estsh.i3plus.pojo.platform.sqlpack.CoreHqlPack; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.exception.ImppExceptionEnum; +import io.swagger.annotations.ApiOperation; import org.apache.shiro.authc.AuthenticationException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -24,7 +25,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; -import java.util.HashSet; import java.util.List; /** @@ -73,6 +73,7 @@ public class SysUserService implements ISysUserService { private SysPositionRepository sysPositionRDao; @Override + @ApiOperation(value = "用户登录", notes = "用户登录功能实现") public SessionUser queryUserLogin(String loginName, String password, String languageCode) throws AuthenticationException { LOGGER.debug("平台用户 SYS_USER loginName:{} \t password:{} \t languageCode:{}", loginName, password, languageCode); @@ -96,6 +97,7 @@ public class SysUserService implements ISysUserService { } @Override + @ApiOperation(value = "修改账号", notes = "修改账号状态") public void updateSysUserStatus(Long id, int status, SessionUser user) { LOGGER.debug("平台用户 SYS_USER id:{} status:{} modifyUser:{}", id, status, user.getUserName()); SysUser sysUser = sysUserRDao.getById(id); @@ -105,6 +107,7 @@ public class SysUserService implements ISysUserService { } @Override + @ApiOperation(value = "修改账号", notes = "批量修改账号状态") public void updateBatchSysUserStatus(Long[] ids, int status, SessionUser user) { LOGGER.debug("平台用户 SYS_USER DELETE By ids :{} status:{}, SessionUser :{}", ids,status,user); @@ -121,12 +124,14 @@ public class SysUserService implements ISysUserService { } @Override + @ApiOperation(value = "修改账号", notes = "修改账号信息") public void updateSysUser(SysUser sysUser) throws Exception{ LOGGER.debug("平台用户 SYS_USER SysUser :{}", sysUser); sysUserRDao.save(sysUser); } @Override + @ApiOperation(value = "修改账号", notes = "修改账号登录密码") public void updateSysUserPassword(Long userId, String password, String newPwd) throws Exception { LOGGER.debug("平台用户 SYS_USER Override:{} password:{} newPwd:{}", userId,password,newPwd); SysUser user = sysUserRDao.getById(userId); @@ -154,6 +159,7 @@ public class SysUserService implements ISysUserService { } @Override + @ApiOperation(value = "刷新账号", notes = "刷新账号登录信息") public void refreshUserLoginInformation(Long userId) { SysUser user = sysUserRDao.getById(userId); SysUserInfo userInfo = sysUserInfoRDao.getById(user.getUserInfoId()); @@ -168,6 +174,7 @@ public class SysUserService implements ISysUserService { } @Override + @ApiOperation(value = "新增账号", notes = "新增账号信息") public SysUser insertSysUser(SysUser sysUser)throws Exception { LOGGER.debug("平台用户 SYS_USER SysUser:{}", sysUser); @@ -188,6 +195,7 @@ public class SysUserService implements ISysUserService { } @Override + @ApiOperation(value = "新增账号", notes = "新增账号信息") public void refreshSysRefUserRole(SysUser sysUser, Long[] roleIds, String userName) { LOGGER.debug("平台用户 SYS_USER SysUser:{}", sysUser); LOGGER.debug("平台用户 SYS_USER String[] :{}", roleIds); @@ -230,6 +238,7 @@ public class SysUserService implements ISysUserService { } @Override + @ApiOperation(value = "删除账号", notes = "删除账号信息,逻辑删除,账号关系业务物理删除") public void deleteSysUserById(Long id) { LOGGER.debug("平台用户 SYS_USER DELETE By id :{}", id); sysUserRDao.updateByProperties("id", id, "isValid", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); @@ -241,6 +250,7 @@ public class SysUserService implements ISysUserService { } @Override + @ApiOperation(value = "删除账号", notes = "批量删除账号信息,逻辑删除,账号关系业务物理删除") public void deleteBatchSysUserById(Long[] ids,SessionUser user) { LOGGER.debug("平台用户 SYS_USER DELETE By ids :{}", ids); @@ -258,12 +268,14 @@ public class SysUserService implements ISysUserService { } @Override + @ApiOperation(value = "账号查询", notes = "查询所有账号信息") public List list() { LOGGER.debug("平台用户 SYS_USER find All"); return sysUserRDao.findByProperty("isValid", CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); } @Override + @ApiOperation(value = "账号分页查询", notes = "组合查询") public ListPager querySysUserByPager(SysUser user, Pager pager) { LOGGER.debug("系统用户 SysUser find user :{} page :{}", user, pager); @@ -274,17 +286,20 @@ public class SysUserService implements ISysUserService { } @Override + @ApiOperation(value = "账号查询", notes = "根据ID 查询账号信息") public SysUser getSysUserById(Long id) { LOGGER.debug("平台用户 SYS_USER get By id :{}", id); return sysUserRDao.getById(id); } @Override + @ApiOperation(value = "用户查询", notes = "根据ID 查询用户信息") public SysUserInfo getSysUserInfoById(Long id) { return sysUserInfoRDao.getByProperty("id",id); } @Override + @ApiOperation(value = "账号查询", notes = "根据登录名查询用户信息") public SysUser getSysUserByLoginName(String loginName) { LOGGER.debug("平台用户 SYS_USER find By Login Name :{}", loginName); return sysUserRDao.getByProperty(new String[]{"userLoginName", "isValid"}, @@ -292,12 +307,28 @@ public class SysUserService implements ISysUserService { } @Override + @ApiOperation(value = "账号查询", notes = "根据邮箱查询用户信息") + public SysUser getSysUserByEmail(String email) { + return sysUserRDao.getByProperty(new String[]{"userEmail", "isValid"}, + new Object[]{email, CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()}); + } + + @Override + @ApiOperation(value = "账号查询", notes = "根据手机号查询用户信息") + public SysUser getSysUserByPhone(String phone) { + return sysUserRDao.getByProperty(new String[]{"userPhone", "isValid"}, + new Object[]{phone, CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()}); + } + + @Override + @ApiOperation(value = "账号角色", notes = "根据账号ID查询账号角色关系") public List findSysRefUserRoleByUserId(Long userId) { return refUserRoleRDao.findByProperty("userId",userId); } @Override - public boolean checkLoginName(String userLoginName, long id) { + @ApiOperation(value = "检查-账号登录名", notes = "判断账号是否存在") + public boolean checkSysUserLoginName(String userLoginName, long id) { int count; if(id > 0){ StringBuffer sw = new StringBuffer(); @@ -311,6 +342,74 @@ public class SysUserService implements ISysUserService { return count <= 0 ; } + @Override + @ApiOperation(value = "检查-账号邮箱", notes = "判断邮箱是否存在") + public boolean checkSysUserEmail(String email, long id) { + int count; + if(id > 0){ + StringBuffer sw = new StringBuffer(); + HqlPack.getStringEqualPackOr(email,"userEmail",sw); + HqlPack.getNumNOEqualPack(id,"id",sw); + count = sysUserRDao.findByHqlWhereCount(sw.toString()); + + }else{ + count = sysUserRDao.findByPropertyCount("userEmail",email); + } + return count <= 0 ; + } + + @Override + @ApiOperation(value = "检查-账号手机", notes = "判断手机是否存在") + public boolean checkSysUserPhone(String phone, long id) { + int count; + if(id > 0){ + StringBuffer sw = new StringBuffer(); + HqlPack.getStringEqualPackOr(phone,"userPhone",sw); + HqlPack.getNumNOEqualPack(id,"id",sw); + count = sysUserRDao.findByHqlWhereCount(sw.toString()); + + }else{ + count = sysUserRDao.findByPropertyCount("userPhone",phone); + } + return count <= 0 ; + } + + @Override + @ApiOperation(value = "检查-账号唯一", notes = "账号唯一性校验") + public void checkSysUserOnly(SysUser user) { + if(user != null){ + // 登录名唯一教研 + if(checkSysUserLoginName(user.getUserLoginName(),user.getId())){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode()) + .setErrorDetail("用户名已存在") + .setErrorSolution("请重新输入用户名") + .build(); + } + + // 登录名唯一教研 + if(checkSysUserEmail(user.getUserEmail(),user.getId())){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode()) + .setErrorDetail("邮箱已存在") + .setErrorSolution("请重新输入邮箱") + .build(); + } + + // 登录名唯一教研 + if(checkSysUserPhone(user.getUserPhone(),user.getId())){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_EXIT.getCode()) + .setErrorDetail("手机号已存在") + .setErrorSolution("请重新输入手机号") + .build(); + } + } + } + /** * 封装用户登陆信息 * @@ -456,6 +555,4 @@ public class SysUserService implements ISysUserService { } } - - } diff --git a/modules/i3plus-core-apiservice/src/main/resources/init/permission.xlsx b/modules/i3plus-core-apiservice/src/main/resources/init/permission.xlsx index de22f25..19fd927 100644 Binary files a/modules/i3plus-core-apiservice/src/main/resources/init/permission.xlsx and b/modules/i3plus-core-apiservice/src/main/resources/init/permission.xlsx differ