rentaiming
2024-06-21 f8f263f9149586e9694559a79a8a6f74128b144a
Merge remote-tracking branch 'origin/master'
16个文件已修改
225 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/util/WebSocketUsers.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/InnerOrderAuctionBondController.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderAuctionBondService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/WebSocketTestController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/websocket/WebSocketServer.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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());
            }
        };
    }
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);
}
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();
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();
        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("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);
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);
    }
}
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;
@@ -427,7 +436,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");
        map.put("type",2);
@@ -497,7 +506,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");
        map.put("type",2);
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);
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);
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>
@@ -173,4 +184,10 @@
    }
    
    @GetMapping("/refund-bond/{id}")
    public R<?> returnBondByAuctionGoodsId(@PathVariable("id") Long id) {
        iOrderAuctionBondService.returnBondByAuctionGoodsId(id);
        return R.ok();
    }
}
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);
}
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);
    }
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
@@ -309,15 +309,16 @@
        if (StringUtils.isNull(sysUser)) {
            return R.fail("用户名或密码错误");
        }
        LoginUser sysUserVo = new LoginUser();
        sysUserVo.setSysUser(sysUser);
        if (sysUser.getUserType().equals("00")) {
        // 角色集合
        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);
        }
        return R.ok(sysUserVo);
    }
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);
    }
}
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())) {
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, "连接成功");
        }
    }
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>