admin
2020-04-28 e8f00cc0506705a2bed7dd4e060541230a7d2ab2
线上版本用户升级普通会员
4个文件已修改
64 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderHongBaoMoneyComputeServiceImpl.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/config/HongBaoManageServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/order/config/HongBaoManageService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/user/SyncBeforeInfoMessageListener.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderHongBaoMoneyComputeServiceImpl.java
@@ -18,6 +18,7 @@
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.VersionUtil;
import com.yeshi.fanli.util.user.UserLevelUtil;
@@ -174,14 +175,16 @@
            key = String.format("official_subsidy_zigou_%s", userLevel.getLevel());
        BigDecimal rate = null;
        if (date != null)
            rate = hongBaoManageService.getByKeyAndMaxTime(key, date.getTime());
            rate = hongBaoManageService.getByKeyAndMaxTimeCache(key, TimeUtil
                    .convertToTimeTemp(TimeUtil.getGernalTime(date.getTime(), "yyyy-MM-dd HH"), "yyyy-MM-dd HH"));
        else
            rate = new BigDecimal(hongBaoManageService.get(key));
        return rate;
    }
    private BigDecimal getRateByLevel(UserLevelEnum level, Date date) {
        BigDecimal baseRate = hongBaoManageService.getBaseFanliRate(date.getTime());
        BigDecimal baseRate = hongBaoManageService.getBaseFanliRateCache(
                TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(date.getTime(), "yyyy-MM-dd HH"), "yyyy-MM-dd HH"));
        BigDecimal subsidyRate = getOfficialSubsidyRate(date, level, false);
@@ -379,7 +382,9 @@
    }
    private BigDecimal getFanliRate(Date time, UserLevelEnum userLevel) {
        BigDecimal rate = hongBaoManageService.getBaseFanliRate(time.getTime())
        BigDecimal rate = hongBaoManageService
                .getBaseFanliRateCache(TimeUtil
                        .convertToTimeTemp(TimeUtil.getGernalTime(time.getTime(), "yyyy-MM-dd HH"), "yyyy-MM-dd HH"))
                .add(getOfficialSubsidyRate(time, getCommonUserLevel(time, userLevel), false));
        if (userLevel == UserLevelEnum.normalVIP)
fanli/src/main/java/com/yeshi/fanli/service/impl/order/config/HongBaoManageServiceImpl.java
@@ -59,6 +59,11 @@
        return null;
    }
    @Cacheable(value = "homeBaoManage", key = "'getByKeyAndMaxTime-'+#key+'-'+#time")
    public BigDecimal getByKeyAndMaxTimeCache(String key, Long time) {
        return getByKeyAndMaxTime(key, time);
    }
    @Cacheable(value = "homeBaoManage", key = "'convertMap'")
    public Map<String, String> convertMap() {
        List<HongBaoManage> list = hongBaoManageMapper.listAll();
@@ -272,4 +277,10 @@
        return getBaseFanliRate(System.currentTimeMillis());
    }
    @Cacheable(value = "homeBaoManage", key = "'getBaseFanliRate'+#time")
    @Override
    public BigDecimal getBaseFanliRateCache(long time) {
        return getBaseFanliRate(System.currentTimeMillis());
    }
}
fanli/src/main/java/com/yeshi/fanli/service/inter/order/config/HongBaoManageService.java
@@ -19,6 +19,8 @@
    public BigDecimal getByKeyAndMaxTime(String key, Long time);
    public BigDecimal getByKeyAndMaxTimeCache(String key, Long time);
    public Map<String, String> convertMap();
    /**
@@ -173,4 +175,6 @@
     */
    public BigDecimal getBaseFanliRate();
    public BigDecimal getBaseFanliRateCache(long time);
}
fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/user/SyncBeforeInfoMessageListener.java
@@ -16,16 +16,19 @@
import com.yeshi.fanli.dto.mq.user.UserTopicTagEnum;
import com.yeshi.fanli.dto.mq.user.body.UserActiveMQMsg;
import com.yeshi.fanli.entity.bus.user.UserActiveLog;
import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
import com.yeshi.fanli.entity.bus.user.UserInfoRegister;
import com.yeshi.fanli.entity.bus.user.vip.UserVIPPreInfo;
import com.yeshi.fanli.exception.user.vip.UserVIPPreInfoException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.user.UserActiveLogService;
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.vip.TeamUserLevelStatisticService;
import com.yeshi.fanli.service.inter.user.vip.UserVIPPreInfoService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.VersionUtil;
import com.yeshi.fanli.util.rocketmq.MQTopicName;
@@ -53,6 +56,9 @@
    @Resource
    private UserVIPPreInfoService userVIPPreInfoService;
    @Resource
    private UserInfoExtraService userInfoExtraService;
    @Override
    public Action consume(Message message, ConsumeContext context) {
@@ -74,10 +80,33 @@
                //同步老用户等级
                UserActiveLog log = userActiveLogService.getUserLatestActiveInfo(uid);
                if (log != null && VersionUtil.greaterThan_2_1(
                        "appstore".equalsIgnoreCase(log.getChannel()) ? "ios" : "android", log.getVersionCode())) {
                    //线上老用户升级到2.1,自动计算等级
                    
                // 低版本全部升级普通会员
                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);
@@ -92,6 +121,8 @@
                                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());
@@ -107,6 +138,7 @@
                        }
                    }
                }
                }
            }
        }