|
@@ -2,12 +2,18 @@ package cn.hnthyy.thmz.controller.mz;
|
|
|
|
|
|
import cn.hnthyy.thmz.Utils.R;
|
|
|
import cn.hnthyy.thmz.Utils.TokenUtil;
|
|
|
+import cn.hnthyy.thmz.Utils.Tools;
|
|
|
import cn.hnthyy.thmz.comment.UserLoginToken;
|
|
|
import cn.hnthyy.thmz.entity.thmz.Discount;
|
|
|
import cn.hnthyy.thmz.entity.thmz.User;
|
|
|
+import cn.hnthyy.thmz.enums.NumberEnum;
|
|
|
import cn.hnthyy.thmz.enums.YesNoEnum;
|
|
|
import cn.hnthyy.thmz.service.thmz.DiscountService;
|
|
|
import cn.hutool.core.convert.Convert;
|
|
|
+import cn.hutool.core.date.DateTime;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.core.util.NumberUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -15,6 +21,7 @@ import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import java.util.Arrays;
|
|
|
+import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -237,6 +244,146 @@ public class DiscountController {
|
|
|
resultMap.put("message", "停用标志不能为空");
|
|
|
return resultMap;
|
|
|
}
|
|
|
+ if(discount.getTimeType()==null){
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "活动时间类型不能为空");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ if(NumberEnum.ZERO.getCode().equals(discount.getTimeType())){
|
|
|
+ discount.setWeekDay("");
|
|
|
+ discount.setMonthDay("");
|
|
|
+ discount.setAlwaysDay("");
|
|
|
+ discount.setMonthNum("");
|
|
|
+ discount.setStartTime("");
|
|
|
+ discount.setEndTime("");
|
|
|
+ }
|
|
|
+ if(NumberEnum.ONE.getCode().equals(discount.getTimeType())){
|
|
|
+ if(StrUtil.isBlank(discount.getStartTime()) || StrUtil.isBlank(discount.getEndTime())){
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "类型为每周执行,开始时间或结束时间不能为空");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ if(!Tools.isValidTime24H(discount.getStartTime()) || !Tools.isValidTime24H(discount.getEndTime())){
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "类型为每周执行,开始时间或结束时间格式不对");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ Date now = new Date();
|
|
|
+ Date starTime = DateUtil.parseDateTime(DateUtil.format(now, "yyyy-MM-dd") + " " + discount.getStartTime());
|
|
|
+ Date endTime=DateUtil.parseDateTime(DateUtil.format(now, "yyyy-MM-dd") + " " + discount.getEndTime());
|
|
|
+ if(starTime.getTime() > endTime.getTime()){
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "类型为每周执行,开始时间不能大于结束时间");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("开始时间或结束时间格式不对{}", e);
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "类型为每周执行,开始时间或结束时间格式不对");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ if(StrUtil.isBlank(discount.getWeekDay())){
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "类型为每周执行,每周几不能为空");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ if(!NumberUtil.isInteger(discount.getWeekDay()) || Convert.toInt(discount.getWeekDay()) < 1 || Convert.toInt(discount.getWeekDay()) > 7 ){
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "每周几格式不对,请填 1-7的数字");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ if(StrUtil.isBlank(discount.getAlwaysDay()) && NumberUtil.isInteger(discount.getAlwaysDay()) && Convert.toInt(discount.getAlwaysDay()) > 0){
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "类型为每周执行,持续天数不能为空不能为空并且为大于0的整数");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ discount.setMonthDay("");
|
|
|
+ discount.setMonthNum("");
|
|
|
+ }
|
|
|
+ if(NumberEnum.ThREE.getCode().equals(discount.getTimeType())){
|
|
|
+ if(StrUtil.isBlank(discount.getStartTime()) || StrUtil.isBlank(discount.getEndTime())){
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "类型为每年执行,开始时间或结束时间不能为空");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ if(!Tools.isValidTime24H(discount.getStartTime()) || !Tools.isValidTime24H(discount.getEndTime())){
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "类型为每年执行,开始时间或结束时间格式不对");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ Date now = new Date();
|
|
|
+ Date starTime = DateUtil.parseDateTime(DateUtil.format(now, "yyyy-MM-dd") + " " + discount.getStartTime());
|
|
|
+ Date endTime=DateUtil.parseDateTime(DateUtil.format(now, "yyyy-MM-dd") + " " + discount.getEndTime());
|
|
|
+ if(starTime.getTime() > endTime.getTime()){
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "类型为每年执行,开始时间不能大于结束时间");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "类型为每年执行,开始时间或结束时间格式不对");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ if(StrUtil.isBlank(discount.getMonthDay())){
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "类型为每年执行,几月几号不能为空");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ DateUtil.parse(DateUtil.year(discount.getDiscountBeginTime())+"-" + discount.getMonthDay(), "yyyy-MM-dd");
|
|
|
+ }catch (Exception e){
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "类型为每年执行,几月几号格式不对");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ if(StrUtil.isBlank(discount.getAlwaysDay()) && NumberUtil.isInteger(discount.getAlwaysDay()) && Convert.toInt(discount.getAlwaysDay()) > 0){
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "类型为每年执行,持续天数不能为空不能为空并且为大于0的整数");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ discount.setWeekDay("");
|
|
|
+ discount.setMonthNum("");
|
|
|
+ }
|
|
|
+ if(NumberEnum.TWO.getCode().equals(discount.getTimeType())){
|
|
|
+ if(StrUtil.isBlank(discount.getStartTime()) || StrUtil.isBlank(discount.getEndTime())){
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "类型为每月执行,开始时间或结束时间不能为空");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ if(!Tools.isValidTime24H(discount.getStartTime()) || !Tools.isValidTime24H(discount.getEndTime())){
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "类型为每月执行,开始时间或结束时间格式不对");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ Date now = new Date();
|
|
|
+ Date starTime = DateUtil.parseDateTime(DateUtil.format(now, "yyyy-MM-dd") + " " + discount.getStartTime());
|
|
|
+ Date endTime=DateUtil.parseDateTime(DateUtil.format(now, "yyyy-MM-dd") + " " + discount.getEndTime());
|
|
|
+ if(starTime.getTime() > endTime.getTime()){
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "类型为每月执行,开始时间不能大于结束时间");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "类型为每月执行,开始时间或结束时间格式不对");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ if(StrUtil.isBlank(discount.getMonthNum())){
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "类型为每月执行,每月几号不能为空");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ if(StrUtil.isBlank(discount.getAlwaysDay()) && NumberUtil.isInteger(discount.getAlwaysDay()) && Convert.toInt(discount.getAlwaysDay()) > 0){
|
|
|
+ resultMap.put("code", -1);
|
|
|
+ resultMap.put("message", "类型为每月执行,持续天数不能为空不能为空并且为大于0的整数");
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+ discount.setWeekDay("");
|
|
|
+ discount.setMonthDay("");
|
|
|
+ }
|
|
|
User tokenUser = TokenUtil.getUser(httpServletRequest);
|
|
|
if(discount.getDeptType() == 2){
|
|
|
discount.setDeptNo("");
|