From 95639988ed630dae4b2461b5f6c3ccb6d9af8d86 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期四, 18 七月 2024 23:46:36 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml                                           |    7 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java                         |    4 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java               |    1 
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java                    |   42 +++++
 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/converter/CouponUseEnumConverter.java               |   17 ++
 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/CouponReceiveDetailVO.java |    3 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java             |   72 +++++++--
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionGoods.java                              |    2 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderReturnRequestServiceImpl.java             |    1 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java                                  |    4 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IPaylogService.java                                 |    4 
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleService.java                            |    2 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/LogisticsServiceImpl.java                      |   24 +--
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/vo/MgtOrderVO.java                    |    4 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java                        |    2 
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroomGoods.java                       |    2 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/OrderDTO.java                              |    6 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionSalesroom.java                          |    2 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/PayController.java                         |    5 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/OrderController.java                       |   14 +
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java                       |    9 +
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java                     |   12 +
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java                   |   10 +
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java                          |   55 +++++++
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/OrderUpdDTO.java                           |    4 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java                          |    8 +
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java                         |    2 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/GoodsSku.java                                  |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsSeckillVO.java                |    3 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberServiceImpl.java                       |    3 
 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtCouponController.java      |   30 ++-
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java                      |   15 +
 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/MgtArticleController.java         |    8 +
 33 files changed, 298 insertions(+), 81 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionGoods.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionGoods.java
index ad33044..5bfc953 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionGoods.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionGoods.java
@@ -1,6 +1,7 @@
 package com.ruoyi.system.api.domain;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -58,6 +59,7 @@
     private Integer auctionStock;
 
     @ApiModelProperty(value = "保证金")
+    @TableField(insertStrategy = FieldStrategy.IGNORED, updateStrategy = FieldStrategy.IGNORED)
     private BigDecimal bond;
 
     @ApiModelProperty(value = "实名认证 0=不需实名 1=需要实名")
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionSalesroom.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionSalesroom.java
index 75f3099..f335440 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionSalesroom.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionSalesroom.java
@@ -1,6 +1,7 @@
 package com.ruoyi.system.api.domain;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -51,6 +52,7 @@
     private AuctionTypeEnum type;
 
     @ApiModelProperty(value = "保证金")
+    @TableField(insertStrategy = FieldStrategy.IGNORED, updateStrategy = FieldStrategy.IGNORED)
     private BigDecimal bond;
 
     @ApiModelProperty(value = "实名认证 0=不需认证 1=需要实名")
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/GoodsSku.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/GoodsSku.java
index cf8e6c0..3c508df 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/GoodsSku.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/GoodsSku.java
@@ -1,6 +1,7 @@
 package com.ruoyi.system.api.domain;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -92,6 +93,7 @@
     private String detail;
 
     @ApiModelProperty(value = "排序")
+    @TableField(updateStrategy = FieldStrategy.IGNORED, insertStrategy = FieldStrategy.IGNORED)
     private Integer sortNum;
 
     @ApiModelProperty(value = "上架状态 0=上架中 1= 已下架")
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/OrderDTO.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/OrderDTO.java
index 633a880..4c7499b 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/OrderDTO.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/OrderDTO.java
@@ -4,10 +4,9 @@
 import com.ruoyi.common.core.enums.OrderFromEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import lombok.Data;
 
 @Data
 @ApiModel(value = "订单传输对象", description = "订单传输对象")
@@ -72,6 +71,7 @@
     @ApiModelProperty(value = "积分")
     private Integer points;
 
-
+    @ApiModelProperty("失效时间")
+    private LocalDateTime orderTimeSx;
 
 }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/OrderUpdDTO.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/OrderUpdDTO.java
index 821e97f..45283c7 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/OrderUpdDTO.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/OrderUpdDTO.java
@@ -90,5 +90,7 @@
 
     @ApiModelProperty(value = "开票状态 开票状态 1 待开票,2待审核,3 已开票,4 拒绝")
     private Integer invoiceStatus;
-
+    
+    @ApiModelProperty(value = "是否显示订单 1显示,2 不显示")
+    private Integer isOrder;
 }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java
