package com.landtool.lanbase.modules.org.service.impl;
|
|
import java.io.IOException;
|
import java.util.ArrayList;
|
import java.util.HashSet;
|
import java.util.List;
|
import java.util.Set;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import com.landtool.lanbase.common.utils.HttpOperateUtils;
|
import com.landtool.lanbase.config.SysTemPropertyConfig;
|
import com.landtool.lanbase.modules.org.entity.OrgUnit;
|
import com.landtool.lanbase.modules.org.entity.OrgUser;
|
import com.landtool.lanbase.modules.org.redis.OrgUserDefUnitRedis;
|
import com.landtool.lanbase.modules.org.redis.OrgUserRedis;
|
import com.landtool.lanbase.modules.org.service.OrgUserService;
|
import com.landtool.lanbase.modules.sys.entity.SysResource;
|
|
@Service("OrgUserService")
|
public class OrgUserServiceImpl implements OrgUserService {
|
@Autowired
|
private OrgUserRedis orgUserRedis;
|
|
@Autowired
|
private OrgUserDefUnitRedis orgUserDefUnitRedis;
|
|
@Autowired
|
private SysTemPropertyConfig tokenConfig;
|
|
@Override
|
public OrgUser queryObject(Long userid) {
|
OrgUser orgUser = orgUserRedis.get(userid);
|
if(orgUser == null) {
|
try {
|
String url = tokenConfig.getApiServer() + "/api/org/user/getInfoById/" + userid;
|
orgUser = (OrgUser) HttpOperateUtils.getJsonObject(url, OrgUser.class);
|
|
if (orgUser != null && orgUser.getUserid() != null) {
|
orgUserRedis.saveOrUpdate(orgUser);
|
}
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
return orgUser;
|
}
|
|
@Override
|
public String getChinesename(Object userid) {
|
if(userid == null || userid.toString().equals("")) {
|
return "";
|
} else {
|
OrgUser orgUser = queryObject(Long.parseLong(userid.toString()));
|
return orgUser == null ? "" : orgUser.getChinesename();
|
}
|
}
|
|
@Override
|
public OrgUser queryByUserName(String username) {
|
OrgUser orgUser = orgUserRedis.get(username);
|
if (orgUser == null) {
|
// API 接口获取
|
String url = tokenConfig.getApiServer() + "/api/org/user/getInfoByName/" + username;
|
try {
|
orgUser = (OrgUser) HttpOperateUtils.getJsonObject(url, OrgUser.class);
|
if (orgUser != null && orgUser.getUserid() != null) {
|
orgUserRedis.saveOrUpdate(orgUser);
|
}
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
return orgUser;
|
}
|
|
@Override
|
public Set<String> getUserPermissions(long userId) {
|
List<SysResource> permsList = new ArrayList<SysResource>();
|
try {
|
String url = tokenConfig.getApiServer() + "/api/sys/resource/queryListByUserId/" + userId;
|
permsList = HttpOperateUtils.getJsonObjectArray(url, SysResource.class);
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
|
// 用户权限列表
|
Set<String> permsSet = new HashSet<>();
|
for (SysResource resource : permsList) {
|
permsSet.add(resource.getResourcercode());
|
}
|
|
return permsSet;
|
}
|
|
@Override
|
public OrgUnit getDefaultUnit(Long userid) {
|
OrgUnit orgUnit = orgUserDefUnitRedis.get(userid);
|
if(orgUnit == null) {
|
try {
|
String url = tokenConfig.getApiServer() + "/api/org/user/getDefaultUnit/" + userid;
|
orgUnit = (OrgUnit) HttpOperateUtils.getJsonObject(url, OrgUnit.class);
|
if (orgUnit != null && orgUnit.getUnitid() != null) {
|
orgUserDefUnitRedis.saveOrUpdate(orgUnit, userid);
|
}
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
return orgUnit;
|
}
|
}
|