From cd55aff7eea06f77a8f712cef1ad2744c44d0f8a Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期四, 20 六月 2024 18:56:16 +0800
Subject: [PATCH] 1.修改bug

---
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java          |   38 ++++++++-
 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java |   15 +++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java          |   46 +++++++++++
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/WebSocketTestController.java              |    6 +
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java        |    6 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java                |   13 +++
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java              |    9 +-
 ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java                                        |   16 ++-
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java                     |   19 ++++
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java                    |   15 ++-
 ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml                                  |    4 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/InnerOrderAuctionBondController.java  |   27 +++++-
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderAuctionBondService.java                  |    5 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/websocket/WebSocketServer.java                       |   10 ++
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java                 |    2 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/util/WebSocketUsers.java                         |    6 +
 16 files changed, 192 insertions(+), 45 deletions(-)

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 c27744c..f3518bb 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
@@ -5,7 +5,14 @@
 import com.ruoyi.common.core.enums.BondStatusEnum;
 import com.ruoyi.system.api.domain.Order;
 import com.ruoyi.system.api.domain.OrderAuctionBond;
-import com.ruoyi.system.api.domain.dto.*;
+import com.ruoyi.system.api.domain.dto.AuctionGoodsListDTO;
+import com.ruoyi.system.api.domain.dto.HomeGoodsSkuDTO;
+import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO;
+import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO;
+import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO;
+import com.ruoyi.system.api.domain.dto.OrderDTO;
+import com.ruoyi.system.api.domain.dto.OrderUpdDTO;
+import com.ruoyi.system.api.domain.dto.RefundDTO;
 import com.ruoyi.system.api.domain.vo.OrderVO;
 import com.ruoyi.system.api.domain.vo.PayInfoVO;
 import com.ruoyi.system.api.feignClient.OrderClient;
@@ -122,6 +129,10 @@
                 return R.fail("普通拍卖获取保证金失败" + cause.getMessage());
             }
 
+            @Override
+            public R<?> returnBondByAuctionGoodsId(Long id, 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 578cd1e..4510123 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
@@ -7,7 +7,14 @@
 import com.ruoyi.common.core.enums.BondStatusEnum;
 import com.ruoyi.system.api.domain.Order;
 import com.ruoyi.system.api.domain.OrderAuctionBond;
-import com.ruoyi.system.api.domain.dto.*;
+import com.ruoyi.system.api.domain.dto.AuctionGoodsListDTO;
+import com.ruoyi.system.api.domain.dto.HomeGoodsSkuDTO;
+import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO;
+import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO;
+import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO;
+import com.ruoyi.system.api.domain.dto.OrderDTO;
+import com.ruoyi.system.api.domain.dto.OrderUpdDTO;
+import com.ruoyi.system.api.domain.dto.RefundDTO;
 import com.ruoyi.system.api.domain.vo.OrderVO;
 import com.ruoyi.system.api.domain.vo.PayInfoVO;
 import com.ruoyi.system.api.factory.OrderFallbackFactory;
@@ -155,5 +162,13 @@
     R<List<Order>> getOrderByCouponIds(@RequestBody Collection<Long> couponIds,
             @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 
-
+    /**
+     * 拍卖商品退保证金
+     *
+     * @param id     拍卖商品id
+     * @param source 内部调用标志
+     */
+    @GetMapping("/order-auction-bond/refund-bond/{id}")
+    R<?> returnBondByAuctionGoodsId(@PathVariable("id") Long id,
+            @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 }
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/util/WebSocketUsers.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/util/WebSocketUsers.java
index c69232e..1b546e3 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/util/WebSocketUsers.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/util/WebSocketUsers.java
@@ -105,6 +105,12 @@
         }
     }
 
