From 77fc61a25c14071584e45731476207959137d6b6 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期三, 04 三月 2026 17:17:39 +0800
Subject: [PATCH] 小程序 接口开发
---
server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java | 2 -
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java | 2
server/dmmall_service/src/main/java/com/doumee/service/business/impl/AftersaleServiceImpl.java | 6 +-
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java | 22 ++++++----
server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java | 36 +++++++++++++----
5 files changed, 44 insertions(+), 24 deletions(-)
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/AftersaleServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/AftersaleServiceImpl.java
index e1c461d..bab7944 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/AftersaleServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/AftersaleServiceImpl.java
@@ -1050,7 +1050,7 @@
aftersale.setCode(getNextInCode());
//璁㈠崟閫�鍥炶繑鍥炵粰缁忛攢鍟嗙殑绉垎
- if(Objects.nonNull(goodsorder.getDistributionShopId())&&goodsorder.getReturnCustomerIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){
+ if(Objects.nonNull(goodsorder.getDistributionShopId())){
Shop shop = shopMapper.selectById(goodsorder.getDistributionShopId());
//缁忛攢鍟嗗瓨鍦ㄥ墿浣欑Н鍒�
if(Objects.nonNull(shop)&&shop.getIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){
@@ -1072,7 +1072,7 @@
}
//璁㈠崟閫�鍥� 缁忛攢鍟嗙粨绠椾綑棰�
- if(Objects.nonNull(goodsorder.getDistributionShopId())&&goodsorder.getShopSettlement().compareTo(BigDecimal.ZERO)>Constants.ZERO){
+ if(Objects.nonNull(goodsorder.getDistributionShopId())){
Shop shop = shopMapper.selectById(goodsorder.getDistributionShopId());
//缁忛攢鍟嗗瓨鍦ㄥ墿浣欑Н鍒�
if(Objects.nonNull(shop)&&shop.getAmount().compareTo(BigDecimal.ZERO)>Constants.ZERO){
@@ -1095,7 +1095,7 @@
}
//璁㈠崟閫�鍥� 杩旇繕缁欏鎴风殑绉垎
- if(Objects.nonNull(goodsorder.getDistributionShopId())&&goodsorder.getReturnMemberIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){
+ if(Objects.nonNull(goodsorder.getDistributionShopId())){
Member member = memberMapper.selectById(goodsorder.getMemberId());
//瀹㈡埛瀛樺湪鍓╀綑绉垎
if(Objects.nonNull(member)&&member.getIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java
index f7e17dc..0ce6f17 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java
@@ -973,6 +973,7 @@
MPJLambdaWrapper<Goods> wrapper = new MPJLambdaWrapper<Goods>()
.selectAll(Goods.class)
.select(" ifnull(( select min(gs.PRICE) from goods_sku gs where gs.GOODS_ID = t.id ),0) ",Goods::getMinPrice)
+ .select(" ifnull(( select min(gs.SHOW_PRICE) from goods_sku gs where gs.GOODS_ID = t.id ),0) ",Goods::getLinePrice)
.leftJoin(SystemUser.class, SystemUser::getId, Goods::getCreator)
.eq(Goods::getIsdeleted,Constants.ZERO)
.eq(!Objects.isNull(model) && Objects.nonNull(model.getCategoryId()),
@@ -1062,7 +1063,6 @@
//鐪熷疄閿�閲� = realSaleNum - saleNum;
//鐪熷疄搴撳瓨= sumStock - (realSaleNum - saleNum)
goodsResponse.setStock(sumStock);
- goodsResponse.setRealSaleNum(goodsResponse.getRealSaleNum()+sumStock);
goodsResponse.setGoodsSkuResponseList(goodsSkuResponseList);
//Sku鍩虹淇℃伅
List<SkuResponse> skuResponseList = skuMapper.getSkuResponseList(goodsResponse.getId());
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 7f9c503..9c0c299 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
@@ -857,12 +857,14 @@
if(!Constants.equalsInteger(goods.getStatus(),Constants.ZERO)||!Constants.equalsInteger(goods.getIsdeleted(),Constants.ZERO)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪鍟嗗搧宸插垹闄ゆ垨宸蹭笅鏋讹紝鏃犳硶涓嬪崟");
}
- if(goodsSku.getStock().compareTo(new BigDecimal(Constants.formatIntegerNum(payDetailRequest.getGoodsNum())))<Constants.ZERO){
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪鍟嗗搧搴撳瓨涓嶈冻锛屾棤娉曚笅鍗曪紒");
+ if(Objects.nonNull(goodsSku.getStock())){
+ if(goodsSku.getStock().compareTo(new BigDecimal(Constants.formatIntegerNum(payDetailRequest.getGoodsNum())))<Constants.ZERO){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪鍟嗗搧搴撳瓨涓嶈冻锛屾棤娉曚笅鍗曪紒");
+ }
+ //鍟嗗搧搴撳瓨鎵i櫎
+ goodsSku.setStock(goodsSku.getStock().subtract(new BigDecimal(Constants.formatIntegerNum(payDetailRequest.getGoodsNum()))));
+ goodsSkuMapper.updateById(goodsSku);
}
- //鍟嗗搧搴撳瓨鎵i櫎
- goodsSku.setStock(goodsSku.getStock().subtract(new BigDecimal(Constants.formatIntegerNum(payDetailRequest.getGoodsNum()))));
- goodsSkuMapper.updateById(goodsSku);
GoodsorderDetail goodsOrderDetail = new GoodsorderDetail();
goodsOrderDetail.setCreator(member.getId());
goodsOrderDetail.setCreateDate(new Date());
@@ -1443,6 +1445,7 @@
orderPayConfirmResponse.setCouponAmount(couponAmount);
//鑾峰彇鍙互浣跨敤鐨勪紭鎯犲埜
List<MemberCoupon> memberCouponList = memberCouponService.getApplyCoupon(request.getPayDetailRequestList(),request.getMemberId());
+
if(CollectionUtils.isNotEmpty(memberCouponList)){
orderPayConfirmResponse.setMemberCouponList(memberCouponList);
if(Objects.nonNull(request.getCouponId())&&Constants.equalsInteger(request.getCouponId(),-Constants.ONE)&&Objects.nonNull(memberCouponList)){
@@ -1456,11 +1459,11 @@
}
memberCoupon = memberCoupons.get(Constants.ZERO);
couponAmount = memberCoupon.getValidAmount();
- memberCouponService.calculateCouponRata(memberCoupon,goodsCalculateList,amount);
+// memberCouponService.calculateCouponRata(memberCoupon,goodsCalculateList,amount);
orderPayConfirmResponse.setMemberCoupon(memberCoupon);
}
}else {
- if(Objects.nonNull(request.getCouponId())){
+ if(Objects.nonNull(request.getCouponId())&&!Constants.equalsInteger(request.getCouponId(),-Constants.ONE)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏃犲彲鐢ㄤ紭鎯犲埜锛岃鍒锋柊鏌ョ湅");
}
}
@@ -1533,7 +1536,7 @@
orderPayConfirmResponse.setIntegralAmount(integralAmount);
}
//浣跨敤浼樻儬鍒� 鍑忓幓浼樻儬鍒告姷鎵i噾棰�
- if(Objects.nonNull(request.getCouponId())){
+ if(Objects.nonNull(orderPayConfirmResponse.getMemberCoupon())){
orderPayConfirmResponse.setCouponAmount(couponAmount);
}
//瀹為檯鏀粯閲戦 鍑忓幓浼樻儬鍒搞�佺Н鍒嗘姷鎵i噾棰�
@@ -2285,6 +2288,7 @@
List<Goodsorder> goodsorderList = goodsorderMapper.selectList(new QueryWrapper<Goodsorder>().lambda()
.eq(Goodsorder::getIsdeleted,Constants.ZERO)
.eq(Goodsorder::getReceiveType,Constants.ONE)
+ .isNotNull(Goodsorder::getExchangeCode)
.in(Goodsorder::getStatus,Constants.OrderStatus.WAIT_RECEIVE.getKey(),
Constants.OrderStatus.WAIT_PAY.getKey(),
Constants.OrderStatus.PAY_DONE.getKey())
@@ -2325,7 +2329,7 @@
List<Goodsorder> goodsorderList = goodsorderMapper.selectList(new QueryWrapper<Goodsorder>().lambda()
.eq(Goodsorder::getIsdeleted, Constants.ZERO)
.eq(Goodsorder::getStatus, Constants.OrderStatus.WAIT_PAY.getKey())
- .ge(Goodsorder::getCreateDate, "DATE_SUB(NOW(), INTERVAL 15 MINUTE)")
+ .apply(" CREATE_DATE > DATE_SUB(NOW(), INTERVAL 15 MINUTE) ")
);
if(CollectionUtils.isNotEmpty(goodsorderList)){
for (Goodsorder goodsorder:goodsorderList) {
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 56b5695..18d141b 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
@@ -594,9 +594,13 @@
if(CollectionUtils.isNotEmpty(allCoupon)){
for (MemberCoupon memberCoupon:allCoupon) {
- //閫傜敤绫诲瀷锛�0=鍏ㄥ満;1=鍝佺被锛�2=鎸囧畾鍟嗗搧
+ if(this.calculateCouponRata(memberCoupon,goodsCalculateList,totalAmount).compareTo(memberCoupon.getPrice())<=Constants.ZERO){
+ continue;
+ }
+ memberCouponList.add(memberCoupon);
+ /*//閫傜敤绫诲瀷锛�0=鍏ㄥ満;1=鍝佺被锛�2=鎸囧畾鍟嗗搧
if(Constants.equalsInteger(memberCoupon.getApplyType(),Constants.ZERO)){
- memberCoupon.setValidAmount(memberCoupon.getPrice());
+ memberCoupon.setValidAmount(memberCoupon.getMaxPrice());
memberCouponList.add(memberCoupon);
}else{
List<String> applyIdList = Arrays.asList(memberCoupon.getApplyIds().split(","));
@@ -604,13 +608,13 @@
isVaildUse(applyIdList,goodsCalculateList,memberCoupon.getApplyType());
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);
+ //鏍规嵁閲戦璁$畻瀹為檯鎶樻墸閲戦 PRICE 瀛樺偍鎶樻墸鍊� 渚嬪 5鎶� 瀛樺偍鍊� 5
+ BigDecimal couponPrice = skuAmount.multiply(memberCoupon.getPrice()).divide(new BigDecimal("10"),2, RoundingMode.HALF_UP);
//鎶樻墸閲戦澶т簬鏈�澶у彲鎶樻墸閲戦 鍒欎娇鐢ㄦ渶澶у彲鎶樻墸閲戦
memberCoupon.setValidAmount(couponPrice.compareTo(memberCoupon.getMaxPrice())>Constants.ZERO?memberCoupon.getMaxPrice():couponPrice);
memberCouponList.add(memberCoupon);
}
- }
+ }*/
}
}
// 浣跨敤 Stream 鎺掑簭 reversed() 琛ㄧず鍊掑簭
@@ -683,14 +687,15 @@
/**
- * 璁$畻褰撳墠宸查�夋嫨浼樻儬鍒告瘡涓晢鍝佸崰姣旈噾棰�
+ * 璁$畻浼樻儬鍒告瘡涓晢鍝佸崰姣旈噾棰�
* @param coupon 浼樻儬鍒镐俊鎭�
* @param goodsCalculateList 鍟嗗搧闆嗗悎
* @param totalAmount 璁㈠崟鎬婚噾棰�
+ * @return 鍙互浣跨敤浼樻儬鍒哥殑鍟嗗搧鎬婚噾棰�
*/
- public void calculateCouponRata(MemberCoupon coupon,List<OrderGoodsCalculateResponse> goodsCalculateList,BigDecimal totalAmount){
+ public BigDecimal calculateCouponRata(MemberCoupon coupon,List<OrderGoodsCalculateResponse> goodsCalculateList,BigDecimal totalAmount){
//鎬讳綑棰�
- BigDecimal validAmount = coupon.getValidAmount();
+ BigDecimal validAmount = coupon.getMaxPrice();
//鍓╀綑鍙垎閰嶉噾棰�
BigDecimal surplusValidAmount = validAmount;
//宸茬敤鍗犳瘮姣斾緥鍊�
@@ -699,12 +704,22 @@
if(!Constants.equalsInteger(coupon.getApplyType(),Constants.ZERO)){
List<String> applyIdList = Arrays.asList(coupon.getApplyIds().split(","));
isVaildUse(applyIdList,goodsCalculateList,coupon.getApplyType());
- //Constants.equalsInteger(coupon.getApplyType(),Constants.ONE)?Constants.ONE:Constants.ZERO);
}else{
isVaildUse(null,goodsCalculateList,coupon.getApplyType());
}
//浣跨敤浜嗕紭鎯犲埜鐨勫晢鍝佹暟閲�
Integer countCouponNum = goodsCalculateList.stream().filter(i->i.getUseCoupon()).collect(Collectors.toList()).size();
+ //浣跨敤浼樻儬鍒哥殑鎬婚噾棰�
+ BigDecimal useCouponPrice = goodsCalculateList.stream().filter(i->i.getUseCoupon())
+ .map(i->i.getSkuAmount()).reduce(BigDecimal.ZERO,BigDecimal::add);
+ if(Constants.equalsInteger(coupon.getCouponType(),Constants.ONE)){
+ //鏈�澶у彲浼樻儬閲戦
+ BigDecimal couponAmount = useCouponPrice.multiply(coupon.getPrice()).divide(new BigDecimal("10"),2,BigDecimal.ROUND_DOWN);
+ if(couponAmount.compareTo(validAmount)<=Constants.ZERO){
+ validAmount = couponAmount;
+ surplusValidAmount = validAmount;
+ }
+ }
Integer useCouponNum = Constants.ZERO;
for (int i = 0; i < goodsCalculateList.size(); i++) {
if(!goodsCalculateList.get(i).getUseCoupon()){
@@ -714,6 +729,7 @@
if(Constants.equalsInteger(useCouponNum+1,countCouponNum)){
goodsCalculateList.get(i).setOrderCouponRata(new BigDecimal("1").subtract(rata));
goodsCalculateList.get(i).setCouponDeductCash(surplusValidAmount);
+ surplusValidAmount = BigDecimal.ZERO;
break;
}
goodsCalculateList.get(i).setOrderCouponRata(goodsCalculateList.get(i).getSkuAmount().divide(totalAmount,2,BigDecimal.ROUND_DOWN));
@@ -722,6 +738,8 @@
rata = rata.add(goodsCalculateList.get(i).getOrderCouponRata());
useCouponNum = useCouponNum + 1;
}
+ coupon.setValidAmount(validAmount.subtract(surplusValidAmount));
+ return useCouponPrice;
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
index 8642b11..c027aad 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
@@ -724,9 +724,7 @@
String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()
+ systemDictDataBiz.queryByCode(Constants.OSS, Constants.SHOP_FILE).getCode();
for(Shop model:shopList){
-
model.setImgFullUrl(StringUtils.isNotBlank(model.getImgurl())?path+model.getImgurl():null);
-
}
return shopList;
}
--
Gitblit v1.9.3