Browse Source

超级会员优惠券保存

zhijiezhao 3 years ago
parent
commit
da5ed8141c

+ 5 - 0
src/main/java/com/caimei/modules/coupon/dao/CmCouponVipDao.java

@@ -15,5 +15,10 @@ public interface CmCouponVipDao{
      */
      */
     CmVipCoupon findAllVipCoupon();
     CmVipCoupon findAllVipCoupon();
 
 
+    /**
+     * 在vip优惠券表添加数据
+     * @param vipCoupon
+     */
+    void addVipCoupon(CmVipCoupon vipCoupon);
 
 
 }
 }

+ 43 - 3
src/main/java/com/caimei/modules/coupon/entity/CmVipCoupon.java

@@ -4,17 +4,57 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import org.joda.time.DateTime;
 import org.joda.time.DateTime;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
+import java.util.Date;
 
 
 /**
 /**
  * vip优惠券
  * vip优惠券
  */
  */
 public class CmVipCoupon extends CmCoupon implements Serializable {
 public class CmVipCoupon extends CmCoupon implements Serializable {
 
 
-    //生效月份
-    private Integer useTime;
+    //生效月份 2021-10
+    private String useTime;
     //优惠券id
     //优惠券id
     private Integer couponId;
     private Integer couponId;
 
 
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private DateTime updateTime;
+    private Date updateTime;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    public String getUseTime() {
+        return useTime;
+    }
+
+    public void setUseTime(String useTime) {
+        this.useTime = useTime;
+    }
+
+    public Integer getCouponId() {
+        return couponId;
+    }
+
+    public void setCouponId(Integer couponId) {
+        this.couponId = couponId;
+    }
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
 }
 }

+ 77 - 77
src/main/java/com/caimei/modules/coupon/entity/SvipCouponForm.java

@@ -19,20 +19,20 @@ public class SvipCouponForm {
     private String productInfo2;        //商品json数据
     private String productInfo2;        //商品json数据
     private String productInfo3;        //商品json数据
     private String productInfo3;        //商品json数据
     private String productInfo4;        //商品json数据
     private String productInfo4;        //商品json数据
-    /**
-     * 网站活动页banner
-     */
-    private String pcBanner1;
-    private String pcBanner2;
-    private String pcBanner3;
-    private String pcBanner4;
-    /**
-     * 小程序活动页banner
-     */
-    private String appletsBanner1;
-    private String appletsBanner2;
-    private String appletsBanner3;
-    private String appletsBanner4;
+//    /**
+//     * 网站活动页banner
+//     */
+//    private String pcBanner1;
+//    private String pcBanner2;
+//    private String pcBanner3;
+//    private String pcBanner4;
+//    /**
+//     * 小程序活动页banner
+//     */
+//    private String appletsBanner1;
+//    private String appletsBanner2;
+//    private String appletsBanner3;
+//    private String appletsBanner4;
     /**
     /**
      * 优惠券Id
      * 优惠券Id
      */
      */
@@ -115,69 +115,69 @@ public class SvipCouponForm {
         this.productInfo4 = productInfo4;
         this.productInfo4 = productInfo4;
     }
     }
 
 
