Browse Source

保存订单修改

plf 3 years ago
parent
commit
f5dbf85eda

+ 58 - 1
src/main/java/com/caimei/modules/coupon/entity/CmCouponOrderRecord.java

@@ -1,5 +1,6 @@
 package com.caimei.modules.coupon.entity;
 
+import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
 
@@ -9,7 +10,7 @@ import java.util.Date;
  * @author : plf
  * @date : 2021/8/20
  */
-public class CmCouponOrderRecord {
+public class CmCouponOrderRecord implements Serializable {
     private Integer id;
 
     /**
@@ -41,4 +42,60 @@ public class CmCouponOrderRecord {
      * 创建时间
      */
     private Date createDate;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(Integer orderId) {
+        this.orderId = orderId;
+    }
+
+    public Integer getClubCouponId() {
+        return clubCouponId;
+    }
+
+    public void setClubCouponId(Integer clubCouponId) {
+        this.clubCouponId = clubCouponId;
+    }
+
+    public Integer getCouponType() {
+        return couponType;
+    }
+
+    public void setCouponType(Integer couponType) {
+        this.couponType = couponType;
+    }
+
+    public BigDecimal getCouponAmount() {
+        return couponAmount;
+    }
+
+    public void setCouponAmount(BigDecimal couponAmount) {
+        this.couponAmount = couponAmount;
+    }
+
+    public BigDecimal getTouchPrice() {
+        return touchPrice;
+    }
+
+    public void setTouchPrice(BigDecimal touchPrice) {
+        this.touchPrice = touchPrice;
+    }
+
+    public Date getCreateDate() {
+        return createDate;
+    }
+
+    public void setCreateDate(Date createDate) {
+        this.createDate = createDate;
+    }
 }

+ 23 - 0
src/main/java/com/caimei/modules/order/dao/NewOrderDao.java

@@ -1,5 +1,6 @@
 package com.caimei.modules.order.dao;
 
+import com.caimei.modules.coupon.entity.CmCoupon;
 import com.caimei.modules.coupon.entity.CmCouponOrderRecord;
 import com.caimei.modules.order.entity.CmFile;
 import com.caimei.modules.order.entity.NewOrder;
@@ -146,4 +147,26 @@ public interface NewOrderDao extends CrudDao<NewOrder> {
      * @return
      */
     CmCouponOrderRecord findOrderCouponRecord(Integer orderID);
+
+    /**
+     * 查询优惠券信息
+     *
+     * @param clubCouponId
+     * @return
+     */
+    CmCoupon findClubCouponById(Integer clubCouponId);
+
+    /**
+     * 保存优惠券与订单信息
+     *
+     * @param orderRecord
+     */
+    void insertCouponOrderRecord(CmCouponOrderRecord orderRecord);
+
+    /**
+     * 更新优惠券与订单信息
+     *
+     * @param orderRecord
+     */
+    void updateCouponOrderRecord(CmCouponOrderRecord orderRecord);
 }

+ 26 - 3
src/main/java/com/caimei/modules/order/service/NewOrderService.java

@@ -242,9 +242,26 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
             }
             //优惠券相关
             if (newOrder.getClubCouponId() != null && newOrder.getClubCouponId() > 0) {
-                /*CmCouponOrderRecord orderRecord = newOrderDao.findOrderCouponRecord(newOrder.getOrderID());
-                CmCoupon coupon = newOrderDao.findClubCouponById(newOrder.getClubCouponId());*/
-
+                CmCoupon coupon = newOrderDao.findClubCouponById(newOrder.getClubCouponId());
+                if (coupon != null) {
+                    CmCouponOrderRecord orderRecord = newOrderDao.findOrderCouponRecord(newOrder.getOrderID());
+                    if (orderRecord == null) {
+                        orderRecord = new CmCouponOrderRecord();
+                        orderRecord.setCouponAmount(coupon.getCouponAmount());
+                        orderRecord.setTouchPrice(coupon.getTouchPrice());
+                        orderRecord.setClubCouponId(newOrder.getClubCouponId());
+                        orderRecord.setOrderId(newOrder.getOrderID());
+                        orderRecord.setCreateDate(new Date());
+                        orderRecord.setCouponType(coupon.getCouponType());
+                        newOrderDao.insertCouponOrderRecord(orderRecord);
+                    } else {
+                        orderRecord.setClubCouponId(newOrder.getClubCouponId());
+                        orderRecord.setCouponAmount(coupon.getCouponAmount());
+                        orderRecord.setTouchPrice(coupon.getTouchPrice());
+                        orderRecord.setCouponType(coupon.getCouponType());
+                        newOrderDao.updateCouponOrderRecord(orderRecord);
+                    }
+                }
             }
             // 促销订单
             List<CmPromotion> promotionsList = new ArrayList<>();
