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},'%')