Browse Source

价值优惠券

zhijiezhao 3 năm trước cách đây
mục cha
commit
d6eab4320a

+ 2 - 0
src/main/java/com/caimei/modules/coupon/dao/CmCouponDao.java

@@ -86,4 +86,6 @@ public interface CmCouponDao extends CrudDao<CmCoupon> {
      * @param clubCouponId
      */
     void updateClubCoupon(@Param("clubCouponId") Integer clubCouponId, @Param("orderId") Integer orderId);
+
+    List<CmCoupon> findCouponList(Integer moneyCouponFlag);
 }

+ 3 - 2
src/main/java/com/caimei/modules/coupon/service/CmCouponService.java

@@ -331,8 +331,8 @@ public class CmCouponService extends CrudService<CmCouponDao, CmCoupon> {
         return couponsLogo;
     }
 
-    public List<CmCoupon> findClubCouponList(Product product, Integer userId) {
-        List<CmCoupon> couponList = cmCouponDao.findClubCouponList(userId);
+    public List<CmCoupon> findClubCouponList(Product product,Integer moneyCouponFlag) {
+        List<CmCoupon> couponList = cmCouponDao.findCouponList(moneyCouponFlag);
         filterCoupon(product, couponList);
         setCouponCopywriting(couponList);
         return couponList;
@@ -427,4 +427,5 @@ public class CmCouponService extends CrudService<CmCouponDao, CmCoupon> {
         cmCoupon.setMoneyCouponFlag(1);
         save(cmCoupon);
     }
+
 }

+ 6 - 1
src/main/java/com/caimei/modules/coupon/web/CmCouponController.java

@@ -300,11 +300,16 @@ public class CmCouponController extends BaseController {
         Product product = productService.get(productId.toString());
         String wwwServer = Global.getConfig("wwwServer");
         product.setMainImage(AppUtils.getImageURL("product", product.getMainImage(), 0, wwwServer));
-        List<CmCoupon> ordinaryCoupons = cmCouponService.findClubCouponList(product, userId);
+        //展示全部可用普通优惠券,不包含已领取兑换优惠券
+        List<CmCoupon> ordinaryCoupons = cmCouponService.findClubCouponList(product,1);
+        //展示全部可用兑换优惠券
         List<CmCoupon> redeemCoupons = cmCouponService.findNotRedeemedCoupon(product);
+        //展示全部可用价值优惠券
+        List<CmCoupon> moneyCoupons = cmCouponService.findClubCouponList(product,2);
         model.addAttribute("product", product);
         model.addAttribute("ordinaryCoupons", ordinaryCoupons);
         model.addAttribute("redeemCoupons", redeemCoupons);
+        model.addAttribute("moneyCoupons", moneyCoupons);
         return "/modules/coupon/productCouponDetails";
     }
 }

+ 2 - 0
src/main/java/com/caimei/modules/order/dao/CmDiscernReceiptDao.java

@@ -107,4 +107,6 @@ public interface CmDiscernReceiptDao extends CrudDao<CmDiscernReceipt> {
     Double findRefundUserMoney(String orderID);
 
     Double findOnlinePay(Integer orderID);
+
+    ReceipCouponInfoVo getCouponInfo(String receiptID);
 }

+ 66 - 0
src/main/java/com/caimei/modules/order/entity/ReceipCouponInfoVo.java

@@ -0,0 +1,66 @@
+package com.caimei.modules.order.entity;
+
+public class ReceipCouponInfoVo {
+    //劵类型 0活动券 1品类券 2用户专享券 3店铺券 4新用户券
+    private Integer couponType;
+    //机构名称
+    private String clubName;
+    //收款时间
+    private String confirmDate;
+
+    //优惠满减条件金额
+    private String touchPrice;
+
+    //优惠券面值金额
+    private String couponAmount;
+
+    private String mbOrderId;
+
+    public Integer getCouponType() {
+        return couponType;
+    }
+
+    public void setCouponType(Integer couponType) {
+        this.couponType = couponType;
+    }
+
+    public String getClubName() {
+        return clubName;
+    }
+
+    public void setClubName(String clubName) {
+        this.clubName = clubName;
+    }
+
+    public String getConfirmDate() {
+        return confirmDate;
+    }
+
+    public void setConfirmDate(String confirmDate) {
+        this.confirmDate = confirmDate;
+    }
+
+    public String getTouchPrice() {
+        return touchPrice;
+    }
+
+    public void setTouchPrice(String touchPrice) {
+        this.touchPrice = touchPrice;
+    }
+
+    public String getCouponAmount() {
+        return couponAmount;
+    }
+
+    public void setCouponAmount(String couponAmount) {
+        this.couponAmount = couponAmount;
+    }
+
+    public String getMbOrderId() {
+        return mbOrderId;
+    }
+
+    public void setMbOrderId(String mbOrderId) {
+        this.mbOrderId = mbOrderId;
+    }
+}

+ 9 - 0
src/main/java/com/caimei/modules/order/entity/ReceiptDetailVo.java

