Forráskód Böngészése

fix 购买实物权益规格天数

zoujiajian 3 éve
szülő
commit
b35e10ae4a

+ 2 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/UserPayEquipmentReceiveBenefitsRecord.java

@@ -20,6 +20,8 @@ public class UserPayEquipmentReceiveBenefitsRecord extends BaseEntity{
 
 	private Integer months;
 
+	private Integer days;
+
 	/**
 	 * 座位号
 	 */

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

@@ -80,9 +80,9 @@ public class EquipmentDistributeFrontServiceImpl implements EquipmentDistributeF
 			}
 			DateTime updateExpiryTime = null;
 			if (goodsDonSku.getDays() != null && goodsDonSku.getDays() > 0) {
-				updateExpiryTime = DateUtil.offset(expiryTime, DateField.MONTH, goodsDonSku.getMonths());
-			} else {
 				updateExpiryTime = DateUtil.offsetDay(expiryTime, goodsDonSku.getDays());
+			} else {
+				updateExpiryTime = DateUtil.offset(expiryTime, DateField.MONTH, goodsDonSku.getMonths());
 			}
 			groupsRelationMapper.update(null, Wrappers.lambdaUpdate(GroupsRelation.class)
 					.eq(GroupsRelation::getId, groupsRelationView.getId())

+ 19 - 8
netflix-service/src/main/java/com/cyksj/service/order/impl/UserRealOrderBenefitsImpl.java

@@ -76,7 +76,7 @@ public class UserRealOrderBenefitsImpl implements UserRealOrderBenefitsService {
 				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);
+				saveReceiveBenefitsRecord(userId, skuId, orderId, relation.getOrderId(), relation.getId(), sku.getMonths(), sku.getDays(), 1);
 			} else if (relationViewList.size() == 1) {
 				//若有且只有一张增加时长
 				GroupsRelationView groupsRelationView = relationViewList.get(0);
@@ -91,7 +91,7 @@ public class UserRealOrderBenefitsImpl implements UserRealOrderBenefitsService {
 						.eq(GroupsRelation::getUserId, userId)
 						.set(GroupsRelation::getExpiryTime, updateExpiryTime));
 				groupsRelationView.setUpdateExpiryTime(updateExpiryTime);
-				saveReceiveBenefitsRecord(userId, skuId, orderId, null, groupsRelationView.getId(), sku.getMonths(), 1);
+				saveReceiveBenefitsRecord(userId, skuId, orderId, null, groupsRelationView.getId(), sku.getMonths(), sku.getDays(), 1);
 			} else {
 				//若有该规格多张车票,保存可获取的车票权益 以供用户自行选择
 				saveAvailableBenefits(userId, skuId, orderId);
@@ -110,7 +110,7 @@ public class UserRealOrderBenefitsImpl implements UserRealOrderBenefitsService {
 				.eq(UserPayEquipmentReceiveBenefitsRecord::getRealOrderId, orderId))).orElse(new ArrayList<>());
 		benefitsRecords.forEach(benefitsRecord -> {
 			//扣除领取的权益
-			deductReceivedBenefits(benefitsRecord.getUserId(), benefitsRecord.getTicketOrderId(), benefitsRecord.getRelationId(), benefitsRecord.getMonths());
+			deductReceivedBenefits(benefitsRecord.getUserId(), benefitsRecord.getTicketOrderId(), benefitsRecord.getRelationId(), benefitsRecord.getMonths(), benefitsRecord.getDays());
 			benefitsRecord.setStatusCode(0);
 			receiveBenefitsRecordMapper.updateById(benefitsRecord);
 		});
