Przeglądaj źródła

fix 领取权益

zoujiajian 3 lat temu
rodzic
commit
496f0a1d6e

+ 25 - 0
netflix-dao/src/main/java/com/cyksj/model/request/ReceiveBenefitsReq.java

@@ -0,0 +1,25 @@
+package com.cyksj.model.request;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/*
+ *项目名: netflix
+ *文件名: ReceiveBenefitsReq
+ *创建者: JavaZou
+ *创建时间:2023/2/27 16:16
+ */
+@Getter
+@Setter
+public class ReceiveBenefitsReq {
+	@NotNull
+	private Long goodsId;
+
+	@NotNull
+	private Long skuId;
+
+	@NotNull
+	private Long relationId;
+}

+ 1 - 1
netflix-service/src/main/java/com/cyksj/service/distribute/equipment/EquipmentDistributeFrontService.java

@@ -9,5 +9,5 @@ import com.cyksj.model.manage.views.GroupsRelationView;
  *创建时间:2023/2/23 16:19
  */
 public interface EquipmentDistributeFrontService {
-	GroupsRelationView useBenefits(Long userId, Long skuId);
+	GroupsRelationView useBenefits(Long userId, Long goodsId, Long skuId, Long relationId);
 }

+ 6 - 3
netflix-service/src/main/java/com/cyksj/service/distribute/equipment/impl/EquipmentDistributeFrontServiceImpl.java

@@ -44,7 +44,7 @@ public class EquipmentDistributeFrontServiceImpl implements EquipmentDistributeF
 	private final EquipmentUserReceiveBenefitsRecordMapper equipmentUserReceiveBenefitsRecordMapper;
 
 	@Override
