From 0982a97b0c65e11034b9d6b00cc0e4aba39254be Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期一, 26 一月 2026 11:07:35 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java                        |   15 +
 server/dmmall_service/src/main/java/com/doumee/dao/business/model/Aftersale.java                |   17 ++
 server/dmmall_service/src/main/java/com/doumee/dao/business/model/Notice.java                   |    8 
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/NoticeServiceImpl.java     |   75 ++++++++++
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/BannerServiceImpl.java     |    2 
 server/dmmall_service/src/main/java/com/doumee/core/wx/SendWxMessage.java                       |    4 
 server/dmmall_service/src/main/java/com/doumee/dao/web/request/WxPhoneRequest.java              |   27 ++-
 server/dmmall_web/src/main/java/com/doumee/api/web/LabelsApi.java                               |    9 
 server/dmmall_service/src/main/java/com/doumee/service/business/AftersaleService.java           |    3 
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java |   14 -
 server/dmmall_service/src/main/java/com/doumee/service/business/LabelsService.java              |    2 
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java     |   13 -
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/LabelsServiceImpl.java     |   10 +
 server/dmmall_service/src/main/java/com/doumee/dao/web/request/CouponNoticeRequest.java         |   28 ++++
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/AftersaleServiceImpl.java  |  184 +++++++++++++++++++++++++-
 15 files changed, 355 insertions(+), 56 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 711f9bf..cd8d610 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
@@ -623,8 +623,7 @@
         DONE(3, "浜ゆ槗瀹屾垚", "浜ゆ槗瀹屾垚"),
         CLOSE(4, "宸插叧闂�", "宸插叧闂�"),
         PART_DONE(5, "閮ㄥ垎鍙戣揣", "閮ㄥ垎鍙戣揣"),
-
-
+        REFUND(6, "璁㈠崟閫�娆�", "璁㈠崟閫�娆�"),
         ;
         // 鎴愬憳鍙橀噺
         private String name;
@@ -881,7 +880,7 @@
      */
     public  enum IntegralObjType {
         REGISTER(0, "娉ㄥ唽绉垎濂栧姳", "娉ㄥ唽鎴愬姛锛岃幏寰�${param}绉垎",0,0),
-        INVITENEWUSER(3, "閭�璇峰ソ鍙嬪緱绉垎", "鎺ㄨ崘濂藉弸${param}鎴愬姛锛岃幏寰�${param1}绉垎",0,0),
+        INVITENEWUSER(3, "閭�璇峰ソ鍙嬪緱绉垎", "鎺ㄨ崘濂藉弸${param1}鎴愬姛锛岃幏寰�${param}绉垎",0,0),
         SYSTEM_RECHARGE(12,"绉垎鍙戞斁","骞冲彴濂栧姳锛岃幏寰�${param}绉垎",0,0),
         SYSTEM_DEDUCT(13,"绉垎鎵i櫎","骞冲彴鎵e噺锛屾秷鑰�${param}绉垎",0,0),
         MEMBER_ORDER_CANCEL(14,"鍙栨秷璁㈠崟閫�鍥�","浜ゆ槗閫�娆鹃��鍥烇紝鑾峰緱${param}绉垎",0,0),
@@ -890,17 +889,21 @@
         SHOP_YEAR_SETTLEMENT(18,"绉垎杩囨湡","绉垎杩囨湡锛屾秷鑰�${param}绉垎",0,0),
 
 
-        ORDER_DONE_AMOUNT(16,"璁㈠崟缁撶畻","${param}璁㈠崟缁撶畻鎴愬姛锛岃幏寰楋骏${param1}鍏�",0,1),//${param}璁㈠崟缂栧彿锛�${param1}閲戦
+        ORDER_DONE_AMOUNT(16,"璁㈠崟缁撶畻","${param1}璁㈠崟缁撶畻鎴愬姛锛岃幏寰楋骏${param}鍏�",0,1),//${param}璁㈠崟缂栧彿锛�${param1}閲戦
         WITHDRAW_APPLY(17,"浣欓鎻愮幇","浣欓鎻愮幇宸叉彁浜わ紝娑堣�楋骏${param}鍏�",0,1),
         WITHDRAW_APPLY_BACK(19,"鎻愮幇閫�鍥�","浣欓鎻愮幇澶辫触锛岃幏寰楋骏${param}鍏�",0,1),
-        ORDER_DONE_AMOUNT_BACK(20,"璁㈠崟缁撶畻閫�鍥�","${param}璁㈠崟缁撶畻閫�鍥烇紝娑堣�楋骏${param1}鍏�",0,1),//${param}璁㈠崟缂栧彿锛�${param1}閲戦
+        ORDER_DONE_AMOUNT_BACK(20,"璁㈠崟缁撶畻閫�鍥�","${param1}璁㈠崟缁撶畻閫�鍥烇紝娑堣�楋骏${param}鍏�",0,1),//${param}璁㈠崟缂栧彿锛�${param1}閲戦
 
 
-        SHOP_ORDER(21,"娑堣垂杩旂Н鍒�","浼氬憳${param}浜ゆ槗鎴愬姛锛岃幏寰�${param1}绉垎",0,0),//${param}鏄电О-鎵嬫満鍙�
+        SHOP_ORDER(21,"娑堣垂杩旂Н鍒�","浼氬憳${param1}浜ゆ槗鎴愬姛锛岃幏寰�${param}绉垎",0,0),//${param}鏄电О-鎵嬫満鍙�
         SHOP_ORDER_CANCEL(22,"璁㈠崟鍙栨秷閫�鍥�","璁㈠崟鍙栨秷閫�鍥烇紝閫�鍥�${param}绉垎",0,0),
         SHOP_SYSTEM_RECHARGE(23,"绉垎鍙戞斁","骞冲彴濂栧姳锛岃幏寰�${param}绉垎",0,0),
         SHOP_SYSTEM_DEDUCT(24,"绉垎鎵i櫎","骞冲彴鎵e噺锛屾秷鑰�${param}绉垎",0,0),
 
+        SHOP_ORDER_REFUND_CASH(25,"璁㈠崟閫�娆�","璁㈠崟閫�娆撅紝鎵i櫎缁撶畻閲戦${param}鍏�",0,0),
+        SHOP_ORDER_REFUND_INTEGRAL(26,"璁㈠崟閫�娆�","璁㈠崟閫�娆撅紝鎵i櫎璁㈠崟杩旇繕${param}绉垎",0,0),
+        MEMBER_ORDER_REFUND_RETURN(27,"璁㈠崟閫�娆�","璁㈠崟閫�娆撅紝鎵i櫎璁㈠崟杩旇繕${param}绉垎",0,0),
+        MEMBER_ORDER_REFUND(28,"璁㈠崟閫�娆�","璁㈠崟閫�娆撅紝杩旇繕璁㈠崟娑堣��${param}绉垎",0,0),
 
         //----------------搴熷純-------start---------
         SIGNIN(1, "绛惧埌", "绛惧埌",0,0),
diff --git a/server/dmmall_service/src/main/java/com/doumee/core/wx/SendWxMessage.java b/server/dmmall_service/src/main/java/com/doumee/core/wx/SendWxMessage.java
index 2f78583..788c959 100644
--- a/server/dmmall_service/src/main/java/com/doumee/core/wx/SendWxMessage.java
+++ b/server/dmmall_service/src/main/java/com/doumee/core/wx/SendWxMessage.java
@@ -91,11 +91,7 @@
         }catch (WxErrorException wxErrorException){
 
         }
