admin
2019-08-27 b863cc7f007a953a794c09729a034f5d34b26d9b
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
132
133
134
135
136
package com.yeshi.fanli.service.impl.user;
 
import java.util.Date;
 
import javax.annotation.Resource;
 
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
 
import com.yeshi.fanli.dao.mybatis.user.UserInfoModifyRecordMapper;
import com.yeshi.fanli.entity.bus.user.BindingAccount;
import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
import com.yeshi.fanli.entity.bus.user.UserInfoModifyRecord;
import com.yeshi.fanli.entity.bus.user.UserInfoModifyRecord.ModifyTypeEnum;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.integral.IntegralGetService;
import com.yeshi.fanli.service.inter.user.BindingAccountService;
import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.service.inter.user.UserInfoModifyRecordService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.util.StringUtil;
 
@Service
public class UserInfoModifyRecordServiceImpl implements UserInfoModifyRecordService {
 
    @Resource
    private UserInfoModifyRecordMapper userInfoModifyRecordMapper;
 
    @Resource
    private IntegralGetService integralGetService;
 
    @Resource
    private UserInfoService userInfoService;
 
    @Resource
    private UserInfoExtraService userInfoExtraService;
 
    @Resource
    private BindingAccountService bindingAccountService;
 
    @Resource
    private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
 
    @Async()
    @Override
    public void addModifyRecord(Long uid, ModifyTypeEnum type, String value) {
        try {
            if (uid == null || StringUtil.isNullOrEmpty(value))
                return;
 
            long count = countByUid(uid, type.name());
            if (count == 0) {
                if (type == ModifyTypeEnum.bindPhone) {
                    integralGetService.addBindPhone(uid);
                } else if (type == ModifyTypeEnum.bindAlipay) {
                    integralGetService.addBindAlipay(uid);
                } else if (type == ModifyTypeEnum.bindTaoBao) {
                    integralGetService.addBindTaoBao(uid);
                } else if (type == ModifyTypeEnum.bindWeiXin) {
                    integralGetService.addBindWeiXin(uid);
                } else if (type == ModifyTypeEnum.gender) {
                    integralGetService.addSetGender(uid);
                } else if (type == ModifyTypeEnum.nickName) {
                    integralGetService.addSetNickname(uid);
                } else if (type == ModifyTypeEnum.portrait) {
                    integralGetService.addSetPortrait(uid);
                } else if (type == ModifyTypeEnum.setWeiXinNum) {
                    integralGetService.addSetWeiXinNum(uid);
                }
            }
 
            UserInfoModifyRecord oldRecord = userInfoModifyRecordMapper.selectLatestByUidAndType(uid, type.name());
            if (oldRecord == null || !oldRecord.getValue().equalsIgnoreCase(value)) {// 不能修改重复的数据
                UserInfoModifyRecord record = new UserInfoModifyRecord();
                record.setUid(uid);
                record.setType(type);
                record.setValue(value);
                record.setCreateTime(new Date());
                userInfoModifyRecordMapper.insertSelective(record);
            }
        } catch (Exception e) {
            e.printStackTrace();
            LogHelper.errorDetailInfo(e);
        }
    }
 
    @Override
    public long countByUid(Long uid, String type) {
        return userInfoModifyRecordMapper.countByUid(uid, type);
    }
 
    @Override
    public void syncBeforeInfo(Long uid) {
        // 获取用户基本信息
        UserInfo user = userInfoService.selectByPKey(uid);
        if (user == null || user.getState() != UserInfo.STATE_NORMAL) {// 用户不正常
            return;
        }
        if (!StringUtil.isNullOrEmpty(user.getPhone())) {
            addModifyRecord(uid, ModifyTypeEnum.bindPhone, user.getPhone());
        }
 
        BindingAccount account = bindingAccountService.getBindingAccountByUidAndType(uid, BindingAccount.TYPE_ALIPAY);
        if (account != null) {
            addModifyRecord(uid, ModifyTypeEnum.bindAlipay, account.getAccount());
        }
 
        if (!StringUtil.isNullOrEmpty(user.getWxUnionId())) {
            addModifyRecord(uid, ModifyTypeEnum.bindWeiXin, user.getWxUnionId());
        }
 
        if (user.getNickName() != null && !user.getNickName().startsWith("返利券")) {
            addModifyRecord(uid, ModifyTypeEnum.nickName, user.getNickName() + "");
        }
 
        UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
        if (userInfoExtra != null) {
            if (userInfoExtra.getSex() != null)
                addModifyRecord(uid, ModifyTypeEnum.gender, userInfoExtra.getSex() + "");
 
            if (!StringUtil.isNullOrEmpty(userInfoExtra.getWeiXin()))
                addModifyRecord(uid, ModifyTypeEnum.setWeiXinNum, userInfoExtra.getWeiXin());
        }
 
        UserExtraTaoBaoInfo taoBaoExtra = userExtraTaoBaoInfoService.getByUid(uid);
        if (taoBaoExtra != null && !StringUtil.isNullOrEmpty(taoBaoExtra.getRelationId())
                && !StringUtil.isNullOrEmpty(taoBaoExtra.getSpecialId()) && taoBaoExtra.getRelationValid()
                && taoBaoExtra.getSpecialValid()) {
            addModifyRecord(uid, ModifyTypeEnum.bindTaoBao, taoBaoExtra.getTaoBaoUid());
        }
 
    }
}