diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/XhpcActivityInternetMapper.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/XhpcActivityInternetMapper.java index a9a6da83..0b998da4 100644 --- a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/XhpcActivityInternetMapper.java +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/mapper/XhpcActivityInternetMapper.java @@ -27,7 +27,7 @@ public interface XhpcActivityInternetMapper { int checkByPrimaryKey(XhpcActivityInternetDomain record); - List selectByDateBetween(@Param("startTime")String startTime, @Param("endTime")String endTime); + List selectByDateBetween(@Param("internetName")String internetName, @Param("stationList")List stationList, @Param("startTime")String startTime, @Param("endTime")String endTime); int updateStatusByExpireNow(); } \ No newline at end of file diff --git a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/XhpcActivityInternetServiceImpl.java b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/XhpcActivityInternetServiceImpl.java index 8f1943c9..e1bae3a6 100644 --- a/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/XhpcActivityInternetServiceImpl.java +++ b/xhpc-modules/xhpc-activity/src/main/java/com/xhpc/activity/service/impl/XhpcActivityInternetServiceImpl.java @@ -6,12 +6,14 @@ import com.xhpc.activity.mapper.XhpcActivityFormulaMapper; import com.xhpc.activity.mapper.XhpcActivityInternetMapper; import com.xhpc.activity.service.XhpcActivityInternetService; import com.xhpc.common.core.exception.CustomException; +import com.xhpc.common.core.utils.StringUtils; import com.xhpc.common.util.DateUtil; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Map; @@ -142,7 +144,13 @@ public class XhpcActivityInternetServiceImpl implements XhpcActivityInternetServ // 同一时间段内只能有一个活动有效 String startTime = DateUtil.date2String(internetDomain.getStartTime(), "yyyy-MM-dd"); String endTime = DateUtil.date2String(internetDomain.getEndTime(), "yyyy-MM-dd"); - List domainList = internetMapper.selectByDateBetween(startTime, endTime); + + List stationList = new ArrayList<>(); + if(StringUtils.isNotEmpty(domain.getStationList()) && !"-1".equals(domain.getStationList())){ + stationList = Arrays.asList(domain.getStationList().split(",")); + } + + List domainList = internetMapper.selectByDateBetween(domain.getInternetName(), stationList, startTime, endTime); if(domainList.size() > 0 && domain.getStatus().equals(Short.valueOf("3"))){ throw new CustomException("生效时段存在其他已生效的活动"); } diff --git a/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcActivityInternetMapper.xml b/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcActivityInternetMapper.xml index 8cdb9a59..dfa1366e 100644 --- a/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcActivityInternetMapper.xml +++ b/xhpc-modules/xhpc-activity/src/main/resources/mapper/XhpcActivityInternetMapper.xml @@ -70,6 +70,12 @@ FROM `xhpc_activity_internet` WHERE `status` = 3 + and internet_name = #{internetName} + + + and find_in_set(#{stationId}, station_list) + + and ((#{startTime} BETWEEN start_time and end_time) OR (#{endTime} BETWEEN start_time and end_time))