UserLevelServiceImpl.java 46.2 KB
Newer Older
codezwjava's avatar
codezwjava committed
1 2
package cn.wisenergy.service.app.impl;

codezwjava's avatar
codezwjava committed
3 4 5
import cn.wisenergy.mapper.*;
import cn.wisenergy.model.app.*;
import cn.wisenergy.model.enums.TradeRecordEnum;
codezwjava's avatar
codezwjava committed
6 7 8 9 10 11 12 13
import cn.wisenergy.service.app.UserLevelService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.math.BigDecimal;
14 15
import java.text.SimpleDateFormat;
import java.util.Date;
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
    @Autowired
    private TradeRecordMapper tradeRecordMapper;

    @Autowired
    private AccountMapper accountMapper;

43 44 45
    @Autowired
    private TeamPerformanceMapper teamPerformanceMapper;

codezwjava's avatar
codezwjava committed
46 47 48 49 50 51
    @Autowired
    private CultivatingPrizeMapper cultivatingPrizeMapper;

    @Autowired
    private CultivatingPrizeInfoMapper cultivatingPrizeInfoMapper;

52 53 54
    @Autowired
    private OrderMapper orderMapper;

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

codezwjava's avatar
codezwjava committed
59 60 61
    @Override
    @Transactional
    public void userLevelUpgrade(String userId) {
62
        log.info("--------------------当前用户id:"+userId);
codezwjava's avatar
codezwjava committed
63 64 65 66 67 68 69 70
        //当前用户对象
        User user = usersMapper.getByUserId(userId);
        //当前用户直推表对象
        RecommendUser recommendUser = recommendUserMapper.getByUserId(userId);
        //当前用户团队信息表对象
        TeamUserInfo teamUserInfoMapperByUserId = teamUserInfoMapper.getByUserId(userId);
        //当前用户等级
        Integer userLevel = user.getUserLevel();
71
        log.info("---------------当前用户等级:"+userLevel);
72 73 74 75 76 77 78 79 80 81
        //当前用户的累计消费
        BigDecimal performanceByUserid = new BigDecimal(0);
        if (userLevel == 0){
            //计算当前用户业绩
            performanceByUserid = orderMapper.getPerformanceByUserid(userId);
            if (null == performanceByUserid) {
                performanceByUserid = new BigDecimal(0);
            }
        }
        //当前用户的推荐人邀请码
codezwjava's avatar
codezwjava committed
82
        String beInvitedCode = user.getBeInvitedCode();
83 84
        log.info("--------------------当前用户的邀请码:"+beInvitedCode);

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

        }
        //用户等级升级为青铜树 2
        //当前用户等级为幼苗用户(1)时 且当前用户直推人数中幼苗等级>=5人<20人时
codezwjava's avatar
codezwjava committed
133 134
        if (userLevel == 1 && recommendUser.getSeedlingNum() >= 3
                             && recommendUser.getSeedlingNum() < 15) {
codezwjava's avatar
codezwjava committed
135
            //用户升级成功
codezwjava's avatar
codezwjava committed
136
            user.setUserLevel(2);
137
            usersMapper.updateById(user);
138 139
            //同步accountInfo 和TeamPerformance 的用户等级
            accountAndTeamPerformanceUserLevelUpdate(userId);
140
            //用户的推荐人邀请码为1或者88888888时  没有上级用户
141
            if (sysInviteCode1.equals(beInvitedCode) || sysInviteCode2.equals(beInvitedCode)) {
codezwjava's avatar
codezwjava committed
142 143
                return;
            } else {
codezwjava's avatar
codezwjava committed
144 145
                //若邀请人直推用户信息中的幼苗用户数量为0是则不用变化,否则幼苗用户数量-1
                if (inviteRecommendUser.getSeedlingNum() == 0) {
codezwjava's avatar
codezwjava committed
146
                    inviteRecommendUser.setSeedlingNum(inviteRecommendUser.getSeedlingNum());
codezwjava's avatar
codezwjava committed
147
                } else {
codezwjava's avatar
codezwjava committed
148
                    //幼苗用户-1
codezwjava's avatar
codezwjava committed
149
                    inviteRecommendUser.setSeedlingNum(inviteRecommendUser.getSeedlingNum() - 1);
codezwjava's avatar
codezwjava committed
150 151
                }
                //邀请人直推用户信息中的青铜树用户数量为+1
codezwjava's avatar
codezwjava committed
152
                inviteRecommendUser.setBronzeTreeNum(inviteRecommendUser.getBronzeTreeNum() + 1);
codezwjava's avatar
codezwjava committed
153 154
                recommendUserMapper.updateById(inviteRecommendUser);
                //团队用户表数据维护
155
                teamUserInfoSeedToBronze(inviteUserId);
codezwjava's avatar
codezwjava committed
156 157 158
                //上级用户获得幼苗等级的培育奖
                int level = 2;
                cultivatingPrizeToInvitedUser(userId, inviteUserId, level);
codezwjava's avatar
codezwjava committed
159 160 161 162 163
                //用户升级成功时,进行邀请人等级自查是否达到升级条件
                userLevelUpgrade(inviteUserId);
            }
        }
        //用户等级升级为白银树 3