-    public String getPcBanner2() {
-        return pcBanner2;
-    }
-
-    public void setPcBanner2(String pcBanner2) {
-        this.pcBanner2 = pcBanner2;
-    }
-
-    public String getPcBanner3() {
-        return pcBanner3;
-    }
-
-    public void setPcBanner3(String pcBanner3) {
-        this.pcBanner3 = pcBanner3;
-    }
-
-    public String getPcBanner4() {
-        return pcBanner4;
-    }
-
-    public void setPcBanner4(String pcBanner4) {
-        this.pcBanner4 = pcBanner4;
-    }
-
-    public String getAppletsBanner2() {
-        return appletsBanner2;
-    }
-
-    public void setAppletsBanner2(String appletsBanner2) {
-        this.appletsBanner2 = appletsBanner2;
-    }
-
-    public String getAppletsBanner3() {
-        return appletsBanner3;
-    }
-
-    public void setAppletsBanner3(String appletsBanner3) {
-        this.appletsBanner3 = appletsBanner3;
-    }
-
-    public String getAppletsBanner4() {
-        return appletsBanner4;
-    }
-
-    public void setAppletsBanner4(String appletsBanner4) {
-        this.appletsBanner4 = appletsBanner4;
-    }
-
-    public String getPcBanner1() {
-        return pcBanner1;
-    }
-
-    public void setPcBanner1(String pcBanner1) {
-        this.pcBanner1 = pcBanner1;
-    }
-
-    public String getAppletsBanner1() {
-        return appletsBanner1;
-    }
-
-    public void setAppletsBanner1(String appletsBanner1) {
-        this.appletsBanner1 = appletsBanner1;
-    }
+//    public String getPcBanner2() {
+//        return pcBanner2;
+//    }
+//
+//    public void setPcBanner2(String pcBanner2) {
+//        this.pcBanner2 = pcBanner2;
+//    }
+//
+//    public String getPcBanner3() {
+//        return pcBanner3;
+//    }
+//
+//    public void setPcBanner3(String pcBanner3) {
+//        this.pcBanner3 = pcBanner3;
+//    }
+//
+//    public String getPcBanner4() {
+//        return pcBanner4;
+//    }
+//
+//    public void setPcBanner4(String pcBanner4) {
+//        this.pcBanner4 = pcBanner4;
+//    }
+//
+//    public String getAppletsBanner2() {
+//        return appletsBanner2;
+//    }
+//
+//    public void setAppletsBanner2(String appletsBanner2) {
+//        this.appletsBanner2 = appletsBanner2;
+//    }
+//
+//    public String getAppletsBanner3() {
+//        return appletsBanner3;
+//    }
+//
+//    public void setAppletsBanner3(String appletsBanner3) {
+//        this.appletsBanner3 = appletsBanner3;
+//    }
+//
+//    public String getAppletsBanner4() {
+//        return appletsBanner4;
+//    }
+//
+//    public void setAppletsBanner4(String appletsBanner4) {
+//        this.appletsBanner4 = appletsBanner4;
+//    }
+//
+//    public String getPcBanner1() {
+//        return pcBanner1;
+//    }
+//
+//    public void setPcBanner1(String pcBanner1) {
+//        this.pcBanner1 = pcBanner1;
+//    }
+//
+//    public String getAppletsBanner1() {
+//        return appletsBanner1;
+//    }
+//
+//    public void setAppletsBanner1(String appletsBanner1) {
+//        this.appletsBanner1 = appletsBanner1;
+//    }
 
 
     public Integer getCouponId1() {
     public Integer getCouponId1() {
         return couponId1;
         return couponId1;

+ 129 - 3
src/main/java/com/caimei/modules/coupon/service/CmVipCouponService.java

@@ -1,19 +1,145 @@
 package com.caimei.modules.coupon.service;
 package com.caimei.modules.coupon.service;
 
 
+import com.caimei.modules.coupon.dao.CmCouponVipDao;
+import com.caimei.modules.coupon.entity.CmCoupon;
+import com.caimei.modules.coupon.entity.CmVipCoupon;
+import com.caimei.modules.coupon.entity.SvipCouponForm;
+import com.caimei.modules.utils.DateUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
+import java.util.Date;
+
 
 
 /**
 /**
  * @author zzj
  * @author zzj
  */
  */
 @Service
 @Service
-@Transactional(readOnly = false)
+@Transactional(readOnly = true)
 public class CmVipCouponService{
 public class CmVipCouponService{
 
 
+    @Autowired
+    private CmCouponService cmCouponService;
+    @Autowired
+    private CmCouponVipDao vipDao;
 
 
-    public void addCoupon(){
-
+    @Transactional(readOnly = false)
+    public void addCoupon(SvipCouponForm svipcouponForm){
+        String month = svipcouponForm.getMonth();
+        Date beginTime = DateUtil.getMinDay(month);
+        Date lastTime = DateUtil.getMaxDay(month);
+        // 解析SvipCouponForm -> 组装 CmCoupon 列表 保存
+        //0活动券 1品类券 3店铺券
+        CmCoupon coupon1 = new CmCoupon();
+        CmCoupon coupon2 = new CmCoupon();
+        CmCoupon coupon3 = new CmCoupon();
+        CmCoupon coupon4 = new CmCoupon();
+        CmVipCoupon vipCoupon1 = new CmVipCoupon();
+        CmVipCoupon vipCoupon2 = new CmVipCoupon();
+        CmVipCoupon vipCoupon3 = new CmVipCoupon();
+        CmVipCoupon vipCoupon4 = new CmVipCoupon();
+        vipCoupon1.setUseTime(svipcouponForm.getMonth());
+        vipCoupon2.setUseTime(svipcouponForm.getMonth());
+        vipCoupon3.setUseTime(svipcouponForm.getMonth());
+        vipCoupon4.setUseTime(svipcouponForm.getMonth());
+        coupon1.setStartDate(beginTime);
+        coupon1.setEndDate(lastTime);
+        coupon2.setStartDate(beginTime);
+        coupon2.setEndDate(lastTime);
+        coupon3.setStartDate(beginTime);
+        coupon3.setEndDate(lastTime);
+        coupon4.setStartDate(beginTime);
+        coupon4.setEndDate(lastTime);
+        coupon1.setCouponAmount(svipcouponForm.getCouponAmount1());
+        coupon1.setTouchPrice(svipcouponForm.getTouchPrice1());
+        coupon2.setCouponAmount(svipcouponForm.getCouponAmount2());
+        coupon2.setTouchPrice(svipcouponForm.getTouchPrice2());
+        coupon3.setCouponAmount(svipcouponForm.getCouponAmount3());
+        coupon3.setTouchPrice(svipcouponForm.getTouchPrice3());
+        coupon4.setCouponAmount(svipcouponForm.getCouponAmount4());
+        coupon4.setTouchPrice(svipcouponForm.getTouchPrice4());
+        coupon1.setStatus("");
+        coupon2.setStatus("");
+        coupon3.setStatus("");
+        coupon4.setStatus("");
+        if (svipcouponForm.getCouponType1() == 0 && svipcouponForm.getCouponType1() != 99) {
+            coupon1.setCouponType(0);
+            coupon1.setProductType(svipcouponForm.getProductType1());
+            if (svipcouponForm.getProductInfo1() != null) {
+                coupon1.setProductInfo(svipcouponForm.getProductInfo1());
+            }
+        }
+        if (svipcouponForm.getCouponType2() == 0) {
+            coupon2.setCouponType(0);
+            coupon2.setProductType(svipcouponForm.getProductType2());
+            if (svipcouponForm.getProductInfo2() != null) {
+                coupon2.setProductInfo(svipcouponForm.getProductInfo2());
+            }
+        }
+        if (svipcouponForm.getCouponType3() == 0) {
+            coupon3.setCouponType(0);
+            coupon3.setProductType(svipcouponForm.getProductType3());
+            if (svipcouponForm.getProductInfo3() != null) {
+                coupon3.setProductInfo(svipcouponForm.getProductInfo3());
+            }
+        }
+        if (svipcouponForm.getCouponType4() == 0) {
+            coupon4.setCouponType(0);
+            coupon4.setProductType(svipcouponForm.getProductType4());
+            if (svipcouponForm.getProductInfo4() != null) {
+                coupon4.setProductInfo(svipcouponForm.getProductInfo4());
+            }
+        }
+        if (svipcouponForm.getCouponType1() == 1) {
+            coupon1.setCategoryType(svipcouponForm.getCategoryType1());
+            coupon1.setCouponType(1);
+        }
+        if (svipcouponForm.getCouponType2() == 1) {
+            coupon2.setCategoryType(svipcouponForm.getCategoryType2());
+            coupon2.setCouponType(1);
+        }
+        if (svipcouponForm.getCouponType3() == 1) {
+            coupon3.setCategoryType(svipcouponForm.getCategoryType3());
+            coupon3.setCouponType(1);
+        }
+        if (svipcouponForm.getCouponType4() == 1) {
+            coupon4.setCategoryType(svipcouponForm.getCategoryType4());
+            coupon4.setCouponType(1);
+        }
+        if (svipcouponForm.getCouponType1() == 3) {
+            coupon1.setShopId(svipcouponForm.getShopId1());
+            coupon1.setCouponType(3);
+        }
+        if (svipcouponForm.getCouponType2() == 3) {
+            coupon2.setShopId(svipcouponForm.getShopId2());
+            coupon2.setCouponType(3);
+        }
+        if (svipcouponForm.getCouponType3() == 3) {
+            coupon3.setShopId(svipcouponForm.getShopId3());
+            coupon3.setCouponType(3);
+        }
+        if (svipcouponForm.getCouponType4() == 3) {
+            coupon4.setShopId(svipcouponForm.getShopId4());
+            coupon4.setCouponType(3);
+        }
+        cmCouponService.save(coupon1);
+        cmCouponService.save(coupon2);
+        cmCouponService.save(coupon3);
+        cmCouponService.save(coupon4);
+        vipCoupon1.setCouponId(Integer.valueOf(coupon1.getId()));
+        vipCoupon2.setCouponId(Integer.valueOf(coupon2.getId()));
+        vipCoupon3.setCouponId(Integer.valueOf(coupon3.getId()));
+        vipCoupon4.setCouponId(Integer.valueOf(coupon4.getId()));
+        Date date = new Date();
+        vipCoupon1.setCreateTime(date);
+        vipCoupon2.setCreateTime(date);
+        vipCoupon3.setCreateTime(date);
+        vipCoupon4.setCreateTime(date);
+        vipDao.addVipCoupon(vipCoupon1);
+        vipDao.addVipCoupon(vipCoupon2);
+        vipDao.addVipCoupon(vipCoupon3);
+        vipDao.addVipCoupon(vipCoupon4);
     }
     }
 
 
 
 

+ 14 - 27
src/main/java/com/caimei/modules/coupon/web/CmVipCouponController.java

@@ -1,15 +1,15 @@
 package com.caimei.modules.coupon.web;
 package com.caimei.modules.coupon.web;
 
 
+import com.caimei.modules.coupon.dao.CmCouponVipDao;
 import com.caimei.modules.coupon.entity.CmCoupon;
 import com.caimei.modules.coupon.entity.CmCoupon;
-import com.caimei.modules.coupon.entity.CmCouponAssociate;
+import com.caimei.modules.coupon.entity.CmVipCoupon;
 import com.caimei.modules.coupon.entity.SvipCouponForm;
 import com.caimei.modules.coupon.entity.SvipCouponForm;
 import com.caimei.modules.coupon.service.CmCouponService;
 import com.caimei.modules.coupon.service.CmCouponService;
+import com.caimei.modules.coupon.service.CmVipCouponService;
 import com.caimei.modules.product.service.ProductService;
 import com.caimei.modules.product.service.ProductService;
 import com.caimei.modules.user.dao.CmUserDao;
 import com.caimei.modules.user.dao.CmUserDao;
 import com.caimei.modules.user.dao.NewCmClubDao;
 import com.caimei.modules.user.dao.NewCmClubDao;
-import com.caimei.modules.user.entity.CmUser;
-import com.caimei.modules.user.entity.NewCmClub;
-import com.caimei.po.Coupon;
+import com.caimei.modules.utils.DateUtil;
 import com.thinkgem.jeesite.common.config.Global;
 import com.thinkgem.jeesite.common.config.Global;
 import com.thinkgem.jeesite.common.persistence.Page;
 import com.thinkgem.jeesite.common.persistence.Page;
 import com.thinkgem.jeesite.common.utils.StringUtils;
 import com.thinkgem.jeesite.common.utils.StringUtils;
@@ -23,8 +23,8 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.List;
+import java.text.ParseException;
+import java.util.*;
 
 
 /**
 /**
  * @author zzj
  * @author zzj
@@ -37,12 +37,9 @@ public class CmVipCouponController {
 
 
     @Autowired
     @Autowired
     private CmCouponService cmCouponService;
     private CmCouponService cmCouponService;
+
     @Autowired
     @Autowired
-    private CmUserDao cmUserDao;
-    @Autowired
-    private NewCmClubDao newCmClubDao;
-    @Autowired
-    private ProductService productService;
+    private CmVipCouponService vipCouponService;
 
 
     @ModelAttribute
     @ModelAttribute
     public CmCoupon get(@RequestParam(required = false) String id) {
     public CmCoupon get(@RequestParam(required = false) String id) {
@@ -66,32 +63,22 @@ public class CmVipCouponController {
 
 
     @RequestMapping(value = "form")
     @RequestMapping(value = "form")
     public String form(SvipCouponForm svipcouponForm, Model model) {
     public String form(SvipCouponForm svipcouponForm, Model model) {
-
-
         // 根据4个CmCoupon的Id查询CmCoupon列表,封装成解析SvipCouponForm
         // 根据4个CmCoupon的Id查询CmCoupon列表,封装成解析SvipCouponForm
 
 
-
         model.addAttribute("svipcouponForm", svipcouponForm);
         model.addAttribute("svipcouponForm", svipcouponForm);
         return "modules/svip/cmSvipCouponForm";
         return "modules/svip/cmSvipCouponForm";
     }
     }
 
 
     /**
     /**
      * 保存
      * 保存
+     *
      * @param svipcouponForm
      * @param svipcouponForm
      */
      */
     @RequestMapping(value = "save")
     @RequestMapping(value = "save")
-    public String save(SvipCouponForm svipcouponForm, Model model, RedirectAttributes redirectAttributes) {
-        // 解析SvipCouponForm -> 组装 CmCoupon 列表 保存
-        //0活动券 1品类券 3店铺券
-        CmCoupon coupon = new CmCoupon();
-        if(svipcouponForm.getCouponType1().equals("0")){
-            coupon.setCouponType(svipcouponForm.getCouponType1());
-            coupon.setTouchPrice(svipcouponForm.getTouchPrice1());
-
-        }
-
+    public String save(SvipCouponForm svipcouponForm, Model model, RedirectAttributes redirectAttributes) throws ParseException {
+        vipCouponService.addCoupon(svipcouponForm);
         addMessage(redirectAttributes, "保存超级会员专属优惠券成功");
         addMessage(redirectAttributes, "保存超级会员专属优惠券成功");
-        return "redirect:"+ Global.getAdminPath()+"/vip/cmCoupon/?repage";
+        return "redirect:" + Global.getAdminPath() + "/vip/cmCoupon/?repage";
     }
     }
 
 
     /**
     /**
@@ -99,8 +86,8 @@ public class CmVipCouponController {
      */
      */
     protected void addMessage(RedirectAttributes redirectAttributes, String... messages) {
     protected void addMessage(RedirectAttributes redirectAttributes, String... messages) {
         StringBuilder sb = new StringBuilder();
         StringBuilder sb = new StringBuilder();
-        for (String message : messages){
-            sb.append(message).append(messages.length>1?"<br/>":"");
+        for (String message : messages) {
+            sb.append(message).append(messages.length > 1 ? "<br/>" : "");
         }
         }
         redirectAttributes.addFlashAttribute("message", sb.toString());
         redirectAttributes.addFlashAttribute("message", sb.toString());
     }
     }

+ 51 - 0
src/main/java/com/caimei/modules/utils/DateUtil.java

@@ -0,0 +1,51 @@
+package com.caimei.modules.utils;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+
+public class DateUtil {
+    private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
+    private static Calendar calendar = Calendar.getInstance();
+
+    /*
+    输入日期字符串比如201703,返回当月第一天的Date
+    */
+    public static Date getMinDay(String month) {
+        try {
+            Date nowDate = sdf.parse(month);
+            calendar = Calendar.getInstance();
+            calendar.setTime(nowDate);
+            calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
+            return calendar.getTime();
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    /*
+    输入日期字符串,返回月底0点
+    */
+    public static Date getMaxDay(String month) {
+        try {
+            Date nowDate = sdf.parse(month);
+            calendar = Calendar.getInstance();
+            calendar.setTime(nowDate);
+            calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
+            return calendar.getTime();
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+//    public static void main(String[] args) throws ParseException {
+//        String month = "2020-02";
+//        System.out.println(getMinDateMonth(month));
+//        System.out.println(getMaxDateMonth(month));
+//    }
+
+
+}

+ 109 - 99
src/main/resources/mappings/modules/super/CmSvipCouponMapper.xml

@@ -2,103 +2,112 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.caimei.modules.coupon.dao.CmCouponVipDao">
 <mapper namespace="com.caimei.modules.coupon.dao.CmCouponVipDao">
 
 
-<!--    <sql id="cmCouponColumns">-->
-<!--        a.id AS "id",-->
-<!--		a.name AS "name",-->
-<!--		a.couponAmount AS "couponAmount",-->
-<!--		a.touchPrice AS "touchPrice",-->
-<!--		a.startDate AS "startDate",-->
-<!--		a.endDate AS "endDate",-->
-<!--		a.status AS "status",-->
-<!--		a.couponType AS "couponType",-->
-<!--		a.userId AS "userId",-->
-<!--		a.shopId AS "shopId",-->
-<!--		a.productType AS "productType",-->
-<!--		a.pcBanner AS "pcBanner",-->
-<!--		a.appletsBanner AS "appletsBanner",-->
-<!--		a.categoryType AS "categoryType",-->
-<!--		a.couponsMode AS "couponsMode",-->
-<!--		a.createDate AS "createDate",-->
-<!--		a.delFlag AS "delFlag"-->
-<!--    </sql>-->
+    <insert id="addVipCoupon">
+        insert into cm_svip_coupon (created_time, updated_time, couponId, usetime, delflag, status)
+        values (#{createTime},
+                #{updateTime},
+                #{couponId},
+                #{useTime},
+                0, 1)
+    </insert>
 
 
-<!--    <sql id="cmCouponJoins">-->
-<!--    </sql>-->
+    <!--    <sql id="cmCouponColumns">-->
+    <!--        a.id AS "id",-->
+    <!--		a.name AS "name",-->
+    <!--		a.couponAmount AS "couponAmount",-->
+    <!--		a.touchPrice AS "touchPrice",-->
+    <!--		a.startDate AS "startDate",-->
+    <!--		a.endDate AS "endDate",-->
+    <!--		a.status AS "status",-->
+    <!--		a.couponType AS "couponType",-->
+    <!--		a.userId AS "userId",-->
+    <!--		a.shopId AS "shopId",-->
+    <!--		a.productType AS "productType",-->
+    <!--		a.pcBanner AS "pcBanner",-->
+    <!--		a.appletsBanner AS "appletsBanner",-->
+    <!--		a.categoryType AS "categoryType",-->
+    <!--		a.couponsMode AS "couponsMode",-->
+    <!--		a.createDate AS "createDate",-->
+    <!--		a.delFlag AS "delFlag"-->
+    <!--    </sql>-->
 
 
-<!--    SELECT-->
-<!--    <include refid="cmCouponColumns"/>,-->
-<!--    u.name AS "clubName",-->
-<!--    s.name AS "shopName"-->
-<!--    FROM cm_coupon a-->
-<!--    LEFT JOIN cm_coupon_club ccc ON ccc.couponId = a.id-->
-<!--    LEFT JOIN USER u ON u.userID = a.userId-->
-<!--    LEFT JOIN shop s ON s.shopID = a.shopId-->
-<!--    <include refid="cmCouponJoins"/>-->
-<!--    <where>-->
-<!--        AND a.delFlag = 0-->
-<!--        <if test="couponType != null">-->
-<!--            AND a.couponType = #{couponType}-->
-<!--        </if>-->
-<!--        <if test="name != null and name != ''">-->
-<!--            AND a.name LIKE-->
-<!--            <if test="dbName == 'oracle'">'%'||#{name}||'%'</if>-->
-<!--            <if test="dbName == 'mssql'">'%'+#{name}+'%'</if>-->
-<!--            <if test="dbName == 'mysql'">concat('%',#{name},'%')</if>-->
-<!--        </if>-->
-<!--        <if test="startDate != null and startDate != ''">-->
-<!--            AND a.startDate <![CDATA[ >= ]]> #{startDate}-->
-<!--        </if>-->
-<!--        <if test="endDate != null and endDate != ''">-->
-<!--            AND a.endDate <![CDATA[ <= ]]> #{endDate}-->
-<!--        </if>-->
-<!--        <if test='status == "0"'>-->
-<!--            AND a.startDate <![CDATA[ > ]]> NOW()-->
-<!--        </if>-->
-<!--        <if test='status == "1"'>-->
-<!--            AND a.startDate <![CDATA[ <= ]]> NOW()-->
-<!--            AND a.endDate <![CDATA[ >= ]]> NOW()-->
-<!--            AND a.status != '2'-->
-<!--        </if>-->
-<!--        <if test='status == "2"'>-->
-<!--            AND a.status = '2'-->
-<!--        </if>-->
-<!--        <if test='status == "3"'>-->
-<!--            AND a.endDate <![CDATA[ < ]]> NOW()-->
-<!--        </if>-->
-<!--        <if test="clubName != null and clubName != ''">-->
-<!--            AND u.name LIKE concat('%',#{clubName},'%')-->
-<!--        </if>-->
-<!--        <if test='claimStatus == "1"'>-->
-<!--            AND ccc.id IS NULL-->
-<!--        </if>-->
-<!--        <if test='claimStatus == "2"'>-->
-<!--            AND ccc.id IS NOT NULL-->
-<!--        </if>-->
-<!--        <if test='useStatus == "1"'>-->
-<!--            AND (ccc.status IS NULL OR ccc.status = #{useStatus})-->
-<!--        </if>-->
-<!--        <if test='useStatus == "2"'>-->
-<!--            AND ccc.status = #{useStatus}-->
-<!--        </if>-->
-<!--        <if test="source != null and source != ''">-->
-<!--            AND ccc.source = #{source}-->
-<!--        </if>-->
-<!--        <if test="shopName != null and shopName != ''">-->
-<!--            AND s.name LIKE concat('%',#{shopName},'%')-->
-<!--        </if>-->
-<!--        <if test="couponsMode != null and couponsMode != ''">-->
-<!--            AND a.couponsMode = #{couponsMode}-->
-<!--        </if>-->
-<!--    </where>-->
-<!--    GROUP BY a.id-->
-<!--    <choose>-->
-<!--        <when test="page !=null and page.orderBy != null and page.orderBy != ''">-->
-<!--            ORDER BY ${page.orderBy}-->
-<!--        </when>-->
-<!--        <otherwise>-->
-<!--            ORDER BY createDate DESC-->
-<!--        </otherwise>-->
-<!--    </choose>-->
+    <!--    <sql id="cmCouponJoins">-->
+    <!--    </sql>-->
+
+    <!--    SELECT-->
+    <!--    <include refid="cmCouponColumns"/>,-->
+    <!--    u.name AS "clubName",-->
+    <!--    s.name AS "shopName"-->
+    <!--    FROM cm_coupon a-->
+    <!--    LEFT JOIN cm_coupon_club ccc ON ccc.couponId = a.id-->
+    <!--    LEFT JOIN USER u ON u.userID = a.userId-->
+    <!--    LEFT JOIN shop s ON s.shopID = a.shopId-->
+    <!--    <include refid="cmCouponJoins"/>-->
+    <!--    <where>-->
+    <!--        AND a.delFlag = 0-->
+    <!--        <if test="couponType != null">-->
+    <!--            AND a.couponType = #{couponType}-->
+    <!--        </if>-->
+    <!--        <if test="name != null and name != ''">-->
+    <!--            AND a.name LIKE-->
+    <!--            <if test="dbName == 'oracle'">'%'||#{name}||'%'</if>-->
+    <!--            <if test="dbName == 'mssql'">'%'+#{name}+'%'</if>-->
+    <!--            <if test="dbName == 'mysql'">concat('%',#{name},'%')</if>-->
+    <!--        </if>-->
+    <!--        <if test="startDate != null and startDate != ''">-->
+    <!--            AND a.startDate <![CDATA[ >= ]]> #{startDate}-->
+    <!--        </if>-->
+    <!--        <if test="endDate != null and endDate != ''">-->
+    <!--            AND a.endDate <![CDATA[ <= ]]> #{endDate}-->
+    <!--        </if>-->
+    <!--        <if test='status == "0"'>-->
+    <!--            AND a.startDate <![CDATA[ > ]]> NOW()-->
+    <!--        </if>-->
+    <!--        <if test='status == "1"'>-->
+    <!--            AND a.startDate <![CDATA[ <= ]]> NOW()-->
+    <!--            AND a.endDate <![CDATA[ >= ]]> NOW()-->
+    <!--            AND a.status != '2'-->
+    <!--        </if>-->
+    <!--        <if test='status == "2"'>-->
+    <!--            AND a.status = '2'-->
+    <!--        </if>-->
+    <!--        <if test='status == "3"'>-->
+    <!--            AND a.endDate <![CDATA[ < ]]> NOW()-->
+    <!--        </if>-->
+    <!--        <if test="clubName != null and clubName != ''">-->
+    <!--            AND u.name LIKE concat('%',#{clubName},'%')-->
+    <!--        </if>-->
+    <!--        <if test='claimStatus == "1"'>-->
+    <!--            AND ccc.id IS NULL-->
+    <!--        </if>-->
+    <!--        <if test='claimStatus == "2"'>-->
+    <!--            AND ccc.id IS NOT NULL-->
+    <!--        </if>-->
+    <!--        <if test='useStatus == "1"'>-->
+    <!--            AND (ccc.status IS NULL OR ccc.status = #{useStatus})-->
+    <!--        </if>-->
+    <!--        <if test='useStatus == "2"'>-->
+    <!--            AND ccc.status = #{useStatus}-->
+    <!--        </if>-->
+    <!--        <if test="source != null and source != ''">-->
+    <!--            AND ccc.source = #{source}-->
+    <!--        </if>-->
+    <!--        <if test="shopName != null and shopName != ''">-->
+    <!--            AND s.name LIKE concat('%',#{shopName},'%')-->
+    <!--        </if>-->
+    <!--        <if test="couponsMode != null and couponsMode != ''">-->
+    <!--            AND a.couponsMode = #{couponsMode}-->
+    <!--        </if>-->
+    <!--    </where>-->
+    <!--    GROUP BY a.id-->
+    <!--    <choose>-->
+    <!--        <when test="page !=null and page.orderBy != null and page.orderBy != ''">-->
+    <!--            ORDER BY ${page.orderBy}-->
+    <!--        </when>-->
+    <!--        <otherwise>-->
+    <!--            ORDER BY createDate DESC-->
+    <!--        </otherwise>-->
+    <!--    </choose>-->
 
 
     <select id="findAllVipCoupon" resultType="com.caimei.modules.coupon.entity.CmVipCoupon">
     <select id="findAllVipCoupon" resultType="com.caimei.modules.coupon.entity.CmVipCoupon">
         SELECT cc.`id` AS "couponId",
         SELECT cc.`id` AS "couponId",
@@ -109,11 +118,14 @@
         cc.`couponType`,
         cc.`couponType`,
         cc.`shopId`,
         cc.`shopId`,
         cc.`productType`,
         cc.`productType`,
-        cc.`categoryType`
+        cc.`categoryType`,
+        cs.status
         FROM cm_coupon cc
         FROM cm_coupon cc
         INNER JOIN cm_svip_coupon cs ON cs.couponId = cc.id
         INNER JOIN cm_svip_coupon cs ON cs.couponId = cc.id
         WHERE cc.delFlag = 0
         WHERE cc.delFlag = 0
-        AND cc.status != 2
+        <if test="status != null and status != ''">
+            AND cc.status != 2
+        </if>
         <if test="useTime != null and userTime != ''">
         <if test="useTime != null and userTime != ''">
             AND cs.useTime=#{userTime}
             AND cs.useTime=#{userTime}
         </if>
         </if>
@@ -121,6 +133,4 @@
     </select>
     </select>
 
 
 
 
-
-
 </mapper>
 </mapper>

+ 277 - 188
src/main/webapp/WEB-INF/views/modules/svip/cmSvipCouponForm.jsp

@@ -20,22 +20,103 @@
             $("#inputForm").validate({
             $("#inputForm").validate({
                 submitHandler: function (form) {
                 submitHandler: function (form) {
                     if (imageList1.length > 0) {
                     if (imageList1.length > 0) {
-                        var productInfo = JSON.stringify(imageList1);
+                        var productInfo1 = JSON.stringify(imageList1);
                         $('#productInfo1').val(productInfo1);
                         $('#productInfo1').val(productInfo1);
                     }
                     }
                     if (imageList2.length > 0) {
                     if (imageList2.length > 0) {
-                        var productInfo = JSON.stringify(imageList2);
+                        var productInfo2 = JSON.stringify(imageList2);
                         $('#productInfo2').val(productInfo2);
                         $('#productInfo2').val(productInfo2);
                     }
                     }
                     if (imageList3.length > 0) {
                     if (imageList3.length > 0) {
-                        var productInfo = JSON.stringify(imageList3);
+                        var productInfo3 = JSON.stringify(imageList3);
                         $('#productInfo3').val(productInfo3);
                         $('#productInfo3').val(productInfo3);
                     }
                     }
                     if (imageList4.length > 0) {
                     if (imageList4.length > 0) {
-                        var productInfo = JSON.stringify(imageList4);
+                        var productInfo4 = JSON.stringify(imageList4);
                         $('#productInfo4').val(productInfo4);
                         $('#productInfo4').val(productInfo4);
                     }
                     }
+
+                    var month = $("#month").val();
+                    // 判断月份 ...
+                    if(month == null || month == ""){
+                        alert("请选择生效时间! ");
+                        return false;
+                    }
+
+                    var couponAmount1 = $("#couponAmount1").val() * 1;
+                    var touchPrice1 = $("#touchPrice1").val() * 1;
+                    if(couponAmount1 == ""){
+                        alertx("【优惠券1】优惠券金额不能为空");
+                        return false;
+                    }
+                    if(touchPrice1 == ""){
+                        alertx("【优惠券1】优惠条件不能为空");
+                        return false;
+                    }
+                    if (couponAmount1 >= touchPrice1) {
+                        alertx("【优惠券1】优惠券金额必须小于优惠条件金额");
+                        return false;
+                    }
+
+                    var couponAmount2 = $("#couponAmount2").val() * 1;
+                    var touchPrice2 = $("#touchPrice2").val() * 1;
+                    if(couponAmount2 == ""){
+                        alertx("【优惠券2】优惠券金额不能为空");
+                        return false;
+                    }
+                    if(touchPrice2 == ""){
+                        alertx("【优惠券2】优惠条件不能为空");
+                        return false;
+                    }
+                    if (couponAmount2 >= touchPrice2) {
+                        alertx("【优惠券2】优惠券金额必须小于优惠条件金额");
+                        return false;
+                    }
+
+                    var couponAmount3 = $("#couponAmount3").val() * 1;
+                    var touchPrice3 = $("#touchPrice3").val() * 1;
+                    if(couponAmount3 == ""){
+                        alertx("【优惠券3】优惠券金额不能为空");
+                        return false;
+                    }
+                    if(touchPrice3 == ""){
+                        alertx("【优惠券3】优惠条件不能为空");
+                        return false;
+                    }
+                    if (couponAmount3 >= touchPrice3) {
+                        alertx("【优惠券3】优惠券金额必须小于优惠条件金额");
+                        return false;
+                    }
+
+                    var couponAmount4 = $("#couponAmount4").val() * 1;
+                    var touchPrice4 = $("#touchPrice4").val() * 1;
+                    if(couponAmount4 == ""){
+                        alertx("【优惠券4】优惠券金额不能为空");
+                        return false;
+                    }
+                    if(touchPrice4 == ""){
+                        alertx("【优惠券4】优惠条件不能为空");
+                        return false;
+                    }
+                    if (couponAmount4 >= touchPrice4) {
+                        alertx("【优惠券4】优惠券金额必须小于优惠条件金额");
+                        return false;
+                    }
+
+
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function (error, element) {
+                    $("#messageBox").text("输入有误,请先更正。");
+                    if (element.is(":checkbox") || element.is(":radio") || element.parent().is(".input-append")) {
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
                 }
                 }
+
             });
             });
         });
         });
     </script>
     </script>
@@ -53,18 +134,19 @@
     <div class="control-group">
     <div class="control-group">
         <label class="control-label"><font color="red">*</font>优惠月份:</label>
         <label class="control-label"><font color="red">*</font>优惠月份:</label>
         <div class="controls">
         <div class="controls">
-            <form:input path="month" type="text" maxlength="20" class="input-medium Wdate" value="${startDate}"
-                        onclick="WdatePicker({dateFmt:'yyyy-MM',isShowClear:false});"/>
+            <form:input path="month" type="text" maxlength="20" class="input-medium Wdate" value="${useTime}"
+                      onclick="WdatePicker({dateFmt:'yyyy-MM',isShowClear:false});"/>
         </div>
         </div>
     </div>
     </div>
+
     <div class="coupon-wrap" id="couponWrap1">
     <div class="coupon-wrap" id="couponWrap1">
         <div class="control-group">
         <div class="control-group">
             <label class="control-label"><font color="red">*</font><b>优惠券1:</b></label>
             <label class="control-label"><font color="red">*</font><b>优惠券1:</b></label>
             <div class="controls">
             <div class="controls">
                 <form:radiobutton path="couponType1" class="couponType" label="请选择" value="99" checked="true" ></form:radiobutton>
                 <form:radiobutton path="couponType1" class="couponType" label="请选择" value="99" checked="true" ></form:radiobutton>
                 <form:radiobutton path="couponType1" class="couponType" label="活动券" value="0"></form:radiobutton>
                 <form:radiobutton path="couponType1" class="couponType" label="活动券" value="0"></form:radiobutton>
-                <form:radiobutton path="couponType1" class="couponType" label="品类券" value="1"></form:radiobutton>
-                <form:radiobutton path="couponType1" class="couponType" label="店铺券" value="3"></form:radiobutton>
+                <form:radiobutton path="couponType1" class="couponType" label="品类券" value="1" onclick="cType(1)"></form:radiobutton>
+                <form:radiobutton path="couponType1" class="couponType" label="店铺券" value="3" onclick="cType(1)"></form:radiobutton>
             </div>
             </div>
         </div>
         </div>
         <div class="control-group coupon-line l0" style="display:none">
         <div class="control-group coupon-line l0" style="display:none">
@@ -113,31 +195,32 @@
                 <form:radiobutton path="productType1" value="2" label="指定商品" onclick="productShow(value,1)"/>
                 <form:radiobutton path="productType1" value="2" label="指定商品" onclick="productShow(value,1)"/>
             </div>
             </div>
         </div>
         </div>
-        <form:hidden path="productInfo1" id="productInfo1"/>
+
         <div class="productData1" hidden="hidden">
         <div class="productData1" hidden="hidden">
+            <form:hidden path="productInfo1" id="productInfo1"/>
+<%--            <div class="control-group">--%>
+<%--                <label class="control-label"><font color="red">*</font>网站活动页banner:</label>--%>
+<%--                <div class="controls upload-content-image iconBox">--%>
+<%--                    <div class="conList">--%>
+<%--                        <form:hidden id="pcBanner" path="pcBanner1" htmlEscape="false" maxlength="255" class="input-xlarge"/>--%>
+<%--                        <sys:ckfinder input="pcBanner" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>--%>
+<%--                        <br>--%>
+<%--                    </div>--%>
+<%--                </div>--%>
+<%--            </div>--%>
+<%--            <div class="control-group">--%>
+<%--                <label class="control-label"><font color="red">*</font>小程序活动页banner:</label>--%>
+<%--                <div class="controls upload-content-image iconBox">--%>
+<%--                    <div class="conList">--%>
+<%--                        <form:hidden id="appletsBanner" path="appletsBanner1" htmlEscape="false" maxlength="255" class="input-xlarge"/>--%>
+<%--                        <sys:ckfinder input="appletsBanner" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>--%>
+<%--                        <br>--%>
+<%--                    </div>--%>
+<%--                </div>--%>
+<%--            </div>--%>
             <div class="control-group">
             <div class="control-group">
-                <label class="control-label"><font color="red">*</font>网站活动页banner:</label>
-                <div class="controls upload-content-image iconBox">
-                    <div class="conList">
-                        <form:hidden id="pcBanner" path="pcBanner1" htmlEscape="false" maxlength="255" class="input-xlarge"/>
-                        <sys:ckfinder input="pcBanner" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>
-                        <br>
-                    </div>
-                </div>
-            </div>
-            <div class="control-group">
-                <label class="control-label"><font color="red">*</font>小程序活动页banner:</label>
-                <div class="controls upload-content-image iconBox">
-                    <div class="conList">
-                        <form:hidden id="appletsBanner" path="appletsBanner1" htmlEscape="false" maxlength="255" class="input-xlarge"/>
-                        <sys:ckfinder input="appletsBanner" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>
-                        <br>
-                    </div>
-                </div>
-            </div>
-            <div class="control-group">
-                <input class="btn" class="del" style="width: 50px" onclick="batchDeletion(1)" value="删除"/>&nbsp;&nbsp;&nbsp;&nbsp;
-                <input class="btn btn-primary" style="width: 70px" onclick="batchSaveSort(1)" value="一键排序"/>&nbsp;&nbsp;&nbsp;&nbsp;
+                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input class="btn" class="del" style="width: 50px" onclick="batchDeletion(1)" value="删除"/>&nbsp;&nbsp;&nbsp;&nbsp;
+<%--                <input class="btn btn-primary" style="width: 70px" onclick="batchSaveSort(1)" value="一键排序"/>&nbsp;&nbsp;&nbsp;&nbsp;--%>
                 <input class="btn btn-primary" style="width: 50px" onclick="showSelectProduct(1)" value="添加"/>
                 <input class="btn btn-primary" style="width: 50px" onclick="showSelectProduct(1)" value="添加"/>
                 <br><br>
                 <br><br>
                 <table class="contentTableProduct table table-striped table-bordered table-condensed" hidden="hidden">
                 <table class="contentTableProduct table table-striped table-bordered table-condensed" hidden="hidden">
@@ -167,8 +250,8 @@
             <div class="controls">
             <div class="controls">
                 <form:radiobutton path="couponType2" class="couponType" label="请选择" value="99" checked="true" ></form:radiobutton>
                 <form:radiobutton path="couponType2" class="couponType" label="请选择" value="99" checked="true" ></form:radiobutton>
                 <form:radiobutton path="couponType2" class="couponType" label="活动券" value="0"></form:radiobutton>
                 <form:radiobutton path="couponType2" class="couponType" label="活动券" value="0"></form:radiobutton>
-                <form:radiobutton path="couponType2" class="couponType" label="品类券" value="1"></form:radiobutton>
-                <form:radiobutton path="couponType2" class="couponType" label="店铺券" value="3"></form:radiobutton>
+                <form:radiobutton path="couponType2" class="couponType" label="品类券" value="1" onclick="cType(2)"></form:radiobutton>
+                <form:radiobutton path="couponType2" class="couponType" label="店铺券" value="3" onclick="cType(2)"></form:radiobutton>
             </div>
             </div>
         </div>
         </div>
         <div class="control-group coupon-line l0" style="display:none">
         <div class="control-group coupon-line l0" style="display:none">
@@ -216,31 +299,32 @@
                 <form:radiobutton path="productType2" value="2" label="指定商品" onclick="productShow(value,2)"/>
                 <form:radiobutton path="productType2" value="2" label="指定商品" onclick="productShow(value,2)"/>
             </div>
             </div>
         </div>
         </div>
-        <form:hidden path="productInfo2" id="productInfo2"/>
+
         <div class="productData2" hidden="hidden">
         <div class="productData2" hidden="hidden">
+            <form:hidden path="productInfo2" id="productInfo2"/>
+<%--            <div class="control-group">--%>
+<%--                <label class="control-label"><font color="red">*</font>网站活动页banner:</label>--%>
+<%--                <div class="controls upload-content-image iconBox">--%>
+<%--                    <div class="conList">--%>
+<%--                        <form:hidden id="pcBanner" path="pcBanner2" htmlEscape="false" maxlength="255" class="input-xlarge"/>--%>
+<%--                        <sys:ckfinder input="pcBanner" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>--%>
+<%--                        <br>--%>
+<%--                    </div>--%>
+<%--                </div>--%>
+<%--            </div>--%>
+<%--            <div class="control-group">--%>
+<%--                <label class="control-label"><font color="red">*</font>小程序活动页banner:</label>--%>
+<%--                <div class="controls upload-content-image iconBox">--%>
+<%--                    <div class="conList">--%>
+<%--                        <form:hidden id="appletsBanner" path="appletsBanner2" htmlEscape="false" maxlength="255" class="input-xlarge"/>--%>
+<%--                        <sys:ckfinder input="appletsBanner" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>--%>
+<%--                        <br>--%>
+<%--                    </div>--%>
+<%--                </div>--%>
+<%--            </div>--%>
             <div class="control-group">
             <div class="control-group">
-                <label class="control-label"><font color="red">*</font>网站活动页banner:</label>
-                <div class="controls upload-content-image iconBox">
-                    <div class="conList">
-                        <form:hidden id="pcBanner" path="pcBanner2" htmlEscape="false" maxlength="255" class="input-xlarge"/>
-                        <sys:ckfinder input="pcBanner" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>
-                        <br>
-                    </div>
-                </div>
-            </div>
-            <div class="control-group">
-                <label class="control-label"><font color="red">*</font>小程序活动页banner:</label>
-                <div class="controls upload-content-image iconBox">
-                    <div class="conList">
-                        <form:hidden id="appletsBanner" path="appletsBanner2" htmlEscape="false" maxlength="255" class="input-xlarge"/>
-                        <sys:ckfinder input="appletsBanner" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>
-                        <br>
-                    </div>
-                </div>
-            </div>
-            <div class="control-group">
-                <input class="btn" class="del" style="width: 50px" onclick="batchDeletion(2)" value="删除"/>&nbsp;&nbsp;&nbsp;&nbsp;
-                <input class="btn btn-primary" style="width: 70px" onclick="batchSaveSort(2)" value="一键排序"/>&nbsp;&nbsp;&nbsp;&nbsp;
+                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input class="btn" class="del" style="width: 50px" onclick="batchDeletion(2)" value="删除"/>&nbsp;&nbsp;&nbsp;&nbsp;
+<%--                <input class="btn btn-primary" style="width: 70px" onclick="batchSaveSort(2)" value="一键排序"/>&nbsp;&nbsp;&nbsp;&nbsp;--%>
                 <input class="btn btn-primary" style="width: 50px" onclick="showSelectProduct(2)" value="添加"/>
                 <input class="btn btn-primary" style="width: 50px" onclick="showSelectProduct(2)" value="添加"/>
                 <br><br>
                 <br><br>
                 <table class="contentTableProduct table table-striped table-bordered table-condensed" hidden="hidden">
                 <table class="contentTableProduct table table-striped table-bordered table-condensed" hidden="hidden">
@@ -270,8 +354,8 @@
             <div class="controls">
             <div class="controls">
                 <form:radiobutton path="couponType3" class="couponType" label="请选择" value="99" checked="true" ></form:radiobutton>
                 <form:radiobutton path="couponType3" class="couponType" label="请选择" value="99" checked="true" ></form:radiobutton>
                 <form:radiobutton path="couponType3" class="couponType" label="活动券" value="0"></form:radiobutton>
                 <form:radiobutton path="couponType3" class="couponType" label="活动券" value="0"></form:radiobutton>
-                <form:radiobutton path="couponType3" class="couponType" label="品类券" value="1"></form:radiobutton>
-                <form:radiobutton path="couponType3" class="couponType" label="店铺券" value="3"></form:radiobutton>
+                <form:radiobutton path="couponType3" class="couponType" label="品类券" value="1" onclick="cType(3)"></form:radiobutton>
+                <form:radiobutton path="couponType3" class="couponType" label="店铺券" value="3" onclick="cType(3)"></form:radiobutton>
             </div>
             </div>
         </div>
         </div>
         <div class="control-group coupon-line l0" style="display:none">
         <div class="control-group coupon-line l0" style="display:none">
@@ -319,31 +403,32 @@
                 <form:radiobutton path="productType3" value="2" label="指定商品" onclick="productShow(value,3)"/>
                 <form:radiobutton path="productType3" value="2" label="指定商品" onclick="productShow(value,3)"/>
             </div>
             </div>
         </div>
         </div>
-        <form:hidden path="productInfo3" id="productInfo3"/>
+
         <div class="productData3" hidden="hidden">
         <div class="productData3" hidden="hidden">
+            <form:hidden path="productInfo3" id="productInfo3"/>
+<%--            <div class="control-group">--%>
+<%--                <label class="control-label"><font color="red">*</font>网站活动页banner:</label>--%>
+<%--                <div class="controls upload-content-image iconBox">--%>
+<%--                    <div class="conList">--%>
+<%--                        <form:hidden id="pcBanner" path="pcBanner3" htmlEscape="false" maxlength="255" class="input-xlarge"/>--%>
+<%--                        <sys:ckfinder input="pcBanner" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>--%>
+<%--                        <br>--%>
+<%--                    </div>--%>
+<%--                </div>--%>
+<%--            </div>--%>
+<%--            <div class="control-group">--%>
+<%--                <label class="control-label"><font color="red">*</font>小程序活动页banner:</label>--%>
+<%--                <div class="controls upload-content-image iconBox">--%>
+<%--                    <div class="conList">--%>
+<%--                        <form:hidden id="appletsBanner" path="appletsBanner3" htmlEscape="false" maxlength="255" class="input-xlarge"/>--%>
+<%--                        <sys:ckfinder input="appletsBanner" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>--%>
+<%--                        <br>--%>
+<%--                    </div>--%>
+<%--                </div>--%>
+<%--            </div>--%>
             <div class="control-group">
             <div class="control-group">
-                <label class="control-label"><font color="red">*</font>网站活动页banner:</label>
-                <div class="controls upload-content-image iconBox">
-                    <div class="conList">
-                        <form:hidden id="pcBanner" path="pcBanner3" htmlEscape="false" maxlength="255" class="input-xlarge"/>
-                        <sys:ckfinder input="pcBanner" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>
-                        <br>
-                    </div>
-                </div>
-            </div>
-            <div class="control-group">
-                <label class="control-label"><font color="red">*</font>小程序活动页banner:</label>
-                <div class="controls upload-content-image iconBox">
-                    <div class="conList">
-                        <form:hidden id="appletsBanner" path="appletsBanner3" htmlEscape="false" maxlength="255" class="input-xlarge"/>
-                        <sys:ckfinder input="appletsBanner" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>
-                        <br>
-                    </div>
-                </div>
-            </div>
-            <div class="control-group">
-                <input class="btn" class="del" style="width: 50px" onclick="batchDeletion(3)" value="删除"/>&nbsp;&nbsp;&nbsp;&nbsp;
-                <input class="btn btn-primary" style="width: 70px" onclick="batchSaveSort(3)" value="一键排序"/>&nbsp;&nbsp;&nbsp;&nbsp;
+                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input class="btn" class="del" style="width: 50px" onclick="batchDeletion(3)" value="删除"/>&nbsp;&nbsp;&nbsp;&nbsp;
+<%--                <input class="btn btn-primary" style="width: 70px" onclick="batchSaveSort(3)" value="一键排序"/>&nbsp;&nbsp;&nbsp;&nbsp;--%>
                 <input class="btn btn-primary" style="width: 50px" onclick="showSelectProduct(3)" value="添加"/>
                 <input class="btn btn-primary" style="width: 50px" onclick="showSelectProduct(3)" value="添加"/>
                 <br><br>
                 <br><br>
                 <table class="contentTableProduct table table-striped table-bordered table-condensed" hidden="hidden">
                 <table class="contentTableProduct table table-striped table-bordered table-condensed" hidden="hidden">
@@ -371,10 +456,10 @@
         <div class="control-group">
         <div class="control-group">
             <label class="control-label"><font color="red">*</font><b>优惠券4:</b></label>
             <label class="control-label"><font color="red">*</font><b>优惠券4:</b></label>
             <div class="controls">
             <div class="controls">
-                <form:radiobutton path="couponType4" class="couponType" label="请选择" value="99" checked="true" ></form:radiobutton>
+                <form:radiobutton path="couponType4" class="couponType" label="请选择" value="99" checked="true"></form:radiobutton>
                 <form:radiobutton path="couponType4" class="couponType" label="活动券" value="0"></form:radiobutton>
                 <form:radiobutton path="couponType4" class="couponType" label="活动券" value="0"></form:radiobutton>
-                <form:radiobutton path="couponType4" class="couponType" label="品类券" value="1"></form:radiobutton>
-                <form:radiobutton path="couponType4" class="couponType" label="店铺券" value="3"></form:radiobutton>
+                <form:radiobutton path="couponType4" class="couponType" label="品类券" value="1" onclick="cType(4)"></form:radiobutton>
+                <form:radiobutton path="couponType4" class="couponType" label="店铺券" value="3" onclick="cType(4)"></form:radiobutton>
             </div>
             </div>
         </div>
         </div>
         <div class="control-group coupon-line l0" style="display:none">
         <div class="control-group coupon-line l0" style="display:none">
@@ -422,31 +507,32 @@
                 <form:radiobutton path="productType4" value="2" label="指定商品" onclick="productShow(value,4)"/>
                 <form:radiobutton path="productType4" value="2" label="指定商品" onclick="productShow(value,4)"/>
             </div>
             </div>
         </div>
         </div>
-        <form:hidden path="productInfo4" id="productInfo4"/>
+
         <div class="productData4" hidden="hidden">
         <div class="productData4" hidden="hidden">
+            <form:hidden path="productInfo4" id="productInfo4"/>
+<%--            <div class="control-group">--%>
+<%--                <label class="control-label"><font color="red">*</font>网站活动页banner:</label>--%>
+<%--                <div class="controls upload-content-image iconBox">--%>
+<%--                    <div class="conList">--%>
+<%--                        <form:hidden id="pcBanner" path="pcBanner4" htmlEscape="false" maxlength="255" class="input-xlarge"/>--%>
+<%--                        <sys:ckfinder input="pcBanner" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>--%>
+<%--                        <br>--%>
+<%--                    </div>--%>
+<%--                </div>--%>
+<%--            </div>--%>
+<%--            <div class="control-group">--%>
+<%--                <label class="control-label"><font color="red">*</font>小程序活动页banner:</label>--%>
+<%--                <div class="controls upload-content-image iconBox">--%>
+<%--                    <div class="conList">--%>
+<%--                        <form:hidden id="appletsBanner" path="appletsBanner4" htmlEscape="false" maxlength="255" class="input-xlarge"/>--%>
+<%--                        <sys:ckfinder input="appletsBanner" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>--%>
+<%--                        <br>--%>
+<%--                    </div>--%>
+<%--                </div>--%>
+<%--            </div>--%>
             <div class="control-group">
             <div class="control-group">
-                <label class="control-label"><font color="red">*</font>网站活动页banner:</label>
-                <div class="controls upload-content-image iconBox">
-                    <div class="conList">
-                        <form:hidden id="pcBanner" path="pcBanner4" htmlEscape="false" maxlength="255" class="input-xlarge"/>
-                        <sys:ckfinder input="pcBanner" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>
-                        <br>
-                    </div>
-                </div>
-            </div>
-            <div class="control-group">
-                <label class="control-label"><font color="red">*</font>小程序活动页banner:</label>
-                <div class="controls upload-content-image iconBox">
-                    <div class="conList">
-                        <form:hidden id="appletsBanner" path="appletsBanner4" htmlEscape="false" maxlength="255" class="input-xlarge"/>
-                        <sys:ckfinder input="appletsBanner" type="images" uploadPath="/photo" selectMultiple="false" maxWidth="100" maxHeight="100"/>
-                        <br>
-                    </div>
-                </div>
-            </div>
-            <div class="control-group">
-                <input class="btn" class="del" style="width: 50px" onclick="batchDeletion(4)" value="删除"/>&nbsp;&nbsp;&nbsp;&nbsp;
-                <input class="btn btn-primary" style="width: 70px" onclick="batchSaveSort(4)" value="一键排序"/>&nbsp;&nbsp;&nbsp;&nbsp;
+                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input class="btn" class="del" style="width: 50px" onclick="batchDeletion(4)" value="删除"/>&nbsp;&nbsp;&nbsp;&nbsp;
+<%--                <input class="btn btn-primary" style="width: 70px" onclick="batchSaveSort(4)" value="一键排序"/>&nbsp;&nbsp;&nbsp;&nbsp;--%>
                 <input class="btn btn-primary" style="width: 50px" onclick="showSelectProduct(4)" value="添加"/>
                 <input class="btn btn-primary" style="width: 50px" onclick="showSelectProduct(4)" value="添加"/>
                 <br><br>
                 <br><br>
                 <table class="contentTableProduct table table-striped table-bordered table-condensed" hidden="hidden">
                 <table class="contentTableProduct table table-striped table-bordered table-condensed" hidden="hidden">
@@ -493,6 +579,11 @@
         }
         }
     });
     });
 
 
+
+    function cType(id){
+        $("#couponWrap"+id).find(".productData"+id).hide();
+    }
+
     // 点击添加供应商
     // 点击添加供应商
     function showSelectShop(id) {
     function showSelectShop(id) {
         var url = "${ctx}/coupon/cmCoupon/toAddShop";
         var url = "${ctx}/coupon/cmCoupon/toAddShop";
@@ -533,73 +624,73 @@
     <%--    }--%>
     <%--    }--%>
     <%--});--%>
     <%--});--%>
 
 
-    $(function () {
-        $('.upload-content-image .conList .btn:nth-of-type(1)').html('<div><span>+</span><h5>选择图片</h5></div>');
-        $('.upload-content-image .conList .btn:nth-of-type(2)').after('<img class="cancel-upload-image" src="/static/images/close-btn1.png">').remove();
-        $('.upload-content-image .conList').find('.cancel-upload-image').hide();
-        var observeEleImage = document.getElementsByClassName('upload-content-image')[0];
-        var observeEleImage1 = document.getElementsByClassName('upload-content-image')[1];
-        var MutationObserverImage = window.MutationObserver || window.WebKitMutationObserver;
-        var MutationObserverConfigImage = {
-            childList: true,
-            subtree: true,
-            characterData: true
-        };
-        var observerImage = new MutationObserverImage(function (mutations) {
-            $.each(mutations, function (index, item) {
-                if (item.type === 'childList') {
-                    // 在创建新的 element 时调用
-                    var target = $(item.target),
-                        thisWrapper = target.closest('.conList'),
-                        nextEle = thisWrapper.next();
-                    thisWrapper.find('li').css('z-index', 99);
-                    thisWrapper.find('.cancel-upload-image').show();
-                    if (nextEle.hasClass('hide-pic-image')) {
-                        nextEle.removeClass('hide-pic-image');
-                    }
-                }
-            })
-        });
-        observerImage.observe(observeEleImage, MutationObserverConfigImage);
-        observerImage.observe(observeEleImage1, MutationObserverConfigImage);
-
-        $('body').on('click', '.upload-content-image li', function () {
-            var index = $(this).closest('.conList').index() + 1,
-                str = 'remarkImage' + index + 'FinderOpen';
-            eval(str + '()');
-        });
-        $('body').on('click', '.cancel-upload-image', function () {
-            var wrapper = $(this).closest('.conList');
-            wrapper.find('li').css('z-index', '-1');
-            wrapper.find('input').val('');
-            $(this).hide();
-            wrapper.removeClass("hide-pic-image");
-            wrapper.parent().append(wrapper.clone());
-            wrapper.remove();
-            $(".conList").each(function (i, ele) {
-                if ($(ele).find("input.input-xlarge").val()) {
-                    $(ele).next().removeClass("hide-pic-image")
-                }
-            })
-        });
-        $(window).on("load", function () {
-            setTimeout(function () {
-                var input = $("#pcBanner");
-                if (input.val()) {
-                    input.next().find("li").css("z-index", "99");
-                    input.parents(".conList").find(".cancel-upload-image").show();
-                    input.parents(".conList").next().removeClass("hide-pic-image")
-                }
-                input = $("#appletsBanner");
-                if (input.val()) {
-                    input.next().find("li").css("z-index", "99");
-                    input.parents(".conList").find(".cancel-upload-image").show();
-                    input.parents(".conList").next().removeClass("hide-pic-image")
-                }
-            }, 500);
-        });
-        productShow()
-    });
+    // $(function () {
+    //     $('.upload-content-image .conList .btn:nth-of-type(1)').html('<div><span>+</span><h5>选择图片</h5></div>');
+    //     $('.upload-content-image .conList .btn:nth-of-type(2)').after('<img class="cancel-upload-image" src="/static/images/close-btn1.png">').remove();
+    //     $('.upload-content-image .conList').find('.cancel-upload-image').hide();
+    //     var observeEleImage = document.getElementsByClassName('upload-content-image')[0];
+    //     var observeEleImage1 = document.getElementsByClassName('upload-content-image')[1];
+    //     var MutationObserverImage = window.MutationObserver || window.WebKitMutationObserver;
+    //     var MutationObserverConfigImage = {
+    //         childList: true,
+    //         subtree: true,
+    //         characterData: true
+    //     };
+    //     var observerImage = new MutationObserverImage(function (mutations) {
+    //         $.each(mutations, function (index, item) {
+    //             if (item.type === 'childList') {
+    //                 // 在创建新的 element 时调用
+    //                 var target = $(item.target),
+    //                     thisWrapper = target.closest('.conList'),
+    //                     nextEle = thisWrapper.next();
+    //                 thisWrapper.find('li').css('z-index', 99);
+    //                 thisWrapper.find('.cancel-upload-image').show();
+    //                 if (nextEle.hasClass('hide-pic-image')) {
+    //                     nextEle.removeClass('hide-pic-image');
+    //                 }
+    //             }
+    //         })
+    //     });
+    //     observerImage.observe(observeEleImage, MutationObserverConfigImage);
+    //     observerImage.observe(observeEleImage1, MutationObserverConfigImage);
+    //
+    //     $('body').on('click', '.upload-content-image li', function () {
+    //         var index = $(this).closest('.conList').index() + 1,
+    //             str = 'remarkImage' + index + 'FinderOpen';
+    //         eval(str + '()');
+    //     });
+    //     $('body').on('click', '.cancel-upload-image', function () {
+    //         var wrapper = $(this).closest('.conList');
+    //         wrapper.find('li').css('z-index', '-1');
+    //         wrapper.find('input').val('');
+    //         $(this).hide();
+    //         wrapper.removeClass("hide-pic-image");
+    //         wrapper.parent().append(wrapper.clone());
+    //         wrapper.remove();
+    //         $(".conList").each(function (i, ele) {
+    //             if ($(ele).find("input.input-xlarge").val()) {
+    //                 $(ele).next().removeClass("hide-pic-image")
+    //             }
+    //         })
+    //     });
+    //     $(window).on("load", function () {
+    //         setTimeout(function () {
+    //             var input = $("#pcBanner");
+    //             if (input.val()) {
+    //                 input.next().find("li").css("z-index", "99");
+    //                 input.parents(".conList").find(".cancel-upload-image").show();
+    //                 input.parents(".conList").next().removeClass("hide-pic-image")
+    //             }
+    //             input = $("#appletsBanner");
+    //             if (input.val()) {
+    //                 input.next().find("li").css("z-index", "99");
+    //                 input.parents(".conList").find(".cancel-upload-image").show();
+    //                 input.parents(".conList").next().removeClass("hide-pic-image")
+    //             }
+    //         }, 500);
+    //     });
+    //     // productShow(value,id)
+    // });
 
 
 
 
     function productShow(value,id) {
     function productShow(value,id) {
@@ -818,7 +909,6 @@
                 batchSaveSort(id);
                 batchSaveSort(id);
             });
             });
         }
         }
