package com.qianwen.smartman.modules.system.handler.password.account; import com.qianwen.smartman.common.cache.ParamCache; import com.qianwen.smartman.modules.system.dto.PasswordModifyValidInfo; import com.qianwen.smartman.modules.system.entity.User; import com.qianwen.smartman.modules.system.handler.password.PasswordModifyValidLink; import org.springframework.context.annotation.DependsOn; import org.springframework.stereotype.Component; @DependsOn({"accountPasswordModifyFactory"}) @Component public class AccountPasswordModifyLink extends PasswordModifyValidLink { private final AccountPasswordModifyFactory accountPasswordModifyFactory; public AccountPasswordModifyLink(final AccountPasswordModifyFactory accountPasswordModifyFactory) { this.accountPasswordModifyFactory = accountPasswordModifyFactory; } @Override // org.springblade.modules.system.handler.password.PasswordModifyValidLink public PasswordModifyValidInfo doModifyValid(User user, PasswordModifyValidInfo passwordModifyValidInfo) { PasswordModifyValidLink next = super.next(); String strategyCode = ParamCache.getValue("account.passwordModify"); PasswordModifyValidInfo curValidInfo = this.accountPasswordModifyFactory.getAccountPasswordModifyStrategy(strategyCode).passwordValid(user); if (null == passwordModifyValidInfo) { passwordModifyValidInfo = curValidInfo; } if (null != curValidInfo && curValidInfo.isCompulsoryModify()) { return curValidInfo; } if (null == next) { return passwordModifyValidInfo; } return next.doModifyValid(user, passwordModifyValidInfo); } }