UserLevelServiceImpl.java 42.9 KB
Newer Older
codezwjava's avatar
codezwjava committed
1 2
package cn.wisenergy.service.app.impl;

codezwjava's avatar
codezwjava committed
3 4 5
import cn.wisenergy.mapper.*;
import cn.wisenergy.model.app.*;
import cn.wisenergy.model.enums.TradeRecordEnum;
6
import cn.wisenergy.service.app.AerialDeliveryUserService;
codezwjava's avatar
codezwjava committed
7 8
import cn.wisenergy.service.app.UserLevelService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
9
import com.xxl.job.core.handler.annotation.XxlJob;
codezwjava's avatar
codezwjava committed
10 11 12 13 14 15
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.math.BigDecimal;
16
import java.util.List;
codezwjava's avatar
codezwjava committed
17 18 19 20 21 22 23 24 25

/**
 * @author zw
 * @ Description: 用户升级功能业务实现
 * @ Author     : zw
 * @ Date       : 2021/2/24 17:06
 */
@Service
@Slf4j
codezwjava's avatar
codezwjava committed
26
public class UserLevelServiceImpl extends ServiceImpl<UsersMapper, User> implements UserLevelService {
codezwjava's avatar
codezwjava committed
27 28

    @Autowired
licc's avatar
licc committed
29
    private UsersMapper usersMapper;
codezwjava's avatar
codezwjava committed
30 31

    @Autowired
licc's avatar
licc committed
32
    private RecommendUserMapper recommendUserMapper;
codezwjava's avatar
codezwjava committed
33 34

    @Autowired
licc's avatar
licc committed
35
    private TeamUserInfoMapper teamUserInfoMapper;
codezwjava's avatar
codezwjava committed
36

codezwjava's avatar
codezwjava committed
37 38 39 40 41 42
    @Autowired
    private TradeRecordMapper tradeRecordMapper;

    @Autowired
    private AccountMapper accountMapper;

43 44 45
    @Autowired
    private TeamPerformanceMapper teamPerformanceMapper;

codezwjava's avatar
codezwjava committed
46 47 48 49 50 51
    @Autowired
    private CultivatingPrizeMapper cultivatingPrizeMapper;

