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
    }
codezwjava's avatar
codezwjava committed
72

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    /**
     * 培育奖给到上级用户
     *
586
     * @param userId       当前用户id
codezwjava's avatar
codezwjava committed
587 588 589
     * @param inviteUserId 上级用户id
     * @param level        当前用户升级后的等级
     */
590
    public void cultivatingPrizeToInvitedUser(String userId, String inviteUserId, int level) {
codezwjava's avatar
codezwjava committed
591
        //当前用户的培育奖记录
592
        CultivatingPrizeInfo cultivatingPrizeInfo = cultivatingPrizeInfoMapper.getOneByUserId(userId);
codezwjava's avatar
codezwjava committed
593
        //判断当前用户等级
codezwjava's avatar
codezwjava committed
594
        if (1 == level) {
codezwjava's avatar
codezwjava committed
595
            //获取等级对应的培育奖记录状态
codezwjava's avatar
codezwjava committed
596 597 598
            int seedling = cultivatingPrizeInfo.getSeedling();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();
codezwjava's avatar
codezwjava committed
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
            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
624

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

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

codezwjava's avatar
codezwjava committed
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
            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
693 694 695 696 697 698
            }
        } else if (4 == level) {
            int goldTree = cultivatingPrizeInfo.getGoldTree();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

codezwjava's avatar
codezwjava committed
699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721
            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
722 723 724 725 726 727
            }
        } else if (5 == level) {
            int farmer = cultivatingPrizeInfo.getFarmer();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

codezwjava's avatar
codezwjava committed
728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750
            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
751 752 753 754 755 756
            }
        } else if (6 == level) {
            int forestStart = cultivatingPrizeInfo.getForestStart();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

codezwjava's avatar
codezwjava committed
757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779
            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
780 781 782 783 784 785
            }
        } else if (7 == level) {
            int partner = cultivatingPrizeInfo.getPartner();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

codezwjava's avatar
codezwjava committed
786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808
            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
809 810 811
            }
        }
    }
codezwjava's avatar
codezwjava committed
812
}
codezwjava's avatar
codezwjava committed
813