zoujiajian 1 рік тому
батько
коміт
e752a72a86

+ 9 - 2
netflix-dao/src/main/java/com/cyksj/model/response/VipUserPageResp.java

@@ -1,10 +1,11 @@
 package com.cyksj.model.response;
 
+import com.cyksj.model.views.VipGoodsSkuFrontView;
 import lombok.Getter;
 import lombok.Setter;
 
 import java.math.BigDecimal;
-import java.util.Date;
+import java.util.List;
 
 /**
  * 项目名: yhlxj2
@@ -18,10 +19,16 @@ public class VipUserPageResp {
 	/**
 	 * 可抵扣金额
 	 */
-	private Date deductMoney;
+	private BigDecimal deductMoney;
 
 	/**
 	 * vip 费用
 	 */
 	private BigDecimal vipFee;
+
+	/**
+	 * 关联skus
+	 */
+	private List<VipGoodsSkuFrontView> skus;
+
 }

+ 13 - 0
netflix-service/src/main/java/com/cyksj/service/vip/VipFrontService.java

@@ -0,0 +1,13 @@
+package com.cyksj.service.vip;
+
+import com.cyksj.model.response.VipUserPageResp;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: VipFrontService
+ * 创建者: JavaZou
+ * 创建时间:2025/5/15 15:59
+ */
+public interface VipFrontService {
+	void fillVipInfo(long userId, VipUserPageResp vipUserPageResp);
+}

+ 68 - 0
netflix-service/src/main/java/com/cyksj/service/vip/impl/VipFrontServiceImpl.java

@@ -0,0 +1,68 @@
+package com.cyksj.service.vip.impl;
+
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.cyksj.common.constant.Constant;
+import com.cyksj.mapper.sys.SysConfigMapper;
+import com.cyksj.mapper.vip.VipGoodsSkuMapper;
+import com.cyksj.model.entity.SysConfig;
+import com.cyksj.model.entity.VipGoodsSku;
+import com.cyksj.model.manage.views.GroupsRelationView;
+import com.cyksj.model.response.VipUserPageResp;
+import com.cyksj.service.user.UserBindRelationService;
+import com.cyksj.service.vip.VipFrontService;
+import com.ejlchina.searcher.BeanSearcher;
+import com.ejlchina.searcher.param.Operator;
+import com.ejlchina.searcher.util.MapUtils;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 项目名: yhlxj2
+ * 文件名: VipFrontServiceImpl
+ * 创建者: JavaZou
+ * 创建时间:2025/5/15 16:00
+ */
+@Service
+@RequiredArgsConstructor
+public class VipFrontServiceImpl implements VipFrontService {
+	private final SysConfigMapper sysConfigMapper;
+
+	private final VipGoodsSkuMapper vipGoodsSkuMapper;
+
+	private final UserBindRelationService userBindRelationService;
+
+	private final BeanSearcher beanSearcher;
+
+	@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"));
+		if (sysConfig != null && StrUtil.isNotBlank(sysConfig.getSysValue())) {
+			vipUserPageResp.setVipFee(BigDecimal.valueOf(Integer.parseInt(sysConfig.getSysValue())));
+		}
+		//可抵扣价格
+		BigDecimal deductMoney = BigDecimal.ZERO;
+		List<Long> userIdList = userBindRelationService.getRelationUserIdList(userId, null);
+		List<Long> vipSkuIds = vipGoodsSkuMapper.selectList(null).stream().map(VipGoodsSku::getSkuId).collect(Collectors.toList());
+		//可有抵扣车票
+		Number count = beanSearcher.searchCount(GroupsRelationView.class, MapUtils.builder()
+				.field(GroupsRelationView::getUserId, userIdList).op(Operator.InList)
+				.field(GroupsRelationView::getSkuId, vipSkuIds).op(Operator.InList)
+				.field(GroupsRelationView::getExpiryTime, DateTime.now()).op(Operator.GreaterThan)
+				.build());
+		//可抵扣车票
+		if (count.intValue() > 0) {
+			for (Long vipSkuId : vipSkuIds) {
+
+			}
+		}
+		vipUserPageResp.setDeductMoney(deductMoney);
+	}
+}

+ 12 - 14
netflix-web/src/main/java/com/cyksj/web/controller/vip/VipController.java

@@ -4,6 +4,7 @@ import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.model.response.VipUserPageResp;
 import com.cyksj.model.views.VipGoodsSkuFrontView;
+import com.cyksj.service.vip.VipFrontService;
 import com.cyksj.web.util.StpUserUtil;
 import com.ejlchina.searcher.BeanSearcher;
 import com.ejlchina.searcher.util.MapUtils;
@@ -14,10 +15,10 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
-import java.math.BigDecimal;
 import java.util.List;
 
 /**
+ * server/银河会员
  * 项目名: yhlxj2
  * 文件名: VipController
  * 创建者: JavaZou
@@ -33,22 +34,19 @@ public class VipController {
 
 	private final HttpServletRequest request;
 
-	/**
-	 * 会员关联规格列表
-	 */
-	@GetMapping("/get/skus")
-	public Result<List<VipGoodsSkuFrontView>> getVipSkus() {
-		List<VipGoodsSkuFrontView> vipGoodsSkuFrontViews = beanSearcher.searchAll(VipGoodsSkuFrontView.class, MapUtils.flatBuilder(request.getParameterMap()).orderBy(VipGoodsSkuFrontView::getGoodsId).build());
-		return GatewayResponse.SUCCESS.newBuilder().toResult(vipGoodsSkuFrontViews);
-	}
+	private final VipFrontService vipFrontService;
 
 	/**
-	 * 会员可抵扣金额
+	 * 会员信息
 	 */
-	@GetMapping("/get/deduct/money")
-	public Result<VipUserPageResp> getDeductMoney() {
+	@GetMapping("/get/info")
+	public Result<VipUserPageResp> getVipInfo() {
 		long userId = StpUserUtil.getLoginIdAsLong();
-		BigDecimal deductMoney = BigDecimal.ZERO;
-		return GatewayResponse.SUCCESS.newBuilder().toResult();
+		VipUserPageResp vipUserPageResp = new VipUserPageResp();
+		//填充会员信息
+		vipFrontService.fillVipInfo(userId, vipUserPageResp);
+		List<VipGoodsSkuFrontView> vipGoodsSkuFrontViews = beanSearcher.searchAll(VipGoodsSkuFrontView.class, MapUtils.flatBuilder(request.getParameterMap()).orderBy(VipGoodsSkuFrontView::getGoodsId).build());
+		vipUserPageResp.setSkus(vipGoodsSkuFrontViews);
+		return GatewayResponse.SUCCESS.newBuilder().toResult(vipUserPageResp);
 	}
 }

+ 1 - 0
netflix-web/src/main/java/com/cyksj/web/controller/vip/VipUserOrderController.java

@@ -30,6 +30,7 @@ import java.util.Map;
 import java.util.Set;
 
 /**
+ * server/银河会员/订单
  * 项目名: yhlxj2
  * 文件名: VipUserOrderController
  * 创建者: JavaZou