UserLevelServiceImpl.java 40.4 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
codezwjava's avatar
codezwjava committed
26
public class UserLevelServiceImpl extends ServiceImpl<UsersMapper, User> implements UserLevelService {
codezwjava's avatar
codezwjava committed
27 28

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

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

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

codezwjava's avatar
codezwjava committed
37 38 39 40 41 42 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
    @Autowired
    private OrderMapper orderMapper;

codezwjava's avatar
codezwjava committed
52 53 54 55
    //系统推荐人邀请码
    private static final String sysInviteCode1 = "1";
    private static final String sysInviteCode2 = "88888888";

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

    }
codezwjava's avatar
codezwjava committed
73

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

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

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

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

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

        String beinvitedCodeUserId = "";
341
        String inviteCode = byUserId.getBeInvitedCode();
codezwjava's avatar
codezwjava committed
342
        if (!sysInviteCode1.equals(inviteUserId) || !sysInviteCode2.equals(inviteUserId)) {
codezwjava's avatar
codezwjava committed
343 344 345
            //通过邀请人的用户信息获取邀请人的推荐人邀请码
            beinvitedCodeUserId = usersMapper.getByBeInvitedCode(inviteCode).getUserId();
        }
codezwjava's avatar
codezwjava committed
346
        //通过邀请人的用户信息获取邀请人的推荐人邀请码
codezwjava's avatar
codezwjava committed
347
        //String beinvitedCodeUserId = usersMapper.getByBeInvitedCode(byUserId.getBeInvitedCode()).getUserId();
codezwjava's avatar
codezwjava committed
348
        //邀请人团队信息表中森林之星用户数量 = 0 时,森林之星用户数量不用变化,否则森林之星用户数量 - 1
codezwjava's avatar
codezwjava committed
349
        if (teamNumInfoBuyId.getForestStartNum() == 0) {
codezwjava's avatar
codezwjava committed
350
            teamNumInfoBuyId.setForestStartNum(teamNumInfoBuyId.getForestStartNum());
codezwjava's avatar
codezwjava committed
351
        } else {
codezwjava's avatar
codezwjava committed
352 353 354 355 356 357
            //森林之星用户数量 - 1
            teamNumInfoBuyId.setForestStartNum(teamNumInfoBuyId.getForestStartNum() - 1);
        }
        //西田森合伙人用户数量 + 1
        teamNumInfoBuyId.setPartnerNum(teamNumInfoBuyId.getPartnerNum() + 1);
        teamUserInfoMapper.updateById(teamNumInfoBuyId);
codezwjava's avatar
codezwjava committed
358
        if (!sysInviteCode1.equals(inviteUserId) || !sysInviteCode2.equals(inviteUserId)) {
codezwjava's avatar
codezwjava committed
359 360 361 362 363 364 365
            return;
        }
        teamUserInfoForestStartToPartner(beinvitedCodeUserId);
    }

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

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

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

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

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

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

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

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

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

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

    /**
     * 团队用户表数据维护(普通用户升级至幼苗用户时)
codezwjava's avatar
codezwjava committed
546
     *
codezwjava's avatar
codezwjava committed
547 548
     * @param inviteUserId 邀请人userid
     */
codezwjava's avatar
codezwjava committed
549
    private void teamUserInfoNormalToSeed(String inviteUserId) {
codezwjava's avatar
codezwjava committed
550 551 552 553
        //邀请人的团队信息表对象
        TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
        //邀请人的用户表对象
        User intiveUserByUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());
codezwjava's avatar
codezwjava committed
554 555

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

    /**
     * 培育奖给到上级用户
     *
587
     * @param userId       当前用户id
codezwjava's avatar
codezwjava committed
588 589 590
     * @param inviteUserId 上级用户id
     * @param level        当前用户升级后的等级
     */
