mirror of
https://gitee.com/huangge1199_admin/vue-pro.git
synced 2025-01-18 19:20:05 +08:00
【代码评审】商城:满减送的校验逻辑
This commit is contained in:
parent
b094c35eaa
commit
9c5c40fe90
@ -16,7 +16,7 @@ public interface RewardActivityApi {
|
|||||||
* 获得当前时间内开启的满减送活动
|
* 获得当前时间内开启的满减送活动
|
||||||
*
|
*
|
||||||
* @param status 状态
|
* @param status 状态
|
||||||
* @param dateTime 时间
|
* @param dateTime 当前时间,即筛选 <= dateTime 的满减送活动
|
||||||
* @return 满减送活动列表
|
* @return 满减送活动列表
|
||||||
*/
|
*/
|
||||||
List<RewardActivityMatchRespDTO> getRewardActivityListByStatusAndNow(Integer status, LocalDateTime dateTime);
|
List<RewardActivityMatchRespDTO> getRewardActivityListByStatusAndNow(Integer status, LocalDateTime dateTime);
|
||||||
|
@ -28,8 +28,8 @@ public interface RewardActivityMapper extends BaseMapperX<RewardActivityDO> {
|
|||||||
default List<RewardActivityDO> selectListByStatusAndDateTimeLt(Integer status, LocalDateTime dateTime) {
|
default List<RewardActivityDO> selectListByStatusAndDateTimeLt(Integer status, LocalDateTime dateTime) {
|
||||||
return selectList(new LambdaQueryWrapperX<RewardActivityDO>()
|
return selectList(new LambdaQueryWrapperX<RewardActivityDO>()
|
||||||
.eq(RewardActivityDO::getStatus, status)
|
.eq(RewardActivityDO::getStatus, status)
|
||||||
.lt(RewardActivityDO::getStartTime, dateTime)
|
// 开始时间 < 指定时间(dateTime) < 结束时间,也就是说获取指定时间段的活动
|
||||||
.gt(RewardActivityDO::getEndTime, dateTime)// 开始时间 < 指定时间 < 结束时间,也就是说获取指定时间段的活动
|
.lt(RewardActivityDO::getStartTime, dateTime).gt(RewardActivityDO::getEndTime, dateTime)
|
||||||
.orderByAsc(RewardActivityDO::getStartTime)
|
.orderByAsc(RewardActivityDO::getStartTime)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -121,6 +121,8 @@ public class RewardActivityServiceImpl implements RewardActivityService {
|
|||||||
list.removeIf(activity -> id.equals(activity.getId()));
|
list.removeIf(activity -> id.equals(activity.getId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO @puhui999:这个可能要完整对标有赞的校验。完全不允许重叠。
|
||||||
|
// 例如说,rewardActivity 是全部活动,结果有个 db 里的 activity 是某个分类,它也是冲突的。也就是说,当前时间段内,有且仅有只能有一个活动!
|
||||||
for (RewardActivityDO item : list) {
|
for (RewardActivityDO item : list) {
|
||||||
// 1.1 校验满减送活动时间是否冲突,如果时段不冲突那么不同的时间段内则可以存在相同的商品范围
|
// 1.1 校验满减送活动时间是否冲突,如果时段不冲突那么不同的时间段内则可以存在相同的商品范围
|
||||||
if (!LocalDateTimeUtil.isOverlap(item.getStartTime(), item.getEndTime(),
|
if (!LocalDateTimeUtil.isOverlap(item.getStartTime(), item.getEndTime(),
|
||||||
|
Loading…
Reference in New Issue
Block a user