LymsUserServiceImpl.java 3.15 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
  97
  98
  99
 100
 101
 102
 103
 104
 105
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.sltPermissByRole(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;
}

@Override
public int delUserByRole(int uid) {
return lymsUserMapper.delUserByRole(uid);
}

@Override
public int addUserAndRole(int uid, int rid) {
return lymsUserMapper.addUserAndRole(uid,rid);
}
}