-
     }
     }
 
 
     function updateAppletsStatus(status, index, id) {
     function updateAppletsStatus(status, index, id) {
@@ -915,7 +1005,7 @@
             data.contractMobile +
             data.contractMobile +
             '</td>' +
             '</td>' +
             '<td>' +
             '<td>' +
-            '<a href="javascript:;" onclick="delectShop())">删除</a>' +
+            '<a href="javascript:;" onclick="delectShop('+id+')">删除</a>' +
             '</td>' +
             '</td>' +
             '</tr>';
             '</tr>';
         $("#couponWrap"+id).find(".hotSearchShop").html(html);
         $("#couponWrap"+id).find(".hotSearchShop").html(html);
@@ -924,11 +1014,11 @@
         $("#shopId"+id).val(data.shopId);
         $("#shopId"+id).val(data.shopId);
     }
     }
 
 
-    function delectShop() {
+    function delectShop(id) {
         return confirmx("确定删除吗?", function () {
         return confirmx("确定删除吗?", function () {
-            $("#chooseShop").show();
-            $("#couponWrap").find(".contentTableShop").hide();
-            $("#shopId").val("");
+            $("#chooseShop"+id).show();
+            $("#couponWrap"+id).find(".contentTableShop").hide();
+            $("#shopId"+id).val("");
         });
         });
     }
     }
 
 
