From 7869fa712c19c351a48bfb0af11b0fe87b17c184 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期三, 14 一月 2026 15:14:00 +0800
Subject: [PATCH] 小程序 用户端接口开发
---
server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goods.java | 1
server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java | 17 +
server/dmmall_service/src/main/java/com/doumee/dao/system/dto/PlatformConfigDTO.java | 1
server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java | 31 ++
server/dmmall_service/src/main/java/com/doumee/dao/web/request/goods/OrderPayConfirmRequest.java | 41 +++
server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java | 7
server/dmmall_service/src/main/java/com/doumee/dao/business/model/Shop.java | 9
server/dmmall_service/src/main/java/com/doumee/service/business/GoodsorderService.java | 5
server/dmmall_service/src/main/java/com/doumee/dao/web/request/ShopOrderPayRequest.java | 6
server/dmmall_service/src/main/java/com/doumee/dao/web/response/goods/OrderGoodsCalculateResponse.java | 11
server/dmmall_service/src/main/java/com/doumee/service/business/IntegralService.java | 8
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java | 408 +++++++++++++++++++++++++-----------
server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java | 69 ++++++
server/dmmall_service/src/main/java/com/doumee/dao/web/response/goods/OrderPayConfirmResponse.java | 15 +
server/dmmall_service/src/main/java/com/doumee/dao/business/model/GoodsSku.java | 1
server/dmmall_service/src/main/java/com/doumee/dao/web/response/goods/PayResponse.java | 3
server/dmmall_service/src/main/java/com/doumee/dao/business/ShopMapper.java | 19 +
server/dmmall_service/src/main/java/com/doumee/dao/web/request/PayDetailRequest.java | 1
18 files changed, 514 insertions(+), 139 deletions(-)
diff --git a/server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java b/server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java
index 84e39a4..0c1f69f 100644
--- a/server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -65,6 +65,8 @@
public static final String CASH_EXCHANGE_INTEGRAL_RATA = "CASH_EXCHANGE_INTEGRAL_RATA";//鐜伴噾-绉垎鍏戞崲姣斾緥锛�1鍏冨彲寰楀埌XXX绉垎锛�
+
+
public static final String INITIAL_ROLE = "INITIAL_ROLE";
public static final String PLAT_ADDR="PLAT_ADDR";
@@ -847,15 +849,20 @@
SHARE_INFO(6,"鍒嗕韩璧勮","鍒嗕韩璧勮",0),
POST_COMMENTS(7,"鍙戝竷璇勮","鍙戝竷璇勮",0),
COFFEE_MAP_CONSUME(8,"鍜栧暋鍦板浘娑堣垂","鍜栧暋鍦板浘娑堣垂",0),
- SHOP_ORDER(9,"浣欓鎶垫墸鍟嗗搧","浣欓鎶垫墸鍟嗗搧",1),
+ SHOP_ORDER(9,"绉垎鎶垫墸鍟嗗搧","绉垎鎶垫墸鍟嗗搧",1),
AFTERSALE_BACK(10,"鍞悗閫�娆�","鍞悗閫�娆�",1),
EXCHANGE_CARD(11,"鍗″厖鍊�","鍗″厖鍊�",0),
SYSTEM_RECHARGE(12,"骞冲彴鍏呭��","骞冲彴鍏呭��",0),
SYSTEM_DEDUCT(13,"骞冲彴鎵f","骞冲彴鎵f",0),
- SHOP_ORDER_CANCEL(14,"浣欓鎶垫墸鍟嗗搧閫�杩�","浣欓鎶垫墸鍟嗗搧閫�杩�",0),
- SHOP_ORDER_SETTLEMENT(15,"涓嬪崟缁撶畻閲戦","涓嬪崟缁撶畻閲戦",0), //缁忛攢鍟嗕笅鍗曠粨绠楅噾棰�
- SHOP_ORDER_CANCEL_SETTLEMENT(16,"鍙栨秷璁㈠崟缁撶畻閲戦杩旇繕","鍙栨秷璁㈠崟缁撶畻閲戦杩旇繕",0), //鍙栨秷璁㈠崟缁撶畻閲戦杩旇繕
- SHOP_YEAR_SETTLEMENT(17,"骞村害缁撶畻","骞村害缁撶畻",0) //骞村害缁撶畻
+ SHOP_ORDER_CANCEL(14,"绉垎鎶垫墸鍟嗗搧閫�杩�","绉垎鎶垫墸鍟嗗搧閫�杩�",0),
+
+
+ ORDER_DONATE(15,"璁㈠崟璧犻�佺Н鍒�","璁㈠崟璧犻�佺Н鍒�",0),
+ ORDER_DONE_AMOUNT(16,"璁㈠崟缁撶畻閲戦","璁㈠崟缁撶畻閲戦",0),
+
+ SHOP_ORDER_SETTLEMENT(16,"涓嬪崟缁撶畻閲戦","涓嬪崟缁撶畻閲戦",0), //缁忛攢鍟嗕笅鍗曠粨绠楅噾棰�
+ SHOP_ORDER_CANCEL_SETTLEMENT(17,"鍙栨秷璁㈠崟缁撶畻閲戦杩旇繕","鍙栨秷璁㈠崟缁撶畻閲戦杩旇繕",0), //鍙栨秷璁㈠崟缁撶畻閲戦杩旇繕
+ SHOP_YEAR_SETTLEMENT(18,"骞村害缁撶畻","骞村害缁撶畻",0) //骞村害缁撶畻
;
// 鎴愬憳鍙橀噺
private String name;
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/ShopMapper.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/ShopMapper.java
index 4bcd2be..f899062 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/ShopMapper.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/business/ShopMapper.java
@@ -16,7 +16,7 @@
/**
* 娣诲姞绉垎
- * @param memberId
+ * @param shopId
* @param integral
*/
@Select(" update shop set INTEGRAL = ifNull( INTEGRAL,0) + #{integral} , TOTAL_INTEGRAL = ifNull(TOTAL_INTEGRAL,0) + #{titleIntegral} , EDIT_DATE = now() where id = #{shopId} ")
@@ -24,12 +24,27 @@
/**
* 鍑忓皯绉垎
- * @param memberId
+ * @param shopId
* @param integral
*/
@Select(" update shop set INTEGRAL = ifNull( INTEGRAL,0) - #{integral} , EDIT_DATE = now() where id = #{shopId} ")
void subtractIntegral(@Param("shopId") Integer shopId , @Param("integral")BigDecimal integral);
+ /**
+ * 娣诲姞浣欓
+ * @param shopId
+ * @param amount
+ */
+ @Select(" update shop set AMOUNT = ifNull(AMOUNT,0) + #{amount} , TOTAL_AMOUNT = ifNull(TOTAL_AMOUNT,0) + #{titleAmount} , EDIT_DATE = now() where id = #{shopId} ")
+ void addAmount(@Param("shopId") Integer shopId , @Param("amount") BigDecimal amount , @Param("titleAmount")BigDecimal titleAmount);
+
+ /**
+ * 鍑忓皯浣欓
+ * @param shopId
+ * @param amount
+ */
+ @Select(" update shop set AMOUNT = ifNull( AMOUNT,0) - #{amount} , EDIT_DATE = now() where id = #{shopId} ")
+ void subtractAmount(@Param("shopId") Integer shopId , @Param("amount")BigDecimal amount);
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goods.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goods.java
index c5b7cd7..fc05f13 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goods.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goods.java
@@ -127,7 +127,6 @@
private String parentCategoryId;
@ApiModelProperty(value = "鎶垫墸姣斾緥锛�0.1%~100%锛�", example = "1", hidden = true)
- @TableField(exist = false)
private BigDecimal deductRata;
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/GoodsSku.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/GoodsSku.java
index 0cdb74d..30d80eb 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/GoodsSku.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/GoodsSku.java
@@ -72,6 +72,7 @@
@ApiModelProperty(value = "鍗曚綅")
@ExcelColumn(name="鍗曚綅")
private String unitName;
+
@ApiModelProperty(value = "绉垎鏈�澶氭姷鎵f瘮渚�")
@ExcelColumn(name="绉垎鏈�澶氭姷鎵f瘮渚�")
private BigDecimal integralRate;
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java
index 9005c29..6b9c85f 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java
@@ -67,6 +67,10 @@
@ExcelColumn(name="璁㈠崟瀹炰粯浠锋牸",index =9,width = 10)
private BigDecimal price;
+ @ApiModelProperty(value = "閭垂閲戦", example = "1")
+ private BigDecimal mailPrice;
+
+
@ApiModelProperty(value = "璁㈠崟鐘舵��")
@ExcelColumn(name="璁㈠崟鐘舵��",index =10,width = 10)
@TableField(exist = false)
@@ -127,7 +131,7 @@
@ApiModelProperty(value = "鏀粯鍗曞彿")
private String payOrderId;
- @ApiModelProperty(value = "鏀粯鏂瑰紡 0寰俊鏀粯 1绾夸笅鏀粯", example = "1")
+ @ApiModelProperty(value = "鏀粯鏂瑰紡 0鐜伴噾鏀粯 1绉垎鏀粯", example = "1")
private Integer payMethod;
@ApiModelProperty(value = "蹇�掑崟鍙�")
@@ -138,7 +142,6 @@
@ApiModelProperty(value = "蹇�掔紪鐮侊紙鍏宠仈labels琛級", example = "1")
private Integer kdId;
-
@ApiModelProperty(value = "鍙栨秷鏃堕棿")
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Shop.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Shop.java
index 46168a1..0530b95 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Shop.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Shop.java
@@ -122,6 +122,15 @@
@ApiModelProperty(value = "绉垎绱")
@ExcelColumn(name="绉垎绱")
private BigDecimal totalIntegral;
+
+ @ApiModelProperty(value = "鍙彁鎴愰噾棰�")
+ @ExcelColumn(name="鍙彁鎴愰噾棰�")
+ private BigDecimal amount;
+
+ @ApiModelProperty(value = "绱鍙彁鎴愰噾棰�")
+ @ExcelColumn(name="绱鍙彁鎴愰噾棰�")
+ private BigDecimal totalAmount;
+
@ApiModelProperty(value = "鐘舵��0姝e父 1绂佺敤", example = "1")
@ExcelColumn(name="鐘舵��0姝e父 1绂佺敤")
private Integer status;
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/system/dto/PlatformConfigDTO.java b/server/dmmall_service/src/main/java/com/doumee/dao/system/dto/PlatformConfigDTO.java
index f92f32b..2a1c852 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/system/dto/PlatformConfigDTO.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/system/dto/PlatformConfigDTO.java
@@ -41,6 +41,7 @@
private Integer returnMemberIntegralStatus;
@ApiModelProperty(value = "娑堣垂杩旂Н鍒�-杩旂粡閿�鍟嗙Н鍒嗙姸鎬� 0寮�鍚� 1鍏抽棴")
private Integer returnShopIntegralStatus;
+
@ApiModelProperty(value = "娑堣垂杩旂Н鍒�-杩旂敤鎴风Н鍒嗘暟閲�")
private BigDecimal returnMemberIntegral;
@ApiModelProperty(value = "娑堣垂杩旂Н鍒�-杩旂粡閿�鍟嗙Н鍒嗘暟閲�")
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/web/request/PayDetailRequest.java b/server/dmmall_service/src/main/java/com/doumee/dao/web/request/PayDetailRequest.java
index 7cb3ab2..39e904b 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/web/request/PayDetailRequest.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/web/request/PayDetailRequest.java
@@ -17,7 +17,6 @@
@ApiModel("鍟嗗搧涓嬪崟鏄庣粏璇锋眰绫�")
public class PayDetailRequest {
-
@ApiModelProperty(value = "sku缁勫悎缂栫爜锛堝叧鑱攇oods_sku琛級")
private Integer goodsSkuId;
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/web/request/ShopOrderPayRequest.java b/server/dmmall_service/src/main/java/com/doumee/dao/web/request/ShopOrderPayRequest.java
index 532318d..2f3bbe9 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/web/request/ShopOrderPayRequest.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/web/request/ShopOrderPayRequest.java
@@ -31,12 +31,18 @@
@ApiModelProperty(value = "鑷彁鍟嗘埛涓婚敭")
private Integer shopId;
+ @ApiModelProperty(value = "鏄惁浣跨敤绉垎锛堥粯璁や笉浣跨敤锛夛細0=涓嶄娇鐢�;1=浣跨敤")
+ private Integer useIntegral;
+
@ApiModelProperty(value = "鏀粯鍟嗗搧璇︾粏")
List<PayDetailRequest> payDetailRequestList;
@ApiModelProperty(value = "璁㈠崟澶囨敞")
private String remark;
+ @ApiModelProperty(value = "浼樻儬鍒镐富閿�")
+ private Integer couponId;
+
@ApiModelProperty(hidden = true)
private Integer memberId ;
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/web/request/goods/OrderPayConfirmRequest.java b/server/dmmall_service/src/main/java/com/doumee/dao/web/request/goods/OrderPayConfirmRequest.java
new file mode 100644
index 0000000..f8d735d
--- /dev/null
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/web/request/goods/OrderPayConfirmRequest.java
@@ -0,0 +1,41 @@
+package com.doumee.dao.web.request.goods;
+
+import com.doumee.dao.web.request.PayDetailRequest;
+import com.doumee.service.business.impl.MemberCouponServiceImpl;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/3/23 9:50
+ */
+@Data
+@ApiModel("璁㈠崟鏀粯纭椤甸潰璇锋眰绫�")
+public class OrderPayConfirmRequest{
+
+ @ApiModelProperty(value = "0=蹇�掗厤閫� 1=鑷彁", example = "1")
+ private Integer receiveType;
+
+ @ApiModelProperty(value = "鍟嗗搧涓嬪崟鏄庣粏鍒楄〃", example = "1")
+ private List<PayDetailRequest> payDetailRequestList;
+
+ @ApiModelProperty(value = "鏀惰揣鍦板潃涓婚敭(蹇�掗厤閫佷娇鐢�)", example = "1")
+ private Integer addressId;
+
+ @ApiModelProperty(value = "浼樻儬鍒镐富閿�", example = "1")
+ private Integer couponId;
+
+ @ApiModelProperty(value = "鏄惁浣跨敤绉垎", example = "1")
+ private Integer useIntegral;
+
+ @ApiModelProperty(value = "鐢ㄦ埛涓婚敭" ,hidden = true)
+ private Integer memberId;
+
+}
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/web/response/goods/OrderGoodsCalculateResponse.java b/server/dmmall_service/src/main/java/com/doumee/dao/web/response/goods/OrderGoodsCalculateResponse.java
index af5acfe..6e79df9 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/web/response/goods/OrderGoodsCalculateResponse.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/web/response/goods/OrderGoodsCalculateResponse.java
@@ -49,11 +49,14 @@
@ApiModelProperty(value = "鍗曚釜鍟嗗搧閲嶉噺(kg)", example = "1")
private BigDecimal weight;
- @ApiModelProperty(value = "sku閲戦")
+ @ApiModelProperty(value = "sku鍗曚环")
private BigDecimal skuPrice;
@ApiModelProperty(value = "sku鎬婚噾棰�")
private BigDecimal skuAmount;
+
+ @ApiModelProperty(value = "sku瀹炰粯鎬婚噾棰�")
+ private BigDecimal skuPayAmount;
@ApiModelProperty(value = "skuId")
private Integer skuId;
@@ -67,18 +70,24 @@
@ApiModelProperty(value = "鏄惁鍙互浣跨敤浼樻儬鍒�", hidden = true)
private Boolean useCoupon;
+
+
+
@ApiModelProperty(value = "绉垎鏈�澶у彲鎶垫墸閲戦", hidden = true)
private BigDecimal integralMaxDeductCash;
@ApiModelProperty(value = "绉垎瀹為檯鎶垫墸閲戦", hidden = true)
private BigDecimal integralDeductCash;
+
@ApiModelProperty(value = "瀹為檯浣跨敤绉垎", hidden = true)
private BigDecimal integralDeduct;
@ApiModelProperty(value = "璁㈠崟涓Н鍒嗛噾棰濆疄闄呭崰姣�", hidden = true)
private BigDecimal orderIntegralRata;
+
+
@ApiModelProperty(value = "搴撳瓨閲�")
private BigDecimal stockNum;
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/web/response/goods/OrderPayConfirmResponse.java b/server/dmmall_service/src/main/java/com/doumee/dao/web/response/goods/OrderPayConfirmResponse.java
index 0cd963c..c3c1275 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/web/response/goods/OrderPayConfirmResponse.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/web/response/goods/OrderPayConfirmResponse.java
@@ -24,11 +24,22 @@
@ApiModelProperty(value = "浼樻儬鍒告姷鎵i噾棰�", example = "1")
private BigDecimal couponAmount;
+
+
+ @ApiModelProperty(value = "绉垎浣跨敤鐘舵�侊細0=鍙敤锛�1=涓嶅彲鐢�", example = "1")
+ private Integer integralStatus;
+
@ApiModelProperty(value = "绉垎鎶垫墸閲戦", example = "1")
private BigDecimal integralAmount;
@ApiModelProperty(value = "鎶垫墸绉垎鍊�", example = "1")
private BigDecimal deductIntegral;
+
+ @ApiModelProperty(value = "鍓╀綑绉垎鍊�", example = "1")
+ private BigDecimal surplusIntegral;
+
+
+
@ApiModelProperty(value = "閭垂閲戦", example = "1")
private BigDecimal mailAmount;
@@ -39,12 +50,14 @@
@ApiModelProperty(value = "涓嬪崟杩旂Н鍒�", example = "1")
private BigDecimal integralBack;
- @ApiModelProperty(value = "浼樻儬鍒镐俊鎭�", example = "1")
+ @ApiModelProperty(value = "宸查�変腑浼樻儬鍒镐俊鎭�", example = "1")
private MemberCoupon memberCoupon;
@ApiModelProperty(value = "鍟嗗搧淇℃伅", example = "1")
private List<OrderGoodsCalculateResponse> goodsCalculateList;
+ @ApiModelProperty(value = "鍙敤浼樻儬鍒稿垪琛�", example = "1")
+ private List<MemberCoupon> memberCouponList;
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/web/response/goods/PayResponse.java b/server/dmmall_service/src/main/java/com/doumee/dao/web/response/goods/PayResponse.java
index c5373f0..0e623ea 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/web/response/goods/PayResponse.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/web/response/goods/PayResponse.java
@@ -19,6 +19,9 @@
@ApiModelProperty(value = "鏀粯璁㈠崟涓婚敭")
private Integer orderId;
+ @ApiModelProperty(value = "鏀粯绫诲瀷锛�0=鐜伴噾鏀粯锛�1=绾Н鍒嗘敮浠�")
+ private Integer payType;
+
@ApiModelProperty(value = "寰俊璋冭捣涓氬姟")
private Object response;
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/GoodsorderService.java b/server/dmmall_service/src/main/java/com/doumee/service/business/GoodsorderService.java
index 5426d39..e865893 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/GoodsorderService.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/GoodsorderService.java
@@ -12,9 +12,11 @@
import com.doumee.dao.web.request.goods.DealOrderRequest;
import com.doumee.dao.web.request.goods.MemberOrderRequest;
import com.doumee.dao.web.request.goods.OrderCommentRequest;
+import com.doumee.dao.web.request.goods.OrderPayConfirmRequest;
import com.doumee.dao.web.response.HomeInfoResponse;
import com.doumee.dao.web.response.MyPageResponse;
import com.doumee.dao.web.response.goods.MemberOrderResponse;
+import com.doumee.dao.web.response.goods.OrderPayConfirmResponse;
import com.doumee.dao.web.response.goods.PayResponse;
import com.doumee.service.business.impl.MemberCouponServiceImpl;
@@ -223,4 +225,7 @@
void refreshOrderCodes();
HomeInfoResponse getHomeInfo(int memberId);
+
+ OrderPayConfirmResponse orderPayConfirm(OrderPayConfirmRequest request,
+ MemberCouponServiceImpl memberCouponService);
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/IntegralService.java b/server/dmmall_service/src/main/java/com/doumee/service/business/IntegralService.java
index cf58289..f4dd03b 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/IntegralService.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/IntegralService.java
@@ -122,10 +122,16 @@
Integer dealIntegral(DealIntegralRequest dealIntegralRequest);
/**
- * 鏇存柊缁忛攢鍟嗕綑棰�
+ * 鏇存柊缁忛攢鍟嗙Н鍒�
* @param dealIntegralRequest
* @return
*/
Integer dealShopIntegral(DealIntegralRequest dealIntegralRequest);
+ /**
+ * 鏇存柊缁忛攢鍟嗛噾棰�
+ * @param dealIntegralRequest
+ * @return
+ */
+ Integer dealShopAmount(DealIntegralRequest dealIntegralRequest);
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
index c5e1955..4611954 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -19,12 +19,10 @@
import com.doumee.dao.business.join.GoodsorderJoinMapper;
import com.doumee.dao.business.join.PlanorderDetailJoinMapper;
import com.doumee.dao.business.model.*;
+import com.doumee.dao.system.dto.PlatformConfigDTO;
import com.doumee.dao.web.dto.CouponDTO;
import com.doumee.dao.web.request.*;
-import com.doumee.dao.web.request.goods.MemberOrderRequest;
-import com.doumee.dao.web.request.goods.DealOrderRequest;
-import com.doumee.dao.web.request.goods.OrderCommentRequest;
-import com.doumee.dao.web.request.goods.OrderGoodsCommentRequest;
+import com.doumee.dao.web.request.goods.*;
import com.doumee.dao.web.response.HomeInfoResponse;
import com.doumee.dao.web.response.MyPageResponse;
import com.doumee.dao.web.response.goods.*;
@@ -35,6 +33,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.doumee.service.business.IntegralService;
+import com.doumee.service.system.SystemDictDataService;
import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest;
import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
import com.github.binarywang.wxpay.bean.result.WxPayRefundResult;
@@ -54,6 +53,7 @@
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.*;
@@ -125,6 +125,9 @@
@Autowired
private SystemDictDataBiz systemDictDataBiz;
+
+ @Autowired
+ private SystemDictDataService systemDictDataService;
@Autowired
private PlanorderDetailJoinMapper planorderDetailJoinMapper;
@@ -728,7 +731,7 @@
goodsorder.setMemberId(member.getId());
goodsorder.setType(Constants.ZERO);
goodsorder.setStatus(Constants.ZERO);
-
+ Shop shop = null;
if(Constants.equalsInteger(orderPayRequest.getReceiveType(),Constants.ZERO)){
//鏌ヨ鏀惰揣鍦板潃
Addr addr = addrMapper.selectById(orderPayRequest.getAddressId());
@@ -739,23 +742,22 @@
if(Objects.isNull(area)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏀惰揣鍦板潃鍖哄垝淇℃伅鍙戠敓鍙樺寲锛岃鏇存柊鍚庝笅鍗曪紒");
}
-
goodsorder.setAddrId(addr.getId());
goodsorder.setLinkaddr(area.getProvinceName()+area.getCityName() + area.getName() + addr.getAddr());
goodsorder.setLinkphone(addr.getPhone());
goodsorder.setLinkname(addr.getName());
if(Objects.nonNull(member.getBindShopId())){
goodsorder.setDistributionShopId(member.getBindShopId());
+ shop = shopMapper.selectById(member.getBindShopId());
}
}else{
if(Objects.isNull(orderPayRequest.getShopId())){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"璇烽�夋嫨姝g‘鐨勮嚜鎻愰棬搴楋紒");
}
- Shop shop = shopMapper.selectById(orderPayRequest.getShopId());
+ shop = shopMapper.selectById(orderPayRequest.getShopId());
if(Objects.isNull(shop)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"璇烽�夋嫨姝g‘鐨勮嚜鎻愰棬搴楋紒");
}
-
//鏍规嵁閫夋嫨鍟嗘埛杩涜浼氬憳涓庡晢鎴蜂俊鎭粦瀹�
if(Objects.isNull(member.getBindShopId())){
@@ -770,13 +772,21 @@
member.setBindShopId(shop.getId());
}
}
+
//鍗曟嵁缂栧彿 鑷
goodsorder.setCode(getNextInCode());
//璁$畻璁㈠崟鎬婚噾棰�
BigDecimal sumPrice = BigDecimal.ZERO;
//瀛樺偍璁板綍鏄庣粏
- OrderPayConfirmResponse orderPayConfirmResponse = this.orderPayConfirm(orderPayRequest.getReceiveType(),orderPayRequest.getPayDetailRequestList(),orderPayRequest.getAddressId(),memberCouponService,member.getId());
+ OrderPayConfirmRequest payConfirmRequest = new OrderPayConfirmRequest();
+ payConfirmRequest.setReceiveType(orderPayRequest.getReceiveType());
+ payConfirmRequest.setPayDetailRequestList(orderPayRequest.getPayDetailRequestList());
+ payConfirmRequest.setAddressId(orderPayRequest.getAddressId());
+ payConfirmRequest.setMemberId(member.getId());
+ payConfirmRequest.setCouponId(orderPayRequest.getCouponId());
+ //閫氳繃鏀粯纭鎺ュ彛鑾峰彇鐢熸垚鏀粯淇℃伅
+ OrderPayConfirmResponse orderPayConfirmResponse = this.orderPayConfirm(payConfirmRequest,memberCouponService);
if(Objects.isNull(orderPayConfirmResponse)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"绯荤粺鏀粯閿欒,璇疯仈绯荤鐞嗗憳");
}
@@ -785,26 +795,18 @@
goodsorder.setUseIntegral(orderPayConfirmResponse.getDeductIntegral());
goodsorder.setIntegral(goodsorder.getUseIntegral());
goodsorder.setIntegralPrice(orderPayConfirmResponse.getIntegralAmount());
-
+ goodsorder.setMailPrice(orderPayConfirmResponse.getMailAmount());
+ goodsorder.setPayMethod(goodsorder.getPrice().compareTo(BigDecimal.ZERO)>Constants.ZERO?Constants.ZERO:Constants.ONE);
if(Objects.nonNull(orderPayConfirmResponse.getMemberCoupon())){
- MemberCoupon memberCoupon = memberCouponMapper.selectById(orderPayConfirmResponse.getMemberCoupon().getId());
- if(Objects.isNull(memberCoupon)){
- throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌浼樻儬鍒镐俊鎭紒");
- }
- if(memberCoupon.getStatus().equals(Constants.ONE)){
- throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"浼樻儬鍒稿凡浣跨敤锛�");
- }
- sumPrice = sumPrice.subtract(memberCoupon.getPrice());
- goodsorder.setCouponId(memberCoupon.getId());
+ sumPrice = sumPrice.subtract(orderPayConfirmResponse.getMemberCoupon().getPrice());
+ goodsorder.setCouponId(orderPayConfirmResponse.getMemberCoupon().getId());
goodsorder.setCouponPrice(orderPayConfirmResponse.getMemberCoupon().getValidAmount());
-
memberCouponMapper.update(null,new UpdateWrapper<MemberCoupon>().lambda()
.set(MemberCoupon::getStatus,Constants.ONE)
.set(MemberCoupon::getUseDate,DateUtil.getCurrDateTime())
- .eq(MemberCoupon::getId,memberCoupon.getId())
+ .eq(MemberCoupon::getId,orderPayConfirmResponse.getMemberCoupon().getId())
);
}
-
goodsorderMapper.insert(goodsorder);
List<OrderGoodsCalculateResponse> goodsCalculateList = orderPayConfirmResponse.getGoodsCalculateList();
if(CollectionUtils.isEmpty(goodsCalculateList)){
@@ -854,9 +856,27 @@
.last(" limit 1 ")
);
if(Objects.isNull(shopGoodsRelation)){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝鍏宠仈缁忛攢鍟嗘湭缁戝畾["+goods.getName()+"]鍟嗗搧锛岃鑱旂郴绠$悊鍛橈紒");
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝缁忛攢鍟嗘湭缁戝畾["+goods.getName()+"]鍟嗗搧锛岃鑱旂郴绠$悊鍛橈紒");
}
- goodsOrderDetail.setShopSettlement(shopGoodsRelation.getPrice());
+
+ PlatformConfigDTO platformConfigDTO = systemDictDataService.getPlatformConfigDTO();
+ //缁忛攢鍟嗕紭鎯犳壙鎷呭崰姣�
+ BigDecimal shopRate = new BigDecimal("100").subtract(platformConfigDTO.getTotalRate());
+ //璁$畻缁忛攢鍟嗕紭鎯犳壙鎷呴噾棰� 锛堜紭鎯犲埜鎶垫墸閲戦 + 绉垎鎶垫墸閲戦锛� * 鍗犳瘮姣斾緥
+ BigDecimal shopDeductAmount = payDetailRequest.getCouponDeductCash().add(payDetailRequest.getIntegralDeductCash())
+ .multiply(shopRate).divide(new BigDecimal("100"),2, RoundingMode.HALF_UP);
+ //鏍规嵁缁忛攢鍟嗛攢鍞ā寮� 璁$畻搴旂粨绠楅噾棰�
+ if(shop.getSaleType().equals(Constants.ONE)){
+ goodsOrderDetail.setShopSettlement(goodsOrderDetail.getPrice().subtract(shopDeductAmount));
+ }else {
+ goodsOrderDetail.setShopSettlement(
+ shopGoodsRelation.getPrice().subtract(shopGoodsRelation.getPrice()).subtract(shopDeductAmount));
+ }
+ if(goodsOrderDetail.getShopSettlement().compareTo(BigDecimal.ZERO)<Constants.ZERO){
+ goodsOrderDetail.setShopSettlement(BigDecimal.ZERO);
+ }
+ }else{
+ goodsOrderDetail.setShopSettlement(BigDecimal.ZERO);
}
goodsOrderDetailList.add(goodsOrderDetail);
//鍒犻櫎璐墿杞﹀晢鍝�
@@ -881,10 +901,55 @@
if(goodsorder.getPrice().compareTo(orderPayRequest.getTitlePrice())!=Constants.ZERO){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍟嗗搧浠锋牸鍙戠敓鍙樺寲锛岃鍒锋柊鍚庨噸鏂版敮浠橈紒");
}
-
- return this.wxPay(goodsorder,member);
+ //瀛樺湪鐜伴噾鏀粯
+ if(Constants.equalsInteger(goodsorder.getPayMethod(),Constants.ZERO)){
+ return this.wxPay(goodsorder,member);
+ }
+ //鏃犵幇閲戞敮浠�
+ goodsorderMapper.update(null,new UpdateWrapper<Goodsorder>().lambda()
+ .set(Goodsorder::getStatus,Constants.ONE)
+ .set(Goodsorder::getPayStatus,Constants.OrderStatus.PAY_DONE.getKey())
+ .set(Goodsorder::getPayDate,DateUtil.getCurrDateTime())
+ .set(Goodsorder::getId,goodsorder.getId())
+ );
+ PayResponse payResponse = new PayResponse();
+ payResponse.setOrderId(goodsorder.getId());
+ payResponse.setPayType(Constants.ONE);
+ return payResponse;
}
+
+ public void shopBalance(GoodsorderDetail detail,Shop shop){
+ if(Objects.isNull(shop)){
+ detail.setShopSettlement(BigDecimal.ZERO);
+ return;
+ }
+ PlatformConfigDTO platformConfigDTO = systemDictDataService.getPlatformConfigDTO();
+ //缁忛攢鍟嗕紭鎯犳壙鎷呭崰姣�
+ BigDecimal shopRate = new BigDecimal("100").subtract(platformConfigDTO.getTotalRate());
+
+ ShopGoodsRelation shopGoodsRelation = shopGoodsRelationMapper.selectOne(new QueryWrapper<ShopGoodsRelation>().lambda()
+ .eq(ShopGoodsRelation::getIsdeleted,Constants.ZERO)
+ .eq(ShopGoodsRelation::getStatus,Constants.ZERO)
+ .eq(ShopGoodsRelation::getShopId,shop.getId())
+ .eq(ShopGoodsRelation::getGoodsSkuId,detail.getGoodsSkuId())
+ .last(" limit 1 ")
+ );
+ if(Objects.isNull(shopGoodsRelation)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝鍏宠仈缁忛攢鍟嗘湭缁戝畾["+detail.getName()+"]鍟嗗搧锛岃鑱旂郴绠$悊鍛橈紒");
+ }
+
+
+
+
+
+
+
+
+
+
+
+ }
/**
* 閲嶆柊鏀粯
@@ -933,6 +998,7 @@
PayResponse payResponse = new PayResponse();
payResponse.setResponse(response);
payResponse.setOrderId(goodsorder.getId());
+ payResponse.setPayType(Constants.ZERO);
return payResponse;
} catch (WxPayException e) {
e.printStackTrace();
@@ -1227,14 +1293,12 @@
/**
* 璁㈠崟纭鎺ュ彛
- * @param receiveType 0=蹇�掗厤閫� 1=鑷彁
- * @param requestList
- * @param addressId
* @param memberCouponService
- * @param memberId
+ * @param request
*/
- public OrderPayConfirmResponse orderPayConfirm(Integer receiveType,List<PayDetailRequest> requestList,Integer addressId,
- MemberCouponServiceImpl memberCouponService,Integer memberId){
+ @Override
+ public OrderPayConfirmResponse orderPayConfirm(OrderPayConfirmRequest request,
+ MemberCouponServiceImpl memberCouponService){
OrderPayConfirmResponse orderPayConfirmResponse = new OrderPayConfirmResponse();
List<Goods> goodsList = goodsMapper.selectJoinList(Goods.class,
new MPJLambdaWrapper<Goods>()
@@ -1244,11 +1308,10 @@
.selectAs(GoodsSku::getWeight,Goods::getWeight)
.selectAs(GoodsSku::getImgurl,Goods::getSkuImg)
.leftJoin(GoodsSku.class,GoodsSku::getGoodsId,Goods::getId)
- .in(GoodsSku::getId,requestList.stream().map(i->i.getGoodsSkuId()).collect(Collectors.toList())));
+ .in(GoodsSku::getId,request.getPayDetailRequestList().stream().map(i->i.getGoodsSkuId()).collect(Collectors.toList())));
if(CollectionUtils.isEmpty(goodsList)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈尮閰嶅埌鍟嗗搧淇℃伅");
}
-
List<OrderGoodsCalculateResponse> goodsCalculateList = ListUtil.copyProperties(goodsList,OrderGoodsCalculateResponse::new);
//璁㈠崟鎬婚噾棰�
@@ -1262,105 +1325,152 @@
//閭垂閲戦
BigDecimal mailAmount = BigDecimal.ZERO;
for (OrderGoodsCalculateResponse response:goodsCalculateList) {
- List<PayDetailRequest> request = requestList.stream().filter(i->Constants.equalsInteger(i.getGoodsSkuId(), response.getSkuId())).collect(Collectors.toList());
- if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(request)){
- PayDetailRequest payDetailRequest = request.get(Constants.ZERO);
+ List<PayDetailRequest> payDetailRequestList = request.getPayDetailRequestList().stream()
+ .filter(i->Constants.equalsInteger(i.getGoodsSkuId(), response.getSkuId())).collect(Collectors.toList());
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(payDetailRequestList)){
+ PayDetailRequest payDetailRequest = payDetailRequestList.get(Constants.ZERO);
response.setSkuAmount(response.getSkuPrice().multiply(new BigDecimal(payDetailRequest.getGoodsNum()+"")));
response.setGoodsNum(payDetailRequest.getGoodsNum());
amount = amount.add(response.getSkuAmount());
}
}
- //鑾峰彇浼樻儬鍒镐紭鎯犻噾棰�
- List<MemberCoupon> memberCouponList = memberCouponService.getApplyCoupon(requestList,memberId);
MemberCoupon memberCoupon = new MemberCoupon();
+ orderPayConfirmResponse.setCouponAmount(couponAmount);
+ //鑾峰彇鍙互浣跨敤鐨勪紭鎯犲埜
+ List<MemberCoupon> memberCouponList = memberCouponService.getApplyCoupon(request.getPayDetailRequestList(),request.getMemberId());
if(CollectionUtils.isNotEmpty(memberCouponList)){
- memberCoupon = memberCouponList.get(Constants.ZERO);
- couponAmount = memberCoupon.getValidAmount();
- memberCouponService.calculateCouponRata(memberCoupon,goodsCalculateList,amount);
- orderPayConfirmResponse.setMemberCoupon(memberCoupon);
- }
- //绉垎鎶垫墸閲戦
- //鏌ヨ鐢ㄦ埛鎬荤Н鍒�
- Member member = memberMapper.selectById(memberId);
- //绉垎澶т簬0 涓斿ぇ浜庡彲鐢ㄧН鍒嗛厤缃」 鎵嶅彲浠ヤ娇鐢�
- if(member.getIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){
- //鏈�浣庡彲鐢ㄥ惎鐢ㄧН鍒�
- BigDecimal minimumIntegral = new BigDecimal(systemDictDataBiz.queryByCode(Constants.SHOP_CONFIG,Constants.MINIMUM_AVAILABLE_INTEGRAL).getCode());
- if(member.getIntegral().compareTo(minimumIntegral)>=Constants.ZERO){
- this.calculateIntegralRata(goodsCalculateList,member.getIntegral());
+ orderPayConfirmResponse.setMemberCouponList(memberCouponList);
+ //濡傛灉閫夋嫨浜嗕紭鎯犲埜锛屽垯鍒ゆ柇閫夋嫨鐨勪紭鎯犲埜鏄惁鏈夋晥
+ if(Objects.nonNull(request.getCouponId())){
+ List<MemberCoupon> memberCoupons = memberCouponList.stream().filter(i->Constants.equalsInteger(i.getId(),request.getCouponId())).collect(Collectors.toList());
+ if(CollectionUtils.isEmpty(memberCoupons)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閫夋嫨鐨勪紭鎯犲埜鏃犳晥锛岃鍒锋柊閲嶈瘯");
+ }
+ memberCoupon = memberCouponList.get(Constants.ZERO);
+ couponAmount = memberCoupon.getValidAmount();
+ memberCouponService.calculateCouponRata(memberCoupon,goodsCalculateList,amount);
+ orderPayConfirmResponse.setMemberCoupon(memberCoupon);
+ }
+ }else {
+ if(Objects.nonNull(request.getCouponId())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏃犲彲鐢ㄤ紭鎯犲埜锛岃鍒锋柊鏌ョ湅");
}
}
- //閭垂閲戦
- if(Constants.equalsInteger(receiveType,Constants.ZERO)){
- //TODO 鏍规嵁鏀惰揣鍦板潃 鏌ヨ杩愯垂閰嶇疆
-
- //璁$畻鍟嗗搧淇℃伅鎬婚噸閲�
- BigDecimal totalWeight = goodsCalculateList.stream().map(i->
- i.getWeight().multiply(new BigDecimal(i.getGoodsNum().toString()))
- ).reduce(BigDecimal.ZERO,BigDecimal::add);
-
- }
-
- orderPayConfirmResponse.setAmount(amount);
- orderPayConfirmResponse.setCouponAmount(couponAmount);
- orderPayConfirmResponse.setDeductIntegral(deductIntegral);
- orderPayConfirmResponse.setMailAmount(mailAmount);
- orderPayConfirmResponse.setIntegralAmount(integralAmount);
- orderPayConfirmResponse.setPayAmount(amount.subtract(couponAmount).subtract(mailAmount).subtract(integralAmount));
- orderPayConfirmResponse.setGoodsCalculateList(goodsCalculateList);
- BigDecimal cashToIntegralRata = new BigDecimal(systemDictDataBiz.queryByCode(Constants.SHOP_CONFIG,Constants.CASH_EXCHANGE_INTEGRAL_RATA).getCode());
- orderPayConfirmResponse.setIntegralBack(
- orderPayConfirmResponse.getPayAmount().multiply(cashToIntegralRata)
+ //鏌ヨ鐢ㄦ埛鎬荤Н鍒�
+ Member member = memberMapper.selectById(request.getMemberId());
+ //鏈�浣庡彲鐢ㄥ惎鐢ㄧН鍒�
+ BigDecimal minimumIntegral = new BigDecimal(systemDictDataBiz.queryByCode(Constants.SHOP_CONFIG,Constants.MINIMUM_AVAILABLE_INTEGRAL).getCode());
+ //绉垎鍙娇鐢ㄧ姸鎬� 澶т簬0 澶т簬鏈�灏忓彲鐢ㄩ厤缃Н鍒嗗��
+ orderPayConfirmResponse.setIntegralStatus(
+ (member.getIntegral().compareTo(BigDecimal.ZERO)<=Constants.ZERO||
+ member.getIntegral().compareTo(minimumIntegral)<Constants.ZERO)?Constants.ONE:Constants.ZERO
);
+ orderPayConfirmResponse.setDeductIntegral(deductIntegral);
+ orderPayConfirmResponse.setIntegralAmount(integralAmount);
+ if(Constants.equalsInteger(orderPayConfirmResponse.getIntegralStatus(),Constants.ZERO)){
+ integralAmount = this.calculateIntegralRata(orderPayConfirmResponse,goodsCalculateList,member.getIntegral());
+ }
+
+ //閭垂閲戦
+ if(Objects.nonNull(request.getReceiveType())){
+ if(Constants.equalsInteger(request.getReceiveType(),Constants.ZERO)){
+ //TODO 鏍规嵁鏀惰揣鍦板潃 鏌ヨ杩愯垂閰嶇疆
+ //璁$畻鍟嗗搧淇℃伅鎬婚噸閲�
+ BigDecimal totalWeight = goodsCalculateList.stream().map(i->
+ i.getWeight().multiply(new BigDecimal(i.getGoodsNum().toString()))
+ ).reduce(BigDecimal.ZERO,BigDecimal::add);
+ //TODO 鏆傛椂鏃犺繍璐归噾棰�
+ mailAmount = BigDecimal.ZERO;
+
+ amount = amount.add(mailAmount);
+ }
+ }
+ orderPayConfirmResponse.setAmount(amount);
+ orderPayConfirmResponse.setMailAmount(mailAmount);
+ //浣跨敤绉垎 鍑忓幓绉垎鎶垫墸閲戦
+ if(Constants.equalsInteger(request.getUseIntegral(), Constants.ONE)){
+ orderPayConfirmResponse.setIntegralAmount(integralAmount);
+ }
+ //浣跨敤浼樻儬鍒� 鍑忓幓浼樻儬鍒告姷鎵i噾棰�
+ if(Objects.nonNull(request.getCouponId())){
+ orderPayConfirmResponse.setCouponAmount(couponAmount);
+ }
+ //瀹為檯鏀粯閲戦 鍑忓幓浼樻儬鍒搞�佺Н鍒嗘姷鎵i噾棰�
+ orderPayConfirmResponse.setPayAmount(amount.subtract(couponAmount).subtract(orderPayConfirmResponse.getIntegralAmount()));
+ orderPayConfirmResponse.setGoodsCalculateList(goodsCalculateList);
+
+ orderPayConfirmResponse.setIntegralBack(getBackIntegral(orderPayConfirmResponse.getPayAmount(),Constants.ZERO));
return orderPayConfirmResponse;
}
+
/**
- *
+ * 璁$畻璧犻�佺Н鍒嗘暟閲�
+ * @param payAmount
+ * @param type 0=娑堣垂鑰呯Н鍒� 1=缁忛攢鍟嗙Н鍒�
+ * @return
+ */
+ public BigDecimal getBackIntegral(BigDecimal payAmount,Integer type){
+ BigDecimal integralBack = BigDecimal.ZERO;
+ if(payAmount.compareTo(BigDecimal.ZERO)<=Constants.ZERO){
+ return integralBack;
+ }
+ PlatformConfigDTO platformConfigDTO = systemDictDataService.getPlatformConfigDTO();
+ if(Objects.isNull(platformConfigDTO)){
+ return integralBack;
+ }
+ if(Constants.equalsInteger(type,Constants.ZERO)){
+ if( Constants.equalsInteger(platformConfigDTO.getReturnMemberIntegralStatus(),Constants.ZERO)
+ && Objects.nonNull(platformConfigDTO.getReturnMemberIntegral())){
+ integralBack = payAmount.divide(platformConfigDTO.getReturnMemberIntegral(),0,BigDecimal.ROUND_DOWN);
+ }
+ }else{
+ if( Constants.equalsInteger(platformConfigDTO.getReturnShopIntegralStatus(),Constants.ZERO)
+ && Objects.nonNull(platformConfigDTO.getReturnShopIntegral())){
+ integralBack = payAmount.divide(platformConfigDTO.getReturnShopIntegral(),0,BigDecimal.ROUND_DOWN);
+ }
+ }
+ return integralBack;
+ }
+
+
+
+
+ /**
+ * 璁$畻绉垎鎶垫墸淇℃伅
* @param goodsCalculateList 鍟嗗搧闆嗗悎
* @param totalIntegral 鐢ㄦ埛鎬荤Н鍒�
*/
- public void calculateIntegralRata(List<OrderGoodsCalculateResponse> goodsCalculateList,BigDecimal totalIntegral){
+ public BigDecimal calculateIntegralRata(OrderPayConfirmResponse orderPayConfirmResponse,List<OrderGoodsCalculateResponse> goodsCalculateList,BigDecimal totalIntegral){
//褰撳墠閫夋嫨鍟嗗搧鏈�澶у彲鐢ㄧН鍒嗘姷鎵g殑閲戦
BigDecimal maxDeductionCash = goodsCalculateList.stream().map(i->i.getSkuAmount().subtract(i.getCouponDeductCash())
- .multiply(i.getDeductRata())).reduce(BigDecimal.ZERO,BigDecimal::add);
+ .multiply(i.getDeductRata()).multiply(new BigDecimal("0.01"))).reduce(BigDecimal.ZERO,BigDecimal::add);
//绉垎 - 鐜伴噾 姣斾緥
BigDecimal cashToIntegralRata = new BigDecimal(systemDictDataBiz.queryByCode(Constants.SHOP_CONFIG,Constants.INTEGRAL_EXCHANGE_CASH_RATA).getCode());
//褰撳墠閫夋嫨鍟嗗搧鎶垫墸闇�瑕佷娇鐢ㄧ殑绉垎
BigDecimal maxDeductionIntegral = maxDeductionCash.multiply(cashToIntegralRata).multiply(new BigDecimal("100"));
- BigDecimal deductionRata = BigDecimal.ONE;
+ //鑾峰彇褰撳墠闇�瑕佹敮浠樼殑鐜伴噾鎬婚
+ BigDecimal payCash = goodsCalculateList.stream().map(i->i.getSkuAmount().subtract(i.getCouponDeductCash())).reduce(BigDecimal.ZERO,BigDecimal::add);
+
//濡傛灉瀹為檯绉垎灏戜簬鏈�澶ч渶瑕佺Н鍒� 闇�瑕佽绠楁瘮渚嬪崰姣� 鍘诲搴旀坊鍔犺嚦瀵瑰簲鐨勫晢鍝侀噷
- if(totalIntegral.compareTo(maxDeductionIntegral)<=Constants.ZERO) {
- deductionRata = totalIntegral.divide(maxDeductionIntegral, 2, BigDecimal.ROUND_HALF_UP);
- }
- //鑾峰彇鎬荤殑鎶垫墸閲戦 涓� 姣忎釜鍟嗗搧鍙姷鎵i噾棰�
- //宸茬敤鍗犳瘮姣斾緥鍊�
- BigDecimal rata = BigDecimal.ZERO;
- //鍓╀綑鍙垎閰嶉噾棰�
- BigDecimal surplusValidAmount = maxDeductionCash;
+ //寰幆涓嬪崟鍟嗗搧鍒楄〃 璁$畻搴旇浣跨敤鐨勭Н鍒嗗��
+ BigDecimal realDeductionCash = BigDecimal.ZERO;
for (int j = 0; j < goodsCalculateList.size(); j++) {
- if(Constants.equalsInteger(j+1,goodsCalculateList.size())){
- goodsCalculateList.get(j).setIntegralMaxDeductCash(surplusValidAmount);
- goodsCalculateList.get(j).setOrderIntegralRata(new BigDecimal("1").subtract(rata));
- }else{
- //绉垎鏈�澶у彲鎶垫墸閲戦
- goodsCalculateList.get(j).setIntegralMaxDeductCash(
- goodsCalculateList.get(j).getSkuAmount()
- .subtract(goodsCalculateList.get(j).getCouponDeductCash())
- .multiply(goodsCalculateList.get(j).getDeductRata()));
- //璁㈠崟涓Н鍒嗛噾棰濆疄闄呭崰姣�
- goodsCalculateList.get(j).setOrderIntegralRata(
- goodsCalculateList.get(j)
- .getIntegralMaxDeductCash().divide(maxDeductionCash,2,BigDecimal.ROUND_DOWN)
- );
- rata = rata.add(goodsCalculateList.get(j).getOrderIntegralRata());
- surplusValidAmount = surplusValidAmount.subtract(goodsCalculateList.get(j).getIntegralMaxDeductCash());
+ BigDecimal deductionCash = goodsCalculateList.get(j).getSkuAmount().subtract(goodsCalculateList.get(j).getCouponDeductCash());
+ goodsCalculateList.get(j).setIntegralMaxDeductCash(deductionCash);
+ //濡傛灉鍓╀綑绉垎澶т簬鍙互浣跨敤绉垎 鍒欑洿鎺ユ弧棰濊绠� 鍙嶄箣 鍓╀綑绉垎涓嶈兘婊¤冻鍏ㄩ儴鎶垫墸 鍗曠嫭璁$畻姣忎釜鍟嗗搧鍗犳瘮
+ if(totalIntegral.compareTo(maxDeductionIntegral)<Constants.ZERO){
+ deductionCash = deductionCash.divide(payCash).multiply(totalIntegral);
}
- //濡傛灉鐢ㄦ埛绉垎澶т簬鏈闇�瑕佷娇鐢ㄧ殑鏈�澶хН鍒� 鍒欑洿鎺ヤ娇鐢ㄥ惁鍒欓渶瑕侀噸鏂拌绠�
- goodsCalculateList.get(j).setIntegralDeductCash(goodsCalculateList.get(j).getIntegralMaxDeductCash().multiply(deductionRata));
- goodsCalculateList.get(j).setIntegralDeduct(goodsCalculateList.get(j).getIntegralMaxDeductCash().multiply(cashToIntegralRata).multiply(deductionRata));
+ goodsCalculateList.get(j).setIntegralDeductCash(deductionCash);
+ realDeductionCash = realDeductionCash.add(deductionCash);
}
+ //鍓╀綑绉垎鍊�
+ orderPayConfirmResponse.setSurplusIntegral(totalIntegral);
+ //瀹為檯鎶垫墸浣跨敤绉垎
+ orderPayConfirmResponse.setDeductIntegral(totalIntegral.compareTo(maxDeductionCash)<=Constants.ZERO?totalIntegral:maxDeductionIntegral);
+ return realDeductionCash;
}
@@ -1444,13 +1554,18 @@
goodsorder.setStatus(Constants.OrderStatus.DONE.getKey());
goodsorder.setDoneDate(new Date());
goodsorderMapper.updateById(goodsorder);
- //缁忛攢鍟嗗垎閿� 娣诲姞鍒嗛攢閲戦璁板綍
- this.addShopIntegral(goodsorder);
+ //鏍规嵁璁㈠崟绫诲瀷杩涜绉垎璧犻��
+ //涓嬪崟纭鏀惰揣 锛岃禒閫佺粡閿�鍟嗙Н鍒�
+ this.orderAddShopIntegral(goodsorder);
+ //娑堣垂鑰呯‘璁ゆ敹璐�
+ this.orderAddMemberIntegral(goodsorder);
+ //缁忛攢鍟� 缁撶畻閲戦
+ this.orderAddShopCash(goodsorder);
}
/**
* 璁㈠崟鏍搁攢
- * @param code
+ * @param
* @param memberId
*/
@Override
@@ -1467,9 +1582,7 @@
if(!goodsorder.getStatus().equals(Constants.OrderStatus.PAY_DONE.getKey())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎿嶄綔澶辫触锛氳鍗曠姸鎬佸凡娴佽浆锛屾棤娉曡繘琛岃鎿嶄綔锛�");
}
- Shop shop = shopMapper.selectById(goodsorder.getPickUpShopId());/*selectOne(new QueryWrapper<Shop>().lambda().eq(Shop::getMemberId,memberId)
- .eq(Shop::getIsdeleted,Constants.ZERO).last("limit 1 ")
- );*/
+ Shop shop = shopMapper.selectById(goodsorder.getPickUpShopId());
if(Objects.isNull(shop)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌璁㈠崟鍏宠仈缁忛攢鍟嗕俊鎭�,璇疯仈绯荤鐞嗗憳");
}
@@ -1479,35 +1592,84 @@
goodsorder.setStatus(Constants.OrderStatus.DONE.getKey());
goodsorder.setDoneDate(new Date());
goodsorderMapper.updateById(goodsorder);
- //缁忛攢鍟嗗垎閿� 娣诲姞鍒嗛攢閲戦璁板綍
- this.addShopIntegral(goodsorder);
+ //瀛樺湪鐜伴噾鏀粯 璧犻�� 绉垎
+ if(Constants.equalsInteger(goodsorder.getPayMethod(),Constants.ZERO)){
+ //璧犻�佹秷璐硅�呯Н鍒�
+ this.orderAddMemberIntegral(goodsorder);
+ //缁忛攢鍟� 娣诲姞璧犻�佺Н鍒�
+ this.orderAddShopIntegral(goodsorder);
+ //缁忛攢鍟� 缁撶畻閲戦
+ this.orderAddShopCash(goodsorder);
+ }
}
- public void addShopIntegral(Goodsorder goodsorder){
- if(Objects.isNull(goodsorder.getDistributionShopId())){
+ /**
+ * 璧犻�佺粡閿�鍟嗕笅鍗曠Н鍒�
+ * @param goodsorder
+ */
+ public void orderAddShopIntegral(Goodsorder goodsorder){
+ if(Objects.isNull(goodsorder.getDistributionShopId()) || Constants.equalsInteger(goodsorder.getPayMethod(),Constants.ONE)){
return;
}
- List<GoodsorderDetail> detailList = goodsorderDetailMapper.selectList(new QueryWrapper<GoodsorderDetail>().lambda()
- .eq(GoodsorderDetail::getOrderId,goodsorder.getId())
- .isNotNull(GoodsorderDetail::getShopSettlement)
- );
- if(CollectionUtils.isNotEmpty(detailList)){
- BigDecimal settlement = detailList.stream().map(i->i.getShopSettlement()).reduce(BigDecimal.ZERO,BigDecimal::add);
+ BigDecimal backIntegral = getBackIntegral(goodsorder.getPrice(),Constants.ONE);
+ if (backIntegral.compareTo(BigDecimal.ZERO) >= 0) {
//鏇存柊浣欓淇℃伅 娣诲姞绉垎鍙樺姩璁板綍
+ DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
+ dealIntegralRequest.setIntegralNum(backIntegral);
+ dealIntegralRequest.setDealType(Constants.ZERO);
+ dealIntegralRequest.setMemberId(goodsorder.getDistributionShopId());
+ dealIntegralRequest.setObjId(goodsorder.getId());
+ dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
+ dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.ORDER_DONATE);
+ integralService.dealShopIntegral(dealIntegralRequest);
+ }
+ }
+
+ public void orderAddShopCash(Goodsorder goodsorder){
+ if(Objects.isNull(goodsorder.getDistributionShopId()) || Constants.equalsInteger(goodsorder.getPayMethod(),Constants.ONE)){
+ return;
+ }
+ List<GoodsorderDetail> goodsorderDetails = goodsorderDetailMapper.selectList(new QueryWrapper<GoodsorderDetail>().lambda()
+ .eq(GoodsorderDetail::getOrderId,goodsorder.getId())
+ );
+ BigDecimal settlement = goodsorderDetails.stream().map(i->i.getShopSettlement()).reduce(BigDecimal.ZERO,BigDecimal::add);
+ if(settlement.compareTo(BigDecimal.ZERO)>Constants.ZERO ){
DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
dealIntegralRequest.setIntegralNum(settlement);
dealIntegralRequest.setDealType(Constants.ZERO);
dealIntegralRequest.setMemberId(goodsorder.getDistributionShopId());
dealIntegralRequest.setObjId(goodsorder.getId());
dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
- dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.SHOP_ORDER_SETTLEMENT);
- integralService.dealShopIntegral(dealIntegralRequest);
+ dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.ORDER_DONE_AMOUNT);
+ integralService.dealShopAmount(dealIntegralRequest);
}
}
+ /**
+ * 璧犻�佹秷璐硅�呬笅鍗曠Н鍒�
+ * @param goodsorder
+ */
+ public void orderAddMemberIntegral(Goodsorder goodsorder){
+ if(Constants.equalsInteger(goodsorder.getPayMethod(),Constants.ONE)){
+ return;
+ }
+ BigDecimal backIntegral = getBackIntegral(goodsorder.getPrice(),Constants.ZERO);
+ if (backIntegral.compareTo(BigDecimal.ZERO) >= 0) {
+ //鏇存柊浣欓淇℃伅 娣诲姞绉垎鍙樺姩璁板綍
+ DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
+ dealIntegralRequest.setIntegralNum(backIntegral);
+ dealIntegralRequest.setDealType(Constants.ZERO);
+ dealIntegralRequest.setMemberId(goodsorder.getDistributionShopId());
+ dealIntegralRequest.setObjId(goodsorder.getId());
+ dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
+ dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.ORDER_DONATE);
+ integralService.dealIntegral(dealIntegralRequest);
+ }
+ }
+
@Override
@Transactional(rollbackFor = Exception.class)
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java
index d53622a..bd8aeb3 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java
@@ -198,6 +198,37 @@
@Override
+ @Transactional(rollbackFor = {Exception.class, BusinessException.class})
+ public Integer dealShopAmount(DealIntegralRequest dealIntegralRequest) {
+ Shop shop = shopMapper.selectById(dealIntegralRequest.getMemberId());
+ if(Objects.isNull(shop)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鍟嗘埛淇℃伅");
+ }
+ Integral integral = new Integral();
+ integral.setMemberId(shop.getId());
+ integral.setCreateDate(new Date());
+ integral.setIsdeleted(Constants.ZERO);
+ integral.setTitle(dealIntegralRequest.getIntegralObjType().getName());
+ integral.setContent(dealIntegralRequest.getIntegralObjType().getNoteinfo());
+ integral.setObjId(dealIntegralRequest.getObjId());
+ integral.setObjType(dealIntegralRequest.getIntegralObjType().getKey());
+ integral.setType(dealIntegralRequest.getDealType());
+ integral.setNum(dealIntegralRequest.getIntegralNum());
+ integral.setTotalNum(dealIntegralRequest.getDealType().equals(Constants.ZERO)? shop.getAmount().add(integral.getNum()):shop.getAmount().subtract(integral.getNum()));
+ integral.setOrderCode(dealIntegralRequest.getOrderCode());
+ integral.setUserType(Constants.TWO);
+ integralMapper.insert(integral);
+ if(dealIntegralRequest.getDealType().equals(Constants.ZERO)){
+ shopMapper.addAmount(shop.getId(),dealIntegralRequest.getIntegralNum(),
+ dealIntegralRequest.getIntegralObjType().getAddTitle()==Constants.ZERO?dealIntegralRequest.getIntegralNum():BigDecimal.ZERO);
+ }else{
+ shopMapper.subtractAmount(shop.getId(),dealIntegralRequest.getIntegralNum());
+ }
+ return integral.getId();
+ }
+
+
+ @Override
public void deleteById(Integer id) {
integralMapper.deleteById(id);
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java
index 83df9aa..ad565c4 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java
@@ -379,7 +379,6 @@
if(CollectionUtils.isEmpty(goodsSkuList)||!Constants.equalsInteger(goodsSkuList.size(),requestList.size())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍟嗗搧SKU淇℃伅閿欒,璇峰埛鏂伴噸璇�");
}
-
//鏌ヨ鍟嗗搧鍒楄〃
List<Goods> goodsList = goodsMapper.selectJoinList(Goods.class,
new MPJLambdaWrapper<Goods>()
@@ -391,7 +390,6 @@
if(Objects.isNull(goodsList)){
return memberCouponList;
}
-
//鑾峰彇閫夋嫨鐨勫晢鍝佹�婚噾棰� 涓� 鍗曚釜鍟嗗搧閲戦
BigDecimal totalAmount = BigDecimal.ZERO;
for (Goods goods:goodsList) {
@@ -437,6 +435,73 @@
}
+ public void couponIsValid(List<PayDetailRequest> requestList,MemberCoupon memberCoupon){
+ if(Objects.isNull(memberCoupon)
+ || Constants.equalsInteger(memberCoupon.getStatus(),Constants.ONE)
+ ){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浼樻儬鍒镐俊鎭棤鏁堟垨宸茶浣跨敤");
+ }
+ if(memberCoupon.getStartDate().getTime() > System.currentTimeMillis()){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浼樻儬鍒告湭鐢熸晥");
+ }
+ if(memberCoupon.getEndDate().getTime() < System.currentTimeMillis()){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浼樻儬鍒稿凡杩囨湡");
+ }
+ List<GoodsSku> goodsSkuList = goodsSkuMapper.selectList(new QueryWrapper<GoodsSku>()
+ .lambda()
+ .eq(GoodsSku::getIsdeleted,Constants.ZERO)
+ .in(GoodsSku::getId,requestList.stream().map(i->i.getGoodsSkuId()).collect(Collectors.toList()))
+ );
+ if(CollectionUtils.isEmpty(goodsSkuList)||!Constants.equalsInteger(goodsSkuList.size(),requestList.size())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍟嗗搧SKU淇℃伅閿欒,璇峰埛鏂伴噸璇�");
+ }
+ //鏌ヨ鍟嗗搧鍒楄〃
+ List<Goods> goodsList = goodsMapper.selectJoinList(Goods.class,
+ new MPJLambdaWrapper<Goods>()
+ .selectAs(GoodsSku::getPrice,Goods::getSkuPrice)
+ .selectAs(GoodsSku::getId,Goods::getSkuId)
+ .leftJoin(GoodsSku.class,GoodsSku::getGoodsId,Goods::getId)
+ .in(GoodsSku::getId,requestList.stream().map(i->i.getGoodsSkuId()).collect(Collectors.toList())));
+ if(Objects.isNull(goodsList)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍟嗗搧SKU鍟嗗搧淇℃伅閿欒,璇峰埛鏂伴噸璇�");
+ }
+ //鑾峰彇閫夋嫨鐨勫晢鍝佹�婚噾棰� 涓� 鍗曚釜鍟嗗搧閲戦
+ BigDecimal totalAmount = BigDecimal.ZERO;
+ for (Goods goods:goodsList) {
+ List<PayDetailRequest> request = requestList.stream().filter(i->Constants.equalsInteger(i.getGoodsSkuId(), goods.getSkuId())).collect(Collectors.toList());
+ if(CollectionUtils.isNotEmpty(request)){
+ goods.setSkuAmount(goods.getSkuPrice().multiply(new BigDecimal(request.get(Constants.ZERO).getGoodsNum()+"")));
+ totalAmount = totalAmount.add(goods.getSkuAmount());
+ }
+ }
+ List<OrderGoodsCalculateResponse> goodsCalculateList = ListUtil.copyProperties(goodsList,OrderGoodsCalculateResponse::new);
+ if(totalAmount.compareTo(memberCoupon.getLimitPrice())<Constants.ZERO){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠鍟嗗搧閲戦鏈弧瓒冲彲浣跨敤闂ㄦ");
+ }
+ //閫傜敤绫诲瀷锛�0=鍏ㄥ満;1=鍝佺被锛�2=鎸囧畾鍟嗗搧
+ if(Constants.equalsInteger(memberCoupon.getApplyType(),Constants.ZERO)){
+ memberCoupon.setValidAmount(memberCoupon.getPrice());
+ }else{
+ List<String> applyIdList = Arrays.asList(memberCoupon.getApplyIds().split(","));
+ //鑾峰彇鏈夋晥鍙互浣跨敤浼樻儬鍒哥殑鏁版嵁
+ isVaildUse(applyIdList,goodsCalculateList,
+ Constants.equalsInteger(memberCoupon.getApplyType(),Constants.ONE)?Constants.ONE:Constants.ZERO);
+ BigDecimal skuAmount = goodsCalculateList.stream().filter(i->i.getUseCoupon()).map(i->i.getSkuAmount()).reduce(BigDecimal.ZERO,BigDecimal::add);
+ if(skuAmount.compareTo(memberCoupon.getLimitPrice())>=Constants.ZERO){
+ //鏍规嵁閲戦璁$畻瀹為檯鎶樻墸閲戦
+ BigDecimal couponPrice = skuAmount.multiply(memberCoupon.getPrice()).divide(new BigDecimal("100"),2, RoundingMode.HALF_UP);
+ //鎶樻墸閲戦澶т簬鏈�澶у彲鎶樻墸閲戦 鍒欎娇鐢ㄦ渶澶у彲鎶樻墸閲戦
+ memberCoupon.setValidAmount(couponPrice.compareTo(memberCoupon.getMaxPrice())>Constants.ZERO?memberCoupon.getMaxPrice():couponPrice);
+ }
+ }
+ }
+
+
+
+
+
+
+
/**
* 璁$畻褰撳墠宸查�夋嫨浼樻儬鍒告瘡涓晢鍝佸崰姣旈噾棰�
* @param coupon 浼樻儬鍒镐俊鎭�
--
Gitblit v1.9.3