UserLevelServiceImpl.java 39.2 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;
codezwjava's avatar
codezwjava committed
6 7
import cn.wisenergy.service.app.UserLevelService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
8
import com.xxl.job.core.handler.annotation.XxlJob;
codezwjava's avatar
codezwjava committed
9 10
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
codezwjava's avatar
codezwjava committed
11
import org.springframework.data.annotation.Id;
codezwjava's avatar
codezwjava committed
12 13 14 15
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
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 43 44 45 46 47 48
    @Autowired
    private TradeRecordMapper tradeRecordMapper;

    @Autowired
    private AccountMapper accountMapper;

    @Autowired
    private CultivatingPrizeMapper cultivatingPrizeMapper;

    @Autowired
    private CultivatingPrizeInfoMapper cultivatingPrizeInfoMapper;

49 50 51 52 53 54 55 56 57 58
    @Autowired
    private OrderMapper orderMapper;


//    public void
    //获取订单
    @XxlJob(value = "userLevelUpjobhandler")
    @Override
    public void userLevelUp(){
        //1.获取数据库订单数据
59
        log.info("------------------------用户升级开始----------------------------------");
60 61 62 63 64 65 66 67
        List<OrderInfo> ordersByLevelStatus = orderMapper.getByLevelStatus(0);
        for (OrderInfo orderInfo : ordersByLevelStatus) {
            String buyerId = orderInfo.getBuyerId();
            userLevelUpgrade(buyerId);
            //当前订单升级状态置为1
            orderInfo.setLevelStatus(1);
            orderMapper.updateById(orderInfo);
        }
68
        log.info("-------------------------用户升级结束--------------------------------------");
69 70

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

        }
        //用户等级升级为青铜树 2
        //当前用户等级为幼苗用户(1)时 且当前用户直推人数中幼苗等级>=5人<20人时
