admin
2020-04-28 4e105a2500cf82c6ebad0015497077e873317a6f
新版本才能升级高级会员
3个文件已修改
154 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/service/manger/order/HongBaoV2AddManager.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/user/SyncBeforeInfoMessageListener.java 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/user/UserVIPMessageListener.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/manger/order/HongBaoV2AddManager.java
@@ -665,6 +665,11 @@
    private void addInviteHongBao(HongBaoV2 child, String parentHongBaoUserName,
            Map<Integer, HongBaoOrder> notificationMap, CommonOrder commonOrder) {
        if (child != null) {
            //老版本资金为0的红包不加入邀请订单
            if (child.getMoney() == null || (child.getMoney().compareTo(new BigDecimal(0)) == 0
                    && commonOrder.getThirdCreateTime().getTime() < Constant.NEW_ORDER_FANLI_RULE_TIME))
                return;
            hongBaoV2Mapper.insertSelective(child);
            // 用户通知
            if (notificationMap.get(child.getType()) == null) {
fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/user/SyncBeforeInfoMessageListener.java
@@ -15,6 +15,7 @@
import com.google.gson.Gson;
import com.yeshi.fanli.dto.mq.user.UserTopicTagEnum;
import com.yeshi.fanli.dto.mq.user.body.UserActiveMQMsg;
import com.yeshi.fanli.entity.bus.user.ThreeSale;
import com.yeshi.fanli.entity.bus.user.UserActiveLog;
import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
import com.yeshi.fanli.entity.bus.user.UserInfoRegister;
@@ -25,6 +26,7 @@
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.service.inter.user.UserInfoModifyRecordService;
import com.yeshi.fanli.service.inter.user.UserInfoRegisterService;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
import com.yeshi.fanli.service.inter.user.vip.TeamUserLevelStatisticService;
import com.yeshi.fanli.service.inter.user.vip.UserVIPPreInfoService;
import com.yeshi.fanli.util.Constant;
@@ -59,6 +61,9 @@
    @Resource
    private UserInfoExtraService userInfoExtraService;
    @Resource
    private ThreeSaleSerivce threeSaleSerivce;
    @Override
    public Action consume(Message message, ConsumeContext context) {
@@ -78,70 +83,87 @@
                // 老用户同步绑定信息
                userInfoModifyRecordService.syncBeforeInfo(uid);
                // 同步老用户等级
                UserActiveLog log = userActiveLogService.getUserLatestActiveInfo(uid);
                // 低版本全部升级普通会员
                if (log != null && !VersionUtil.greaterThan_2_1(
                        "appstore".equalsIgnoreCase(log.getChannel()) ? "ios" : "android", log.getVersionCode())) {
                    UserVIPPreInfo vipInfo = userVIPPreInfoService.getLatestProcessInfo(uid);
                    if (vipInfo == null) {
                        vipInfo = userVIPPreInfoService.getLatestProcessInfo(uid);
                        if (vipInfo == null) {// 没有生成高级及以上会员
                            UserInfoExtra extra = userInfoExtraService.getUserInfoExtra(uid);
                            if (extra != null && !StringUtil.isNullOrEmpty(extra.getInviteCode())) {
                                // 老用户生成普通会员
                                UserVIPPreInfo vip = new UserVIPPreInfo();
                                vip.setCreateTime(new Date());
                                vip.setProcess(UserVIPPreInfo.PROCESS_1);
                                vip.setUid(uid);
                                try {
                                    userVIPPreInfoService.addUserVIPPreInfo(vip);
                                } catch (UserVIPPreInfoException e) {
                                    e.printStackTrace();
                                }
                List<ThreeSale> threeSaleList = threeSaleSerivce.getMyBossDeepList(uid, 2);
                List<Long> uidList = new ArrayList<>();
                uidList.add(uid);
                if (threeSaleList != null) {
                    for (ThreeSale ts : threeSaleList) {
                        uidList.add(ts.getBoss().getId());
                    }
                }
                upgradeOldUser(uidList);
            }
        }
        return Action.CommitMessage;
    }
    private void upgradeOldUser(List<Long> uidList) {
        for (Long uid : uidList) {
            // 同步老用户等级
            UserActiveLog log = userActiveLogService.getUserLatestActiveInfo(uid);
            // 低版本全部升级普通会员
            if (log != null
                    && !VersionUtil.greaterThan_2_1("appstore".equalsIgnoreCase(log.getChannel()) ? "ios" : "android",
                            log.getVersionCode())) {
                UserVIPPreInfo vipInfo = userVIPPreInfoService.getLatestProcessInfo(uid);
                if (vipInfo == null) {
                    vipInfo = userVIPPreInfoService.getLatestProcessInfo(uid);
                    if (vipInfo == null) {// 没有生成高级及以上会员
                        UserInfoExtra extra = userInfoExtraService.getUserInfoExtra(uid);
                        if (extra != null && !StringUtil.isNullOrEmpty(extra.getInviteCode())) {
                            // 老用户生成普通会员
                            UserVIPPreInfo vip = new UserVIPPreInfo();
                            vip.setCreateTime(new Date());
                            vip.setProcess(UserVIPPreInfo.PROCESS_1);
                            vip.setUid(uid);
                            try {
                                userVIPPreInfoService.addUserVIPPreInfo(vip);
                            } catch (UserVIPPreInfoException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                } else if (log != null && VersionUtil.greaterThan_2_1(
                        "appstore".equalsIgnoreCase(log.getChannel()) ? "ios" : "android", log.getVersionCode())) {// 2.1后升级其他等级
                    // 线上老用户升级到2.1,自动计算等级
                    List<Long> uids = new ArrayList<>();
                    uids.add(uid);
                    List<UserInfoRegister> list = userInfoRegisterService.listByMultipleUids(uids);
                    if (list != null && list.size() > 0)// 有注册信息
                    {
                        if (list.get(0).getCreateTime().getTime() < Constant.NEW_ORDER_FANLI_RULE_TIME) {// 老用户
                            // 同步用户等级
                            UserVIPPreInfo vipInfo = userVIPPreInfoService.getLatestProcessInfo(uid);
                            if (vipInfo == null) {
                                // 计算等级
                                userVIPPreInfoService.upgradeVipByMyOrder(uid);
                                userVIPPreInfoService.upgradeVipByTeamNum(uid);
                                vipInfo = userVIPPreInfoService.getLatestProcessInfo(uid);
                                if (vipInfo == null) {// 没有生成高级及以上会员
                                    UserInfoExtra extra = userInfoExtraService.getUserInfoExtra(uid);
                                    if (extra != null && !StringUtil.isNullOrEmpty(extra.getInviteCode())) {
                                        // 老用户生成普通会员
                                        UserVIPPreInfo vip = new UserVIPPreInfo();
                                        vip.setCreateTime(new Date());
                                        vip.setProcess(UserVIPPreInfo.PROCESS_1);
                                        vip.setUid(uid);
                                        try {
                                            userVIPPreInfoService.addUserVIPPreInfo(vip);
                                        } catch (UserVIPPreInfoException e) {
                                            e.printStackTrace();
                                        }
                }
            } else if (log != null && VersionUtil.greaterThan_2_1(
                    "appstore".equalsIgnoreCase(log.getChannel()) ? "ios" : "android", log.getVersionCode())) {// 2.1后升级其他等级
                // 线上老用户升级到2.1,自动计算等级
                List<Long> uids = new ArrayList<>();
                uids.add(uid);
                List<UserInfoRegister> list = userInfoRegisterService.listByMultipleUids(uids);
                if (list != null && list.size() > 0)// 有注册信息
                {
                    if (list.get(0).getCreateTime().getTime() < Constant.NEW_ORDER_FANLI_RULE_TIME) {// 老用户
                        // 同步用户等级
                        UserVIPPreInfo vipInfo = userVIPPreInfoService.getLatestProcessInfo(uid);
                        if (vipInfo == null) {
                            // 计算等级
                            userVIPPreInfoService.upgradeVipByMyOrder(uid);
                            userVIPPreInfoService.upgradeVipByTeamNum(uid);
                            vipInfo = userVIPPreInfoService.getLatestProcessInfo(uid);
                            if (vipInfo == null) {// 没有生成高级及以上会员
                                UserInfoExtra extra = userInfoExtraService.getUserInfoExtra(uid);
                                if (extra != null && !StringUtil.isNullOrEmpty(extra.getInviteCode())) {
                                    // 老用户生成普通会员
                                    UserVIPPreInfo vip = new UserVIPPreInfo();
                                    vip.setCreateTime(new Date());
                                    vip.setProcess(UserVIPPreInfo.PROCESS_1);
                                    vip.setUid(uid);
                                    try {
                                        userVIPPreInfoService.addUserVIPPreInfo(vip);
                                    } catch (UserVIPPreInfoException e) {
                                        e.printStackTrace();
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        return Action.CommitMessage;
    }
}
fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/user/UserVIPMessageListener.java
@@ -15,13 +15,16 @@
import com.yeshi.fanli.dto.mq.user.UserTopicTagEnum;
import com.yeshi.fanli.dto.mq.user.body.ThreeSaleSeparateMQMsg;
import com.yeshi.fanli.dto.mq.user.body.UserLevelChangedMQMsg;
import com.yeshi.fanli.entity.bus.user.UserActiveLog;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.user.UserActiveLogService;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
import com.yeshi.fanli.service.inter.user.invite.UserInviteValidNumService;
import com.yeshi.fanli.service.inter.user.vip.TeamUserLevelStatisticService;
import com.yeshi.fanli.service.inter.user.vip.UserVIPPreInfoService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.VersionUtil;
import com.yeshi.fanli.util.rocketmq.MQTopicName;
/**
@@ -41,9 +44,12 @@
    @Resource
    private ThreeSaleSerivce threeSaleSerivce;
    @Resource
    private UserInviteValidNumService userInviteValidNumService;
    @Resource
    private UserActiveLogService userActiveLogService;
    @Override
    public Action consume(Message message, ConsumeContext context) {
@@ -57,7 +63,7 @@
        if (java.lang.System.currentTimeMillis() <= Constant.NEW_ORDER_FANLI_RULE_TIME) {
            return Action.CommitMessage;
        }
        // 邀请相关
        if (MQTopicName.TOPIC_USER.name().equalsIgnoreCase(message.getTopic())) {
            if (tag.equalsIgnoreCase(UserTopicTagEnum.userLevelChanged.name())) {// 用户等级发生变化
@@ -92,6 +98,14 @@
                OrderMoneyRecievedMQMsg dto = new Gson().fromJson(new String(message.getBody()),
                        OrderMoneyRecievedMQMsg.class);
                if (dto != null) {
                    // 判断版本
                    UserActiveLog log = userActiveLogService.getUserLatestActiveInfo(dto.getUid());
                    if (log == null || !VersionUtil.greaterThan_2_1(
                            "appstore".equalsIgnoreCase(log.getChannel()) ? "ios" : "android", log.getVersionCode())) {
                        return Action.CommitMessage;
                    }
                    if (dto.getType() == OrderMoneyRecievedMQMsg.TYPE_ZIGOU) {// 自购到账
                        // 会员升级-自购订单数量验证
                        userVIPPreInfoService.upgradeVipByMyOrder(dto.getUid());
@@ -101,11 +115,12 @@
                    }
                }
            } else if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderConfirm.name())) {
                OrderConfirmMQMsg dto = new Gson().fromJson(new String(message.getBody()),OrderConfirmMQMsg.class);
                OrderConfirmMQMsg dto = new Gson().fromJson(new String(message.getBody()), OrderConfirmMQMsg.class);
                if (dto != null) {
                    // 会员等级升级-粉丝数量验证
                    userVIPPreInfoService.upgradeVipByTeamNum(dto.getSourceUid());
                    userInviteValidNumService.addValidTeamNum(dto.getSourceUid(), dto.getSettleMent(), dto.getPlaceOrderTime());
                    userInviteValidNumService.addValidTeamNum(dto.getSourceUid(), dto.getSettleMent(),
                            dto.getPlaceOrderTime());
                }
            }
        }