-
     }
-
-
-
 
 
     /**
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Aftersale.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Aftersale.java
index b1c2c4a..6e63570 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Aftersale.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Aftersale.java
@@ -79,6 +79,23 @@
     @ApiModelProperty(value = "閫�娆鹃噾棰�", example = "1")
     @ExcelColumn(name="閫�娆鹃噾棰�")
     private BigDecimal money;
+
+    @ApiModelProperty(value = "鎵i櫎宸茶繑缁忛攢鍟嗙Н鍒嗗��", example = "1")
+    @ExcelColumn(name="鎵i櫎宸茶繑缁忛攢鍟嗙Н鍒嗗��")
+    private BigDecimal returnShopIntegral;
+
+    @ApiModelProperty(value = "鎵i櫎缁忛攢鍟嗙粨绠楅噾棰�", example = "1")
+    @ExcelColumn(name="鎵i櫎缁忛攢鍟嗙粨绠楅噾棰�")
+    private BigDecimal returnShopSettlement;
+
+    @ApiModelProperty(value = "鎵i櫎宸茶繑鐢ㄦ埛绉垎鍊�", example = "1")
+    @ExcelColumn(name="鎵i櫎宸茶繑鐢ㄦ埛绉垎鍊�")
+    private BigDecimal returnIntegral;
+
+    @ApiModelProperty(value = "閫�娆鹃厤缃俊鎭�", example = "1")
+    @ExcelColumn(name="閫�娆鹃厤缃俊鎭�")
+    private String returnConfig;
+
     @ApiModelProperty(value = "瀹為檯閫�娆鹃噾棰�", example = "1")
     @ExcelColumn(name="瀹為檯閫�娆鹃噾棰�")
     private BigDecimal actMoney;
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Notice.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Notice.java
index 5d98785..d6aabb7 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Notice.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Notice.java
@@ -80,12 +80,12 @@
     @ExcelColumn(name="瀵硅薄缂栫爜")
     private Integer objId;
 
-    @ApiModelProperty(value = "瀵硅薄绫诲瀷 0鍜栬眴璁㈠崟 銆佸晢鍩庛�佸挅鍟¤鍒掕鍗� 1娲诲姩銆佹帰搴椼�佽祫璁� 2娲诲姩鎺㈠簵璧勮璇勮", example = "1")
-    @ExcelColumn(name="瀵硅薄绫诲瀷 0鍜栬眴璁㈠崟 銆佸晢鍩庛�佸挅鍟¤鍒掕鍗� 1娲诲姩銆佹帰搴椼�佽祫璁� 2娲诲姩鎺㈠簵璧勮璇勮")
+    @ApiModelProperty(value = "瀵硅薄绫诲瀷 0鍟嗗煄璁㈠崟 1绉垎娴佹按 2浜掑姩璇勪环 3浼樻儬鍒� 4鐜伴噾娴佹按", example = "1")
+    @ExcelColumn(name="瀵硅薄绫诲瀷 0鍟嗗煄璁㈠崟 1绉垎娴佹按 2浜掑姩璇勪环 3浼樻儬鍒� 4鐜伴噾娴佹按")
     private Integer objType;
 
-    @ApiModelProperty(value = "娑堟伅绫诲瀷 0璁㈠崟閫氱煡 1绯荤粺娑堟伅 2浜掑姩娑堟伅 3浼樻儬鍒告彁閱� 4瀹樻柟瀹㈡湇  5娲诲姩鎺ㄨ崘 6鎴戠殑鍏虫敞", example = "1")
-    @ExcelColumn(name="娑堟伅绫诲瀷 0璁㈠崟閫氱煡 1绯荤粺娑堟伅 2浜掑姩娑堟伅 3浼樻儬鍒告彁閱� 4瀹樻柟瀹㈡湇  5娲诲姩鎺ㄨ崘 6鎴戠殑鍏虫敞")
+    @ApiModelProperty(value = "娑堟伅绫诲瀷 0娑堣垂鑰咃紱1=缁忛攢鍟嗙Н鍒嗭紱2=缁忛攢鍟嗙粨绠楅噾棰� ", example = "1")
+    @ExcelColumn(name="娑堟伅绫诲瀷 0娑堣垂鑰咃紱1=缁忛攢鍟嗙Н鍒嗭紱2=缁忛攢鍟嗙粨绠楅噾棰� ")
     private Integer type;
 
     @ApiModelProperty(value = "鐘舵�� 0鏈 1宸茶", example = "1")
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/web/request/CouponNoticeRequest.java b/server/dmmall_service/src/main/java/com/doumee/dao/web/request/CouponNoticeRequest.java
new file mode 100644
index 0000000..2347415
--- /dev/null
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/web/request/CouponNoticeRequest.java
@@ -0,0 +1,28 @@
+package com.doumee.dao.web.request;
+
+import com.doumee.dao.business.model.MemberCoupon;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import java.io.Serializable;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/3/23 9:50
+ */
+@Data
+@ApiModel("鍙戦�佷紭鎯犲埜閫氱煡璇锋眰绫�")
+public class CouponNoticeRequest{
+
+
+    @ApiModelProperty(value = "鐢ㄦ埛浼樻儬鍒镐俊鎭�")
+    private MemberCoupon memberCoupon;
+
+    @ApiModelProperty(value = "浼樻儬鍒告暟閲�")
+    private Integer num;
+
+}
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/web/request/WxPhoneRequest.java b/server/dmmall_service/src/main/java/com/doumee/dao/web/request/WxPhoneRequest.java
index 970e6e1..d939673 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/web/request/WxPhoneRequest.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/web/request/WxPhoneRequest.java
@@ -18,22 +18,27 @@
 @ApiModel("寰俊鎺堟潈鎵嬫満鍙疯姹傜被")
 public class WxPhoneRequest implements Serializable {
 
-    @NotEmpty(message = "encryptedData 涓嶈兘涓虹┖")
-    @ApiModelProperty(value = "encryptedData")
-    private String encryptedData;
-
-    @NotEmpty(message = "iv 涓嶈兘涓虹┖")
-    @ApiModelProperty(value = "iv")
-    private String iv;
-
-    @NotEmpty(message = "sessionKey 涓嶈兘涓虹┖")
-    @ApiModelProperty(value = "sessionKey")
-    private String sessionKey;
+//    @NotEmpty(message = "encryptedData 涓嶈兘涓虹┖")
+//    @ApiModelProperty(value = "encryptedData")
+//    private String encryptedData;
+//
+//    @NotEmpty(message = "iv 涓嶈兘涓虹┖")
+//    @ApiModelProperty(value = "iv")
+//    private String iv;
+//
+//    @NotEmpty(message = "sessionKey 涓嶈兘涓虹┖")
+//    @ApiModelProperty(value = "sessionKey")
+//    private String sessionKey;
 
     @NotEmpty(message = "openid 涓嶈兘涓虹┖")
     @ApiModelProperty(value = "openid")
     private String openid;
 
+    @NotEmpty(message = "code 涓嶈兘涓虹┖")
+    @ApiModelProperty(value = "code")
+    private String code;
+
+
     @ApiModelProperty(value = "閭�璇风爜")
     private String recId;
 
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/AftersaleService.java b/server/dmmall_service/src/main/java/com/doumee/service/business/AftersaleService.java
index 1b62ef2..e7b9d51 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/AftersaleService.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/AftersaleService.java
@@ -4,6 +4,7 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.admin.response.AftersaleListResponse;
 import com.doumee.dao.business.model.Aftersale;
+import com.doumee.dao.web.request.AfterSaleApplyRequest;
 import com.doumee.dao.web.request.goods.AftersaleCancelRequest;
 import com.doumee.dao.web.request.goods.AftersaleCreateRequest;
 import com.doumee.dao.web.request.goods.AftersalePostRequest;
@@ -114,4 +115,6 @@
     void memberPost(AftersalePostRequest aftersale);
 
     void autoDone();
+
+    void afterSaleApply(AfterSaleApplyRequest afterSaleApplyRequest, Integer userId);
 }
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/LabelsService.java b/server/dmmall_service/src/main/java/com/doumee/service/business/LabelsService.java
index f5480b1..ef0369d 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/LabelsService.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/LabelsService.java
@@ -135,6 +135,6 @@
      */
     List<LabelsResponse> getGoodsLabels(Integer parentId);
 
