|
|
@@ -55,6 +55,8 @@ public class VipFrontServiceImpl implements VipFrontService {
|
|
|
|
|
|
private final OrderDonMapper orderDonMapper;
|
|
|
|
|
|
+ private final GoodsDonSkuMapper goodsDonSkuMapper;
|
|
|
+
|
|
|
@Override
|
|
|
public void fillVipInfo(Long userId, VipUserPageResp vipUserPageResp) {
|
|
|
SysConfig sysConfig = sysConfigMapper.selectOne(Wrappers.lambdaQuery(SysConfig.class).eq(SysConfig::getSysKey, Constant.VIP_FEE_KEY).last("limit 1"));
|
|
|
@@ -120,47 +122,52 @@ public class VipFrontServiceImpl implements VipFrontService {
|
|
|
List<Long> deductRelationIds = new ArrayList<>();
|
|
|
BigDecimal deductMoney = BigDecimal.ZERO;
|
|
|
BigDecimal vipMoney = getVipMoney();
|
|
|
+ //会员规格
|
|
|
+ Set<Long> goodsIds = goodsDonSkuMapper.selectList(Wrappers.lambdaQuery(GoodsDonSku.class)
|
|
|
+ .in(GoodsDonSku::getId, vipSkuIds)).stream().map(GoodsDonSku::getGoodsId).collect(Collectors.toSet());
|
|
|
List<GroupsRelationView> relations = beanSearcher.searchAll(GroupsRelationView.class, MapUtils.builder()
|
|
|
- .field(GroupsRelationView::getSkuId, vipSkuIds).op(Operator.InList)
|
|
|
+ .field(GroupsRelationView::getGoodsId, goodsIds).op(Operator.InList)
|
|
|
.field(GroupsRelationView::getUserId, userIdList).op(Operator.InList)
|
|
|
.field(GroupsRelationView::getIsVip, false)
|
|
|
.field(GroupsRelationView::getExpiryTime, DateTime.now()).op(Operator.GreaterThan)
|
|
|
.orderBy(GroupsRelationView::getExpiryTime).desc()
|
|
|
.build());
|
|
|
- Set<Long> deductSkuIds = null;
|
|
|
+ Set<Long> deductGoodsIds = null;
|
|
|
List<GroupsRelationView> deductRelations = null;
|
|
|
for (GroupsRelationView relation : relations) {
|
|
|
- if (deductSkuIds == null) {
|
|
|
- deductSkuIds = new HashSet<>();
|
|
|
+ if (deductGoodsIds == null) {
|
|
|
+ deductGoodsIds = new HashSet<>();
|
|
|
}
|
|
|
if (deductRelations == null) {
|
|
|
deductRelations = new ArrayList<>();
|
|
|
}
|
|
|
- Long vipSkuId = relation.getSkuId();
|
|
|
- if (deductSkuIds.contains(vipSkuId)) {
|
|
|
+ Long goodsId = relation.getGoodsId();
|
|
|
+ if (deductGoodsIds.contains(goodsId)) {
|
|
|
continue;
|
|
|
}
|
|
|
- deductSkuIds.add(vipSkuId);
|
|
|
- Long goodsId = relation.getGoodsId();
|
|
|
+ Long skuId = relation.getSkuId();
|
|
|
+ deductGoodsIds.add(goodsId);
|
|
|
Long relationId = relation.getId();
|
|
|
Date relationExpiryTime = relation.getExpiryTime();
|
|
|
//GPT
|
|
|
- if (goodsId == Constant.GPT_PLUS_GID) {
|
|
|
- ChatgptUser chatgptUser = chatgptUserMapper.selectOne(Wrappers.lambdaQuery(ChatgptUser.class).eq(ChatgptUser::getRelationId, relationId).last("limit 1"));
|
|
|
- if (chatgptUser != null) {
|
|
|
- //获取抵扣金额
|
|
|
- deductMoney = deductMoney.add(getFinalDeductMoney(relationId, relation.getSkuId(), chatgptUser.getRenewSkuId(), chatgptUser.getRenewOrderId(), chatgptUser.getRenewExpiryTime(), relation.getStartTime(), relationExpiryTime, now, userIdList));
|
|
|
- }
|
|
|
- } else if (goodsId == Constant.CLAUDE_PRO_GID) {
|
|
|
- ClaudeUser claudeUser = claudeUserMapper.selectOne(Wrappers.lambdaQuery(ClaudeUser.class).eq(ClaudeUser::getRelationId, relationId).last("limit 1"));
|
|
|
- if (claudeUser != null) {
|
|
|
- //获取抵扣金额
|
|
|
- deductMoney = deductMoney.add(getFinalDeductMoney(relationId, relation.getSkuId(), claudeUser.getRenewSkuId(), claudeUser.getRenewOrderId(), claudeUser.getRenewExpiryTime(), relation.getStartTime(), relationExpiryTime, now, userIdList));
|
|
|
- }
|
|
|
- } else {
|
|
|
- //该车票抵扣金额
|
|
|
- deductMoney = deductMoney.add(getDeductMoneyFromTicket(vipSkuId, now, relation.getId(), relation.getStartTime(), relationExpiryTime));
|
|
|
- }
|
|
|
+// if (goodsId == Constant.GPT_PLUS_GID) {
|
|
|
+// ChatgptUser chatgptUser = chatgptUserMapper.selectOne(Wrappers.lambdaQuery(ChatgptUser.class).eq(ChatgptUser::getRelationId, relationId).last("limit 1"));
|
|
|
+// if (chatgptUser != null) {
|
|
|
+// //获取抵扣金额
|
|
|
+// deductMoney = deductMoney.add(getFinalDeductMoney(relationId, relation.getSkuId(), chatgptUser.getRenewSkuId(), chatgptUser.getRenewOrderId(), chatgptUser.getRenewExpiryTime(), relation.getStartTime(), relationExpiryTime, now, userIdList));
|
|
|
+// }
|
|
|
+// } else if (goodsId == Constant.CLAUDE_PRO_GID) {
|
|
|
+// ClaudeUser claudeUser = claudeUserMapper.selectOne(Wrappers.lambdaQuery(ClaudeUser.class).eq(ClaudeUser::getRelationId, relationId).last("limit 1"));
|
|
|
+// if (claudeUser != null) {
|
|
|
+// //获取抵扣金额
|
|
|
+// deductMoney = deductMoney.add(getFinalDeductMoney(relationId, relation.getSkuId(), claudeUser.getRenewSkuId(), claudeUser.getRenewOrderId(), claudeUser.getRenewExpiryTime(), relation.getStartTime(), relationExpiryTime, now, userIdList));
|
|
|
+// }
|
|
|
+// } else {
|
|
|
+// //该车票抵扣金额
|
|
|
+// deductMoney = deductMoney.add(getDeductMoneyFromTicket(skuId, now, relation.getId(), relation.getStartTime(), relationExpiryTime));
|
|
|
+// }
|
|
|
+ //该车票抵扣金额
|
|
|
+ deductMoney = deductMoney.add(getDeductMoneyFromTicket(skuId, now, relation.getId(), relation.getStartTime(), relationExpiryTime));
|
|
|
deductRelationIds.add(relationId);
|
|
|
//可抵扣车票
|
|
|
deductRelations.add(relation);
|