@@ -30,6 +30,7 @@ public class ReceiptDetailVo {
     private String confirmTime; //确认时间    非订单款项的确认时间
     private List<ReceiptOrderInfoVo> orderInfos; //一个收款可能会关联了一个或多个订单
     private ReceiptVipInfoVo vipInfo;// 一个收款关联一个会员记录
+    private ReceipCouponInfoVo couponInfo;//优惠券购买记录
     private boolean receiptOrderFlag;// 判断订单中抹平的订单是否是和多个订单一起支付的,
 
     public ReceiptVipInfoVo getVipInfo() {
@@ -167,4 +168,12 @@ public class ReceiptDetailVo {
     public void setReceiptOrderFlag(boolean receiptOrderFlag) {
         this.receiptOrderFlag = receiptOrderFlag;
     }
+
+    public ReceipCouponInfoVo getCouponInfo() {
+        return couponInfo;
+    }
+
+    public void setCouponInfo(ReceipCouponInfoVo couponInfo) {
+        this.couponInfo = couponInfo;
+    }
 }

+ 12 - 0
src/main/java/com/caimei/modules/order/entity/ReceiptVipInfoVo.java

@@ -41,6 +41,10 @@ public class ReceiptVipInfoVo {
      * 支付时间
      */
     private Date payTime;
+    /**
+     * 购买机构名称
+     */
+    private String clubName;
     /**
      * 商户唯一订单请求号(订单编号#随机时间戳)
      */
@@ -117,4 +121,12 @@ public class ReceiptVipInfoVo {
     public void setOrderRequestNo(String orderRequestNo) {
         this.orderRequestNo = orderRequestNo;
     }
+
+    public String getClubName() {
+        return clubName;
+    }
+
+    public void setClubName(String clubName) {
+        this.clubName = clubName;
+    }
 }

+ 8 - 3
src/main/java/com/caimei/modules/order/service/CmDiscernReceiptService.java

@@ -100,14 +100,14 @@ public class CmDiscernReceiptService extends CrudService<CmDiscernReceiptDao, Cm
                     }
                 }
             }
-            if ("6".equals(bean.getReceiptType())){
+            if ("6".equals(bean.getReceiptType())) {
                 // 超级会员款
                 Integer vipRecordId = cmDiscernReceiptDao.getVipRecordId(bean.getId());
                 Integer userId = cmDiscernReceiptDao.getVipUserId(vipRecordId);
                 String userName = cmDiscernReceiptDao.getUserNameByUserId(userId);
                 bean.setName(userName);
             }
-            if("7".equals(bean.getReceiptType())){
+            if ("7".equals(bean.getReceiptType())) {
                 //二手商品上架费
                 bean.setName("-----");
             }
@@ -207,6 +207,11 @@ public class CmDiscernReceiptService extends CrudService<CmDiscernReceiptDao, Cm
             // 二手商品上架费
 
         }
+        if ("8".equals(vo.getReceiptType())) {
+            //优惠券购买费
+            ReceipCouponInfoVo couponInfo = cmDiscernReceiptDao.getCouponInfo(vo.getReceiptID());
+            vo.setCouponInfo(couponInfo);
+        }
         vo.setOrderInfos(orderInfos);
         return vo;
     }
@@ -257,7 +262,7 @@ public class CmDiscernReceiptService extends CrudService<CmDiscernReceiptDao, Cm
                         cmUserBalanceRecord.setAddDate(new Date());
                         cmUserBalanceRecord.setDelFlag("0");
                         cmUserBalanceRecord.setAmount(order.getPayTotalFee().toString());
-                        cmUserBalanceRecord.setOrderId( order.getUserID());
+                        cmUserBalanceRecord.setOrderId(order.getUserID());
                         cmUserBalanceRecord.setRemark("定金商品撤销收款");
                         cmUserBalanceRecordDao.insertUserBalanceRecord(cmUserBalanceRecord);
                     }

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

@@ -134,6 +134,7 @@
 		  AND NOW() BETWEEN cc.startDate
 		  AND cc.endDate
 		  AND cc.status != 2
+		  AND NOW()  <![CDATA[ < ]]>  DATE_ADD(ccc.createDate,INTERVAL cc.usePeriod DAY)
 		WHERE
 		  c.status IN (1, 90)
 		  <if test="clubName != null and clubName != ''">

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

@@ -451,6 +451,7 @@
 		  LEFT JOIN cm_coupon_redemption_code ccrc ON a.id = ccrc.clubCouponId
 		WHERE
 		  cc.delFlag = 0
+		  AND cc.moneyCouponFlag = 2
 		  AND a.delFlag = 0
 		  AND a.userId = #{userId}
 		  AND a.status = 1
@@ -498,13 +499,46 @@
 		  LEFT JOIN cm_coupon_redemption_code ccrc ON a.id = ccrc.couponId
 		WHERE
 		  a.status != 2
+		  AND a.moneyCouponFlag = 2
 		  AND a.delFlag = 0
 		  AND NOW() BETWEEN a.startDate
 		  AND a.endDate
 		  AND a.couponsMode = 1
 		  AND ccrc.status = 1
 	</select>