@@ -980,6 +997,12 @@ public class NewOrderService extends CrudService<NewOrderDao, NewOrder> {
         else
             newOrder.setRebateOrder("0");
         if (null != newOrder) {
+            if (newOrder.getCouponAmount() > 0) {
+                CmCouponOrderRecord couponRecord = newOrderDao.findOrderCouponRecord(newOrder.getOrderID());
+                if (couponRecord != null) {
+                    newOrder.setClubCouponId(couponRecord.getClubCouponId());
+                }
+            }
             //获取订单客户
             OrderUserInfo orderUserInfo = orderUserInfoService.findByOrderID(newOrder.getOrderID());
             NewCmClub club = newCmClubDao.getclubByUserId(newOrder.getUserID());

+ 0 - 2
src/main/java/com/caimei/modules/order/web/NewOrderController.java

@@ -131,8 +131,6 @@ public class NewOrderController extends BaseController {
     private CmPromotionDao cmPromotionDao;
     @Autowired
     private PurchaseProductService purchaseProductService;
-    @Autowired
-    private LogisticsRecordDao logisticsRecordDao;
 
     @ModelAttribute
     public NewOrder get(@RequestParam(required = false) String id) {

+ 71 - 4
src/main/resources/mappings/modules/order/OrderMapper.xml

@@ -58,7 +58,8 @@
 		a.affirmPaymentFlag AS affirmPaymentFlag,
 		a.rebateFlag AS rebateFlag,
 		a.zeroCostFlag AS zeroCostFlag,
-		a.organizeStoreId as organizeStoreId
+		a.organizeStoreId as organizeStoreId,
+		a.couponAmount as couponAmount
 	</sql>
 
     <select id="get" resultType="newOrder">
@@ -373,7 +374,8 @@
 			affirmPaymentFlag,
 			rebateFlag,
 			payStatus,
-			zeroCostFlag
+			zeroCostFlag,
+			couponAmount
 		) VALUES (
 			#{orderNo},
 			#{userID},
@@ -423,7 +425,8 @@
 			#{affirmPaymentFlag},
 			#{rebateFlag},
 			#{payStatus},
-			#{zeroCostFlag}
+			#{zeroCostFlag},
+			#{couponAmount}
 		)
 	</insert>
 
@@ -590,7 +593,10 @@
 				rebateFlag = #{rebateFlag},
 			</if>
 			<if test="zeroCostFlag != null">
-				zeroCostFlag = #{zeroCostFlag}
+				zeroCostFlag = #{zeroCostFlag},
+			</if>
+			<if test="couponAmount != null">
+				couponAmount = #{couponAmount}
 			</if>
 		</set>
 		where orderID = #{orderID,jdbcType=BIGINT}
@@ -862,6 +868,67 @@
     </update>
 
 	<select id="findOrderCouponRecord" resultType="com.caimei.modules.coupon.entity.CmCouponOrderRecord">
+		SELECT
+		  `id`,
+		  `orderId`,
+		  `clubCouponId`,
+		  `couponType`,
+		  `couponAmount`,
+		  `touchPrice`,
+		  `createDate`
+		FROM
+		  cm_coupon_order_record
+		WHERE
+		  orderId = #{orderID}
+	</select>
 
+	<select id="findClubCouponById" resultType="com.caimei.modules.coupon.entity.CmCoupon">
+		SELECT
+		  cc.`id`,
+		  cc.`couponAmount`,
+		  cc.`touchPrice`,
+		  cc.`couponType`,
+		  cc.`userId`,
+		  cc.`shopId`,
+		  cc.`productType`,
+		  cc.`categoryType`,
+		  cc.`couponsMode`
+		FROM
+		  cm_coupon_club a
+		  LEFT JOIN cm_coupon cc ON a.couponId = cc.id
+		WHERE
+		  a.id = #{clubCouponId}
 	</select>
+
+	<insert id="insertCouponOrderRecord">
+        INSERT INTO `cm_coupon_order_record` (
+          `orderId`,
+          `clubCouponId`,
+          `couponType`,
+          `couponAmount`,
+          `touchPrice`,
+          `createDate`
+        )
+        VALUES
+          (
+            #{orderId},
+            #{clubCouponId},
+            #{couponType},
+            #{couponAmount},
+            #{touchPrice},
+            #{createDate}
+          )
+	</insert>
+
+	<update id="updateCouponOrderRecord">
+		UPDATE
+		  `cm_coupon_order_record`
+		SET
+		  `clubCouponId` = #{clubCouponId},
+		  `couponType` = #{couponType},
+		  `couponAmount` = #{couponAmount},
+		  `touchPrice` = #{touchPrice}
+		WHERE
+		  orderId = #{orderId}
+	</update>
 </mapper>