diff --git a/cms/src/main/java/com/pudonghot/yo/cms/service/impl/CampaignQuotaServiceImpl.java b/cms/src/main/java/com/pudonghot/yo/cms/service/impl/CampaignQuotaServiceImpl.java index 27ba86aa..a3c849a6 100644 --- a/cms/src/main/java/com/pudonghot/yo/cms/service/impl/CampaignQuotaServiceImpl.java +++ b/cms/src/main/java/com/pudonghot/yo/cms/service/impl/CampaignQuotaServiceImpl.java @@ -31,7 +31,7 @@ public class CampaignQuotaServiceImpl @Override protected void beforeCreate(final FormCreateCampaignQuota form, final CampaignQuota model) { super.beforeCreate(form, model); - validateDailyTime(form.getCampaignId(), form.getDailyFrom(), form.getDailyTo()); + validateDailyTime(null, form.getCampaignId(), form.getDailyFrom(), form.getDailyTo()); } /** @@ -40,14 +40,21 @@ public class CampaignQuotaServiceImpl @Override protected void beforeUpdate(final FormUpdateCampaignQuota form, final CampaignQuota model) { super.beforeUpdate(form, model); - validateDailyTime(model.getCampaignId(), form.getDailyFrom(), form.getDailyTo()); + validateDailyTime(model.getId(), model.getCampaignId(), form.getDailyFrom(), form.getDailyTo()); } - void validateDailyTime(final Integer campaignId, final DailyTime dailyFrom, final DailyTime dailyTo) { + void validateDailyTime(final Integer quoaId, final Integer campaignId, final DailyTime dailyFrom, final DailyTime dailyTo) { Assert.state(dailyFrom.getSecondOfDay() < dailyTo.getSecondOfDay(), () -> "无效开始时间[" + dailyFrom + "]和结束时间[" + dailyTo + "],开始时间须小于结束时间"); - mapper.scan(128, new Search(CampaignQuota.CAMPAIGN_ID, campaignId), item -> { + val search = new Search(CampaignQuota.CAMPAIGN_ID, campaignId); + // ignore self + if (quoaId != null) { + search.ne(CampaignQuota.ID, quoaId); + } + + mapper.scan(128, search, item -> { + val itemDailyFrom = item.getDailyFrom(); val itemDailyTo = item.getDailyTo();