+    /**
+     * 根据客户端类型发送消息
+     *
+     * @param clientType 1=会员小程序 2=拍卖师小程序
+     * @param message    发送的消息
+     */
     public static void sendMessageToUsersByType(Integer clientType, String message) {
         for (Map.Entry<String, Session> entry : USERS.entrySet()) {
             String key = entry.getKey();
diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
index e471fe6..8bdb915 100644
--- a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
+++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
@@ -26,6 +26,7 @@
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Objects;
 import java.util.concurrent.TimeUnit;
 import javax.servlet.http.HttpServletRequest;
 import lombok.extern.slf4j.Slf4j;
@@ -90,19 +91,22 @@
     {
         // 用户登录
         LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword());
+        SysUser sysUser1 = userInfo.getSysUser();
         HashMap<String, Object> map = new HashMap<>();
         map.put("token",tokenService.createToken(userInfo));
-        List<SysRole> roles = userInfo.getSysUser().getRoles();
-        if(CollectionUtils.isEmpty(roles)){
-            return R.fail("请关联角色!");
+        List<SysRole> roles = sysUser1.getRoles();
+        if (Objects.equals("00", sysUser1.getUserType())) {
+            if (CollectionUtils.isEmpty(roles)) {
+                return R.fail("请关联角色!");
+            }
+            map.put("roleName", roles.get(0).getRoleName());
         }
 
-        map.put("roleName",roles.get(0).getRoleName());
         map.put("info",userInfo);
-        map.put("userType", userInfo.getSysUser().getUserType());
+        map.put("userType", sysUser1.getUserType());
         // 修改用户最后登录时间
         SysUser sysUser = new SysUser();
-        sysUser.setUserId(userInfo.getSysUser().getUserId());
+        sysUser.setUserId(sysUser1.getUserId());
         sysUser.setLoginDate(new Date());
         System.out.println("修改用户登录时间"+sysUser);
         userClient.updateSysUser(sysUser);
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 b43bbfb..cbd7b2a 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
@@ -29,11 +29,22 @@
 import com.ruoyi.common.core.enums.ListingStatusEnum;
 import com.ruoyi.common.core.enums.OrderFromEnum;
 import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.page.BeanUtils;
 import com.ruoyi.common.core.utils.page.PageDTO;
 import com.ruoyi.system.api.constants.NotificationTypeConstant;
-import com.ruoyi.system.api.domain.*;
+import com.ruoyi.system.api.domain.AuctionGoods;
+import com.ruoyi.system.api.domain.CustomConfig;
+import com.ruoyi.system.api.domain.GoodsBrand;
+import com.ruoyi.system.api.domain.GoodsCategory;
+import com.ruoyi.system.api.domain.GoodsFlavorType;
+import com.ruoyi.system.api.domain.GoodsSeries;
+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.AuctionGoodsListDTO;
 import com.ruoyi.system.api.domain.dto.AuctionGoodsListPageDTO;
 import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO;
@@ -43,11 +54,14 @@
 import com.ruoyi.system.api.domain.dto.RefundDTO;
 import com.ruoyi.system.api.domain.vo.AuctionGoodsListVO;
 import com.ruoyi.system.api.domain.vo.AuctionGoodsinfoVO;
-import com.ruoyi.system.api.feignClient.*;
+import com.ruoyi.system.api.feignClient.AuctionClient;
+import com.ruoyi.system.api.feignClient.GoodsSkuClient;
+import com.ruoyi.system.api.feignClient.MemberClient;
+import com.ruoyi.system.api.feignClient.OrderClient;
+import com.ruoyi.system.api.feignClient.SysUserClient;
 import com.ruoyi.system.api.util.WebSocketUsers;
 import io.seata.spring.annotation.GlobalTransactional;
 import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
@@ -586,13 +600,15 @@
             this.lambdaUpdate().set(AuctionGoods::getStartStatus, AuctionStartStatusEnum.ENDED)
                     .eq(AuctionGoods::getId, id);
             // TODO 退保证金
+            orderClient.returnBondByAuctionGoodsId(id, SecurityConstants.INNER);
+
             Map<String, Object> map = new ConcurrentHashMap<>();
             map.put("notification_type", NotificationTypeConstant.AUCTION_GOODS);
-            map.put("notification_time", LocalDateTime.now());
+            map.put("notification_time", DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:ss"));
             map.put("target_id", id);
             map.put("message_type", "end");
             String msg = objectMapper.writeValueAsString(map);
-            WebSocketUsers.sendMessageToUsersByType(1, msg);
+            WebSocketUsers.sendMessageToUsersByType(ClientTypeEnum.MEMBER.getCode(), msg);
             log.info("===================>发送websocket通知,消息体{}", msg);
         }
     }
@@ -607,7 +623,7 @@
                     .eq(AuctionGoods::getId, id);
             Map<String, Object> map = new ConcurrentHashMap<>();
             map.put("notification_type", NotificationTypeConstant.AUCTION_GOODS);
-            map.put("notification_time", LocalDateTime.now());
+            map.put("notification_time", DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:ss"));
             map.put("target_id", id);
             map.put("message_type", "start");
             String msg = objectMapper.writeValueAsString(map);
@@ -630,4 +646,14 @@
         auctionGoods.setListingStatus(dto.getListingStatus());
         this.updateById(auctionGoods);
     }
+
+    public static void main(String[] args) throws JsonProcessingException {
+        Map<String, Object> map = new ConcurrentHashMap<>();
+        map.put("notification_type", NotificationTypeConstant.AUCTION_GOODS);
+        map.put("notification_time", DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:ss"));
+        map.put("target_id", 1);
+        map.put("message_type", "end");
+        String msg = objectMapper.writeValueAsString(map);
+        System.out.println(msg);
+    }
 }
diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java
index 078ae0f..e302efe 100644
--- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java
+++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java
@@ -23,7 +23,16 @@
 import com.ruoyi.common.core.enums.ClientTypeEnum;
 import com.ruoyi.common.core.enums.OrderFromEnum;
 import com.ruoyi.system.api.constants.NotificationTypeConstant;
-import com.ruoyi.system.api.domain.*;
+import com.ruoyi.system.api.domain.AuctionSalesroom;
+import com.ruoyi.system.api.domain.CustomConfig;
+import com.ruoyi.system.api.domain.GoodsBrand;
+import com.ruoyi.system.api.domain.GoodsCategory;
+import com.ruoyi.system.api.domain.GoodsFlavorType;
+import com.ruoyi.system.api.domain.GoodsSeries;
+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.dto.AuctionSalesroomDTO;
 import com.ruoyi.system.api.domain.dto.AuctionSalesroomGoodsInfoDTO;
 import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO;
@@ -419,7 +428,7 @@
 
      /*   Map<String, Object> map = new ConcurrentHashMap<>();
         map.put("notification_type", NotificationTypeConstant.AUCTION_SALESROOM_GOODS);
-        map.put("notification_time", LocalDateTime.now());
+        map.put("notification_time", DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:ss"));
         map.put("goodsSkuId", auctionSalesroomGoods.getId());
         map.put("message_type", "start");
         String msg = null;
@@ -487,7 +496,7 @@
 
       /*  Map<String, Object> map = new ConcurrentHashMap<>();
         map.put("notification_type", NotificationTypeConstant.AUCTION_SALESROOM_GOODS);
-        map.put("notification_time", LocalDateTime.now());
+        map.put("notification_time", DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:ss"));
         map.put("goodsSkuId", auctionSalesroomGoods.getId());
         map.put("message_type", "end");
         String msg = null;
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 4f10ab6..5fcea94 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
@@ -14,6 +14,7 @@
 import com.ruoyi.common.core.enums.OrderStatusEnum;
 import com.ruoyi.common.core.enums.StartStatusEnum;
 import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.page.BeanUtils;
 import com.ruoyi.common.core.utils.page.PageDTO;
@@ -41,7 +42,6 @@
 import com.ruoyi.system.api.domain.vo.WdGoodsGroupPurchaseVO;
 import com.ruoyi.system.api.feignClient.OrderClient;
 import com.ruoyi.system.api.util.WebSocketUsers;
-import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -212,7 +212,7 @@
                     .eq(GoodsGroupPurchase::getId, groupPurchaseId).update();
             Map<String, Object> map = new ConcurrentHashMap<>();
             map.put("notification_type", NotificationTypeConstant.GROUP_PURCHASE);
-            map.put("notification_time", LocalDateTime.now());
+            map.put("notification_time", DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:ss"));
             map.put("target_id", groupPurchaseId);
             map.put("message_type", "start");
             String msg = objectMapper.writeValueAsString(map);
@@ -236,7 +236,7 @@
                     .eq(GoodsGroupPurchase::getId, groupPurchaseId).update();
             Map<String, Object> map = new ConcurrentHashMap<>();
             map.put("notification_type", NotificationTypeConstant.GROUP_PURCHASE);
-            map.put("notification_time", LocalDateTime.now());
+            map.put("notification_time", DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:ss"));
             map.put("target_id", groupPurchaseId);
             map.put("message_type", "end");
             String msg = objectMapper.writeValueAsString(map);
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 415c5eb..5307822 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
@@ -13,6 +13,7 @@
 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.DateUtils;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.page.BeanUtils;
 import com.ruoyi.common.core.utils.page.PageDTO;
@@ -43,7 +44,6 @@
 import com.ruoyi.system.api.feignClient.OrderClient;
 import com.ruoyi.system.api.feignClient.SysUserClient;
 import com.ruoyi.system.api.util.WebSocketUsers;
-
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
@@ -54,12 +54,11 @@
 import java.util.Set;
 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;
 import org.springframework.transaction.annotation.Transactional;
-
-import javax.annotation.Resource;
 
 /**
  * <p>
@@ -218,7 +217,7 @@
         //推送秒杀开始消息
         Map<String, Object> map = new ConcurrentHashMap<>();
         map.put("notification_type", NotificationTypeConstant.SECKILL);
-        map.put("notification_time", LocalDateTime.now());
+        map.put("notification_time", DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:ss"));
         map.put("target_id", seckillId);
         map.put("message_type", "start");
         String msg = objectMapper.writeValueAsString(map);
@@ -245,7 +244,7 @@
         }
         Map<String, Object> map = new ConcurrentHashMap<>();
         map.put("notification_type", NotificationTypeConstant.SECKILL);
-        map.put("notification_time", LocalDateTime.now());
+        map.put("notification_time", DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:ss"));
         map.put("target_id", seckillId);
         map.put("message_type", "end");
         String msg = objectMapper.writeValueAsString(map);
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/InnerOrderAuctionBondController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/InnerOrderAuctionBondController.java
index 8bb8dfe..b3a83af 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/InnerOrderAuctionBondController.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/InnerOrderAuctionBondController.java
@@ -10,14 +10,25 @@
 import com.ruoyi.common.security.annotation.InnerAuth;
 import com.ruoyi.order.service.IOrderAuctionBondService;
 import com.ruoyi.system.api.domain.OrderAuctionBond;
-import com.ruoyi.system.api.domain.dto.*;
-
+import com.ruoyi.system.api.domain.dto.AuctionGoodsListDTO;
+import com.ruoyi.system.api.domain.dto.BondDTO;
+import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO;
+import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO;
+import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO;
+import com.ruoyi.system.api.domain.vo.PayInfoVO;
 import java.util.List;
 import javax.annotation.Resource;
-
-import com.ruoyi.system.api.domain.vo.PayInfoVO;
 import org.apache.poi.ss.formula.functions.T;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
 
 /**
  * <p>
@@ -172,5 +183,11 @@
         return R.ok();
 
     }
+
+    @GetMapping("/refund-bond/{id}")
+    public R<?> returnBondByAuctionGoodsId(@PathVariable("id") Long id) {
+        iOrderAuctionBondService.returnBondByAuctionGoodsId(id);
+        return R.ok();
+    }
     
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderAuctionBondService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderAuctionBondService.java
index 49f03de..13ab3b0 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderAuctionBondService.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderAuctionBondService.java
@@ -5,11 +5,10 @@
 import com.ruoyi.common.core.enums.AuctionOrderTypeEnum;
 import com.ruoyi.common.core.enums.BondStatusEnum;
 import com.ruoyi.system.api.domain.OrderAuctionBond;
-import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO;
 import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO;
-import java.util.List;
 import com.ruoyi.system.api.domain.vo.PayInfoVO;
+import java.util.List;
 import org.apache.poi.ss.formula.functions.T;
 import org.springframework.web.bind.annotation.RequestBody;
 
@@ -45,4 +44,6 @@
      * @param bondStatusEnum 保证金状态
      */
     void updateOrderAuctionBondStatus(List<Long> ids, BondStatusEnum bondStatusEnum);
+
+    void returnBondByAuctionGoodsId(Long id);
 }
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java
index 7d1f2cc..9ec9827 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java
@@ -20,10 +20,17 @@
 import com.ruoyi.system.api.domain.OrderAuctionBond;
 import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO;
 import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO;
+import com.ruoyi.system.api.domain.dto.RefundDTO;
 import com.ruoyi.system.api.domain.vo.PayInfoVO;
 import com.ruoyi.system.api.feignClient.AuctionClient;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.stream.Collectors;
 import javax.annotation.Resource;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.poi.ss.formula.functions.T;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
@@ -37,6 +44,7 @@
  * @author mitao
  * @since 2024-05-16
  */
+@Slf4j
 @Service
 public class OrderAuctionBondServiceImpl extends ServiceImpl<OrderAuctionBondMapper, OrderAuctionBond> implements IOrderAuctionBondService {
 
@@ -206,4 +214,42 @@
         }
         return payInfoVO;
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
+    public void returnBondByAuctionGoodsId(Long id) {
+        List<OrderAuctionBond> list = this.lambdaQuery().eq(OrderAuctionBond::getAuctionGoodsId, id)
+                .eq(OrderAuctionBond::getBoundStatus, BondStatusEnum.PAID).list();
+        Set<String> orderNoSet = list.stream().map(OrderAuctionBond::getOrderNo)
+                .collect(Collectors.toSet());
+        List<RefundDTO> refundDTOList = list.stream().map(item -> {
+            RefundDTO refundDTO = new RefundDTO();
+            refundDTO.setAmount(item.getBond());
+            refundDTO.setOrderNo(item.getOrderNo());
+            return refundDTO;
+        }).collect(Collectors.toList());
+        Map<String, Object> data = iPaylogService.refund(refundDTOList);
+        // 处理退款返回结果
+        List<String> successfulOrders = new ArrayList<>();
+        List<String> failedOrders = new ArrayList<>();
+
+        data.forEach((key, value) -> {
+            if ((boolean) value) {
+                successfulOrders.add(key);
+            } else {
+                failedOrders.add(key);
+            }
+        });
+        log.info("订单号:{},退款失败", failedOrders);
+        // 退款成功的订单修改状态
+        List<OrderAuctionBond> collect = list.stream().map(bond -> {
+            if (successfulOrders.contains(bond.getOrderNo())) {
+                bond.setBoundStatus(BondStatusEnum.REFUNDED);
+                return bond;
+            }
+            return null;
+        }).filter(Objects::nonNull).collect(Collectors.toList());
+        this.updateBatchById(collect);
+    }
+
 }
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 f99ba4f..78b7ccb 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
@@ -309,15 +309,16 @@
         if (StringUtils.isNull(sysUser)) {
             return R.fail("用户名或密码错误");
         }