codezwjava's avatar
codezwjava committed
164 165
        if (userLevel == 2 && recommendUser.getSeedlingNum() >= 15
                            && recommendUser.getSeedlingNum() < 20) {
codezwjava's avatar
codezwjava committed
166
            user.setUserLevel(3);
167
            usersMapper.updateById(user);
168 169
            //同步accountInfo 和TeamPerformance 的用户等级
            accountAndTeamPerformanceUserLevelUpdate(userId);
170
            ////用户的推荐人邀请码为1或者88888888时  没有上级用户
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
                recommendUserMapper.updateById(inviteRecommendUser);
                //团队用户表数据维护
186
                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);
203 204
            //同步accountInfo 和TeamPerformance 的用户等级
            accountAndTeamPerformanceUserLevelUpdate(userId);
205
            //用户的推荐人邀请码为1或者88888888时  没有上级用户
206
            if (sysInviteCode1.equals(beInvitedCode) || sysInviteCode2.equals(beInvitedCode)) {
codezwjava's avatar
codezwjava committed
207
                return;
codezwjava's avatar
codezwjava committed
208
            } else {
codezwjava's avatar
codezwjava committed
209 210
                //推荐人直推信息表数据维护
                //若邀请人直推用户信息中的白银树用户数量为0是则不用变化,否则白银树用户数量-1
codezwjava's avatar
codezwjava committed
211
                if (inviteRecommendUser.getSilverTreeNum() == 0) {
codezwjava's avatar
codezwjava committed
212
                    inviteRecommendUser.setSilverTreeNum(inviteRecommendUser.getSilverTreeNum());
codezwjava's avatar
codezwjava committed
213
                } else {
codezwjava's avatar
codezwjava committed
214 215 216 217 218 219 220
                    //白银树用户-1
                    inviteRecommendUser.setSilverTreeNum(inviteRecommendUser.getSilverTreeNum() - 1);
                }
                //邀请人直推用户信息中的黄金用户数量 + 1
                inviteRecommendUser.setGoldTreeNum(inviteRecommendUser.getGoldTreeNum() + 1);
                recommendUserMapper.updateById(inviteRecommendUser);
                //团队用户表数据维护
221
                teamUserInfoSilverToGoldTree(inviteUserId);
codezwjava's avatar
codezwjava committed
222 223 224
                //上级用户获得幼苗等级的培育奖
                int level = 4;
                cultivatingPrizeToInvitedUser(userId, inviteUserId, level);
codezwjava's avatar
codezwjava committed
225 226 227 228 229 230
                //用户升级成功时,进行邀请人等级自查是否达到升级条件
                userLevelUpgrade(inviteUserId);
            }
        }
        //用户等级级升级为农场主 5
        //:todo 条件:团队中白银树数量>=40
