Compare commits

..

2 Commits
master ... dev

Author SHA1 Message Date
gyc 13ca181385 管理员修改密码重新登录 2024-04-12 20:27:58 +08:00
gyc 861ac637cc 添加邮箱登录功能 2024-04-12 15:11:53 +08:00
7 changed files with 60 additions and 7 deletions

View File

@ -1,5 +1,6 @@
package com.muyu.system.controller; package com.muyu.system.controller;
import com.muyu.common.core.constant.CacheConstants;
import com.muyu.common.core.domain.Result; import com.muyu.common.core.domain.Result;
import com.muyu.common.core.utils.StringUtils; import com.muyu.common.core.utils.StringUtils;
import com.muyu.common.core.utils.poi.ExcelUtil; import com.muyu.common.core.utils.poi.ExcelUtil;
@ -7,13 +8,16 @@ import com.muyu.common.core.web.controller.BaseController;
import com.muyu.common.core.web.page.TableDataInfo; import com.muyu.common.core.web.page.TableDataInfo;
import com.muyu.common.log.annotation.Log; import com.muyu.common.log.annotation.Log;
import com.muyu.common.log.enums.BusinessType; import com.muyu.common.log.enums.BusinessType;
import com.muyu.common.redis.service.RedisService;
import com.muyu.common.security.annotation.InnerAuth; import com.muyu.common.security.annotation.InnerAuth;
import com.muyu.common.security.annotation.RequiresPermissions; import com.muyu.common.security.annotation.RequiresPermissions;
import com.muyu.common.security.service.TokenService;
import com.muyu.common.security.utils.SecurityUtils; import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.common.system.domain.SysDept; import com.muyu.common.system.domain.SysDept;
import com.muyu.common.system.domain.SysRole; import com.muyu.common.system.domain.SysRole;
import com.muyu.common.system.domain.SysUser; import com.muyu.common.system.domain.SysUser;
import com.muyu.common.system.domain.LoginUser; import com.muyu.common.system.domain.LoginUser;
import com.muyu.system.domain.SysUserOnline;
import com.muyu.system.domain.resp.AuthRoleResp; import com.muyu.system.domain.resp.AuthRoleResp;
import com.muyu.system.domain.resp.UserDetailInfoResp; import com.muyu.system.domain.resp.UserDetailInfoResp;
import com.muyu.system.domain.resp.UserInfoResp; import com.muyu.system.domain.resp.UserInfoResp;
@ -26,8 +30,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.*;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -38,6 +41,8 @@ import java.util.stream.Collectors;
@RestController @RestController
@RequestMapping("/user") @RequestMapping("/user")
public class SysUserController extends BaseController { public class SysUserController extends BaseController {
@Autowired
private SysUserOnlineService userOnlineService;
@Autowired @Autowired
private SysUserService userService; private SysUserService userService;
@ -55,7 +60,8 @@ public class SysUserController extends BaseController {
@Autowired @Autowired
private SysConfigService configService; private SysConfigService configService;
@Autowired
private RedisService redisService;
/** /**
* *
*/ */
@ -99,10 +105,24 @@ public class SysUserController extends BaseController {
@InnerAuth @InnerAuth
@GetMapping("/info/{username}") @GetMapping("/info/{username}")
public Result<LoginUser> info (@PathVariable("username") String username) { public Result<LoginUser> info (@PathVariable("username") String username) {
SysUser sysUser = userService.selectUserByUserName(username); String regular = "^" +
if (StringUtils.isNull(sysUser)) { "(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@" +
return Result.error("用户名或密码错误"); "((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|" +
"(([a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,}))" +
"$";
SysUser sysUser=null;
if (username.matches(regular)) {
sysUser = userService.selectUserByEmail(username);
if (StringUtils.isNull(sysUser)) {
return Result.error("邮箱或密码错误");
}
}else {
sysUser = userService.selectUserByUserName(username);
if (StringUtils.isNull(sysUser)) {
return Result.error("用户名或密码错误");
}
} }
// 角色集合 // 角色集合
Set<String> roles = permissionService.getRolePermission(sysUser); Set<String> roles = permissionService.getRolePermission(sysUser);
// 权限集合 // 权限集合
@ -234,7 +254,23 @@ public class SysUserController extends BaseController {
@Log(title = "用户管理", businessType = BusinessType.UPDATE) @Log(title = "用户管理", businessType = BusinessType.UPDATE)
@PutMapping("/resetPwd") @PutMapping("/resetPwd")
public Result resetPwd (@RequestBody SysUser user) { public Result resetPwd (@RequestBody SysUser user) {
userService.checkUserAllowed(user); //获取缓存列表
Collection<String> keys = redisService.keys(CacheConstants.LOGIN_TOKEN_KEY + "*");
//循环获得的缓存列表
for (String key : keys) {
//获取用户的信息
LoginUser userRedis = redisService.getCacheObject(key);
//根据用户id判断是否修改了密码
if (user.getUserId()!=null && user.getUserId()!=0L) {
if (user.getUserId()==userRedis.getUserid()){
//修改了就删除
redisService.deleteObject(CacheConstants.LOGIN_TOKEN_KEY + userRedis.getToken());
}
}
}
userService.checkUserDataScope(user.getUserId()); userService.checkUserDataScope(user.getUserId());
user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
user.setUpdateBy(SecurityUtils.getUsername()); user.setUpdateBy(SecurityUtils.getUsername());

View File

@ -139,4 +139,6 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
* @return * @return
*/ */
public SysUser checkEmailUnique (String email); public SysUser checkEmailUnique (String email);
SysUser selectUserByEmail(String username);
} }

View File

@ -30,6 +30,8 @@ public interface SysUserOnlineService {
*/ */
public SysUserOnline selectOnlineByUserName (String userName, LoginUser user); public SysUserOnline selectOnlineByUserName (String userName, LoginUser user);
/** /**
* / * /
* *

View File

@ -225,4 +225,6 @@ public interface SysUserService extends IService<SysUser> {
* @return * @return
*/ */
public String importUser (List<SysUser> userList, Boolean isUpdateSupport, String operName); public String importUser (List<SysUser> userList, Boolean isUpdateSupport, String operName);
SysUser selectUserByEmail(String username);
} }

View File

@ -46,6 +46,7 @@ public class SysUserOnlineServiceImpl implements SysUserOnlineService {
return null; return null;
} }
/** /**
* / * /
* *

View File

@ -500,4 +500,10 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
return successMsg.toString(); return successMsg.toString();
} }
@Override
public SysUser selectUserByEmail(String username) {
return userMapper.selectUserByEmail(username);
}
} }

View File

@ -183,6 +183,10 @@
and del_flag = '0' and del_flag = '0'
limit 1 limit 1
</select> </select>
<select id="selectUserByEmail" resultType="com.muyu.common.system.domain.SysUser">
<include refid="selectUserVo"/>
where u.email = #{username} and u.del_flag = '0'
</select>
<insert id="insertUser" parameterType="com.muyu.common.system.domain.SysUser" useGeneratedKeys="true" keyProperty="userId"> <insert id="insertUser" parameterType="com.muyu.common.system.domain.SysUser" useGeneratedKeys="true" keyProperty="userId">
insert into sys_user( insert into sys_user(