    @Autowired
    private CultivatingPrizeInfoMapper cultivatingPrizeInfoMapper;

52 53 54
    @Autowired
    private AerialDeliveryUserService aerialDeliveryUserService;

55 56 57
    @Autowired
    private OrderMapper orderMapper;

codezwjava's avatar
codezwjava committed
58 59 60 61
    //系统推荐人邀请码
    private static final String sysInviteCode1 = "1";
    private static final String sysInviteCode2 = "88888888";

62 63 64
    //获取订单
    @XxlJob(value = "userLevelUpjobhandler")
    @Override
codezwjava's avatar
codezwjava committed
65
    public void userLevelUp() {
66
        //1.获取数据库订单数据
67
        log.info("------------------------用户升级开始----------------------------------");
68 69
        List<OrderInfo> ordersByLevelStatus = orderMapper.getByLevelStatus(0);
        for (OrderInfo orderInfo : ordersByLevelStatus) {
codezwjava's avatar
codezwjava committed
70 71
            String userId = orderInfo.getUserId();
            userLevelUpgrade(userId);
72 73 74 75
            //当前订单升级状态置为1
            orderInfo.setLevelStatus(1);
            orderMapper.updateById(orderInfo);
        }
76
        log.info("-------------------------用户升级结束--------------------------------------");
77
    }
codezwjava's avatar
codezwjava committed
78

codezwjava's avatar
codezwjava committed
79 80 81 82 83 84 85 86 87 88 89
    @Override
    @Transactional
    public void userLevelUpgrade(String userId) {
        //当前用户对象
        User user = usersMapper.getByUserId(userId);
        //当前用户直推表对象
        RecommendUser recommendUser = recommendUserMapper.getByUserId(userId);
        //当前用户团队信息表对象
        TeamUserInfo teamUserInfoMapperByUserId = teamUserInfoMapper.getByUserId(userId);
        //当前用户等级
        Integer userLevel = user.getUserLevel();
90 91 92 93 94 95 96 97 98 99
        //当前用户的累计消费
        BigDecimal performanceByUserid = new BigDecimal(0);
        if (userLevel == 0){
            //计算当前用户业绩
            performanceByUserid = orderMapper.getPerformanceByUserid(userId);
            if (null == performanceByUserid) {
                performanceByUserid = new BigDecimal(0);
            }
        }
        //当前用户的推荐人邀请码
codezwjava's avatar
codezwjava committed
100
        String beInvitedCode = user.getBeInvitedCode();
codezwjava's avatar
codezwjava committed
101 102 103 104
        //
        String inviteUserId = "";
        RecommendUser inviteRecommendUser = new RecommendUser();
        //若当前用户的推荐人邀请码是  “1” 时 则当前用户没有邀请人
105
        if (!sysInviteCode1.equals(beInvitedCode) && !sysInviteCode2.equals(beInvitedCode)) {
codezwjava's avatar
codezwjava committed
106
            //通过当前用户推荐人邀请码获取邀请人的userId
codezwjava's avatar
codezwjava committed
107 108 109 110 111 112
            User byBeInvitedCode = usersMapper.getByBeInvitedCode(beInvitedCode);
            if (null != byBeInvitedCode) {
                inviteUserId = byBeInvitedCode.getUserId();
                //邀请人的直推用户信息
                inviteRecommendUser = recommendUserMapper.getByUserId(inviteUserId);
            }
codezwjava's avatar
codezwjava committed
113
        }
codezwjava's avatar
codezwjava committed
114 115
        //用户等级升级为幼苗 1
        //若当前用户等级为0(普通用户)且跨境额度(业绩消费金额)>= 3980 进行升级0-->1
codezwjava's avatar
codezwjava committed
116
        //todo:根据业绩去计算  查一次表获取业绩
117
        if (userLevel == 0 && performanceByUserid.intValue() >= 3980) {
codezwjava's avatar
codezwjava committed
118
            user.setUserLevel(1);
119
            usersMapper.updateById(user);
120 121
            //同步accountInfo 和TeamPerformance 的用户等级
            accountAndTeamPerformanceUserLevelUpdate(userId);
codezwjava's avatar
codezwjava committed
122
            //用户推荐人邀请码为 1 时 该用户没有邀请人
123
            if (sysInviteCode1.equals(beInvitedCode) || sysInviteCode2.equals(beInvitedCode)) {
codezwjava's avatar
codezwjava committed
124 125
                return;
            } else {
codezwjava's avatar
codezwjava committed
126 127
                //推荐人直推信息表数据维护
                //若邀请人直推用户信息中的普通用户数量为0是则不用变化,否则普通用户数量-1
codezwjava's avatar
codezwjava committed
128
                if (inviteRecommendUser.getNormalUserNum() == 0) {
codezwjava's avatar
codezwjava committed
129
                    inviteRecommendUser.setNormalUserNum(inviteRecommendUser.getNormalUserNum());
codezwjava's avatar
codezwjava committed
130
                } else {
codezwjava's avatar
codezwjava committed
131
                    //普通用户-1
codezwjava's avatar
codezwjava committed
132
                    inviteRecommendUser.setNormalUserNum(inviteRecommendUser.getNormalUserNum() - 1);
codezwjava's avatar
codezwjava committed
133 134
                }
                //邀请人直推用户信息中的幼苗用户数量为+1
codezwjava's avatar
codezwjava committed
135
                inviteRecommendUser.setSeedlingNum(inviteRecommendUser.getSeedlingNum() + 1);
codezwjava's avatar
codezwjava committed
136 137
                recommendUserMapper.updateById(inviteRecommendUser);
                //团队用户表数据维护
138 139
//                teamUserInfoNormalToSeed(inviteUserId);
                aerialDeliveryUserService.teamDataNotRecommend(userId,inviteUserId);
codezwjava's avatar
codezwjava committed
140 141 142
                //上级用户获得幼苗等级的培育奖
                int level = 1;
                cultivatingPrizeToInvitedUser(userId, inviteUserId, level);
codezwjava's avatar
codezwjava committed
143 144 145 146 147 148 149
                //用户升级成功时,进行邀请人等级自查是否达到升级条件
                userLevelUpgrade(inviteUserId);
            }

        }
        //用户等级升级为青铜树 2
        //当前用户等级为幼苗用户(1)时 且当前用户直推人数中幼苗等级>=5人<20人时
codezwjava's avatar
codezwjava committed
150 151
        if (userLevel == 1 && recommendUser.getSeedlingNum() >= 3
                             && recommendUser.getSeedlingNum() < 15) {
codezwjava's avatar
codezwjava committed
152
            //用户升级成功
codezwjava's avatar
codezwjava committed
153
            user.setUserLevel(2);
154
            usersMapper.updateById(user);
155 156
            //同步accountInfo 和TeamPerformance 的用户等级
            accountAndTeamPerformanceUserLevelUpdate(userId);
codezwjava's avatar
codezwjava committed
157
            //用户被邀请码为 1 时 该用户没有邀请人
158
            if (sysInviteCode1.equals(beInvitedCode) || sysInviteCode2.equals(beInvitedCode)) {
codezwjava's avatar
codezwjava committed
159 160
                return;
            } else {
codezwjava's avatar
codezwjava committed
161 162
                //若邀请人直推用户信息中的幼苗用户数量为0是则不用变化,否则幼苗用户数量-1
                if (inviteRecommendUser.getSeedlingNum() == 0) {
codezwjava's avatar
codezwjava committed
163
                    inviteRecommendUser.setSeedlingNum(inviteRecommendUser.getSeedlingNum());
codezwjava's avatar
codezwjava committed
164
                } else {
codezwjava's avatar
codezwjava committed
165
                    //幼苗用户-1
codezwjava's avatar
codezwjava committed
166
                    inviteRecommendUser.setSeedlingNum(inviteRecommendUser.getSeedlingNum() - 1);
codezwjava's avatar
codezwjava committed
167 168
                }
                //邀请人直推用户信息中的青铜树用户数量为+1
codezwjava's avatar
codezwjava committed
169
                inviteRecommendUser.setBronzeTreeNum(inviteRecommendUser.getBronzeTreeNum() + 1);
codezwjava's avatar
codezwjava committed
170 171
                recommendUserMapper.updateById(inviteRecommendUser);
                //团队用户表数据维护
172 173
//                teamUserInfoSeedToBronze(inviteUserId);
                aerialDeliveryUserService.teamDataNotRecommend(userId,inviteUserId);
codezwjava's avatar
codezwjava committed
174 175 176
                //上级用户获得幼苗等级的培育奖
                int level = 2;
                cultivatingPrizeToInvitedUser(userId, inviteUserId, level);
codezwjava's avatar
codezwjava committed
177 178 179 180 181
                //用户升级成功时,进行邀请人等级自查是否达到升级条件
                userLevelUpgrade(inviteUserId);
            }
        }
        //用户等级升级为白银树 3
codezwjava's avatar
codezwjava committed
182 183
        if (userLevel == 2 && recommendUser.getSeedlingNum() >= 15
                            && recommendUser.getSeedlingNum() < 20) {
codezwjava's avatar
codezwjava committed
184
            user.setUserLevel(3);
185
            usersMapper.updateById(user);
186 187
            //同步accountInfo 和TeamPerformance 的用户等级
            accountAndTeamPerformanceUserLevelUpdate(userId);
codezwjava's avatar
codezwjava committed
188
            //用户被邀请码为 1 时 该用户没有邀请人
189
            if (sysInviteCode1.equals(beInvitedCode) || sysInviteCode2.equals(beInvitedCode)) {
codezwjava's avatar
codezwjava committed
190
                return;
codezwjava's avatar
codezwjava committed
191
            } else {
codezwjava's avatar
codezwjava committed
192 193
                //推荐人直推信息表数据维护
                //若邀请人直推用户信息中的青铜树用户数量为0是则不用变化,否则青铜树用户数量-1
codezwjava's avatar
codezwjava committed
194
                if (inviteRecommendUser.getBronzeTreeNum() == 0) {
codezwjava's avatar
codezwjava committed
195
                    inviteRecommendUser.setBronzeTreeNum(inviteRecommendUser.getBronzeTreeNum());
codezwjava's avatar
codezwjava committed
196
                } else {
codezwjava's avatar
codezwjava committed
197 198 199 200
                    //青铜树用户-1
                    inviteRecommendUser.setBronzeTreeNum(inviteRecommendUser.getBronzeTreeNum() - 1);
                }
                //邀请人直推用户信息中的白银用户数量 + 1
codezwjava's avatar
codezwjava committed
201
                inviteRecommendUser.setSilverTreeNum(inviteRecommendUser.getSilverTreeNum() + 1);
codezwjava's avatar
codezwjava committed
202 203
                recommendUserMapper.updateById(inviteRecommendUser);
                //团队用户表数据维护
204 205
//                teamUserInfoBronzeToSilver(inviteUserId);
                aerialDeliveryUserService.teamDataNotRecommend(userId,inviteUserId);
codezwjava's avatar
codezwjava committed
206 207 208
                //上级用户获得幼苗等级的培育奖
                int level = 3;
                cultivatingPrizeToInvitedUser(userId, inviteUserId, level);
codezwjava's avatar
codezwjava committed
209 210 211 212 213 214 215
                //用户升级成功时,进行邀请人等级自查是否达到升级条件
                userLevelUpgrade(inviteUserId);
            }

        }
        //用户等级升级为黄金树 4
        //:todo 条件:团队中青铜树数量>=20
codezwjava's avatar
codezwjava committed
216 217 218
        if (userLevel == 3 && recommendUser.getSeedlingNum() >= 20
                && recommendUser.getSilverTreeNum() >= 2
                && teamUserInfoMapperByUserId.getSeedlingNum() >= 30
codezwjava's avatar
codezwjava committed
219
                && teamUserInfoMapperByUserId.getBronzeTreeNum() >= 20) {
codezwjava's avatar
codezwjava committed
220
            user.setUserLevel(4);
221
            usersMapper.updateById(user);
222 223
            //同步accountInfo 和TeamPerformance 的用户等级
            accountAndTeamPerformanceUserLevelUpdate(userId);
codezwjava's avatar
codezwjava committed
224
            //用户被邀请码为 1 时 该用户没有邀请人
225
            if (sysInviteCode1.equals(beInvitedCode) || sysInviteCode2.equals(beInvitedCode)) {
codezwjava's avatar
codezwjava committed
226
                return;
codezwjava's avatar
codezwjava committed
227
            } else {
codezwjava's avatar
codezwjava committed
228 229
                //推荐人直推信息表数据维护
                //若邀请人直推用户信息中的白银树用户数量为0是则不用变化,否则白银树用户数量-1
codezwjava's avatar
codezwjava committed
230
                if (inviteRecommendUser.getSilverTreeNum() == 0) {
codezwjava's avatar
codezwjava committed
231
                    inviteRecommendUser.setSilverTreeNum(inviteRecommendUser.getSilverTreeNum());
codezwjava's avatar
codezwjava committed
232
                } else {
codezwjava's avatar
codezwjava committed
233 234 235 236 237 238 239
                    //白银树用户-1
                    inviteRecommendUser.setSilverTreeNum(inviteRecommendUser.getSilverTreeNum() - 1);
                }
                //邀请人直推用户信息中的黄金用户数量 + 1
                inviteRecommendUser.setGoldTreeNum(inviteRecommendUser.getGoldTreeNum() + 1);
                recommendUserMapper.updateById(inviteRecommendUser);
                //团队用户表数据维护
240 241
//                teamUserInfoSilverToGoldTree(inviteUserId);
                aerialDeliveryUserService.teamDataNotRecommend(userId,inviteUserId);
codezwjava's avatar
codezwjava committed
242 243 244
                //上级用户获得幼苗等级的培育奖
                int level = 4;
                cultivatingPrizeToInvitedUser(userId, inviteUserId, level);
codezwjava's avatar
codezwjava committed
245 246 247 248 249 250
                //用户升级成功时,进行邀请人等级自查是否达到升级条件
                userLevelUpgrade(inviteUserId);
            }
        }
        //用户等级级升级为农场主 5
        //:todo 条件:团队中白银树数量>=40
codezwjava's avatar
codezwjava committed
251 252 253
        if (userLevel == 4 && recommendUser.getSeedlingNum() >= 30
                && recommendUser.getGoldTreeNum() >= 2
                && teamUserInfoMapperByUserId.getSeedlingNum() >=70
codezwjava's avatar
codezwjava committed
254
                && teamUserInfoMapperByUserId.getSilverTreeNum() >= 40) {
codezwjava's avatar
codezwjava committed
255
            user.setUserLevel(5);
256
            usersMapper.updateById(user);
257 258
            //同步accountInfo 和TeamPerformance 的用户等级
            accountAndTeamPerformanceUserLevelUpdate(userId);
codezwjava's avatar
codezwjava committed
259
            //用户被邀请码为 1 时 该用户没有邀请人
260
            if (sysInviteCode1.equals(beInvitedCode) || sysInviteCode2.equals(beInvitedCode)) {
codezwjava's avatar
codezwjava committed
261
                return;
codezwjava's avatar
codezwjava committed
262
            } else {
codezwjava's avatar
codezwjava committed
263 264
                //推荐人直推信息表数据维护
                //若邀请人直推用户信息中的黄金树用户数量为0是则不用变化,否则黄金树用户数量-1
codezwjava's avatar
codezwjava committed
265
                if (inviteRecommendUser.getGoldTreeNum() == 0) {
codezwjava's avatar
codezwjava committed
266
                    inviteRecommendUser.setGoldTreeNum(inviteRecommendUser.getGoldTreeNum());
codezwjava's avatar
codezwjava committed
267
                } else {
codezwjava's avatar
codezwjava committed
268 269 270 271 272 273 274
                    //黄金树用户-1
                    inviteRecommendUser.setGoldTreeNum(inviteRecommendUser.getGoldTreeNum() - 1);
                }
                //邀请人直推用户信息中的农场主用户数量 + 1
                inviteRecommendUser.setGoldTreeNum(inviteRecommendUser.getFarmerNum() + 1);
                recommendUserMapper.updateById(inviteRecommendUser);
                //团队用户表数据维护
275 276
//                teamUserInfoGoldTreeToFarmer(inviteUserId);
                aerialDeliveryUserService.teamDataNotRecommend(userId,inviteUserId);
codezwjava's avatar
codezwjava committed
277 278 279
                //上级用户获得幼苗等级的培育奖
                int level = 5;
                cultivatingPrizeToInvitedUser(userId, inviteUserId, level);
codezwjava's avatar
codezwjava committed
280 281 282 283 284 285
                //用户升级成功时,进行邀请人等级自查是否达到升级条件
                userLevelUpgrade(inviteUserId);
            }
        }

        //用户等级升级为森林之星 6
codezwjava's avatar
codezwjava committed
286 287 288
        if (userLevel == 5 && recommendUser.getSeedlingNum() >= 40
                && recommendUser.getFarmerNum() >= 2
                && teamUserInfoMapperByUserId.getSeedlingNum() >=80
codezwjava's avatar
codezwjava committed
289
                && teamUserInfoMapperByUserId.getSilverTreeNum() >= 70
codezwjava's avatar
codezwjava committed
290
                && teamUserInfoMapperByUserId.getGoldTreeNum() >= 30) {
codezwjava's avatar
codezwjava committed
291
            user.setUserLevel(6);
292
            usersMapper.updateById(user);
293 294
            //同步accountInfo 和TeamPerformance 的用户等级
            accountAndTeamPerformanceUserLevelUpdate(userId);
codezwjava's avatar
codezwjava committed
295
            //用户被邀请码为 1 时 该用户没有邀请人
296
            if (sysInviteCode1.equals(beInvitedCode) || sysInviteCode2.equals(beInvitedCode)) {
codezwjava's avatar
codezwjava committed
297
                return;
codezwjava's avatar
codezwjava committed
298
            } else {
codezwjava's avatar
codezwjava committed
299 300
                //推荐人直推信息表数据维护
                //若邀请人直推用户信息中的农场主用户数量为0是则不用变化,否则农场主用户数量-1
codezwjava's avatar
codezwjava committed
301
                if (inviteRecommendUser.getFarmerNum() == 0) {
codezwjava's avatar
codezwjava committed
302
                    inviteRecommendUser.setFarmerNum(inviteRecommendUser.getFarmerNum());
codezwjava's avatar
codezwjava committed
303
                } else {
codezwjava's avatar
codezwjava committed
304 305 306 307 308 309 310
                    //农场主用户-1
                    inviteRecommendUser.setFarmerNum(inviteRecommendUser.getFarmerNum() - 1);
                }
                //邀请人直推用户信息中的森林之星用户数量 + 1
                inviteRecommendUser.setForestStartNum(inviteRecommendUser.getForestStartNum() + 1);
                recommendUserMapper.updateById(inviteRecommendUser);
                //团队用户表数据维护
311 312
//                teamUserInfoFarmerToForestStart(inviteUserId);
                aerialDeliveryUserService.teamDataNotRecommend(userId,inviteUserId);
codezwjava's avatar
codezwjava committed
313 314 315
                //上级用户获得幼苗等级的培育奖
                int level = 6;
                cultivatingPrizeToInvitedUser(userId, inviteUserId, level);
codezwjava's avatar
codezwjava committed
316 317 318 319 320 321
                //用户升级成功时,进行邀请人等级自查是否达到升级条件
                userLevelUpgrade(inviteUserId);
            }
        }
        //用户等级升级为西田森合伙人 7
        //:todo 条件:团队中白银树数量>=90 && 条件:团队中黄金树数量>=50 条件:团队中农场主数量>=30
codezwjava's avatar
codezwjava committed
322 323 324
        if (userLevel == 6 && recommendUser.getSeedlingNum() >= 50
                && recommendUser.getForestStartNum() >= 2
                && teamUserInfoMapperByUserId.getSeedlingNum() >= 100
codezwjava's avatar
codezwjava committed
325
                && teamUserInfoMapperByUserId.getSilverTreeNum() >= 90
codezwjava's avatar
codezwjava committed
326
                && teamUserInfoMapperByUserId.getGoldTreeNum() >= 50
codezwjava's avatar
codezwjava committed
327
                && teamUserInfoMapperByUserId.getFarmerNum() >= 30) {
codezwjava's avatar
codezwjava committed
328
            user.setUserLevel(7);
329
            usersMapper.updateById(user);
330 331
            //同步accountInfo 和TeamPerformance 的用户等级
            accountAndTeamPerformanceUserLevelUpdate(userId);
codezwjava's avatar
codezwjava committed
332
            //用户被邀请码为 1 时 该用户没有邀请人
333
            if (sysInviteCode1.equals(beInvitedCode) || sysInviteCode2.equals(beInvitedCode)) {
codezwjava's avatar
codezwjava committed
334
                return;
codezwjava's avatar
codezwjava committed
335
            } else {
codezwjava's avatar
codezwjava committed
336 337
                //推荐人直推信息表数据维护
                //若邀请人直推用户信息中的森林之星用户数量为0是则不用变化,否则森林之星用户数量-1
codezwjava's avatar
codezwjava committed
338
                if (inviteRecommendUser.getForestStartNum() == 0) {
codezwjava's avatar
codezwjava committed
339
                    inviteRecommendUser.setForestStartNum(inviteRecommendUser.getForestStartNum());
codezwjava's avatar
codezwjava committed
340
                } else {
codezwjava's avatar
codezwjava committed
341 342 343 344 345 346 347
                    //森林之星用户-1
                    inviteRecommendUser.setForestStartNum(inviteRecommendUser.getForestStartNum() - 1);
                }
                //邀请人直推用户信息中的西田森合伙人用户数量 + 1
                inviteRecommendUser.setPartnerNum(inviteRecommendUser.getPartnerNum() + 1);
                recommendUserMapper.updateById(inviteRecommendUser);
                //团队用户表数据维护
348 349
//                teamUserInfoForestStartToPartner(inviteUserId);
                aerialDeliveryUserService.teamDataNotRecommend(userId,inviteUserId);
codezwjava's avatar
codezwjava committed
350 351 352
                //上级用户获得幼苗等级的培育奖
                int level = 7;
                cultivatingPrizeToInvitedUser(userId, inviteUserId, level);
codezwjava's avatar
codezwjava committed
353 354 355 356 357 358 359 360
                //用户升级成功时,进行邀请人等级自查是否达到升级条件
                userLevelUpgrade(inviteUserId);
            }
        }
    }

