LymsUserServiceImpl.java 2.92 KB
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
package com.lyms.talkonlineweb.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lyms.talkonlineweb.domain.LymsPermission;
import com.lyms.talkonlineweb.domain.LymsRole;
import com.lyms.talkonlineweb.domain.LymsUser;
import com.lyms.talkonlineweb.mapper.LymsPermissionMapper;
import com.lyms.talkonlineweb.mapper.LymsRoleMapper;
import com.lyms.talkonlineweb.service.LymsUserService;
import com.lyms.talkonlineweb.mapper.LymsUserMapper;
import com.lyms.talkonlineweb.util.Constant;
import com.lyms.talkonlineweb.util.JwtUtils;
import io.jsonwebtoken.Claims;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
*
*/
@Service
@Log4j2
public class LymsUserServiceImpl extends ServiceImpl<LymsUserMapper, LymsUser>
implements LymsUserService{

@Autowired
private LymsUserMapper lymsUserMapper;

@Autowired
private LymsRoleMapper lymsRoleMapper;

@Autowired
private LymsPermissionMapper lymsPermissionMapper;

/**
* 根据登录用户获取权限
* @param username
* @return
*/
@Override
public List<LymsPermission> getPermissionByUsername(String username) throws Exception {
List<LymsPermission> rs=new ArrayList<>();

Map<String,Object> param=new HashMap<>();
param.put("login",username);
List<LymsUser> uLst= lymsUserMapper.selectByMap(param);

if(uLst.size()<1){
throw new Exception("系统错误");
}
List<LymsRole> rLst=lymsRoleMapper.sltRoleByUser(uLst.get(0).getUid());

int rid=rLst.get(0).getRid();
// 取一次菜单
List<LymsPermission> pLst=lymsPermissionMapper.sltPermissByRole2(rid);
// List<LymsPermission> pLst=lymsPermissionMapper.sltPermissByRole(rid, Constant.ROOT_MENU);
// rs.addAll(pLst);
// for (LymsPermission p:pLst) {
//获取二级菜单
// List<LymsPermission> sLst=lymsPermissionMapper.sltPermissByRole(rid, p.getId());
// Map<String, Object> oneMap=new HashMap<>();
// oneMap.put("menu",p);
// oneMap.put("children",sLst);
// rs.add(oneMap);
// rs.addAll(sLst);
// }

return pLst;
}

/**
* 根据token获取用户
* @param token
* @return
*/
@Override
public LymsUser getUserByToken(String token) {
Claims claims = null;
try {
claims = JwtUtils.parseJWT(token);
} catch (Exception e) {
e.printStackTrace();
}
String username=claims.getSubject();
Map<String,Object> param=new HashMap<>();
param.put("login",username);
List<LymsUser> uLst= lymsUserMapper.selectByMap(param);
return uLst.size()>0?uLst.get(0):null;
}

}