@@ -162,7 +162,12 @@ public class UserRealOrderBenefitsImpl implements UserRealOrderBenefitsService {
 			if (update != 1) {
 				throw BusinessRuntimeException.getInstance("系统错误,请刷新页面重试");
 			}
-			DateTime updateExpiryTime = DateUtil.offset(expiryTime, DateField.MONTH, goodsDonSku.getMonths());
+			DateTime updateExpiryTime;
+			if (goodsDonSku.getDays() != null && goodsDonSku.getDays() > 0) {
+				updateExpiryTime = DateUtil.offsetDay(expiryTime, goodsDonSku.getDays());
+			} else {
+				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())
@@ -170,7 +175,7 @@ public class UserRealOrderBenefitsImpl implements UserRealOrderBenefitsService {
 					.set(GroupsRelation::getExpiryTime, updateExpiryTime));
 			groupsRelationView.setUpdateExpiryTime(updateExpiryTime);
 			//保存领取权益
-			saveReceiveBenefitsRecord(userId, skuId, availableBenefits.getRealOrderId(), null, relationId, goodsDonSku.getMonths(), 1);
+			saveReceiveBenefitsRecord(userId, skuId, availableBenefits.getRealOrderId(), null, relationId, goodsDonSku.getMonths(), goodsDonSku.getDays(), 1);
 		}, () -> {
 			throw BusinessRuntimeException.getInstance("对应规格车票不存在");
 		});
@@ -199,13 +204,14 @@ public class UserRealOrderBenefitsImpl implements UserRealOrderBenefitsService {
 	/**
 	 * 保存获取权益记录
 	 */
-	private void saveReceiveBenefitsRecord(Long userId, Long skuId, Long realOrderId, Long ticketOrderId, Long relationId, Integer months, Integer statusCode) {
+	private void saveReceiveBenefitsRecord(Long userId, Long skuId, Long realOrderId, Long ticketOrderId, Long relationId, Integer months, Integer days, Integer statusCode) {
 		UserPayEquipmentReceiveBenefitsRecord userPayEquipmentReceiveBenefitsRecord = new UserPayEquipmentReceiveBenefitsRecord()
 				.setUserId(userId)
 				.setSkuId(skuId)
 				.setRealOrderId(realOrderId)
 				.setTicketOrderId(ticketOrderId)
 				.setRelationId(relationId)
+				.setDays(days)
 				.setMonths(months)
 				.setStatusCode(statusCode);
 		receiveBenefitsRecordMapper.insert(userPayEquipmentReceiveBenefitsRecord);
@@ -226,7 +232,7 @@ public class UserRealOrderBenefitsImpl implements UserRealOrderBenefitsService {
 	/**
 	 * 扣除用户领取的权益
 	 */
-	private void deductReceivedBenefits(Long userId, Long ticketOrderId, Long relationId, Integer months) {
+	private void deductReceivedBenefits(Long userId, Long ticketOrderId, Long relationId, Integer months, Integer days) {
 		GroupsRelation relation = groupsRelationMapper.selectOne(Wrappers.lambdaQuery(GroupsRelation.class)
 				.eq(GroupsRelation::getUserId, userId)
 				.eq(GroupsRelation::getId, relationId)
@@ -241,7 +247,12 @@ public class UserRealOrderBenefitsImpl implements UserRealOrderBenefitsService {
 			groupRelationClearService.clearTicket(relation, UserTicketClearedRecord.Source.pay_equipment);
 		} else {
 			DateTime now = DateTime.now();
-			Date finalDate = DateUtil.offset(expiryTime, DateField.MONTH, -months);
+			Date finalDate;
+			if (days != null && days > 0) {
+				finalDate = DateUtil.offsetDay(expiryTime, -days);
+			} else {
+				finalDate = DateUtil.offset(expiryTime, DateField.MONTH, -months);
+			}
 			finalDate = DateUtil.offsetDay(finalDate, -3);
 			if (now.isAfter(finalDate)) {
 				//过期 直接清除车票

+ 1 - 0
netflix-web/src/main/java/com/cyksj/web/controller/group/GroupRelationController.java

@@ -492,6 +492,7 @@ public class GroupRelationController {
         } else {
             int count = orderDonService.count(Wrappers.lambdaQuery(OrderDon.class)
                     .eq(OrderDon::getGoodsId, 1)
+                    .eq(OrderDon::getUserId, userId)
                     .notIn(OrderDon::getStatus, Constant.noOrderAllStatus));
             if (count > 0) {
                 //优先展示路由器、ai、流媒体