    /**
     * 团队用户表数据维护(森林之星用户升级至西田森合伙人用户时)
codezwjava's avatar
codezwjava committed
361
     *
codezwjava's avatar
codezwjava committed
362 363 364 365 366 367 368
     * @param inviteUserId 邀请人userid
     */
    private void teamUserInfoForestStartToPartner(String inviteUserId) {
        //邀请人的团队信息表对象
        TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
        //邀请人的用户表对象
        User byUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());
codezwjava's avatar
codezwjava committed
369 370

        String beinvitedCodeUserId = "";
371
        String inviteCode = byUserId.getBeInvitedCode();
codezwjava's avatar
codezwjava committed
372
        if (!sysInviteCode1.equals(inviteUserId) || !sysInviteCode2.equals(inviteUserId)) {
codezwjava's avatar
codezwjava committed
373 374 375
            //通过邀请人的用户信息获取邀请人的推荐人邀请码
            beinvitedCodeUserId = usersMapper.getByBeInvitedCode(inviteCode).getUserId();
        }
codezwjava's avatar
codezwjava committed
376
        //通过邀请人的用户信息获取邀请人的推荐人邀请码
codezwjava's avatar
codezwjava committed
377
        //String beinvitedCodeUserId = usersMapper.getByBeInvitedCode(byUserId.getBeInvitedCode()).getUserId();
codezwjava's avatar
codezwjava committed
378
        //邀请人团队信息表中森林之星用户数量 = 0 时,森林之星用户数量不用变化,否则森林之星用户数量 - 1
codezwjava's avatar
codezwjava committed
379
        if (teamNumInfoBuyId.getForestStartNum() == 0) {
codezwjava's avatar
codezwjava committed
380
            teamNumInfoBuyId.setForestStartNum(teamNumInfoBuyId.getForestStartNum());
codezwjava's avatar
codezwjava committed
381
        } else {
codezwjava's avatar
codezwjava committed
382 383 384 385 386 387
            //森林之星用户数量 - 1
            teamNumInfoBuyId.setForestStartNum(teamNumInfoBuyId.getForestStartNum() - 1);
        }
        //西田森合伙人用户数量 + 1
        teamNumInfoBuyId.setPartnerNum(teamNumInfoBuyId.getPartnerNum() + 1);
        teamUserInfoMapper.updateById(teamNumInfoBuyId);
codezwjava's avatar
codezwjava committed
388
        if (!sysInviteCode1.equals(inviteUserId) || !sysInviteCode2.equals(inviteUserId)) {
codezwjava's avatar
codezwjava committed
389 390 391 392 393 394 395
            return;
        }
        teamUserInfoForestStartToPartner(beinvitedCodeUserId);
    }

    /**
     * 团队用户表数据维护(农场主用户升级至森林之星用户时)
codezwjava's avatar
codezwjava committed
396
     *
codezwjava's avatar
codezwjava committed
397 398 399 400 401 402 403
     * @param inviteUserId 邀请人userid
     */
    private void teamUserInfoFarmerToForestStart(String inviteUserId) {
        //邀请人的团队信息表对象
        TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
        //邀请人的用户表对象
        User byUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());
