ws
2023-09-20 0970d25c1ecc9a832d4f240298540695398a98d2
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
package com.fzzy.sys;
 
import com.bstek.dorado.annotation.DataProvider;
import com.bstek.dorado.annotation.DataResolver;
import com.bstek.dorado.annotation.Expose;
import com.bstek.dorado.data.entity.EntityState;
import com.bstek.dorado.data.entity.EntityUtils;
import com.fzzy.api.Constant;
import com.fzzy.sys.entity.SysUser;
import com.fzzy.sys.repository.UserRepository;
import org.apache.commons.lang.math.RandomUtils;
import org.bouncycastle.crypto.generators.BCrypt;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Component;
 
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
/**
 * 用户维护
 */
@Component("sys.userPR")
public class UserPR {
 
 
    @Autowired
    private UserRepository userRepository;
 
    private BCryptPasswordEncoder bCryptPasswordEncoder;
 
    /**
     * sys.userPR#findAll
     * @return
     */
    @DataProvider
    public List<SysUser> findAll() {
        return userRepository.findAll();
    }
 
    /**
     * sys.userPR#updateSave
     * @param entity
     */
    @DataResolver
    public String updateSave(SysUser entity) {
        EntityState state = EntityUtils.getState(entity);
        if(state.equals(EntityState.NEW)){
            //登录账号是主键,不能重复
            SysUser user = this.listById(entity.getUsername());
            if(user != null){
                return "登录账户已存在,请重新录入!";
            }
 
            if (null == entity.getCreateDate()) {
                entity.setCreateDate(new Date());
            }
//            if (null == entity.getCompanyId()) {
//                entity.setCompanyId(ContextUtil.getCompanyId(true));
//            }
            //密码加密
            int salt = RandomUtils.nextInt(27);
            salt += 4;
            bCryptPasswordEncoder = new BCryptPasswordEncoder(salt);
            String password = bCryptPasswordEncoder.encode(entity.getPassword());
//            boolean b= bCryptPasswordEncoder.matches(entity.getPassword(),password);
            entity.setPassword(password);
            entity.setSalt(String.valueOf(salt));
        }
        // 手动将doradoEntity对象转换为标准Bean对象
        SysUser data = new SysUser();
        BeanUtils.copyProperties(entity, data);
        userRepository.save(data);
        return null;
    }
 
 
    /**
     * sys.userPR#delData
     *
     * @param data
     */
    @Expose
    public String delData(SysUser data) {
        userRepository.deleteById(data.getUsername());
        return null;
    }
 
    /**
     * 重置密码为"123456"
     * sys.userPR#resetPassword
     * @param entity
     * @return
     */
    @Expose
    public String resetPassword(SysUser entity) {
        //密码加密
        int salt = RandomUtils.nextInt(27);
        salt += 4;
        bCryptPasswordEncoder = new BCryptPasswordEncoder(salt);
        String password = bCryptPasswordEncoder.encode(Constant.DEFAULT_USER_PASSWORD);
        entity.setPassword(password);
        entity.setSalt(String.valueOf(salt));
 
        SysUser data = new SysUser();
        BeanUtils.copyProperties(entity, data);
        userRepository.save(data);
        return null;
    }
 
    public SysUser listById(String username) {
        List<SysUser> list = userRepository.listById(username);
        if(list != null && list.size() > 0){
            return list.get(0);
        }
        return null;
    }
 
}