| | |
| | | package com.yeshi.fanli.service.impl.redpack;
|
| | |
|
| | | import java.math.BigDecimal;
|
| | | import java.util.ArrayList;
|
| | | import java.util.Date;
|
| | | import java.util.List;
|
| | |
|
| | |
| | | import com.yeshi.fanli.entity.bus.user.UserActiveLog;
|
| | | import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfo;
|
| | | import com.yeshi.fanli.entity.order.CommonOrder;
|
| | | import com.yeshi.fanli.entity.redpack.RedPackWinInvite;
|
| | | import com.yeshi.fanli.entity.redpack.RedPackWinInvite.RedPackWinInviteTypeEnum;
|
| | | import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
|
| | |
| | | import com.yeshi.fanli.util.Constant;
|
| | | import com.yeshi.fanli.util.MoneyBigDecimalUtil;
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | | import com.yeshi.fanli.util.TimeUtil;
|
| | | import com.yeshi.fanli.util.VersionUtil;
|
| | | import com.yeshi.fanli.util.annotation.RequestSerializableByKeyService;
|
| | | import com.yeshi.fanli.util.annotation.redpack.RedPackGetVersionLimit;
|
| | | import com.yeshi.fanli.util.factory.RedPackDetailFactory;
|
| | | import com.yeshi.fanli.vo.redpack.RedPackWinProgressVO;
|
| | |
|
| | | @Service
|
| | | public class RedPackWinInviteServiceImpl implements RedPackWinInviteService {
|
| | |
|
| | | @Resource
|
| | | private RedPackWinInviteMapper redPackWinInviteMapper;
|
| | | |
| | |
|
| | | @Resource
|
| | | private RedPackConfigService redPackConfigService;
|
| | | |
| | |
|
| | | @Resource
|
| | | private RedPackBalanceService redPackBalanceService;
|
| | |
|
| | | @Resource
|
| | | private CommonOrderService commonOrderService;
|
| | | |
| | | private CommonOrderService commonOrderService;
|
| | |
|
| | | @Resource
|
| | | private ThreeSaleSerivce threeSaleSerivce;
|
| | | |
| | |
|
| | | @Resource
|
| | | private UserMoneyMsgNotificationService userMoneyMsgNotificationService;
|
| | | |
| | | @Resource |
| | |
|
| | | @Resource
|
| | | private UserInfoService userInfoService;
|
| | | |
| | | @Resource |
| | |
|
| | | @Resource
|
| | | private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
|
| | | |
| | | @Resource |
| | |
|
| | | @Resource
|
| | | private IntegralTaskRecordService integralTaskRecordService;
|
| | | |
| | |
|
| | | @Resource
|
| | | private UserActiveLogService userActiveLogService;
|
| | | |
| | |
|
| | | @Resource
|
| | | private HongBaoV2CountService hongBaoV2CountService;
|
| | | |
| | | |
| | |
|
| | | @Override
|
| | | public List<RedPackWinInvite> getRewardList(int start, int count, Long uid) {
|
| | | return redPackWinInviteMapper.getRewardList(start, count, uid);
|
| | | }
|
| | | |
| | | |
| | |
|
| | | @Override
|
| | | public Long countRewardRecord(Long uid) {
|
| | | return redPackWinInviteMapper.countRewardRecord(uid);
|
| | | }
|
| | | |
| | |
|
| | | @Override
|
| | | public BigDecimal getRewardMoney(Long uid) {
|
| | | return redPackWinInviteMapper.getRewardMoney(uid);
|
| | | }
|
| | | |
| | |
|
| | | @Override
|
| | | @RequestSerializableByKeyService(key = "#teamUid")
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | public void inviteSucceedReward(Long teamUid) throws Exception{
|
| | | public void initCreateRedPackWin(Long bossId, Long teamUid) {
|
| | | UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(bossId);
|
| | | if (activeLog == null)
|
| | | return;
|
| | |
|
| | | // 小于2.0.5版本不增加
|
| | | if (!VersionUtil.greaterThan_2_0_5("appstore".equalsIgnoreCase(activeLog.getChannel()) ? "ios" : "android",
|
| | | activeLog.getVersionCode()))
|
| | | return;
|
| | |
|
| | | // 同一队员只记录一次
|
| | | int totalReward = redPackWinInviteMapper.countByUidAndTeamUidAndType(bossId, teamUid,
|
| | | RedPackWinInviteTypeEnum.zeroStageReward.name());
|
| | | if (totalReward > 0)
|
| | | return;
|
| | |
|
| | | // 获得红包
|
| | | RedPackWinInvite winInvite = new RedPackWinInvite();
|
| | | winInvite.setUid(bossId);
|
| | | winInvite.setTeamUid(teamUid);
|
| | | winInvite.setMoney(new BigDecimal(0));
|
| | | winInvite.setType(RedPackWinInviteTypeEnum.zeroStageReward);
|
| | | winInvite.setIdentifyCode(StringUtil.Md5(RedPackWinInviteTypeEnum.zeroStageReward.name() + ":" + teamUid));
|
| | | winInvite.setCreateTime(new Date());
|
| | | winInvite.setUpdateTime(new Date());
|
| | | redPackWinInviteMapper.insertSelective(winInvite);
|
| | | }
|
| | |
|
| | | @Override
|
| | | @RequestSerializableByKeyService(key = "#teamUid")
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | public void inviteSucceedReward(Long teamUid) throws Exception {
|
| | | // 是否在上线之后的邀请关系
|
| | | ThreeSale threeSale = threeSaleSerivce.getByWorkerIdAndTime(teamUid, Constant.RED_PACK_REWARD_TIME);
|
| | | ThreeSale threeSale = threeSaleSerivce.getByWorkerIdAndTime(teamUid,
|
| | | TimeUtil.convertDateToTemp(Constant.RED_PACK_ONLINE_TIME));
|
| | | if (threeSale == null)
|
| | | return;
|
| | | |
| | |
|
| | | // 上级id
|
| | | Long bossId = threeSale.getBoss().getId();
|
| | | UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(bossId);
|
| | | if (activeLog == null)
|
| | | return;
|
| | | |
| | |
|
| | | // 小于2.0.2版本不增加
|
| | | if (!VersionUtil.greaterThan_2_1("appstore".equalsIgnoreCase(activeLog.getChannel()) ? "ios" : "android",
|
| | | if (!VersionUtil.greaterThan_2_0_5("appstore".equalsIgnoreCase(activeLog.getChannel()) ? "ios" : "android",
|
| | | activeLog.getVersionCode()))
|
| | | return;
|
| | |
|
| | | int totalRewardZero = redPackWinInviteMapper.countByUidAndTeamUidAndType(bossId, teamUid,
|
| | | RedPackWinInviteTypeEnum.zeroStageReward.name());
|
| | | if (totalRewardZero <= 0)
|
| | | return;
|
| | |
|
| | | // 同一队员奖励一次
|
| | | int totalReward = redPackWinInviteMapper.countByUidAndTeamUidAndType(bossId, teamUid, RedPackWinInviteTypeEnum.oneStageReward.name());
|
| | | int totalReward = redPackWinInviteMapper.countByUidAndTeamUidAndType(bossId, teamUid,
|
| | | RedPackWinInviteTypeEnum.oneStageReward.name());
|
| | | if (totalReward > 0)
|
| | | return;
|
| | | |
| | |
|
| | | // 建立邀请关系时间超过20天
|
| | | Long succeedTime = threeSale.getSucceedTime();
|
| | | Date endDate = DateUtil.plusDayDate(Constant.ONE_STAGE_LIMIT_DAYS, new Date(succeedTime));
|
| | | if (endDate.getTime() < java.lang.System.currentTimeMillis())
|
| | | return;
|
| | | |
| | |
|
| | | // 绑定电话号码和微信
|
| | | UserInfo userInfo = userInfoService.selectByPKey(teamUid);
|
| | | if (userInfo == null || StringUtil.isNullOrEmpty(userInfo.getPhone()) || StringUtil.isNullOrEmpty(userInfo.getWxOpenId())) |
| | | if (userInfo == null || StringUtil.isNullOrEmpty(userInfo.getPhone())
|
| | | || StringUtil.isNullOrEmpty(userInfo.getWxOpenId()))
|
| | | return;
|
| | | |
| | |
|
| | | // 授权淘宝
|
| | | UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(teamUid);
|
| | | if (taoBaoInfo == null || StringUtil.isNullOrEmpty(taoBaoInfo.getTaoBaoUid()))
|
| | | return;
|
| | | |
| | |
|
| | | // 好友产生一笔返利订单(自购)且 24 小时内不失效;
|
| | | long validOrder = commonOrderService.count24HValidOrderByUid(teamUid, new Date(succeedTime));
|
| | | if (validOrder < 1) |
| | | if (validOrder < 1)
|
| | | return;
|
| | | |
| | |
|
| | | // 奖励金额
|
| | | BigDecimal money = Constant.ONE_STAGE_MONEY;
|
| | | |
| | |
|
| | | // 获得红包
|
| | | RedPackWinInvite winInvite = new RedPackWinInvite();
|
| | | winInvite.setCreateTime(new Date());
|
| | |
| | | winInvite.setUid(bossId);
|
| | | winInvite.setTeamUid(teamUid);
|
| | | winInvite.setMoney(money);
|
| | | winInvite.setIdentifyCode(StringUtil.Md5(RedPackWinInviteTypeEnum.oneStageReward.name() + ":" + teamUid));
|
| | | redPackWinInviteMapper.insertSelective(winInvite);
|
| | | |
| | |
|
| | | // 增加红包
|
| | | redPackBalanceService.addRedPack(bossId, money, RedPackDetailFactory.createInvite(winInvite));
|
| | | |
| | |
|
| | | // 消息
|
| | | MsgRedPackTeamRewardContentDTO dto = new MsgRedPackTeamRewardContentDTO();
|
| | | dto.setNickName(userInfo.getNickName());
|
| | | dto.setPortrait(userInfo.getPortrait());
|
| | | userMoneyMsgNotificationService.teamRedPackRewardMsg(bossId, MsgTypeMoneyTypeEnum.redPackOneStageReward,
|
| | | money, "队员(好友)完成第一阶段", new Gson().toJson(dto));
|
| | | userMoneyMsgNotificationService.teamRedPackRewardMsg(bossId, MsgTypeMoneyTypeEnum.redPackOneStageReward, money,
|
| | | "粉丝(好友)完成第一阶段", new Gson().toJson(dto));
|
| | | }
|
| | | |
| | | |
| | |
|
| | | @RequestSerializableByKeyService(key = "#uid")
|
| | | @RedPackGetVersionLimit(uid = "#uid")
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | @Override
|
| | | public void orderArriveReward(Long uid, Integer source, String orderNo) throws Exception {
|
| | | public void inviteOrderArriveReward(Long uid, Integer source, String orderNo) throws Exception {
|
| | | if (uid == null || source == null || StringUtil.isNullOrEmpty(orderNo))
|
| | | return;
|
| | | |
| | | ThreeSale threeSale = threeSaleSerivce.getByWorkerIdAndTime(uid, Constant.RED_PACK_REWARD_TIME);
|
| | | if(threeSale == null)
|
| | |
|
| | | // 获取订单对应下单人
|
| | | List<CommonOrder> list = commonOrderService.listBySourceTypeAndOrderId(source, orderNo);
|
| | | if (list == null || list.isEmpty())
|
| | | return;
|
| | | bossReward(threeSale.getBoss().getId(), uid, source, orderNo);
|
| | | }
|
| | | |
| | | |
| | | /**
|
| | | * 上级奖励
|
| | | * @param uid
|
| | | * @param teamUid
|
| | | * @param source
|
| | | * @param orderNo
|
| | | * @throws Exception
|
| | | */
|
| | | @Transactional
|
| | | private void bossReward(Long bossId, Long teamUid, Integer source, String orderNo) throws Exception {
|
| | | UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(bossId);
|
| | | if (activeLog == null) |
| | |
|
| | | CommonOrder commonOrder = list.get(0);
|
| | | if (commonOrder == null || commonOrder.getUserInfo() == null)
|
| | | return;
|
| | | |
| | | // 小于2.0.2版本不增加
|
| | | if (!VersionUtil.greaterThan_2_1("appstore".equalsIgnoreCase(activeLog.getChannel()) ? "ios" : "android",
|
| | | activeLog.getVersionCode()))
|
| | |
|
| | | // 下单人id
|
| | | Long teamUid = commonOrder.getUserInfo().getId();
|
| | | if (teamUid == null)
|
| | | return;
|
| | | |
| | |
|
| | | // 验证上下级关系
|
| | | ThreeSale threeSale = threeSaleSerivce.getByWorkerIdAndTime(teamUid,
|
| | | TimeUtil.convertDateToTemp(Constant.RED_PACK_ONLINE_TIME));
|
| | | if (threeSale == null || threeSale.getBoss().getId().longValue() != uid.longValue())
|
| | | return;
|
| | |
|
| | | // 第一阶段(验证)
|
| | | RedPackWinInvite oneStage = redPackWinInviteMapper.getByUidAndTeamUidAndType(bossId, teamUid, RedPackWinInviteTypeEnum.oneStageReward.name());
|
| | | RedPackWinInvite oneStage = redPackWinInviteMapper.getByUidAndTeamUidAndType(uid, teamUid,
|
| | | RedPackWinInviteTypeEnum.oneStageReward.name());
|
| | | if (oneStage == null)
|
| | | return;
|
| | | |
| | |
|
| | | // 第二阶段(验证)
|
| | | RedPackWinInvite twoStage = redPackWinInviteMapper.getByUidAndTeamUidAndType(bossId, teamUid, RedPackWinInviteTypeEnum.twoStageReward.name());
|
| | | RedPackWinInvite twoStage = redPackWinInviteMapper.getByUidAndTeamUidAndType(uid, teamUid,
|
| | | RedPackWinInviteTypeEnum.twoStageReward.name());
|
| | | if (twoStage == null) {
|
| | | twoStageRewardToBoss(bossId, teamUid, oneStage.getCreateTime(), source, orderNo);
|
| | | twoStageRewardToBoss(uid, teamUid, oneStage.getCreateTime(), source, orderNo);
|
| | | return;
|
| | | } |
| | | |
| | | }
|
| | |
|
| | | // 第三阶段
|
| | | threeStageRewardToBoss(bossId, teamUid, twoStage.getCreateTime(), source, orderNo);
|
| | | threeStageRewardToBoss(uid, teamUid, twoStage.getCreateTime(), source, orderNo);
|
| | | }
|
| | | |
| | |
|
| | | /**
|
| | | * 上级奖励--第二阶段
|
| | | * 上级奖励--第二阶段
|
| | | * |
| | | * @param uid
|
| | | * @param source
|
| | | * @param orderNo
|
| | | * @param bossId
|
| | | */
|
| | | @Transactional
|
| | | private void twoStageRewardToBoss(Long bossId, Long teamUid, Date oneStageTime, Integer source, String orderNo) throws Exception{
|
| | | // 第一阶段完成之后的90天内 ; 队友产生的订单中(自购+分享),邀请人累计产生≥1 元奖金 |
| | | @Transactional(rollbackFor = Exception.class)
|
| | | private void twoStageRewardToBoss(Long bossId, Long teamUid, Date oneStageTime, Integer source, String orderNo)
|
| | | throws Exception {
|
| | | // 第一阶段完成之后的90天内 ; 队友产生的订单中(自购+分享),邀请人累计产生≥1 元奖金
|
| | | Date endDate = DateUtil.plusDayDate(Constant.TWO_STAGE_LIMIT_DAYS, oneStageTime);
|
| | | BigDecimal rewardMoney = hongBaoV2CountService.getShareRewardByTeamUid(bossId, teamUid, endDate);
|
| | |
|
| | | // 统计订单奖金 (“好友自购”和“好友分享”)
|
| | | BigDecimal rewardMoney = hongBaoV2CountService.getOrderRewardByTeamUid(bossId, teamUid, endDate);
|
| | | if (rewardMoney == null || rewardMoney.compareTo(Constant.TWO_STAGE_ORDER_REWARD_MIN) < 0)
|
| | | return;
|
| | | |
| | |
|
| | | // 计算奖励
|
| | | BigDecimal money = Constant.TWO_STAGE_MONEY_MIN;
|
| | | long total = redPackWinInviteMapper.countByUidAndType(bossId, RedPackWinInviteTypeEnum.twoStageReward.name());
|
| | | if (total > 0 && total < Constant.TWO_STAGE_MONEY_ADD_NUM) {
|
| | | long num = total % Constant.TWO_STAGE_MONEY_ADD_NUM;
|
| | | money = MoneyBigDecimalUtil.add(money, MoneyBigDecimalUtil.mul(Constant.TWO_STAGE_MONEY_ADD, new BigDecimal(num)));
|
| | | money = MoneyBigDecimalUtil.add(money,
|
| | | MoneyBigDecimalUtil.mul(Constant.TWO_STAGE_MONEY_ADD, new BigDecimal(num)));
|
| | | }
|
| | | |
| | |
|
| | | // 获得红包记录
|
| | | RedPackWinInvite winInvite = new RedPackWinInvite();
|
| | | winInvite.setUid(bossId);
|
| | |
| | | winInvite.setCreateTime(new Date());
|
| | | winInvite.setUpdateTime(new Date());
|
| | | winInvite.setType(RedPackWinInviteTypeEnum.twoStageReward);
|
| | | winInvite.setIdentifyCode(StringUtil.Md5(RedPackWinInviteTypeEnum.twoStageReward.name() + ":" + teamUid));
|
| | | redPackWinInviteMapper.insertSelective(winInvite);
|
| | | |
| | |
|
| | | // 4、增加红包
|
| | | redPackBalanceService.addRedPack(bossId, money, RedPackDetailFactory.createIncreaseReward(winInvite));
|
| | | |
| | |
|
| | | // 5、消息
|
| | | UserInfo userInfo = userInfoService.selectByPKey(teamUid);
|
| | | MsgRedPackTeamRewardContentDTO dto = new MsgRedPackTeamRewardContentDTO();
|
| | | dto.setNickName(userInfo.getNickName());
|
| | | dto.setPortrait(userInfo.getPortrait());
|
| | | userMoneyMsgNotificationService.teamRedPackRewardMsg(bossId, MsgTypeMoneyTypeEnum.redPackTwoStageReward,
|
| | | money, "队员(好友)完成第二阶段", new Gson().toJson(dto));
|
| | | userMoneyMsgNotificationService.teamRedPackRewardMsg(bossId, MsgTypeMoneyTypeEnum.redPackTwoStageReward, money,
|
| | | "粉丝(好友)完成第二阶段", new Gson().toJson(dto));
|
| | | }
|
| | | |
| | |
|
| | | /**
|
| | | * 上级奖励:次月开始产生满足条件的分享订单(分享订单实付款≥10元) 连续15个月 自然月获得(已到账)每月最高2元
|
| | | * |
| | | * @param uid
|
| | | * @param source
|
| | | * @param orderNo
|
| | | * @param bossId
|
| | | */
|
| | | @Transactional
|
| | | private void threeStageRewardToBoss(Long bossId, Long teamUid, Date twoStageTime, Integer source, String orderNo) throws Exception{
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | private void threeStageRewardToBoss(Long bossId, Long teamUid, Date twoStageTime, Integer source, String orderNo)
|
| | | throws Exception {
|
| | | // 二、三阶段不可同月
|
| | | if (DateUtil.isSameMonth(twoStageTime, new Date()))
|
| | | return;
|
| | | |
| | |
|
| | | // 是否已领取本月
|
| | | RedPackWinInvite threeStage = redPackWinInviteMapper.getByUidAndTeamUidAndTypeMonth(bossId, teamUid, RedPackWinInviteTypeEnum.threeStageReward.name());
|
| | | RedPackWinInvite threeStage = redPackWinInviteMapper.getByUidAndTeamUidAndTypeMonth(bossId, teamUid,
|
| | | RedPackWinInviteTypeEnum.threeStageReward.name());
|
| | | if (threeStage != null)
|
| | | return;
|
| | | |
| | | // 已奖励次数 |
| | | int totalNum = redPackWinInviteMapper.countByUidAndTeamUidAndType(bossId, teamUid, RedPackWinInviteTypeEnum.threeStageReward.name());
|
| | |
|
| | | // 已奖励次数
|
| | | int totalNum = redPackWinInviteMapper.countByUidAndTeamUidAndType(bossId, teamUid,
|
| | | RedPackWinInviteTypeEnum.threeStageReward.name());
|
| | | if (totalNum >= Constant.THREE_STAGE_REWARD_MONTH)
|
| | | return;
|
| | | |
| | |
|
| | | // 是否已间断
|
| | | int monthSpace = DateUtil.getMonthSpace(twoStageTime, new Date());
|
| | | if (monthSpace != totalNum + 1)
|
| | | if (monthSpace != totalNum + 1)
|
| | | return;
|
| | | |
| | | // 每月给你累计产生≥2 元
|
| | | BigDecimal rewardMoney = hongBaoV2CountService.getShareRewardByTeamUidLastMonth(bossId, teamUid);
|
| | |
|
| | | // 统计本月获得奖金 (“好友自购”和“好友分享”)
|
| | | BigDecimal rewardMoney = hongBaoV2CountService.getOrderRewardByTeamUidTheMonth(bossId, teamUid);
|
| | | if (rewardMoney == null || rewardMoney.compareTo(Constant.THREE_STAGE_ORDER_REWARD_MIN) < 0)
|
| | | return;
|
| | | |
| | |
|
| | | // 计算随机奖励
|
| | | double randomMoney = Constant.THREE_STAGE_RANDOM_MIN + Math.random() * (Constant.THREE_STAGE_RANDOM_MAX - Constant.THREE_STAGE_RANDOM_MIN);
|
| | | double randomMoney = Constant.THREE_STAGE_RANDOM_MIN
|
| | | + Math.random() * (Constant.THREE_STAGE_RANDOM_MAX - Constant.THREE_STAGE_RANDOM_MIN);
|
| | | // 保留两位小数
|
| | | BigDecimal money = new BigDecimal(randomMoney).setScale(2, BigDecimal.ROUND_HALF_UP);
|
| | | |
| | |
|
| | | // 3、获得红包记录
|
| | | RedPackWinInvite winInvite = new RedPackWinInvite();
|
| | | winInvite.setCreateTime(new Date());
|
| | |
| | | winInvite.setMoney(money);
|
| | | winInvite.setSource(source);
|
| | | winInvite.setOrderNo(orderNo);
|
| | | winInvite.setIdentifyCode(
|
| | | StringUtil.Md5(RedPackWinInviteTypeEnum.threeStageReward.name() + ":" + teamUid + "-" + monthSpace));
|
| | | redPackWinInviteMapper.insertSelective(winInvite);
|
| | | |
| | |
|
| | | // 4、增加红包
|
| | | redPackBalanceService.addRedPack(bossId, money, RedPackDetailFactory.createSeriesReward(winInvite));
|
| | | |
| | |
|
| | | // 消息
|
| | | UserInfo userInfo = userInfoService.selectByPKey(teamUid);
|
| | | MsgRedPackTeamRewardContentDTO dto = new MsgRedPackTeamRewardContentDTO();
|
| | | dto.setNickName(userInfo.getNickName());
|
| | | dto.setPortrait(userInfo.getPortrait());
|
| | | userMoneyMsgNotificationService.teamRedPackRewardMsg(bossId, MsgTypeMoneyTypeEnum.redPackThreeStageReward,
|
| | | money, "队员(好友)完成第三阶段连续[第"+ monthSpace + "个月]", new Gson().toJson(dto));
|
| | | money, "粉丝(好友)完成第三阶段连续[第" + monthSpace + "个月]", new Gson().toJson(dto));
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<RedPackWinProgressVO> getInviteProgressByWorkerId(Long uid, Long tid) {
|
| | | List<RedPackWinProgressVO> listVO = new ArrayList<RedPackWinProgressVO>();
|
| | | ThreeSale threeSale = threeSaleSerivce.getNearRelationByBossIdAndWorkerId(uid, tid);
|
| | | if (threeSale == null || threeSale.getSucceedTime() == null)
|
| | | return listVO;
|
| | |
|
| | | UserInfo userInfo = userInfoService.selectByPKey(tid);
|
| | | if (userInfo == null)
|
| | | return listVO;
|
| | |
|
| | | // 奖励记录
|
| | | List<RedPackWinInvite> listWin = redPackWinInviteMapper.getWinListByBossIdAndTeamUid(uid, tid);
|
| | | if (listWin == null || listWin.size() == 0)
|
| | | return listVO;
|
| | |
|
| | | int month = 1;
|
| | | for (RedPackWinInvite win : listWin) {
|
| | | if (win.getType() == RedPackWinInviteTypeEnum.zeroStageReward) {
|
| | | listVO.add(new RedPackWinProgressVO("成功注册", TimeUtil.formatDate(userInfo.getCreatetime())));
|
| | | listVO.add(new RedPackWinProgressVO("确立邀请", TimeUtil.formatDate(threeSale.getSucceedTime())));
|
| | | }
|
| | | String time = TimeUtil.formatDate(win.getCreateTime());
|
| | | BigDecimal money = win.getMoney().setScale(2);
|
| | | if (win.getType() == RedPackWinInviteTypeEnum.oneStageReward) {
|
| | | listVO.add(new RedPackWinProgressVO("第一阶段", time, money.toString()));
|
| | | continue;
|
| | | }
|
| | |
|
| | | if (win.getType() == RedPackWinInviteTypeEnum.twoStageReward) {
|
| | | listVO.add(new RedPackWinProgressVO("第二阶段", time, money.toString()));
|
| | | continue;
|
| | | }
|
| | |
|
| | | if (win.getType() == RedPackWinInviteTypeEnum.threeStageReward) {
|
| | | listVO.add(new RedPackWinProgressVO("第三阶段第" + month + "个月", time, money.toString()));
|
| | | month++;
|
| | | continue;
|
| | | }
|
| | | }
|
| | | return listVO;
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<RedPackWinInvite> getWinTopListByBossId(int page, int count, Long uid) {
|
| | | return redPackWinInviteMapper.getWinTopListByBossId(count * (page - 1), count, uid);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public long countWinTopListByBossId(Long uid) {
|
| | | return redPackWinInviteMapper.countWinTopListByBossId(uid);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public long countTeamNumByTid(Long uid, Long teamUid) {
|
| | | return redPackWinInviteMapper.countTeamNumByTid(uid, teamUid);
|
| | | }
|
| | |
|
| | | |
| | | @Override
|
| | | public List<RedPackWinInvite> query(long page, int count, String key, String type){
|
| | | return redPackWinInviteMapper.query(count * (page - 1), count, key, type);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public long count(String key, String type){
|
| | | Long count = redPackWinInviteMapper.count(key, type);
|
| | | if (count == null) {
|
| | | count = 0L;
|
| | | }
|
| | | return count;
|
| | | }
|
| | | }
|