codezwjava's avatar
codezwjava committed
404 405

        String beinvitedCodeUserId = "";
406
        String inviteCode = byUserId.getBeInvitedCode();
codezwjava's avatar
codezwjava committed
407
        if (!sysInviteCode1.equals(inviteUserId) || !sysInviteCode2.equals(inviteUserId)) {
codezwjava's avatar
codezwjava committed
408 409 410
            //通过邀请人的用户信息获取邀请人的推荐人邀请码
            beinvitedCodeUserId = usersMapper.getByBeInvitedCode(inviteCode).getUserId();
        }
codezwjava's avatar
codezwjava committed
411
        //通过邀请人的用户信息获取邀请人的推荐人邀请码
codezwjava's avatar
codezwjava committed
412
        //String beinvitedCodeUserId = usersMapper.getByBeInvitedCode(byUserId.getBeInvitedCode()).getUserId();
codezwjava's avatar
codezwjava committed
413
        //邀请人团队信息表中农场主用户数量 = 0 时,农场主用户数量不用变化,否则农场主用户数量 - 1
codezwjava's avatar
codezwjava committed
414
        if (teamNumInfoBuyId.getFarmerNum() == 0) {
codezwjava's avatar
codezwjava committed
415
            teamNumInfoBuyId.setFarmerNum(teamNumInfoBuyId.getFarmerNum());
codezwjava's avatar
codezwjava committed
416
        } else {
codezwjava's avatar
codezwjava committed
417 418 419 420 421 422
            //农场主用户数量 - 1
            teamNumInfoBuyId.setFarmerNum(teamNumInfoBuyId.getFarmerNum() - 1);
        }
        //森林之星用户数量 + 1
        teamNumInfoBuyId.setForestStartNum(teamNumInfoBuyId.getForestStartNum() + 1);
        teamUserInfoMapper.updateById(teamNumInfoBuyId);
