package com.casic.missiles.handler; import com.casic.missiles.core.handler.BizCheckLoginHandler; import com.casic.missiles.core.shiro.ShiroUser; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.extensionPhone.service.IUserPhoneService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.Map; @Component public class CallUserLoginHandler implements BizCheckLoginHandler { private static final Logger logger = LoggerFactory.getLogger(CallUserLoginHandler.class); @Autowired private IUserPhoneService userPhoneService; @Value("${casic.sync.recRoleTips:monitor,receiver,administrator,dispatcher}") private String recRoleTips; @Value("${casic.callSystemName:呼叫中心业务平台}") private String callCenterName; @Value("${casic.cwsSystemName:城市协同工作平台}") private String cwsSystemName; @Override public void checkUser(ShiroUser shiroUser, Boolean aBoolean) { Map<String, Object> bizData = new HashMap<>(); bizData.put("extensionPhones", userPhoneService.selectUserExtensions(shiroUser.getId())); if (this.hasAnyRoles(shiroUser, recRoleTips)) { bizData.put("systemName", callCenterName); } else { bizData.put("systemName", cwsSystemName); } shiroUser.setBizData(bizData); } private boolean hasAnyRoles(ShiroUser shiroUser, String recRoleTips) { if (ToolUtil.isNotEmpty(recRoleTips)) { String[] roleTips = recRoleTips.split(","); for (String roleTip : roleTips) { if (shiroUser.getRoleTips().contains(roleTip)) { return true; } } } return false; } }