From f827be041253b7aef34196a432c625b9c4f6cd94 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期四, 11 九月 2025 16:51:41 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/send_coupon' into send_coupon

---
 framework/src/main/java/cn/lili/modules/lmk/domain/entity/CouponVirtual.java           |    5 
 framework/src/main/java/cn/lili/modules/order/order/entity/enums/CouPonFlagEnum.java   |   29 ++++
 framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java  |   83 ++++++++++++-
 framework/src/main/java/cn/lili/modules/lmk/service/impl/CouponVirtualServiceImpl.java |  107 +++++++++++++++++
 framework/src/main/java/cn/lili/modules/lmk/service/CouponVirtualService.java          |    5 
 framework/src/main/java/cn/lili/modules/order/order/entity/dos/Order.java              |    6 +
 manager-api/src/main/java/cn/lili/controller/order/AfterSaleManagerController.java     |   32 +++++
 seller-api/src/main/java/cn/lili/controller/order/AfterSaleStoreController.java        |   16 ++
 buyer-api/src/main/java/cn/lili/controller/lmk/CouponCardController.java               |   33 +++++
 9 files changed, 307 insertions(+), 9 deletions(-)

diff --git a/buyer-api/src/main/java/cn/lili/controller/lmk/CouponCardController.java b/buyer-api/src/main/java/cn/lili/controller/lmk/CouponCardController.java
new file mode 100644
index 0000000..fdebd49
--- /dev/null
+++ b/buyer-api/src/main/java/cn/lili/controller/lmk/CouponCardController.java
@@ -0,0 +1,33 @@
+package cn.lili.controller.lmk;
+
+import cn.lili.base.Result;
+import cn.lili.modules.lmk.domain.query.ActivityQuery;
+import cn.lili.modules.lmk.service.CouponVirtualService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@Validated
+@RequiredArgsConstructor
+@Api(value = "灏忕▼搴忚喘鐗╁崱鎺ュ彛", tags = "灏忕▼搴忚喘鐗╁崱鎺ュ彛")
+@RestController
+@RequestMapping("/buyer/lmk/coupon/card")
+public class CouponCardController {
+    private CouponVirtualService couponVirtualService;
+
+    @PostMapping("/{cardId}")
+    @ApiOperation(value = "棰嗗彇璐墿鍗�", notes = "棰嗗彇璐墿鍗�")
+    public Result tackCardById(@PathVariable String cardId){
+        return couponVirtualService.tackCardById(cardId);
+    }
+    @PostMapping("/changShareStatus/{cardId}")
+    @ApiOperation(value = "棰嗗彇璐墿鍗�", notes = "棰嗗彇璐墿鍗�")
+    public Result changShareStatus(@PathVariable String cardId){
+        return couponVirtualService.changShareStatus(cardId);
+    }
+}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/entity/CouponVirtual.java b/framework/src/main/java/cn/lili/modules/lmk/domain/entity/CouponVirtual.java
index 24438e3..01deb89 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/domain/entity/CouponVirtual.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/domain/entity/CouponVirtual.java
@@ -26,6 +26,11 @@
     /** 璁㈠崟id */
     private String orderId;
 
+
+    @TableField("item_order_id")
+    /** 璁㈠崟id */
+    private String itemOrderId;
+
     @TableField("goods_id")
     /** 鍟嗗搧id */
     private String goodsId;
diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/CouponVirtualService.java b/framework/src/main/java/cn/lili/modules/lmk/service/CouponVirtualService.java
index 5befc37..573a12b 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/service/CouponVirtualService.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/service/CouponVirtualService.java
@@ -6,6 +6,7 @@
 import cn.lili.modules.lmk.domain.form.CouponVirtualForm;
 import cn.lili.modules.lmk.domain.query.CouponVirtualQuery;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.web.bind.annotation.PathVariable;
 
 import java.util.List;
 
@@ -64,4 +65,8 @@
      * @return
      */
     Result all();
+
+    Result tackCardById( String cardId);
+
+    Result changShareStatus( String cardId);
 }
diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/impl/CouponVirtualServiceImpl.java b/framework/src/main/java/cn/lili/modules/lmk/service/impl/CouponVirtualServiceImpl.java
index d7a3acb..dc1a5f2 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/service/impl/CouponVirtualServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/service/impl/CouponVirtualServiceImpl.java
@@ -1,22 +1,42 @@
 package cn.lili.modules.lmk.service.impl;
 
 import cn.lili.base.Result;