-    List<LabelsResponse> getGoodsLabelsByType(Integer type);
+    List<LabelsResponse> getGoodsLabelsByType(Integer type,Integer parentId);
 
 }
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 05105fe..f3be3c6 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
@@ -12,13 +12,11 @@
 import com.doumee.core.utils.Utils;
 import com.doumee.core.wx.WxMiniUtilService;
 import com.doumee.dao.admin.response.AftersaleListResponse;
-import com.doumee.dao.business.AftersaleMapper;
-import com.doumee.dao.business.FundMapper;
-import com.doumee.dao.business.GoodsorderDetailMapper;
-import com.doumee.dao.business.GoodsorderMapper;
+import com.doumee.dao.business.*;
 import com.doumee.dao.business.join.AftersaleJoinMapper;
 import com.doumee.dao.business.model.*;
 import com.doumee.dao.web.dto.MultiFileDTO;
+import com.doumee.dao.web.request.AfterSaleApplyRequest;
 import com.doumee.dao.web.request.DealIntegralRequest;
 import com.doumee.dao.web.request.goods.AftersaleCancelRequest;
 import com.doumee.dao.web.request.goods.AftersaleCreateRequest;
@@ -43,10 +41,7 @@
 import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 鍟嗗搧鍞悗淇℃伅琛⊿ervice瀹炵幇
