mitao
2024-08-14 8dceb015ec8bd9642297d757e73936af84f4aaf1
修改bug
15个文件已修改
485 ■■■■■ 已修改文件
ruoyi-auth/src/main/resources/bootstrap.yml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-gateway/src/main/resources/bootstrap.yml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-article/src/main/resources/bootstrap.yml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionBondJl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/resources/bootstrap.yml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java 296 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/resources/bootstrap.yml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/resources/bootstrap.yml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-promotion/src/main/resources/bootstrap.yml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-auth/src/main/resources/bootstrap.yml
@@ -41,14 +41,14 @@
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 127.0.0.1:8848
        server-addr: 127.0.0.1:8888
        service: ${spring.application.name}
        group: DEFAULT_GROUP
        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
        namespace: 348e7dd1-5101-4c61-a8dd-d835a2a125ab
      config:
        # 配置中心地址
        server-addr: 127.0.0.1:8848
        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
        server-addr: 127.0.0.1:8888
        namespace: 348e7dd1-5101-4c61-a8dd-d835a2a125ab
        group: DEFAULT_GROUP
        name: ${spring.application.name}
        # 配置文件格式
ruoyi-gateway/src/main/resources/bootstrap.yml
@@ -56,14 +56,14 @@
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 127.0.0.1:8848
        server-addr: 127.0.0.1:8888
        service: ${spring.application.name}
        group: DEFAULT_GROUP
        namespace: c2f47d1c-6355-4a68-b357-7523d73b2d13
        namespace: 348e7dd1-5101-4c61-a8dd-d835a2a125ab
      config:
        # 配置中心地址
        server-addr: 127.0.0.1:8848
        namespace: c2f47d1c-6355-4a68-b357-7523d73b2d13
        server-addr: 127.0.0.1:8888
        namespace: 348e7dd1-5101-4c61-a8dd-d835a2a125ab
        group: DEFAULT_GROUP
        name: ${spring.application.name}
        # 配置文件格式
ruoyi-modules/ruoyi-article/src/main/resources/bootstrap.yml
@@ -41,14 +41,14 @@
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 192.168.110.188:8848
        server-addr: 127.0.0.1:8888
        service: ${spring.application.name}
        group: DEFAULT_GROUP
        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
        namespace: 348e7dd1-5101-4c61-a8dd-d835a2a125ab
      config:
        # 配置中心地址
        server-addr: 192.168.110.188:8848
        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
        server-addr: 127.0.0.1:8888
        namespace: 348e7dd1-5101-4c61-a8dd-d835a2a125ab
        group: DEFAULT_GROUP
        name: ${spring.application.name}
        # 配置文件格式
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionBondJl.java
@@ -3,7 +3,6 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.enums.AuctionOrderTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
@@ -42,7 +41,7 @@
    @ApiModelProperty(value = "保证金类型1=普通拍品 2=拍卖会拍品")
    private Integer bondType;
    @ApiModelProperty(value = "报名状态 0已报名 1未报名")
    private Integer isState;
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java
@@ -113,6 +113,7 @@
import java.util.function.Function;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpResponse;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.util.EntityUtils;
@@ -129,6 +130,7 @@
 * @author mitao
 * @since 2024-05-16
 */