+import cn.lili.common.exception.ServiceException;
+import cn.lili.common.security.AuthUser;
+import cn.lili.common.security.context.UserContext;
 import cn.lili.modules.lmk.domain.entity.CouponVirtual;
 import cn.lili.modules.lmk.domain.form.CouponVirtualForm;
 import cn.lili.modules.lmk.domain.query.CouponVirtualQuery;
 import cn.lili.modules.lmk.domain.vo.CouponVirtualVO;
 import cn.lili.modules.lmk.mapper.CouponVirtualMapper;
 import cn.lili.modules.lmk.service.CouponVirtualService;
+import cn.lili.modules.order.order.entity.dos.Order;
+import cn.lili.modules.order.order.entity.dos.OrderItem;
+import cn.lili.modules.order.order.entity.enums.ClaimStatusEnum;
+import cn.lili.modules.order.order.entity.enums.OrderStatusEnum;
+import cn.lili.modules.order.order.entity.enums.RefundStatusEnum;
+import cn.lili.modules.order.order.entity.enums.ShareStatusEnum;
+import cn.lili.modules.order.order.service.OrderItemService;
+import cn.lili.modules.order.order.service.OrderService;
+import cn.lili.modules.promotion.service.MemberCouponService;
 import cn.lili.utils.PageUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import lombok.extern.slf4j.Slf4j;
+import org.redisson.api.RLock;
+import org.redisson.api.RedissonClient;
 import org.springframework.stereotype.Service;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.BeanUtils;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.Assert;
 
+import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -28,12 +48,23 @@
  */
 @Service
 @RequiredArgsConstructor