codezwjava's avatar
codezwjava committed
231 232 233
        if (userLevel == 4 && recommendUser.getSeedlingNum() >= 30
                && recommendUser.getGoldTreeNum() >= 2
                && teamUserInfoMapperByUserId.getSeedlingNum() >=70
codezwjava's avatar
codezwjava committed
234
                && teamUserInfoMapperByUserId.getSilverTreeNum() >= 40) {
codezwjava's avatar
codezwjava committed
235
            user.setUserLevel(5);
236
            usersMapper.updateById(user);
237 238
            //同步accountInfo 和TeamPerformance 的用户等级
            accountAndTeamPerformanceUserLevelUpdate(userId);
239
            ////用户的推荐人邀请码为1或者88888888时  没有上级用户
240
            if (sysInviteCode1.equals(beInvitedCode) || sysInviteCode2.equals(beInvitedCode)) {
codezwjava's avatar
codezwjava committed
241
                return;
codezwjava's avatar
codezwjava committed
242
            } else {
codezwjava's avatar
codezwjava committed
243 244
                //推荐人直推信息表数据维护
                //若邀请人直推用户信息中的黄金树用户数量为0是则不用变化,否则黄金树用户数量-1
codezwjava's avatar
codezwjava committed
245
                if (inviteRecommendUser.getGoldTreeNum() == 0) {
codezwjava's avatar
codezwjava committed
246
                    inviteRecommendUser.setGoldTreeNum(inviteRecommendUser.getGoldTreeNum());
codezwjava's avatar
codezwjava committed
247
                } else {
codezwjava's avatar
codezwjava committed
248 249 250 251 252 253 254
                    //黄金树用户-1
                    inviteRecommendUser.setGoldTreeNum(inviteRecommendUser.getGoldTreeNum() - 1);
                }
                //邀请人直推用户信息中的农场主用户数量 + 1
                inviteRecommendUser.setGoldTreeNum(inviteRecommendUser.getFarmerNum() + 1);
                recommendUserMapper.updateById(inviteRecommendUser);
                //团队用户表数据维护
255
                teamUserInfoGoldTreeToFarmer(inviteUserId);
codezwjava's avatar
codezwjava committed
256 257 258
                //上级用户获得幼苗等级的培育奖
                int level = 5;
                cultivatingPrizeToInvitedUser(userId, inviteUserId, level);
codezwjava's avatar
codezwjava committed
259 260 261 262 263 264
                //用户升级成功时,进行邀请人等级自查是否达到升级条件
                userLevelUpgrade(inviteUserId);
            }
        }

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

    /**
     * 团队用户表数据维护(森林之星用户升级至西田森合伙人用户时)
codezwjava's avatar
codezwjava committed
338
     *
codezwjava's avatar
codezwjava committed
339 340 341
     * @param inviteUserId 邀请人userid
     */
    private void teamUserInfoForestStartToPartner(String inviteUserId) {
342 343 344 345 346 347 348 349 350 351 352 353 354
        if (!"".equals(inviteUserId)){

            //邀请人的团队信息表对象
            TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
            //邀请人的用户表对象
            User byUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());

            String beinvitedCodeUserId = "";
            String inviteCode = byUserId.getBeInvitedCode();
            if (!sysInviteCode1.equals(inviteUserId) && !sysInviteCode2.equals(inviteUserId)) {
                //通过邀请人的用户信息获取邀请人的推荐人邀请码
                beinvitedCodeUserId = usersMapper.getByBeInvitedCode(inviteCode).getUserId();
            }
codezwjava's avatar
codezwjava committed
355
            //通过邀请人的用户信息获取邀请人的推荐人邀请码
356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373
            //String beinvitedCodeUserId = usersMapper.getByBeInvitedCode(byUserId.getBeInvitedCode()).getUserId();
            //邀请人团队信息表中森林之星用户数量 = 0 时,森林之星用户数量不用变化,否则森林之星用户数量 - 1
            if (teamNumInfoBuyId.getForestStartNum() == 0) {
                teamNumInfoBuyId.setForestStartNum(teamNumInfoBuyId.getForestStartNum());
            } else {
                //森林之星用户数量 - 1
                teamNumInfoBuyId.setForestStartNum(teamNumInfoBuyId.getForestStartNum() - 1);
            }
            //西田森合伙人用户数量 + 1
            teamNumInfoBuyId.setPartnerNum(teamNumInfoBuyId.getPartnerNum() + 1);
            teamUserInfoMapper.updateById(teamNumInfoBuyId);
            if (sysInviteCode1.equals(inviteUserId) || sysInviteCode2.equals(inviteUserId)) {
                return;
            }
            if ("".equals(beinvitedCodeUserId)){

                teamUserInfoForestStartToPartner(beinvitedCodeUserId);
            }
codezwjava's avatar
codezwjava committed
374 375 376 377 378
        }
    }

    /**
     * 团队用户表数据维护(农场主用户升级至森林之星用户时)
codezwjava's avatar
codezwjava committed
379
     *
codezwjava's avatar
codezwjava committed
380 381 382
     * @param inviteUserId 邀请人userid
     */
    private void teamUserInfoFarmerToForestStart(String inviteUserId) {
383 384 385 386 387 388 389 390 391 392 393 394 395
        if (!"".equals(inviteUserId)){

            //邀请人的团队信息表对象
            TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
            //邀请人的用户表对象
            User byUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());

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

                teamUserInfoFarmerToForestStart(beinvitedCodeUserId);
            }