591
    public void cultivatingPrizeToInvitedUser(String userId, String inviteUserId, int level) {
codezwjava's avatar
codezwjava committed
592
        //当前用户的培育奖记录
593
        CultivatingPrizeInfo cultivatingPrizeInfo = cultivatingPrizeInfoMapper.getOneByUserId(userId);
codezwjava's avatar
codezwjava committed
594
        //判断当前用户等级
codezwjava's avatar
codezwjava committed
595
        if (1 == level) {
codezwjava's avatar
codezwjava committed
596
            //获取等级对应的培育奖记录状态
codezwjava's avatar
codezwjava committed
597 598 599
            int seedling = cultivatingPrizeInfo.getSeedling();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();
codezwjava's avatar
codezwjava committed
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
            if (0 == seedling) {
                //1、判断推荐人的等级是否大与当前用户等级
                User inviteUser = usersMapper.getByUserId(inviteUserId);
                int inviteUserLevel = inviteUser.getUserLevel();
                if (null != inviteUser) {
                    if (inviteUserLevel > level) {
                        //2.交易流水新增一条数据
                        TradeRecord tradeRecord = new TradeRecord();
                        tradeRecord.setUserId(inviteUserId);
                        tradeRecord.setMoney(cultivatingPrize);
                        tradeRecord.setTradeNo(null);
                        tradeRecord.setStatus(0);
                        tradeRecord.setTradeType(TradeRecordEnum.CULTIVATING_PRIZE.getCode());
                        tradeRecordMapper.add(tradeRecord);

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

codezwjava's avatar
codezwjava committed
626
                }
codezwjava's avatar
codezwjava committed
627 628
            }
        } else if (2 == level) {
codezwjava's avatar
codezwjava committed
629
            //培育奖记录状态
codezwjava's avatar
codezwjava committed
630 631 632 633
            int bronzeTree = cultivatingPrizeInfo.getBronzeTree();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

codezwjava's avatar
codezwjava committed
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
            if (0 == bronzeTree) {
                //1、判断推荐人的等级是否大与当前用户等级
                User inviteUser = usersMapper.getByUserId(inviteUserId);
                if (null != inviteUser) {
                    int inviteUserLevel = inviteUser.getUserLevel();
                    if (inviteUserLevel > level) {
                        //2.交易流水新增一条数据
                        TradeRecord tradeRecord = new TradeRecord();
                        tradeRecord.setUserId(inviteUserId);
                        tradeRecord.setMoney(cultivatingPrize);
                        tradeRecord.setTradeNo(null);
                        tradeRecord.setStatus(0);
                        tradeRecord.setTradeType(TradeRecordEnum.CULTIVATING_PRIZE.getCode());
                        tradeRecordMapper.add(tradeRecord);

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

                }
codezwjava's avatar
codezwjava committed
661 662
            }
        } else if (3 == level) {
codezwjava's avatar
codezwjava committed
663
            //获取当前等级的培育奖状态
codezwjava's avatar
codezwjava committed
664 665 666 667
            int silverTree = cultivatingPrizeInfo.getSilverTree();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

codezwjava's avatar
codezwjava committed
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
            if (0 == silverTree) {
                //1、判断推荐人的等级是否大与当前用户等级
                User inviteUser = usersMapper.getByUserId(inviteUserId);
                if (null != inviteUser) {
                    int inviteUserLevel = inviteUser.getUserLevel();
                    if (inviteUserLevel > level) {
                        //2.交易流水新增一条数据
                        TradeRecord tradeRecord = new TradeRecord();
                        tradeRecord.setUserId(inviteUserId);
                        tradeRecord.setMoney(cultivatingPrize);
                        tradeRecord.setTradeNo(null);
                        tradeRecord.setStatus(0);
                        tradeRecord.setTradeType(TradeRecordEnum.CULTIVATING_PRIZE.getCode());
                        tradeRecordMapper.add(tradeRecord);

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

codezwjava's avatar
codezwjava committed
700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722
            if (0 == goldTree) {
                //上级用户
                User inviteUser = usersMapper.getByUserId(inviteUserId);
                if (null != inviteUser) {
                    //2.交易流水新增一条数据
                    TradeRecord tradeRecord = new TradeRecord();
                    tradeRecord.setUserId(inviteUserId);
                    tradeRecord.setMoney(cultivatingPrize);
                    tradeRecord.setTradeNo(null);
                    tradeRecord.setStatus(0);
                    tradeRecord.setTradeType(TradeRecordEnum.CULTIVATING_PRIZE.getCode());
                    tradeRecordMapper.add(tradeRecord);

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

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

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

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

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

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

                    //3.修改培育奖记录状态 ==1
                    partner = 1;
                    cultivatingPrizeInfo.setGoldTree(partner);
                    cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
                } else {
                    //3.修改培育奖记录状态 ==2
                    partner = 2;
                    cultivatingPrizeInfo.setGoldTree(partner);
                    cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
                }
codezwjava's avatar
codezwjava committed
810 811 812
            }
        }
    }
codezwjava's avatar
codezwjava committed
813
}
codezwjava's avatar
codezwjava committed
814