-        // 角色集合
-        Set<String> roles = permissionService.getRolePermission(sysUser);
-        // 权限集合
-        Set<String> permissions = permissionService.getMenuPermission(sysUser);
         LoginUser sysUserVo = new LoginUser();
         sysUserVo.setSysUser(sysUser);
-        sysUserVo.setRoles(roles);
-        sysUserVo.setPermissions(permissions);
-
+        if (sysUser.getUserType().equals("00")) {
+            // 角色集合
+            Set<String> roles = permissionService.getRolePermission(sysUser);
+            // 权限集合
+            Set<String> permissions = permissionService.getMenuPermission(sysUser);
+            sysUserVo.setRoles(roles);
+            sysUserVo.setPermissions(permissions);
+        }
         return R.ok(sysUserVo);
     }
 
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/WebSocketTestController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/WebSocketTestController.java
index f9d1804..4108fb6 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/WebSocketTestController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/WebSocketTestController.java
@@ -2,6 +2,7 @@
 
 import com.ruoyi.system.api.util.WebSocketUsers;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -13,4 +14,9 @@
     public void push() {
         WebSocketUsers.sendMessageToUsersByText("长江长江,我是黄河!");
     }
+
+    @GetMapping("/push/{type}/{msg}")
+    public void push(@PathVariable("type") Integer type, @PathVariable("msg") String msg) {
+        WebSocketUsers.sendMessageToUsersByType(type, msg);
+    }
 }
