UserLevelServiceImlp.java 38 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 8 9
import cn.wisenergy.service.app.UserLevelService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
codezwjava's avatar
codezwjava committed
10
import org.springframework.data.annotation.Id;
codezwjava's avatar
codezwjava committed
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.math.BigDecimal;

/**
 * @author zw
 * @ Description: 用户升级功能业务实现
 * @ Author     : zw
 * @ Date       : 2021/2/24 17:06
 */
@Service
@Slf4j
public class UserLevelServiceImlp extends ServiceImpl<UsersMapper,User> implements UserLevelService {

    @Autowired
licc's avatar
licc committed
27
    private UsersMapper usersMapper;
codezwjava's avatar
codezwjava committed
28 29

    @Autowired
licc's avatar
licc committed
30
    private RecommendUserMapper recommendUserMapper;
codezwjava's avatar
codezwjava committed
31 32

    @Autowired
licc's avatar
licc committed
33
    private TeamUserInfoMapper teamUserInfoMapper;
codezwjava's avatar
codezwjava committed
34

codezwjava's avatar
codezwjava committed
35 36 37 38 39 40 41 42 43 44 45 46
    @Autowired
    private TradeRecordMapper tradeRecordMapper;

    @Autowired
    private AccountMapper accountMapper;

    @Autowired
    private CultivatingPrizeMapper cultivatingPrizeMapper;