@@ -64,6 +59,10 @@
     @Autowired
     private GoodsorderMapper goodsorderMapper;
     @Autowired
+    private ShopMapper shopMapper;
+    @Autowired
+    private MemberMapper memberMapper;
+    @Autowired
     private GoodsorderDetailMapper goodsorderDetailMapper;
     @Autowired
     private AftersaleJoinMapper aftersaleJoinMapper;
@@ -73,6 +72,9 @@
     @Autowired
     @Lazy
     private IntegralService integralService;
+
+    @Autowired
+    private MemberCouponJoinMapper memberCouponJoinMapper;
 
     @Autowired
     private FundMapper fundMapper;
@@ -1004,4 +1006,170 @@
     }
 
 
+
+    @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public void afterSaleApply(AfterSaleApplyRequest afterSaleApplyRequest, Integer userId){
+        if(Objects.isNull(afterSaleApplyRequest)
+            || Objects.isNull(afterSaleApplyRequest.getOrderId())
+                || Objects.isNull(afterSaleApplyRequest.getReturnUseIntegralStatus())
+                || Objects.isNull(afterSaleApplyRequest.getReturnUseCouponStatus())
+                || Objects.isNull(afterSaleApplyRequest.getReturnShopSettlementStatus())
+                || Objects.isNull(afterSaleApplyRequest.getReturnShopIntegralStatus())
+                || Objects.isNull(afterSaleApplyRequest.getReturnIntegralStatus())
+                || Objects.isNull(afterSaleApplyRequest.getMoney())
+        ){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+
+        Goodsorder goodsorder = goodsorderMapper.selectById(afterSaleApplyRequest.getOrderId());
+        if(Objects.isNull(goodsorder)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if(!(Constants.equalsInteger(goodsorder.getStatus(),Constants.OrderStatus.WAIT_RECEIVE.getKey())
+            || Constants.equalsInteger(goodsorder.getStatus(),Constants.OrderStatus.DONE.getKey()))){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆锛屾棤娉曡繘琛岃鎿嶄綔锛�");
+        }
+        Aftersale aftersale = new Aftersale();
+        aftersale.setCreateDate(new Date());
+        aftersale.setIsdeleted(Constants.ZERO);
+        aftersale.setOrderId(goodsorder.getId());
+        aftersale.setType(Constants.ZERO);
+        aftersale.setContent(afterSaleApplyRequest.getRemark());
+        aftersale.setStatus(Constants.AftersaleStatus.DONE.getKey());
+        aftersale.setInfo(afterSaleApplyRequest.getRemark());
+        aftersale.setMoney(afterSaleApplyRequest.getMoney());
+        aftersale.setCoupon(goodsorder.getCouponPrice());
+        aftersale.setReturnShopIntegral(BigDecimal.ZERO);
+        aftersale.setReturnIntegral(BigDecimal.ZERO);
+        aftersale.setReturnShopSettlement(BigDecimal.ZERO);
+        aftersale.setCode(getNextInCode());
+
+        //璁㈠崟閫�鍥� 杩斿洖缁欑粡閿�鍟嗙殑绉垎
+        if(Objects.nonNull(goodsorder.getDistributionShopId())&&goodsorder.getReturnCustomerIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){
+            Shop shop = shopMapper.selectById(goodsorder.getDistributionShopId());
+            //缁忛攢鍟嗗瓨鍦ㄥ墿浣欑Н鍒�
+            if(Objects.nonNull(shop)&&shop.getIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){
+                //寮�鍚簡鎵i櫎杩旇繕缁忛攢鍟嗙Н鍒�
+                if(Constants.equalsInteger(afterSaleApplyRequest.getReturnShopIntegralStatus(),Constants.ONE)){
+                    //璁板綍鎵i櫎缁忛攢鍟嗙Н鍒嗗��
+                    aftersale.setReturnShopIntegral(shop.getIntegral().compareTo(goodsorder.getReturnCustomerIntegral())>Constants.ZERO
+                            ?goodsorder.getReturnCustomerIntegral():shop.getIntegral());
+                    DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
+                    dealIntegralRequest.setIntegralNum(aftersale.getReturnShopIntegral());
+                    dealIntegralRequest.setDealType(Constants.ONE);
+                    dealIntegralRequest.setMemberId(goodsorder.getDistributionShopId());
+                    dealIntegralRequest.setObjId(goodsorder.getId());
+                    dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
+                    dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.SHOP_ORDER_REFUND_INTEGRAL);
+                    integralService.dealShopIntegral(dealIntegralRequest);
+                }
+            }
+        }
+
+        //璁㈠崟閫�鍥� 缁忛攢鍟嗙粨绠椾綑棰�
+        if(Objects.nonNull(goodsorder.getDistributionShopId())&&goodsorder.getShopSettlement().compareTo(BigDecimal.ZERO)>Constants.ZERO){
+            Shop shop = shopMapper.selectById(goodsorder.getDistributionShopId());
+            //缁忛攢鍟嗗瓨鍦ㄥ墿浣欑Н鍒�
+            if(Objects.nonNull(shop)&&shop.getAmount().compareTo(BigDecimal.ZERO)>Constants.ZERO){
+                //寮�鍚簡鎵i櫎杩旇繕缁忛攢鍟嗙Н鍒�
+                if(Constants.equalsInteger(afterSaleApplyRequest.getReturnShopSettlementStatus(),Constants.ONE)){
+                    //璁板綍鎵i櫎缁忛攢鍟嗙Н鍒嗗��
+                    aftersale.setReturnShopSettlement(shop.getAmount().compareTo(goodsorder.getShopSettlement())>Constants.ZERO
+                            ?goodsorder.getShopSettlement():shop.getAmount());
+                    DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
+                    dealIntegralRequest.setIntegralNum(aftersale.getReturnShopIntegral());
+                    dealIntegralRequest.setDealType(Constants.ONE);
+                    dealIntegralRequest.setMemberId(goodsorder.getDistributionShopId());
+                    dealIntegralRequest.setObjId(goodsorder.getId());
+                    dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
+                    dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.SHOP_ORDER_REFUND_CASH);
+                    integralService.dealShopAmount(dealIntegralRequest);
+
+                }
+            }
+        }
+
+        //璁㈠崟閫�鍥� 杩旇繕缁欏鎴风殑绉垎
+        if(Objects.nonNull(goodsorder.getDistributionShopId())&&goodsorder.getReturnMemberIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){
+            Member member = memberMapper.selectById(goodsorder.getMemberId());
+            //瀹㈡埛瀛樺湪鍓╀綑绉垎
+            if(Objects.nonNull(member)&&member.getIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){
+                //寮�鍚簡鎵i櫎杩旇繕瀹㈡埛绉垎
+                if(Constants.equalsInteger(afterSaleApplyRequest.getReturnIntegralStatus(),Constants.ONE)){
+                    //璁板綍鎵i櫎缁忛攢鍟嗙Н鍒嗗��
+                    aftersale.setReturnIntegral(member.getIntegral().compareTo(goodsorder.getReturnCustomerIntegral())>Constants.ZERO
+                            ?goodsorder.getReturnCustomerIntegral():member.getIntegral());
+                    DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
+                    dealIntegralRequest.setIntegralNum(aftersale.getReturnShopIntegral());
+                    dealIntegralRequest.setDealType(Constants.ONE);
+                    dealIntegralRequest.setMemberId(member.getId());
+                    dealIntegralRequest.setObjId(goodsorder.getId());
+                    dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
+                    dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.MEMBER_ORDER_REFUND_RETURN);
+                    integralService.dealIntegral(dealIntegralRequest);
+                }
+            }
+        }
+
+        //璁㈠崟閫�娆� 杩旇繕瀹㈡埛浣跨敤鐨勭Н鍒�
+        if(Constants.equalsInteger(afterSaleApplyRequest.getReturnIntegralStatus(),Constants.ONE)
+            && goodsorder.getUseIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){
+            DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
+            dealIntegralRequest.setIntegralNum(aftersale.getReturnShopIntegral());
+            dealIntegralRequest.setDealType(Constants.ZERO);
+            dealIntegralRequest.setMemberId(goodsorder.getMemberId());
+            dealIntegralRequest.setObjId(goodsorder.getId());
+            dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
+            dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.MEMBER_ORDER_REFUND);
+            integralService.dealIntegral(dealIntegralRequest);
+        }
+
+        //璁㈠崟閫�娆� 閫�鍥炲鎴蜂娇鐢ㄧ殑浼樻儬鍒�
+        if(Constants.equalsInteger(afterSaleApplyRequest.getReturnUseCouponStatus(),Constants.ONE)
+            && Objects.nonNull(goodsorder.getCouponId())){
+            memberCouponJoinMapper.update(new UpdateWrapper<MemberCoupon>().lambda()
+                    .set(MemberCoupon::getStatus, Constants.ZERO)
+                    .eq(MemberCoupon::getId, goodsorder.getCouponId())
+            );
+        }
+
+
+        if(afterSaleApplyRequest.getMoney().compareTo(BigDecimal.ZERO)>Constants.ZERO
+             && afterSaleApplyRequest.getMoney().compareTo(goodsorder.getPrice())<=Constants.ZERO){
+            //璁㈠崟閫�娆�
+            String refundCode = WxMiniUtilService.wxRefund(goodsorder.getCode().toString(), goodsorder.getPrice(), afterSaleApplyRequest.getMoney());
+            Fund fund = new Fund();
+            fund.setOrderCode(refundCode);
+            fund.setCreator(userId);
+            fund.setCreateDate(new Date());
+            fund.setIsdeleted(Constants.ZERO);
+            fund.setRemark(userId.toString());
+            fund.setMemberId(goodsorder.getCreator());
+            fund.setTitle("璁㈠崟閫�娆�");
+            fund.setContent(afterSaleApplyRequest.getRemark());
+            fund.setObjId(goodsorder.getId());
+            fund.setObjType(Constants.ONE);
+            fund.setType(Constants.ZERO);
+            fund.setNum(goodsorder.getPrice());
+            fundMapper.insert(fund);
+            aftersale.setDrawbackNo(refundCode);
+            aftersale.setDrawbackDate(new Date());
+            aftersale.setDrawbackInfo(afterSaleApplyRequest.getRemark());
+            aftersale.setDrawbackNo(refundCode);
+
+        }
+        aftersaleMapper.insert(aftersale);
+
+        goodsorderMapper.update(null,new UpdateWrapper<Goodsorder>().lambda()
+                .set(Goodsorder::getStatus, Constants.OrderStatus.REFUND.getKey())
+                .eq(Goodsorder::getId, goodsorder.getId())
+        );
+
+    }
+
+
+
+
+
 }
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/BannerServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/BannerServiceImpl.java
index 8d3ba19..f20fe70 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/BannerServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/BannerServiceImpl.java
@@ -192,9 +192,11 @@
         QueryWrapper<Banner> wrapper = new QueryWrapper<>(banner);
         wrapper.lambda().orderByDesc(Banner::getSortnum);
         List<Banner> banners = bannerMapper.selectList(wrapper);
