| @@ -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; | |||||
| @@ -30,6 +30,8 @@ public class PushLimit implements Serializable { | |||||
| private Integer couponAmount; | private Integer couponAmount; | ||||
| @io.swagger.annotations.ApiModelProperty(value="每人几天内,不会收到同一个券",name="couponDay") | @io.swagger.annotations.ApiModelProperty(value="每人几天内,不会收到同一个券",name="couponDay") | ||||
| private Integer 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") | @io.swagger.annotations.ApiModelProperty(value="发券,发短信开始时间",name="timeStart") | ||||
| private String timeStart; | private String timeStart; | ||||
| @io.swagger.annotations.ApiModelProperty(value="发券,发短信结束时间",name="timeEnd") | @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") | ,MsgAmount_ASC("`msg_amount` ASC"),MsgAmount_DESC("`msg_amount` DESC") | ||||
| ,CouponAmount_ASC("`coupon_amount` ASC"),CouponAmount_DESC("`coupon_amount` DESC") | ,CouponAmount_ASC("`coupon_amount` ASC"),CouponAmount_DESC("`coupon_amount` DESC") | ||||
| ,CouponDay_ASC("`coupon_day` ASC"),CouponDay_DESC("`coupon_day` 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") | ,TimeStart_ASC("`time_start` ASC"),TimeStart_DESC("`time_start` DESC") | ||||
| ,TimeEnd_ASC("`time_end` ASC"),TimeEnd_DESC("`time_end` DESC") | ,TimeEnd_ASC("`time_end` ASC"),TimeEnd_DESC("`time_end` DESC") | ||||
| ,CreateTime_ASC("`create_time` ASC"),CreateTime_DESC("`create_time` DESC") | ,CreateTime_ASC("`create_time` ASC"),CreateTime_DESC("`create_time` DESC") | ||||
| ,UpdateTime_ASC("`update_time` ASC"),UpdateTime_DESC("`update_time` DESC") | ,UpdateTime_ASC("`update_time` ASC"),UpdateTime_DESC("`update_time` DESC") | ||||
| ,Enable_ASC("`enable` ASC"),Enable_DESC("`enable` DESC") | |||||
| ; | ; | ||||
| private String value; | private String value; | ||||
| Field(String value){ | Field(String value){ | ||||
| @@ -61,6 +61,7 @@ public class PushLimitServiceImpl implements PushLimitService { | |||||
| pushLimit.setMsgAmount(3); | pushLimit.setMsgAmount(3); | ||||
| pushLimit.setCouponAmount(10); | pushLimit.setCouponAmount(10); | ||||
| pushLimit.setCouponDay(10); | pushLimit.setCouponDay(10); | ||||
| pushLimit.setTimeEnable(EnumEnableType.Enable.getCode()); | |||||
| pushLimit.setTimeStart("8:00"); | pushLimit.setTimeStart("8:00"); | ||||
| pushLimit.setTimeEnd("23:00"); | pushLimit.setTimeEnd("23:00"); | ||||
| pushLimit.setEnable(EnumEnableType.Enable.getCode()); | pushLimit.setEnable(EnumEnableType.Enable.getCode()); | ||||
| @@ -98,6 +99,10 @@ public class PushLimitServiceImpl implements PushLimitService { | |||||
| if(pushLimit.getEnable().equals(EnumEnableType.Disable.getCode())) { | if(pushLimit.getEnable().equals(EnumEnableType.Disable.getCode())) { | ||||
| return true; | return true; | ||||
| } | } | ||||
| // 1.2 疲劳度时间是否启用 | |||||
| if(pushLimit.getTimeEnable().equals(EnumEnableType.Disable.getCode())) { | |||||
| return true; | |||||
| } | |||||
| // 2. check time | // 2. check time | ||||
| boolean isInDate = DateUtils.isInDate(curDate, pushLimit.getTimeStart(), pushLimit.getTimeEnd()); | boolean isInDate = DateUtils.isInDate(curDate, pushLimit.getTimeStart(), pushLimit.getTimeEnd()); | ||||
| if (!isInDate) { | if (!isInDate) { | ||||
| @@ -117,6 +122,10 @@ public class PushLimitServiceImpl implements PushLimitService { | |||||
| return true; | return true; | ||||
| } | } | ||||
| // 2. check time | // 2. check time | ||||
| // 2.1 疲劳度时间是否启用 | |||||
| if(pushLimit.getTimeEnable().equals(EnumEnableType.Disable.getCode())) { | |||||
| return true; | |||||
| } | |||||
| boolean isInDate = DateUtils.isInDate(curDate, pushLimit.getTimeStart(), pushLimit.getTimeEnd()); | boolean isInDate = DateUtils.isInDate(curDate, pushLimit.getTimeStart(), pushLimit.getTimeEnd()); | ||||
| if (!isInDate) { | if (!isInDate) { | ||||
| logger.error("不在疲劳度允许的时间段"); | logger.error("不在疲劳度允许的时间段"); | ||||
| @@ -136,6 +145,10 @@ public class PushLimitServiceImpl implements PushLimitService { | |||||
| return true; | return true; | ||||
| } | } | ||||
| // 2. check time 是否在给定的时间段内 | // 2. check time 是否在给定的时间段内 | ||||
| // 2.1 疲劳度时间是否启用 | |||||
| if(pushLimit.getTimeEnable().equals(EnumEnableType.Disable.getCode())) { | |||||
| return true; | |||||
| } | |||||
| boolean isInDate = DateUtils.isInDate(curDate, pushLimit.getTimeStart(), pushLimit.getTimeEnd()); | boolean isInDate = DateUtils.isInDate(curDate, pushLimit.getTimeStart(), pushLimit.getTimeEnd()); | ||||
| if (!isInDate) { | if (!isInDate) { | ||||
| throw new MallinkException(ErrorCode.PUSH_LIMIT_NOT_INRANG); | throw new MallinkException(ErrorCode.PUSH_LIMIT_NOT_INRANG); | ||||
| @@ -187,6 +187,10 @@ public class WxMsgServiceImpl implements WxMsgService { | |||||
| } else { | } else { | ||||
| PushLimit pushLimit = pushLimitService.getPushLimit(wxMsg.getTenantId()); | PushLimit pushLimit = pushLimitService.getPushLimit(wxMsg.getTenantId()); | ||||
| if(pushLimit.getEnable().equals(EnumEnableType.Enable.getCode())) { | if(pushLimit.getEnable().equals(EnumEnableType.Enable.getCode())) { | ||||
| // 1.2 疲劳度时间是否启用 | |||||
| if(pushLimit.getTimeEnable().equals(EnumEnableType.Disable.getCode())) { | |||||
| return new ResultData(); | |||||
| } | |||||
| String sendtime = wxMsg.getSendtime(); | String sendtime = wxMsg.getSendtime(); | ||||
| Date date = DateUtils.stringToDate(sendtime, "yyyy-MM-dd HH:mm:ss"); | Date date = DateUtils.stringToDate(sendtime, "yyyy-MM-dd HH:mm:ss"); | ||||
| boolean isInDate = DateUtils.isInDate(date, pushLimit.getTimeStart(), pushLimit.getTimeEnd()); | boolean isInDate = DateUtils.isInDate(date, pushLimit.getTimeStart(), pushLimit.getTimeEnd()); | ||||
| @@ -7,6 +7,7 @@ | |||||
| <result column="msg_amount" jdbcType="INTEGER" property="msgAmount"/> | <result column="msg_amount" jdbcType="INTEGER" property="msgAmount"/> | ||||
| <result column="coupon_amount" jdbcType="INTEGER" property="couponAmount"/> | <result column="coupon_amount" jdbcType="INTEGER" property="couponAmount"/> | ||||
| <result column="coupon_day" jdbcType="INTEGER" property="couponDay"/> | <result column="coupon_day" jdbcType="INTEGER" property="couponDay"/> | ||||
| <result column="time_enable" jdbcType="TINYINT" property="timeEnable"/> | |||||
| <result column="time_start" jdbcType="VARCHAR" property="timeStart"/> | <result column="time_start" jdbcType="VARCHAR" property="timeStart"/> | ||||
| <result column="time_end" jdbcType="VARCHAR" property="timeEnd"/> | <result column="time_end" jdbcType="VARCHAR" property="timeEnd"/> | ||||
| <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/> | <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/> | ||||
| @@ -15,7 +16,7 @@ | |||||
| </resultMap> | </resultMap> | ||||
| <sql id="allColumns"> | <sql id="allColumns"> | ||||
| `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` | |||||
| </sql> | </sql> | ||||
| <sql id="dynamicWhereConditions"> | <sql id="dynamicWhereConditions"> | ||||
| @@ -41,6 +42,10 @@ | |||||
| and `coupon_day` = #{couponDay} | and `coupon_day` = #{couponDay} | ||||
| </if> | </if> | ||||
| <if test=" null != timeEnable "> | |||||
| and `time_enable` = #{timeEnable} | |||||
| </if> | |||||
| <if test=" null != timeStart "> | <if test=" null != timeStart "> | ||||
| and `time_start` like concat('%', #{timeStart},'%') | and `time_start` like concat('%', #{timeStart},'%') | ||||
| </if> | </if> | ||||