+@Slf4j
 public class CouponVirtualServiceImpl extends ServiceImpl<CouponVirtualMapper, CouponVirtual> implements CouponVirtualService {
 
     private final CouponVirtualMapper couponVirtualMapper;
 
+    private final RedissonClient redissonClient;
+
+    private final static String LOCK_COUPON_VIRTUAL_CARD_ID = "lock_coupon_virtual_card_id:";
+
+    private final OrderItemService orderItemService;
+
+    private final OrderService orderService;
+
+    private final MemberCouponService memberCouponService;
     /**
      * 娣诲姞
+     *
      * @param form
      * @return
      */
@@ -46,6 +77,7 @@
 
     /**
      * 淇敼
+     *
      * @param form
      * @return
      */
@@ -62,6 +94,7 @@
 
     /**
      * 鎵归噺鍒犻櫎
+     *
      * @param ids
      * @return
      */
@@ -73,6 +106,7 @@
 
     /**
      * id鍒犻櫎
+     *
      * @param id
      * @return
      */
@@ -84,6 +118,7 @@
 
     /**
      * 鍒嗛〉鏌ヨ
+     *
      * @param query
      * @return
      */
@@ -96,6 +131,7 @@
 
     /**
      * 鏍规嵁id鏌ユ壘
+     *
      * @param id
      * @return
      */
@@ -108,6 +144,7 @@
 
     /**
      * 鍒楄〃
+     *
      * @return
      */
     @Override
@@ -118,4 +155,74 @@
                 .collect(Collectors.toList());
         return Result.ok().data(vos);
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Result tackCardById(String cardId) {
+        log.info("琚鍙栫殑绀煎搧鍗$殑id涓�--------------------------->{}",cardId);
+        AuthUser currentUser = UserContext.getCurrentUser();
+        if (currentUser == null) {
+            throw new ServiceException("褰撳墠鐢ㄦ埛娌℃湁鐧诲綍");
+        }
+        String userId = currentUser.getId();
+        String nickName = currentUser.getNickName();
+        RLock lock = null;
+        try {
+            lock = redissonClient.getLock(LOCK_COUPON_VIRTUAL_CARD_ID + cardId);
+            LambdaQueryWrapper<CouponVirtual> forUpdate = Wrappers.<CouponVirtual>lambdaQuery().eq(CouponVirtual::getId, cardId).last("FOR UPDATE");
+            CouponVirtual cardInfo = this.getOne(forUpdate);
+            if (ClaimStatusEnum.CLAIM.name().equals(cardInfo.getClaimStatus())) {
+                throw new ServiceException("褰撳墠璐墿鍗″凡缁忚棰嗗彇");
+            }
+            //鏍¢獙璁㈠崟鐘舵�佹槸鍚︽甯�
+            String orderNo = cardInfo.getOrderId();
+            if (StringUtils.isBlank(orderNo)) {
+                throw new ServiceException("褰撳墠璁㈠崟涓嶅瓨鍦ㄦ棤娉曢鍙�");
+            }
+            String itemOrderId = cardInfo.getItemOrderId();
+            Order order = orderService.getBySn(orderNo);
+            if (order == null) {
+                throw new ServiceException("褰撳墠璁㈠崟涓嶅瓨鍦ㄦ棤娉曢鍙�");
+            }
+            if (!OrderStatusEnum.COMPLETED.name().equals(order.getOrderStatus())) {
+                throw new ServiceException("璁㈠崟鐘舵�佸紓甯告棤娉曢鍙�");
+            }
+            OrderItem orderItem = orderItemService.getById(itemOrderId);
+            if (orderItem == null) {
+                throw new ServiceException("褰撳墠璁㈠崟涓嶅瓨鍦�");
+            }
+            String orderSn = orderItem.getOrderSn();
+            if (!orderNo.equals(orderSn)) {
+                throw new ServiceException("璁㈠崟鏃犳硶瀵瑰簲鏃犳硶棰嗗彇");
+            }
+            if (!RefundStatusEnum.NO_REFUND.name().equals(orderItem.getIsRefund())) {
+                throw new ServiceException("褰撳墠璁㈠崟宸查��娆炬棤娉曢鍙�");
+            }
+            //棰嗗彇瀵瑰簲鐨勪紭鎯犲嵎
+            memberCouponService.receiveCoupon(cardInfo.getCouponId(),userId , nickName);
+            cardInfo.setUserNickname(nickName);
+            cardInfo.setUserId(userId);
+            cardInfo.setClaimStatus(ClaimStatusEnum.CLAIM.name());
+            cardInfo.setClaimTime(new Date());
+            boolean b = this.updateById(cardInfo);
+            //鍘婚鍙栦紭鎯犲嵎
+            if (!b) {
+                throw new RuntimeException("棰嗗彇澶辫触");
+            }
+            return Result.ok("棰嗗彇鎴愬姛");
+        } finally {
+            assert lock != null;
+            if (lock.isHeldByCurrentThread()) {
+                lock.unlock();
+            }
+        }
+    }
+
+    @Override
+    public Result changShareStatus(String cardId) {
+        CouponVirtual couponVirtual = this.getById(cardId);
+        couponVirtual.setShareStatus(ShareStatusEnum.SHARE.name());
+        this.updateById(couponVirtual);
+        return Result.ok();
+    }
 }
diff --git a/framework/src/main/java/cn/lili/modules/order/order/entity/dos/Order.java b/framework/src/main/java/cn/lili/modules/order/order/entity/dos/Order.java
index a9636fb..c39556f 100644
--- a/framework/src/main/java/cn/lili/modules/order/order/entity/dos/Order.java
+++ b/framework/src/main/java/cn/lili/modules/order/order/entity/dos/Order.java
@@ -185,6 +185,12 @@
      */
     @ApiModelProperty(value = "璁㈠崟绫诲瀷")
     private String orderType;
+
+    /**
+     * @see CouPonFlagEnum
+     */
+    @ApiModelProperty(value = "鏄惁鏄ぜ鍝佸崱")
+    private String couponFlag;
     /**
      * 璁㈠崟鍦板潃淇敼鐘舵��
      */
