diff --git a/mallinkAdmin/src/main/resources/db/migration/V201907221045__CHANGE_PUSH_LIMIT.sql b/mallinkAdmin/src/main/resources/db/migration/V201907221045__CHANGE_PUSH_LIMIT.sql new file mode 100644 index 000000000..d67cb029a --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V201907221045__CHANGE_PUSH_LIMIT.sql @@ -0,0 +1,4 @@ +ALTER TABLE `push_limit` +ADD COLUMN `time_enable` TINYINT(2) NULL DEFAULT 0 COMMENT '是否启用,0:Enable,1:Disable' after `coupon_day`; + +Update `push_limit` set `time_enable` = 0; \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/domain/po/PushLimit.java b/mallinkService/src/main/java/com/iformall/domain/po/PushLimit.java index fb2377951..2fc3e6124 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/PushLimit.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/PushLimit.java @@ -30,6 +30,8 @@ public class PushLimit implements Serializable { private Integer couponAmount; @io.swagger.annotations.ApiModelProperty(value="每人几天内,不会收到同一个券",name="couponDay") private Integer couponDay; + @io.swagger.annotations.ApiModelProperty(value="是否启用,0:Enable,1:Disable",name="timeEnable") + private Integer timeEnable; @io.swagger.annotations.ApiModelProperty(value="发券,发短信开始时间",name="timeStart") private String timeStart; @io.swagger.annotations.ApiModelProperty(value="发券,发短信结束时间",name="timeEnd") @@ -48,10 +50,12 @@ public class PushLimit implements Serializable { ,MsgAmount_ASC("`msg_amount` ASC"),MsgAmount_DESC("`msg_amount` DESC") ,CouponAmount_ASC("`coupon_amount` ASC"),CouponAmount_DESC("`coupon_amount` DESC") ,CouponDay_ASC("`coupon_day` ASC"),CouponDay_DESC("`coupon_day` DESC") + ,TimeEnable_ASC("`time_enable` ASC"),TimeEnable_DESC("`time_enable` DESC") ,TimeStart_ASC("`time_start` ASC"),TimeStart_DESC("`time_start` DESC") ,TimeEnd_ASC("`time_end` ASC"),TimeEnd_DESC("`time_end` DESC") ,CreateTime_ASC("`create_time` ASC"),CreateTime_DESC("`create_time` DESC") ,UpdateTime_ASC("`update_time` ASC"),UpdateTime_DESC("`update_time` DESC") + ,Enable_ASC("`enable` ASC"),Enable_DESC("`enable` DESC") ; private String value; Field(String value){ diff --git a/mallinkService/src/main/java/com/iformall/service/impl/PushLimitServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/PushLimitServiceImpl.java index 50f1e170c..4d6c86d8f 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/PushLimitServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/PushLimitServiceImpl.java @@ -61,6 +61,7 @@ public class PushLimitServiceImpl implements PushLimitService { pushLimit.setMsgAmount(3); pushLimit.setCouponAmount(10); pushLimit.setCouponDay(10); + pushLimit.setTimeEnable(EnumEnableType.Enable.getCode()); pushLimit.setTimeStart("8:00"); pushLimit.setTimeEnd("23:00"); pushLimit.setEnable(EnumEnableType.Enable.getCode()); @@ -98,6 +99,10 @@ public class PushLimitServiceImpl implements PushLimitService { if(pushLimit.getEnable().equals(EnumEnableType.Disable.getCode())) { return true; } + // 1.2 疲劳度时间是否启用 + if(pushLimit.getTimeEnable().equals(EnumEnableType.Disable.getCode())) { + return true; + } // 2. check time boolean isInDate = DateUtils.isInDate(curDate, pushLimit.getTimeStart(), pushLimit.getTimeEnd()); if (!isInDate) { @@ -117,6 +122,10 @@ public class PushLimitServiceImpl implements PushLimitService { return true; } // 2. check time + // 2.1 疲劳度时间是否启用 + if(pushLimit.getTimeEnable().equals(EnumEnableType.Disable.getCode())) { + return true; + } boolean isInDate = DateUtils.isInDate(curDate, pushLimit.getTimeStart(), pushLimit.getTimeEnd()); if (!isInDate) { logger.error("不在疲劳度允许的时间段"); @@ -136,6 +145,10 @@ public class PushLimitServiceImpl implements PushLimitService { return true; } // 2. check time 是否在给定的时间段内 + // 2.1 疲劳度时间是否启用 + if(pushLimit.getTimeEnable().equals(EnumEnableType.Disable.getCode())) { + return true; + } boolean isInDate = DateUtils.isInDate(curDate, pushLimit.getTimeStart(), pushLimit.getTimeEnd()); if (!isInDate) { throw new MallinkException(ErrorCode.PUSH_LIMIT_NOT_INRANG); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMsgServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMsgServiceImpl.java index ab06e92cb..b980ef4db 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMsgServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMsgServiceImpl.java @@ -187,6 +187,10 @@ public class WxMsgServiceImpl implements WxMsgService { } else { PushLimit pushLimit = pushLimitService.getPushLimit(wxMsg.getTenantId()); if(pushLimit.getEnable().equals(EnumEnableType.Enable.getCode())) { + // 1.2 疲劳度时间是否启用 + if(pushLimit.getTimeEnable().equals(EnumEnableType.Disable.getCode())) { + return new ResultData(); + } String sendtime = wxMsg.getSendtime(); Date date = DateUtils.stringToDate(sendtime, "yyyy-MM-dd HH:mm:ss"); boolean isInDate = DateUtils.isInDate(date, pushLimit.getTimeStart(), pushLimit.getTimeEnd()); diff --git a/mallinkService/src/main/resources/mapper/PushLimitMapper.xml b/mallinkService/src/main/resources/mapper/PushLimitMapper.xml index 776892faf..d4efafc06 100644 --- a/mallinkService/src/main/resources/mapper/PushLimitMapper.xml +++ b/mallinkService/src/main/resources/mapper/PushLimitMapper.xml @@ -7,6 +7,7 @@ + @@ -15,7 +16,7 @@ - `id`,`tenant_id`,`msg_amount`,`coupon_amount`,`coupon_day`,`time_start`,`time_end`,`create_time`,`update_time`,`enable` + `id`,`tenant_id`,`msg_amount`,`coupon_amount`,`coupon_day`,`time_enable`,`time_start`,`time_end`,`create_time`,`update_time`,`enable` @@ -41,6 +42,10 @@ and `coupon_day` = #{couponDay} + + and `time_enable` = #{timeEnable} + + and `time_start` like concat('%', #{timeStart},'%')