codezwjava's avatar
codezwjava committed
416 417 418 419 420
        }
    }

    /**
     * 团队用户表数据维护(黄金树用户升级至农场主用户时)
codezwjava's avatar
codezwjava committed
421
     *
codezwjava's avatar
codezwjava committed
422 423 424
     * @param inviteUserId 邀请人userid
     */
    private void teamUserInfoGoldTreeToFarmer(String inviteUserId) {
425 426 427 428 429 430 431 432 433 434 435 436 437
        if (!"".equals(inviteUserId)){

            //邀请人的团队信息表对象
            TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
            //邀请人的用户表对象
            User byUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());

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

                teamUserInfoGoldTreeToFarmer(beinvitedCodeUserId);
            }
codezwjava's avatar
codezwjava committed
458 459 460 461 462
        }
    }

    /**
     * 团队用户表数据维护(白银树用户升级至黄金树用户时)
codezwjava's avatar
codezwjava committed
463
     *
codezwjava's avatar
codezwjava committed
464 465 466
     * @param inviteUserId 邀请人userid
     */
    private void teamUserInfoSilverToGoldTree(String inviteUserId) {
467 468 469 470 471 472 473 474 475 476 477 478 479
        if(!"".equals(inviteUserId)){

            //邀请人的团队信息表对象
            TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
            //邀请人的用户表对象
            User byUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());

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

                teamUserInfoSilverToGoldTree(beinvitedCodeUserId);
            }
codezwjava's avatar
codezwjava committed
500 501 502 503 504
        }
    }

    /**
     * 团队用户表数据维护(青铜树用户升级至白银树用户时)
codezwjava's avatar
codezwjava committed
505
     *
codezwjava's avatar
codezwjava committed
506 507 508
     * @param inviteUserId 邀请人userid
     */
    private void teamUserInfoBronzeToSilver(String inviteUserId) {
509 510 511 512 513 514 515 516 517 518 519 520 521
        if (!"".equals(inviteUserId)){

            //邀请人的团队信息表对象
            TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
            //邀请人的用户表对象
            User byUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());

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

                teamUserInfoBronzeToSilver(beinvitedCodeUserId);
            }
