| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- 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<ProcessEntityItem<BaseEntity>, 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<BaseEntity> execute(ProcessEntityItem<BaseEntity> source) {
- ERPTokenUser currentUser = source.currentUser
- if (currentUser.supplierCode <= 0L) {
- return RetResult.<LoginResult> errorT().retinfo("用户信息不正确")
- }
- if (!loginStrategies.containsKey(String.valueOf(currentUser.userFrom))) {
- return RetResult.<LoginResult> errorT().retinfo("无效的登录来源")
- }
- def loginStrategy = loginStrategies.get(String.valueOf(currentUser.userFrom))
- def checkResult = loginStrategy.check.call(currentUser)
- if (checkResult) {
- return RetResult.<BaseEntity> successT()
- } else {
- return RetResult.<LoginResult> errorT().retinfo("未登录")
- }
- }
- }
|