codezwjava's avatar
codezwjava committed
423
        if (!sysInviteCode1.equals(inviteUserId) || !sysInviteCode2.equals(inviteUserId)) {
codezwjava's avatar
codezwjava committed
424 425 426 427 428 429 430 431
            return;
        }
        //递归向上修改团队用户信息表
        teamUserInfoFarmerToForestStart(beinvitedCodeUserId);
    }

    /**
     * 团队用户表数据维护(黄金树用户升级至农场主用户时)
codezwjava's avatar
codezwjava committed
432
     *
codezwjava's avatar
codezwjava committed
433 434 435 436 437 438 439
     * @param inviteUserId 邀请人userid
     */
    private void teamUserInfoGoldTreeToFarmer(String inviteUserId) {
        //邀请人的团队信息表对象
        TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
        //邀请人的用户表对象
        User byUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());
codezwjava's avatar
codezwjava committed
440 441

        String beinvitedCodeUserId = "";
442
        String inviteCode = byUserId.getBeInvitedCode();
codezwjava's avatar
codezwjava committed
443
        if (!sysInviteCode1.equals(inviteUserId) || !sysInviteCode2.equals(inviteUserId)) {
codezwjava's avatar
codezwjava committed
444 445 446
            //通过邀请人的用户信息获取邀请人的推荐人邀请码
            beinvitedCodeUserId = usersMapper.getByBeInvitedCode(inviteCode).getUserId();
        }
codezwjava's avatar
codezwjava committed
447
        //通过邀请人的用户信息获取邀请人的推荐人邀请码
codezwjava's avatar
codezwjava committed
448
        // String beinvitedCodeUserId = usersMapper.getByBeInvitedCode(byUserId.getBeInvitedCode()).getUserId();
codezwjava's avatar
codezwjava committed
449
        //邀请人团队信息表中黄金树用户数量 = 0 时,黄金树用户数量不用变化,否则黄金树用户数量 - 1
codezwjava's avatar
codezwjava committed
450
        if (teamNumInfoBuyId.getGoldTreeNum() == 0) {
codezwjava's avatar
codezwjava committed
451
            teamNumInfoBuyId.setGoldTreeNum(teamNumInfoBuyId.getGoldTreeNum());
codezwjava's avatar
codezwjava committed
452
        } else {
codezwjava's avatar
codezwjava committed
453 454 455 456 457 458
            //黄金树用户数量 - 1
            teamNumInfoBuyId.setGoldTreeNum(teamNumInfoBuyId.getGoldTreeNum() - 1);
        }
        //农场主数量 + 1
        teamNumInfoBuyId.setFarmerNum(teamNumInfoBuyId.getFarmerNum() + 1);
        teamUserInfoMapper.updateById(teamNumInfoBuyId);
codezwjava's avatar
codezwjava committed
459
        if (!sysInviteCode1.equals(inviteUserId) || !sysInviteCode2.equals(inviteUserId)) {
codezwjava's avatar
codezwjava committed
460 461 462 463 464 465 466 467
            return;
        }
        //递归向上修改团队用户信息表
        teamUserInfoGoldTreeToFarmer(beinvitedCodeUserId);
    }

    /**
     * 团队用户表数据维护(白银树用户升级至黄金树用户时)
codezwjava's avatar
codezwjava committed
468
     *
codezwjava's avatar
codezwjava committed
469 470 471 472 473 474 475
     * @param inviteUserId 邀请人userid
     */
    private void teamUserInfoSilverToGoldTree(String inviteUserId) {
        //邀请人的团队信息表对象
        TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
        //邀请人的用户表对象
        User byUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());
codezwjava's avatar
codezwjava committed
476 477

        String beinvitedCodeUserId = "";
478
        String inviteCode = byUserId.getBeInvitedCode();
codezwjava's avatar
codezwjava committed
479
        if (!sysInviteCode1.equals(inviteUserId) || !sysInviteCode2.equals(inviteUserId)) {
codezwjava's avatar
codezwjava committed
480 481 482
            //通过邀请人的用户信息获取邀请人的推荐人邀请码
            beinvitedCodeUserId = usersMapper.getByBeInvitedCode(inviteCode).getUserId();
        }
codezwjava's avatar
codezwjava committed
483
        //通过邀请人的用户信息获取邀请人的推荐人邀请码
codezwjava's avatar
codezwjava committed
484
        //String beinvitedCodeUserId = usersMapper.getByBeInvitedCode(byUserId.getBeInvitedCode()).getUserId();
codezwjava's avatar
codezwjava committed
485
        //邀请人团队信息表中白银树用户数量 = 0 时,白银树用户数量不用变化,否则白银树用户数量 - 1
