admin
2021-06-24 df4441322e9801c102299451da41d7c40b4502e9
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
124
125
126
127
128
129
130
131
package com.ks.daylucky.service.impl.remote;
 
import com.ks.daylucky.exception.UserInfoException;
import com.ks.daylucky.mapper.UserInfoExtraMapper;
import com.ks.daylucky.mapper.UserInfoMapper;
import com.ks.daylucky.pojo.DO.UserInfo;
import com.ks.daylucky.pojo.DO.UserInfoExtra;
import com.ks.daylucky.pojo.VO.SimpleUser;
import com.ks.daylucky.query.UserInfoQuery;
import com.ks.daylucky.service.UserInfoExtraService;
import com.ks.daylucky.service.UserInfoService;
import com.ks.lib.common.exception.ParamsException;
import com.ks.lucky.pojo.DO.BaseUser;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
 
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.*;
 
@Service
public class UserInfoServiceImpl implements UserInfoService {
 
    @Resource
    private UserInfoMapper userInfoMapper;
 
    @Resource
    private UserInfoExtraMapper userInfoExtraMapper;
 
    @Resource
    private UserInfoExtraService userInfoExtraService;
 
    @Override
    public UserInfo getUserInfo(Long appId, String identifyCode) {
        UserInfoQuery query = new UserInfoQuery();
        query.appId = appId;
        query.identifyCode = identifyCode;
        query.count = 1;
        List<UserInfo> list = userInfoMapper.list(query);
        if (list != null && list.size() > 0) {
            return list.get(0);
        }
        return null;
    }
 
    @Validated
    @Override
    public Long addUserInfo(@Valid UserInfo userInfo) throws ParamsException, UserInfoException {
        UserInfo old = getUserInfo(userInfo.getAppId(), userInfo.getIdentifyCode());
        if (old != null) {
            throw new UserInfoException(UserInfoException.CODE_EXIST, "用户已存在");
        }
 
        if (userInfo.getCreateTime() != null) {
            userInfo.setCreateTime(new Date());
        }
        userInfoMapper.insertSelective(userInfo);
 
        //初始化附加信息
        userInfoExtraService.init(userInfo.getId(), userInfo.getType() == UserInfo.TYPE_NORMAL ? true : false);
        return userInfo.getId();
    }
 
 
    @Override
    public Map<Long, UserInfo> listUserInfoAsMap(BaseUser... users) {
        List<UserInfo> list = userInfoMapper.listUserInfo(Arrays.asList(users));
        Map<Long, UserInfo> map = new HashMap<>();
        if (list != null) {
            for (UserInfo userInfo : list) {
                map.put(userInfo.getId(), userInfo);
            }
        }
        return map;
    }
 
    @Override
    public List<UserInfo> getUserList(UserInfoQuery query, Integer page, Integer pageSize) {
        if (page != null && pageSize != null) {
            query.start = (page - 1) * pageSize;
            query.count = pageSize;
        }
        return userInfoMapper.list(query);
    }
 
    @Override
    public long countUser(UserInfoQuery query) {
        return userInfoMapper.count(query);
    }
 
    @Override
    public UserInfo getUserDetail(Long appId, String identifyCode) {
        UserInfo userInfo = getUserInfo(appId, identifyCode);
        if (userInfo == null) {
            return null;
        }
 
        UserInfoExtra extra = userInfoExtraMapper.selectByPrimaryKey(userInfo.getId());
        userInfo.setUserInfoExtra(extra);
        return userInfo;
    }
 
    @Override
    public UserInfo getUserDetail(Long id) {
        UserInfo userInfo = userInfoMapper.selectByPrimaryKey(id);
        if (userInfo == null) {
            return null;
        }
        UserInfoExtra extra = userInfoExtraMapper.selectByPrimaryKey(userInfo.getId());
        userInfo.setUserInfoExtra(extra);
        return userInfo;
    }
 
    @Override
    public void updateUserInfo(UserInfo userInfo) {
        if (userInfo == null || userInfo.getId() == null) {
            return;
        }
        userInfo.setUpdateTime(new Date());
        userInfoMapper.updateByPrimaryKeySelective(userInfo);
    }
 
    @Override
    public SimpleUser getSimpleUser(Long id) {
        UserInfo user = userInfoMapper.selectByPrimaryKey(id);
        if (user == null) {
            return null;
        }
        return new SimpleUser(user.getId(), user.getNickName(), user.getPortrait());
    }
}