yujian
2019-10-09 c7edf6dd7b3e913af333942b2b908adeed0ac1bb
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
137
138
139
140
141
142
143
144
145
146
147
148
149
package com.yeshi.fanli.service.inter.user;
 
import com.yeshi.fanli.dto.wx.WXAccountInfoDTO;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
import com.yeshi.fanli.entity.bus.user.UserRank;
import com.yeshi.fanli.entity.bus.user.WeiXinUser;
import com.yeshi.fanli.exception.user.UserInfoExtraException;
import com.yeshi.fanli.vo.user.UserInfoExtraVO;
 
public interface UserInfoExtraService {
 
    /**
     * 获取用户等级一级其他附加信息
     * @param uid
     * @return
     * @throws UserInfoExtraException
     */
    public UserInfoExtraVO getRankInfo(Long uid) throws UserInfoExtraException, Exception;
 
    /**
     * 保存用户额外信息-新增或更新
     * @param userInfoExtra
     * @throws UserInfoExtraException
     */
    public UserInfoExtra saveUserInfoExtra(UserInfoExtra userInfoExtra) throws UserInfoExtraException;
 
    /**
     * 更新用户等级
     * @param uid 用户id
     * @return
     * @throws UserInfoExtraException
     */
    public void updateUserRankByUid(Long uid) throws UserInfoExtraException;
 
    /**
     * 根据订单更新
     * @param userInfoExtra
     * @return
     * @throws UserInfoExtraException
     */
    public UserInfoExtra updateRank(UserInfoExtra userInfoExtra) throws UserInfoExtraException;
 
    /**
     * 用户激活邀请码
     * @param uid
     * @param inviteCode
     * @return
     * @throws UserInfoExtraException
     */
    public String activateInviteCode(Long uid, String inviteCode) throws UserInfoExtraException;
 
    /**
     * 获取用户附加信息
     * @param uid
     * @return
     */
    public UserInfoExtra getUserInfoExtra(Long uid);
 
    /**
     * 获取用户邀请码,若没有且存在队员关系 那么自动生成邀请码
     * @param uid
     * @return
     * @throws UserInfoExtraException
     */
    public String getUserInviteCode(Long uid) throws UserInfoExtraException;
 
    /**
     * 获取用户额外信息全部衍生信息
     * @param uid
     * @return
     */
    public UserInfoExtraVO getInfoExtraVOByUid(Long uid);
 
    /**
     *  统计各个等级用户数
     */
    public long countByRankId(Long rankId);
 
    /**
     * 微信邀请激活上级关系 1.5.3
     * @param uid
     * @param code
     * @throws UserInfoExtraException
     */
    public void activationInviteWX(WXAccountInfoDTO wxAccount,Long uid, String code) throws UserInfoExtraException;
 
    /**
     * 判断是否是新用户
     * @param uid
     * @return
     */
    public boolean isNewUser(Long uid);
 
    /**
     * 创建额外信息
     * @param uid
     * @throws UserInfoExtraException
     */
    public void createUserInfoExtra(Long uid) throws UserInfoExtraException;
    
    /**
     * 获取用户等级
     * @param uid
     * @return
     */
    public UserRank gerUserRank(Long uid);
 
    /**
     * 根据邀请码查询用户
     * @param inviteCode
     * @return
     * @throws UserInfoExtraException
     */
    public UserInfo getUserByInviteCode(String inviteCode) throws UserInfoExtraException;
 
    /**
     * 获取邀请人关系信息
     * @param uid
     * @param code
     * @return
     * @throws UserInfoExtraException
     */
    public UserInfo getInviterInfo(Long uid, String wxUnionId) throws UserInfoExtraException;
 
    /**
     * 更新信息 +  加锁
     * @param uid
     * @return
     */
    public UserInfoExtra getByUidForUpdate(Long uid);
    
    /**
     * 更新用户金币
     * @param id
     * @param goldCoin
     * @return
     */
    public void updateGoldCoin(Long id, Integer goldCoin);
 
    /**
     * 新版邀请激活
     * @param uid
     * @param weiXinUser
     * @throws UserInfoExtraException
     */
    public void activeInviteWX(Long uid, WeiXinUser weiXinUser) throws UserInfoExtraException;
    
}