package com.miniframe.bisiness.system; import com.miniframe.model.system.SysUser; import com.miniframe.service.LoginService; import com.miniframe.core.ExecProcessFlow; import com.miniframe.core.exception.BusinessException; import com.miniframe.core.ext.UtilTools; import com.miniframe.generate.business.system.model.B00026BaseModel; import com.miniframe.model.system.SysUserSQLBuilder; import com.miniframe.model.system.dao.SysUserMapper; import com.miniframe.tools.encode.XIDESedeCoderUtils; import com.miniframe.tools.XIDateTimeUtils; import com.miniframe.tools.msg.IdentifyingCodeUtil; import org.springframework.util.CollectionUtils; import java.util.List; import java.util.Map; /** * 基础系统,“找回密码”逻辑处理(重新生成不覆盖)。 */ public class B00026Service extends B00026BaseModel implements ExecProcessFlow { private static final long serialVersionUID = -7051358269847459502L; /** * 基础系统,“找回密码”业务核心处理 */ public void transExecute() throws Exception { // 验证短信验证码 boolean verification = IdentifyingCodeUtil.verification(this.getA_b00026().getMail(), this.getA_b00026().getVerificationCode()); if (!verification) { // 验证码校验失败! throw new BusinessException("EB8000021"); } SysUserMapper dao = UtilTools.getBean(SysUserMapper.class); ; SysUserSQLBuilder sb = new SysUserSQLBuilder(); // 找回密码 sb.createCriteria().andUseremailEqualTo(this.getA_b00026().getMail()); List sysUsers = dao.selectByExample(sb); if (CollectionUtils.isEmpty(sysUsers)) { throw new BusinessException("EB8000029"); } SysUser user = new SysUser(); user.setId(sysUsers.get(0).getId()); //3DES解密密码 String passwordDecrypted = XIDESedeCoderUtils.dec(this.getA_b00026().getNewPassword(), this.getA_systemhead().getClientToken()); //解密后的密码加密,用于插入数据库 String passwordCrypted = LoginService.encodePassword(user.getId(), passwordDecrypted); user.setUserpwd(passwordCrypted); user.setUpdateTime(XIDateTimeUtils.getNowDate()); dao.updateByPrimaryKeySelective(user); } /** * 基础系统,“找回密码”业务前处理 */ public void preTransFlow() throws Exception { this.validater(); } /** * 基础系统,“找回密码”业务后处理 */ public void afterTransFlow() throws Exception { } /** * 基础系统,“找回密码”逻辑入口处理方法 */ @SuppressWarnings("rawtypes") @Override public Map execute(Map vars) throws Exception { this.setTransMap(vars); preTransFlow();// 执行业务开始的规则检查和校验 transExecute();// 执行核心业务段 afterTransFlow();// 执行核心逻辑完成后的收尾逻辑 return this.getTransMap(); } }