codezwjava's avatar
codezwjava committed
129 130
        if (userLevel == 1 && recommendUser.getSeedlingNum() >= 5 && recommendUser.getSeedlingNum() < 20) {
            //用户升级成功
codezwjava's avatar
codezwjava committed
131
            user.setUserLevel(2);
132
            usersMapper.updateById(user);
codezwjava's avatar
codezwjava committed
133
            //用户被邀请码为 1 时 该用户没有邀请人
codezwjava's avatar
codezwjava committed
134
            if ("1".equals(user.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
135 136
                return;
            } else {
codezwjava's avatar
codezwjava committed
137 138
                //若邀请人直推用户信息中的幼苗用户数量为0是则不用变化,否则幼苗用户数量-1
                if (inviteRecommendUser.getSeedlingNum() == 0) {
codezwjava's avatar
codezwjava committed
139
                    inviteRecommendUser.setSeedlingNum(inviteRecommendUser.getSeedlingNum());
codezwjava's avatar
codezwjava committed
140
                } else {
codezwjava's avatar
codezwjava committed
141
                    //幼苗用户-1
codezwjava's avatar
codezwjava committed
142
                    inviteRecommendUser.setSeedlingNum(inviteRecommendUser.getSeedlingNum() - 1);
codezwjava's avatar
codezwjava committed
143 144
                }
                //邀请人直推用户信息中的青铜树用户数量为+1
codezwjava's avatar
codezwjava committed
145
                inviteRecommendUser.setBronzeTreeNum(inviteRecommendUser.getBronzeTreeNum() + 1);
codezwjava's avatar
codezwjava committed
146 147 148
                recommendUserMapper.updateById(inviteRecommendUser);
                //团队用户表数据维护
                teamUserInfoSeedToBronze(inviteUserId);
codezwjava's avatar
codezwjava committed
149 150 151
                //上级用户获得幼苗等级的培育奖
                int level = 2;
                cultivatingPrizeToInvitedUser(userId, inviteUserId, level);
codezwjava's avatar
codezwjava committed
152 153 154 155 156
                //用户升级成功时,进行邀请人等级自查是否达到升级条件
                userLevelUpgrade(inviteUserId);
            }
        }
        //用户等级升级为白银树 3
codezwjava's avatar
codezwjava committed
157
        if (userLevel == 2 && recommendUser.getSeedlingNum() >= 20 && recommendUser.getSeedlingNum() < 50) {
codezwjava's avatar
codezwjava committed
158
            user.setUserLevel(3);
159
            usersMapper.updateById(user);
codezwjava's avatar
codezwjava committed
160
            //用户被邀请码为 1 时 该用户没有邀请人
codezwjava's avatar
codezwjava committed
161
            if ("1".equals(user.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
162
                return;
codezwjava's avatar
codezwjava committed
163
            } else {
codezwjava's avatar
codezwjava committed
164 165
                //推荐人直推信息表数据维护
                //若邀请人直推用户信息中的青铜树用户数量为0是则不用变化,否则青铜树用户数量-1
codezwjava's avatar
codezwjava committed
166
                if (inviteRecommendUser.getBronzeTreeNum() == 0) {
codezwjava's avatar
codezwjava committed
167
                    inviteRecommendUser.setBronzeTreeNum(inviteRecommendUser.getBronzeTreeNum());
codezwjava's avatar
codezwjava committed
168
                } else {
codezwjava's avatar
codezwjava committed
169 170 171 172
                    //青铜树用户-1
                    inviteRecommendUser.setBronzeTreeNum(inviteRecommendUser.getBronzeTreeNum() - 1);
                }
                //邀请人直推用户信息中的白银用户数量 + 1
codezwjava's avatar
codezwjava committed
173
                inviteRecommendUser.setSilverTreeNum(inviteRecommendUser.getSilverTreeNum() + 1);
codezwjava's avatar
codezwjava committed
174 175 176
                recommendUserMapper.updateById(inviteRecommendUser);
                //团队用户表数据维护
                teamUserInfoBronzeToSilver(inviteUserId);
codezwjava's avatar
codezwjava committed
177 178 179
                //上级用户获得幼苗等级的培育奖
                int level = 3;
                cultivatingPrizeToInvitedUser(userId, inviteUserId, level);
codezwjava's avatar
codezwjava committed
180 181 182 183 184 185 186
                //用户升级成功时,进行邀请人等级自查是否达到升级条件
                userLevelUpgrade(inviteUserId);
            }

        }
        //用户等级升级为黄金树 4
        //:todo 条件:团队中青铜树数量>=20
codezwjava's avatar
codezwjava committed
187
        if (userLevel == 3 && recommendUser.getSeedlingNum() >= 50
codezwjava's avatar
codezwjava committed
188
                && recommendUser.getSilverTreeNum() >= 4
codezwjava's avatar
codezwjava committed
189
                && teamUserInfoMapperByUserId.getBronzeTreeNum() >= 20) {
codezwjava's avatar
codezwjava committed
190
            user.setUserLevel(4);
191
            usersMapper.updateById(user);
codezwjava's avatar
codezwjava committed
192
            //用户被邀请码为 1 时 该用户没有邀请人
codezwjava's avatar
codezwjava committed
193
            if ("1".equals(user.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
194
                return;
codezwjava's avatar
codezwjava committed
195
            } else {
codezwjava's avatar
codezwjava committed
196 197
                //推荐人直推信息表数据维护
                //若邀请人直推用户信息中的白银树用户数量为0是则不用变化,否则白银树用户数量-1
codezwjava's avatar
codezwjava committed
198
                if (inviteRecommendUser.getSilverTreeNum() == 0) {
codezwjava's avatar
codezwjava committed
199
                    inviteRecommendUser.setSilverTreeNum(inviteRecommendUser.getSilverTreeNum());
codezwjava's avatar
codezwjava committed
200
                } else {
codezwjava's avatar
codezwjava committed
201 202 203 204 205 206 207 208
                    //白银树用户-1
                    inviteRecommendUser.setSilverTreeNum(inviteRecommendUser.getSilverTreeNum() - 1);
                }
                //邀请人直推用户信息中的黄金用户数量 + 1
                inviteRecommendUser.setGoldTreeNum(inviteRecommendUser.getGoldTreeNum() + 1);
                recommendUserMapper.updateById(inviteRecommendUser);
                //团队用户表数据维护
                teamUserInfoSilverToGoldTree(inviteUserId);
codezwjava's avatar
codezwjava committed
209 210 211
                //上级用户获得幼苗等级的培育奖
                int level = 4;
                cultivatingPrizeToInvitedUser(userId, inviteUserId, level);
codezwjava's avatar
codezwjava committed
212 213 214 215 216 217 218 219
                //用户升级成功时,进行邀请人等级自查是否达到升级条件
                userLevelUpgrade(inviteUserId);
            }
        }
        //用户等级级升级为农场主 5
        //:todo 条件:团队中白银树数量>=40
        if (userLevel == 4 && recommendUser.getSeedlingNum() >= 70
                && recommendUser.getGoldTreeNum() >= 5
codezwjava's avatar
codezwjava committed
220
                && teamUserInfoMapperByUserId.getSilverTreeNum() >= 40) {
codezwjava's avatar
codezwjava committed
221
            user.setUserLevel(5);
222
            usersMapper.updateById(user);
codezwjava's avatar
codezwjava committed
223
            //用户被邀请码为 1 时 该用户没有邀请人
codezwjava's avatar
codezwjava committed
224
            if ("1".equals(user.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
225
                return;
codezwjava's avatar
codezwjava committed
226
            } else {
codezwjava's avatar
codezwjava committed
227 228
                //推荐人直推信息表数据维护
                //若邀请人直推用户信息中的黄金树用户数量为0是则不用变化,否则黄金树用户数量-1
codezwjava's avatar
codezwjava committed
229
                if (inviteRecommendUser.getGoldTreeNum() == 0) {
codezwjava's avatar
codezwjava committed
230
                    inviteRecommendUser.setGoldTreeNum(inviteRecommendUser.getGoldTreeNum());
codezwjava's avatar
codezwjava committed
231
                } else {
codezwjava's avatar
codezwjava committed
232 233 234 235 236 237 238 239
                    //黄金树用户-1
                    inviteRecommendUser.setGoldTreeNum(inviteRecommendUser.getGoldTreeNum() - 1);
                }
                //邀请人直推用户信息中的农场主用户数量 + 1
                inviteRecommendUser.setGoldTreeNum(inviteRecommendUser.getFarmerNum() + 1);
                recommendUserMapper.updateById(inviteRecommendUser);
                //团队用户表数据维护
                teamUserInfoGoldTreeToFarmer(inviteUserId);
codezwjava's avatar
codezwjava committed
240 241 242
                //上级用户获得幼苗等级的培育奖
                int level = 5;
                cultivatingPrizeToInvitedUser(userId, inviteUserId, level);
codezwjava's avatar
codezwjava committed
243 244 245 246 247 248 249 250 251 252
                //用户升级成功时,进行邀请人等级自查是否达到升级条件
                userLevelUpgrade(inviteUserId);
            }
        }

        //用户等级升级为森林之星 6
        // todo: 条件:团队中白银树数量>=70 && 条件:团队中黄金树数量>=30
        if (userLevel == 5 && recommendUser.getSeedlingNum() >= 80
                && recommendUser.getFarmerNum() >= 5
                && teamUserInfoMapperByUserId.getSilverTreeNum() >= 70
codezwjava's avatar
codezwjava committed
253
                && teamUserInfoMapperByUserId.getGoldTreeNum() >= 30) {
codezwjava's avatar
codezwjava committed
254
            user.setUserLevel(6);
255
            usersMapper.updateById(user);
codezwjava's avatar
codezwjava committed
256
            //用户被邀请码为 1 时 该用户没有邀请人
codezwjava's avatar
codezwjava committed
257
            if ("1".equals(user.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
258
                return;
codezwjava's avatar
codezwjava committed
259
            } else {
codezwjava's avatar
codezwjava committed
260 261
                //推荐人直推信息表数据维护
                //若邀请人直推用户信息中的农场主用户数量为0是则不用变化,否则农场主用户数量-1
codezwjava's avatar
codezwjava committed
262
                if (inviteRecommendUser.getFarmerNum() == 0) {
codezwjava's avatar
codezwjava committed
263
                    inviteRecommendUser.setFarmerNum(inviteRecommendUser.getFarmerNum());
codezwjava's avatar
codezwjava committed
264
                } else {
codezwjava's avatar
codezwjava committed
265 266 267 268 269 270 271 272
                    //农场主用户-1
                    inviteRecommendUser.setFarmerNum(inviteRecommendUser.getFarmerNum() - 1);
                }
                //邀请人直推用户信息中的森林之星用户数量 + 1
                inviteRecommendUser.setForestStartNum(inviteRecommendUser.getForestStartNum() + 1);
                recommendUserMapper.updateById(inviteRecommendUser);
                //团队用户表数据维护
                teamUserInfoFarmerToForestStart(inviteUserId);
codezwjava's avatar
codezwjava committed
273 274 275
                //上级用户获得幼苗等级的培育奖
                int level = 6;
                cultivatingPrizeToInvitedUser(userId, inviteUserId, level);
codezwjava's avatar
codezwjava committed
276 277 278 279 280 281 282 283 284
                //用户升级成功时,进行邀请人等级自查是否达到升级条件
                userLevelUpgrade(inviteUserId);
            }
        }
        //用户等级升级为西田森合伙人 7
        //:todo 条件:团队中白银树数量>=90 && 条件:团队中黄金树数量>=50 条件:团队中农场主数量>=30
        if (userLevel == 6 && recommendUser.getSeedlingNum() >= 100
                && recommendUser.getForestStartNum() >= 1
                && teamUserInfoMapperByUserId.getSilverTreeNum() >= 90
codezwjava's avatar
codezwjava committed
285
                && teamUserInfoMapperByUserId.getFarmerNum() >= 30) {
codezwjava's avatar
codezwjava committed
286
            user.setUserLevel(7);
287
            usersMapper.updateById(user);
codezwjava's avatar
codezwjava committed
288
            //用户被邀请码为 1 时 该用户没有邀请人
codezwjava's avatar
codezwjava committed
289
            if ("1".equals(user.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
290
                return;
codezwjava's avatar
codezwjava committed
291
            } else {
codezwjava's avatar
codezwjava committed
292 293
                //推荐人直推信息表数据维护
                //若邀请人直推用户信息中的森林之星用户数量为0是则不用变化,否则森林之星用户数量-1
codezwjava's avatar
codezwjava committed
294
                if (inviteRecommendUser.getForestStartNum() == 0) {
codezwjava's avatar
codezwjava committed
295
                    inviteRecommendUser.setForestStartNum(inviteRecommendUser.getForestStartNum());
codezwjava's avatar
codezwjava committed
296
                } else {
codezwjava's avatar
codezwjava committed
297 298 299 300 301 302 303 304
                    //森林之星用户-1
                    inviteRecommendUser.setForestStartNum(inviteRecommendUser.getForestStartNum() - 1);
                }
                //邀请人直推用户信息中的西田森合伙人用户数量 + 1
                inviteRecommendUser.setPartnerNum(inviteRecommendUser.getPartnerNum() + 1);
                recommendUserMapper.updateById(inviteRecommendUser);
                //团队用户表数据维护
                teamUserInfoForestStartToPartner(inviteUserId);
codezwjava's avatar
codezwjava committed
305 306 307
                //上级用户获得幼苗等级的培育奖
                int level = 7;
                cultivatingPrizeToInvitedUser(userId, inviteUserId, level);
codezwjava's avatar
codezwjava committed
308 309 310 311 312 313 314 315
                //用户升级成功时,进行邀请人等级自查是否达到升级条件
                userLevelUpgrade(inviteUserId);
            }
        }
    }

    /**
     * 团队用户表数据维护(森林之星用户升级至西田森合伙人用户时)
codezwjava's avatar
codezwjava committed
316
     *
codezwjava's avatar
codezwjava committed
317 318 319 320 321 322 323
     * @param inviteUserId 邀请人userid
     */
    private void teamUserInfoForestStartToPartner(String inviteUserId) {
        //邀请人的团队信息表对象
        TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
        //邀请人的用户表对象
        User byUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());
codezwjava's avatar
codezwjava committed
324 325

        String beinvitedCodeUserId = "";
326
        String inviteCode = byUserId.getBeInvitedCode();
codezwjava's avatar
codezwjava committed
327 328 329 330
        if (!"1".equals(inviteCode)) {
            //通过邀请人的用户信息获取邀请人的推荐人邀请码
            beinvitedCodeUserId = usersMapper.getByBeInvitedCode(inviteCode).getUserId();
        }
codezwjava's avatar
codezwjava committed
331
        //通过邀请人的用户信息获取邀请人的推荐人邀请码
codezwjava's avatar
codezwjava committed
332
        //String beinvitedCodeUserId = usersMapper.getByBeInvitedCode(byUserId.getBeInvitedCode()).getUserId();
codezwjava's avatar
codezwjava committed
333
        //邀请人团队信息表中森林之星用户数量 = 0 时,森林之星用户数量不用变化,否则森林之星用户数量 - 1
codezwjava's avatar
codezwjava committed
334
        if (teamNumInfoBuyId.getForestStartNum() == 0) {
codezwjava's avatar
codezwjava committed
335
            teamNumInfoBuyId.setForestStartNum(teamNumInfoBuyId.getForestStartNum());
codezwjava's avatar
codezwjava committed
336
        } else {
codezwjava's avatar
codezwjava committed
337 338 339 340 341 342
            //森林之星用户数量 - 1
            teamNumInfoBuyId.setForestStartNum(teamNumInfoBuyId.getForestStartNum() - 1);
        }
        //西田森合伙人用户数量 + 1
        teamNumInfoBuyId.setPartnerNum(teamNumInfoBuyId.getPartnerNum() + 1);
        teamUserInfoMapper.updateById(teamNumInfoBuyId);
codezwjava's avatar
codezwjava committed
343
        if ("1".equals(byUserId.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
344 345 346 347 348 349 350
            return;
        }
        teamUserInfoForestStartToPartner(beinvitedCodeUserId);
    }

    /**
     * 团队用户表数据维护(农场主用户升级至森林之星用户时)
codezwjava's avatar
codezwjava committed
351
     *
codezwjava's avatar
codezwjava committed
352 353 354 355 356 357 358
     * @param inviteUserId 邀请人userid
     */
    private void teamUserInfoFarmerToForestStart(String inviteUserId) {
        //邀请人的团队信息表对象
        TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
        //邀请人的用户表对象
        User byUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());
codezwjava's avatar
codezwjava committed
359 360

        String beinvitedCodeUserId = "";
361
        String inviteCode = byUserId.getBeInvitedCode();
codezwjava's avatar
codezwjava committed
362 363 364 365
        if (!"1".equals(inviteCode)) {
            //通过邀请人的用户信息获取邀请人的推荐人邀请码
            beinvitedCodeUserId = usersMapper.getByBeInvitedCode(inviteCode).getUserId();
        }
codezwjava's avatar
codezwjava committed
366
        //通过邀请人的用户信息获取邀请人的推荐人邀请码
codezwjava's avatar
codezwjava committed
367
        //String beinvitedCodeUserId = usersMapper.getByBeInvitedCode(byUserId.getBeInvitedCode()).getUserId();
codezwjava's avatar
codezwjava committed
368
        //邀请人团队信息表中农场主用户数量 = 0 时,农场主用户数量不用变化,否则农场主用户数量 - 1
codezwjava's avatar
codezwjava committed
369
        if (teamNumInfoBuyId.getFarmerNum() == 0) {
codezwjava's avatar
codezwjava committed
370
            teamNumInfoBuyId.setFarmerNum(teamNumInfoBuyId.getFarmerNum());
codezwjava's avatar
codezwjava committed
371
        } else {
codezwjava's avatar
codezwjava committed
372 373 374 375 376 377
            //农场主用户数量 - 1
            teamNumInfoBuyId.setFarmerNum(teamNumInfoBuyId.getFarmerNum() - 1);
        }
        //森林之星用户数量 + 1
        teamNumInfoBuyId.setForestStartNum(teamNumInfoBuyId.getForestStartNum() + 1);
        teamUserInfoMapper.updateById(teamNumInfoBuyId);
codezwjava's avatar
codezwjava committed
378
        if ("1".equals(byUserId.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
379 380 381 382 383 384 385 386
            return;
        }
        //递归向上修改团队用户信息表
        teamUserInfoFarmerToForestStart(beinvitedCodeUserId);
    }

    /**
     * 团队用户表数据维护(黄金树用户升级至农场主用户时)
codezwjava's avatar
codezwjava committed
387
     *
codezwjava's avatar
codezwjava committed
388 389 390 391 392 393 394
     * @param inviteUserId 邀请人userid
     */
    private void teamUserInfoGoldTreeToFarmer(String inviteUserId) {
        //邀请人的团队信息表对象
        TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
        //邀请人的用户表对象
        User byUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());
codezwjava's avatar
codezwjava committed
395 396

        String beinvitedCodeUserId = "";
397
        String inviteCode = byUserId.getBeInvitedCode();
codezwjava's avatar
codezwjava committed
398 399 400 401
        if (!"1".equals(inviteCode)) {
            //通过邀请人的用户信息获取邀请人的推荐人邀请码
            beinvitedCodeUserId = usersMapper.getByBeInvitedCode(inviteCode).getUserId();
        }
codezwjava's avatar
codezwjava committed
402
        //通过邀请人的用户信息获取邀请人的推荐人邀请码
codezwjava's avatar
codezwjava committed
403
        // String beinvitedCodeUserId = usersMapper.getByBeInvitedCode(byUserId.getBeInvitedCode()).getUserId();
codezwjava's avatar
codezwjava committed
404
        //邀请人团队信息表中黄金树用户数量 = 0 时,黄金树用户数量不用变化,否则黄金树用户数量 - 1
codezwjava's avatar
codezwjava committed
405
        if (teamNumInfoBuyId.getGoldTreeNum() == 0) {
codezwjava's avatar
codezwjava committed
406
            teamNumInfoBuyId.setGoldTreeNum(teamNumInfoBuyId.getGoldTreeNum());
codezwjava's avatar
codezwjava committed
407
        } else {
codezwjava's avatar
codezwjava committed
408 409 410 411 412 413
            //黄金树用户数量 - 1
            teamNumInfoBuyId.setGoldTreeNum(teamNumInfoBuyId.getGoldTreeNum() - 1);
        }
        //农场主数量 + 1
        teamNumInfoBuyId.setFarmerNum(teamNumInfoBuyId.getFarmerNum() + 1);
        teamUserInfoMapper.updateById(teamNumInfoBuyId);
codezwjava's avatar
codezwjava committed
414
        if ("1".equals(byUserId.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
415 416 417 418 419 420 421 422
            return;
        }
        //递归向上修改团队用户信息表
        teamUserInfoGoldTreeToFarmer(beinvitedCodeUserId);
    }

    /**
     * 团队用户表数据维护(白银树用户升级至黄金树用户时)
codezwjava's avatar
codezwjava committed
423
     *
codezwjava's avatar
codezwjava committed
424 425 426 427 428 429 430
     * @param inviteUserId 邀请人userid
     */
    private void teamUserInfoSilverToGoldTree(String inviteUserId) {
        //邀请人的团队信息表对象
        TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
        //邀请人的用户表对象
        User byUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());
codezwjava's avatar
codezwjava committed
431 432

        String beinvitedCodeUserId = "";
433
        String inviteCode = byUserId.getBeInvitedCode();
codezwjava's avatar
codezwjava committed
434 435 436 437
        if (!"1".equals(inviteCode)) {
            //通过邀请人的用户信息获取邀请人的推荐人邀请码
            beinvitedCodeUserId = usersMapper.getByBeInvitedCode(inviteCode).getUserId();
        }
codezwjava's avatar
codezwjava committed
438
        //通过邀请人的用户信息获取邀请人的推荐人邀请码
codezwjava's avatar
codezwjava committed
439
        //String beinvitedCodeUserId = usersMapper.getByBeInvitedCode(byUserId.getBeInvitedCode()).getUserId();
codezwjava's avatar
codezwjava committed
440
        //邀请人团队信息表中白银树用户数量 = 0 时,白银树用户数量不用变化,否则白银树用户数量 - 1
codezwjava's avatar
codezwjava committed
441
        if (teamNumInfoBuyId.getSilverTreeNum() == 0) {
codezwjava's avatar
codezwjava committed
442
            teamNumInfoBuyId.setSilverTreeNum(teamNumInfoBuyId.getSilverTreeNum());
codezwjava's avatar
codezwjava committed
443
        } else {
codezwjava's avatar
codezwjava committed
444
            //白银树用户数量 - 1
codezwjava's avatar
codezwjava committed
445
            teamNumInfoBuyId.setSilverTreeNum(teamNumInfoBuyId.getSilverTreeNum() - 1);
codezwjava's avatar
codezwjava committed
446 447 448 449
        }
        //黄金树用户数量 - 1
        teamNumInfoBuyId.setGoldTreeNum(teamNumInfoBuyId.getGoldTreeNum() + 1);
        teamUserInfoMapper.updateById(teamNumInfoBuyId);
codezwjava's avatar
codezwjava committed
450
        if ("1".equals(byUserId.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
451 452 453 454 455 456 457 458
            return;
        }
        //递归向上修改团队用户信息表
        teamUserInfoSilverToGoldTree(beinvitedCodeUserId);
    }

    /**
     * 团队用户表数据维护(青铜树用户升级至白银树用户时)
codezwjava's avatar
codezwjava committed
459
     *
codezwjava's avatar
codezwjava committed
460 461 462 463 464 465 466
     * @param inviteUserId 邀请人userid
     */
    private void teamUserInfoBronzeToSilver(String inviteUserId) {
        //邀请人的团队信息表对象
        TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
        //邀请人的用户表对象
        User byUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());
codezwjava's avatar
codezwjava committed
467 468

        String beinvitedCodeUserId = "";
469
        String inviteCode = byUserId.getBeInvitedCode();
codezwjava's avatar
codezwjava committed
470 471 472 473
        if (!"1".equals(inviteCode)) {
            //通过邀请人的用户信息获取邀请人的推荐人邀请码
            beinvitedCodeUserId = usersMapper.getByBeInvitedCode(inviteCode).getUserId();
        }
codezwjava's avatar
codezwjava committed
474
        //通过邀请人的用户信息获取邀请人的推荐人邀请码
codezwjava's avatar
codezwjava committed
475
        //String beinvitedCodeUserId = usersMapper.getByBeInvitedCode(byUserId.getBeInvitedCode()).getUserId();
codezwjava's avatar
codezwjava committed
476
        //邀请人团队信息表中青铜树用户数量 = 0 时,青铜树用户数量不用变化,否则青铜树用户数量 - 1
codezwjava's avatar
codezwjava committed
477
        if (teamNumInfoBuyId.getBronzeTreeNum() == 0) {
codezwjava's avatar
codezwjava committed
478
            teamNumInfoBuyId.setBronzeTreeNum(teamNumInfoBuyId.getBronzeTreeNum());
codezwjava's avatar
codezwjava committed
479
        } else {
codezwjava's avatar
codezwjava committed
480
            //青铜树用户数量 - 1
codezwjava's avatar
codezwjava committed
481
            teamNumInfoBuyId.setBronzeTreeNum(teamNumInfoBuyId.getBronzeTreeNum() - 1);
codezwjava's avatar
codezwjava committed
482 483 484 485
        }
        //白银树用户数量+1
        teamNumInfoBuyId.setSilverTreeNum(teamNumInfoBuyId.getSilverTreeNum() + 1);
        teamUserInfoMapper.updateById(teamNumInfoBuyId);
codezwjava's avatar
codezwjava committed
486
        if ("1".equals(byUserId.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
487 488 489 490 491 492 493 494
            return;
        }
        //递归向上修改团队用户信息表
        teamUserInfoBronzeToSilver(beinvitedCodeUserId);
    }

    /**
     * 团队用户表数据维护(幼苗用户升级至青铜用户时)
codezwjava's avatar
codezwjava committed
495
     *
codezwjava's avatar
codezwjava committed
496 497 498 499 500 501 502
     * @param inviteUserId 邀请人userid
     */
    private void teamUserInfoSeedToBronze(String inviteUserId) {
        //邀请人的团队信息表对象
        TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
        //邀请人的用户表对象
        User byUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());
codezwjava's avatar
codezwjava committed
503 504

        String beinvitedCodeUserId = "";
505
        String inviteCode = byUserId.getBeInvitedCode();
codezwjava's avatar
codezwjava committed
506 507 508 509
        if (!"1".equals(inviteCode)) {
            //通过邀请人的用户信息获取邀请人的推荐人邀请码
            beinvitedCodeUserId = usersMapper.getByBeInvitedCode(inviteCode).getUserId();
        }
codezwjava's avatar
codezwjava committed
510
        //通过邀请人的用户信息获取邀请人的推荐人邀请码
codezwjava's avatar
codezwjava committed
511
        //String beinvitedCodeUserId = usersMapper.getByBeInvitedCode(byUserId.getBeInvitedCode()).getUserId();
codezwjava's avatar
codezwjava committed
512
        //邀请人团队信息表中幼苗用户数量 = 0 时,幼苗用户数量不用变化,否则幼苗用户数量 - 1
codezwjava's avatar
codezwjava committed
513
        if (teamNumInfoBuyId.getSeedlingNum() == 0) {
codezwjava's avatar
codezwjava committed
514
            teamNumInfoBuyId.setSeedlingNum(teamNumInfoBuyId.getSeedlingNum());
codezwjava's avatar
codezwjava committed
515
        } else {
codezwjava's avatar
codezwjava committed
516
            //幼苗用户数量-1
codezwjava's avatar
codezwjava committed
517
            teamNumInfoBuyId.setSeedlingNum(teamNumInfoBuyId.getSeedlingNum() - 1);
codezwjava's avatar
codezwjava committed
518 519 520 521
        }
        //邀请人的团队用户信息表中青铜树数量 + 1
        teamNumInfoBuyId.setBronzeTreeNum(teamNumInfoBuyId.getBronzeTreeNum() + 1);
        teamUserInfoMapper.updateById(teamNumInfoBuyId);
codezwjava's avatar
codezwjava committed
522
        if ("1".equals(byUserId.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
523 524 525 526 527 528 529 530
            return;
        }
        //递归向上修改团队用户信息表
        teamUserInfoSeedToBronze(beinvitedCodeUserId);
    }

    /**
     * 团队用户表数据维护(普通用户升级至幼苗用户时)
codezwjava's avatar
codezwjava committed
531
     *
codezwjava's avatar
codezwjava committed
532 533
     * @param inviteUserId 邀请人userid
     */
codezwjava's avatar
codezwjava committed
534
    private void teamUserInfoNormalToSeed(String inviteUserId) {
codezwjava's avatar
codezwjava committed
535 536 537 538
        //邀请人的团队信息表对象
        TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
        //邀请人的用户表对象
        User intiveUserByUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());
codezwjava's avatar
codezwjava committed
539 540

        String beinvitedCodeUserId = "";
541 542
        //邀请人的推荐人邀请码
        String inviteCode = intiveUserByUserId.getBeInvitedCode();
codezwjava's avatar
codezwjava committed
543 544 545 546 547
        if (!"1".equals(inviteCode)) {
            //通过邀请人的用户信息获取邀请人的推荐人邀请码
            beinvitedCodeUserId = usersMapper.getByBeInvitedCode(inviteCode).getUserId();
        }
        if (teamNumInfoBuyId.getNormalUserNum() == 0) {
codezwjava's avatar
codezwjava committed
548
            teamNumInfoBuyId.setNormalUserNum(teamNumInfoBuyId.getNormalUserNum());
codezwjava's avatar
codezwjava committed
549
        } else {
codezwjava's avatar
codezwjava committed
550
            //普通用户数量-1
codezwjava's avatar
codezwjava committed
551
            teamNumInfoBuyId.setNormalUserNum(teamNumInfoBuyId.getNormalUserNum() - 1);
codezwjava's avatar
codezwjava committed
552 553
        }
        //邀请人的团队用户信息表中幼苗数量 + 1
codezwjava's avatar
codezwjava committed
554
        //第一波用户是谁邀请的
codezwjava's avatar
codezwjava committed
555 556
        teamNumInfoBuyId.setSeedlingNum(teamNumInfoBuyId.getSeedlingNum() + 1);
        teamUserInfoMapper.updateById(teamNumInfoBuyId);
codezwjava's avatar
codezwjava committed
557
        if ("1".equals(intiveUserByUserId.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
558 559 560 561 562
            return;
        }
        //递归向上修改团队用户信息表
        teamUserInfoNormalToSeed(beinvitedCodeUserId);
    }
codezwjava's avatar
codezwjava committed
563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588

    /**
     * 培育奖给到上级用户
     *
     * @param userid       当前用户id
     * @param inviteUserId 上级用户id
     * @param level        当前用户升级后的等级
     */
    public void cultivatingPrizeToInvitedUser(String userid, String inviteUserId, int level) {
        //当前用户的培育奖记录
        CultivatingPrizeInfo cultivatingPrizeInfo = cultivatingPrizeInfoMapper.getOneByUserId(userid);
        if (1 == level) {
            int seedling = cultivatingPrizeInfo.getSeedling();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

            if (1 != seedling) {
                //给上级用户幼苗等级培育奖
                //1.上级用户本月收益 ++
                AccountInfo beIntivedUserAccount = accountMapper.getByUserId(inviteUserId);
                BigDecimal earningsMonth = beIntivedUserAccount.getEarningsMonth();
                earningsMonth = earningsMonth.add(cultivatingPrize);
                beIntivedUserAccount.setEarningsMonth(earningsMonth);
                BigDecimal earningsTotal = beIntivedUserAccount.getEarningsTotal();
                earningsTotal = earningsTotal.add(cultivatingPrize);
                beIntivedUserAccount.setEarningsTotal(earningsTotal);
589
                accountMapper.updateEarningsMonthAndEarningsTotalByid(beIntivedUserAccount);
codezwjava's avatar
codezwjava committed
590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618
                //2.交易流水新增一条数据
                TradeRecord tradeRecord = new TradeRecord();
                tradeRecord.setUserId(inviteUserId);
                tradeRecord.setMoney(cultivatingPrize);
                tradeRecord.setTradeNo(null);
                tradeRecord.setTradeType(TradeRecordEnum.CULTIVATING_PRIZE.getCode());
                tradeRecordMapper.add(tradeRecord);

                //3.修改培育奖记录状态 ==1
                seedling = 1;
                cultivatingPrizeInfo.setSeedling(seedling);
                cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);

            }
        } else if (2 == level) {
            int bronzeTree = cultivatingPrizeInfo.getBronzeTree();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

            if (1 != bronzeTree) {
                //给上级用户幼苗等级培育奖
                //1.上级用户本月收益 ++
                AccountInfo beIntivedUserAccount = accountMapper.getByUserId(inviteUserId);
                BigDecimal earningsMonth = beIntivedUserAccount.getEarningsMonth();
                earningsMonth = earningsMonth.add(cultivatingPrize);
                beIntivedUserAccount.setEarningsMonth(earningsMonth);
                BigDecimal earningsTotal = beIntivedUserAccount.getEarningsTotal();
                earningsTotal = earningsTotal.add(cultivatingPrize);
                beIntivedUserAccount.setEarningsTotal(earningsTotal);
619
                accountMapper.updateEarningsMonthAndEarningsTotalByid(beIntivedUserAccount);
codezwjava's avatar
codezwjava committed
620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647
                //2.交易流水新增一条数据
                TradeRecord tradeRecord = new TradeRecord();
                tradeRecord.setUserId(inviteUserId);
                tradeRecord.setMoney(cultivatingPrize);
                tradeRecord.setTradeNo(null);
                tradeRecord.setTradeType(TradeRecordEnum.CULTIVATING_PRIZE.getCode());
                tradeRecordMapper.add(tradeRecord);

                //3.修改培育奖记录状态 ==1
                bronzeTree = 1;
                cultivatingPrizeInfo.setSeedling(bronzeTree);
                cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
            }
        } else if (3 == level) {
            int silverTree = cultivatingPrizeInfo.getSilverTree();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

            if (1 != silverTree) {
                //给上级用户幼苗等级培育奖
                //1.上级用户本月收益 ++
                AccountInfo beIntivedUserAccount = accountMapper.getByUserId(inviteUserId);
                BigDecimal earningsMonth = beIntivedUserAccount.getEarningsMonth();
                earningsMonth = earningsMonth.add(cultivatingPrize);
                beIntivedUserAccount.setEarningsMonth(earningsMonth);
                BigDecimal earningsTotal = beIntivedUserAccount.getEarningsTotal();
                earningsTotal = earningsTotal.add(cultivatingPrize);
                beIntivedUserAccount.setEarningsTotal(earningsTotal);
648
                accountMapper.updateEarningsMonthAndEarningsTotalByid(beIntivedUserAccount);
codezwjava's avatar
codezwjava committed
649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676
                //2.交易流水新增一条数据
                TradeRecord tradeRecord = new TradeRecord();
                tradeRecord.setUserId(inviteUserId);
                tradeRecord.setMoney(cultivatingPrize);
                tradeRecord.setTradeNo(null);
                tradeRecord.setTradeType(TradeRecordEnum.CULTIVATING_PRIZE.getCode());
                tradeRecordMapper.add(tradeRecord);

                //3.修改培育奖记录状态 ==1
                silverTree = 1;
                cultivatingPrizeInfo.setSeedling(silverTree);
                cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
            }
        } else if (4 == level) {
            int goldTree = cultivatingPrizeInfo.getGoldTree();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

            if (1 != goldTree) {
                //给上级用户幼苗等级培育奖
                //1.上级用户本月收益 ++
                AccountInfo beIntivedUserAccount = accountMapper.getByUserId(inviteUserId);
                BigDecimal earningsMonth = beIntivedUserAccount.getEarningsMonth();
                earningsMonth = earningsMonth.add(cultivatingPrize);
                beIntivedUserAccount.setEarningsMonth(earningsMonth);
                BigDecimal earningsTotal = beIntivedUserAccount.getEarningsTotal();
                earningsTotal = earningsTotal.add(cultivatingPrize);
                beIntivedUserAccount.setEarningsTotal(earningsTotal);
677
                accountMapper.updateEarningsMonthAndEarningsTotalByid(beIntivedUserAccount);
codezwjava's avatar
codezwjava committed
678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705
                //2.交易流水新增一条数据
                TradeRecord tradeRecord = new TradeRecord();
                tradeRecord.setUserId(inviteUserId);
                tradeRecord.setMoney(cultivatingPrize);
                tradeRecord.setTradeNo(null);
                tradeRecord.setTradeType(TradeRecordEnum.CULTIVATING_PRIZE.getCode());
                tradeRecordMapper.add(tradeRecord);

                //3.修改培育奖记录状态 ==1
                goldTree = 1;
                cultivatingPrizeInfo.setSeedling(goldTree);
                cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
            }
        } else if (5 == level) {
            int farmer = cultivatingPrizeInfo.getFarmer();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

            if (1 != farmer) {
                //给上级用户幼苗等级培育奖
                //1.上级用户本月收益 ++
                AccountInfo beIntivedUserAccount = accountMapper.getByUserId(inviteUserId);
                BigDecimal earningsMonth = beIntivedUserAccount.getEarningsMonth();
                earningsMonth = earningsMonth.add(cultivatingPrize);
                beIntivedUserAccount.setEarningsMonth(earningsMonth);
                BigDecimal earningsTotal = beIntivedUserAccount.getEarningsTotal();
                earningsTotal = earningsTotal.add(cultivatingPrize);
                beIntivedUserAccount.setEarningsTotal(earningsTotal);
706
                accountMapper.updateEarningsMonthAndEarningsTotalByid(beIntivedUserAccount);
codezwjava's avatar
codezwjava committed
707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734
                //2.交易流水新增一条数据
                TradeRecord tradeRecord = new TradeRecord();
                tradeRecord.setUserId(inviteUserId);
                tradeRecord.setMoney(cultivatingPrize);
                tradeRecord.setTradeNo(null);
                tradeRecord.setTradeType(TradeRecordEnum.CULTIVATING_PRIZE.getCode());
                tradeRecordMapper.add(tradeRecord);

                //3.修改培育奖记录状态 ==1
                farmer = 1;
                cultivatingPrizeInfo.setSeedling(farmer);
                cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
            }
        } else if (6 == level) {
            int forestStart = cultivatingPrizeInfo.getForestStart();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

            if (1 != forestStart) {
                //给上级用户幼苗等级培育奖
                //1.上级用户本月收益 ++
                AccountInfo beIntivedUserAccount = accountMapper.getByUserId(inviteUserId);
                BigDecimal earningsMonth = beIntivedUserAccount.getEarningsMonth();
                earningsMonth = earningsMonth.add(cultivatingPrize);
                beIntivedUserAccount.setEarningsMonth(earningsMonth);
                BigDecimal earningsTotal = beIntivedUserAccount.getEarningsTotal();
                earningsTotal = earningsTotal.add(cultivatingPrize);
                beIntivedUserAccount.setEarningsTotal(earningsTotal);
735
                accountMapper.updateEarningsMonthAndEarningsTotalByid(beIntivedUserAccount);
codezwjava's avatar
codezwjava committed
736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763
                //2.交易流水新增一条数据
                TradeRecord tradeRecord = new TradeRecord();
                tradeRecord.setUserId(inviteUserId);
                tradeRecord.setMoney(cultivatingPrize);
                tradeRecord.setTradeNo(null);
                tradeRecord.setTradeType(TradeRecordEnum.CULTIVATING_PRIZE.getCode());
                tradeRecordMapper.add(tradeRecord);

                //3.修改培育奖记录状态 ==1
                forestStart = 1;
                cultivatingPrizeInfo.setSeedling(forestStart);
                cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
            }
        } else if (7 == level) {
            int partner = cultivatingPrizeInfo.getPartner();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

            if (1 != partner) {
                //给上级用户幼苗等级培育奖
                //1.上级用户本月收益 ++
                AccountInfo beIntivedUserAccount = accountMapper.getByUserId(inviteUserId);
                BigDecimal earningsMonth = beIntivedUserAccount.getEarningsMonth();
                earningsMonth = earningsMonth.add(cultivatingPrize);
                beIntivedUserAccount.setEarningsMonth(earningsMonth);
                BigDecimal earningsTotal = beIntivedUserAccount.getEarningsTotal();
                earningsTotal = earningsTotal.add(cultivatingPrize);
                beIntivedUserAccount.setEarningsTotal(earningsTotal);
764
                accountMapper.updateEarningsMonthAndEarningsTotalByid(beIntivedUserAccount);
codezwjava's avatar
codezwjava committed
765 766 767 768 769 770 771 772 773 774 775 776 777 778 779
                //2.交易流水新增一条数据
                TradeRecord tradeRecord = new TradeRecord();
                tradeRecord.setUserId(inviteUserId);
                tradeRecord.setMoney(cultivatingPrize);
                tradeRecord.setTradeNo(null);
                tradeRecord.setTradeType(TradeRecordEnum.CULTIVATING_PRIZE.getCode());
                tradeRecordMapper.add(tradeRecord);

                //3.修改培育奖记录状态 ==1
                partner = 1;
                cultivatingPrizeInfo.setSeedling(partner);
                cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
            }
        }
    }
codezwjava's avatar
codezwjava committed
780
}
codezwjava's avatar
codezwjava committed
781