-
+	<select id="findCouponList" resultType="com.caimei.modules.coupon.entity.CmCoupon">
+		SELECT
+			cc.`id`,
+			cc.`name`,
+			cc.`couponAmount`,
+			cc.`touchPrice`,
+			cc.`startDate`,
+			cc.`endDate`,
+			cc.`status`,
+			cc.`couponType`,
+			cc.`userId`,
+			cc.`shopId`,
+			cc.`productType`,
+			cc.`pcBanner`,
+			cc.`appletsBanner`,
+			cc.`categoryType`,
+			cc.`couponsMode`,
+			cc.`createDate`,
+		    cc.moneyCouponPrice,
+			cc.`delFlag`
+		FROM
+			cm_coupon cc
+		WHERE
+			cc.id > 0
+		  AND cc.delFlag = 0
+		  AND cc.moneyCouponFlag = #{moneyCouponFlag}
+		  AND cc.status != 2
+		  AND cc.couponsMode = 0
+		  AND now() BETWEEN cc.startDate
+		  AND cc.endDate
+		ORDER BY
+			cc.couponAmount DESC
+	</select>
 	<update id="updateClubCoupon">
 		UPDATE
 		  cm_coupon_club

+ 13 - 1
src/main/resources/mappings/modules/order/CmDiscernReceiptMapper.xml

@@ -913,9 +913,11 @@
                svipr.payTime,
                cror.orderRequestNo,
                cror.vipRecordId,
-               svipp.duration
+               svipp.duration,
+               c.name as clubName
         from cm_svip_history svipr
         left join cm_receipt_order_relation cror on svipr.id = cror.vipRecordId
+        left join club c on svipr.userId = c.clubID
         left join cm_svip_package svipp on svipp.id = svipr.packageId
         where cror.receiptID=#{receiptID}
         LIMIT 1
@@ -1000,4 +1002,14 @@
           AND cdr.payway = 1
           AND cror.orderID = #{orderID}
     </select>
+    <select id="getCouponInfo" resultType="com.caimei.modules.order.entity.ReceipCouponInfoVo">
+        SELECT c.name as clubName,cc.touchPrice,cc.couponAmount,cror.mborderId,cc.couponType,cdr.confirmDate
+        FROM cm_receipt_order_relation cror
+                 LEFT JOIN cm_discern_receipt cdr ON cror.receiptID=cdr.id
+                 LEFT JOIN cm_order co ON cror.orderId=co.orderID
+                 LEFT JOIN club c ON co.userID=c.userID
+                 LEFT JOIN cm_coupon_buyrecord ccb ON ccb.id=cror.couponRecordId
+                 LEFT JOIN cm_coupon cc ON ccb.couponId=cc.id
+        WHERE receiptID = #{receiptID}
+    </select>
 </mapper>

+ 13 - 0
src/main/webapp/WEB-INF/views/modules/coupon/productCouponDetails.jsp

@@ -63,6 +63,19 @@
             </c:forEach>
         </ul>
     </div>
+    <div class="couponList">
+        <h4>价值优惠券(${moneyCoupons.size()})</h4>
+        <ul>
+            <c:forEach items="${moneyCoupons}" var="coupon">
+                <li><span class="couponDesc">
+                    <span>${coupon.couponName}</span>
+                    <span>购买价格:${coupon.moneyCouponPrice}</span>
+                    <span>${coupon.couponDesc}</span>
+                    <span>有效期:<fmt:formatDate value="${coupon.startDate}" pattern="yyyy-MM-dd"/>-<fmt:formatDate value="${coupon.endDate}" pattern="yyyy-MM-dd"/></span>
+                </span></li>
+            </c:forEach>
+        </ul>
+    </div>
 </div>
 </body>
 </html>

+ 17 - 0
src/main/webapp/WEB-INF/views/modules/order/cmDiscernReceiptForm.jsp

@@ -403,6 +403,9 @@
         <div class="receipt-order-form">
             <div>
                 <c:if test="${not empty vo.vipInfo}">
+                    <span>机构名称:${vo.clubName}</span>
+                    <br/>
+                    <span>购买时间:${vo.receiptDate}</span>
                     <span>会员套餐:${vo.vipInfo.duration}个月</span>
                     <span>交易号:${vo.vipInfo.orderRequestNo}</span>
                 </c:if>
@@ -417,6 +420,20 @@
             </div>
         </div>
     </c:if>
+    <c:if test="${vo.receiptType == 8}">
+        <h5>优惠券信息</h5>
+        <div class="receipt-order-form">
+            <div>
+                <span>机构名称:</span>
+                <br/>
+                <span>购买时间:${vo.receiptDate}</span>
+                <span>优惠券类型:</span>
+                <span>满减金额:</span>
+                <span>购买金额:</span>
+                <span>交易号:${receiptRecord.mbOrderId}</span>
+            </div>
+        </div>
+    </c:if>
 </div>
 <script>
     (function () {