@Slf4j
@Service
public class AuctionSalesroomServiceImpl extends ServiceImpl<AuctionSalesroomMapper, AuctionSalesroom> implements IAuctionSalesroomService {
@@ -1718,7 +1720,8 @@
        List<AuctionBidRecord> auctionBidRecordList = auctionBidRecordMapper.selectList(
                Wrappers.<AuctionBidRecord>lambdaQuery()
                        .eq(AuctionBidRecord::getAuctionSalesroomId, auctionSalesroomId)
                        .ne(AuctionBidRecord::getStatus, BidStatusEnum.SUCCESSFUL));
                        .eq(AuctionBidRecord::getStatus, BidStatusEnum.SUCCESSFUL));
        log.info("拍卖场{},已中标的用户:{}", auctionSalesroomId, auctionBidRecordList);
        Set<Long> memberIdList = new HashSet<>();
        if (CollUtils.isNotEmpty(auctionBidRecordList)) {
            memberIdList = auctionBidRecordList.stream().map(AuctionBidRecord::getMemberId)
ruoyi-modules/ruoyi-auction/src/main/resources/bootstrap.yml
@@ -41,14 +41,14 @@
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 192.168.110.188:8848
        server-addr: 127.0.0.1:8888
        service: ${spring.application.name}
        group: DEFAULT_GROUP
        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
        namespace: 348e7dd1-5101-4c61-a8dd-d835a2a125ab
      config:
        # 配置中心地址
        server-addr: 192.168.110.188:8848
        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
        server-addr: 127.0.0.1:8888
        namespace: 348e7dd1-5101-4c61-a8dd-d835a2a125ab
        group: DEFAULT_GROUP
        name: ${spring.application.name}
        # 配置文件格式
ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml
@@ -38,3 +38,27 @@
        # 共享配置
        shared-configs:
          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
---
spring:
  config:
    activate:
      on-profile: prod
  cloud:
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 127.0.0.1:8888
        service: ${spring.application.name}
        group: DEFAULT_GROUP
        namespace: 348e7dd1-5101-4c61-a8dd-d835a2a125ab
      config:
        # 配置中心地址
        server-addr: 127.0.0.1:8888
        namespace: 348e7dd1-5101-4c61-a8dd-d835a2a125ab
        group: DEFAULT_GROUP
        name: ${spring.application.name}
        # 配置文件格式
        file-extension: yml
        # 共享配置
        shared-configs:
          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
@@ -37,6 +37,7 @@
import com.ruoyi.system.api.domain.GoodsSku;
import com.ruoyi.system.api.domain.Order;
import com.ruoyi.system.api.domain.WebsocketMessageDTO;
import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO;
import com.ruoyi.system.api.domain.dto.HomeGoodsSkuDTO;
import com.ruoyi.system.api.domain.dto.ListStatusDTO;
import com.ruoyi.system.api.domain.dto.OrderDTO;
@@ -45,12 +46,14 @@
import com.ruoyi.system.api.domain.vo.GoodsGroupPurchaseInfoVO;
import com.ruoyi.system.api.domain.vo.OrderVO;
import com.ruoyi.system.api.domain.vo.WdGoodsGroupPurchaseVO;
import com.ruoyi.system.api.feignClient.GoodsSkuClient;
import com.ruoyi.system.api.feignClient.OrderClient;
import com.ruoyi.system.api.feignClient.SysUserClient;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor;
@@ -77,6 +80,7 @@
    private final IMemberGoodsCollectionService iMemberGoodsCollectionService;
    private final SysUserClient sysUserClient;
    private final IGoodsGroupPurchaseInfoService goodsGroupPurchaseInfoService;
    private final GoodsSkuClient goodsSkuClient;
    // 创建一个静态共享的ObjectMapper实例以重用
    private static final ObjectMapper objectMapper = new ObjectMapper();
    /**
@@ -248,7 +252,7 @@
    public void endGroupPurchase(Long groupPurchaseId) throws JsonProcessingException {
        log.info(">>>>>>>>>>>>>>>>>>>>{}团购商品结束团购<<<<<<<<<<<<<<<<<<<<", groupPurchaseId);
        GoodsGroupPurchase groupPurchase = this.getById(groupPurchaseId);
        boolean res = handleGroupPurchase(groupPurchaseId);
        boolean res = handleGroupPurchase(groupPurchase);
        if (StringUtils.isNotNull(groupPurchase)) {
            groupPurchase.setStartStatus(StartStatusEnum.ENDED);
            groupPurchase.setGroupStatus(
@@ -278,7 +282,7 @@
            throw new ServiceException("团购商品不存在");
        }
        // 处理未成团订单退款和成团订单修改展示状态
        boolean res = handleGroupPurchase(id);
        boolean res = handleGroupPurchase(groupPurchase);
        groupPurchase.setGroupStatus(
                res ? GroupStatusEnum.FORMED_INTO_A_GROUP : GroupStatusEnum.GROUP_FAILURE);
        groupPurchase.setStartStatus(StartStatusEnum.ENDED);
@@ -286,58 +290,80 @@
        this.updateById(groupPurchase);
    }
    private boolean handleGroupPurchase(Long id) {
    private boolean handleGroupPurchase(GoodsGroupPurchase groupPurchase) {
        Long id = groupPurchase.getId();
        // 查询参团记录
        List<GoodsGroupPurchaseInfo> groupPurchaseInfoList = goodsGroupPurchaseInfoService.lambdaQuery()
                .eq(GoodsGroupPurchaseInfo::getGroupPurchaseId, id).list();
        if (CollUtils.isNotEmpty(groupPurchaseInfoList)) {
            List<String> mubres = groupPurchaseInfoList.stream()
            // 筛选未成团的记录
            List<GoodsGroupPurchaseInfo> notGroupedInfoList = groupPurchaseInfoList.stream()
                    .filter(g -> g.getCurrentNumber()
                            < g.getGroupSize())
                    .map(GoodsGroupPurchaseInfo::getMubre).collect(
                    .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());
                    refundDTO.setAmount(order.getTotalAmount());
                    return refundDTO;
                }).collect(Collectors.toList());
                Map<String, Object> data = orderClient.refund(refundDTOList,
            // 回退未成团记录的商品库存
            if (CollUtils.isNotEmpty(notGroupedInfoList)) {
                Integer goodsStock = notGroupedInfoList.stream()
                        .map(GoodsGroupPurchaseInfo::getPurchaseNum)
                        .reduce(Integer::sum).orElse(0);
                GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
                goodsStockUpdDTO.setGoodsSkuId(groupPurchase.getGoodsSkuId());
                goodsStockUpdDTO.setAuctionStock(goodsStock);
                goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO),
                        SecurityConstants.INNER);
                // 根据唯一标识查询订单
                List<String> mubres = notGroupedInfoList.stream()
                        .map(GoodsGroupPurchaseInfo::getMubre)
                        .collect(
                                Collectors.toList());
                List<Order> orderList = orderClient.getOrderListByMubres(mubres,
                        SecurityConstants.INNER).getData();
                if (StringUtils.isNotEmpty(data)) {
                    // 处理退款返回结果
                    List<String> successfulOrders = new ArrayList<>();
                    List<String> failedOrders = new ArrayList<>();
                if (CollUtils.isNotEmpty(orderList)) {
                    List<RefundDTO> refundDTOList = orderList.stream().map(order -> {
                        RefundDTO refundDTO = new RefundDTO();
                        refundDTO.setOrderNo(order.getOrderNo());
                        refundDTO.setAmount(order.getTotalAmount());
                        return refundDTO;
                    }).collect(Collectors.toList());
                    Map<String, Object> data = orderClient.refund(refundDTOList,
                            SecurityConstants.INNER).getData();
                    if (StringUtils.isNotEmpty(data)) {
                        // 处理退款返回结果
                        List<String> successfulOrders = new ArrayList<>();
                        List<String> failedOrders = new ArrayList<>();
                    data.forEach((key, value) -> {
                        if ((boolean) value) {
                            successfulOrders.add(key);
                        } else {
                            failedOrders.add(key);
                        data.forEach((key, value) -> {
                            if ((boolean) value) {
                                successfulOrders.add(key);
                            } else {
                                failedOrders.add(key);
                            }
                        });
                        try {
                            log.info(
                                    "=============================退款结束=============================");
                            log.info("退款成功订单:{}",
                                    objectMapper.writeValueAsString(successfulOrders));
                            log.info("退款失败订单:{}",
                                    objectMapper.writeValueAsString(failedOrders));
                        } catch (JsonProcessingException e) {
                            throw new RuntimeException(e);
                        }
                    });
                    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()))
                                .peek(order -> {
                                    order.setOrderStatus(OrderStatusEnum.CANCELED);
                                }).collect(Collectors.toList());
                        List<OrderUpdDTO> orderUpdDTOS = BeanUtils.copyList(updateOrderList,
                                OrderUpdDTO.class);
                        orderClient.updateOrderList(orderUpdDTOS, SecurityConstants.INNER);
                    }
                    // 处理退款结果
                    List<Order> updateOrderList = orderList.stream()
                            .filter(order -> successfulOrders.contains(order.getOrderNo()))
                            .peek(order -> {
                                order.setOrderStatus(OrderStatusEnum.CANCELED);
                            }).collect(Collectors.toList());
                    List<OrderUpdDTO> orderUpdDTOS = BeanUtils.copyList(updateOrderList,
                            OrderUpdDTO.class);
                    orderClient.updateOrderList(orderUpdDTOS, SecurityConstants.INNER);
                }
            }
            // 已成团的记录更新订单状态
            List<String> formedGroupMubres = groupPurchaseInfoList.stream()
                    .filter(g -> g.getCurrentNumber()
                            >= g.getGroupSize())
@@ -362,7 +388,7 @@
        GoodsSku byId = goodsSkuService.getById(homeGoodsSkuDTO.getGoodsSkuId());
        LambdaQueryWrapper<GoodsGroupPurchase> wrapper3= Wrappers.lambdaQuery();
        wrapper3.eq(GoodsGroupPurchase::getDelFlag,0);
        wrapper3.eq(GoodsGroupPurchase::getGoodsSkuId,homeGoodsSkuDTO.getGoodsSkuId());
        wrapper3.eq(GoodsGroupPurchase::getId, homeGoodsSkuDTO.getId());
        wrapper3.eq(GoodsGroupPurchase::getListingStatus,0);
        List arr=new ArrayList<>();
        arr.add(0);
@@ -370,109 +396,117 @@
        wrapper3.in(GoodsGroupPurchase::getStartStatus,arr);
        GoodsGroupPurchase one = this.getOne(wrapper3);
        GoodsGroupPurchaseInfoVO  goodsGroupPurchaseInfoVO=new GoodsGroupPurchaseInfoVO();
        goodsGroupPurchaseInfoVO.setGoodsSkuId(one.getId());
        goodsGroupPurchaseInfoVO.setGoodsSkuName(byId.getSkuName());
        goodsGroupPurchaseInfoVO.setYears(String.valueOf(byId.getYears().getYear()));
        goodsGroupPurchaseInfoVO.setCoverPic(byId.getCoverPic());
        goodsGroupPurchaseInfoVO.setPrice(byId.getPrice());
        goodsGroupPurchaseInfoVO.setShareTitle(one.getShareTitle());
        goodsGroupPurchaseInfoVO.setGroupStatus(one.getGroupStatus());
        goodsGroupPurchaseInfoVO.setStartStatus(one.getStartStatus());
        goodsGroupPurchaseInfoVO.setStartTime(one.getStartTime());
        goodsGroupPurchaseInfoVO.setEndTime(one.getEndTime());
        goodsGroupPurchaseInfoVO.setSharePic(one.getSharePic());
        goodsGroupPurchaseInfoVO.setGroupPurchasePrice(one.getGroupPurchasePrice());
        goodsGroupPurchaseInfoVO.setGroupSize(one.getGroupSize());
        goodsGroupPurchaseInfoVO.setLimitNumber(one.getLimitNumber());
        if (Objects.nonNull(one)) {
            goodsGroupPurchaseInfoVO.setGoodsSkuId(one.getId());
            goodsGroupPurchaseInfoVO.setGoodsSkuName(byId.getSkuName());
            goodsGroupPurchaseInfoVO.setYears(String.valueOf(byId.getYears().getYear()));
            goodsGroupPurchaseInfoVO.setCoverPic(byId.getCoverPic());
            goodsGroupPurchaseInfoVO.setPrice(byId.getPrice());
            goodsGroupPurchaseInfoVO.setShareTitle(one.getShareTitle());
            goodsGroupPurchaseInfoVO.setGroupStatus(one.getGroupStatus());
            goodsGroupPurchaseInfoVO.setStartStatus(one.getStartStatus());
            goodsGroupPurchaseInfoVO.setStartTime(one.getStartTime());
            goodsGroupPurchaseInfoVO.setEndTime(one.getEndTime());
            goodsGroupPurchaseInfoVO.setSharePic(one.getSharePic());
            goodsGroupPurchaseInfoVO.setGroupPurchasePrice(one.getGroupPurchasePrice());
            goodsGroupPurchaseInfoVO.setGroupSize(one.getGroupSize());
            goodsGroupPurchaseInfoVO.setLimitNumber(one.getLimitNumber());
            if (one.getGroupStatus().getCode() == 0) {
                LambdaQueryWrapper<GoodsGroupPurchaseInfo> wrapper6 = Wrappers.lambdaQuery();
                wrapper6.eq(GoodsGroupPurchaseInfo::getDelFlag, 0);
                wrapper6.eq(GoodsGroupPurchaseInfo::getGroupStatus, 0);
                wrapper6.eq(GoodsGroupPurchaseInfo::getGroupPurchaseId, one.getId());
                GoodsGroupPurchaseInfo one1 = goodsGroupPurchaseInfoService.getOne(wrapper6);
                if (one1 != null) {
                    goodsGroupPurchaseInfoVO.setCurrentNumber(one1.getCurrentNumber());
                    if (one1.getGroupStatus() == 0) {
                        goodsGroupPurchaseInfoVO.setGroupStatus(GroupStatusEnum.TO_FORM_A_GROUP);
                    }
                    if (one1.getGroupStatus() == 1) {
                        goodsGroupPurchaseInfoVO.setGroupStatus(
                                GroupStatusEnum.FORMED_INTO_A_GROUP);
                    }
                    if (one1.getGroupStatus() == 2) {
                        goodsGroupPurchaseInfoVO.setGroupStatus(GroupStatusEnum.GROUP_FAILURE);
                    }
        if (one.getGroupStatus().getCode()==0){
            LambdaQueryWrapper<GoodsGroupPurchaseInfo> wrapper6= Wrappers.lambdaQuery();
            wrapper6.eq(GoodsGroupPurchaseInfo::getDelFlag,0);
            wrapper6.eq(GoodsGroupPurchaseInfo::getGroupStatus,0);
            wrapper6.eq(GoodsGroupPurchaseInfo::getGroupPurchaseId,one.getId());
            GoodsGroupPurchaseInfo one1 = goodsGroupPurchaseInfoService.getOne(wrapper6);
            if (one1!=null){
                goodsGroupPurchaseInfoVO.setCurrentNumber(one1.getCurrentNumber());
                if (one1.getGroupStatus()==0){
                    goodsGroupPurchaseInfoVO.setGroupStatus(GroupStatusEnum.TO_FORM_A_GROUP);
                }if(one1.getGroupStatus()==1){
                    goodsGroupPurchaseInfoVO.setGroupStatus(GroupStatusEnum.FORMED_INTO_A_GROUP);
                }if(one1.getGroupStatus()==2){
                    goodsGroupPurchaseInfoVO.setGroupStatus(GroupStatusEnum.GROUP_FAILURE);
                } else {
                    goodsGroupPurchaseInfoVO.setCurrentNumber(one.getCurrentNumber());
                    goodsGroupPurchaseInfoVO.setGroupStatus(one.getGroupStatus());
                }
            }else{
            } else {
                goodsGroupPurchaseInfoVO.setCurrentNumber(one.getCurrentNumber());
                goodsGroupPurchaseInfoVO.setGroupStatus(one.getGroupStatus());
            }
        }else{
            goodsGroupPurchaseInfoVO.setCurrentNumber(one.getCurrentNumber());
            goodsGroupPurchaseInfoVO.setGroupStatus(one.getGroupStatus());
        }
        goodsGroupPurchaseInfoVO.setStartTime(one.getStartTime());
        goodsGroupPurchaseInfoVO.setEndTime(one.getEndTime());
        goodsGroupPurchaseInfoVO.setDescription(one.getDescription());
        goodsGroupPurchaseInfoVO.setDetail(byId.getDescription());
            goodsGroupPurchaseInfoVO.setStartTime(one.getStartTime());
            goodsGroupPurchaseInfoVO.setEndTime(one.getEndTime());
            goodsGroupPurchaseInfoVO.setDescription(one.getDescription());
            goodsGroupPurchaseInfoVO.setDetail(byId.getDescription());
        goodsGroupPurchaseInfoVO.setListingStatus(one.getListingStatus());
            goodsGroupPurchaseInfoVO.setListingStatus(one.getListingStatus());
        LambdaQueryWrapper<MemberGoodsCollection> wrapper4= Wrappers.lambdaQuery();
        wrapper4.eq(MemberGoodsCollection::getDelFlag,0);
        wrapper4.eq(MemberGoodsCollection::getMemberId,homeGoodsSkuDTO.getMemberId());
        wrapper4.eq(MemberGoodsCollection::getTargetId,one.getId());
        wrapper4.eq(MemberGoodsCollection::getType,1);
        List<MemberGoodsCollection> list = iMemberGoodsCollectionService.list(wrapper4);
        if (list.size()>0){
            goodsGroupPurchaseInfoVO.setIsCollection(2);
        }else{
            goodsGroupPurchaseInfoVO.setIsCollection(1);
        }
        HomeGoodsSkuDTO homeGoodsSkuDTO1=new HomeGoodsSkuDTO();
        homeGoodsSkuDTO1.setGoodsSkuId(one.getId());
        homeGoodsSkuDTO1.setMemberId(homeGoodsSkuDTO.getMemberId());
        Order data = orderClient.getOrderByGroupPurchaseMemberId2(homeGoodsSkuDTO1, SecurityConstants.INNER).getData();
        if (data!=null){
            goodsGroupPurchaseInfoVO.setIsGoodsGroupPurchase(2);
            goodsGroupPurchaseInfoVO.setOrder(data);
            goodsGroupPurchaseInfoVO.setGroupStatus(GroupStatusEnum.YCT_FAILURE);
            LambdaQueryWrapper<GoodsGroupPurchaseInfo> wrapper7= Wrappers.lambdaQuery();
            wrapper7.eq(GoodsGroupPurchaseInfo::getMubre,data.getGroupNo());
            GoodsGroupPurchaseInfo one7 = goodsGroupPurchaseInfoService.getOne(wrapper7);
            if (one7!=null){
                goodsGroupPurchaseInfoVO.setCurrentNumber(one7.getCurrentNumber());
                if (one7.getGroupStatus()==0){
                    if (one7.getGroupSize()-one7.getCurrentNumber()<5){
                        goodsGroupPurchaseInfoVO.setGroupStatus(GroupStatusEnum.MS_FAILURE);
                    }else{
                        goodsGroupPurchaseInfoVO.setGroupStatus(GroupStatusEnum.TO_FORM_A_GROUP);
                    }
                }if(one7.getGroupStatus()==1){
                    goodsGroupPurchaseInfoVO.setGroupStatus(GroupStatusEnum.FORMED_INTO_A_GROUP);
                }if(one7.getGroupStatus()==2){
                    goodsGroupPurchaseInfoVO.setGroupStatus(GroupStatusEnum.GROUP_FAILURE);
                }
            LambdaQueryWrapper<MemberGoodsCollection> wrapper4 = Wrappers.lambdaQuery();
            wrapper4.eq(MemberGoodsCollection::getDelFlag, 0);
            wrapper4.eq(MemberGoodsCollection::getMemberId, homeGoodsSkuDTO.getMemberId());
            wrapper4.eq(MemberGoodsCollection::getTargetId, one.getId());
            wrapper4.eq(MemberGoodsCollection::getType, 1);
            List<MemberGoodsCollection> list = iMemberGoodsCollectionService.list(wrapper4);
            if (list.size() > 0) {
                goodsGroupPurchaseInfoVO.setIsCollection(2);
            } else {
                goodsGroupPurchaseInfoVO.setIsCollection(1);
            }
        }else{
            if (one.getGroupStatus().getCode()==0){
                if (one.getGroupSize()>5){
                    if (one.getGroupSize()-one.getCurrentNumber()<5){
                        goodsGroupPurchaseInfoVO.setGroupStatus(GroupStatusEnum.MS_FAILURE);
                    }else{
            HomeGoodsSkuDTO homeGoodsSkuDTO1 = new HomeGoodsSkuDTO();
            homeGoodsSkuDTO1.setGoodsSkuId(one.getId());
            homeGoodsSkuDTO1.setMemberId(homeGoodsSkuDTO.getMemberId());
            Order data = orderClient.getOrderByGroupPurchaseMemberId2(homeGoodsSkuDTO1,
                    SecurityConstants.INNER).getData();
            if (data != null) {
                goodsGroupPurchaseInfoVO.setIsGoodsGroupPurchase(2);
                goodsGroupPurchaseInfoVO.setOrder(data);
                goodsGroupPurchaseInfoVO.setGroupStatus(GroupStatusEnum.YCT_FAILURE);
                LambdaQueryWrapper<GoodsGroupPurchaseInfo> wrapper7 = Wrappers.lambdaQuery();
                wrapper7.eq(GoodsGroupPurchaseInfo::getMubre, data.getGroupNo());
                GoodsGroupPurchaseInfo one7 = goodsGroupPurchaseInfoService.getOne(wrapper7);
                if (one7 != null) {
                    goodsGroupPurchaseInfoVO.setCurrentNumber(one7.getCurrentNumber());
                    if (one7.getGroupStatus() == 0) {
                        if (one7.getGroupSize() - one7.getCurrentNumber() < 5) {
                            goodsGroupPurchaseInfoVO.setGroupStatus(GroupStatusEnum.MS_FAILURE);
                        } else {
                            goodsGroupPurchaseInfoVO.setGroupStatus(
                                    GroupStatusEnum.TO_FORM_A_GROUP);
                        }
                    }
                    if (one7.getGroupStatus() == 1) {
                        goodsGroupPurchaseInfoVO.setGroupStatus(
                                GroupStatusEnum.FORMED_INTO_A_GROUP);
                    }
                    if (one7.getGroupStatus() == 2) {
                        goodsGroupPurchaseInfoVO.setGroupStatus(GroupStatusEnum.GROUP_FAILURE);
                    }
                }
            } else {
                if (one.getGroupStatus().getCode() == 0) {
                    if (one.getGroupSize() > 5) {
                        if (one.getGroupSize() - one.getCurrentNumber() < 5) {
                            goodsGroupPurchaseInfoVO.setGroupStatus(GroupStatusEnum.MS_FAILURE);
                        } else {
                            goodsGroupPurchaseInfoVO.setGroupStatus(one.getGroupStatus());
                        }
                    } else {
                        goodsGroupPurchaseInfoVO.setGroupStatus(one.getGroupStatus());
                    }
                }else{
                } else {
                    goodsGroupPurchaseInfoVO.setGroupStatus(one.getGroupStatus());
                }
            }else {
                goodsGroupPurchaseInfoVO.setGroupStatus(one.getGroupStatus());
                goodsGroupPurchaseInfoVO.setIsGoodsGroupPurchase(1);
            }
            goodsGroupPurchaseInfoVO.setIsGoodsGroupPurchase(1);
        }
        return goodsGroupPurchaseInfoVO;
    }
ruoyi-modules/ruoyi-goods/src/main/resources/bootstrap.yml
@@ -41,14 +41,14 @@
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 127.0.0.1:8848
        server-addr: 127.0.0.1:8888
        service: ${spring.application.name}
        group: DEFAULT_GROUP
        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
        namespace: 348e7dd1-5101-4c61-a8dd-d835a2a125ab
      config:
        # 配置中心地址
        server-addr: 127.0.0.1:8848
        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
        server-addr: 127.0.0.1:8888
        namespace: 348e7dd1-5101-4c61-a8dd-d835a2a125ab
        group: DEFAULT_GROUP
        name: ${spring.application.name}
        # 配置文件格式
ruoyi-modules/ruoyi-member/src/main/resources/bootstrap.yml
@@ -41,14 +41,14 @@
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 127.0.0.1:8848
        server-addr: 127.0.0.1:8888
        service: ${spring.application.name}
        group: DEFAULT_GROUP
        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
        namespace: 348e7dd1-5101-4c61-a8dd-d835a2a125ab
      config:
        # 配置中心地址
        server-addr: 127.0.0.1:8848
        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
        server-addr: 127.0.0.1:8888
        namespace: 348e7dd1-5101-4c61-a8dd-d835a2a125ab
        group: DEFAULT_GROUP
        name: ${spring.application.name}
        # 配置文件格式
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java
@@ -77,25 +77,29 @@
            wrapper1.last("limit 1");
            Paylog paylog = iPaylogService.getOne(wrapper1);
            log.info("paylog:{}", paylog);
            if (paylog.getPayType() == 1) {//支付宝
                boolean bo = paylogServiceImpl.refundForAlipay(paylog.getOutTradeNo(), paylog.getTradeNo(), orderAuctionBond.getBond().doubleValue());
                if (!bo) {
                    return R.fail("支付宝退款失败!");
            if (Objects.nonNull(paylog)) {
                if (paylog.getPayType() == 1) {// 支付宝
                    boolean bo = paylogServiceImpl.refundForAlipay(paylog.getOutTradeNo(),
                            paylog.getTradeNo(), orderAuctionBond.getBond().doubleValue());
                    if (!bo) {
                        return R.fail("支付宝退款失败!");
                    }
                } else {// 微信
                    String refundMoney = SinataUtil.doubleRetainTwo(paylog.getPayMoney() * 100d);
                    Integer refundFee = Integer.parseInt(
                            refundMoney.substring(0, refundMoney.length() - 3));
                    String money = SinataUtil.doubleRetainTwo(paylog.getPayMoney() * 100d);
                    Integer totalFee = Integer.parseInt(money.substring(0, money.length() - 3));
                    refundFee = Integer.parseInt(money.substring(0, money.length() - 3));
                    String refundNo = OrderUtil.getOrderNoForPrefix("R");
                    boolean bo = paylogServiceImpl.refundForWxpay(4, paylog.getTradeNo(),
                            paylog.getOutTradeNo(), refundNo, totalFee, refundFee, "2");
                    if (!bo) {
                        return R.fail("微信退款失败!");
                    }
                }
            } else {//微信
                String refundMoney = SinataUtil.doubleRetainTwo(paylog.getPayMoney() * 100d);
                Integer refundFee = Integer.parseInt(refundMoney.substring(0, refundMoney.length() - 3));
                String money = SinataUtil.doubleRetainTwo(paylog.getPayMoney() * 100d);
                Integer totalFee = Integer.parseInt(money.substring(0, money.length() - 3));
                refundFee = Integer.parseInt(money.substring(0, money.length() - 3));
                String refundNo = OrderUtil.getOrderNoForPrefix("R");
                boolean bo = paylogServiceImpl.refundForWxpay(4, paylog.getTradeNo(),
                        paylog.getOutTradeNo(), refundNo, totalFee, refundFee, "2");
                if (!bo) {
                    return R.fail("微信退款失败!");
                }
                orderAuctionBond.setBoundStatus(BondStatusEnum.REFUNDED);
            }
            orderAuctionBond.setBoundStatus(BondStatusEnum.REFUNDED);
        }
        this.updateBatchById(orderAuctionBondList);
        return R.ok();
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -21,6 +21,7 @@
import com.ruoyi.common.core.enums.PointStatusEnum;
import com.ruoyi.common.core.enums.RequestTypeEnum;
import com.ruoyi.common.core.enums.ReturnRequestStatusEnum;
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;
@@ -983,6 +984,12 @@
                    goodsStockUpdDTO1.setSoldQuantity(data.getSoldQuantity()-order.getGoodsQuantity());
                }
                goodsSkuClient.updGoodsSeckill(goodsStockUpdDTO1,SecurityConstants.INNER);
                if (data.getStartStatus().equals(StartStatusEnum.ENDED)) {
                    GoodsStockUpdDTO dto = new GoodsStockUpdDTO();
                    dto.setGoodsSkuId(data.getGoodsSkuId());
                    dto.setAuctionStock(order.getGoodsQuantity());
                    goodsSkuClient.updGoodsStock(Lists.newArrayList(dto), SecurityConstants.INNER);
                }
            }
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java
@@ -13,9 +13,11 @@
import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.enums.BondStatusEnum;
import com.ruoyi.common.core.enums.OrderFromEnum;
import com.ruoyi.common.core.enums.OrderStatusEnum;
import com.ruoyi.common.core.enums.PaymentMethodEnum;
import com.ruoyi.common.core.enums.PointStatusEnum;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.order.domain.Paylog;
import com.ruoyi.order.mapper.OrderAuctionBondMapper;
@@ -30,6 +32,7 @@
import com.ruoyi.order.util.tencent.common.XMLParser;
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.Order;
@@ -52,6 +55,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.SortedMap;
@@ -117,11 +121,6 @@
                    wrapper1.eq(OrderAuctionBond::getOrderNo,orderNO);
                    wrapper1.eq(OrderAuctionBond::getDelFlag,0);
                    OrderAuctionBond one1 = orderAuctionBondMapper.selectOne(wrapper1);
                    one1.setBoundStatus(BondStatusEnum.PAID);
                    one1.setPaymentMethod(paymentMethodEnum);
                    orderAuctionBondMapper.updateById(one1);
                    if (one1.getBond()==null||one1.getBond().compareTo(new BigDecimal(0))==0){
                        one1.setBoundStatus(BondStatusEnum.PAID);
                        Map<String, Object> returnMap = new HashMap<>();
@@ -136,17 +135,44 @@
                    wrapper1.eq(Order::getOrderNo,orderNO);
                    wrapper1.eq(Order::getDelFlag,0);
                    Order page1 = OrderMapper.selectOne(wrapper1);
                    page1.setOrderStatus(OrderStatusEnum.TO_BE_SHIPPED);
                    page1.setPaymentMethod(paymentMethodEnum);
                    page1.setPayTime(LocalDateTime.now());
                    OrderMapper.updateById(page1);
                    // 判断商品库存
                    Long goodsSkuId = page1.getGoodsSkuId();
                    OrderFromEnum orderFrom = page1.getOrderFrom();
                    switch (orderFrom) {
                        case COMMODITY_ORDER:
                            GoodsSku goods = goodsSkuClient.getGoodsSkuOne(goodsSkuId,
                                    SecurityConstants.INNER).getData();
                            if (Objects.isNull(goods)) {
                                throw new ServiceException("该商品已下架");
                            }
                            if (goods.getStock() <= 0) {
                                throw new ServiceException("该商品已售罄");
                            }
                            if (goods.getStock() < page1.getGoodsQuantity()) {
                                throw new ServiceException("该商品库存不足");
                            }
                            break;
                        case SNAP_ORDERS:
                            GoodsSeckill data = goodsSkuClient.getGoodsSeckillOne(goodsSkuId,
                                    SecurityConstants.INNER).getData();
                            if (Objects.isNull(data)) {
                                throw new ServiceException("该商品已下架");
                            }
                            if (data.getSeckillStock() <= 0) {
                                throw new ServiceException("该商品已售罄");
                            }
                            if (data.getSeckillStock() < page1.getGoodsQuantity()) {
                                throw new ServiceException("该商品库存不足");
                            }
                            break;
                        default:
                            break;
                    }
                    if (page1.getTotalAmount().compareTo(new BigDecimal(0))==0){
                        Map<String, Object> returnMap = new HashMap<>();
                        returnMap.put("Type",1);
                        return R.ok(returnMap);
                    }
                    OrderMapper.updateById(page1);
                    if (page1.getPoints()!=0){
                        MemberPointsDTO memberPointsDTO=new MemberPointsDTO();
                        memberPointsDTO.setMemberId(page1.getMemberId());
ruoyi-modules/ruoyi-promotion/src/main/resources/bootstrap.yml
@@ -42,14 +42,14 @@
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 127.0.0.1:8848
        server-addr: 127.0.0.1:8888
        service: ${spring.application.name}
        group: DEFAULT_GROUP
        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
        namespace: 348e7dd1-5101-4c61-a8dd-d835a2a125ab
      config:
        # 配置中心地址
        server-addr: 127.0.0.1:8848
        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
        server-addr: 127.0.0.1:8888
        namespace: 348e7dd1-5101-4c61-a8dd-d835a2a125ab
        group: DEFAULT_GROUP
        name: ${spring.application.name}
        # 配置文件格式
ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
@@ -41,14 +41,14 @@
    nacos:
      discovery:
        # 服务注册地址
        server-addr: 127.0.0.1:8848
        server-addr: 127.0.0.1:8888
        service: ${spring.application.name}
        group: DEFAULT_GROUP
        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
        namespace: 348e7dd1-5101-4c61-a8dd-d835a2a125ab
      config:
        # 配置中心地址
        server-addr: 127.0.0.1:8848
        namespace: 3452d750-b08d-4485-a1e9-4fb0548f1fc2
        server-addr: 127.0.0.1:8888
        namespace: 348e7dd1-5101-4c61-a8dd-d835a2a125ab
        group: DEFAULT_GROUP
        name: ${spring.application.name}
        # 配置文件格式