zoujiajian 3 anos atrás
pai
commit
e524f9d245

+ 6 - 0
netflix-dao/src/main/java/com/cyksj/mapper/GroupsMapper.java

@@ -2,9 +2,12 @@ package com.cyksj.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.cyksj.model.entity.GroupsTrips;
+import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
 
+import java.util.Date;
+
 /**
  * @author chan
  * @date 2022/9/27 4:24 PM
@@ -18,4 +21,7 @@ public interface GroupsMapper extends BaseMapper<GroupsTrips> {
 
     @Select("select count(*) from groups_trips where sku_id = #{skuId} and num = available_num")
 	Integer selectEmptyNetfilxTrips(Long skuId);
+
+	@Update("update groups_trips set status = #{status} where account_id in (select id from account where goods_id in (18,26) and expiry_time <= #{endTime})")
+	void updateOverdueTrips(@Param("status") GroupsTrips.Status status, @Param("endTime") Date endTime);
 }

+ 6 - 1
netflix-service/src/main/java/com/cyksj/service/exchange/impl/ExchangeCodeServiceImpl.java

@@ -298,7 +298,12 @@ public class ExchangeCodeServiceImpl extends ServiceImpl<ExchangeCodeMapper, Exc
 		//寻找差不多过期时间规格的车位
 		relation = groupRelationFrontService.getSimilarExpiredGroupRelation(sku.getId(), sku.getMonths(), errorsRelationIds);
 		if (relation == null) {
-			GroupsTrips groups = groupsMapper.selectOne(Wrappers.lambdaQuery(GroupsTrips.class).eq(GroupsTrips::getSkuId, sku.getId()).gt(GroupsTrips::getAvailableNum, 0).last("limit 1").orderByAsc(GroupsTrips::getAvailableNum));
+			GroupsTrips groups = groupsMapper.selectOne(Wrappers.lambdaQuery(GroupsTrips.class)
+					.ne(GroupsTrips::getStatus, GroupsTrips.Status.close)
+					.eq(GroupsTrips::getSkuId, sku.getId())
+					.gt(GroupsTrips::getAvailableNum, 0)
+					.last("limit 1")
+					.orderByAsc(GroupsTrips::getAvailableNum));
 			if (groups == null) {
 				//新增车位 并关联
 				relation = createNewGroupTripsAndRelation(sku, groups, relation);

+ 12 - 2
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -252,7 +252,12 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 					relation = groupRelationFrontService.getSimilarExpiredGroupRelation(sku.getId(), sku.getMonths(), null);
 					if (relation == null) {
 						//TODO 如果没指定座位,等待逻辑确认
-						GroupsTrips groups = groupsMapper.selectOne(Wrappers.lambdaQuery(GroupsTrips.class).eq(GroupsTrips::getSkuId, payRequest.getSkuId()).gt(GroupsTrips::getAvailableNum, 0).last("limit 1").orderByAsc(GroupsTrips::getAvailableNum));
+						GroupsTrips groups = groupsMapper.selectOne(Wrappers.lambdaQuery(GroupsTrips.class)
+								.ne(GroupsTrips::getStatus, GroupsTrips.Status.close)
+								.eq(GroupsTrips::getSkuId, payRequest.getSkuId())
+								.gt(GroupsTrips::getAvailableNum, 0)
+								.last("limit 1")
+								.orderByAsc(GroupsTrips::getAvailableNum));
 						if (groups == null) {
 							relation = createNewGroupsTrips(sku);
 							isNew = true;
@@ -1843,7 +1848,12 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 	 * 校验是否还有多余的车位
 	 */
 	private void checkNoGroupsTripsAndSendMsg(GoodsDonSku sku, OrderDon order) {
-		GroupsTrips groups = groupsMapper.selectOne(Wrappers.lambdaQuery(GroupsTrips.class).eq(GroupsTrips::getSkuId, sku.getId()).gt(GroupsTrips::getAvailableNum, 0).last("limit 1").orderByAsc(GroupsTrips::getAvailableNum));
+		GroupsTrips groups = groupsMapper.selectOne(Wrappers.lambdaQuery(GroupsTrips.class)
+				.ne(GroupsTrips::getStatus, GroupsTrips.Status.close)
+				.eq(GroupsTrips::getSkuId, sku.getId())
+				.gt(GroupsTrips::getAvailableNum, 0)
+				.last("limit 1")
+				.orderByAsc(GroupsTrips::getAvailableNum));
 		if (groups == null) {
 			//新增空车队发送模板消息
 			TASK_POOL.execute(() -> {

+ 10 - 1
netflix-service/src/main/java/com/cyksj/task/Scheduler.java

@@ -425,7 +425,7 @@ public class Scheduler {
 				    }
 			    }
 			    if (StrUtil.isNotBlank(phone)) {
-				    log.info("商务businessId:{}所下渠道用户id:{}分销数据已低于7天平均值的50%%", data.getBusinessId(), data.getUserId());
+				    log.info("商务businessId:{}所下渠道用户id:{}分销数据已低于7天平均值的50%", data.getBusinessId(), data.getUserId());
 				    //发短信
 				    SmsUtil.send(phone, msg);
 			    }
@@ -433,4 +433,13 @@ public class Scheduler {
 		    }
 	    });
     }
+
+	/**
+	 * 每日更新 需下架的过期账号车队
+	 */
+	@Scheduled(cron = "0 0 8 * * ?")
+	public void updateOverdueTrips() {
+		DateTime endOfDay = DateUtil.endOfDay(DateTime.now());
+		groupsMapper.updateOverdueTrips(GroupsTrips.Status.close, endOfDay);
+	}
 }