Преглед на файлове

调整订单优惠券更新接口

Eric преди 2 години
родител
ревизия
11d336c151

+ 24 - 2
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/io/request/coupon/CouponOrderVO.java

@@ -1,12 +1,14 @@
 package com.yonge.cooleshow.admin.io.request.coupon;
 
 import com.alibaba.fastjson.JSON;
+import com.google.common.collect.Lists;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.coupon.CouponCategoryEnum;
 import com.yonge.cooleshow.biz.dal.enums.coupon.CouponUseStateEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
+import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import org.apache.commons.collections.CollectionUtils;
@@ -91,6 +93,7 @@ public class CouponOrderVO {
      * 优惠券详情信息
      */
     @Data
+    @Builder
     @NoArgsConstructor
     @AllArgsConstructor
     public static class CouponInfo implements Serializable {
@@ -125,7 +128,10 @@ public class CouponOrderVO {
         @ApiModelProperty("用户ID")
         private Long userId;
 
-        @ApiModelProperty("优惠券信息")
+        @ApiModelProperty(value = "优惠券发放ID")
+        private List<Long> issueIds;
+
+        @ApiModelProperty(value = "优惠券信息", hidden = true)
         private List<CouponInfo> couponInfos;
 
         @ApiModelProperty("优惠券状态重置标识")
@@ -146,7 +152,7 @@ public class CouponOrderVO {
             } else {
 
                 // 更新优惠券使用状态
-                if (CollectionUtils.isEmpty(getCouponInfos())) {
+                if (CollectionUtils.isEmpty(getIssueIds())) {
                     return true;
                 }
             }
@@ -157,5 +163,21 @@ public class CouponOrderVO {
         public String jsonString() {
             return JSON.toJSONString(this);
         }
+
+
+        public List<CouponInfo> getCouponInfos() {
+
+            List<CouponInfo> retlist = Lists.newArrayList();
+
+            if (CollectionUtils.isNotEmpty(getIssueIds())) {
+
+                for (Long item : getIssueIds()) {
+
+                    retlist.add(CouponInfo.builder().issueId(item).selected(true).build());
+                }
+            }
+
+            return retlist;
+        }
     }
 }

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/queryInfo/CouponInfoQuery.java

@@ -103,6 +103,9 @@ public class CouponInfoQuery implements Serializable {
         // 当前时间
         private Long timestamp;
 
+        // 订单编号
+        private String orderNo;
+
         // 订单支付金额
         private Double amount;
 

+ 11 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderServiceImpl.java

@@ -198,6 +198,15 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
                 o.setPlantformFeeRate(null);
             });
             userOrderVo.setOrderDetailList(orderDetilList);
+
+            // 计算优惠券金额
+            CouponOrderWrapper couponOrderWrapper  = couponInfoService.queryUserOrderCouponInfo(param.getUserId(),
+                    CouponInfoQuery.CouponOrderQuery.builder()
+                            .clientType(userOrderVo.getOrderClient())
+                            .orderNo(param.getOrderNo())
+                            .amount(userOrderVo.getExpectPrice().doubleValue())
+                            .build());
+            userOrderVo.setDiscountPrice(BigDecimal.valueOf(couponOrderWrapper.getDiscountedPrices()));
         }
         return userOrderVo;
     }
@@ -335,8 +344,8 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
                             .amount(createRes.getExpectPrice().doubleValue())
                             .build());
 
-            //todo 优惠券优惠金额,暂时为0
-            couponAmount =couponAmount.add( BigDecimal.valueOf(couponOrderWrapper.getDiscountedPrices()));
+            // 优惠券优惠金额,暂时为0
+            couponAmount =couponAmount.add(BigDecimal.valueOf(couponOrderWrapper.getDiscountedPrices()));
 
             if (couponAmount.compareTo(createRes.getExpectPrice()) > 0 ){
                 couponAmount = createRes.getExpectPrice();

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/UserOrderVo.java

@@ -37,6 +37,9 @@ public class UserOrderVo extends UserOrder {
 	@ApiModelProperty(value = "手机号")
 	private String phone;
 
+	@ApiModelProperty("优惠券抵扣金额 ")
+	private BigDecimal discountPrice;
+
 	public List<UserOrderDetailVo> getOrderDetailList() {
 		return orderDetailList;
 	}
@@ -108,4 +111,12 @@ public class UserOrderVo extends UserOrder {
 	public void setPaymentClient(String paymentClient) {
 		this.paymentClient = paymentClient;
 	}
+
+	public BigDecimal getDiscountPrice() {
+		return discountPrice;
+	}
+
+	public void setDiscountPrice(BigDecimal discountPrice) {
+		this.discountPrice = discountPrice;
+	}
 }

+ 3 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/CouponInfoMapper.xml

@@ -144,6 +144,9 @@
             <if test="record.timestamp != null">
                 AND (t2.start_time_ &lt;= #{record.timestamp} AND #{record.timestamp} &lt;= t2.end_time_)
             </if>
+            <if test="record.orderNo != null">
+                AND t2.order_no_ = #{record.orderNo}
+            </if>
             <if test="record.couponTypes != null">
                 AND t1.category_ IN (<foreach collection="record.couponTypes" separator="," item="item">#{item}</foreach>)
             </if>