B00026Service.java 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package com.miniframe.bisiness.system;
  2. import com.miniframe.model.system.SysUser;
  3. import com.miniframe.service.LoginService;
  4. import com.miniframe.core.ExecProcessFlow;
  5. import com.miniframe.core.exception.BusinessException;
  6. import com.miniframe.core.ext.UtilTools;
  7. import com.miniframe.generate.business.system.model.B00026BaseModel;
  8. import com.miniframe.model.system.SysUserSQLBuilder;
  9. import com.miniframe.model.system.dao.SysUserMapper;
  10. import com.miniframe.tools.encode.XIDESedeCoderUtils;
  11. import com.miniframe.tools.XIDateTimeUtils;
  12. import com.miniframe.tools.msg.IdentifyingCodeUtil;
  13. import org.springframework.util.CollectionUtils;
  14. import java.util.List;
  15. import java.util.Map;
  16. /**
  17. * 基础系统,“找回密码”逻辑处理(重新生成不覆盖)。
  18. */
  19. public class B00026Service extends B00026BaseModel implements ExecProcessFlow {
  20. private static final long serialVersionUID = -7051358269847459502L;
  21. /**
  22. * 基础系统,“找回密码”业务核心处理
  23. */
  24. public void transExecute() throws Exception {
  25. // 验证短信验证码
  26. boolean verification = IdentifyingCodeUtil.verification(this.getA_b00026().getMail(), this.getA_b00026().getVerificationCode());
  27. if (!verification) {
  28. // 验证码校验失败!
  29. throw new BusinessException("EB8000021");
  30. }
  31. SysUserMapper dao = UtilTools.getBean(SysUserMapper.class);
  32. ;
  33. SysUserSQLBuilder sb = new SysUserSQLBuilder();
  34. // 找回密码
  35. sb.createCriteria().andUseremailEqualTo(this.getA_b00026().getMail());
  36. List<SysUser> sysUsers = dao.selectByExample(sb);
  37. if (CollectionUtils.isEmpty(sysUsers)) {
  38. throw new BusinessException("EB8000029");
  39. }
  40. SysUser user = new SysUser();
  41. user.setId(sysUsers.get(0).getId());
  42. //3DES解密密码
  43. String passwordDecrypted = XIDESedeCoderUtils.dec(this.getA_b00026().getNewPassword(), this.getA_systemhead().getClientToken());
  44. //解密后的密码加密,用于插入数据库
  45. String passwordCrypted = LoginService.encodePassword(user.getId(), passwordDecrypted);
  46. user.setUserpwd(passwordCrypted);
  47. user.setUpdateTime(XIDateTimeUtils.getNowDate());
  48. dao.updateByPrimaryKeySelective(user);
  49. }
  50. /**
  51. * 基础系统,“找回密码”业务前处理
  52. */
  53. public void preTransFlow() throws Exception {
  54. this.validater();
  55. }
  56. /**
  57. * 基础系统,“找回密码”业务后处理
  58. */
  59. public void afterTransFlow() throws Exception {
  60. }
  61. /**
  62. * 基础系统,“找回密码”逻辑入口处理方法
  63. */
  64. @SuppressWarnings("rawtypes")
  65. @Override
  66. public Map execute(Map vars) throws Exception {
  67. this.setTransMap(vars);
  68. preTransFlow();// 执行业务开始的规则检查和校验
  69. transExecute();// 执行核心业务段
  70. afterTransFlow();// 执行核心逻辑完成后的收尾逻辑
  71. return this.getTransMap();
  72. }
  73. }