|
|
|
@ -8,26 +8,30 @@ import com.qniao.dam.api.query.right.user.request.UserCheckEnableRightBySdkQuery |
|
|
|
import com.qniao.dam.api.query.right.user.request.UserListRightByCustomerQueryParam; |
|
|
|
import com.qniao.dam.api.query.right.user.request.UserListRightByOperatorQueryParam; |
|
|
|
import com.qniao.dam.api.query.right.user.response.*; |
|
|
|
import com.qniao.dam.domain.aggregate.rewardconfig.entity.RewardConfig; |
|
|
|
import com.qniao.dam.domain.aggregate.right.entity.Right; |
|
|
|
import com.qniao.dam.domain.aggregate.right.entity.RightTerm; |
|
|
|
import com.qniao.dam.domain.aggregate.right.repository.RightRepository; |
|
|
|
import com.qniao.dam.domian.aggregate.pcur.constant.CardUsageTyepEnum; |
|
|
|
import com.qniao.dam.domian.aggregate.rewardconfig.constant.RewardTypeEnum; |
|
|
|
import com.qniao.dam.domian.aggregate.right.constant.RightNameEnum; |
|
|
|
import com.qniao.dam.domian.aggregate.right.constant.RightTypeEnum; |
|
|
|
import com.qniao.dam.domian.aggregate.right.constant.RightUnitEnum; |
|
|
|
import com.qniao.dam.infrastructure.persistent.dao.domain.RightDao; |
|
|
|
import com.qniao.dam.infrastructure.persistent.dao.domain.RightTermDao; |
|
|
|
import com.qniao.dam.query.marriageinformation.MarriageInformationQueryService; |
|
|
|
import com.qniao.dam.query.pcur.ProfileCardUsageRecordQueryService; |
|
|
|
import com.qniao.dam.query.rewardconfig.RewardConfigQueryService; |
|
|
|
import com.qniao.dam.query.right.RightQueryService; |
|
|
|
import com.qniao.dam.query.rightconsumerel.RightConsumeRelQueryService; |
|
|
|
import com.qniao.das.domian.aggregate.marriageinformation.MarriageInformation; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
import java.time.Duration; |
|
|
|
import java.time.LocalDateTime; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Objects; |
|
|
|
import java.util.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
@Slf4j |
|
|
|
@ -42,6 +46,12 @@ public class RightQueryServiceImpl implements RightQueryService { |
|
|
|
private RightRepository rightRepository; |
|
|
|
@Resource |
|
|
|
private RightConsumeRelQueryService rightConsumeRelQueryService; |
|
|
|
@Resource |
|
|
|
private RewardConfigQueryService rewardConfigQueryService; |
|
|
|
@Resource |
|
|
|
private MarriageInformationQueryService marriageInformationQueryService; |
|
|
|
@Resource |
|
|
|
private ProfileCardUsageRecordQueryService profileCardUsageRecordQueryService; |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<UserListRightByOperatorVo> listRightByOperator(UserListRightByOperatorQueryParam queryParam) { |
|
|
|
@ -88,6 +98,70 @@ public class RightQueryServiceImpl implements RightQueryService { |
|
|
|
return right; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<UserCardInfoVo> listCardInfo(Long userId, Long miId) { |
|
|
|
List<UserCardInfoVo> list = new ArrayList<>(); |
|
|
|
UserCardInfoVo profileCardInfo = new UserCardInfoVo(RightTypeEnum.PROFILE_CARD, 0); |
|
|
|
UserCardInfoVo contactCardInfo = new UserCardInfoVo(RightTypeEnum.CONTACT_CARD, 0); |
|
|
|
UserCardInfoVo matchCardInfo = new UserCardInfoVo(RightTypeEnum.MATCH_CARD, 0); |
|
|
|
//判断是否会员 |
|
|
|
Right vipRight = getUserVipInfo(userId, miId); |
|
|
|
if (Objects.nonNull(vipRight)) { |
|
|
|
if (Objects.equals(vipRight.getType(), RightTypeEnum.VIP)) { |
|
|
|
List<RewardConfig> vipRightList = rewardConfigQueryService.listVipRight(); |
|
|
|
for (RewardConfig rewardConfig : vipRightList) { |
|
|
|
if (RewardTypeEnum.VIP_PROFILE_CARD.equals(rewardConfig.getRewardType())) { |
|
|
|
profileCardInfo.setQuantity(Integer.valueOf(rewardConfig.getValue())); |
|
|
|
} |
|
|
|
if (RewardTypeEnum.VIP_CONTACT_CARD.equals(rewardConfig.getRewardType())) { |
|
|
|
contactCardInfo.setQuantity(Integer.valueOf(rewardConfig.getValue())); |
|
|
|
} |
|
|
|
if (RewardTypeEnum.VIP_MATCH_CARD.equals(rewardConfig.getRewardType())) { |
|
|
|
matchCardInfo.setQuantity(Integer.valueOf(rewardConfig.getValue())); |
|
|
|
} |
|
|
|
} |
|
|
|
} else if (Objects.equals(vipRight.getType(), RightTypeEnum.VIP_TRIAL)) { |
|
|
|
List<RewardConfig> vipTrialRightList = rewardConfigQueryService.listVipTrialRight(); |
|
|
|
for (RewardConfig rewardConfig : vipTrialRightList) { |
|
|
|
if (RewardTypeEnum.VIP_TRIAL_PROFILE_CARD.equals(rewardConfig.getRewardType())) { |
|
|
|
profileCardInfo.setQuantity(Integer.valueOf(rewardConfig.getValue())); |
|
|
|
} |
|
|
|
if (RewardTypeEnum.VIP_TRIAL_CONTACT_CARD.equals(rewardConfig.getRewardType())) { |
|
|
|
contactCardInfo.setQuantity(Integer.valueOf(rewardConfig.getValue())); |
|
|
|
} |
|
|
|
if (RewardTypeEnum.VIP_TRIAL_MATCH_CARD.equals(rewardConfig.getRewardType())) { |
|
|
|
matchCardInfo.setQuantity(Integer.valueOf(rewardConfig.getValue())); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
//没有会员判断是否实名认证 |
|
|
|
MarriageInformation marriageInformation = marriageInformationQueryService.queryByUserId(userId); |
|
|
|
if (StrUtil.isNotBlank(marriageInformation.getIdentityCard())) { |
|
|
|
profileCardInfo.setQuantity(20); |
|
|
|
contactCardInfo.setQuantity(10); |
|
|
|
} |
|
|
|
} |
|
|
|
//查询周期内免费卡使用次数 |
|
|
|
if (profileCardInfo.getQuantity() > 0) { |
|
|
|
int usageQuantity = profileCardUsageRecordQueryService.countUsageRecord(userId, CardUsageTyepEnum.FREE); |
|
|
|
profileCardInfo.setQuantity(profileCardInfo.getQuantity() >= usageQuantity ? profileCardInfo.getQuantity() - usageQuantity : 0); |
|
|
|
} |
|
|
|
|
|
|
|
//查询权益卡数量 |
|
|
|
int profileCardNum = rightDao.countCardRightNum(userId, miId, RightTypeEnum.PROFILE_CARD); |
|
|
|
profileCardInfo.setQuantity(profileCardInfo.getQuantity() + profileCardNum); |
|
|
|
int contactCardNum = rightDao.countCardRightNum(userId, miId, RightTypeEnum.CONTACT_CARD); |
|
|
|
contactCardInfo.setQuantity(contactCardInfo.getQuantity() + contactCardNum); |
|
|
|
int matchCardNum = rightDao.countCardRightNum(userId, miId, RightTypeEnum.MATCH_CARD); |
|
|
|
matchCardInfo.setQuantity(matchCardInfo.getQuantity() + matchCardNum); |
|
|
|
|
|
|
|
list.add(profileCardInfo); |
|
|
|
list.add(contactCardInfo); |
|
|
|
list.add(matchCardInfo); |
|
|
|
return list; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<UserListRightByCustomerVo> listRightByCustomer(UserListRightByCustomerQueryParam queryParam) { |
|
|
|
List<UserListRightByCustomerVo> customerVolist = new ArrayList<>(); |
|
|
|
|