diff --git a/framework/src/main/java/cn/lili/modules/order/order/entity/enums/CouPonFlagEnum.java b/framework/src/main/java/cn/lili/modules/order/order/entity/enums/CouPonFlagEnum.java
new file mode 100644
index 0000000..3f8d70b
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/order/order/entity/enums/CouPonFlagEnum.java
@@ -0,0 +1,29 @@
+package cn.lili.modules.order.order.entity.enums;
+
+/**
+ * 鍒嗕韩鐘舵��
+ *
+ **/
+public enum CouPonFlagEnum {
+
+    /**
+     * 绀煎搧鍗�
+     */
+    COUPON("绀煎搧鍗�"),
+
+    /**
+     * 涓嶆槸绀煎搧鍗�
+     */
+    NOT_COUPON("涓嶆槸绀煎搧鍗�");
+
+    private final String description;
+
+    CouPonFlagEnum(String description) {
+        this.description = description;
+    }
+
+    public String description() {
+        return this.description;
+    }
+
+}
diff --git a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java
index 9d38114..cdc97da 100644
--- a/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/order/order/serviceimpl/OrderServiceImpl.java
@@ -27,8 +27,10 @@
 import cn.lili.modules.goods.entity.dos.Goods;
 import cn.lili.modules.goods.entity.dto.GoodsCompleteMessage;
 import cn.lili.modules.goods.service.GoodsService;
+import cn.lili.modules.lmk.domain.entity.CouponVirtual;
 import cn.lili.modules.lmk.domain.vo.OrderCountVO;
 import cn.lili.modules.lmk.enums.general.AdminRoleEnum;
+import cn.lili.modules.lmk.service.CouponVirtualService;
 import cn.lili.modules.member.entity.dos.Member;
 import cn.lili.modules.member.entity.dto.MemberAddressDTO;
 import cn.lili.modules.member.mapper.MemberMapper;
@@ -47,7 +49,9 @@
 import cn.lili.modules.permission.entity.dos.AdminUser;
 import cn.lili.modules.permission.service.AdminUserService;
 import cn.lili.modules.permission.service.RoleService;
+import cn.lili.modules.promotion.entity.dos.Coupon;
 import cn.lili.modules.promotion.entity.dos.Pintuan;
+import cn.lili.modules.promotion.service.CouponService;
 import cn.lili.modules.promotion.service.PintuanService;
 import cn.lili.modules.store.entity.dto.StoreDeliverGoodsAddressDTO;
 import cn.lili.modules.store.service.StoreDetailService;
@@ -87,6 +91,7 @@
 import org.apache.poi.ss.util.CellRangeAddressList;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.apache.rocketmq.spring.core.RocketMQTemplate;
+import org.redisson.api.RLock;
 import org.redisson.api.RedissonClient;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.ApplicationEventPublisher;
@@ -199,8 +204,18 @@
     @Resource
     private RedisTemplate<Object,Object> redisTemplate;
 
+    @Autowired
+    private CouponService couponService;
+
+    @Autowired
+    private CouponVirtualService couponVirtualService;
+
+    @Autowired
+    private RedissonClient redissonClient;
+
     private final static  String LOCK_ORDER_NO_MQ="lock_order_no_mq:";
     private final static  String LOCK_EDIT_ORDER_ADDRESS="lock_edit_order_address:";