+        String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(Constants.OSS, Constants.BANNER_FILE).getCode();
         List<BannerDTO> collect = banners.stream().map(s -> {
             BannerDTO dto = new BannerDTO();
             BeanUtils.copyProperties(s, dto);
+            dto.setImgurl(path + s.getImgurl());
             if (Constants.equalsInteger(dto.getType(),Constants.ZERO)){
                 dto.setContent(null);
             }
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 1829afe..60cdf92 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
@@ -1367,8 +1367,7 @@
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
         if(!(Constants.equalsInteger(goodsorder.getStatus(),Constants.OrderStatus.WAIT_PAY.getKey())
-            || Constants.equalsInteger(goodsorder.getStatus(),Constants.OrderStatus.PAY_DONE.getKey())
-            || Constants.equalsInteger(goodsorder.getStatus(),Constants.OrderStatus.WAIT_RECEIVE.getKey()) )){
+            || Constants.equalsInteger(goodsorder.getStatus(),Constants.OrderStatus.PAY_DONE.getKey()) )){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鍙栨秷澶辫触锛氳鍗曠姸鎬佸凡娴佽浆锛�");
         }
         if(Constants.formatBigdecimal(goodsorder.getPrice()).compareTo(BigDecimal.ZERO)>Constants.ZERO
@@ -1389,7 +1388,9 @@
             fund.setNum(goodsorder.getPrice());
             fundMapper.insert(fund);
         }
-        if(goodsorder.getIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){
+        //璁㈠崟宸叉敮浠樼姸鎬� 锛� 浣跨敤浜嗙Н鍒� 涓旂Н鍒嗕娇鐢ㄥぇ浜�0
+        if(goodsorder.getIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO
+                &&Constants.equalsInteger(goodsorder.getStatus(),Constants.OrderStatus.PAY_DONE.getKey())){
             //鏇存柊浣欓淇℃伅 娣诲姞绉垎鍙樺姩璁板綍
             DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
             dealIntegralRequest.setIntegralNum(goodsorder.getIntegral());
@@ -1433,10 +1434,6 @@
             }
         }
     }