    @Autowired
    private CultivatingPrizeInfoMapper cultivatingPrizeInfoMapper;

codezwjava's avatar
codezwjava committed
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
    @Override
    @Transactional
    public void userLevelUpgrade(String userId) {
        //当前用户对象
        User user = usersMapper.getByUserId(userId);
        //当前用户直推表对象
        RecommendUser recommendUser = recommendUserMapper.getByUserId(userId);
        //当前用户团队信息表对象
        TeamUserInfo teamUserInfoMapperByUserId = teamUserInfoMapper.getByUserId(userId);
        //当前用户的跨境额度(业绩)
        BigDecimal crossBorderLine = user.getCrossBorderLine();
        //当前用户等级
        Integer userLevel = user.getUserLevel();
        //当前用户的邀请码
        String beInvitedCode = user.getBeInvitedCode();
codezwjava's avatar
codezwjava committed
62 63 64 65 66 67 68 69 70 71
        //
        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
72 73
        //用户等级升级为幼苗 1
        //若当前用户等级为0(普通用户)且跨境额度(业绩消费金额)>= 3980 进行升级0-->1
codezwjava's avatar
codezwjava committed
74
        //todo:根据业绩去计算  查一次表获取业绩
codezwjava's avatar
codezwjava committed
75
        if (userLevel == 0 && crossBorderLine.intValue() >= 3980) {
codezwjava's avatar
codezwjava committed
76
            user.setUserLevel(1);
codezwjava's avatar
codezwjava committed
77
            usersMapper.edit(user);
codezwjava's avatar
codezwjava committed
78
            //用户推荐人邀请码为 1 时 该用户没有邀请人
codezwjava's avatar
codezwjava committed
79 80 81
            if ("1".equals(beInvitedCode)) {
                return;
            } else {
codezwjava's avatar
codezwjava committed
82 83
                //推荐人直推信息表数据维护
                //若邀请人直推用户信息中的普通用户数量为0是则不用变化,否则普通用户数量-1
codezwjava's avatar
codezwjava committed
84
                if (inviteRecommendUser.getNormalUserNum() == 0) {
codezwjava's avatar
codezwjava committed
85
                    inviteRecommendUser.setNormalUserNum(inviteRecommendUser.getNormalUserNum());
codezwjava's avatar
codezwjava committed
86
                } else {
codezwjava's avatar
codezwjava committed
87
                    //普通用户-1
codezwjava's avatar
codezwjava committed
88
                    inviteRecommendUser.setNormalUserNum(inviteRecommendUser.getNormalUserNum() - 1);
codezwjava's avatar
codezwjava committed
89 90
                }
                //邀请人直推用户信息中的幼苗用户数量为+1
codezwjava's avatar
codezwjava committed
91
                inviteRecommendUser.setSeedlingNum(inviteRecommendUser.getSeedlingNum() + 1);
codezwjava's avatar
codezwjava committed
92 93 94
                recommendUserMapper.updateById(inviteRecommendUser);
                //团队用户表数据维护
                teamUserInfoNormalToSeed(inviteUserId);
codezwjava's avatar
codezwjava committed
95 96 97
                //上级用户获得幼苗等级的培育奖
                int level = 1;
                cultivatingPrizeToInvitedUser(userId, inviteUserId, level);
codezwjava's avatar
codezwjava committed
98 99 100 101 102 103 104
                //用户升级成功时,进行邀请人等级自查是否达到升级条件
                userLevelUpgrade(inviteUserId);
            }

        }
        //用户等级升级为青铜树 2
        //当前用户等级为幼苗用户(1)时 且当前用户直推人数中幼苗等级>=5人<20人时
codezwjava's avatar
codezwjava committed
105 106
        if (userLevel == 1 && recommendUser.getSeedlingNum() >= 5 && recommendUser.getSeedlingNum() < 20) {
            //用户升级成功
codezwjava's avatar
codezwjava committed
107
            user.setUserLevel(2);
codezwjava's avatar
codezwjava committed
108
            usersMapper.edit(user);
codezwjava's avatar
codezwjava committed
109
            //用户被邀请码为 1 时 该用户没有邀请人
codezwjava's avatar
codezwjava committed
110
            if ("1".equals(user.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
111 112
                return;
            } else {
codezwjava's avatar
codezwjava committed
113 114
                //若邀请人直推用户信息中的幼苗用户数量为0是则不用变化,否则幼苗用户数量-1
                if (inviteRecommendUser.getSeedlingNum() == 0) {
codezwjava's avatar
codezwjava committed
115
                    inviteRecommendUser.setSeedlingNum(inviteRecommendUser.getSeedlingNum());
codezwjava's avatar
codezwjava committed
116
                } else {
codezwjava's avatar
codezwjava committed
117
                    //幼苗用户-1
codezwjava's avatar
codezwjava committed
118
                    inviteRecommendUser.setSeedlingNum(inviteRecommendUser.getSeedlingNum() - 1);
codezwjava's avatar
codezwjava committed
119 120
                }
                //邀请人直推用户信息中的青铜树用户数量为+1
codezwjava's avatar
codezwjava committed
121
                inviteRecommendUser.setBronzeTreeNum(inviteRecommendUser.getBronzeTreeNum() + 1);
codezwjava's avatar
codezwjava committed
122 123 124
                recommendUserMapper.updateById(inviteRecommendUser);
                //团队用户表数据维护
                teamUserInfoSeedToBronze(inviteUserId);
codezwjava's avatar
codezwjava committed
125 126 127
                //上级用户获得幼苗等级的培育奖
                int level = 2;
                cultivatingPrizeToInvitedUser(userId, inviteUserId, level);
codezwjava's avatar
codezwjava committed
128 129 130 131 132
                //用户升级成功时,进行邀请人等级自查是否达到升级条件
                userLevelUpgrade(inviteUserId);
            }
        }
        //用户等级升级为白银树 3
codezwjava's avatar
codezwjava committed
133
        if (userLevel == 2 && recommendUser.getSeedlingNum() >= 20 && recommendUser.getSeedlingNum() < 50) {
codezwjava's avatar
codezwjava committed
134
            user.setUserLevel(3);
codezwjava's avatar
codezwjava committed
135
            usersMapper.edit(user);
codezwjava's avatar
codezwjava committed
136
            //用户被邀请码为 1 时 该用户没有邀请人
codezwjava's avatar
codezwjava committed
137
            if ("1".equals(user.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
138
                return;
codezwjava's avatar
codezwjava committed
139
            } else {
codezwjava's avatar
codezwjava committed
140 141
                //推荐人直推信息表数据维护
                //若邀请人直推用户信息中的青铜树用户数量为0是则不用变化,否则青铜树用户数量-1
codezwjava's avatar
codezwjava committed
142
                if (inviteRecommendUser.getBronzeTreeNum() == 0) {
codezwjava's avatar
codezwjava committed
143
                    inviteRecommendUser.setBronzeTreeNum(inviteRecommendUser.getBronzeTreeNum());
codezwjava's avatar
codezwjava committed
144
                } else {
codezwjava's avatar
codezwjava committed
145 146 147 148
                    //青铜树用户-1
                    inviteRecommendUser.setBronzeTreeNum(inviteRecommendUser.getBronzeTreeNum() - 1);
                }
                //邀请人直推用户信息中的白银用户数量 + 1
codezwjava's avatar
codezwjava committed
149
                inviteRecommendUser.setSilverTreeNum(inviteRecommendUser.getSilverTreeNum() + 1);
codezwjava's avatar
codezwjava committed
150 151 152
                recommendUserMapper.updateById(inviteRecommendUser);
                //团队用户表数据维护
                teamUserInfoBronzeToSilver(inviteUserId);
codezwjava's avatar
codezwjava committed
153 154 155
                //上级用户获得幼苗等级的培育奖
                int level = 3;
                cultivatingPrizeToInvitedUser(userId, inviteUserId, level);
codezwjava's avatar
codezwjava committed
156 157 158 159 160 161 162
                //用户升级成功时,进行邀请人等级自查是否达到升级条件
                userLevelUpgrade(inviteUserId);
            }

        }
        //用户等级升级为黄金树 4
        //:todo 条件:团队中青铜树数量>=20
codezwjava's avatar
codezwjava committed
163
        if (userLevel == 3 && recommendUser.getSeedlingNum() >= 50
codezwjava's avatar
codezwjava committed
164
                && recommendUser.getSilverTreeNum() >= 4
codezwjava's avatar
codezwjava committed
165
                && teamUserInfoMapperByUserId.getBronzeTreeNum() >= 20) {
codezwjava's avatar
codezwjava committed
166
            user.setUserLevel(4);
codezwjava's avatar
codezwjava committed
167
            usersMapper.edit(user);
codezwjava's avatar
codezwjava committed
168
            //用户被邀请码为 1 时 该用户没有邀请人
codezwjava's avatar
codezwjava committed
169
            if ("1".equals(user.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
170
                return;
codezwjava's avatar
codezwjava committed
171
            } else {
codezwjava's avatar
codezwjava committed
172 173
                //推荐人直推信息表数据维护
                //若邀请人直推用户信息中的白银树用户数量为0是则不用变化,否则白银树用户数量-1
codezwjava's avatar
codezwjava committed
174
                if (inviteRecommendUser.getSilverTreeNum() == 0) {
codezwjava's avatar
codezwjava committed
175
                    inviteRecommendUser.setSilverTreeNum(inviteRecommendUser.getSilverTreeNum());
codezwjava's avatar
codezwjava committed
176
                } else {
codezwjava's avatar
codezwjava committed
177 178 179 180 181 182 183 184
                    //白银树用户-1
                    inviteRecommendUser.setSilverTreeNum(inviteRecommendUser.getSilverTreeNum() - 1);
                }
                //邀请人直推用户信息中的黄金用户数量 + 1
                inviteRecommendUser.setGoldTreeNum(inviteRecommendUser.getGoldTreeNum() + 1);
                recommendUserMapper.updateById(inviteRecommendUser);
                //团队用户表数据维护
                teamUserInfoSilverToGoldTree(inviteUserId);
codezwjava's avatar
codezwjava committed
185 186 187
                //上级用户获得幼苗等级的培育奖
                int level = 4;
                cultivatingPrizeToInvitedUser(userId, inviteUserId, level);
codezwjava's avatar
codezwjava committed
188 189 190 191 192 193 194 195
                //用户升级成功时,进行邀请人等级自查是否达到升级条件
                userLevelUpgrade(inviteUserId);
            }
        }
        //用户等级级升级为农场主 5
        //:todo 条件:团队中白银树数量>=40
        if (userLevel == 4 && recommendUser.getSeedlingNum() >= 70
                && recommendUser.getGoldTreeNum() >= 5
codezwjava's avatar
codezwjava committed
196
                && teamUserInfoMapperByUserId.getSilverTreeNum() >= 40) {
codezwjava's avatar
codezwjava committed
197
            user.setUserLevel(5);
codezwjava's avatar
codezwjava committed
198
            usersMapper.edit(user);
codezwjava's avatar
codezwjava committed
199
            //用户被邀请码为 1 时 该用户没有邀请人
codezwjava's avatar
codezwjava committed
200
            if ("1".equals(user.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
201
                return;
codezwjava's avatar
codezwjava committed
202
            } else {
codezwjava's avatar
codezwjava committed
203 204
                //推荐人直推信息表数据维护
                //若邀请人直推用户信息中的黄金树用户数量为0是则不用变化,否则黄金树用户数量-1
codezwjava's avatar
codezwjava committed
205
                if (inviteRecommendUser.getGoldTreeNum() == 0) {
codezwjava's avatar
codezwjava committed
206
                    inviteRecommendUser.setGoldTreeNum(inviteRecommendUser.getGoldTreeNum());
codezwjava's avatar
codezwjava committed
207
                } else {
codezwjava's avatar
codezwjava committed
208 209 210 211 212 213 214 215
                    //黄金树用户-1
                    inviteRecommendUser.setGoldTreeNum(inviteRecommendUser.getGoldTreeNum() - 1);
                }
                //邀请人直推用户信息中的农场主用户数量 + 1
                inviteRecommendUser.setGoldTreeNum(inviteRecommendUser.getFarmerNum() + 1);
                recommendUserMapper.updateById(inviteRecommendUser);
                //团队用户表数据维护
                teamUserInfoGoldTreeToFarmer(inviteUserId);
codezwjava's avatar
codezwjava committed
216 217 218
                //上级用户获得幼苗等级的培育奖
                int level = 5;
                cultivatingPrizeToInvitedUser(userId, inviteUserId, level);
codezwjava's avatar
codezwjava committed
219 220 221 222 223 224 225 226 227 228
                //用户升级成功时,进行邀请人等级自查是否达到升级条件
                userLevelUpgrade(inviteUserId);
            }
        }

        //用户等级升级为森林之星 6
        // todo: 条件:团队中白银树数量>=70 && 条件:团队中黄金树数量>=30
        if (userLevel == 5 && recommendUser.getSeedlingNum() >= 80
                && recommendUser.getFarmerNum() >= 5
                && teamUserInfoMapperByUserId.getSilverTreeNum() >= 70
codezwjava's avatar
codezwjava committed
229
                && teamUserInfoMapperByUserId.getGoldTreeNum() >= 30) {
codezwjava's avatar
codezwjava committed
230
            user.setUserLevel(6);
codezwjava's avatar
codezwjava committed
231
            usersMapper.edit(user);
codezwjava's avatar
codezwjava committed
232
            //用户被邀请码为 1 时 该用户没有邀请人
codezwjava's avatar
codezwjava committed
233
            if ("1".equals(user.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
234
                return;
codezwjava's avatar
codezwjava committed
235
            } else {
codezwjava's avatar
codezwjava committed
236 237
                //推荐人直推信息表数据维护
                //若邀请人直推用户信息中的农场主用户数量为0是则不用变化,否则农场主用户数量-1
codezwjava's avatar
codezwjava committed
238
                if (inviteRecommendUser.getFarmerNum() == 0) {
codezwjava's avatar
codezwjava committed
239
                    inviteRecommendUser.setFarmerNum(inviteRecommendUser.getFarmerNum());
codezwjava's avatar
codezwjava committed
240
                } else {
codezwjava's avatar
codezwjava committed
241 242 243 244 245 246 247 248
                    //农场主用户-1
                    inviteRecommendUser.setFarmerNum(inviteRecommendUser.getFarmerNum() - 1);
                }
                //邀请人直推用户信息中的森林之星用户数量 + 1
                inviteRecommendUser.setForestStartNum(inviteRecommendUser.getForestStartNum() + 1);
                recommendUserMapper.updateById(inviteRecommendUser);
                //团队用户表数据维护
                teamUserInfoFarmerToForestStart(inviteUserId);
codezwjava's avatar
codezwjava committed
249 250 251
                //上级用户获得幼苗等级的培育奖
                int level = 6;
                cultivatingPrizeToInvitedUser(userId, inviteUserId, level);
codezwjava's avatar
codezwjava committed
252 253 254 255 256 257 258 259 260
                //用户升级成功时,进行邀请人等级自查是否达到升级条件
                userLevelUpgrade(inviteUserId);
            }
        }
        //用户等级升级为西田森合伙人 7
        //:todo 条件:团队中白银树数量>=90 && 条件:团队中黄金树数量>=50 条件:团队中农场主数量>=30
        if (userLevel == 6 && recommendUser.getSeedlingNum() >= 100
                && recommendUser.getForestStartNum() >= 1
                && teamUserInfoMapperByUserId.getSilverTreeNum() >= 90
codezwjava's avatar
codezwjava committed
261
                && teamUserInfoMapperByUserId.getFarmerNum() >= 30) {
codezwjava's avatar
codezwjava committed
262
            user.setUserLevel(7);
codezwjava's avatar
codezwjava committed
263
            usersMapper.edit(user);
codezwjava's avatar
codezwjava committed
264
            //用户被邀请码为 1 时 该用户没有邀请人
codezwjava's avatar
codezwjava committed
265
            if ("1".equals(user.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
266
                return;
codezwjava's avatar
codezwjava committed
267
            } else {
codezwjava's avatar
codezwjava committed
268 269
                //推荐人直推信息表数据维护
                //若邀请人直推用户信息中的森林之星用户数量为0是则不用变化,否则森林之星用户数量-1
codezwjava's avatar
codezwjava committed
270
                if (inviteRecommendUser.getForestStartNum() == 0) {
codezwjava's avatar
codezwjava committed
271
                    inviteRecommendUser.setForestStartNum(inviteRecommendUser.getForestStartNum());
codezwjava's avatar
codezwjava committed
272
                } else {
codezwjava's avatar
codezwjava committed
273 274 275 276 277 278 279 280
                    //森林之星用户-1
                    inviteRecommendUser.setForestStartNum(inviteRecommendUser.getForestStartNum() - 1);
                }
                //邀请人直推用户信息中的西田森合伙人用户数量 + 1
                inviteRecommendUser.setPartnerNum(inviteRecommendUser.getPartnerNum() + 1);
                recommendUserMapper.updateById(inviteRecommendUser);
                //团队用户表数据维护
                teamUserInfoForestStartToPartner(inviteUserId);
codezwjava's avatar
codezwjava committed
281 282 283
                //上级用户获得幼苗等级的培育奖
                int level = 7;
                cultivatingPrizeToInvitedUser(userId, inviteUserId, level);
codezwjava's avatar
codezwjava committed
284 285 286 287 288 289 290 291
                //用户升级成功时,进行邀请人等级自查是否达到升级条件
                userLevelUpgrade(inviteUserId);
            }
        }
    }

    /**
     * 团队用户表数据维护(森林之星用户升级至西田森合伙人用户时)
codezwjava's avatar
codezwjava committed
292
     *
codezwjava's avatar
codezwjava committed
293 294 295 296 297 298 299
     * @param inviteUserId 邀请人userid
     */
    private void teamUserInfoForestStartToPartner(String inviteUserId) {
        //邀请人的团队信息表对象
        TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
        //邀请人的用户表对象
        User byUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());
codezwjava's avatar
codezwjava committed
300 301 302 303 304 305 306

        String beinvitedCodeUserId = "";
        String inviteCode = byUserId.getInviteCode();
        if (!"1".equals(inviteCode)) {
            //通过邀请人的用户信息获取邀请人的推荐人邀请码
            beinvitedCodeUserId = usersMapper.getByBeInvitedCode(inviteCode).getUserId();
        }
codezwjava's avatar
codezwjava committed
307
        //通过邀请人的用户信息获取邀请人的推荐人邀请码
codezwjava's avatar
codezwjava committed
308
        //String beinvitedCodeUserId = usersMapper.getByBeInvitedCode(byUserId.getBeInvitedCode()).getUserId();
codezwjava's avatar
codezwjava committed
309
        //邀请人团队信息表中森林之星用户数量 = 0 时,森林之星用户数量不用变化,否则森林之星用户数量 - 1
codezwjava's avatar
codezwjava committed
310
        if (teamNumInfoBuyId.getForestStartNum() == 0) {
codezwjava's avatar
codezwjava committed
311
            teamNumInfoBuyId.setForestStartNum(teamNumInfoBuyId.getForestStartNum());
codezwjava's avatar
codezwjava committed
312
        } else {
codezwjava's avatar
codezwjava committed
313 314 315 316 317 318
            //森林之星用户数量 - 1
            teamNumInfoBuyId.setForestStartNum(teamNumInfoBuyId.getForestStartNum() - 1);
        }
        //西田森合伙人用户数量 + 1
        teamNumInfoBuyId.setPartnerNum(teamNumInfoBuyId.getPartnerNum() + 1);
        teamUserInfoMapper.updateById(teamNumInfoBuyId);
codezwjava's avatar
codezwjava committed
319
        if ("1".equals(byUserId.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
320 321 322 323 324 325 326
            return;
        }
        teamUserInfoForestStartToPartner(beinvitedCodeUserId);
    }

    /**
     * 团队用户表数据维护(农场主用户升级至森林之星用户时)
codezwjava's avatar
codezwjava committed
327
     *
codezwjava's avatar
codezwjava committed
328 329 330 331 332 333 334
     * @param inviteUserId 邀请人userid
     */
    private void teamUserInfoFarmerToForestStart(String inviteUserId) {
        //邀请人的团队信息表对象
        TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
        //邀请人的用户表对象
        User byUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());
codezwjava's avatar
codezwjava committed
335 336 337 338 339 340 341

        String beinvitedCodeUserId = "";
        String inviteCode = byUserId.getInviteCode();
        if (!"1".equals(inviteCode)) {
            //通过邀请人的用户信息获取邀请人的推荐人邀请码
            beinvitedCodeUserId = usersMapper.getByBeInvitedCode(inviteCode).getUserId();
        }
codezwjava's avatar
codezwjava committed
342
        //通过邀请人的用户信息获取邀请人的推荐人邀请码
codezwjava's avatar
codezwjava committed
343
        //String beinvitedCodeUserId = usersMapper.getByBeInvitedCode(byUserId.getBeInvitedCode()).getUserId();
codezwjava's avatar
codezwjava committed
344
        //邀请人团队信息表中农场主用户数量 = 0 时,农场主用户数量不用变化,否则农场主用户数量 - 1
codezwjava's avatar
codezwjava committed
345
        if (teamNumInfoBuyId.getFarmerNum() == 0) {
codezwjava's avatar
codezwjava committed
346
            teamNumInfoBuyId.setFarmerNum(teamNumInfoBuyId.getFarmerNum());
codezwjava's avatar
codezwjava committed
347
        } else {
codezwjava's avatar
codezwjava committed
348 349 350 351 352 353
            //农场主用户数量 - 1
            teamNumInfoBuyId.setFarmerNum(teamNumInfoBuyId.getFarmerNum() - 1);
        }
        //森林之星用户数量 + 1
        teamNumInfoBuyId.setForestStartNum(teamNumInfoBuyId.getForestStartNum() + 1);
        teamUserInfoMapper.updateById(teamNumInfoBuyId);
codezwjava's avatar
codezwjava committed
354
        if ("1".equals(byUserId.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
355 356 357 358 359 360 361 362
            return;
        }
        //递归向上修改团队用户信息表
        teamUserInfoFarmerToForestStart(beinvitedCodeUserId);
    }

    /**
     * 团队用户表数据维护(黄金树用户升级至农场主用户时)
codezwjava's avatar
codezwjava committed
363
     *
codezwjava's avatar
codezwjava committed
364 365 366 367 368 369 370
     * @param inviteUserId 邀请人userid
     */
    private void teamUserInfoGoldTreeToFarmer(String inviteUserId) {
        //邀请人的团队信息表对象
        TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
        //邀请人的用户表对象
        User byUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());
codezwjava's avatar
codezwjava committed
371 372 373 374 375 376 377

        String beinvitedCodeUserId = "";
        String inviteCode = byUserId.getInviteCode();
        if (!"1".equals(inviteCode)) {
            //通过邀请人的用户信息获取邀请人的推荐人邀请码
            beinvitedCodeUserId = usersMapper.getByBeInvitedCode(inviteCode).getUserId();
        }
codezwjava's avatar
codezwjava committed
378
        //通过邀请人的用户信息获取邀请人的推荐人邀请码
codezwjava's avatar
codezwjava committed
379
        // String beinvitedCodeUserId = usersMapper.getByBeInvitedCode(byUserId.getBeInvitedCode()).getUserId();
codezwjava's avatar
codezwjava committed
380
        //邀请人团队信息表中黄金树用户数量 = 0 时,黄金树用户数量不用变化,否则黄金树用户数量 - 1
codezwjava's avatar
codezwjava committed
381
        if (teamNumInfoBuyId.getGoldTreeNum() == 0) {
codezwjava's avatar
codezwjava committed
382
            teamNumInfoBuyId.setGoldTreeNum(teamNumInfoBuyId.getGoldTreeNum());
codezwjava's avatar
codezwjava committed
383
        } else {
codezwjava's avatar
codezwjava committed
384 385 386 387 388 389
            //黄金树用户数量 - 1
            teamNumInfoBuyId.setGoldTreeNum(teamNumInfoBuyId.getGoldTreeNum() - 1);
        }
        //农场主数量 + 1
        teamNumInfoBuyId.setFarmerNum(teamNumInfoBuyId.getFarmerNum() + 1);
        teamUserInfoMapper.updateById(teamNumInfoBuyId);
codezwjava's avatar
codezwjava committed
390
        if ("1".equals(byUserId.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
391 392 393 394 395 396 397 398
            return;
        }
        //递归向上修改团队用户信息表
        teamUserInfoGoldTreeToFarmer(beinvitedCodeUserId);
    }

    /**
     * 团队用户表数据维护(白银树用户升级至黄金树用户时)
codezwjava's avatar
codezwjava committed
399
     *
codezwjava's avatar
codezwjava committed
400 401 402 403 404 405 406
     * @param inviteUserId 邀请人userid
     */
    private void teamUserInfoSilverToGoldTree(String inviteUserId) {
        //邀请人的团队信息表对象
        TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
        //邀请人的用户表对象
        User byUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());
codezwjava's avatar
codezwjava committed
407 408 409 410 411 412 413

        String beinvitedCodeUserId = "";
        String inviteCode = byUserId.getInviteCode();
        if (!"1".equals(inviteCode)) {
            //通过邀请人的用户信息获取邀请人的推荐人邀请码
            beinvitedCodeUserId = usersMapper.getByBeInvitedCode(inviteCode).getUserId();
        }
codezwjava's avatar
codezwjava committed
414
        //通过邀请人的用户信息获取邀请人的推荐人邀请码
codezwjava's avatar
codezwjava committed
415
        //String beinvitedCodeUserId = usersMapper.getByBeInvitedCode(byUserId.getBeInvitedCode()).getUserId();
codezwjava's avatar
codezwjava committed
416
        //邀请人团队信息表中白银树用户数量 = 0 时,白银树用户数量不用变化,否则白银树用户数量 - 1
codezwjava's avatar
codezwjava committed
417
        if (teamNumInfoBuyId.getSilverTreeNum() == 0) {
codezwjava's avatar
codezwjava committed
418
            teamNumInfoBuyId.setSilverTreeNum(teamNumInfoBuyId.getSilverTreeNum());
codezwjava's avatar
codezwjava committed
419
        } else {
codezwjava's avatar
codezwjava committed
420
            //白银树用户数量 - 1
codezwjava's avatar
codezwjava committed
421
            teamNumInfoBuyId.setSilverTreeNum(teamNumInfoBuyId.getSilverTreeNum() - 1);
codezwjava's avatar
codezwjava committed
422 423 424 425
        }
        //黄金树用户数量 - 1
        teamNumInfoBuyId.setGoldTreeNum(teamNumInfoBuyId.getGoldTreeNum() + 1);
        teamUserInfoMapper.updateById(teamNumInfoBuyId);
codezwjava's avatar
codezwjava committed
426
        if ("1".equals(byUserId.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
427 428 429 430 431 432 433 434
            return;
        }
        //递归向上修改团队用户信息表
        teamUserInfoSilverToGoldTree(beinvitedCodeUserId);
    }

    /**
     * 团队用户表数据维护(青铜树用户升级至白银树用户时)
codezwjava's avatar
codezwjava committed
435
     *
codezwjava's avatar
codezwjava committed
436 437 438 439 440 441 442
     * @param inviteUserId 邀请人userid
     */
    private void teamUserInfoBronzeToSilver(String inviteUserId) {
        //邀请人的团队信息表对象
        TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
        //邀请人的用户表对象
        User byUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());
codezwjava's avatar
codezwjava committed
443 444 445 446 447 448 449

        String beinvitedCodeUserId = "";
        String inviteCode = byUserId.getInviteCode();
        if (!"1".equals(inviteCode)) {
            //通过邀请人的用户信息获取邀请人的推荐人邀请码
            beinvitedCodeUserId = usersMapper.getByBeInvitedCode(inviteCode).getUserId();
        }
codezwjava's avatar
codezwjava committed
450
        //通过邀请人的用户信息获取邀请人的推荐人邀请码
codezwjava's avatar
codezwjava committed
451
        //String beinvitedCodeUserId = usersMapper.getByBeInvitedCode(byUserId.getBeInvitedCode()).getUserId();
codezwjava's avatar
codezwjava committed
452
        //邀请人团队信息表中青铜树用户数量 = 0 时,青铜树用户数量不用变化,否则青铜树用户数量 - 1
codezwjava's avatar
codezwjava committed
453
        if (teamNumInfoBuyId.getBronzeTreeNum() == 0) {
codezwjava's avatar
codezwjava committed
454
            teamNumInfoBuyId.setBronzeTreeNum(teamNumInfoBuyId.getBronzeTreeNum());
codezwjava's avatar
codezwjava committed
455
        } else {
codezwjava's avatar
codezwjava committed
456
            //青铜树用户数量 - 1
codezwjava's avatar
codezwjava committed
457
            teamNumInfoBuyId.setBronzeTreeNum(teamNumInfoBuyId.getBronzeTreeNum() - 1);
codezwjava's avatar
codezwjava committed
458 459 460 461
        }
        //白银树用户数量+1
        teamNumInfoBuyId.setSilverTreeNum(teamNumInfoBuyId.getSilverTreeNum() + 1);
        teamUserInfoMapper.updateById(teamNumInfoBuyId);
codezwjava's avatar
codezwjava committed
462
        if ("1".equals(byUserId.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
463 464 465 466 467 468 469 470
            return;
        }
        //递归向上修改团队用户信息表
        teamUserInfoBronzeToSilver(beinvitedCodeUserId);
    }

    /**
     * 团队用户表数据维护(幼苗用户升级至青铜用户时)
codezwjava's avatar
codezwjava committed
471
     *
codezwjava's avatar
codezwjava committed
472 473 474 475 476 477 478
     * @param inviteUserId 邀请人userid
     */
    private void teamUserInfoSeedToBronze(String inviteUserId) {
        //邀请人的团队信息表对象
        TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
        //邀请人的用户表对象
        User byUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());
codezwjava's avatar
codezwjava committed
479 480 481 482 483 484 485

        String beinvitedCodeUserId = "";
        String inviteCode = byUserId.getInviteCode();
        if (!"1".equals(inviteCode)) {
            //通过邀请人的用户信息获取邀请人的推荐人邀请码
            beinvitedCodeUserId = usersMapper.getByBeInvitedCode(inviteCode).getUserId();
        }
codezwjava's avatar
codezwjava committed
486
        //通过邀请人的用户信息获取邀请人的推荐人邀请码
codezwjava's avatar
codezwjava committed
487
        //String beinvitedCodeUserId = usersMapper.getByBeInvitedCode(byUserId.getBeInvitedCode()).getUserId();
codezwjava's avatar
codezwjava committed
488
        //邀请人团队信息表中幼苗用户数量 = 0 时,幼苗用户数量不用变化,否则幼苗用户数量 - 1
codezwjava's avatar
codezwjava committed
489
        if (teamNumInfoBuyId.getSeedlingNum() == 0) {
codezwjava's avatar
codezwjava committed
490
            teamNumInfoBuyId.setSeedlingNum(teamNumInfoBuyId.getSeedlingNum());
codezwjava's avatar
codezwjava committed
491
        } else {
codezwjava's avatar
codezwjava committed
492
            //幼苗用户数量-1
codezwjava's avatar
codezwjava committed
493
            teamNumInfoBuyId.setSeedlingNum(teamNumInfoBuyId.getSeedlingNum() - 1);
codezwjava's avatar
codezwjava committed
494 495 496 497
        }
        //邀请人的团队用户信息表中青铜树数量 + 1
        teamNumInfoBuyId.setBronzeTreeNum(teamNumInfoBuyId.getBronzeTreeNum() + 1);
        teamUserInfoMapper.updateById(teamNumInfoBuyId);
codezwjava's avatar
codezwjava committed
498
        if ("1".equals(byUserId.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
499 500 501 502 503 504 505 506
            return;
        }
        //递归向上修改团队用户信息表
        teamUserInfoSeedToBronze(beinvitedCodeUserId);
    }

    /**
     * 团队用户表数据维护(普通用户升级至幼苗用户时)
codezwjava's avatar
codezwjava committed
507
     *
codezwjava's avatar
codezwjava committed
508 509
     * @param inviteUserId 邀请人userid
     */
codezwjava's avatar
codezwjava committed
510
    private void teamUserInfoNormalToSeed(String inviteUserId) {
codezwjava's avatar
codezwjava committed
511 512 513 514
        //邀请人的团队信息表对象
        TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
        //邀请人的用户表对象
        User intiveUserByUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());
codezwjava's avatar
codezwjava committed
515 516 517 518 519 520 521 522

        String beinvitedCodeUserId = "";
        String inviteCode = intiveUserByUserId.getInviteCode();
        if (!"1".equals(inviteCode)) {
            //通过邀请人的用户信息获取邀请人的推荐人邀请码
            beinvitedCodeUserId = usersMapper.getByBeInvitedCode(inviteCode).getUserId();
        }
        if (teamNumInfoBuyId.getNormalUserNum() == 0) {
codezwjava's avatar
codezwjava committed
523
            teamNumInfoBuyId.setNormalUserNum(teamNumInfoBuyId.getNormalUserNum());
codezwjava's avatar
codezwjava committed
524
        } else {
codezwjava's avatar
codezwjava committed
525
            //普通用户数量-1
codezwjava's avatar
codezwjava committed
526
            teamNumInfoBuyId.setNormalUserNum(teamNumInfoBuyId.getNormalUserNum() - 1);
codezwjava's avatar
codezwjava committed
527 528
        }
        //邀请人的团队用户信息表中幼苗数量 + 1
codezwjava's avatar
codezwjava committed
529
        //第一波用户是谁邀请的
codezwjava's avatar
codezwjava committed
530 531
        teamNumInfoBuyId.setSeedlingNum(teamNumInfoBuyId.getSeedlingNum() + 1);
        teamUserInfoMapper.updateById(teamNumInfoBuyId);
codezwjava's avatar
codezwjava committed
532
        if ("1".equals(intiveUserByUserId.getBeInvitedCode())) {
codezwjava's avatar
codezwjava committed
533 534 535 536 537
            return;
        }
        //递归向上修改团队用户信息表
        teamUserInfoNormalToSeed(beinvitedCodeUserId);
    }
codezwjava's avatar
codezwjava committed
538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 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 589 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 619 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 648 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 677 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 706 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 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754

    /**
     * 培育奖给到上级用户
     *
     * @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);
                accountMapper.updateById(beIntivedUserAccount);
                //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);
                accountMapper.updateById(beIntivedUserAccount);
                //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);
                accountMapper.updateById(beIntivedUserAccount);
                //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);
                accountMapper.updateById(beIntivedUserAccount);
                //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);
                accountMapper.updateById(beIntivedUserAccount);
                //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);
                accountMapper.updateById(beIntivedUserAccount);
                //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);
                accountMapper.updateById(beIntivedUserAccount);
                //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
755
}
codezwjava's avatar
codezwjava committed
756