소스 검색

fix 实物分销权益json格式

zoujiajian 3 년 전
부모
커밋
c427fbf0b5

+ 10 - 0
netflix-dao/src/main/java/com/cyksj/model/manage/request/ReqGoodsSkuInsert.java

@@ -68,6 +68,16 @@ public class ReqGoodsSkuInsert {
          */
         private Boolean status;
 
+        /**
+         * 是否开启实物车票时长权益
+         */
+        private Boolean isBenefits;
+
+        /**
+         * 权益列表
+         */
+        private String benefitsList;
+
     }
 
 }

+ 1 - 1
netflix-dao/src/main/java/com/cyksj/model/views/UserTicketClearedRecordView.java

@@ -57,7 +57,7 @@ public class UserTicketClearedRecordView {
 	private Boolean deleted;
 
 	@DbField("g.title")
-	private String goodsTitle;
+	private String platform;
 
 	@DbField("gdk.spec_val")
 	private String specVal;

+ 2 - 2
netflix-service/src/main/java/com/cyksj/service/mange/impl/CmsOrderDonServiceImpl.java

@@ -80,9 +80,9 @@ public class CmsOrderDonServiceImpl extends ServiceImpl<OrderDonMapper,OrderDon>
                 if (sku.getIsBenefits()) {
                     if (StrUtil.isNotEmpty(sku.getBenefitsList())) {
                         try {
-                            List<Long> skuIds = Jsons.parseList(sku.getBenefitsList(), Long.class);
+                            List<GoodsDonSku> goodsDonSkus = Jsons.parseList(sku.getBenefitsList(), GoodsDonSku.class);
                             //自购实物 获取权益
-                            isReceivedAll = userRealOrderBenefitsService.getPayRealGoodsBenefits(orderDon.getUserId(), orderDon.getId(), skuIds);
+                            isReceivedAll = userRealOrderBenefitsService.getPayRealGoodsBenefits(orderDon.getUserId(), orderDon.getId(), goodsDonSkus);
                         } catch (Exception e) {
 
                         }

+ 2 - 1
netflix-service/src/main/java/com/cyksj/service/order/UserRealOrderBenefitsService.java

@@ -1,5 +1,6 @@
 package com.cyksj.service.order;
 
+import com.cyksj.model.entity.GoodsDonSku;
 import com.cyksj.model.manage.views.GroupsRelationView;
 import com.cyksj.model.views.UserAvailableGoodsTicketView;
 
@@ -16,7 +17,7 @@ public interface UserRealOrderBenefitsService {
 	/**
 	 * 获取购买实物权益
 	 */
-	Boolean getPayRealGoodsBenefits(Long userId, Long orderId, List<Long> skuIds);
+	Boolean getPayRealGoodsBenefits(Long userId, Long orderId, List<GoodsDonSku> skuIds);
 
 	/**
 	 * 扣除实物权益

+ 40 - 41
netflix-service/src/main/java/com/cyksj/service/order/impl/UserRealOrderBenefitsImpl.java

@@ -55,48 +55,47 @@ public class UserRealOrderBenefitsImpl implements UserRealOrderBenefitsService {
 	private final OrderDonMapper orderDonMapper;
 
 	@Override
-	public Boolean getPayRealGoodsBenefits(Long userId, Long orderId, List<Long> skuIds) {
+	public Boolean getPayRealGoodsBenefits(Long userId, Long orderId, List<GoodsDonSku> skuIds) {
 		Boolean isReceivedAll = true;
-		for (Long skuId : skuIds) {
-			GoodsDonSku goodsDonSku = goodsDonSkuMapper.selectById(skuId);
-			if (goodsDonSku != null) {
-				List<GroupsRelationView> relationViewList = beanSearcher.searchAll(GroupsRelationView.class, MapUtils.builder()
-						.field(GroupsRelationView::getGoodsId, goodsDonSku.getGoodsId())
-						.field(GroupsRelationView::getSkuId, skuId)
-						.field(GroupsRelationView::getUserId, userId)
-						.field(GroupsRelationView::getStatus, GroupsRelation.Status.validity.name())
-						.build());
-				//是否有该规格车票,若无直接发放车票
-				if (CollUtil.isEmpty(relationViewList)) {
-					//领取权益时,没有车票的用户自动上车,获得对应车票
-					GroupsRelation relation = exchangeCodeService.getGroupTripsTicket(goodsDonSku, userId, null, OrderDon.Type.PAY_EQUIPMENT);
-					//多给三天
-					DateTime expiryTime = DateUtil.offsetDay(relation.getExpiryTime(), 3);
-					groupsRelationMapper.update(null, Wrappers.lambdaUpdate(GroupsRelation.class)
-							.set(GroupsRelation::getExpiryTime, expiryTime)
-							.eq(GroupsRelation::getId, relation.getId()));
-					saveReceiveBenefitsRecord(userId, skuId, orderId, relation.getOrderId(), relation.getId(), goodsDonSku.getMonths(), 1);
-				} else if (relationViewList.size() == 1) {
-					//若有且只有一张增加时长
-					GroupsRelationView groupsRelationView = relationViewList.get(0);
-					Date expiryTime = groupsRelationView.getExpiryTime();
-					if (expiryTime == null) {
-						throw BusinessRuntimeException.getInstance("该车位暂未发车,请发车后再领取权益");
-					}
-					DateTime updateExpiryTime = DateUtil.offset(expiryTime, DateField.MONTH, goodsDonSku.getMonths());
-					updateExpiryTime = DateUtil.offsetDay(updateExpiryTime, 3);
-					groupsRelationMapper.update(null, Wrappers.lambdaUpdate(GroupsRelation.class)
-							.eq(GroupsRelation::getId, groupsRelationView.getId())
-							.eq(GroupsRelation::getUserId, userId)
-							.set(GroupsRelation::getExpiryTime, updateExpiryTime));
-					groupsRelationView.setUpdateExpiryTime(updateExpiryTime);
-					saveReceiveBenefitsRecord(userId, skuId, orderId, null, groupsRelationView.getId(), goodsDonSku.getMonths(), 1);
-				} else {
-					//若有该规格多张车票,保存可获取的车票权益 以供用户自行选择
-					saveAvailableBenefits(userId, skuId, orderId);
-					if (isReceivedAll) {
-						isReceivedAll = false;
-					}
+		for (GoodsDonSku sku : skuIds) {
+			Long skuId = sku.getId();
+			Long goodsId = sku.getGoodsId();
+			List<GroupsRelationView> relationViewList = beanSearcher.searchAll(GroupsRelationView.class, MapUtils.builder()
+					.field(GroupsRelationView::getGoodsId, goodsId)
+					.field(GroupsRelationView::getSkuId, skuId)
+					.field(GroupsRelationView::getUserId, userId)
+					.field(GroupsRelationView::getStatus, GroupsRelation.Status.validity.name())
+					.build());
+			//是否有该规格车票,若无直接发放车票
+			if (CollUtil.isEmpty(relationViewList)) {
+				//领取权益时,没有车票的用户自动上车,获得对应车票
+				GroupsRelation relation = exchangeCodeService.getGroupTripsTicket(sku, userId, null, OrderDon.Type.PAY_EQUIPMENT);
+				//多给三天
+				DateTime expiryTime = DateUtil.offsetDay(relation.getExpiryTime(), 3);
+				groupsRelationMapper.update(null, Wrappers.lambdaUpdate(GroupsRelation.class)
+						.set(GroupsRelation::getExpiryTime, expiryTime)
+						.eq(GroupsRelation::getId, relation.getId()));
+				saveReceiveBenefitsRecord(userId, skuId, orderId, relation.getOrderId(), relation.getId(), sku.getMonths(), 1);
+			} else if (relationViewList.size() == 1) {
+				//若有且只有一张增加时长
+				GroupsRelationView groupsRelationView = relationViewList.get(0);
+				Date expiryTime = groupsRelationView.getExpiryTime();
+				if (expiryTime == null) {
+					throw BusinessRuntimeException.getInstance("该车位暂未发车,请发车后再领取权益");
+				}
+				DateTime updateExpiryTime = DateUtil.offset(expiryTime, DateField.MONTH, sku.getMonths());
+				updateExpiryTime = DateUtil.offsetDay(updateExpiryTime, 3);
+				groupsRelationMapper.update(null, Wrappers.lambdaUpdate(GroupsRelation.class)
+						.eq(GroupsRelation::getId, groupsRelationView.getId())
+						.eq(GroupsRelation::getUserId, userId)
+						.set(GroupsRelation::getExpiryTime, updateExpiryTime));
+				groupsRelationView.setUpdateExpiryTime(updateExpiryTime);
+				saveReceiveBenefitsRecord(userId, skuId, orderId, null, groupsRelationView.getId(), sku.getMonths(), 1);
+			} else {
+				//若有该规格多张车票,保存可获取的车票权益 以供用户自行选择
+				saveAvailableBenefits(userId, skuId, orderId);
+				if (isReceivedAll) {
+					isReceivedAll = false;
 				}
 			}
 		}

+ 40 - 40
netflix-web/src/main/java/com/cyksj/config/SaTokenConfigure.java

@@ -1,40 +1,40 @@
-//package com.cyksj.config;
-//
-//import cn.dev33.satoken.interceptor.SaAnnotationInterceptor;
-//import cn.dev33.satoken.interceptor.SaRouteInterceptor;
-//import org.springframework.context.annotation.Configuration;
-//import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
-//import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-//
-//import java.util.List;
-//
-///*
-// *项目名: yicang-admin
-// *文件名: SaTokenConfigure
-// *创建者: JavaZou
-// *创建时间:2022/12/19 10:01
-// */
-//@Configuration
-//public class SaTokenConfigure implements WebMvcConfigurer {
-//	// 注册拦截器
-//	@Override
-//	public void addInterceptors(InterceptorRegistry registry) {
-//		registry.addInterceptor(new SaRouteInterceptor())
-//				.addPathPatterns(List.of("/manage/**", "/manager/**", "/sys/update", "/sys/delete/**"))
-//				.excludePathPatterns(List.of("/manage/admin/login",
-//						"/manage/admin/get/loginInfo",
-//						"/manage/corp/**",
-//						"/manage/coupon/corp/send",
-//						"/manage/coupon",
-//						"/manage/register/wx/refund/notify",
-//						"/manage/register/unLimit",
-//						"/manage/gzh/msg/notify",
-//						"/manage/admin/send/template",
-//						"/manage/order/put/status/*",
-//						"/manage/user/get/loginInfo",
-//						"/manage/user/login"));
-//		//注解权限校验
-//		registry.addInterceptor(new SaAnnotationInterceptor()).addPathPatterns("/**");
-//	}
-//}
-//
+package com.cyksj.config;
+
+import cn.dev33.satoken.interceptor.SaAnnotationInterceptor;
+import cn.dev33.satoken.interceptor.SaRouteInterceptor;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+import java.util.List;
+
+/*
+ *项目名: yicang-admin
+ *文件名: SaTokenConfigure
+ *创建者: JavaZou
+ *创建时间:2022/12/19 10:01
+ */
+@Configuration
+public class SaTokenConfigure implements WebMvcConfigurer {
+	// 注册拦截器
+	@Override
+	public void addInterceptors(InterceptorRegistry registry) {
+		registry.addInterceptor(new SaRouteInterceptor())
+				.addPathPatterns(List.of("/manage/**", "/manager/**", "/sys/update", "/sys/delete/**"))
+				.excludePathPatterns(List.of("/manage/admin/login",
+						"/manage/admin/get/loginInfo",
+						"/manage/corp/**",
+						"/manage/coupon/corp/send",
+						"/manage/coupon",
+						"/manage/register/wx/refund/notify",
+						"/manage/register/unLimit",
+						"/manage/gzh/msg/notify",
+						"/manage/admin/send/template",
+						"/manage/order/put/status/*",
+						"/manage/user/get/loginInfo",
+						"/manage/user/login"));
+		//注解权限校验
+		registry.addInterceptor(new SaAnnotationInterceptor()).addPathPatterns("/**");
+	}
+}
+