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

+ 21 - 1
netflix-service/src/main/java/com/cyksj/service/order/impl/VipOrderDonServiceImpl.java

@@ -14,6 +14,7 @@ import com.cyksj.common.util.Jsons;
 import com.cyksj.config.zfb.BaseZfbConfig;
 import com.cyksj.config.zfb.ZfbProductCode;
 import com.cyksj.enums.GatewayApiCode;
+import com.cyksj.mapper.GroupsRelationMapper;
 import com.cyksj.mapper.UserMapper;
 import com.cyksj.mapper.channel.ShopConfigMapper;
 import com.cyksj.mapper.sys.SysConfigMapper;
@@ -72,6 +73,8 @@ public class VipOrderDonServiceImpl extends ServiceImpl<VipOrderDonMapper, VipOr
 
 	private final GroupRelationFrontService groupRelationFrontService;
 
+	private final GroupsRelationMapper relationMapper;
+
 	@Override
 	public VipOrderDon submit(VipOrderDonPayReq payRequest) {
 		Long userId = payRequest.getUserId();
@@ -194,7 +197,12 @@ public class VipOrderDonServiceImpl extends ServiceImpl<VipOrderDonMapper, VipOr
 			}
 		} else vipUserMapper.updateById(vipUser);
 		//发放会员车票
-		sendVipTicketToUser(userId);
+		if (orderDon.getOrderType() == 1) {
+			sendVipTicketToUser(userId);
+		} else {
+			//续费订单
+			setTicketToVipExpiryTime(userId, vipUser.getExpiryTime());
+		}
 	}
 
 	private void sendVipTicketToUser(Long userId) {
@@ -249,4 +257,16 @@ public class VipOrderDonServiceImpl extends ServiceImpl<VipOrderDonMapper, VipOr
 			orderDon.setBalance(subBalance);
 		}
 	}
+
+	/**
+	 * 设置会员车票同一过期时间
+	 */
+	private void setTicketToVipExpiryTime(Long userId, Date expiryTime) {
+		relationMapper.update(null, Wrappers.lambdaUpdate(GroupsRelation.class)
+				.set(GroupsRelation::getExpiryTime, expiryTime)
+				.set(GroupsRelation::getUpdateTime, DateTime.now())
+				.eq(GroupsRelation::getUserId, userId)
+				.eq(GroupsRelation::getStatus, GroupsRelation.Status.validity)
+				.eq(GroupsRelation::getIsVip, Boolean.TRUE));
+	}
 }

+ 8 - 3
netflix-service/src/main/java/com/cyksj/service/relation/impl/GroupRelationFrontServiceImpl.java

@@ -1329,13 +1329,18 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 				if (groups != null) {
 					relation = groupsRelationMapper.selectRandomOneRelationByGroupsId(groups.getId());
 				}
+				//生成空车队
+				GoodsDonSku sku = goodsDonSkuMapper.selectById(skuId);
 				if (relation == null) {
-					//生成空车队
-					GoodsDonSku sku = goodsDonSkuMapper.selectById(skuId);
 					relation = groupsFuncService.createNewGroupsTrips(sku);
 				}
 				DateTime startTime = DateTime.now();
-				DateTime expiryTime = DateUtil.offsetDay(startTime, 1);
+				DateTime expiryTime;
+				if (sku.getDays() != null) {
+					expiryTime = DateUtil.offsetDay(startTime, sku.getDays());
+				} else {
+					expiryTime = DateUtil.offsetMonth(startTime, sku.getMonths());
+				}
 				int update = groupsRelationMapper.update(null, Wrappers.lambdaUpdate(GroupsRelation.class)
 						.set(GroupsRelation::getUserId, userId)
 						.set(GroupsRelation::getStartTime, startTime)