+    private final static  String LOCK_COUPON_CARD="lock_coupon_card:";
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void intoDB(TradeDTO tradeDTO) {
@@ -786,17 +801,71 @@
     @OrderLogPoint(description = "'璁㈠崟['+#orderSn+']鏍搁攢锛屾牳閿�鐮乕'+#verificationCode+']'", orderSn = "#orderSn")
     @Transactional(rollbackFor = Exception.class)
     public Order take(String orderSn, String verificationCode) {
+        Order order;
+        RLock lock = redissonClient.getLock(LOCK_COUPON_CARD + orderSn);
+        try {
+             lock.lock();
+            //鑾峰彇璁㈠崟淇℃伅
+            order = this.getBySn(orderSn);
+            //妫�娴嬭櫄鎷熻鍗曚俊鎭�
+            checkVerificationOrder(order, verificationCode);
+            order.setOrderStatus(OrderStatusEnum.COMPLETED.name());
+            //璁㈠崟瀹屾垚
+            //鑾峰彇鎵�鏈夌殑璁㈠崟瀛愰」鐢ㄤ簬鐢熸垚浼樻儬鍗疯鍗曚俊鎭�
+            List<OrderItem> orderItems = orderItemService.getByOrderSn(orderSn);
+            List<CouponVirtual> couponVirtuals = new  ArrayList<>();
+            for (OrderItem orderItem : orderItems) {
+                String couponId = orderItem.getCouponId();
+                if (StringUtils.isBlank(couponId)) {
+                    continue;
+                }
+                String storeId = order.getStoreId();
+                Coupon one = couponService.getOne(Wrappers.<Coupon>lambdaQuery().eq(Coupon::getStoreId, storeId).eq(Coupon::getId, couponId));
+                if (one == null) {
+                    log.error("褰撳墠璁㈠崟璁㈠崟鍙蜂负:{}涓嶅瓨鍦ㄤ腑鐨勪紭鎯犲嵎涓嶅瓨鍦�----------------------->{}",order.getId(),orderItem.getOrderSn());
+                }else {
+                    Integer num = orderItem.getNum();
+                    //褰撹喘涔版暟閲忛儴浣嶇┖鐨勬椂鍊欒繘琛�
+                    if (num != null) {
+                        for (int i = 1; i <= num; i++) {
+                            CouponVirtual couponVirtual = getCouponVirtual(orderItem);
+                            couponVirtual.setCouponNo(String.format("%08d", i));
+                            couponVirtuals.add(couponVirtual);
+                        }
+                    }
 
-        //鑾峰彇璁㈠崟淇℃伅
-        Order order = this.getBySn(orderSn);
-        //妫�娴嬭櫄鎷熻鍗曚俊鎭�
-        checkVerificationOrder(order, verificationCode);
-        order.setOrderStatus(OrderStatusEnum.COMPLETED.name());
-        //璁㈠崟瀹屾垚
-        this.complete(orderSn);
+                }
+            }
+            if (!couponVirtuals.isEmpty()) {
+                order.setCouponFlag(CouPonFlagEnum.COUPON.name());
+                couponVirtualService.saveBatch(couponVirtuals);
+                //鏇存柊鐘舵�佺敤浜庡悗缁皬绋嬪簭鍒ゆ柇寮瑰嚭鍗峰垪琛�
+                this.updateById(order);
+            }
+            this.complete(orderSn);
+        } finally {
+            assert lock != null;
+            if (lock.isHeldByCurrentThread()) {
+                lock.unlock();
+            }
+        }
         return order;
     }
 
+    private static CouponVirtual getCouponVirtual(OrderItem orderItem) {
+        CouponVirtual couponVirtual = new CouponVirtual();
+        couponVirtual.setOrderId(orderItem.getSn());
+        couponVirtual.setCouponId(orderItem.getCouponId());
+        couponVirtual.setCouponName(orderItem.getCouponName());
+        couponVirtual.setGoodsId(orderItem.getGoodsId());
+        couponVirtual.setSkuId(orderItem.getSkuId());
+        couponVirtual.setItemOrderId(orderItem.getId());
+        couponVirtual.setSkuName(orderItem.getGoodsName());
+        couponVirtual.setName(orderItem.getCouponName());
+        couponVirtual.setShareStatus(ShareStatusEnum.NOT_SHARE.name());
+        couponVirtual.setClaimStatus(ClaimStatusEnum.NOT_CLAIM.name());
+        return couponVirtual;
+    }
     @Override
     public Order take(String verificationCode) {
         String storeId = OperationalJudgment.judgment(UserContext.getCurrentUser()).getStoreId();
diff --git a/manager-api/src/main/java/cn/lili/controller/order/AfterSaleManagerController.java b/manager-api/src/main/java/cn/lili/controller/order/AfterSaleManagerController.java
index 2764615..e20b3b5 100644
--- a/manager-api/src/main/java/cn/lili/controller/order/AfterSaleManagerController.java
+++ b/manager-api/src/main/java/cn/lili/controller/order/AfterSaleManagerController.java
@@ -2,13 +2,16 @@
 
 import cn.lili.common.aop.annotation.PreventDuplicateSubmissions;
 import cn.lili.common.enums.ResultUtil;
+import cn.lili.common.utils.StringUtils;
 import cn.lili.common.vo.ResultMessage;
 import cn.lili.modules.order.aftersale.entity.dos.AfterSale;
 import cn.lili.modules.order.aftersale.entity.vo.AfterSaleSearchParams;
 import cn.lili.modules.order.aftersale.entity.vo.AfterSaleVO;
+import cn.lili.modules.order.aftersale.mapper.AfterSaleMapper;
 import cn.lili.modules.order.aftersale.service.AfterSaleService;
 import cn.lili.modules.store.entity.dto.StoreAfterSaleAddressDTO;
 import cn.lili.modules.system.entity.vo.Traces;
+import cn.lili.utils.COSUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -18,6 +21,7 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.constraints.NotNull;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -36,11 +40,19 @@
      */
     @Autowired
     private AfterSaleService afterSaleService;
+    @Autowired
+    private COSUtil cosUtil;
 
     @ApiOperation(value = "鍒嗛〉鑾峰彇鍞悗鏈嶅姟")
     @GetMapping(value = "/page")
     public ResultMessage<IPage<AfterSaleVO>> getByPage(AfterSaleSearchParams searchParams) {
-        return ResultUtil.data(afterSaleService.getAfterSalePages(searchParams));
+        IPage<AfterSaleVO> afterSalePages = afterSaleService.getAfterSalePages(searchParams);
+        for (AfterSaleVO record : afterSalePages.getRecords()) {
+            if (StringUtils.isNotBlank(record.getGoodsImage())&&!record.getGoodsImage().contains("http")) {
+                record.setGoodsImage(cosUtil.getPreviewUrl(record.getGoodsImage()));
+            }
+        }
+        return ResultUtil.data(afterSalePages);
     }
 
     @ApiOperation(value = "鑾峰彇瀵煎嚭鍞悗鏈嶅姟鍒楄〃鍒楄〃")
@@ -53,7 +65,23 @@
     @ApiImplicitParam(name = "sn", value = "鍞悗鍗曞彿", required = true, paramType = "path")
     @GetMapping(value = "/get/{sn}")
     public ResultMessage<AfterSaleVO> get(@NotNull(message = "鍞悗鍗曞彿") @PathVariable("sn") String sn) {
-        return ResultUtil.data(afterSaleService.getAfterSale(sn));
+        AfterSaleVO afterSale = afterSaleService.getAfterSale(sn);
+        String afterSaleImage = afterSale.getAfterSaleImage();
+        if (StringUtils.isNotBlank(afterSaleImage)) {
+            String[] split = afterSaleImage.split(",");
+            List<String> asleImages = new ArrayList<>(split.length);
+            for (String s : split) {
+                if (!s.contains("http")){
+                    asleImages.add(cosUtil.getPreviewUrl(s));
+                }
+            }
+            String join = String.join(",", asleImages);
+            afterSale.setAfterSaleImage(join);
+        }
+        if (StringUtils.isNotBlank(afterSale.getGoodsImage())&&!afterSale.getGoodsImage().contains("http")) {
+            afterSale.setGoodsImage(cosUtil.getPreviewUrl(afterSale.getGoodsImage()));
+        }
+        return ResultUtil.data(afterSale);
     }
 
     @ApiOperation(value = "鏌ョ湅涔板閫�璐х墿娴佽釜杩�")
diff --git a/seller-api/src/main/java/cn/lili/controller/order/AfterSaleStoreController.java b/seller-api/src/main/java/cn/lili/controller/order/AfterSaleStoreController.java
index ff5fc4d..133400c 100644
--- a/seller-api/src/main/java/cn/lili/controller/order/AfterSaleStoreController.java
+++ b/seller-api/src/main/java/cn/lili/controller/order/AfterSaleStoreController.java
@@ -22,6 +22,7 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.constraints.NotNull;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
 
@@ -46,6 +47,21 @@
     @GetMapping(value = "/{sn}")
     public ResultMessage<AfterSaleVO> get(@PathVariable String sn) {
         AfterSaleVO afterSale = OperationalJudgment.judgment(afterSaleService.getAfterSale(sn));
+        String afterSaleImage = afterSale.getAfterSaleImage();
+        if (StringUtils.isNotBlank(afterSaleImage)) {
+            String[] split = afterSaleImage.split(",");
+            List<String> asleImages = new ArrayList<>(split.length);
+            for (String s : split) {
+                if (!s.contains("http")){
+                    asleImages.add(cosUtil.getPreviewUrl(s));
+                }
+            }
+            String join = String.join(",", asleImages);
+            afterSale.setAfterSaleImage(join);
+        }
+        if (StringUtils.isNotBlank(afterSale.getGoodsImage())&&!afterSale.getGoodsImage().contains("http")) {
+            afterSale.setGoodsImage(cosUtil.getPreviewUrl(afterSale.getGoodsImage()));
+        }
         return ResultUtil.data(afterSale);
     }
 

--
Gitblit v1.8.0