import com.sweetfish.service.RetResult import com.yinjie.printerAuthorize.common.api.BusinessExecutor import com.yinjie.printerAuthorize.common.api.LoginUserService import com.yinjie.printerAuthorize.common.datas.ERPModule import com.yinjie.printerAuthorize.common.entity.base.BaseEntity import com.yinjie.printerAuthorize.common.entity.base.ProcessEntityItem import com.yinjie.printerAuthorize.common.entity.site.ERPTokenUser import com.yinjie.printerAuthorize.common.entity.site.LoginResult import com.yinjie.printerAuthorize.common.entity.system.LoginUser import org.apache.logging.log4j.LogManager import org.apache.logging.log4j.Logger import javax.annotation.Resource /** * ERP系统登录用户检查 * 主要用于servlet中的身份验证,检查用户是否禁用了,过期了之类的 */ @SuppressWarnings("unused") class BE_ERPLoginCheck implements BusinessExecutor, BaseEntity> { protected final Logger logger = LogManager.getLogger(this.getClass().getSimpleName()) @Resource LoginUserService userService //登录策略,当前数据库那一个地方需要重启服务,可改成不需要的,参考TunaDaoService动态sql执行 def loginStrategies = [ "0": [ "name" : "后台管理系统用户检查", "check": { ERPTokenUser currentUser -> if (currentUser.account.equalsIgnoreCase("SuperResourcer")) { return true } else { LoginUser info = userService.getRedisLoginUser(currentUser.id, currentUser.supplierCode) if ((info == null) || (info.getStatus() == 1)) { return false } return true } } ] ] @Override String scriptName() { return "ERP系统登录用户检查" } @Override ERPModule module() { return ERPModule.LOGIN } @Override RetResult execute(ProcessEntityItem source) { ERPTokenUser currentUser = source.currentUser if (currentUser.supplierCode <= 0L) { return RetResult. errorT().retinfo("用户信息不正确") } if (!loginStrategies.containsKey(String.valueOf(currentUser.userFrom))) { return RetResult. errorT().retinfo("无效的登录来源") } def loginStrategy = loginStrategies.get(String.valueOf(currentUser.userFrom)) def checkResult = loginStrategy.check.call(currentUser) if (checkResult) { return RetResult. successT() } else { return RetResult. errorT().retinfo("未登录") } } }