@@ -988,6 +1078,13 @@
             }
             }
         });
         });
     }
     }
+
+
+    function clickAllSelect(ckb) {
+        var isChecked = ckb.checked;
+        $(".check-item").attr('checked', isChecked);
+    }
+
     /**
     /**
      * @param obj
      * @param obj
      * jquery控制input只能输入数字
      * jquery控制input只能输入数字
@@ -1000,14 +1097,6 @@
         //$("#name").focus();
         //$("#name").focus();
         $("#inputForm").validate({
         $("#inputForm").validate({
             submitHandler: function (form) {
             submitHandler: function (form) {
-                var couponAmount1 = $("#couponAmount1").val() * 1;
-                var touchPrice1 = $("#touchPrice1").val() * 1;
-                if (couponAmount1 >= touchPrice1) {
-                    alertx("【优惠券1】优惠券金额必须小于优惠条件金额");
-                    return false;
-                }
-                var month = $("#month").val();
-                // 判断月份 ...
 
 
                 loading('正在提交,请稍等...');
                 loading('正在提交,请稍等...');
                 form.submit();
                 form.submit();

+ 52 - 0
src/test/java/com/thinkgem/jeesite/test/DateUtil.java

@@ -0,0 +1,52 @@
+package com.thinkgem.jeesite.test;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+
+public class DateUtil {
+    private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
+    private static Calendar calendar = Calendar.getInstance();
+
+    /*
+    输入日期字符串比如201703,返回当月第一天的Date
+    */
+    public static Date getMinDateMonth(String month) {
+        try {
+            Date nowDate = sdf.parse(month);
+            calendar = Calendar.getInstance();
+            calendar.setTime(nowDate);
+            calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
+            return calendar.getTime();
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    /*
+    输入日期字符串,返回当月最后一天的Date
+    */
+    public static Date getMaxDateMonth(String month) {
+        try {
+            Date nowDate = sdf.parse(month);
+            calendar = Calendar.getInstance();
+            calendar.setTime(nowDate);
+            calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
+            calendar.add(Calendar.DAY_OF_MONTH,1);
+            return calendar.getTime();
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    public static void main(String[] args) throws ParseException {
+        String month = "2020-02";
+        System.out.println(getMinDateMonth(month));
+        System.out.println(getMaxDateMonth(month));
+    }
+
+
+}