Compare commits
2 Commits
Author | SHA1 | Date |
---|---|---|
|
c17cec9768 | |
|
66539b8674 |
|
@ -34,7 +34,7 @@ public class TokenController {
|
|||
@PostMapping("login")
|
||||
public Result<?> login (@RequestBody LoginBody form) {
|
||||
// 用户登录
|
||||
LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword());
|
||||
LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getEmail(), form.getPassword());
|
||||
// 获取登录token
|
||||
return Result.success(tokenService.createToken(userInfo));
|
||||
}
|
||||
|
|
|
@ -11,6 +11,11 @@ public class LoginBody {
|
|||
*/
|
||||
private String username;
|
||||
|
||||
/**
|
||||
* 邮箱
|
||||
*/
|
||||
private String email;
|
||||
|
||||
/**
|
||||
* 用户密码
|
||||
*/
|
||||
|
@ -24,6 +29,14 @@ public class LoginBody {
|
|||
this.username = username;
|
||||
}
|
||||
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
|
||||
public void setEmail(String email) {
|
||||
this.email = email;
|
||||
}
|
||||
|
||||
public String getPassword () {
|
||||
return password;
|
||||
}
|
||||
|
@ -31,4 +44,6 @@ public class LoginBody {
|
|||
public void setPassword (String password) {
|
||||
this.password = password;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -40,11 +40,11 @@ public class SysLoginService {
|
|||
/**
|
||||
* 登录
|
||||
*/
|
||||
public LoginUser login (String username, String password) {
|
||||
public LoginUser login (String username, String email, String password) {
|
||||
// 用户名或密码为空 错误
|
||||
if (StringUtils.isAnyBlank(username, password)) {
|
||||
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户/密码必须填写");
|
||||
throw new ServiceException("用户/密码必须填写");
|
||||
if (StringUtils.isAnyBlank(username, email, password)) {
|
||||
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户/邮箱/密码必须填写");
|
||||
throw new ServiceException("用户/邮箱/密码必须填写");
|
||||
}
|
||||
// 密码如果不在指定范围内 错误
|
||||
if (password.length() < UserConstants.PASSWORD_MIN_LENGTH
|
||||
|
|
|
@ -135,4 +135,6 @@ public interface SysMenuMapper extends BaseMapper<SysMenu> {
|
|||
* @return 结果
|
||||
*/
|
||||
public SysMenu checkMenuNameUnique (@Param("menuName") String menuName, @Param("parentId") Long parentId);
|
||||
|
||||
List<SysMenu> selectMenuByParentId (@Param("parentId") Long parentId);
|
||||
}
|
||||
|
|
|
@ -60,6 +60,8 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
*/
|
||||
@Override
|
||||
public List<SysMenu> selectMenuList (SysMenu menu, Long userId) {
|
||||
//获取菜单列表的长度
|
||||
Integer size = menuMapper.selectMenuList(new SysMenu()).size();
|
||||
List<SysMenu> menuList = null;
|
||||
// 管理员显示所有菜单信息
|
||||
if (SysUser.isAdmin(userId)) {
|
||||
|
@ -68,9 +70,67 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
menu.getParams().put("userId", userId);
|
||||
menuList = menuMapper.selectMenuListByUserId(menu);
|
||||
}
|
||||
//显示菜单长度和总菜单长度对比
|
||||
if (menuList.size()!= size){
|
||||
//菜单权限表
|
||||
List<SysMenu> sysMenuList = new ArrayList<>();
|
||||
//菜单对别
|
||||
menuList.forEach(res -> {
|
||||
//查子集
|
||||
sysMenuList.addAll(sanMenu(res));
|
||||
//查父级
|
||||
if (res.getParentId() != 0) {
|
||||
sysMenuList.addAll(friendMenu(res));
|
||||
}
|
||||
});
|
||||
menuList.addAll(sysMenuList);
|
||||
menuList = menuList.stream().distinct().toList();
|
||||
}
|
||||
|
||||
return menuList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 存入子集
|
||||
* @param menu
|
||||
* @return
|
||||
*/
|
||||
public List<SysMenu> sanMenu(SysMenu menu){
|
||||
//定义一个空的SysMenu数组
|
||||
List<SysMenu> sysMenus = new ArrayList<>();
|
||||
//获取子级队列
|
||||
List<SysMenu> sysMenuList = menuMapper.selectMenuByParentId(menu.getMenuId());
|
||||
sysMenus.addAll(sysMenus);
|
||||
//长度不为0
|
||||
if (sysMenuList.size()>0){
|
||||
//存入子集列
|
||||
for (SysMenu sysMenu : sysMenuList) {
|
||||
sanMenu(sysMenu);
|
||||
}
|
||||
}
|
||||
return sysMenus;
|
||||
}
|
||||
|
||||
/**
|
||||
* 存入父级
|
||||
* @param sysMenu
|
||||
* @return
|
||||
*/
|
||||
public List<SysMenu> friendMenu(SysMenu sysMenu){
|
||||
//创建一个空SysMenu队列
|
||||
List<SysMenu> sysMenus = new ArrayList<>();
|
||||
//查询父级菜单
|
||||
SysMenu sysMenu1 = menuMapper.selectMenuById(sysMenu.getParentId());
|
||||
//吸收父级菜单
|
||||
sysMenus.add(sysMenu1);
|
||||
//确认父级菜单非空
|
||||
if (sysMenu1.getParentId() != 0) {
|
||||
//存入父级
|
||||
sysMenus.addAll(friendMenu(sysMenu1));
|
||||
}
|
||||
return sysMenus;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据用户ID查询权限
|
||||
*
|
||||
|
|
|
@ -185,6 +185,10 @@
|
|||
<include refid="selectMenuVo"/>
|
||||
where menu_name=#{menuName} and parent_id = #{parentId} limit 1
|
||||
</select>
|
||||
<select id="selectMenuByParentId" resultType="com.muyu.system.domain.SysMenu">
|
||||
<include refid="selectMenuVo"/>
|
||||
where parent_id = #{parentId}
|
||||
</select>
|
||||
|
||||
<update id="updateMenu" parameterType="com.muyu.system.domain.SysMenu">
|
||||
update sys_menu
|
||||
|
|
Loading…
Reference in New Issue