zj
2024-06-03 3603ecb207f7e712c635f19531e05fac4d19e53f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package project.web.admin.impl.user;
 
import java.util.Date;
 
import org.springframework.security.providers.encoding.PasswordEncoder;
 
import kernel.exception.BusinessException;
import project.Constants;
import project.log.Log;
import project.log.LogService;
import project.syspara.SysparaService;
 
import project.user.googleauth.GoogleAuthService;
import project.web.admin.service.user.AdminPublicUserService;
import security.SecUser;
import security.internal.SecUserService;
 
public class AdminPublicUserServiceImpl implements AdminPublicUserService {
    private SecUserService secUserService;
    private LogService logService;
    private PasswordEncoder passwordEncoder;
 
    private SysparaService sysparaService;
    private GoogleAuthService googleAuthService;
 
    @Override
    public void saveChangePassword(String partyId, String oldpassword, String password,String username,String safeword,String code,String googleAuthCode) {
        SecUser secUser = secUserService.findUserByLoginName(username);
        googleAuthService.checkGoogleAuthCode(secUser,googleAuthCode);
        checkLoginSafeword(username,safeword);
        this.secUserService.updatePassword(username, oldpassword, password);
        
        saveLog(secUser,username,username+"修改自身密码,验证码:["+code+"]");
    }
    
    @Override
    public void saveChangeSafeword(String partyId, String oldpassword, String password,String username,String code,String googleAuthCode) {
        SecUser secUser = secUserService.findUserByLoginName(username);
        googleAuthService.checkGoogleAuthCode(secUser,googleAuthCode);    
        this.secUserService.updateSafeword(username, oldpassword, password);
        saveLog(secUser,username,username+"修改自身资金密码,验证码:["+code+"]");
    }
 
    /**
     * 验证登录人资金密码
     * @param operatorUsername
     * @param loginSafeword
     */
    private void checkLoginSafeword(String operatorUsername,String loginSafeword) {
        SecUser sec = this.secUserService.findUserByLoginName(operatorUsername);
        String sysSafeword = sec.getSafeword();
        String safeword_md5 = passwordEncoder.encodePassword(loginSafeword, operatorUsername);
        if (!safeword_md5.equals(sysSafeword)) {
            throw new BusinessException("登录人资金密码错误");
        }
        
    }
 
    public void saveLog(SecUser secUser, String operator,String context) {
        Log log = new Log();
        log.setCategory(Constants.LOG_CATEGORY_OPERATION);
        log.setOperator(operator);
        log.setUsername(secUser.getUsername());
        log.setPartyId(secUser.getPartyId());
        log.setLog(context);
        log.setCreateTime(new Date());
        logService.saveSync(log);
    }
 
    public void setSecUserService(SecUserService secUserService) {
        this.secUserService = secUserService;
    }
 
 
    public void setLogService(LogService logService) {
        this.logService = logService;
    }
 
    public void setPasswordEncoder(PasswordEncoder passwordEncoder) {
        this.passwordEncoder = passwordEncoder;
    }
 
    public void setSysparaService(SysparaService sysparaService) {
        this.sysparaService = sysparaService;
    }
 
    public void setGoogleAuthService(GoogleAuthService googleAuthService) {
        this.googleAuthService = googleAuthService;
    }
 
}