-	public GroupsRelationView useBenefits(Long userId, Long skuId) {
+	public GroupsRelationView useBenefits(Long userId, Long goodsId, Long skuId, Long relationId) {
 		//减少获取权益机会
 		EquipmentUserChance chance = equipmentUserChanceMapper.selectOne(Wrappers.lambdaQuery(EquipmentUserChance.class)
 				.eq(EquipmentUserChance::getUserId, userId).last("limit 1"));
@@ -56,13 +56,16 @@ public class EquipmentDistributeFrontServiceImpl implements EquipmentDistributeF
 		if (update != 1) {
 			throw BusinessRuntimeException.getInstance("操作频繁,请刷新页面后重试");
 		}
-		Long relationId = null;
 		GroupsRelationView groupsRelationView = beanSearcher.searchFirst(GroupsRelationView.class, MapUtils.builder()
-				.field(GroupsRelationView::getSkuId, skuId)
+				.field(GroupsRelationView::getGoodsId, goodsId)
+				.field(GroupsRelationView::getId, relationId)
 				.orderBy(GroupsRelationView::getExpiryTime).asc()
 				.field(GroupsRelationView::getUserId, userId)
 				.build());
 		GoodsDonSku goodsDonSku = goodsDonSkuMapper.selectById(skuId);
+		if (goodsDonSku == null || !goodsDonSku.getGoodsId().equals(goodsId)) {
+			throw BusinessRuntimeException.getInstance("");
+		}
 		if (groupsRelationView == null) {
 			//领取权益时,没有车票的用户自动上车,获得对应车票
 			GroupsRelation relation = exchangeCodeService.getGroupTripsTicket(goodsDonSku, userId, null, OrderDon.Type.EQUIPMENT);

+ 12 - 0
netflix-web/src/main/java/com/cyksj/web/controller/coupon/CouponFrontController.java

@@ -266,4 +266,16 @@ public class CouponFrontController {
 		}
 		return GatewayResponse.SUCCESS.newBuilder().toResult(dto);
 	}
+
+	/**
+	 * 查询优惠券
+	 */
+	@GetMapping("/get/couponList")
+	public Result<List<CouponView>> getCouponList(@RequestParam(value = "couponIds") List<Long> couponIds) {
+		if (couponIds.isEmpty()) {
+			return GatewayResponse.SUCCESS.newBuilder().toResult();
+		}
+		List<CouponView> couponViews = beanSearcher.searchAll(CouponView.class, MapUtils.builder().field(CouponView::getId, couponIds).op(Operator.InList).build());
+		return GatewayResponse.SUCCESS.newBuilder().toResult(couponViews);
+	}
 }

+ 11 - 10
netflix-web/src/main/java/com/cyksj/web/controller/distribute/EquipmentDistributeController.java

@@ -15,6 +15,7 @@ import com.cyksj.mapper.manage.distribute.equipment.EquipmentUserChanceMapper;
 import com.cyksj.model.dto.EquipmentConfigDto;
 import com.cyksj.model.entity.*;
 import com.cyksj.model.manage.views.GroupsRelationView;
+import com.cyksj.model.request.ReceiveBenefitsReq;
 import com.cyksj.model.views.CouponUserView;
 import com.cyksj.model.views.EquipmentDistributeView;
 import com.cyksj.redis.RedisService;
@@ -27,14 +28,13 @@ import com.ejlchina.searcher.param.Operator;
 import com.ejlchina.searcher.util.MapBuilder;
 import com.ejlchina.searcher.util.MapUtils;
 import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.List;
 import java.util.Optional;
+import java.util.stream.Collectors;
 
 /*
  *项目名: netflix
@@ -108,11 +108,11 @@ public class EquipmentDistributeController {
 		Long userId = StpUserUtil.getLoginIdAsLong();
 		SysConfig config = sysConfigService.getOne(Wrappers.lambdaQuery(SysConfig.class)
 				.eq(SysConfig::getSysKey, Constant.EQUIPMENT_DISTRIBUTE_KEY).last("limit 1"));
-		List<Long> goodsIdList = null;
+		List<Long> goodsIds = null;
 		if (config != null) {
 			String sysValue = config.getSysValue();
 			if (StrUtil.isNotBlank(sysValue)) {
-				goodsIdList = Jsons.parseList(sysValue, Long.class);
+				goodsIds = Jsons.parseList(sysValue, GoodsDonSku.class).stream().map(GoodsDonSku::getGoodsId).collect(Collectors.toList());
 			}
 		}
 		MapBuilder builder = MapUtils.builder()
@@ -121,8 +121,8 @@ public class EquipmentDistributeController {
 				.field(GroupsRelationView::getGoodsSecondType, 2)
 				.field(GroupsRelationView::getStatus, "validity")
 				.field(GroupsRelationView::getExpiryTime).op(Operator.NotNull);
-		if (goodsIdList != null) {
-			builder.field(GroupsRelationView::getGoodsId, goodsIdList).op(Operator.InList);
+		if (!goodsIds.isEmpty()) {
+			builder.field(GroupsRelationView::getGoodsId, goodsIds).op(Operator.InList);
 		}
 		List<GroupsRelationView> list = beanSearcher.searchAll(GroupsRelationView.class, builder.build());
 		return GatewayResponse.SUCCESS.newBuilder().toResult(list);
@@ -132,7 +132,8 @@ public class EquipmentDistributeController {
 	 * 领取权益
 	 */
 	@PostMapping("/use/benefits")
-	public Result<GroupsRelationView> useBenefits(Long skuId) throws Exception {
+	public Result<GroupsRelationView> useBenefits(@RequestBody @Validated ReceiveBenefitsReq req) throws Exception {
+		Long goodsId = req.getGoodsId(), skuId = req.getSkuId(), relationId = req.getRelationId();
 		Long userId = StpUserUtil.getLoginIdAsLong();
 		SysConfig config = sysConfigService.getOne(Wrappers.lambdaQuery(SysConfig.class)
 				.eq(SysConfig::getSysKey, Constant.EQUIPMENT_DISTRIBUTE_KEY).last("limit 1"));
@@ -150,7 +151,7 @@ public class EquipmentDistributeController {
 		if (first.isEmpty()) {
 			throw BusinessRuntimeException.getInstance("暂无该车票权益");
 		}
-		GroupsRelationView groupsRelationView = equipmentDistributeFrontService.useBenefits(userId, skuId);
+		GroupsRelationView groupsRelationView = equipmentDistributeFrontService.useBenefits(userId, goodsId, skuId, relationId);
 		return GatewayResponse.SUCCESS.newBuilder().toResult(groupsRelationView);
 	}