-
-
-
-
 
     public BigDecimal getDeductAmount(List<PayDetailRequest> requestList){
         List<MemberCoupon> memberCouponList = new ArrayList<>();
@@ -1950,6 +1947,7 @@
         }
     }
 
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void orderComment(OrderCommentRequest orderCommentRequest){
@@ -2024,7 +2022,7 @@
         ));
         myPageResponse.setAfterOrders(aftersaleMapper.selectCount(new QueryWrapper<Aftersale>()
                 .apply(" ID in ( select g.id from goodsorder g where g.MEMBER_ID = '"+memberId+"'  ) ")
-                .notIn("STATUS",Constants.AftersaleStatus.DONE,Constants.AftersaleStatus.SHOP_REFUSE,Constants.AftersaleStatus.CANCEL)
+                .notIn("STATUS",Constants.AftersaleStatus.DONE.getKey(),Constants.AftersaleStatus.SHOP_REFUSE.getKey(),Constants.AftersaleStatus.CANCEL.getKey())
         ));
 
 
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/LabelsServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/LabelsServiceImpl.java
index 501672f..5e1f2c8 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/LabelsServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/LabelsServiceImpl.java
@@ -470,16 +470,22 @@
 
 
     @Override
-    public List<LabelsResponse> getGoodsLabelsByType(Integer type) {
+    public List<LabelsResponse> getGoodsLabelsByType(Integer type,Integer parentId) {
         LambdaQueryWrapper<Labels> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(Labels::getStatus,Constants.ZERO);
+        wrapper.eq(Labels::getStatus,Constants.ONE);
         wrapper.eq(Labels::getIsdeleted,Constants.ZERO);
+        wrapper.eq(Objects.nonNull(parentId),Labels::getParentId,parentId);
         wrapper.eq(Labels::getType,type);
         wrapper.orderByAsc(Labels::getSortnum,Labels::getCreateDate);
         List<Labels> labels = labelsMapper.selectList(wrapper);
+        String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()
+                + systemDictDataBiz.queryByCode(Constants.OSS,Constants.LABELS_IMG).getCode();
         List<LabelsResponse> collect = labels.stream().map(s -> {
             LabelsResponse labelsResponse = new LabelsResponse();
             BeanUtils.copyProperties(s, labelsResponse);
+            if(StringUtils.isNotBlank(s.getImgurl())){
+                labelsResponse.setImgUrl(path + s.getImgurl());
+            }
             return labelsResponse;
         }).collect(Collectors.toList());
         return collect;
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 51363f3..75d7051 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -310,15 +310,14 @@
             Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getOpenId, openId)
                             .eq(Member::getIsdeleted,Constants.ZERO)
                     .last(" limit 1"));