index c9aea7f..490f86f 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java
@@ -146,7 +146,17 @@
 
             @Override
             public R<?> autoCancelOrder(Long id, String source) {
-                return null;
+                return R.fail("自动取消订单失败" + cause.getMessage());
+            }
+
+            @Override
+            public R<List<Order>> getOrderListByMubres(List<String> mubres, String source) {
+                return R.fail("根据团购唯一表示获取订单列表失败" + cause.getMessage());
+            }
+
+            @Override
+            public R<?> updateOrderStatusByMubres(List<String> formedGroupMubres, String source) {
+                return R.fail("修改订单展示状态失败" + cause.getMessage());
             }
         };
 
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java
index d766ee5..795119b 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java
@@ -183,4 +183,12 @@
     @PutMapping("/order/autoCancelOrder/{id}")
     R<?> autoCancelOrder(@PathVariable("id") Long id,
                          @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+
+    @PostMapping("/order/getOrderListByMubres")
+    R<List<Order>> getOrderListByMubres(@RequestBody List<String> mubres,
+            @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+
+    @PostMapping("/order/updOrderStatusByMubres")
+    R<?> updateOrderStatusByMubres(@RequestBody List<String> formedGroupMubres,
+            @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java
index 5109722..e8d70e7 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java
@@ -95,7 +95,7 @@
     @GetMapping("/custom-config/{configId}")
     R<CustomConfig>  getconfig(@PathVariable("configId") String configId);
 
-    @GetMapping("/user/list-by-name")
+    @PostMapping("/user/list-by-name")
     R<List<SysUser>> getUserListByName(@RequestBody SysUser sysUser,
             @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 
diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/MgtArticleController.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/MgtArticleController.java
index 5442eac..392c504 100644
--- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/MgtArticleController.java
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/MgtArticleController.java
@@ -125,4 +125,12 @@
         articleService.removeById(id);
         return R.ok();
     }
+
+    @ApiOperation("删除资讯评论")
+    @DeleteMapping("/comments/{id}")
+    public R<?> removeCommentsById(
+            @ApiParam(name = "id", value = "资讯评论id", required = true) @PathVariable("id") Long id) {
+        articleService.removeCommentsById(id);
+        return R.ok();
+    }
 }
diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleService.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleService.java
index 0a140d6..9b7eb6d 100644
--- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleService.java
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleService.java
@@ -78,4 +78,6 @@
      * @param dto 资讯上下架数据传输对象
      */
     void updStatus(MgtArticleUpdDTO dto);
+
+    void removeCommentsById(Long id);
 }
diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java
index a00f525..b826520 100644
--- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java
+++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java
@@ -29,6 +29,7 @@
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.page.BeanUtils;
+import com.ruoyi.common.core.utils.page.CollUtils;
 import com.ruoyi.common.core.utils.page.PageDTO;
 import com.ruoyi.system.api.domain.Member;
 import com.ruoyi.system.api.domain.SysUser;
@@ -36,7 +37,6 @@
 import com.ruoyi.system.api.feignClient.MemberClient;
 import com.ruoyi.system.api.feignClient.SysUserClient;
 import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -46,6 +46,7 @@
 import java.util.stream.Collectors;
 import javax.annotation.Resource;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * <p>
@@ -344,15 +345,19 @@
             user.setPhonenumber(query.getPhone());
             List<SysUser> sysUserList = sysUserClient.getUserListByName(user,
                     SecurityConstants.INNER).getData();
+            if (CollUtils.isNotEmpty(sysUserList)) {
             sysUserIdSet = sysUserList.stream().map(SysUser::getUserId)
                     .collect(Collectors.toSet());
+            }
             MemberDTO memberDTO = new MemberDTO();
             memberDTO.setNickname(query.getCreateBy());
             memberDTO.setPhone(query.getPhone());
             List<Member> memberlist = memberClient.getMemberListByCondition(memberDTO,
                     SecurityConstants.INNER).getData();
-            memberIdSet = memberlist.stream().map(Member::getId)
+            if (CollUtils.isNotEmpty(memberlist)) {
+                memberIdSet = memberlist.stream().map(Member::getId)
                     .collect(Collectors.toSet());
+            }
             if (StringUtils.isEmpty(sysUserIdSet) && StringUtils.isEmpty(memberIdSet)) {
                 return PageDTO.empty(page);
             }
@@ -361,11 +366,16 @@
         page = this.lambdaQuery()
                 .in(StringUtils.isNotEmpty(sysUserIdSet), Article::getCreateBy,
                         sysUserIdSet)
+                .or()
                 .in(StringUtils.isNotEmpty(memberIdSet), Article::getMemberId, memberIdSet)
                 .eq(StringUtils.isNotNull(query.getListingStatus()), Article::getListingStatus,
                         query.getListingStatus())
                 .eq(StringUtils.isNotNull(query.getArticleType()), Article::getArticleType,
                         query.getArticleType())
+                .in(StringUtils.isNotNull(query.getArticleType()) && query.getArticleType()
+                                .equals(ArticleTypeEnum.USER_POSTING), Article::getStatus,
+                        Lists.newArrayList(AuditStatusEnum.TO_BE_REVIEWED,
+                                AuditStatusEnum.REJECTED))
                 .like(StringUtils.isNotBlank(query.getTitle()), Article::getTitle, query.getTitle())
                 .orderByDesc(Article::getReported)
                 .page(new Page<>(query.getPageCurr(), query.getPageSize()));
@@ -488,7 +498,12 @@
         if (StringUtils.isNull(article)) {
             throw new ServiceException("资讯不存在");
         }
-        return BeanUtils.copyBean(article, MgtArticleVO.class);
+        MgtArticleVO mgtArticleVO = BeanUtils.copyBean(article, MgtArticleVO.class);
+        long count = articleCommentsService.count(
+                Wrappers.lambdaQuery(ArticleComments.class).eq(ArticleComments::getArticleId, id)
+                        .eq(ArticleComments::getType, 1));
+        mgtArticleVO.setCommentCount((int) count);
+        return mgtArticleVO;
     }
 
     /**
@@ -519,4 +534,25 @@
         this.lambdaUpdate().set(Article::getListingStatus, dto.getListingStatus())
                 .eq(Article::getId, dto.getId()).update();
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void removeCommentsById(Long id) {
+        ArticleComments articleComments = articleCommentsService.getById(id);
+        if (StringUtils.isNull(articleComments)) {
+            throw new ServiceException("评论/回复不存在");
+        }
+        articleCommentsService.removeById(id);
+        // 评论
+        if (articleComments.getType().equals(1)) {
+            // 查询回复
+            List<ArticleComments> replyList = articleCommentsService.lambdaQuery()
+                    .eq(ArticleComments::getReplyId, id).list();
+            if (StringUtils.isNotEmpty(replyList)) {
+                List<Long> replyIds = replyList.stream().map(ArticleComments::getId)
+                        .collect(Collectors.toList());
+                articleCommentsService.removeByIds(replyIds);
+            }
+        }
+    }
 }
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroomGoods.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroomGoods.java
index b3f5e1b..bc8060f 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroomGoods.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroomGoods.java
@@ -1,6 +1,7 @@
 package com.ruoyi.auction.domain;
 
 import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -53,6 +54,7 @@
     private Integer salesroomStock;
 
     @ApiModelProperty(value = "兜底成交个数")
+    @TableField(insertStrategy = FieldStrategy.IGNORED, updateStrategy = FieldStrategy.IGNORED)
     private Integer guaranteedTradeVolume;
 
     @ApiModelProperty(value = "拍卖时间(分钟)")
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java
index 8b60268..a7c3b2b 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java
@@ -354,6 +354,7 @@
                     orderDTO.setPrice(goodsSku.getPrice());
                     orderDTO.setSkuName(goodsSku.getSkuName());
                 }
+                orderDTO.setOrderTimeSx(auctionGoods.getEndTime());
                 orderClient.saveOrderOne(orderDTO, SecurityConstants.INNER);
             } else {
                 // 没有人出价,退回拍卖商品库存
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsSeckillVO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsSeckillVO.java
index 59d4604..b5503f6 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsSeckillVO.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsSeckillVO.java
@@ -37,6 +37,9 @@
     @ApiModelProperty(value = "秒杀价格")
     private BigDecimal seckillPrice;
 
+    @ApiModelProperty(value = "商品库存")
+    private Integer goodsSkuStock;
+
     @ApiModelProperty(value = "已售数量")
     private Integer soldQuantity;
 
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
index f544f53..9c92c18 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
@@ -25,6 +25,7 @@
 import com.ruoyi.goods.controller.management.vo.GoodsGroupPurchaseVO;
 import com.ruoyi.goods.domain.MemberGoodsCollection;
 import com.ruoyi.goods.mapper.GoodsGroupPurchaseMapper;
+import com.ruoyi.goods.service.IGoodsGroupPurchaseInfoService;
 import com.ruoyi.goods.service.IGoodsGroupPurchaseService;
 import com.ruoyi.goods.service.IGoodsSkuService;
 import com.ruoyi.goods.service.IMemberGoodsCollectionService;
@@ -51,7 +52,6 @@
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.stream.Collectors;
-import javax.annotation.Resource;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -75,9 +75,7 @@
     private final RedisService redisService;
     private final IMemberGoodsCollectionService iMemberGoodsCollectionService;
     private final SysUserClient sysUserClient;
-
-    @Resource
-    private GoodsGroupPurchaseInfoServiceImpl  GoodsGroupPurchaseInfoServiceImpl;
+    private final IGoodsGroupPurchaseInfoService goodsGroupPurchaseInfoService;
     // 创建一个静态共享的ObjectMapper实例以重用
     private static final ObjectMapper objectMapper = new ObjectMapper();
     /**
@@ -101,6 +99,7 @@
     @Override
     public void saveGoodsGroupPurchase(GoodsGroupPurchaseDTO dto) {
         GoodsGroupPurchase goodsGroupPurchase = BeanUtils.copyBean(dto, GoodsGroupPurchase.class);
+        goodsGroupPurchase.setListingStatus(ListingStatusEnum.ON_SHELVES);
         if (StringUtils.isNull(dto.getId())) {
             if (StringUtils.isNull(dto.getGoodsSkuId())) {
                 throw new ServiceException("商品id不能为空");
@@ -204,6 +203,12 @@
                     + groupPurchase.getId());
             redisService.deleteObject(
                     DelayTaskEnum.GROUP_PURCHASES_END_TASK.getCode() + "-" + groupPurchase.getId());
+            // 退回剩余库存
+            GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
+            goodsStockUpdDTO.setAuctionStock(
+                    groupPurchase.getLimitNumber() * groupPurchase.getGroupSize());
+            goodsStockUpdDTO.setGoodsSkuId(groupPurchase.getGoodsSkuId());
+            goodsSkuService.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO));
         }
         //修改状态
         groupPurchase.setListingStatus(dto.getListingStatus());
@@ -253,10 +258,12 @@
     public void endGroupPurchase(Long groupPurchaseId) throws JsonProcessingException {
         log.info(">>>>>>>>>>>>>>>>>>>>{}团购商品结束团购<<<<<<<<<<<<<<<<<<<<", groupPurchaseId);
         GoodsGroupPurchase groupPurchase = this.getById(groupPurchaseId);
-        if (StringUtils.isNotNull(groupPurchase) && groupPurchase.getStartStatus()
-                .equals(StartStatusEnum.STARTED)) {
-            this.lambdaUpdate().set(GoodsGroupPurchase::getStartStatus, StartStatusEnum.ENDED)
-                    .eq(GoodsGroupPurchase::getId, groupPurchaseId).update();
+        boolean res = handleGroupPurchase(groupPurchaseId);
+        if (StringUtils.isNotNull(groupPurchase)) {
+            groupPurchase.setStartStatus(StartStatusEnum.ENDED);
+            groupPurchase.setGroupStatus(
+                    res ? GroupStatusEnum.FORMED_INTO_A_GROUP : GroupStatusEnum.GROUP_FAILURE);
+            this.updateById(groupPurchase);
             Map<String, Object> map = new ConcurrentHashMap<>();
             map.put("notification_type", NotificationTypeConstant.GROUP_PURCHASE);
             map.put("notification_time", DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:ss"));
@@ -280,13 +287,26 @@
         if (StringUtils.isNull(groupPurchase)) {
             throw new ServiceException("团购商品不存在");
         }
-        //判断商品状态,未成团则查询关联订单,进行退款;成团就直接修改状态
-        if (groupPurchase.getGroupStatus().equals(GroupStatusEnum.TO_FORM_A_GROUP)) {
-            //查询关联订单
-            List<Order> orderList = orderClient.getOrderByGroupPurchaseId(id,
+        // 处理未成团订单退款和成团订单修改展示状态
+        boolean res = handleGroupPurchase(id);
+        groupPurchase.setGroupStatus(
+                res ? GroupStatusEnum.FORMED_INTO_A_GROUP : GroupStatusEnum.GROUP_FAILURE);
+        groupPurchase.setStartStatus(StartStatusEnum.ENDED);
+        this.updateById(groupPurchase);
+    }
+
+    private boolean handleGroupPurchase(Long id) {
+        List<GoodsGroupPurchaseInfo> groupPurchaseInfoList = goodsGroupPurchaseInfoService.lambdaQuery()
+                .eq(GoodsGroupPurchaseInfo::getGroupPurchaseId, id).list();
+        if (CollUtils.isNotEmpty(groupPurchaseInfoList)) {
+            List<String> mubres = groupPurchaseInfoList.stream()
+                    .filter(g -> g.getCurrentNumber()
+                            < g.getGroupSize())
+                    .map(GoodsGroupPurchaseInfo::getMubre).collect(
+                            Collectors.toList());
+            List<Order> orderList = orderClient.getOrderListByMubres(mubres,
                     SecurityConstants.INNER).getData();
             if (CollUtils.isNotEmpty(orderList)) {
-
                 List<RefundDTO> refundDTOList = orderList.stream().map(order -> {
                     RefundDTO refundDTO = new RefundDTO();
                     refundDTO.setOrderNo(order.getOrderNo());
@@ -307,6 +327,15 @@
                             failedOrders.add(key);
                         }
                     });
+                    try {
+                        log.info(
+                                "============  =================退款结束=============================");
+                        log.info("退款成功订单:{}",
+                                objectMapper.writeValueAsString(successfulOrders));
+                        log.info("退款失败订单:{}", objectMapper.writeValueAsString(failedOrders));
+                    } catch (JsonProcessingException e) {
+                        throw new RuntimeException(e);
+                    }
                     // 处理退款结果
                     List<Order> updateOrderList = orderList.stream()
                             .filter(order -> successfulOrders.contains(order.getOrderNo()))
@@ -318,10 +347,17 @@
                     orderClient.updateOrderList(orderUpdDTOS, SecurityConstants.INNER);
                 }
             }
-            groupPurchase.setGroupStatus(GroupStatusEnum.GROUP_FAILURE);
+            List<String> formedGroupMubres = groupPurchaseInfoList.stream()
+                    .filter(g -> g.getCurrentNumber()
+                            >= g.getGroupSize())
+                    .map(GoodsGroupPurchaseInfo::getMubre).collect(
+                            Collectors.toList());
+            if (CollUtils.isNotEmpty(formedGroupMubres)) {
+                orderClient.updateOrderStatusByMubres(formedGroupMubres, SecurityConstants.INNER);
+                return true;
+            }
         }
-        groupPurchase.setStartStatus(StartStatusEnum.ENDED);
-        this.updateById(groupPurchase);
+        return false;
     }
 
     @Override
@@ -354,7 +390,7 @@
         wrapper6.eq(GoodsGroupPurchaseInfo::getDelFlag,0);
         wrapper6.eq(GoodsGroupPurchaseInfo::getGroupStatus,0);
         wrapper6.eq(GoodsGroupPurchaseInfo::getGroupPurchaseId,one.getId());
-        GoodsGroupPurchaseInfo one1 = GoodsGroupPurchaseInfoServiceImpl.getOne(wrapper6);
+        GoodsGroupPurchaseInfo one1 = goodsGroupPurchaseInfoService.getOne(wrapper6);
         if (one1!=null){
             goodsGroupPurchaseInfoVO.setCurrentNumber(one1.getCurrentNumber());
             if (one1.getGroupStatus()==0){
@@ -396,7 +432,7 @@
 
             LambdaQueryWrapper<GoodsGroupPurchaseInfo> wrapper7= Wrappers.lambdaQuery();
             wrapper7.eq(GoodsGroupPurchaseInfo::getMubre,data.getGroupNo());
-            GoodsGroupPurchaseInfo one7 = GoodsGroupPurchaseInfoServiceImpl.getOne(wrapper7);
+            GoodsGroupPurchaseInfo one7 = goodsGroupPurchaseInfoService.getOne(wrapper7);
             if (one7!=null){
                 goodsGroupPurchaseInfoVO.setCurrentNumber(one7.getCurrentNumber());
                 if (one7.getGroupStatus()==0){
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java
index 71dc751..2664565 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java
@@ -186,6 +186,7 @@
             throw new ServiceException("编辑失败,商品库存不足");
         }
         GoodsSeckill goodsSeckillUpd = BeanUtils.copyBean(upd, GoodsSeckill.class);
+        goodsSeckillUpd.setListingStatus(ListingStatusEnum.ON_SHELVES);
         this.updateById(goodsSeckillUpd);
         GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
         goodsStockUpdDTO.setAuctionStock(upd.getSeckillStock() * -1);
@@ -216,7 +217,7 @@
                     DelayTaskEnum.SECKILL_END_TASK.getCode() + "-" + goodsSeckill.getId());
             // 退回剩余库存
             GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
-            goodsStockUpdDTO.setAuctionStock(goodsSeckill.getSeckillStock() * -1);
+            goodsStockUpdDTO.setAuctionStock(goodsSeckill.getSeckillStock());
             goodsStockUpdDTO.setGoodsSkuId(goodsSeckill.getGoodsSkuId());
             goodsSkuService.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO));
             goodsSeckill.setSeckillStock(0);
@@ -241,8 +242,11 @@
         }
         GoodsSeckillVO vo = BeanUtils.copyBean(goodsSeckill, GoodsSeckillVO.class);
         GoodsSku goods = goodsSkuService.getById(goodsSeckill.getGoodsSkuId());
-        Optional.of(goods).ifPresent(goodsSku -> vo.setGoodsSkuName(goodsSku.getSkuName()));
-        Integer num = orderClient.getSeckillMembers(goodsSeckill.getGoodsSkuId(),
+        Optional.of(goods).ifPresent(goodsSku -> {
+            vo.setGoodsSkuName(goodsSku.getSkuName());
+            vo.setGoodsSkuStock(goodsSku.getStock());
+        });
+        Integer num = orderClient.getSeckillMembers(goodsSeckill.getId(),
                 SecurityConstants.INNER).getData();
         vo.setNumberOfPurchasedMembers(StringUtils.isNull(num) ? 0 : num);
         return vo;
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java
index 96eefd7..1823b6e 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java
@@ -8,6 +8,7 @@
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.ruoyi.common.core.constant.SecurityConstants;
 import com.ruoyi.common.core.enums.ListingStatusEnum;
+import com.ruoyi.common.core.enums.StartStatusEnum;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.page.BeanUtils;
@@ -425,7 +426,9 @@
         LambdaQueryWrapper<GoodsGroupPurchase> queryWrapper1 =new LambdaQueryWrapper<>();
         queryWrapper1.eq(GoodsGroupPurchase::getListingStatus,
                         ListingStatusEnum.ON_SHELVES)
-                .eq(GoodsGroupPurchase::getGoodsSkuId, byId.getId());
+                .eq(GoodsGroupPurchase::getGoodsSkuId, byId.getId())
+                .eq(GoodsGroupPurchase::getStartStatus,
+                        StartStatusEnum.STARTED);
         GoodsGroupPurchase goodsGroupPurchase = goodsGroupPurchaseMapper.selectOne(queryWrapper1);
         if(goodsGroupPurchase!=null){
             HomeGoodsSkuDTO homeGoodsSkuDTO1 =new HomeGoodsSkuDTO();
@@ -457,7 +460,9 @@
         LambdaQueryWrapper<GoodsGroupPurchase> queryWrapper2 =new LambdaQueryWrapper<>();
         queryWrapper2.eq(GoodsGroupPurchase::getListingStatus,
                         ListingStatusEnum.ON_SHELVES)
-                .eq(GoodsGroupPurchase::getGoodsSkuId, byId.getId());
+                .eq(GoodsGroupPurchase::getGoodsSkuId, byId.getId())
+                .eq(GoodsGroupPurchase::getStartStatus,
+                        StartStatusEnum.STARTED);
         GoodsGroupPurchase goodsGroupPurchase2 = goodsGroupPurchaseMapper.selectOne(queryWrapper2);
         if (goodsGroupPurchase2!=null){
             homeGoodsSkuInfoVO.setGroupPurchaseGoods(2);
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberServiceImpl.java
index 5c36b86..5fce8fc 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberServiceImpl.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberServiceImpl.java
@@ -18,7 +18,6 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.google.common.collect.Lists;
 import com.ruoyi.common.core.enums.GenderEnum;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.StringUtils;
@@ -38,7 +37,6 @@
 import com.ruoyi.member.service.IMemberService;
 import com.ruoyi.member.util.HttpUtils;
 import com.ruoyi.system.api.RemoteUserService;
-import com.ruoyi.system.api.constants.SecurityConstant;
 import com.ruoyi.system.api.domain.AppMiniLoginVO;
 import com.ruoyi.system.api.domain.Member;
 import com.ruoyi.system.api.domain.MemberPoints;
@@ -55,7 +53,6 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.concurrent.TimeUnit;
 import javax.annotation.Resource;
 import org.apache.commons.io.IOUtils;
 import org.apache.http.HttpEntity;
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/OrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/OrderController.java
index 94410aa..53d3617 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/OrderController.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/OrderController.java
@@ -3,8 +3,6 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fasterxml.jackson.core.JsonProcessingException;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.enums.OrderStatusEnum;
 import com.ruoyi.common.core.utils.page.BeanUtils;
@@ -183,4 +181,16 @@
             return R.ok();
     }
 
+    @InnerAuth
+    @PostMapping("/getOrderListByMubres")
+    R<List<Order>> getOrderListByMubres(@RequestBody List<String> mubres) {
+        return R.ok(orderService.getOrderListByMubres(mubres));
+    }
+
+    @InnerAuth
+    @PostMapping("/updOrderStatusByMubres")
+    R<?> updateOrderStatusByMubres(@RequestBody List<String> formedGroupMubres) {
+        orderService.updateOrderStatusByMubres(formedGroupMubres);
+        return R.ok();
+    }
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/PayController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/PayController.java
index ac94f0d..d927dea 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/PayController.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/PayController.java
@@ -3,7 +3,6 @@
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.security.annotation.InnerAuth;
 import com.ruoyi.order.service.IPaylogService;
-import com.ruoyi.order.service.impl.PaylogServiceImpl;
 import com.ruoyi.system.api.domain.dto.RefundDTO;
 import java.util.List;
 import java.util.Map;
@@ -24,6 +23,10 @@
 
     private final IPaylogService paylogService;
 
+    /**
+     * @param refundDTOS 退款数据传输对象
+     * @return Map<String, Object> key :orderNo value 退款结果
+     */
     @InnerAuth
     @PostMapping("/refund-batch")
     public R<Map<String, Object>> refund(@RequestBody List<RefundDTO> refundDTOS) {
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/vo/MgtOrderVO.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/vo/MgtOrderVO.java
index 16319cd..b2845da 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/vo/MgtOrderVO.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/vo/MgtOrderVO.java
@@ -144,4 +144,8 @@
 
     @ApiModelProperty("物流信息")
     private Express100VO express100VO;
+
+    @ApiModelProperty("是否售后 1未售后,2 售后")
+    private Integer isRequest;
+
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java
index a812488..00af113 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java
@@ -142,4 +142,8 @@
      * @return List<Order>
      */
     List<Order> getStaticsOrderList(LocalDateTime startTime, LocalDateTime endTime);
+
+    List<Order> getOrderListByMubres(List<String> mubres);
+
+    void updateOrderStatusByMubres(List<String> formedGroupMubres);
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IPaylogService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IPaylogService.java
index 3152b76..db3d456 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IPaylogService.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IPaylogService.java
@@ -42,6 +42,10 @@
      */
     void wxnotify(HttpServletRequest request, HttpServletResponse response);
 
+    /**
+     * @param refundDTOS 退款数据传输对象
+     * @return Map<String, Object> key :orderNo value 退款结果
+     */
     Map<String, Object> refund(List<RefundDTO> refundDTOS);
 
     void refund1(RefundDTO refundDTOS);
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/LogisticsServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/LogisticsServiceImpl.java
index 3b26cd7..4cbabe5 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/LogisticsServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/LogisticsServiceImpl.java
@@ -1,7 +1,6 @@
 package com.ruoyi.order.service.impl;
 
 
-import com.alibaba.fastjson.JSONArray;
 import com.alibaba.nacos.shaded.com.google.gson.Gson;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -12,34 +11,23 @@
 import com.kuaidi100.sdk.request.QueryTrackParam;
 import com.kuaidi100.sdk.request.QueryTrackReq;
 import com.kuaidi100.sdk.utils.SignUtils;
-import com.ruoyi.common.core.domain.R;
 import com.ruoyi.order.mapper.LogisticsMapper;
 import com.ruoyi.order.service.ILogisticsService;
-import com.ruoyi.order.vo.KuaiDiCode;
 import com.ruoyi.system.api.domain.Logistics;
 import com.ruoyi.system.api.domain.dto.LogisticsDTO;
 import com.ruoyi.system.api.domain.vo.Express100VO;
-import net.sf.json.JSONObject;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.ResponseEntity;
-import org.springframework.stereotype.Service;
-import org.springframework.util.LinkedMultiValueMap;
-import org.springframework.util.MultiValueMap;
-import org.springframework.web.client.RestTemplate;
-
-import javax.annotation.Resource;
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.net.HttpURLConnection;
 import java.net.URL;
 import java.net.URLEncoder;
-import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
+import java.util.Objects;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
 
 /**
  * <p>
@@ -90,7 +78,9 @@
         LambdaQueryWrapper<Logistics> wrapper= Wrappers.lambdaQuery();
         wrapper.eq(Logistics::getLogisticsNum,logisticsDTO.getCompany());
         Logistics one = this.getOne(wrapper);
-        response.setLogisticsName(one.getLogisticsName());
+        if (Objects.nonNull(one)) {
+            response.setLogisticsName(one.getLogisticsName());
+        }
         return response;
     }
 
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderReturnRequestServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderReturnRequestServiceImpl.java
index dd1b9f0..ddd1eb9 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderReturnRequestServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderReturnRequestServiceImpl.java
@@ -163,6 +163,7 @@
             }
             memberIdSet = memberList.stream().map(Member::getId)
                     .collect(Collectors.toSet());
+            query.setMemberIdSet(memberIdSet);
         }
         page = baseMapper.getOrderReturnRequestPage(page, query);
         if (StringUtils.isEmpty(page.getRecords())) {
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
index aab1f9b..c01e6a1 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -7,7 +7,6 @@
 import com.google.common.collect.Lists;
 import com.ruoyi.common.core.constant.CacheConstants;
 import com.ruoyi.common.core.constant.SecurityConstants;
-import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.enums.AuctionOrderTypeEnum;
 import com.ruoyi.common.core.enums.AuditStatusEnum;
 import com.ruoyi.common.core.enums.BondStatusEnum;
@@ -37,7 +36,18 @@
 import com.ruoyi.order.util.OrderUtil;
 import com.ruoyi.order.util.SinataUtil;
 import com.ruoyi.system.api.constants.DelayTaskEnum;
-import com.ruoyi.system.api.domain.*;
+import com.ruoyi.system.api.domain.AuctionSalesroom;
+import com.ruoyi.system.api.domain.CouponMember;
+import com.ruoyi.system.api.domain.CustomConfig;
+import com.ruoyi.system.api.domain.DelayTask;
+import com.ruoyi.system.api.domain.GoodsGroupPurchase;
+import com.ruoyi.system.api.domain.GoodsGroupPurchaseInfo;
+import com.ruoyi.system.api.domain.GoodsSeckill;
+import com.ruoyi.system.api.domain.GoodsSku;
+import com.ruoyi.system.api.domain.Member;
+import com.ruoyi.system.api.domain.MemberAddress;
+import com.ruoyi.system.api.domain.Order;
+import com.ruoyi.system.api.domain.OrderAuctionBond;
 import com.ruoyi.system.api.domain.dto.CouponMemberDTO;
 import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO;
 import com.ruoyi.system.api.domain.dto.HomeGoodsSkuDTO;
@@ -61,7 +71,10 @@
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.time.LocalDateTime;
-import java.util.*;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.TimeUnit;
 import java.util.function.Function;
 import java.util.regex.Matcher;
@@ -72,6 +85,7 @@
 import org.redisson.api.RLock;
 import org.redisson.api.RedissonClient;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * <p>
@@ -164,6 +178,7 @@
         order.setSkuName(OrderDTO.getSkuName());
         order.setPrice(OrderDTO.getPrice());
         order.setCoverPic(OrderDTO.getCoverPic());
+        order.setOrderTimeSx(OrderDTO.getOrderTimeSx());
         this.save(order);
 
         if (OrderDTO.getOrderFrom().getCode()==4){
@@ -1177,8 +1192,9 @@
             pageVO = PageDTO.empty(page);
         }
         pageVO = PageDTO.of(page, MgtOrderVO.class);
+        List<MgtOrderVO> voList = pageVO.getList();
         if (query.getOrderFrom() == OrderFromEnum.AUCTION_ORDERS) {
-            List<MgtOrderVO> list = pageVO.getList();
+            List<MgtOrderVO> list = voList;
             // 封装参数查询拍卖会
             Set<Long> auctionSalesroomGoodsIdSet = list.stream()
                     .filter(order -> order.getAuctionType() == AuctionOrderTypeEnum.AUCTION_ITEMS)
@@ -1243,6 +1259,19 @@
                 }
             });
         }
+        Set<Long> memberVoIdSet = voList.stream().map(MgtOrderVO::getMemberId)
+                .collect(Collectors.toSet());
+        List<Member> data = memberClient.getMemberListByIds(memberVoIdSet, SecurityConstants.INNER)
+                .getData();
+        Map<Long, Member> memberMap = data.stream()
+                .collect(Collectors.toMap(Member::getId, e -> e));
+        voList = voList.stream().peek(order -> {
+            Member member = memberMap.get(order.getMemberId());
+            if (StringUtils.isNotNull(member)) {
+                order.setNickname(member.getNickname());
+                order.setPhone(member.getPhone());
+            }
+        }).collect(Collectors.toList());
         return pageVO;
     }
 
@@ -1274,7 +1303,7 @@
             }
         }
         // 查询售后信息
-        if (order.getOrderStatus() == OrderStatusEnum.AFTER_SALE) {
+        if (order.getIsRequest() == 2) {
             OrderReturnRequest orderReturnRequest = orderReturnRequestService.getOne(
                     Wrappers.lambdaQuery(OrderReturnRequest.class)
                             .eq(OrderReturnRequest::getOrderId,
@@ -1345,6 +1374,7 @@
      * @param id 订单id
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void refund(Long id) {
         Order order = getOrder(id);
         String orderNo = order.getOrderNo();
@@ -1367,6 +1397,8 @@
             orderReturnRequest.setAuditStatus(AuditStatusEnum.PASSED);
             orderReturnRequestService.save(orderReturnRequest);
         }
+        order.setIsRequest(2);
+        this.updateById(order);
     }
 
     private boolean handleRefund(PaymentMethodEnum paymentMethod, Paylog paylog, String orderNo) {
@@ -1401,7 +1433,7 @@
         Order order = getOrder(id);
         if (order.getOrderStatus() == OrderStatusEnum.FINISHED) {
             OrderReturnRequest orderReturnRequest = new OrderReturnRequest();
-            order.setOrderStatus(OrderStatusEnum.AFTER_SALE);
+            order.setIsRequest(2);
             this.updateById(order);
             MgtAfterSaleSettingDTO data = sysUserClient.getAfterSaleSetting().getData();
             if (StringUtils.isNull(data)) {
@@ -1484,4 +1516,15 @@
     public List<Order> getStaticsOrderList(LocalDateTime startTime, LocalDateTime endTime) {
         return baseMapper.getStaticsOrderList(startTime, endTime);
     }
+
+    @Override
+    public List<Order> getOrderListByMubres(List<String> mubres) {
+        return this.lambdaQuery().in(Order::getGroupNo, mubres).list();
+    }
+
+    @Override
+    public void updateOrderStatusByMubres(List<String> formedGroupMubres) {
+        this.lambdaUpdate().set(Order::getIsOrder, 1).in(Order::getGroupNo, formedGroupMubres)
+                .update();
+    }
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java
index 0e64e66..04526ed 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java
@@ -883,6 +883,10 @@
             return m.matches();
         }
 
+    /**
+     * @param refundDTOS 退款数据传输对象
+     * @return Map<String, Object> key :orderNo value 退款结果
+     */
     @Override
     public Map<String, Object> refund(List<RefundDTO> refundDTOS) {
         Map<String, Object> map = new HashMap<>();
diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
index 54a8be8..d6590c9 100644
--- a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
+++ b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -3,14 +3,13 @@
 <mapper namespace="com.ruoyi.order.mapper.OrderMapper">
 
   <select id="getSeckillMembers" resultType="java.lang.Integer">
-    SELECT ifnull(count(1), 0) FROM t_order o
+    SELECT IFNULL(COUNT(id), 0) AS num
+    FROM t_order o
     WHERE
       o.goods_sku_id = #{id}
       AND o.order_from=2
       AND o.del_flag=0
-      AND o.order_status IN (2
-        , 3
-        , 4)
+      AND o.order_status IN (2, 3, 4)
     GROUP BY
       o.member_id
   </select>
diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtCouponController.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtCouponController.java
index 6ea3538..74b2292 100644
--- a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtCouponController.java
+++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtCouponController.java
@@ -2,9 +2,7 @@
 
 
 import com.alibaba.excel.EasyExcel;
-import com.alibaba.excel.ExcelWriter;
 import com.alibaba.excel.util.DateUtils;
-import com.alibaba.excel.write.metadata.WriteSheet;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.page.PageDTO;
 import com.ruoyi.promotion.controller.management.dto.MgtCouponDTO;
@@ -18,8 +16,11 @@
 import com.ruoyi.system.api.validate.UpdateGroup;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import java.io.IOException;
+import java.net.URLEncoder;
 import java.util.Date;
 import java.util.List;
+import javax.servlet.http.HttpServletResponse;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -43,6 +44,7 @@
 public class MgtCouponController {
 
     private final ICouponService couponService;
+    private final HttpServletResponse response;
 
     /**
      * 获取优惠券列表的分页数据
@@ -115,14 +117,22 @@
     public void exportReceiveDetail(@RequestBody MgtCouponReceiveQuery query) {
         List<CouponReceiveDetailVO> couponReceiveDetailVOList = couponService.getCouponReceiveDetailList(
                 query);
-        String fileName =
-                "优惠券领取明细" + DateUtils.format(new Date(), "yyyyMMddHHmmss") + ".xlsx";
-
-        try (ExcelWriter excelWriter = EasyExcel.write(fileName, CouponReceiveDetailVO.class)
-                .build()) {
-            WriteSheet writeSheet = EasyExcel.writerSheet("优惠券领取详情").build();
-            excelWriter.write(couponReceiveDetailVOList, writeSheet);
+        response.setContentType(
+                "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+        response.setCharacterEncoding("utf-8");
+        // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
+        try {
+            String fileName = URLEncoder.encode(
+                            "优惠券领取明细" + DateUtils.format(new Date(), "yyyyMMddHHmmss"), "UTF-8")
+                    .replaceAll("\\+", "%20");
+            response.setHeader("Content-disposition",
+                    "attachment;filename*=utf-8''" + fileName + ".xlsx");
+            EasyExcel.write(response.getOutputStream(), CouponReceiveDetailVO.class)
+                    .sheet("优惠券领取明细")
+                    .doWrite(couponReceiveDetailVOList);
+        } catch (IOException e) {
+            throw new RuntimeException(e);
         }
     }
-    
 }
+    
diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/CouponReceiveDetailVO.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/CouponReceiveDetailVO.java
index 53bcf10..b9782f6 100644
--- a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/CouponReceiveDetailVO.java
+++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/CouponReceiveDetailVO.java
@@ -4,6 +4,7 @@
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.core.enums.CouponUseEnum;
+import com.ruoyi.promotion.converter.CouponUseEnumConverter;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.io.Serializable;
@@ -46,7 +47,7 @@
     private LocalDateTime createTime;
 
     @ApiModelProperty(value = "使用状态 0:未使用, 1:已使用")
-    @ExcelProperty("使用状态")
+    @ExcelProperty(value = "使用状态", converter = CouponUseEnumConverter.class)
     private CouponUseEnum couponStatus;
 
 }
diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/converter/CouponUseEnumConverter.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/converter/CouponUseEnumConverter.java
new file mode 100644
index 0000000..6e7f4a0
--- /dev/null
+++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/converter/CouponUseEnumConverter.java
@@ -0,0 +1,17 @@
+package com.ruoyi.promotion.converter;
+
+import com.alibaba.excel.converters.Converter;
+import com.alibaba.excel.metadata.GlobalConfiguration;
+import com.alibaba.excel.metadata.data.WriteCellData;
+import com.alibaba.excel.metadata.property.ExcelContentProperty;
+import com.ruoyi.common.core.enums.CouponUseEnum;
+
+public class CouponUseEnumConverter  implements Converter<CouponUseEnum> {
+
+    @Override
+    public WriteCellData<?> convertToExcelData(CouponUseEnum value,
+            ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration)
+            throws Exception {
+        return new WriteCellData<String>(value.getDesc());
+    }
+}
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
index 3701850..ce9a62f 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
@@ -587,7 +587,7 @@
     }
 
     @InnerAuth
-    @GetMapping("/list-by-name")
+    @PostMapping("/list-by-name")
     R<List<SysUser>> getUserListByName(@RequestBody SysUser sysUser) {
         List<SysUser> list = userService.lambdaQuery()
                 .like(StringUtils.isNotBlank(sysUser.getNickName()), SysUser::getNickName,
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 3f506ee..67f2902 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -603,12 +603,13 @@
     public void saveSupplier(SupplierDTO dto) {
 
         SysUser user = BeanUtils.copyBean(dto, SysUser.class);
-        boolean b = checkPhoneUnique(user);
-        if (!b) {
-            throw new ServiceException("该手机号已存在");
-        }
+
         // 添加
         if (StringUtils.isNull(dto.getUserId())) {
+            boolean b = checkPhoneUnique(user);
+            if (!b) {
+                throw new ServiceException("该手机号已存在");
+            }
             user.setUserName(dto.getPhonenumber());
             user.setPassword(SecurityUtils.encryptPassword(dto.getPassword()));
             user.setUserType("04");
@@ -618,6 +619,12 @@
         } else {
             // 编辑
             user = this.getById(dto.getUserId());
+            if (!user.getPhonenumber().equals(dto.getPhonenumber())) {
+                boolean b = checkPhoneUnique(user);
+                if (!b) {
+                    throw new ServiceException("该手机号已存在");
+                }
+            }
             if (StringUtils.isNull(user)) {
                 throw new ServiceException("供应商不存在");
             }

--
Gitblit v1.7.1