codezwjava's avatar
codezwjava committed
542 543 544 545 546
        }
    }

    /**
     * 团队用户表数据维护(幼苗用户升级至青铜用户时)
codezwjava's avatar
codezwjava committed
547
     *
codezwjava's avatar
codezwjava committed
548 549 550
     * @param inviteUserId 邀请人userid
     */
    private void teamUserInfoSeedToBronze(String inviteUserId) {
551 552 553 554 555 556 557 558 559 560 561 562 563
        if (!"".equals(inviteUserId)){

            //邀请人的团队信息表对象
            TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
            //邀请人的用户表对象
            User byUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());

            String beinvitedCodeUserId = "";
            String inviteCode = byUserId.getBeInvitedCode();
            if (!sysInviteCode1.equals(inviteUserId) && !sysInviteCode2.equals(inviteUserId)) {
                //通过邀请人的用户信息获取邀请人的推荐人邀请码
                beinvitedCodeUserId = usersMapper.getByBeInvitedCode(inviteCode).getUserId();
            }
codezwjava's avatar
codezwjava committed
564
            //通过邀请人的用户信息获取邀请人的推荐人邀请码
565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583
            //String beinvitedCodeUserId = usersMapper.getByBeInvitedCode(byUserId.getBeInvitedCode()).getUserId();
            //邀请人团队信息表中幼苗用户数量 = 0 时,幼苗用户数量不用变化,否则幼苗用户数量 - 1
            if (teamNumInfoBuyId.getSeedlingNum() == 0) {
                teamNumInfoBuyId.setSeedlingNum(teamNumInfoBuyId.getSeedlingNum());
            } else {
                //幼苗用户数量-1
                teamNumInfoBuyId.setSeedlingNum(teamNumInfoBuyId.getSeedlingNum() - 1);
            }
            //邀请人的团队用户信息表中青铜树数量 + 1
            teamNumInfoBuyId.setBronzeTreeNum(teamNumInfoBuyId.getBronzeTreeNum() + 1);
            teamUserInfoMapper.updateById(teamNumInfoBuyId);
            if (sysInviteCode1.equals(inviteUserId) || sysInviteCode2.equals(inviteUserId)) {
                return;
            }
            //递归向上修改团队用户信息表
            if ("".equals(beinvitedCodeUserId)){

                teamUserInfoSeedToBronze(beinvitedCodeUserId);
            }
codezwjava's avatar
codezwjava committed
584 585 586 587 588
        }
    }

    /**
     * 团队用户表数据维护(普通用户升级至幼苗用户时)
codezwjava's avatar
codezwjava committed
589
     *
codezwjava's avatar
codezwjava committed
590 591
     * @param inviteUserId 邀请人userid
     */
codezwjava's avatar
codezwjava committed
592
    private void teamUserInfoNormalToSeed(String inviteUserId) {
593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625
        if (!"".equals(inviteUserId)){

            //邀请人的团队信息表对象
            TeamUserInfo teamNumInfoBuyId = teamUserInfoMapper.getByUserId(inviteUserId);
            //邀请人的用户表对象
            User intiveUserByUserId = usersMapper.getByUserId(teamNumInfoBuyId.getUserId());

            String beinvitedCodeUserId = "";
            //邀请人的推荐人邀请码
            String inviteCode = intiveUserByUserId.getBeInvitedCode();
            if (!sysInviteCode1.equals(inviteUserId) && !sysInviteCode2.equals(inviteUserId)) {
                //通过邀请人的用户信息获取邀请人的推荐人邀请码
                User byBeInvitedCode = usersMapper.getByBeInvitedCode(inviteCode);
                if (null != byBeInvitedCode) {
                    beinvitedCodeUserId = byBeInvitedCode.getUserId();
                }
            }
            if (teamNumInfoBuyId.getNormalUserNum() == 0) {
                teamNumInfoBuyId.setNormalUserNum(teamNumInfoBuyId.getNormalUserNum());
            } else {
                //普通用户数量-1
                teamNumInfoBuyId.setNormalUserNum(teamNumInfoBuyId.getNormalUserNum() - 1);
            }
            //邀请人的团队用户信息表中幼苗数量 + 1
            //第一波用户是谁邀请的
            teamNumInfoBuyId.setSeedlingNum(teamNumInfoBuyId.getSeedlingNum() + 1);
            teamUserInfoMapper.updateById(teamNumInfoBuyId);
            if (sysInviteCode1.equals(inviteUserId) || sysInviteCode2.equals(inviteUserId)) {
                return;
            }
            //递归向上修改团队用户信息表
            if (!"".equals(beinvitedCodeUserId)) {
                teamUserInfoNormalToSeed(beinvitedCodeUserId);
codezwjava's avatar
codezwjava committed
626 627
            }
        }
codezwjava's avatar
codezwjava committed
628
    }