-            //鍒涘缓token
-            JwtPayLoad payLoad = new JwtPayLoad(Constants.MEMBER_PREFIX+member.getId());
-            String token = JwtTokenUtil.generateToken(payLoad);
             AccountResponse accountResponse = new AccountResponse();
-            accountResponse.setSessionKey(session.getSessionKey());
             if(Objects.nonNull(member)){
                 memberMapper.updateById(member);
                 member.setImgFullUrl(systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
                         systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILE).getCode()+member.getImgurl());
+                //鍒涘缓token
+                JwtPayLoad payLoad = new JwtPayLoad(Constants.MEMBER_PREFIX+member.getId());
+                String token = JwtTokenUtil.generateToken(payLoad);
                 accountResponse.setToken(token);
                 accountResponse.setMember(member);
             }else{
@@ -345,10 +344,8 @@
     @Override
     public AccountResponse wxPhone(WxPhoneRequest wxPhoneRequest){
         try {
-            WxMaPhoneNumberInfo userPhoneInfo = WxMiniConfig.wxMaService.getUserService().getPhoneNoInfo(
-                    wxPhoneRequest.getSessionKey(), wxPhoneRequest.getEncryptedData(), wxPhoneRequest.getIv());
-            //鑾峰彇鎵嬫満鍙�
-            String phone= userPhoneInfo.getPurePhoneNumber();
+            WxMaPhoneNumberInfo userPhoneInfo = WxMiniConfig.wxMaService.getUserService().getPhoneNumber(wxPhoneRequest.getCode());
+            String phone = userPhoneInfo.getPhoneNumber();
             if(Objects.isNull(phone)){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈幏鍙栧埌鎵嬫満鍙�");
             }
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/NoticeServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/NoticeServiceImpl.java
index 3778d0d..e96861f 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/NoticeServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/NoticeServiceImpl.java
@@ -12,10 +12,12 @@
 import com.doumee.dao.business.join.MemberJoinMapper;
 import com.doumee.dao.business.join.NoticeJoinMapper;
 import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.model.MemberCoupon;
 import com.doumee.dao.business.model.Notice;
 import com.doumee.dao.business.model.Shop;
 import com.doumee.dao.web.dto.NoticeCardDTO;
 import com.doumee.dao.system.model.SystemUser;
+import com.doumee.dao.web.request.CouponNoticeRequest;
 import com.doumee.service.business.NoticeService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -242,4 +244,77 @@
         return pageData;
     }
 
+
+    /**
+     *
+     * @param type 0娑堣垂鑰咃紱1=缁忛攢鍟嗙Н鍒嗭紱2=缁忛攢鍟嗙粨绠楅噾棰�
+     * @param objType 0鍟嗗煄璁㈠崟 1绉垎娴佹按 2浜掑姩璇勪环 3浼樻儬鍒�
+     *
+     */
+
+    public void saveNoticeInfo(Integer type,Integer objType,Integer memberId
+        ,String title,String content,Integer objId){
+        Notice notice = new Notice();
+        notice.setCreateDate(new Date());
+        notice.setIsdeleted(Constants.ZERO);
+        notice.setTitle(title);
+        notice.setContent(content);
+        notice.setType(type);
+        notice.setObjType(objType);
+        notice.setObjId(objId);
+        notice.setMemberId(memberId);
+        noticeMapper.insert(notice);
+    }
+
+
+    /**
+     * 绉垎鍙樺姩娑堟伅绫诲瀷
+     * @param integralObjType  绉垎鍙樺姩绫诲瀷
+     * @param memberId 鐢ㄦ埛涓婚敭/鍟嗘埛涓婚敭
+     * @param integral 鍙樺姩绉垎/鐜伴噾鍊�
+     * @param objId 鍏宠仈瀵硅薄涓婚敭 - 绉垎娴佹按鍙樺姩璁板綍涓婚敭
+     * @param param1 param2
+     */
+    public void saveMemberIntegralNotice(Constants.IntegralObjType integralObjType,Integer type, Integer memberId, Integer integral, Integer objId,String param1){
+        String title = integralObjType.getName();
+        String info = integralObjType.getNoteinfo();
+        info = info.replace("${param}",integral.toString()).replace("${param1}",param1);
+        this.saveNoticeInfo(
+                type,
+                Constants.ONE,
+                memberId,
+                title,
+                info,
+                objId
+        );
+    }
+
+    public void couponNotice(Integer memberId,List<CouponNoticeRequest> couponList){
+        String info = "鎭枩鎮ㄨ幏寰椼�愪紭鎯犺鍒欍�戙�愪紭鎯犲埜绫诲瀷銆�";
+        //鎭枩鎮ㄨ幏寰� 婊�50鍑�10鎶垫墸鍒�
+        for (CouponNoticeRequest c:couponList) {
+            MemberCoupon mc = c.getMemberCoupon();
+            Constants.equalsInteger(mc.getCouponType(),Constants.ZERO)?
+
+
+
+
+        }
+
+
+//        this.saveNoticeInfo(
+//                type,
+//                Constants.ONE,
+//                memberId,
+//                "鑾峰緱绯荤粺鍙戞斁鐨勪紭鎯犲埜",
+//                info,
+//                objId
+//        );
+//
+
+
+    }
+
+
+
 }
diff --git a/server/dmmall_web/src/main/java/com/doumee/api/web/LabelsApi.java b/server/dmmall_web/src/main/java/com/doumee/api/web/LabelsApi.java
index 02f2c10..6cd6f16 100644
--- a/server/dmmall_web/src/main/java/com/doumee/api/web/LabelsApi.java
+++ b/server/dmmall_web/src/main/java/com/doumee/api/web/LabelsApi.java
@@ -12,6 +12,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.List;
@@ -21,7 +22,7 @@
  */
 @Api(tags = "鏍囩淇℃伅琛ㄤ笟鍔�")
 @Trace(exclude = true)
-//@RestController
+@RestController
 @RequestMapping("/web/labels")
 @Slf4j
 public class LabelsApi  extends ApiController{
@@ -48,11 +49,11 @@
     @ApiOperation(value = "鑾峰彇鍒嗙被淇℃伅", notes = "灏忕▼搴忕")
     @GetMapping("/getGoodsLabelsByType")
     @ApiImplicitParams({
-            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
             @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type", value = "绫诲瀷0鍟嗗搧鍒嗙被 1鍟嗗搧鍝佺墝 2鍟嗗鏍囩 3蹇�� 4閫�璐ч�夐」 5鎹㈣揣閫夐」 6閫�娆鹃�夐」 7鍙栨秷璁㈠崟閫夐」 8鍜栧暋鐧剧鍒嗙被 9鍜� 璇㈠垎绫� 10娲诲姩璧涗簨鍒嗙被 11杈句汉鎺㈠簵鍒嗙被", required = true),
+            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "parentId", value = "鐖剁骇涓婚敭", required = false),
     })
-    public ApiResponse<List<LabelsResponse>> getGoodsLabelsByType(Integer type){
-        return ApiResponse.success(labelsService.getGoodsLabelsByType(type));
+    public ApiResponse<List<LabelsResponse>> getGoodsLabelsByType(@RequestParam Integer type,Integer parentId){
+        return ApiResponse.success(labelsService.getGoodsLabelsByType(type,parentId));
     }
 
 

--
Gitblit v1.9.3