更新审核活动判断同一时段

This commit is contained in:
panshuling321 2022-04-27 17:51:11 +08:00
parent 0797de321d
commit 5ccccd5ac4
3 changed files with 16 additions and 2 deletions

View File

@ -27,7 +27,7 @@ public interface XhpcActivityInternetMapper {
int checkByPrimaryKey(XhpcActivityInternetDomain record);
List<XhpcActivityInternetDomain> selectByDateBetween(@Param("startTime")String startTime, @Param("endTime")String endTime);
List<XhpcActivityInternetDomain> selectByDateBetween(@Param("internetName")String internetName, @Param("stationList")List<String> stationList, @Param("startTime")String startTime, @Param("endTime")String endTime);
int updateStatusByExpireNow();
}

View File

@ -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<XhpcActivityInternetDomain> domainList = internetMapper.selectByDateBetween(startTime, endTime);
List<String> stationList = new ArrayList<>();
if(StringUtils.isNotEmpty(domain.getStationList()) && !"-1".equals(domain.getStationList())){
stationList = Arrays.asList(domain.getStationList().split(","));
}
List<XhpcActivityInternetDomain> domainList = internetMapper.selectByDateBetween(domain.getInternetName(), stationList, startTime, endTime);
if(domainList.size() > 0 && domain.getStatus().equals(Short.valueOf("3"))){
throw new CustomException("生效时段存在其他已生效的活动");
}

View File

@ -70,6 +70,12 @@
<include refid="Base_Column_List"/>
FROM `xhpc_activity_internet`
WHERE `status` = 3
and internet_name = #{internetName}
<if test="stationList != null and stationList.size > 0">
<foreach collection="stationList" index="index" item="stationId">
and find_in_set(#{stationId}, station_list)
</foreach>
</if>
and ((#{startTime} BETWEEN start_time and end_time)
OR
(#{endTime} BETWEEN start_time and end_time))