From 4905c5e22a034e5ce1caa44469be67f9a5ffcea7 Mon Sep 17 00:00:00 2001 From: Shaun Chyxion Date: Wed, 20 Oct 2021 00:58:30 +0800 Subject: [PATCH] ignore campaign quota validate self --- .../service/impl/CampaignQuotaServiceImpl.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) 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();