Pārlūkot izejas kodu

时间动态显示优惠券状态

plf 3 gadi atpakaļ
vecāks
revīzija
ce7a896419

+ 37 - 1
src/main/java/com/caimei/modules/coupon/service/CmCouponClubService.java

@@ -4,12 +4,17 @@ import com.caimei.modules.coupon.dao.CmCouponClubDao;
 import com.caimei.modules.coupon.entity.CmCoupon;
 import com.caimei.modules.coupon.entity.CmCouponClub;
 import com.caimei.modules.coupon.entity.CmCouponRedemptionCode;
+import com.caimei.modules.user.dao.CmUserDao;
+import com.caimei.modules.user.entity.CmUser;
 import com.thinkgem.jeesite.common.persistence.Page;
 import com.thinkgem.jeesite.common.service.CrudService;
+import com.thinkgem.jeesite.common.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -26,6 +31,8 @@ import java.util.Map;
 public class CmCouponClubService extends CrudService<CmCouponClubDao, CmCouponClub> {
     @Autowired
     private CmCouponClubDao cmCouponClubDao;
+    @Autowired
+    private CmUserDao cmUserDao;
 
     public CmCouponClub get(String id) {
         return super.get(id);
@@ -57,7 +64,7 @@ public class CmCouponClubService extends CrudService<CmCouponClubDao, CmCouponCl
         if (couponList != null && couponList.size() > 0) {
             Date date = new Date();
             couponList.forEach(couponClub -> {
-                if ("2".equals(couponClub.getCouponStatus())) {
+                if (!"2".equals(couponClub.getCouponStatus())) {
                     if (date.compareTo(couponClub.getStartDate()) < 0) {
                         couponClub.setCouponStatus("0");
                     } else if (date.compareTo(couponClub.getEndDate()) > 0) {
@@ -93,6 +100,35 @@ public class CmCouponClubService extends CrudService<CmCouponClubDao, CmCouponCl
             map.put("msg", "兑换的优惠券已失效");
             return map;
         }
+        if (coupon.getCouponType() == 2 && !redemptionCode.getUserId().equals(coupon.getUserId())) {
+            map.put("code", -1);
+            map.put("msg", "该优惠券属于其他用户,您不能兑换");
+            return map;
+        }
+        if (coupon.getCouponType() == 4) {
+            CmUser cmUser = cmUserDao.get(redemptionCode.getUserId().toString());
+            if (cmUser != null && StringUtils.isNotBlank(cmUser.getRegisterTime())) {
+                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+                Date registerTime = null;
+                try {
+                    registerTime = format.parse(cmUser.getRegisterTime());
+                } catch (ParseException e) {
+                    e.printStackTrace();
+                    map.put("code", -1);
+                    map.put("msg", "该优惠券只供新用户使用,您不能兑换");
+                    return map;
+                }
+                if (registerTime.compareTo(coupon.getStartDate()) < 0) {
+                    map.put("code", -1);
+                    map.put("msg", "该优惠券只供新用户使用,您不能兑换");
+                    return map;
+                }
+            } else {
+                map.put("code", -1);
+                map.put("msg", "该优惠券只供新用户使用,您不能兑换");
+                return map;
+            }
+        }
         CmCouponClub couponClub = new CmCouponClub();
         couponClub.setCouponId(cmCouponRedemptionCode.getCouponId());
         couponClub.setUserId(redemptionCode.getUserId());

+ 1 - 1
src/main/resources/mappings/modules/coupon/CmCouponClubMapper.xml

@@ -167,7 +167,7 @@
 		  a.delFlag = 0
 		  AND cc.delFlag = 0
 		  AND a.userId = #{userId}
-		<if test="couponType != null and couponType != ''">
+		<if test="couponType != null">
 			  AND cc.couponType = #{couponType}
 		</if>
 		<if test="status != null and status != ''">

+ 3 - 3
src/main/webapp/WEB-INF/views/modules/coupon/clubCouponDetails.jsp

@@ -91,13 +91,13 @@
                 <fmt:formatDate value="${cmCoupon.createDate}" pattern="yyyy-MM-dd HH:mm:ss"/>
             </td>
             <td>
-                <c:if test="${cmCoupon.status eq 1}">
+                <c:if test="${cmCoupon.couponStatus eq 1}">
                     <font color="#00CC66">已生效</font>
                 </c:if>
-                <c:if test="${cmCoupon.status eq 2}">
+                <c:if test="${cmCoupon.couponStatus eq 2}">
                     <font color="red">已关闭</font>
                 </c:if>
-                <c:if test="${cmCoupon.status eq 3}">
+                <c:if test="${cmCoupon.couponStatus eq 3}">
                     <font color="#FF6600">已失效</font>
                 </c:if>
             </td>

+ 17 - 2
src/main/webapp/WEB-INF/views/modules/coupon/cmCouponForm.jsp

@@ -143,7 +143,7 @@
 			<div class="controls">
 				<input name="startDate" id="startDate" type="text" required readonly="readonly" maxlength="20" class="input-medium Wdate "
 					value="<fmt:formatDate value="${cmCoupon.startDate}" pattern="yyyy-MM-dd 00:00:00"/>"
-					onclick="WdatePicker({dateFmt:'yyyy-MM-dd 00:00:00',isShowClear:false});"/>
+					onclick="WdatePicker({dateFmt:'yyyy-MM-dd 00:00:00',isShowClear:false});" onblur="dateShow()">
 			</div>
 		</div>
 		<div class="control-group">
@@ -151,7 +151,7 @@
 			<div class="controls">
 				<input name="endDate" id="endDate" type="text" required readonly="readonly" maxlength="20" class="input-medium Wdate "
 					value="<fmt:formatDate value="${cmCoupon.endDate}" pattern="yyyy-MM-dd 23:59:59"/>"
-					onclick="WdatePicker({dateFmt:'yyyy-MM-dd 23:59:59',isShowClear:false});"/>
+					onclick="WdatePicker({dateFmt:'yyyy-MM-dd 23:59:59',isShowClear:false});" onblur="dateShow()"/>
 			</div>
 		</div>
 		<div class="control-group">
@@ -538,6 +538,21 @@
 		}
 	}
 
+	function dateShow() {
+		var startDate = $("#startDate").val();
+		var startMs = new Date(startDate).getTime();
+		var endDate = $("#endDate").val();
+		var endMs = new Date(endDate).getTime();
+		var nowMs = new Date().getTime();
+		if (nowMs < startMs) {
+			$("#initializeShow").html("<font color=\"#800080\">未生效</font>");
+		} else if (nowMs > endMs) {
+			$("#initializeShow").html("<font color=\"#FF6600\">已失效</font>");
+		} else {
+			$("#initializeShow").html("<font color=\"#00CC66\">已生效</font>");
+		}
+	}
+
 
 	/**
 	 * @param obj

+ 17 - 2
src/main/webapp/WEB-INF/views/modules/coupon/couponCategoryForm.jsp

@@ -79,7 +79,7 @@
         <div class="controls">
             <input name="startDate" id="startDate" type="text" required readonly="readonly" maxlength="20" class="input-medium Wdate "
                    value="<fmt:formatDate value="${cmCoupon.startDate}" pattern="yyyy-MM-dd 00:00:00"/>"
-                   onclick="WdatePicker({dateFmt:'yyyy-MM-dd 00:00:00',isShowClear:false});"/>
+                   onclick="WdatePicker({dateFmt:'yyyy-MM-dd 00:00:00',isShowClear:false});" onblur="dateShow()"/>
         </div>
     </div>
     <div class="control-group">
@@ -87,7 +87,7 @@
         <div class="controls">
             <input name="endDate" id="endDate" type="text" required readonly="readonly" maxlength="20" class="input-medium Wdate "
                    value="<fmt:formatDate value="${cmCoupon.endDate}" pattern="yyyy-MM-dd 23:59:59"/>"
-                   onclick="WdatePicker({dateFmt:'yyyy-MM-dd 23:59:59',isShowClear:false});"/>
+                   onclick="WdatePicker({dateFmt:'yyyy-MM-dd 23:59:59',isShowClear:false});" onblur="dateShow()"/>
         </div>
     </div>
     <div class="control-group">
@@ -132,6 +132,21 @@
         }
     }
 
+    function dateShow() {
+        var startDate = $("#startDate").val();
+        var startMs = new Date(startDate).getTime();
+        var endDate = $("#endDate").val();
+        var endMs = new Date(endDate).getTime();
+        var nowMs = new Date().getTime();
+        if (nowMs < startMs) {
+            $("#initializeShow").html("<font color=\"#800080\">未生效</font>");
+        } else if (nowMs > endMs) {
+            $("#initializeShow").html("<font color=\"#FF6600\">已失效</font>");
+        } else {
+            $("#initializeShow").html("<font color=\"#00CC66\">已生效</font>");
+        }
+    }
+
     /**
      * @param obj
      * jquery控制input只能输入数字

+ 17 - 2
src/main/webapp/WEB-INF/views/modules/coupon/couponNewUserForm.jsp

@@ -66,7 +66,7 @@
         <div class="controls">
             <input name="startDate" id="startDate" type="text" required readonly="readonly" maxlength="20" class="input-medium Wdate "
                    value="<fmt:formatDate value="${cmCoupon.startDate}" pattern="yyyy-MM-dd 00:00:00"/>"
-                   onclick="WdatePicker({dateFmt:'yyyy-MM-dd 00:00:00',isShowClear:false});"/>
+                   onclick="WdatePicker({dateFmt:'yyyy-MM-dd 00:00:00',isShowClear:false});" onblur="dateShow()"/>
         </div>
     </div>
     <div class="control-group">
@@ -74,7 +74,7 @@
         <div class="controls">
             <input name="endDate" id="endDate" type="text" required readonly="readonly" maxlength="20" class="input-medium Wdate "
                    value="<fmt:formatDate value="${cmCoupon.endDate}" pattern="yyyy-MM-dd 23:59:59"/>"
-                   onclick="WdatePicker({dateFmt:'yyyy-MM-dd 23:59:59',isShowClear:false});"/>
+                   onclick="WdatePicker({dateFmt:'yyyy-MM-dd 23:59:59',isShowClear:false});" onblur="dateShow()"/>
         </div>
     </div>
     <div class="control-group">
@@ -119,6 +119,21 @@
         }
     }
 
+    function dateShow() {
+        var startDate = $("#startDate").val();
+        var startMs = new Date(startDate).getTime();
+        var endDate = $("#endDate").val();
+        var endMs = new Date(endDate).getTime();
+        var nowMs = new Date().getTime();
+        if (nowMs < startMs) {
+            $("#initializeShow").html("<font color=\"#800080\">未生效</font>");
+        } else if (nowMs > endMs) {
+            $("#initializeShow").html("<font color=\"#FF6600\">已失效</font>");
+        } else {
+            $("#initializeShow").html("<font color=\"#00CC66\">已生效</font>");
+        }
+    }
+
     /**
      * @param obj
      * jquery控制input只能输入数字

+ 17 - 2
src/main/webapp/WEB-INF/views/modules/coupon/couponShopForm.jsp

@@ -99,7 +99,7 @@
             <input name="startDate" id="startDate" type="text" required readonly="readonly" maxlength="20"
                    class="input-medium Wdate "
                    value="<fmt:formatDate value="${cmCoupon.startDate}" pattern="yyyy-MM-dd 00:00:00"/>"
-                   onclick="WdatePicker({dateFmt:'yyyy-MM-dd 00:00:00',isShowClear:false});"/>
+                   onclick="WdatePicker({dateFmt:'yyyy-MM-dd 00:00:00',isShowClear:false});" onblur="dateShow()"/>
         </div>
     </div>
     <div class="control-group">
@@ -108,7 +108,7 @@
             <input name="endDate" id="endDate" type="text" required readonly="readonly" maxlength="20"
                    class="input-medium Wdate "
                    value="<fmt:formatDate value="${cmCoupon.endDate}" pattern="yyyy-MM-dd 23:59:59"/>"
-                   onclick="WdatePicker({dateFmt:'yyyy-MM-dd 23:59:59',isShowClear:false});"/>
+                   onclick="WdatePicker({dateFmt:'yyyy-MM-dd 23:59:59',isShowClear:false});" onblur="dateShow()"/>
         </div>
     </div>
     <div class="control-group">
@@ -193,6 +193,21 @@
         }
     }
 
+    function dateShow() {
+        var startDate = $("#startDate").val();
+        var startMs = new Date(startDate).getTime();
+        var endDate = $("#endDate").val();
+        var endMs = new Date(endDate).getTime();
+        var nowMs = new Date().getTime();
+        if (nowMs < startMs) {
+            $("#initializeShow").html("<font color=\"#800080\">未生效</font>");
+        } else if (nowMs > endMs) {
+            $("#initializeShow").html("<font color=\"#FF6600\">已失效</font>");
+        } else {
+            $("#initializeShow").html("<font color=\"#00CC66\">已生效</font>");
+        }
+    }
+
     //点击添加
     function showSelect() {
         var url = "${ctx}/coupon/cmCoupon/toAddShop";

+ 17 - 2
src/main/webapp/WEB-INF/views/modules/coupon/couponUserExclusiveForm.jsp

@@ -96,7 +96,7 @@
             <input name="startDate" id="startDate" type="text" required readonly="readonly" maxlength="20"
                    class="input-medium Wdate "
                    value="<fmt:formatDate value="${cmCoupon.startDate}" pattern="yyyy-MM-dd 00:00:00"/>"
-                   onclick="WdatePicker({dateFmt:'yyyy-MM-dd 00:00:00',isShowClear:false});"/>
+                   onclick="WdatePicker({dateFmt:'yyyy-MM-dd 00:00:00',isShowClear:false});" onblur="dateShow()"/>
         </div>
     </div>
     <div class="control-group">
@@ -105,7 +105,7 @@
             <input name="endDate" id="endDate" type="text" required readonly="readonly" maxlength="20"
                    class="input-medium Wdate "
                    value="<fmt:formatDate value="${cmCoupon.endDate}" pattern="yyyy-MM-dd 23:59:59"/>"
-                   onclick="WdatePicker({dateFmt:'yyyy-MM-dd 23:59:59',isShowClear:false});"/>
+                   onclick="WdatePicker({dateFmt:'yyyy-MM-dd 23:59:59',isShowClear:false});" onblur="dateShow()"/>
         </div>
     </div>
     <div class="control-group">
@@ -209,6 +209,21 @@
         }
     }
 
+    function dateShow() {
+        var startDate = $("#startDate").val();
+        var startMs = new Date(startDate).getTime();
+        var endDate = $("#endDate").val();
+        var endMs = new Date(endDate).getTime();
+        var nowMs = new Date().getTime();
+        if (nowMs < startMs) {
+            $("#initializeShow").html("<font color=\"#800080\">未生效</font>");
+        } else if (nowMs > endMs) {
+            $("#initializeShow").html("<font color=\"#FF6600\">已失效</font>");
+        } else {
+            $("#initializeShow").html("<font color=\"#00CC66\">已生效</font>");
+        }
+    }
+
     //点击添加
     function showSelect() {
         var url = "${ctx}/coupon/cmCoupon/toAddClub";

+ 17 - 2
src/main/webapp/WEB-INF/views/modules/coupon/redemptionCodeCouponForm.jsp

@@ -140,7 +140,7 @@
         <div class="controls">
             <input name="startDate" id="startDate" type="text" required readonly="readonly" maxlength="20" class="input-medium Wdate "
                    value="<fmt:formatDate value="${cmCoupon.startDate}" pattern="yyyy-MM-dd 00:00:00"/>"
-                   onclick="WdatePicker({dateFmt:'yyyy-MM-dd 00:00:00',isShowClear:false});"/>
+                   onclick="WdatePicker({dateFmt:'yyyy-MM-dd 00:00:00',isShowClear:false});" onblur="dateShow()"/>
         </div>
     </div>
     <div class="control-group">
@@ -148,7 +148,7 @@
         <div class="controls">
             <input name="endDate" id="endDate" type="text" required readonly="readonly" maxlength="20" class="input-medium Wdate "
                    value="<fmt:formatDate value="${cmCoupon.endDate}" pattern="yyyy-MM-dd 23:59:59"/>"
-                   onclick="WdatePicker({dateFmt:'yyyy-MM-dd 23:59:59',isShowClear:false});"/>
+                   onclick="WdatePicker({dateFmt:'yyyy-MM-dd 23:59:59',isShowClear:false});" onblur="dateShow()"/>
         </div>
     </div>
     <div class="control-group">
@@ -657,6 +657,21 @@
         }
     }
 
+    function dateShow() {
+        var startDate = $("#startDate").val();
+        var startMs = new Date(startDate).getTime();
+        var endDate = $("#endDate").val();
+        var endMs = new Date(endDate).getTime();
+        var nowMs = new Date().getTime();
+        if (nowMs < startMs) {
+            $("#initializeShow").html("<font color=\"#800080\">未生效</font>");
+        } else if (nowMs > endMs) {
+            $("#initializeShow").html("<font color=\"#FF6600\">已失效</font>");
+        } else {
+            $("#initializeShow").html("<font color=\"#00CC66\">已生效</font>");
+        }
+    }
+
     function showSelect(couponId) {
         if (couponId == null){
             alertx("暂未生成兑换码");

+ 1 - 2
src/main/webapp/static/modules/bulkpurchase/orderForm.js

@@ -418,8 +418,7 @@ function getShownCouponList(){
         var totalAmount = 0;
         var couponType = coupon.couponType*1;
         couponProductList.forEach(function(item){
-            var number = item.num ? item.num*1 : item.number*1;
-            var productPrice = item.price * number + item.totalAddedValueTax*1;
+            var productPrice = item.totalFee * 1;
             if (couponType === 0) {
                 if (coupon.productType*1 === 1) {
                     //活动券-全商城商品