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 getUserPermissions(long userId) { List permsList = new ArrayList(); try { String url = tokenConfig.getApiServer() + "/api/sys/resource/queryListByUserId/" + userId; permsList = HttpOperateUtils.getJsonObjectArray(url, SysResource.class); } catch (IOException e) { e.printStackTrace(); } // 用户权限列表 Set 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; } }