codezwjava's avatar
codezwjava committed
629 630 631 632

    /**
     * 培育奖给到上级用户
     *
633
     * @param userId       当前用户id
codezwjava's avatar
codezwjava committed
634 635 636
     * @param inviteUserId 上级用户id
     * @param level        当前用户升级后的等级
     */
637
    public void cultivatingPrizeToInvitedUser(String userId, String inviteUserId, int level) {
codezwjava's avatar
codezwjava committed
638
        //当前用户的培育奖记录
639
        CultivatingPrizeInfo cultivatingPrizeInfo = cultivatingPrizeInfoMapper.getOneByUserId(userId);
codezwjava's avatar
codezwjava committed
640
        //判断当前用户等级
codezwjava's avatar
codezwjava committed
641
        if (1 == level) {
codezwjava's avatar
codezwjava committed
642
            //获取等级对应的培育奖记录状态
codezwjava's avatar
codezwjava committed
643 644 645
            int seedling = cultivatingPrizeInfo.getSeedling();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();
codezwjava's avatar
codezwjava committed
646 647 648 649 650
            if (0 == seedling) {
                //1、判断推荐人的等级是否大与当前用户等级
                User inviteUser = usersMapper.getByUserId(inviteUserId);
                int inviteUserLevel = inviteUser.getUserLevel();
                if (null != inviteUser) {
651
                    if (inviteUserLevel >= level) {
codezwjava's avatar
codezwjava committed
652 653 654 655 656 657 658 659 660 661 662 663 664
                        //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);
665
                        log.info("用户:"+inviteUserId +"获得"+ "培育奖来自---用户id:"+userId+"userlevel:"+level+"status:"+seedling);
codezwjava's avatar
codezwjava committed
666 667 668 669 670
                    } else {
                        //3.修改培育奖记录状态 ==2
                        seedling = 2;
                        cultivatingPrizeInfo.setSeedling(seedling);
                        cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
671
                        log.info("用户"+inviteUserId +"获得"+ "培育奖来自---用户id"+userId+"userlevel"+level+"status:"+seedling);
codezwjava's avatar
codezwjava committed
672
                    }
673

codezwjava's avatar
codezwjava committed
674
                }
codezwjava's avatar
codezwjava committed
675 676
            }
        } else if (2 == level) {
codezwjava's avatar
codezwjava committed
677
            //培育奖记录状态
codezwjava's avatar
codezwjava committed
678 679 680 681
            int bronzeTree = cultivatingPrizeInfo.getBronzeTree();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

codezwjava's avatar
codezwjava committed
682 683 684 685 686
            if (0 == bronzeTree) {
                //1、判断推荐人的等级是否大与当前用户等级
                User inviteUser = usersMapper.getByUserId(inviteUserId);
                if (null != inviteUser) {
                    int inviteUserLevel = inviteUser.getUserLevel();
687
                    if (inviteUserLevel >= level) {
codezwjava's avatar
codezwjava committed
688 689 690 691 692 693 694 695 696 697 698 699 700
                        //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);
701
                        log.info("用户:"+inviteUserId +"获得"+ "培育奖来自---用户id:"+userId+"userlevel:"+level+"status:"+bronzeTree);
codezwjava's avatar
codezwjava committed
702 703 704 705 706
                    } else {
                        //3.修改培育奖记录状态 ==2
                        bronzeTree = 2;
                        cultivatingPrizeInfo.setBronzeTree(bronzeTree);
                        cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
707
                        log.info("用户:"+inviteUserId +"获得"+ "培育奖来自---用户id:"+userId+"userlevel:"+level+"status:"+bronzeTree);
codezwjava's avatar
codezwjava committed
708 709 710
                    }

                }
codezwjava's avatar
codezwjava committed
711 712
            }
        } else if (3 == level) {
codezwjava's avatar
codezwjava committed
713
            //获取当前等级的培育奖状态
codezwjava's avatar
codezwjava committed
714 715 716 717
            int silverTree = cultivatingPrizeInfo.getSilverTree();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

codezwjava's avatar
codezwjava committed
718 719 720 721 722
            if (0 == silverTree) {
                //1、判断推荐人的等级是否大与当前用户等级
                User inviteUser = usersMapper.getByUserId(inviteUserId);
                if (null != inviteUser) {
                    int inviteUserLevel = inviteUser.getUserLevel();
723
                    if (inviteUserLevel >= level) {
codezwjava's avatar
codezwjava committed
724 725 726 727 728 729 730 731 732 733 734 735 736
                        //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);
737
                        log.info("用户:"+inviteUserId +"获得"+ "培育奖来自---用户id:"+userId+"userlevel:"+level+"status:"+silverTree);
codezwjava's avatar
codezwjava committed
738 739 740 741 742
                    } else {
                        //3.修改培育奖记录状态 ==2
                        silverTree = 2;
                        cultivatingPrizeInfo.setBronzeTree(silverTree);
                        cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
743
                        log.info("用户:"+inviteUserId +"获得"+ "培育奖来自---用户id:"+userId+"userlevel:"+level+"status:"+silverTree);
codezwjava's avatar
codezwjava committed
744 745
                    }
                }
codezwjava's avatar
codezwjava committed
746 747 748 749 750 751
            }
        } else if (4 == level) {
            int goldTree = cultivatingPrizeInfo.getGoldTree();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

codezwjava's avatar
codezwjava committed
752
            if (0 == goldTree) {
753
                //1、判断推荐人的等级是否大与当前用户等级
codezwjava's avatar
codezwjava committed
754 755
                User inviteUser = usersMapper.getByUserId(inviteUserId);
                if (null != inviteUser) {
756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771
                    int userLevel = inviteUser.getUserLevel();
                    if (userLevel >= 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
                        goldTree = 1;
                        cultivatingPrizeInfo.setGoldTree(goldTree);
                        cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
772
                        log.info("用户:"+inviteUserId +"获得"+ "培育奖来自---用户id:"+userId+"userlevel:"+level+"status:"+goldTree);
773 774 775 776 777
                    }else {
                        //3.修改培育奖记录状态 ==2
                        goldTree = 2;
                        cultivatingPrizeInfo.setGoldTree(goldTree);
                        cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
778
                        log.info("用户:"+inviteUserId +"获得"+ "培育奖来自---用户id:"+userId+"userlevel:"+level+"status:"+goldTree);
779
                    }
codezwjava's avatar
codezwjava committed
780
                }
codezwjava's avatar
codezwjava committed
781 782 783 784 785 786
            }
        } else if (5 == level) {
            int farmer = cultivatingPrizeInfo.getFarmer();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

codezwjava's avatar
codezwjava committed
787 788 789 790
            if (0 == farmer) {
                //上级用户
                User inviteUser = usersMapper.getByUserId(inviteUserId);
                if (null != inviteUser) {
791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806
                    int userLevel = inviteUser.getUserLevel();
                    if (userLevel >= 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
                        farmer = 1;
                        cultivatingPrizeInfo.setGoldTree(farmer);
                        cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
807
                        log.info("用户:"+inviteUserId +"获得"+ "培育奖来自---用户id:"+userId+"userlevel:"+level+"status:"+farmer);
808 809 810 811 812
                    }else {
                        //3.修改培育奖记录状态 ==2
                        farmer = 2;
                        cultivatingPrizeInfo.setGoldTree(farmer);
                        cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
813
                        log.info("用户:"+inviteUserId +"获得"+ "培育奖来自---用户id:"+userId+"userlevel:"+level+"status:"+farmer);
814
                    }
codezwjava's avatar
codezwjava committed
815
                }
codezwjava's avatar
codezwjava committed
816 817 818 819 820 821
            }
        } else if (6 == level) {
            int forestStart = cultivatingPrizeInfo.getForestStart();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

codezwjava's avatar
codezwjava committed
822 823 824 825
            if (0 == forestStart) {
                //上级用户
                User inviteUser = usersMapper.getByUserId(inviteUserId);
                if (null != inviteUser) {
826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841
                    int userLevel = inviteUser.getUserLevel();
                    if (userLevel >= 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
                        forestStart = 1;
                        cultivatingPrizeInfo.setGoldTree(forestStart);
                        cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
842
                        log.info("用户:"+inviteUserId +"获得"+ "培育奖来自---用户id:"+userId+"userlevel:"+level+"status:"+forestStart);
843 844 845 846 847
                    }else {
                        //3.修改培育奖记录状态 ==2
                        forestStart = 2;
                        cultivatingPrizeInfo.setGoldTree(forestStart);
                        cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
848
                        log.info("用户:"+inviteUserId +"获得"+ "培育奖来自---用户id:"+userId+"userlevel:"+level+"status:"+forestStart);
849
                    }
codezwjava's avatar
codezwjava committed
850
                }
codezwjava's avatar
codezwjava committed
851 852 853 854 855 856
            }
        } else if (7 == level) {
            int partner = cultivatingPrizeInfo.getPartner();
            //用户等级对应的培育奖金额
            BigDecimal cultivatingPrize = cultivatingPrizeMapper.getcultivatingPrizeByUserLevel(level).getCultivatingPrize();

codezwjava's avatar
codezwjava committed
857 858 859 860
            if (0 == partner) {
                //上级用户
                User inviteUser = usersMapper.getByUserId(inviteUserId);
                if (null != inviteUser) {
861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876
                    int userLevel = inviteUser.getUserLevel();
                    if (userLevel >= 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
                        partner = 1;
                        cultivatingPrizeInfo.setGoldTree(partner);
                        cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
877
                        log.info("用户:"+inviteUserId +"获得"+ "培育奖来自---用户id:"+userId+"userlevel:"+level+"status:"+partner);
878 879 880 881 882
                    }else {
                        //3.修改培育奖记录状态 ==2
                        partner = 2;
                        cultivatingPrizeInfo.setGoldTree(partner);
                        cultivatingPrizeInfoMapper.updateById(cultivatingPrizeInfo);
883
                        log.info("用户:"+inviteUserId +"获得"+ "培育奖来自---用户id:"+userId+"userlevel:"+level+"status:"+partner);
884
                    }
codezwjava's avatar
codezwjava committed
885
                }
codezwjava's avatar
codezwjava committed
886 887 888
            }
        }
    }
889 890

    //同步accountInfo 和TeamPerformance 的用户等级
891
    @Override
892 893
    public void accountAndTeamPerformanceUserLevelUpdate(String userId){

894 895 896
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM");
        String format = dateFormat.format(new Date());

897 898 899 900 901 902
        User userByUserId = usersMapper.getUserByUserId(userId);

        if (null != userByUserId){
            int userLevel = userByUserId.getUserLevel();
            AccountInfo accountInfoByUserId = accountMapper.getByUserId(userId);
            accountInfoByUserId.setUserLevel(userLevel);
903
            TeamPerformance teamPerformanceByUserId = teamPerformanceMapper.getByUserIdAndTime(userId,format);
904 905
            teamPerformanceByUserId.setUserLevel(userLevel);

906 907
            accountMapper.edit(accountInfoByUserId);
            teamPerformanceMapper.edit(teamPerformanceByUserId);
908 909
        }
    }
codezwjava's avatar
codezwjava committed
910
}
codezwjava's avatar
codezwjava committed
911