codezwjava's avatar
codezwjava committed
486
        if (teamNumInfoBuyId.getSilverTreeNum() == 0) {
codezwjava's avatar
codezwjava committed
487
            teamNumInfoBuyId.setSilverTreeNum(teamNumInfoBuyId.getSilverTreeNum());
codezwjava's avatar
codezwjava committed
488
        } else {
codezwjava's avatar
codezwjava committed
489
            //白银树用户数量 - 1
codezwjava's avatar
codezwjava committed
490
            teamNumInfoBuyId.setSilverTreeNum(teamNumInfoBuyId.getSilverTreeNum() - 1);
codezwjava's avatar
codezwjava committed
491 492 493 494
        }
        //黄金树用户数量 - 1
        teamNumInfoBuyId.setGoldTreeNum(teamNumInfoBuyId.getGoldTreeNum() + 1);
        teamUserInfoMapper.updateById(teamNumInfoBuyId);
codezwjava's avatar
codezwjava committed
495
        if (!sysInviteCode1.equals(inviteUserId) || !sysInviteCode2.equals(inviteUserId)) {
codezwjava's avatar
codezwjava committed
496 497 498 499 500 501 502 503
            return;
        }
        //递归向上修改团队用户信息表
        teamUserInfoSilverToGoldTree(beinvitedCodeUserId);
    }

    /**
     * 团队用户表数据维护(青铜树用户升级至白银树用户时)
codezwjava's avatar
codezwjava committed
504
     *
codezwjava's avatar
codezwjava committed
505 506 507 508 509 510 511
     * @param inviteUserId 邀请人userid
     */
    private void teamUserInfoBronzeToSilver(String inviteUserId) {
        //邀请人的团队信息表对象
        TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
        //邀请人的用户表对象
        User byUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());
codezwjava's avatar
codezwjava committed
512 513

        String beinvitedCodeUserId = "";
514
        String inviteCode = byUserId.getBeInvitedCode();
codezwjava's avatar
codezwjava committed
515
        if (!sysInviteCode1.equals(inviteUserId) || !sysInviteCode2.equals(inviteUserId)) {
codezwjava's avatar
codezwjava committed
516 517 518
            //通过邀请人的用户信息获取邀请人的推荐人邀请码
            beinvitedCodeUserId = usersMapper.getByBeInvitedCode(inviteCode).getUserId();
        }
codezwjava's avatar
codezwjava committed
519
        //通过邀请人的用户信息获取邀请人的推荐人邀请码
codezwjava's avatar
codezwjava committed
520
        //String beinvitedCodeUserId = usersMapper.getByBeInvitedCode(byUserId.getBeInvitedCode()).getUserId();
codezwjava's avatar
codezwjava committed
521
        //邀请人团队信息表中青铜树用户数量 = 0 时,青铜树用户数量不用变化,否则青铜树用户数量 - 1
codezwjava's avatar
codezwjava committed
522
        if (teamNumInfoBuyId.getBronzeTreeNum() == 0) {
codezwjava's avatar
codezwjava committed
523
            teamNumInfoBuyId.setBronzeTreeNum(teamNumInfoBuyId.getBronzeTreeNum());
codezwjava's avatar
codezwjava committed
524
        } else {
codezwjava's avatar
codezwjava committed
525
            //青铜树用户数量 - 1
codezwjava's avatar
codezwjava committed
526
            teamNumInfoBuyId.setBronzeTreeNum(teamNumInfoBuyId.getBronzeTreeNum() - 1);
codezwjava's avatar
codezwjava committed
527 528 529 530
        }
        //白银树用户数量+1
        teamNumInfoBuyId.setSilverTreeNum(teamNumInfoBuyId.getSilverTreeNum() + 1);
        teamUserInfoMapper.updateById(teamNumInfoBuyId);
codezwjava's avatar
codezwjava committed
531
        if (!sysInviteCode1.equals(inviteUserId) || !sysInviteCode2.equals(inviteUserId)) {
codezwjava's avatar
codezwjava committed
532 533 534 535 536 537 538 539
            return;
        }
        //递归向上修改团队用户信息表
        teamUserInfoBronzeToSilver(beinvitedCodeUserId);
    }

    /**
     * 团队用户表数据维护(幼苗用户升级至青铜用户时)
codezwjava's avatar
codezwjava committed
540
     *
codezwjava's avatar
codezwjava committed
541 542 543 544 545 546 547
     * @param inviteUserId 邀请人userid
     */
    private void teamUserInfoSeedToBronze(String inviteUserId) {
        //邀请人的团队信息表对象
        TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
        //邀请人的用户表对象
        User byUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());
codezwjava's avatar
codezwjava committed
548 549

        String beinvitedCodeUserId = "";
550
        String inviteCode = byUserId.getBeInvitedCode();
codezwjava's avatar
codezwjava committed
551
        if (!sysInviteCode1.equals(inviteUserId) || !sysInviteCode2.equals(inviteUserId)) {
codezwjava's avatar
codezwjava committed
552 553 554
            //通过邀请人的用户信息获取邀请人的推荐人邀请码
            beinvitedCodeUserId = usersMapper.getByBeInvitedCode(inviteCode).getUserId();
        }
codezwjava's avatar
codezwjava committed
555
        //通过邀请人的用户信息获取邀请人的推荐人邀请码
codezwjava's avatar
codezwjava committed
556
        //String beinvitedCodeUserId = usersMapper.getByBeInvitedCode(byUserId.getBeInvitedCode()).getUserId();
codezwjava's avatar
codezwjava committed
557
        //邀请人团队信息表中幼苗用户数量 = 0 时,幼苗用户数量不用变化,否则幼苗用户数量 - 1
codezwjava's avatar
codezwjava committed
558
        if (teamNumInfoBuyId.getSeedlingNum() == 0) {
codezwjava's avatar
codezwjava committed
559
            teamNumInfoBuyId.setSeedlingNum(teamNumInfoBuyId.getSeedlingNum());
codezwjava's avatar
codezwjava committed
560
        } else {
codezwjava's avatar
codezwjava committed
561
            //幼苗用户数量-1
codezwjava's avatar
codezwjava committed
562
            teamNumInfoBuyId.setSeedlingNum(teamNumInfoBuyId.getSeedlingNum() - 1);
codezwjava's avatar
codezwjava committed
563 564 565 566
        }
        //邀请人的团队用户信息表中青铜树数量 + 1
        teamNumInfoBuyId.setBronzeTreeNum(teamNumInfoBuyId.getBronzeTreeNum() + 1);
        teamUserInfoMapper.updateById(teamNumInfoBuyId);
codezwjava's avatar
codezwjava committed
567
        if (!sysInviteCode1.equals(inviteUserId) || !sysInviteCode2.equals(inviteUserId)) {
codezwjava's avatar
codezwjava committed
568 569 570 571 572 573 574 575
            return;
        }
        //递归向上修改团队用户信息表
        teamUserInfoSeedToBronze(beinvitedCodeUserId);
    }

    /**
     * 团队用户表数据维护(普通用户升级至幼苗用户时)
codezwjava's avatar
codezwjava committed
576
     *
codezwjava's avatar
codezwjava committed
577 578
     * @param inviteUserId 邀请人userid
     */
