package com.gyee.power.fitting.service.auth; import cn.hutool.core.bean.BeanUtil; import com.gyee.power.fitting.common.config.StringUtils; import com.gyee.power.fitting.common.spring.CacheContext; import com.gyee.power.fitting.model.ProBasicEquipment; import com.gyee.power.fitting.model.ProBasicPowerstation; import com.gyee.power.fitting.model.ProBasicWeatherStation; import com.gyee.power.fitting.model.custom.TokenVo; import com.gyee.power.fitting.service.ISysUserService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @Service public class TokenService { @Resource private ISysUserService sysUserService; public static Map> sessionWtMap = new ConcurrentHashMap<>(); public static Map> sessionWpMap = new ConcurrentHashMap<>(); public static Map> sessionWeMap = new ConcurrentHashMap<>(); public static Map sessionMap = new ConcurrentHashMap<>(); public List getWtls(HttpServletRequest request) { String token = request.getHeader("token"); String userId = request.getHeader("userId"); List wtlist = new ArrayList<>(); if (StringUtils.notEmp(token) && StringUtils.notEmp(userId)) { if (sessionMap.containsKey(token) && !sessionWtMap.containsKey(token)) { List depls = sysUserService.getUserByuserId(Long.valueOf(userId)); if (!depls.isEmpty()) { String depId = depls.get(0); if (CacheContext.wpwtmap.containsKey(depId)) { List wtls = CacheContext.wpwtmap.get(depId); for (ProBasicEquipment wt : wtls) { ProBasicEquipment newWt = new ProBasicEquipment(); BeanUtil.copyProperties(wt, newWt); wtlist.add(newWt); } } else if (CacheContext.cmwtlsmap.containsKey(depId)) { List wtls = CacheContext.cmwtlsmap.get(depId); for (ProBasicEquipment wt : wtls) { ProBasicEquipment newWt = new ProBasicEquipment(); BeanUtil.copyProperties(wt, newWt); wtlist.add(newWt); } } else if (CacheContext.rgwtlsmap.containsKey(depId)) { List wtls = CacheContext.rgwtlsmap.get(depId); for (ProBasicEquipment wt : wtls) { ProBasicEquipment newWt = new ProBasicEquipment(); BeanUtil.copyProperties(wt, newWt); wtlist.add(newWt); } } else if (depId.equals("0")) { for (ProBasicEquipment wt : CacheContext.wtls) { ProBasicEquipment newWt = new ProBasicEquipment(); BeanUtil.copyProperties(wt, newWt); wtlist.add(newWt); } } } sessionWtMap.put(token, wtlist); } else if (sessionMap.containsKey(token) && sessionWtMap.containsKey(token)) { wtlist = sessionWtMap.get(token); } } else { for (ProBasicEquipment wt : CacheContext.wtls) { ProBasicEquipment newWt = new ProBasicEquipment(); BeanUtil.copyProperties(wt, newWt); wtlist.add(newWt); } } return wtlist; } public List getWpls(HttpServletRequest request) { String token = request.getHeader("token"); String userId = request.getHeader("userId"); List wplist = new ArrayList<>(); if (StringUtils.notEmp(token) && StringUtils.notEmp(token)) { if (sessionMap.containsKey(token) && !sessionWpMap.containsKey(token)) { List depls = sysUserService.getUserByuserId(Long.valueOf(userId)); if (!depls.isEmpty()) { String depId = depls.get(0); if (CacheContext.wpmap.containsKey(depId)) { ProBasicPowerstation wp = CacheContext.wpmap.get(depId); ProBasicPowerstation newWp = new ProBasicPowerstation(); BeanUtil.copyProperties(wp, newWp); wplist.add(newWp); } else if (CacheContext.cpwpmap.containsKey(depId)) { List wpls = CacheContext.cpwpmap.get(depId); for (ProBasicPowerstation wp : wpls) { ProBasicPowerstation newWp = new ProBasicPowerstation(); BeanUtil.copyProperties(wp, newWp); wplist.add(newWp); } }else if (CacheContext.rgwpmap.containsKey(depId)) { List rgcpls = CacheContext.rgwpmap.get(depId); for (ProBasicPowerstation cp : rgcpls) { List wpls = CacheContext.rgwpmap.get(cp.getId()); for (ProBasicPowerstation wp : wpls) { ProBasicPowerstation newWp = new ProBasicPowerstation(); BeanUtil.copyProperties(wp, newWp); wplist.add(newWp); } } } else if (depId.equals("0")) { List wpls = CacheContext.wpls; for (ProBasicPowerstation wp : wpls) { ProBasicPowerstation newWp = new ProBasicPowerstation(); BeanUtil.copyProperties(wp, newWp); wplist.add(newWp); } } } sessionWpMap.put(token, wplist); } else if (sessionMap.containsKey(token) && sessionWpMap.containsKey(token)) { wplist = sessionWpMap.get(token); } } else { List wpls = CacheContext.wpls; for (ProBasicPowerstation wp : wpls) { ProBasicPowerstation newWp = new ProBasicPowerstation(); BeanUtil.copyProperties(wp, newWp); wplist.add(newWp); } } return wplist; } }