\ No newline at end of file
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 6907e32..a4c03f9 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
@@ -584,7 +584,7 @@
         Page<SysUser> page = this.lambdaQuery()
                 .select(SysUser::getUserId, SysUser::getNickName, SysUser::getPhonenumber)
                 .like(StringUtils.isNotBlank(query.getNickName()
-                ), SysUser::getNickName, query.getNickName()).eq(SysUser::getUserType, "03")
+                ), SysUser::getNickName, query.getNickName()).eq(SysUser::getUserType, "04")
                 .eq(SysUser::getDelFlag, "0")
                 .page(new Page<>(query.getPageCurr(), query.getPageSize()));
         if (StringUtils.isEmpty(page.getRecords())) {
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/websocket/WebSocketServer.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/websocket/WebSocketServer.java
index 33ae939..009af79 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/websocket/WebSocketServer.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/websocket/WebSocketServer.java
@@ -38,9 +38,15 @@
             session.close();
         } else {
             WebSocketUsers.put(session.getId(), session, clientType);
-            LOGGER.info("\n 建立连接 - {}", session);
+
+            if (clientType == 1) {
+                LOGGER.info("\n 用户端建立连接 - {}", session);
+                WebSocketUsers.sendMessageToUserByText(session, "用户端连接成功");
+            } else if (clientType == 2) {
+                LOGGER.info("\n 拍卖师端建立连接 - {}", session);
+                WebSocketUsers.sendMessageToUserByText(session, "拍卖师端连接成功");
+            }
             LOGGER.info("\n 当前人数 - {}", WebSocketUsers.getUsers().size());
-            WebSocketUsers.sendMessageToUserByText(session, "连接成功");
         }
     }
 
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index 87d7e5f..7471f7f 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -25,6 +25,7 @@
         <result property="remark"       column="remark"       />
         <result property="roleType"       column="roleType"       />
         <result property="objectId"       column="objectId"       />
+			<result property="userType" column="user_type"/>
         <association property="dept"    column="dept_id" javaType="com.ruoyi.system.api.domain.SysDept" resultMap="deptResult" />
         <collection  property="roles"   javaType="java.util.List"           resultMap="RoleResult" />
     </resultMap>
@@ -59,7 +60,7 @@
 							 r.status   as role_status,
 							 u.roleType as roleType,
 							 u.objectId AS objectId,
-							 user_type
+							 u.user_type
         from sys_user u
 		    left join sys_dept d on u.dept_id = d.dept_id
 		    left join sys_user_role ur on u.user_id = ur.user_id
@@ -129,7 +130,6 @@
 		from sys_user
 		where phonenumber = #{phonenumber}
 			and del_flag = '0'
-			and user_type in ("00", "01")
 		limit 1
 	</select>
 	

--
Gitblit v1.7.1