codezwjava's avatar
codezwjava committed
579
    private void teamUserInfoNormalToSeed(String inviteUserId) {
codezwjava's avatar
codezwjava committed
580 581 582 583
        //邀请人的团队信息表对象
        TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
        //邀请人的用户表对象
        User intiveUserByUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());
codezwjava's avatar
codezwjava committed
584 585

        String beinvitedCodeUserId = "";
586 587
        //邀请人的推荐人邀请码
        String inviteCode = intiveUserByUserId.getBeInvitedCode();
codezwjava's avatar
codezwjava committed
588
        if (!sysInviteCode1.equals(inviteUserId) || !sysInviteCode2.equals(inviteUserId)) {
codezwjava's avatar
codezwjava committed
589
            //通过邀请人的用户信息获取邀请人的推荐人邀请码
codezwjava's avatar
codezwjava committed
590 591 592 593
            User byBeInvitedCode = usersMapper.getByBeInvitedCode(inviteCode);
            if (null != byBeInvitedCode) {
                beinvitedCodeUserId = byBeInvitedCode.getUserId();
            }
codezwjava's avatar
codezwjava committed
594 595
        }
        if (teamNumInfoBuyId.getNormalUserNum() == 0) {
codezwjava's avatar
codezwjava committed
596
            teamNumInfoBuyId.setNormalUserNum(teamNumInfoBuyId.getNormalUserNum());
codezwjava's avatar
codezwjava committed
597
        } else {
codezwjava's avatar
codezwjava committed
598
            //普通用户数量-1
codezwjava's avatar
codezwjava committed
599
            teamNumInfoBuyId.setNormalUserNum(teamNumInfoBuyId.getNormalUserNum() - 1);
codezwjava's avatar
codezwjava committed
600 601
        }
        //邀请人的团队用户信息表中幼苗数量 + 1
codezwjava's avatar
codezwjava committed
602
        //第一波用户是谁邀请的
codezwjava's avatar
codezwjava committed
603 604
        teamNumInfoBuyId.setSeedlingNum(teamNumInfoBuyId.getSeedlingNum() + 1);
        teamUserInfoMapper.updateById(teamNumInfoBuyId);
codezwjava's avatar
codezwjava committed
605
        if (!sysInviteCode1.equals(inviteUserId) || !sysInviteCode2.equals(inviteUserId)) {
codezwjava's avatar
codezwjava committed
606 607 608
            return;
        }
        //递归向上修改团队用户信息表
codezwjava's avatar
codezwjava committed
609 610 611
        if (!"".equals(beinvitedCodeUserId)) {
            teamUserInfoNormalToSeed(beinvitedCodeUserId);
        }
codezwjava's avatar
codezwjava committed
612
    }
codezwjava's avatar
codezwjava committed
613 614 615 616

    /**
     * 培育奖给到上级用户
     *
617
     * @param userId       当前用户id
codezwjava's avatar
codezwjava committed
618 619 620
     * @param inviteUserId 上级用户id
     * @param level        当前用户升级后的等级
     */
