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
    @Autowired
    private OrderMapper orderMapper;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        String beinvitedCodeUserId = "";
539 540
        //邀请人的推荐人邀请码
        String inviteCode = intiveUserByUserId.getBeInvitedCode();
codezwjava's avatar
codezwjava committed
541 542 543 544 545
        if (!"1".equals(inviteCode)) {
            //通过邀请人的用户信息获取邀请人的推荐人邀请码
            beinvitedCodeUserId = usersMapper.getByBeInvitedCode(inviteCode).getUserId();
        }
        if (teamNumInfoBuyId.getNormalUserNum() == 0) {
codezwjava's avatar
codezwjava committed
546
            teamNumInfoBuyId.setNormalUserNum(teamNumInfoBuyId.getNormalUserNum());
codezwjava's avatar
codezwjava committed
547
        } else {
codezwjava's avatar
codezwjava committed
548
            //普通用户数量-1
codezwjava's avatar
codezwjava committed
549
            teamNumInfoBuyId.setNormalUserNum(teamNumInfoBuyId.getNormalUserNum() - 1);
codezwjava's avatar
codezwjava committed
550 551
        }
        //邀请人的团队用户信息表中幼苗数量 + 1
codezwjava's avatar
codezwjava committed
552
        //第一波用户是谁邀请的
codezwjava's avatar
codezwjava committed
553 554
        teamNumInfoBuyId.setSeedlingNum(teamNumInfoBuyId.getSeedlingNum() + 1);
        teamUserInfoMapper.updateById(teamNumInfoBuyId);
codezwjava's avatar
codezwjava committed
555
        if ("1".equals(intiveUserByUserId.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
556 557 558 559 560
            return;
        }
        //递归向上修改团队用户信息表
        teamUserInfoNormalToSeed(beinvitedCodeUserId);
    }
codezwjava's avatar
codezwjava committed
561 562 563 564

    /**
     * 培育奖给到上级用户
     *
565
     * @param userId       当前用户id
codezwjava's avatar
codezwjava committed
566 567 568
     * @param inviteUserId 上级用户id
     * @param level        当前用户升级后的等级
     */
569
    public void cultivatingPrizeToInvitedUser(String userId, String inviteUserId, int level) {
codezwjava's avatar
codezwjava committed
570
        //当前用户的培育奖记录
571
        CultivatingPrizeInfo cultivatingPrizeInfo = cultivatingPrizeInfoMapper.getOneByUserId(userId);
codezwjava's avatar
codezwjava committed
572 573 574 575 576 577 578 579 580 581 582 583 584 585 586
        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);
587
                accountMapper.updateEarningsMonthAndEarningsTotalByid(beIntivedUserAccount);
codezwjava's avatar
codezwjava committed
588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607
                //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) {
608
                //给上级用户青铜等级培育奖
codezwjava's avatar
codezwjava committed
609 610 611 612 613 614 615 616
                //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);
617
                accountMapper.updateEarningsMonthAndEarningsTotalByid(beIntivedUserAccount);
codezwjava's avatar
codezwjava committed
618 619 620 621 622 623 624 625 626 627
                //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;
628
                cultivatingPrizeInfo.setBronzeTree(bronzeTree);
codezwjava's avatar
codezwjava committed
629 630 631 632 633 634 635 636
                cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
            }
        } else if (3 == level) {
            int silverTree = cultivatingPrizeInfo.getSilverTree();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

            if (1 != silverTree) {
637
                //给上级用户白银等级培育奖
codezwjava's avatar
codezwjava committed
638 639 640 641 642 643 644 645
                //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);
646
                accountMapper.updateEarningsMonthAndEarningsTotalByid(beIntivedUserAccount);
codezwjava's avatar
codezwjava committed
647 648 649 650 651 652 653 654 655 656
                //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;
657
                cultivatingPrizeInfo.setSilverTree(silverTree);
codezwjava's avatar
codezwjava committed
658 659 660 661 662 663 664 665
                cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
            }
        } else if (4 == level) {
            int goldTree = cultivatingPrizeInfo.getGoldTree();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

            if (1 != goldTree) {
666
                //给上级用户黄金等级培育奖
codezwjava's avatar
codezwjava committed
667 668 669 670 671 672 673 674
                //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);
675
                accountMapper.updateEarningsMonthAndEarningsTotalByid(beIntivedUserAccount);
codezwjava's avatar
codezwjava committed
676 677 678 679 680 681 682 683 684 685
                //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;
686
                cultivatingPrizeInfo.setGoldTree(goldTree);
codezwjava's avatar
codezwjava committed
687 688 689 690 691 692 693 694
                cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
            }
        } else if (5 == level) {
            int farmer = cultivatingPrizeInfo.getFarmer();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

            if (1 != farmer) {
695
                //给上级用户农场主等级培育奖
codezwjava's avatar
codezwjava committed
696 697 698 699 700 701 702 703
                //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);
704
                accountMapper.updateEarningsMonthAndEarningsTotalByid(beIntivedUserAccount);
codezwjava's avatar
codezwjava committed
705 706 707 708 709 710 711 712 713 714
                //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;
715
                cultivatingPrizeInfo.setFarmer(farmer);
codezwjava's avatar
codezwjava committed
716 717 718 719 720 721 722 723
                cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
            }
        } else if (6 == level) {
            int forestStart = cultivatingPrizeInfo.getForestStart();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

            if (1 != forestStart) {
724
                //给上级用户森林之星等级培育奖
codezwjava's avatar
codezwjava committed
725 726 727 728 729 730 731 732
                //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);
733
                accountMapper.updateEarningsMonthAndEarningsTotalByid(beIntivedUserAccount);
codezwjava's avatar
codezwjava committed
734 735 736 737 738 739 740 741 742 743
                //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;
744
                cultivatingPrizeInfo.setForestStart(forestStart);
codezwjava's avatar
codezwjava committed
745 746 747 748 749 750 751 752
                cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
            }
        } else if (7 == level) {
            int partner = cultivatingPrizeInfo.getPartner();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

            if (1 != partner) {
753
                //给上级用户西田森合伙人等级培育奖
codezwjava's avatar
codezwjava committed
754 755 756 757 758 759 760 761
                //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);
762
                accountMapper.updateEarningsMonthAndEarningsTotalByid(beIntivedUserAccount);
codezwjava's avatar
codezwjava committed
763 764 765 766 767 768 769 770 771 772
                //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;
773
                cultivatingPrizeInfo.setPartner(partner);
codezwjava's avatar
codezwjava committed
774 775 776 777
                cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
            }
        }
    }
codezwjava's avatar
codezwjava committed
778
}
codezwjava's avatar
codezwjava committed
779