|
|
@@ -408,7 +408,8 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
|
|
|
ticket.setPosterInfo(setGoodsPoster(ticket, u, userIds));
|
|
|
|
|
|
//续费升级折扣
|
|
|
- setRenewDiscount(ticket);
|
|
|
+ BigDecimal renewDiscount = getRenewDiscount(ticket.getGoodsId(), ticket.getSkuId(), ticket.getIsMirror(), ticket.getSkuNum());
|
|
|
+ ticket.setDiscount(renewDiscount);
|
|
|
|
|
|
if (CollUtil.isNotEmpty(renewReduceSkuIds) && renewReduceSkuIds.contains(ticket.getSkuId())) {
|
|
|
ticket.setIsRenewReduce(true);
|
|
|
@@ -1772,6 +1773,47 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<UserMirrorTicketView> getMirrorTicket(long userId) {
|
|
|
+ User u = userMapper.selectById(userId);
|
|
|
+ if (u == null) throw BusinessRuntimeException.getGatewayApiCode(GatewayApiCode.CMS_TOKEN_VALID);
|
|
|
+ if (u.getIsBlack()) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ List<Long> userIds = userBindRelationService.getRelationUserIdList(userId, u);
|
|
|
+ MapBuilder builder = MapUtils.flatBuilder(request.getParameterMap());
|
|
|
+ DateTime now = DateTime.now();
|
|
|
+ List<UserMirrorTicketView> list = beanSearcher.searchAll(UserMirrorTicketView.class, builder
|
|
|
+ .field(UserMirrorTicketView::getUserId, userIds).op(Operator.InList)
|
|
|
+ .field(UserMirrorTicketView::getIsMirror, Boolean.TRUE)
|
|
|
+ //过期7天内的镜像车票都展示
|
|
|
+ .field(UserMirrorTicketView::getExpiryTime, DateUtil.offsetDay(now, -7))
|
|
|
+ .orderBy(RenewalView::getExpiryTime).asc()
|
|
|
+ .build());
|
|
|
+ list.forEach(ticket -> {
|
|
|
+ if (ticket.getExpiryTime() != null) {
|
|
|
+ String remainDays = DateUtil.formatBetween(now, ticket.getExpiryTime(), BetweenFormater.Level.DAY);
|
|
|
+ if ("0天".equals(remainDays)) {
|
|
|
+ remainDays = "小于1天";
|
|
|
+ } else {
|
|
|
+ //当天也算
|
|
|
+ int days = Integer.parseInt(remainDays.substring(0, remainDays.indexOf("天")));
|
|
|
+ remainDays = days + 1 + "天";
|
|
|
+ }
|
|
|
+ ticket.setRemainDays(remainDays);
|
|
|
+ ticket.setTotal(DateUtil.betweenDay(ticket.getStartTime(), ticket.getExpiryTime(), false) + 1);
|
|
|
+ }
|
|
|
+ if (ticket.getExpiryTime() != null) {
|
|
|
+ ticket.setExpiryTimeStr(DateUtil.format(ticket.getExpiryTime(), "yyyy-MM-dd"));
|
|
|
+ }
|
|
|
+ //续费升级折扣
|
|
|
+ BigDecimal renewDiscount = getRenewDiscount(ticket.getGoodsId(), ticket.getSkuId(), ticket.getIsMirror(), ticket.getSkuNum());
|
|
|
+ ticket.setDiscount(renewDiscount);
|
|
|
+ });
|
|
|
+ userLoginRecordService.saveUserLoginDayRecord(userId);
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
private DistributePosterGoodsDetailView setGoodsPoster(RenewalView ticket, User user, List<Long> userIds) {
|
|
|
DistributePosterGoodsDetailView distributePosterGoodsDetailView = beanSearcher.searchFirst(DistributePosterGoodsDetailView.class, MapUtils.flatBuilder(request.getParameterMap())
|
|
|
.field(DistributePosterGoodsFrontView::getGoodsId, ticket.getGoodsId()).build());
|
|
|
@@ -1819,21 +1861,22 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
|
|
|
return distributePosterGoodsDetailView;
|
|
|
}
|
|
|
|
|
|
- private void setRenewDiscount(RenewalView ticket) {
|
|
|
+ private BigDecimal getRenewDiscount(Long goodsId, Long skuId, Boolean isMirror, Integer skuNum) {
|
|
|
//镜像或者独立规格
|
|
|
- if (ticket.getIsMirror() || (ticket.getSkuNum() != null && ticket.getSkuNum() == 1)) {
|
|
|
+ if (isMirror || (skuNum != null && skuNum == 1)) {
|
|
|
RenewUpgradePackage renewUpgradePackage = renewUpgradePackageMapper.selectOne(Wrappers.lambdaQuery(RenewUpgradePackage.class)
|
|
|
- .eq(RenewUpgradePackage::getGoodsId, ticket.getGoodsId())
|
|
|
+ .eq(RenewUpgradePackage::getGoodsId, goodsId)
|
|
|
.eq(RenewUpgradePackage::getStatus, 1)
|
|
|
.eq(RenewUpgradePackage::getDeleted, 1)
|
|
|
- .eq(RenewUpgradePackage::getSkuId, ticket.getSkuId())
|
|
|
+ .eq(RenewUpgradePackage::getSkuId, skuId)
|
|
|
.orderByAsc(RenewUpgradePackage::getDiscount)
|
|
|
.last("limit 1")
|
|
|
.select(RenewUpgradePackage::getId, RenewUpgradePackage::getDiscount));
|
|
|
if (renewUpgradePackage != null) {
|
|
|
- ticket.setDiscount(renewUpgradePackage.getDiscount());
|
|
|
+ return renewUpgradePackage.getDiscount();
|
|
|
}
|
|
|
}
|
|
|
+ return null;
|
|
|
}
|
|
|
|
|
|
private void setMirrorTicketInfo(RenewalView ticket) {
|