621
    public void cultivatingPrizeToInvitedUser(String userId, String inviteUserId, int level) {
codezwjava's avatar
codezwjava committed
622
        //当前用户的培育奖记录
623
        CultivatingPrizeInfo cultivatingPrizeInfo = cultivatingPrizeInfoMapper.getOneByUserId(userId);
codezwjava's avatar
codezwjava committed
624
        //判断当前用户等级
codezwjava's avatar
codezwjava committed
625
        if (1 == level) {
codezwjava's avatar
codezwjava committed
626
            //获取等级对应的培育奖记录状态
codezwjava's avatar
codezwjava committed
627 628 629
            int seedling = cultivatingPrizeInfo.getSeedling();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();
codezwjava's avatar
codezwjava committed
630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654
            if (0 == seedling) {
                //1、判断推荐人的等级是否大与当前用户等级
                User inviteUser = usersMapper.getByUserId(inviteUserId);
                int inviteUserLevel = inviteUser.getUserLevel();
                if (null != inviteUser) {
                    if (inviteUserLevel > level) {
                        //2.交易流水新增一条数据
                        TradeRecord tradeRecord = new TradeRecord();
                        tradeRecord.setUserId(inviteUserId);
                        tradeRecord.setMoney(cultivatingPrize);
                        tradeRecord.setTradeNo(null);
                        tradeRecord.setStatus(0);
                        tradeRecord.setTradeType(TradeRecordEnum.CULTIVATING_PRIZE.getCode());
                        tradeRecordMapper.add(tradeRecord);

                        //3.修改培育奖记录状态 ==1
                        seedling = 1;
                        cultivatingPrizeInfo.setSeedling(seedling);
                        cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
                    } else {
                        //3.修改培育奖记录状态 ==2
                        seedling = 2;
                        cultivatingPrizeInfo.setSeedling(seedling);
                        cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
                    }
codezwjava's avatar
codezwjava committed
655

codezwjava's avatar
codezwjava committed
656
                }
codezwjava's avatar
codezwjava committed
657 658
            }
        } else if (2 == level) {
codezwjava's avatar
codezwjava committed
659
            //培育奖记录状态
codezwjava's avatar
codezwjava committed
660 661 662 663
            int bronzeTree = cultivatingPrizeInfo.getBronzeTree();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

codezwjava's avatar
codezwjava committed
664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690
            if (0 == bronzeTree) {
                //1、判断推荐人的等级是否大与当前用户等级
                User inviteUser = usersMapper.getByUserId(inviteUserId);
                if (null != inviteUser) {
                    int inviteUserLevel = inviteUser.getUserLevel();
                    if (inviteUserLevel > level) {
                        //2.交易流水新增一条数据
                        TradeRecord tradeRecord = new TradeRecord();
                        tradeRecord.setUserId(inviteUserId);
                        tradeRecord.setMoney(cultivatingPrize);
                        tradeRecord.setTradeNo(null);
                        tradeRecord.setStatus(0);
                        tradeRecord.setTradeType(TradeRecordEnum.CULTIVATING_PRIZE.getCode());
                        tradeRecordMapper.add(tradeRecord);

                        //3.修改培育奖记录状态 ==1
                        bronzeTree = 1;
                        cultivatingPrizeInfo.setBronzeTree(bronzeTree);
                        cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
                    } else {
                        //3.修改培育奖记录状态 ==2
                        bronzeTree = 2;
                        cultivatingPrizeInfo.setBronzeTree(bronzeTree);
                        cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
                    }

                }
codezwjava's avatar
codezwjava committed
691 692
            }
        } else if (3 == level) {
codezwjava's avatar
codezwjava committed
693
            //获取当前等级的培育奖状态
codezwjava's avatar
codezwjava committed
694 695 696 697
            int silverTree = cultivatingPrizeInfo.getSilverTree();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

codezwjava's avatar
codezwjava committed
698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723
            if (0 == silverTree) {
                //1、判断推荐人的等级是否大与当前用户等级
                User inviteUser = usersMapper.getByUserId(inviteUserId);
                if (null != inviteUser) {
                    int inviteUserLevel = inviteUser.getUserLevel();
                    if (inviteUserLevel > level) {
                        //2.交易流水新增一条数据
                        TradeRecord tradeRecord = new TradeRecord();
                        tradeRecord.setUserId(inviteUserId);
                        tradeRecord.setMoney(cultivatingPrize);
                        tradeRecord.setTradeNo(null);
                        tradeRecord.setStatus(0);
                        tradeRecord.setTradeType(TradeRecordEnum.CULTIVATING_PRIZE.getCode());
                        tradeRecordMapper.add(tradeRecord);

                        //3.修改培育奖记录状态 ==1
                        silverTree = 1;
                        cultivatingPrizeInfo.setBronzeTree(silverTree);
                        cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
                    } else {
                        //3.修改培育奖记录状态 ==2
                        silverTree = 2;
                        cultivatingPrizeInfo.setBronzeTree(silverTree);
                        cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
                    }
                }
codezwjava's avatar
codezwjava committed
724 725 726 727 728 729
            }
        } else if (4 == level) {
            int goldTree = cultivatingPrizeInfo.getGoldTree();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

codezwjava's avatar
codezwjava committed
730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752
            if (0 == goldTree) {
                //上级用户
                User inviteUser = usersMapper.getByUserId(inviteUserId);
                if (null != inviteUser) {
                    //2.交易流水新增一条数据
                    TradeRecord tradeRecord = new TradeRecord();
                    tradeRecord.setUserId(inviteUserId);
                    tradeRecord.setMoney(cultivatingPrize);
                    tradeRecord.setTradeNo(null);
                    tradeRecord.setStatus(0);
                    tradeRecord.setTradeType(TradeRecordEnum.CULTIVATING_PRIZE.getCode());
                    tradeRecordMapper.add(tradeRecord);

                    //3.修改培育奖记录状态 ==1
                    goldTree = 1;
                    cultivatingPrizeInfo.setGoldTree(goldTree);
                    cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
                } else {
                    //3.修改培育奖记录状态 ==2
                    goldTree = 2;
                    cultivatingPrizeInfo.setGoldTree(goldTree);
                    cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
                }
codezwjava's avatar
codezwjava committed
753 754 755 756 757 758
            }
        } else if (5 == level) {
            int farmer = cultivatingPrizeInfo.getFarmer();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

codezwjava's avatar
codezwjava committed
759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781
            if (0 == farmer) {
                //上级用户
                User inviteUser = usersMapper.getByUserId(inviteUserId);
                if (null != inviteUser) {
                    //2.交易流水新增一条数据
                    TradeRecord tradeRecord = new TradeRecord();
                    tradeRecord.setUserId(inviteUserId);
                    tradeRecord.setMoney(cultivatingPrize);
                    tradeRecord.setTradeNo(null);
                    tradeRecord.setStatus(0);
                    tradeRecord.setTradeType(TradeRecordEnum.CULTIVATING_PRIZE.getCode());
                    tradeRecordMapper.add(tradeRecord);

                    //3.修改培育奖记录状态 ==1
                    farmer = 1;
                    cultivatingPrizeInfo.setGoldTree(farmer);
                    cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
                } else {
                    //3.修改培育奖记录状态 ==2
                    farmer = 2;
                    cultivatingPrizeInfo.setGoldTree(farmer);
                    cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
                }
codezwjava's avatar
codezwjava committed
782 783 784 785 786 787
            }
        } else if (6 == level) {
            int forestStart = cultivatingPrizeInfo.getForestStart();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

codezwjava's avatar
codezwjava committed
788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810
            if (0 == forestStart) {
                //上级用户
                User inviteUser = usersMapper.getByUserId(inviteUserId);
                if (null != inviteUser) {
                    //2.交易流水新增一条数据
                    TradeRecord tradeRecord = new TradeRecord();
                    tradeRecord.setUserId(inviteUserId);
                    tradeRecord.setMoney(cultivatingPrize);
                    tradeRecord.setTradeNo(null);
                    tradeRecord.setStatus(0);
                    tradeRecord.setTradeType(TradeRecordEnum.CULTIVATING_PRIZE.getCode());
                    tradeRecordMapper.add(tradeRecord);

                    //3.修改培育奖记录状态 ==1
                    forestStart = 1;
                    cultivatingPrizeInfo.setGoldTree(forestStart);
                    cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
                } else {
                    //3.修改培育奖记录状态 ==2
                    forestStart = 2;
                    cultivatingPrizeInfo.setGoldTree(forestStart);
                    cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
                }
codezwjava's avatar
codezwjava committed
811 812 813 814 815 816
            }
        } else if (7 == level) {
            int partner = cultivatingPrizeInfo.getPartner();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

codezwjava's avatar
codezwjava committed
817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839
            if (0 == partner) {
                //上级用户
                User inviteUser = usersMapper.getByUserId(inviteUserId);
                if (null != inviteUser) {
                    //2.交易流水新增一条数据
                    TradeRecord tradeRecord = new TradeRecord();
                    tradeRecord.setUserId(inviteUserId);
                    tradeRecord.setMoney(cultivatingPrize);
                    tradeRecord.setTradeNo(null);
                    tradeRecord.setStatus(0);
                    tradeRecord.setTradeType(TradeRecordEnum.CULTIVATING_PRIZE.getCode());
                    tradeRecordMapper.add(tradeRecord);

                    //3.修改培育奖记录状态 ==1
                    partner = 1;
                    cultivatingPrizeInfo.setGoldTree(partner);
                    cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
                } else {
                    //3.修改培育奖记录状态 ==2
                    partner = 2;
                    cultivatingPrizeInfo.setGoldTree(partner);
                    cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
                }
codezwjava's avatar
codezwjava committed
840 841 842
            }
        }
    }
843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859

    //同步accountInfo 和TeamPerformance 的用户等级
    public void accountAndTeamPerformanceUserLevelUpdate(String userId){

        User userByUserId = usersMapper.getUserByUserId(userId);

        if (null != userByUserId){
            int userLevel = userByUserId.getUserLevel();
            AccountInfo accountInfoByUserId = accountMapper.getByUserId(userId);
            accountInfoByUserId.setUserLevel(userLevel);
            TeamPerformance teamPerformanceByUserId = teamPerformanceMapper.getByUserId(userId);
            teamPerformanceByUserId.setUserLevel(userLevel);

            accountMapper.edit(accountInfoByUserId);
            teamPerformanceMapper.edit(teamPerformanceByUserId);
        }
    }
codezwjava's avatar
codezwjava committed
860
}
codezwjava's avatar
codezwjava committed
861