mitao
2024-08-16 d7dc4db8d005a58f51d21d35147317762a16373f
修改bug
1 文件已重命名
1个文件已添加
32个文件已修改
915 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionBondJl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Member.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/AuctionFallbackFactory.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/MemberFallbackFactory.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/AuctionClient.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/MemberClient.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-gateway/target/classes/bootstrap.yml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberArticleCollectionServiceImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomController.java 104 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/inner/AuctionBondJlController.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/inner/AuctionSalesroomController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionBondJlMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionBondJlService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionBondJlServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionBrowseRecordServiceImpl.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsGroupPurchaseController.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/MemberGoodsCollectionServiceImpl.java 102 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/inner/MemberController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/IMemberService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberServiceImpl.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/forepart/ForepartPaylogController.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/LogisticsServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java 343 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionBondJl.java
File was renamed from ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionBondJl.java
@@ -1,4 +1,4 @@
package com.ruoyi.auction.domain;
package com.ruoyi.system.api.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Member.java
@@ -6,6 +6,7 @@
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.ruoyi.common.core.enums.GenderEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -15,7 +16,6 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.annotation.JsonInclude;
/**
 * <p>
 * 会员表
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/AuctionFallbackFactory.java
@@ -2,6 +2,7 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.api.domain.AppMiniLoginVO;
import com.ruoyi.system.api.domain.AuctionBondJl;
import com.ruoyi.system.api.domain.AuctionGoods;
import com.ruoyi.system.api.domain.AuctionSalesroom;
import com.ruoyi.system.api.domain.AuctionSalesroomGoods;
@@ -84,6 +85,17 @@
                    String source) {
                return R.fail("获取拍卖会商品失败" + cause.getMessage());
            }
            @Override
            public R<AuctionBondJl> getAuctionBondJLByTargetId(Long targetId, Long memberId,
                    Integer bondType, String source) {
                return R.fail("获取拍卖参与记录失败" + cause.getMessage());
            }
            @Override
            public R<?> saveOrUpdateAuctionBondJl(AuctionBondJl auctionBondJl, String source) {
                return R.fail("保存拍卖参与记录失败" + cause.getMessage());
            }
        };
    }
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/MemberFallbackFactory.java
@@ -68,6 +68,11 @@
                    String source) {
                return R.fail("获取用户列表失败:" + cause.getMessage());
            }
            @Override
            public R<Member> getMemberByUserId(Long userId, String source) {
                return R.fail("获取用户信息失败:" + cause.getMessage());
            }
        };
        }
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/AuctionClient.java
@@ -4,6 +4,7 @@
import com.ruoyi.common.core.constant.ServiceNameConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.api.domain.AppMiniLoginVO;
import com.ruoyi.system.api.domain.AuctionBondJl;
import com.ruoyi.system.api.domain.AuctionGoods;
import com.ruoyi.system.api.domain.AuctionSalesroom;
import com.ruoyi.system.api.domain.AuctionSalesroomGoods;
@@ -21,6 +22,7 @@
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.RequestParam;
@FeignClient(contextId = "auctionClient", value = ServiceNameConstants.RUOYI_AUCTION, fallbackFactory = AuctionFallbackFactory.class)
public interface AuctionClient {
@@ -70,4 +72,22 @@
    R<AuctionSalesroomGoods> getAuctionSalesroomGoodsById(
            @PathVariable("goodsSkuId") Long goodsSkuId,
            @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
    @GetMapping("/auction-salesroom/getAuctionBondJLByTargetId")
    R<AuctionBondJl> getAuctionBondJLByTargetId(
            @RequestParam("targetId") Long targetId,
            @RequestParam("memberId") Long memberId,
            @RequestParam("bondType") Integer bondType,
            @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
    /**
     * 保存更新拍卖报名记录
     *
     * @param auctionBondJl
     * @param source
     * @return
     */
    @PostMapping("/auction-bond-jl/saveOrUpdateAuctionBondJl")
    R<?> saveOrUpdateAuctionBondJl(@RequestBody AuctionBondJl auctionBondJl,
            @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/MemberClient.java
@@ -14,6 +14,8 @@
import java.util.Collection;
import java.util.List;
import org.springframework.cloud.openfeign.FeignClient;
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.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
@@ -50,4 +52,8 @@
    @PostMapping("/member/list-by-level")
    R<List<Member>> getMemberListByLevel(@RequestBody List<String> memberLevelList,
            @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
    @GetMapping("/member/getMemberByUserId/{userId}")
    R<Member> getMemberByUserId(@PathVariable("userId") Long userId,
            @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
}
ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
@@ -1,25 +1,31 @@
package com.ruoyi.auth.controller;
import cn.hutool.core.util.RandomUtil;
import com.google.common.collect.Lists;
import com.ruoyi.auth.form.ChangePasswordBody;
import com.ruoyi.auth.form.LoginBody;
import com.ruoyi.auth.form.RegisterBody;
import com.ruoyi.auth.service.SysLoginService;
import com.ruoyi.auth.utils.JuTongDaSMSUtil;
import com.ruoyi.common.core.constant.CacheConstants;
import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.JwtUtils;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.page.CollUtils;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.annotation.InnerAuth;
import com.ruoyi.common.security.auth.AuthUtil;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.domain.AppMiniLoginVO;
import com.ruoyi.system.api.domain.Member;
import com.ruoyi.system.api.domain.SysRole;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO;
import com.ruoyi.system.api.feignClient.MemberClient;
import com.ruoyi.system.api.feignClient.SysUserClient;
import com.ruoyi.system.api.model.LoginUser;
import io.swagger.annotations.Api;
@@ -27,8 +33,11 @@
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -60,7 +69,10 @@
    private SysUserClient userClient;
    @Autowired
    private RedisService redisService;
    @Resource
    private SysUserClient sysUserClient;
    @Resource
    private MemberClient memberClient;
    @ApiOperation("小程序登录")
@@ -201,6 +213,34 @@
                changePasswordBody.getPassword(), changePasswordBody.getVerificationCode());
        return R.ok();
    }
    @GetMapping("access-token")
    @ApiOperation(value = "获取accessToken")
    public AjaxResult getAccessToken() {
        // List<Member> memberListByIds = memberClient.getMemberListByIds(
        //                 Lists.newArrayList(1821462999835160577L, 1821743236321980417L,
        //                         1821757052577460226L, 1821833986934124545L, 1822807281414254593L,
        //                         1823168855446466562L, 1823174222863740930L, 1823174926122692610L,
        //                         1823187615653900289L, 1823233301862756353L), SecurityConstants.INNER)
        //         .getData();
        List<Member> memberListByIds = memberClient.getMemberListByIds(
                        Lists.newArrayList(1797556140608446465L, 1797810418820390913L,
                                1798197038803324929L, 1800411185637076994L), SecurityConstants.INNER)
                .getData();
        List<Map<String, Object>> memberList = CollUtils.emptyList();
        if (CollUtils.isNotEmpty(memberListByIds)) {
            AppMiniLoginVO appMiniLoginVo = new AppMiniLoginVO();
            memberList = memberListByIds.stream().map(item -> {
                SysUser sysUser = sysUserClient.getSysUser(item.getUserId()).getData();
                appMiniLoginVo.setZfbuserid(item.getZfbOpenid());
                appMiniLoginVo.setSysUser(sysUser);
                appMiniLoginVo.setMemberid(item.getId());
                appMiniLoginVo.setSysUser(sysUser);
                return tokenService.createMiniToken(appMiniLoginVo);
            }).collect(Collectors.toList());
        }
        return AjaxResult.success(memberList);
    }
}
ruoyi-gateway/target/classes/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/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java
@@ -31,6 +31,7 @@
import com.ruoyi.common.core.utils.page.BeanUtils;
import com.ruoyi.common.core.utils.page.CollUtils;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.domain.Member;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.domain.dto.MemberDTO;
@@ -212,6 +213,8 @@
    @Override
    public PageDTO<ArticleCommentsVO> getArticleCommentsList(ArticleDTO articleDTO) {
        Long userId = SecurityUtils.getUserId();
        Member member = memberClient.getMemberByUserId(userId, SecurityConstants.INNER).getData();
        Page<ArticleComments> page = new Page<>(articleDTO.getPageCurr(), articleDTO.getPageSize());
        LambdaQueryWrapper< ArticleComments> wrapper= Wrappers.lambdaQuery();
        wrapper.eq(ArticleComments::getArticleId,articleDTO.getId());
@@ -236,7 +239,7 @@
                }
                LambdaQueryWrapper<MemberLike> wrapper1= Wrappers.lambdaQuery();
                wrapper1.eq(MemberLike::getMemberId,articleCommentsVO.getMemberId());
                wrapper1.eq(MemberLike::getMemberId, member.getId());
                wrapper1.eq(MemberLike::getArticleId,articleCommentsVO.getId());
                wrapper1.eq(MemberLike::getType,2);
                wrapper1.eq( MemberLike::getDelFlag,0);
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberArticleCollectionServiceImpl.java
@@ -4,27 +4,24 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.article.domain.Article;
import com.ruoyi.article.domain.MemberArticleCollection;
import com.ruoyi.article.controller.forepart.dto.ArticleDTO;
import com.ruoyi.article.controller.forepart.dto.MemberArticleCollectionDTO;
import com.ruoyi.article.controller.forepart.vo.MemberArticleCollectionVO;
import com.ruoyi.article.domain.Article;
import com.ruoyi.article.domain.MemberArticleCollection;
import com.ruoyi.article.mapper.ArticleMapper;
import com.ruoyi.article.mapper.MemberArticleCollectionMapper;
import com.ruoyi.article.service.IMemberArticleCollectionService;
import com.ruoyi.article.controller.forepart.vo.MemberArticleCollectionVO;
import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.system.api.domain.GoodsGroupPurchase;
import com.ruoyi.system.api.domain.GoodsSku;
import com.ruoyi.system.api.domain.Member;
import com.ruoyi.system.api.domain.dto.AuctionGoodsListPageDTO;
import com.ruoyi.system.api.feignClient.MemberClient;
import java.util.HashSet;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
import javax.annotation.Resource;
@@ -117,6 +114,9 @@
        List<MemberArticleCollectionVO> list2 = articleCommentsVOPageDTO.getList();
        for (MemberArticleCollectionVO memberArticleCollectionVO:list2){
            Article byId = articleMapper.selectById(memberArticleCollectionVO.getTargetId());
            if (Objects.isNull(byId)) {
                continue;
            }
            memberArticleCollectionVO.setContent(byId.getContent());
            memberArticleCollectionVO.setImages(byId.getImages());
            memberArticleCollectionVO.setTitle(byId.getTitle());
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomController.java
@@ -3,38 +3,38 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.auction.domain.AuctionBidRecord;
import com.ruoyi.auction.domain.AuctionBondJl;
import com.ruoyi.auction.mapper.AuctionBondJlMapper;
import com.ruoyi.auction.mapper.AuctionGoodsMapper;
import com.ruoyi.auction.service.IAuctionGoodsService;
import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.enums.BidStatusEnum;
import com.ruoyi.common.core.enums.BondStatusEnum;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.system.api.domain.AuctionGoods;
import com.ruoyi.system.api.domain.OrderAuctionBond;
import com.ruoyi.system.api.domain.dto.*;
import com.ruoyi.auction.service.IAuctionSalesroomGoodsService;
import com.ruoyi.auction.service.IAuctionSalesroomService;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.system.api.domain.AppMiniLoginVO;
import com.ruoyi.system.api.domain.AuctionBondJl;
import com.ruoyi.system.api.domain.AuctionGoods;
import com.ruoyi.system.api.domain.AuctionSalesroom;
import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO;
import com.ruoyi.system.api.domain.dto.AuctionSalesroomDTO;
import com.ruoyi.system.api.domain.dto.ForepartAuctionBidRecordDTO;
import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO;
import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO;
import com.ruoyi.system.api.domain.vo.ForepartAuctionSalesroomVO;
import com.ruoyi.system.api.domain.vo.MemberAuctionSalesroomInfoVO;
import com.ruoyi.system.api.domain.vo.MemberAuctionSalesroomVO;
import com.ruoyi.system.api.domain.AuctionSalesroom;
import com.ruoyi.auction.service.IAuctionSalesroomService;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.system.api.domain.AppMiniLoginVO;
import com.ruoyi.system.api.domain.vo.PayInfoVO;
import com.ruoyi.system.api.domain.vo.WdMemberAuctionSalesroomVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import javax.annotation.Resource;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.math.BigDecimal;
import java.util.List;
import java.util.Objects;
import javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * <p>
@@ -44,6 +44,7 @@
 * @author mitao
 * @since 2024-05-16
 */
@Slf4j
@RestController
@RequestMapping("/forepart/auction-salesroom")
@Api(value = "拍卖场相关接口", tags = "拍卖场相关接口", description = "拍卖场相关接口")
@@ -123,54 +124,61 @@
   @PostMapping("/SaveSignUpNow")
    @ApiOperation(value = "用户端-拍卖立即报名")
    public R<PayInfoVO> SaveSignUpNow(@RequestBody MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO) {
      if (memberAuctionSalesroomBondDTO.getBondType()==1){
       log.info("=================================开始拍卖报名=================================");
       if (memberAuctionSalesroomBondDTO.getBondType() == 1) {
          AuctionGoods auctionGoods = AuctionGoodsMapper.selectById(memberAuctionSalesroomBondDTO.getAuctionGoodsId());
          if (auctionGoods.getListingStatus().getCode()==1){
              throw new ServiceException("商品拍卖下线");
          }
      }else{
          AuctionSalesroom byId = iAuctionSalesroomService.getById(memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
          if(byId==null){
              LambdaQueryWrapper<AuctionSalesroom> wrapper= Wrappers.lambdaQuery();
              wrapper.eq(AuctionSalesroom::getAuctionSalesroomNo,memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
              wrapper.eq(AuctionSalesroom::getDelFlag,0);
              byId =iAuctionSalesroomService.getOne(wrapper);
              memberAuctionSalesroomBondDTO.setAuctionSalesroomId(byId.getId());
          }
      }
       if (memberAuctionSalesroomBondDTO.getBondType()==1) {
           LambdaQueryWrapper<AuctionBondJl> wrapper = Wrappers.lambdaQuery();
           wrapper.eq(AuctionBondJl::getAuctionGoodsId, memberAuctionSalesroomBondDTO.getAuctionGoodsId());
           wrapper.eq(AuctionBondJl::getAuctionGoodsId,
                   memberAuctionSalesroomBondDTO.getAuctionGoodsId());
           wrapper.eq(AuctionBondJl::getMemberId, memberAuctionSalesroomBondDTO.getMemberId());
           wrapper.eq(AuctionBondJl::getIsState, 0);
           AuctionBondJl auctionSalesroom = auctionBondJlMapper.selectOne(wrapper);
           if (auctionSalesroom==null){
               AuctionBondJl auctionBondJl = new AuctionBondJl();
           AuctionBondJl auctionBondJl = auctionBondJlMapper.selectOne(wrapper);
           if (Objects.nonNull(auctionBondJl)) {
               throw new ServiceException("你已报名");
           }
           log.info("auctionGoods:{}", auctionGoods);
           if (auctionGoods.getBond() == null
                   || auctionGoods.getBond().compareTo(BigDecimal.ZERO) == 0) {
               auctionBondJl = new AuctionBondJl();
               auctionBondJl.setAuctionGoodsId(memberAuctionSalesroomBondDTO.getAuctionGoodsId());
               auctionBondJl.setIsState(0);
               auctionBondJl.setBondType(memberAuctionSalesroomBondDTO.getBondType());
               auctionBondJl.setMemberId(memberAuctionSalesroomBondDTO.getMemberId());
               auctionBondJlMapper.insert(auctionBondJl);
           }else{
               throw new ServiceException("你已报名");
           }
       }else{
      }else{
          AuctionSalesroom byId = iAuctionSalesroomService.getById(memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
          if(byId==null){
              LambdaQueryWrapper<AuctionSalesroom> auctionSalesroomWrapper = Wrappers.lambdaQuery();
              auctionSalesroomWrapper.eq(AuctionSalesroom::getAuctionSalesroomNo,
                      memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
              auctionSalesroomWrapper.eq(AuctionSalesroom::getDelFlag, 0);
              byId = iAuctionSalesroomService.getOne(auctionSalesroomWrapper);
          }
           memberAuctionSalesroomBondDTO.setAuctionSalesroomId(byId.getId());
           LambdaQueryWrapper<AuctionBondJl> wrapper = Wrappers.lambdaQuery();
           wrapper.eq(AuctionBondJl::getAuctionSalesroomId, memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
           wrapper.eq(AuctionBondJl::getAuctionSalesroomId,
                   memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
           wrapper.eq(AuctionBondJl::getMemberId, memberAuctionSalesroomBondDTO.getMemberId());
           wrapper.eq(AuctionBondJl::getIsState, 0);
           AuctionBondJl auctionSalesroom = auctionBondJlMapper.selectOne(wrapper);
           if (auctionSalesroom==null){
               AuctionBondJl auctionBondJl = new AuctionBondJl();
               auctionBondJl.setAuctionSalesroomId(memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
           AuctionBondJl auctionBondJl = auctionBondJlMapper.selectOne(wrapper);
           if (Objects.nonNull(auctionBondJl)) {
               throw new ServiceException("你已报名");
           }
           log.info("AuctionSalesroom:{}", byId);
           if (byId.getBond() == null || byId.getBond().compareTo(BigDecimal.ZERO) == 0) {
               auctionBondJl = new AuctionBondJl();
               auctionBondJl.setAuctionSalesroomId(
                       memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
               auctionBondJl.setIsState(0);
               auctionBondJl.setBondType(memberAuctionSalesroomBondDTO.getBondType());
               auctionBondJl.setMemberId(memberAuctionSalesroomBondDTO.getMemberId());
               auctionBondJlMapper.insert(auctionBondJl);
           }else{
               throw new ServiceException("你已报名");
           }
       }
      }
       PayInfoVO payInfoVO = iAuctionSalesroomService.SaveSignUpNow(memberAuctionSalesroomBondDTO);
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/inner/AuctionBondJlController.java
New file
@@ -0,0 +1,42 @@
package com.ruoyi.auction.controller.inner;
import com.ruoyi.auction.service.IAuctionBondJlService;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.security.annotation.InnerAuth;
import com.ruoyi.system.api.domain.AuctionBondJl;
import java.util.Objects;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * @author mitao
 * @date 2024/8/14
 */
@Slf4j
@RestController
@RequiredArgsConstructor
@RequestMapping("/auction-bond-jl")
public class AuctionBondJlController {
    private final IAuctionBondJlService auctionBondJlService;
    /**
     * 保存更新拍卖报名记录
     *
     * @param auctionBondJl
     * @return
     */
    @InnerAuth
    @PostMapping("/saveOrUpdateAuctionBondJl")
    R<?> saveOrUpdateAuctionBondJl(@RequestBody AuctionBondJl auctionBondJl) {
        log.info("保证金支付回调,saveOrUpdateAuctionBondJl 入参{}", auctionBondJl);
        if (Objects.nonNull(auctionBondJl)) {
            auctionBondJlService.saveOrUpdate(auctionBondJl);
        }
        return R.ok();
    }
}
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/inner/AuctionSalesroomController.java
@@ -4,6 +4,7 @@
import com.ruoyi.auction.service.IAuctionSalesroomService;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.security.annotation.InnerAuth;
import com.ruoyi.system.api.domain.AuctionBondJl;
import com.ruoyi.system.api.domain.AuctionSalesroom;
import com.ruoyi.system.api.domain.AuctionSalesroomGoods;
import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO;
@@ -15,6 +16,7 @@
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
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;
@@ -75,4 +77,14 @@
            @PathVariable("goodsSkuId") Long goodsSkuId) {
        return R.ok(iAuctionSalesroomService.getAuctionSalesroomGoodsById(goodsSkuId));
    }
    @InnerAuth
    @GetMapping("/getAuctionBondJLByTargetId")
    R<AuctionBondJl> getAuctionBondJLBySalesroomId(
            @RequestParam("targetId") Long targetId,
            @RequestParam("memberId") Long memberId,
            @RequestParam("bondType") Integer bondType) {
        return R.ok(iAuctionSalesroomService.getAuctionBondJLBySalesroomId(targetId,
                memberId, bondType));
    }
}
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionBondJlMapper.java
@@ -1,7 +1,7 @@
package com.ruoyi.auction.mapper;
import com.ruoyi.auction.domain.AuctionBondJl;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.system.api.domain.AuctionBondJl;
/**
 * <p>
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionBondJlService.java
@@ -1,7 +1,7 @@
package com.ruoyi.auction.service;
import com.ruoyi.auction.domain.AuctionBondJl;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.system.api.domain.AuctionBondJl;
/**
 * <p>
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java
@@ -16,6 +16,7 @@
import com.ruoyi.auction.controller.management.vo.MgtAuctionSalesroomVO;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.system.api.domain.AppMiniLoginVO;
import com.ruoyi.system.api.domain.AuctionBondJl;
import com.ruoyi.system.api.domain.AuctionSalesroom;
import com.ruoyi.system.api.domain.AuctionSalesroomGoods;
import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO;
@@ -207,4 +208,7 @@
    List<AuctionSalesroom> getAuctionSalesroomBySkuId(Long id);
    AuctionSalesroomGoods getAuctionSalesroomGoodsById(Long goodsSkuId);
    AuctionBondJl getAuctionBondJLBySalesroomId(Long targetId, Long memberId,
            Integer bondType);
}
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionBondJlServiceImpl.java
@@ -1,9 +1,9 @@
package com.ruoyi.auction.service.impl;
import com.ruoyi.auction.domain.AuctionBondJl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.auction.mapper.AuctionBondJlMapper;
import com.ruoyi.auction.service.IAuctionBondJlService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.system.api.domain.AuctionBondJl;
import org.springframework.stereotype.Service;
/**
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionBrowseRecordServiceImpl.java
@@ -4,7 +4,6 @@
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.auction.domain.AuctionBondJl;
import com.ruoyi.auction.domain.AuctionBrowseRecord;
import com.ruoyi.auction.mapper.AuctionBondJlMapper;
import com.ruoyi.auction.mapper.AuctionBrowseRecordMapper;
@@ -14,25 +13,19 @@
import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.system.api.domain.AuctionBondJl;
import com.ruoyi.system.api.domain.AuctionGoods;
import com.ruoyi.system.api.domain.AuctionSalesroom;
import com.ruoyi.system.api.domain.GoodsSku;
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.MemberAuctionSalesroomDTO;
import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomWdDTO;
import com.ruoyi.system.api.domain.vo.AuctionGoodsListVO;
import com.ruoyi.system.api.domain.vo.WdMemberAuctionSalesroomVO;
import com.ruoyi.system.api.feignClient.GoodsSkuClient;
import com.ruoyi.system.api.feignClient.OrderClient;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java
@@ -12,7 +12,6 @@
import com.ruoyi.auction.controller.management.vo.MgtAuctionBidRecordVO;
import com.ruoyi.auction.controller.management.vo.MgtAuctionGoodsVO;
import com.ruoyi.auction.domain.AuctionBidRecord;
import com.ruoyi.auction.domain.AuctionBondJl;
import com.ruoyi.auction.domain.AuctionBrowseRecord;
import com.ruoyi.auction.domain.MemberAuctionCollection;
import com.ruoyi.auction.mapper.AuctionBondJlMapper;
@@ -38,6 +37,7 @@
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.system.api.constants.ConfigEnum;
import com.ruoyi.system.api.constants.NotificationTypeConstant;
import com.ruoyi.system.api.domain.AuctionBondJl;
import com.ruoyi.system.api.domain.AuctionGoods;
import com.ruoyi.system.api.domain.CustomConfig;
import com.ruoyi.system.api.domain.GoodsBrand;
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java
@@ -7,7 +7,6 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Lists;
import com.ruoyi.auction.domain.AuctionBidRecord;
import com.ruoyi.auction.domain.AuctionBondJl;
import com.ruoyi.auction.mapper.AuctionBidRecordMapper;
import com.ruoyi.auction.mapper.AuctionBondJlMapper;
import com.ruoyi.auction.mapper.AuctionSalesroomGoodsMapper;
@@ -25,6 +24,7 @@
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.system.api.constants.NotificationTypeConstant;
import com.ruoyi.system.api.domain.AuctionBondJl;
import com.ruoyi.system.api.domain.AuctionSalesroom;
import com.ruoyi.system.api.domain.AuctionSalesroomGoods;
import com.ruoyi.system.api.domain.CustomConfig;
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java
@@ -25,7 +25,6 @@
import com.ruoyi.auction.controller.management.vo.MgtAuctionSalesroomScreenVO;
import com.ruoyi.auction.controller.management.vo.MgtAuctionSalesroomVO;
import com.ruoyi.auction.domain.AuctionBidRecord;
import com.ruoyi.auction.domain.AuctionBondJl;
import com.ruoyi.auction.domain.AuctionBrowseRecord;
import com.ruoyi.auction.domain.AuctionVideo;
import com.ruoyi.auction.mapper.AuctionBidRecordMapper;
@@ -61,6 +60,7 @@
import com.ruoyi.system.api.constants.ConfigEnum;
import com.ruoyi.system.api.constants.NotificationTypeConstant;
import com.ruoyi.system.api.domain.AppMiniLoginVO;
import com.ruoyi.system.api.domain.AuctionBondJl;
import com.ruoyi.system.api.domain.AuctionGoods;
import com.ruoyi.system.api.domain.AuctionSalesroom;
import com.ruoyi.system.api.domain.AuctionSalesroomGoods;
@@ -1781,4 +1781,14 @@
    public AuctionSalesroomGoods getAuctionSalesroomGoodsById(Long goodsSkuId) {
        return auctionSalesroomGoodsMapper.selectById(goodsSkuId);
    }
    @Override
    public AuctionBondJl getAuctionBondJLBySalesroomId(Long targetId, Long memberId,
            Integer bondType) {
        return auctionBondJlMapper.selectOne(
                Wrappers.lambdaQuery(AuctionBondJl.class).eq(AuctionBondJl::getMemberId, memberId)
                        .eq(AuctionBondJl::getAuctionSalesroomId, targetId)
                        .eq(AuctionBondJl::getBondType, bondType)
                        .last("limit 1"));
    }
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsGroupPurchaseController.java
@@ -8,19 +8,20 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.security.annotation.InnerAuth;
import com.ruoyi.goods.mapper.GoodsSkuMapper;
import com.ruoyi.goods.service.IGoodsSkuService;
import com.ruoyi.system.api.domain.GoodsGroupPurchaseInfo;
import com.ruoyi.goods.service.IGoodsGroupPurchaseService;
import com.ruoyi.goods.service.impl.GoodsGroupPurchaseInfoServiceImpl;
import com.ruoyi.system.api.domain.GoodsGroupPurchase;
import com.ruoyi.goods.service.IGoodsGroupPurchaseService;
import com.ruoyi.system.api.domain.GoodsGroupPurchaseInfo;
import com.ruoyi.system.api.domain.GoodsSku;
import com.ruoyi.system.api.domain.Order;
import com.ruoyi.system.api.feignClient.OrderClient;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import java.util.List;
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.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * <p>
@@ -134,7 +135,9 @@
    @InnerAuth
    @PostMapping("/updgoodsGroupPurchaseInfo")
    public R getGoodsSeckiGoodsGroupPurchaseInfo(@RequestBody GoodsGroupPurchaseInfo goodsGroupPurchaseInfo) {
        log.info("getGoodsSeckiGoodsGroupPurchaseInfo==============》{}", goodsGroupPurchaseInfo);
             if (goodsGroupPurchaseInfo.getId()!=null){
                 log.info("========================已有待成团========================");
                 GoodsGroupPurchaseInfo byId = goodsGroupPurchaseInfoServiceImpl.getById(goodsGroupPurchaseInfo.getId());
                 Integer num= byId.getCurrentNumber()+1;
                 byId.setCurrentNumber(num);
@@ -160,6 +163,7 @@
                 }
             }else{
                 log.info("===================没有待成团的团购===================");
                 if (goodsGroupPurchaseInfo.getCurrentNumber()==goodsGroupPurchaseInfo.getGroupSize()){
                     goodsGroupPurchaseInfo.setGroupStatus(1);
                     goodsGroupPurchaseInfo.setIsPurchase(1);
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
@@ -304,12 +304,11 @@
                            Collectors.toList());
            // 回退未成团记录的商品库存
            if (CollUtils.isNotEmpty(notGroupedInfoList)) {
                Integer goodsStock = notGroupedInfoList.stream()
                        .map(GoodsGroupPurchaseInfo::getPurchaseNum)
                        .reduce(Integer::sum).orElse(0);
                Integer stock = groupPurchase.getLimitNumber() * groupPurchase.getGroupSize()
                        * notGroupedInfoList.size();
                GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
                goodsStockUpdDTO.setGoodsSkuId(groupPurchase.getGoodsSkuId());
                goodsStockUpdDTO.setAuctionStock(goodsStock);
                goodsStockUpdDTO.setAuctionStock(stock);
                goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO),
                        SecurityConstants.INNER);
                // 根据唯一标识查询订单
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java
@@ -16,6 +16,7 @@
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.CollUtils;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.goods.controller.management.dto.GoodsSeckillDTO;
@@ -409,7 +410,9 @@
        Set<Long> goodsSkuIdList = null;
        goodsSkuIdList = page1.stream().map(GoodsSku::getId)
                .collect(Collectors.toSet());
        if (CollUtils.isEmpty(goodsSkuIdList)) {
            return PageDTO.empty(0L, 0L);
        }
        Page<GoodsSeckill> page = new Page<>();
        page.setSize(homeGoodsSkuDTO.getPageSize());
        page.setCurrent(homeGoodsSkuDTO.getPageCurr());
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java
@@ -1,5 +1,6 @@
package com.ruoyi.goods.service.impl;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -388,7 +389,7 @@
            LocalDateTime newTime7 = now.minusYears(30);
            String formattedDate7 = newTime7.format(formatter);
            LocalDateTime parseTime7 = LocalDate.parse(formattedDate7).atStartOfDay();
            wrapper3.le(GoodsSku::getYears,parseTime7);
            wrapper3.le(GoodsSku::getYears, DateUtil.format(parseTime7, "yyyy"));
        }
        if(homeGoodsSkuDTO.getYear()==3){
            LocalDateTime now = LocalDateTime.now();
@@ -400,8 +401,8 @@
            LocalDateTime newTime15 = now.minusYears(15);
            String formattedDate15 = newTime15.format(formatter);
            LocalDateTime parseTime15= LocalDate.parse(formattedDate15).atStartOfDay();
            wrapper3.le(GoodsSku::getYears, parseTime15)
                    .gt(GoodsSku::getYears, parseTime7);
            wrapper3.le(GoodsSku::getYears, DateUtil.format(parseTime15, "yyyy"))
                    .gt(GoodsSku::getYears, DateUtil.format(parseTime7, "yyyy"));
        }
        if(homeGoodsSkuDTO.getYear()==4){
@@ -414,8 +415,8 @@
            LocalDateTime newTime15 = now.minusYears(15);
            String formattedDate15 = newTime15.format(formatter);
            LocalDateTime parseTime15= LocalDate.parse(formattedDate15).atStartOfDay();
            wrapper3.le(GoodsSku::getYears, parseTime7)
                    .gt(GoodsSku::getYears, parseTime15);
            wrapper3.le(GoodsSku::getYears, DateUtil.format(parseTime7, "yyyy"))
                    .gt(GoodsSku::getYears, DateUtil.format(parseTime15, "yyyy"));
        }
        if(homeGoodsSkuDTO.getYear()==5){
@@ -424,12 +425,11 @@
            LocalDateTime newTime7 = now.minusYears(1);
            String formattedDate7 = newTime7.format(formatter);
            LocalDateTime parseTime7 = LocalDate.parse(formattedDate7).atStartOfDay();
            LocalDateTime newTime15 = now.minusYears(5);
            String formattedDate15 = newTime15.format(formatter);
            LocalDateTime parseTime15= LocalDate.parse(formattedDate15).atStartOfDay();
            wrapper3.le(GoodsSku::getYears, parseTime7)
                    .ge(GoodsSku::getYears, parseTime15);
            wrapper3.le(GoodsSku::getYears, DateUtil.format(parseTime7, "yyyy"))
                    .ge(GoodsSku::getYears, DateUtil.format(parseTime15, "yyyy"));
        }
        if (homeGoodsSkuDTO.getSort()==1){
            wrapper3.last(" ORDER BY IF(isnull(sort_num),1,0), sort_num DESC,create_time DESC");
@@ -448,7 +448,6 @@
    public HomeGoodsSkuInfoVO getHomeGoodsSkuInfo(HomeGoodsSkuDTO homeGoodsSkuDTO) {
        GoodsSku byId = this.getById(homeGoodsSkuDTO.getGoodsSkuId());
        HomeGoodsSkuInfoVO homeGoodsSkuInfoVO=new HomeGoodsSkuInfoVO();
        homeGoodsSkuInfoVO.setId(byId.getId());
        homeGoodsSkuInfoVO.setSkuName(byId.getSkuName());
        homeGoodsSkuInfoVO.setYears(String.valueOf(byId.getYears().getYear()));
        GoodsBrand data = goodsSkuClient.getBrandOne(byId.getBrandId(), SecurityConstants.INNER).getData();
@@ -487,18 +486,21 @@
                .eq(GoodsGroupPurchase::getStartStatus,
                        StartStatusEnum.STARTED);
        GoodsGroupPurchase goodsGroupPurchase = goodsGroupPurchaseMapper.selectOne(queryWrapper1);
        log.info("团购商品信息=================》:{}", goodsGroupPurchase);
        if(goodsGroupPurchase!=null){
            HomeGoodsSkuDTO homeGoodsSkuDTO1 =new HomeGoodsSkuDTO();
            homeGoodsSkuDTO1.setGoodsSkuId(goodsGroupPurchase.getId());
            homeGoodsSkuDTO1.setMemberId(homeGoodsSkuDTO.getMemberId());
            Order data4 = orderClient.getOrderByGroupPurchaseMemberId2(homeGoodsSkuDTO1, SecurityConstants.INNER).getData();
            if (data4!=null){
            log.info("关联订单信息=================》:{}", data4);
            homeGoodsSkuInfoVO.setId(goodsGroupPurchase.getId());
            homeGoodsSkuInfoVO.setIsGoodsGroupPurchase(1);
            if (data4 != null) {
                homeGoodsSkuInfoVO.setIsGoodsGroupPurchase(2);
            }else{
                homeGoodsSkuInfoVO.setIsGoodsGroupPurchase(1);
            }
        }else{
            log.info(
                    "=============================没有查询到团购信息=============================");
            homeGoodsSkuInfoVO.setIsGoodsGroupPurchase(1);
        }
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/MemberGoodsCollectionServiceImpl.java
@@ -3,9 +3,10 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.constant.SecurityConstants;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.page.CollUtils;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.goods.domain.MemberGoodsCollection;
import com.ruoyi.goods.mapper.GoodsGroupPurchaseMapper;
@@ -13,22 +14,19 @@
import com.ruoyi.goods.mapper.GoodsSkuMapper;
import com.ruoyi.goods.mapper.MemberGoodsCollectionMapper;
import com.ruoyi.goods.service.IMemberGoodsCollectionService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.system.api.domain.AuctionGoods;
import com.ruoyi.system.api.domain.GoodsGroupPurchase;
import com.ruoyi.system.api.domain.GoodsSeckill;
import com.ruoyi.system.api.domain.GoodsSku;
import com.ruoyi.system.api.domain.dto.AuctionCollectionDTO;
import com.ruoyi.system.api.domain.vo.AuctionGoodsListVO;
import com.ruoyi.system.api.domain.vo.HomeGoodsSkuListVO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
/**
 * <p>
@@ -116,59 +114,67 @@
            }
        }
        List<MemberGoodsCollection> list = this.list(wrapper);
        List<HomeGoodsSkuListVO> auctionGoodsVOS=new ArrayList<>();
        for (MemberGoodsCollection auctionCollection:list){
            if(auctionCollection.getType()==1){
                HomeGoodsSkuListVO auctionGoodsVO=new HomeGoodsSkuListVO();
                GoodsSku goodsSku = goodsSkuMapper.selectById(auctionCollection.getTargetId());
                auctionGoodsVO.setId(goodsSku.getId());
                auctionGoodsVO.setPrice(goodsSku.getPrice());
                auctionGoodsVO.setCoverPic(goodsSku.getCoverPic());
                auctionGoodsVO.setSkuName(goodsSku.getSkuName());
                auctionGoodsVO.setSoldQuantity(goodsSku.getSoldQuantity());
                auctionGoodsVO.setIsCollection(2);
                auctionGoodsVO.setType(auctionCollection.getType());
                auctionGoodsVOS.add(auctionGoodsVO);
            }   if(auctionCollection.getType()==3){
                HomeGoodsSkuListVO auctionGoodsVO=new HomeGoodsSkuListVO();
                GoodsSeckill goodsSeckill = goodsSeckillMapper.selectById(auctionCollection.getTargetId());
                GoodsSku goodsSku = goodsSkuMapper.selectById(goodsSeckill.getGoodsSkuId());
                auctionGoodsVO.setId(auctionCollection.getTargetId());
                auctionGoodsVO.setPrice( goodsSeckill.getSeckillPrice());
                auctionGoodsVO.setCoverPic(goodsSku.getCoverPic());
                auctionGoodsVO.setSkuName(goodsSku.getSkuName());
                auctionGoodsVO.setSoldQuantity(goodsSku.getSoldQuantity());
                auctionGoodsVO.setIsCollection(2);
                auctionGoodsVO.setStartStatus(goodsSeckill.getStartStatus());
                auctionGoodsVO.setStartTime(goodsSeckill.getStartTime());
                auctionGoodsVO.setEndTime(goodsSeckill.getEndTime());
                auctionGoodsVO.setXiaosPrice(goodsSku.getPrice());
                auctionGoodsVO.setType(auctionCollection.getType());
                auctionGoodsVOS.add(auctionGoodsVO);
            }   if(auctionCollection.getType()==2){
                GoodsGroupPurchase goodsGroupPurchase = goodsGroupPurchaseMapper.selectById(auctionCollection.getTargetId());
                HomeGoodsSkuListVO auctionGoodsVO=new HomeGoodsSkuListVO();
                if(goodsGroupPurchase!=null){
                    GoodsSku goodsSku = goodsSkuMapper.selectById(goodsGroupPurchase.getGoodsSkuId());
        if (CollUtils.isNotEmpty(list)) {
            List<HomeGoodsSkuListVO> auctionGoodsVOS = new ArrayList<>();
            for (MemberGoodsCollection auctionCollection : list) {
                if (auctionCollection.getType() == 1) {
                    HomeGoodsSkuListVO auctionGoodsVO = new HomeGoodsSkuListVO();
                    GoodsSku goodsSku = goodsSkuMapper.selectById(auctionCollection.getTargetId());
                    if (Objects.nonNull(goodsSku)) {
                        auctionGoodsVO.setId(goodsSku.getId());
                        auctionGoodsVO.setPrice(goodsSku.getPrice());
                        auctionGoodsVO.setCoverPic(goodsSku.getCoverPic());
                        auctionGoodsVO.setSkuName(goodsSku.getSkuName());
                        auctionGoodsVO.setSoldQuantity(goodsSku.getSoldQuantity());
                        auctionGoodsVO.setIsCollection(2);
                        auctionGoodsVO.setType(auctionCollection.getType());
                        auctionGoodsVOS.add(auctionGoodsVO);
                    }
                }
                if (auctionCollection.getType() == 3) {
                    HomeGoodsSkuListVO auctionGoodsVO = new HomeGoodsSkuListVO();
                    GoodsSeckill goodsSeckill = goodsSeckillMapper.selectById(
                            auctionCollection.getTargetId());
                    GoodsSku goodsSku = goodsSkuMapper.selectById(goodsSeckill.getGoodsSkuId());
                    auctionGoodsVO.setId(auctionCollection.getTargetId());
                    auctionGoodsVO.setPrice(goodsGroupPurchase.getGroupPurchasePrice());
                    auctionGoodsVO.setPrice(goodsSeckill.getSeckillPrice());
                    auctionGoodsVO.setCoverPic(goodsSku.getCoverPic());
                    auctionGoodsVO.setSkuName(goodsSku.getSkuName());
                    auctionGoodsVO.setSoldQuantity(goodsSku.getSoldQuantity());
                    auctionGoodsVO.setIsCollection(2);
                    auctionGoodsVO.setStartStatus(goodsSeckill.getStartStatus());
                    auctionGoodsVO.setStartTime(goodsSeckill.getStartTime());
                    auctionGoodsVO.setEndTime(goodsSeckill.getEndTime());
                    auctionGoodsVO.setXiaosPrice(goodsSku.getPrice());
                    auctionGoodsVO.setStartTime(goodsGroupPurchase.getStartTime());
                    auctionGoodsVO.setEndTime(goodsGroupPurchase.getEndTime());
                    auctionGoodsVO.setXiaosPrice(goodsGroupPurchase.getGroupPurchasePrice());
                    auctionGoodsVO.setType(auctionCollection.getType());
                    auctionGoodsVOS.add(auctionGoodsVO);
                }
                if (auctionCollection.getType() == 2) {
                    GoodsGroupPurchase goodsGroupPurchase = goodsGroupPurchaseMapper.selectById(
                            auctionCollection.getTargetId());
                    HomeGoodsSkuListVO auctionGoodsVO = new HomeGoodsSkuListVO();
                    if (goodsGroupPurchase != null) {
                        GoodsSku goodsSku = goodsSkuMapper.selectById(
                                goodsGroupPurchase.getGoodsSkuId());
                        auctionGoodsVO.setId(auctionCollection.getTargetId());
                        auctionGoodsVO.setPrice(goodsGroupPurchase.getGroupPurchasePrice());
                        auctionGoodsVO.setCoverPic(goodsSku.getCoverPic());
                        auctionGoodsVO.setSkuName(goodsSku.getSkuName());
                        auctionGoodsVO.setSoldQuantity(goodsSku.getSoldQuantity());
                        auctionGoodsVO.setIsCollection(2);
                        auctionGoodsVO.setXiaosPrice(goodsSku.getPrice());
                        auctionGoodsVO.setStartTime(goodsGroupPurchase.getStartTime());
                        auctionGoodsVO.setEndTime(goodsGroupPurchase.getEndTime());
                        auctionGoodsVO.setXiaosPrice(goodsGroupPurchase.getGroupPurchasePrice());
                        auctionGoodsVO.setType(auctionCollection.getType());
                        auctionGoodsVOS.add(auctionGoodsVO);
                    }
                }
            }
            page.setRecords(auctionGoodsVOS);
        }
        page.setRecords(auctionGoodsVOS);
        return PageDTO.of(page);
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/inner/MemberController.java
@@ -9,6 +9,8 @@
import java.util.Collection;
import java.util.List;
import lombok.RequiredArgsConstructor;
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.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -58,4 +60,16 @@
    R<List<Member>> getMemberListByLevel(@RequestBody List<String> memberLevelList) {
        return R.ok(memberService.getMemberListByLevel(memberLevelList));
    }
    /**
     * 根据sys_user表的user_id查询member
     *
     * @param userId
     * @return
     */
    @InnerAuth
    @GetMapping("/getMemberByUserId/{userId}")
    R<Member> getMemberByUserId(@PathVariable("userId") Long userId) {
        return R.ok(memberService.getMemberByUserId(userId));
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/IMemberService.java
@@ -68,4 +68,6 @@
    List<Member> getMemberListByCondition(MemberDTO memberDTO);
    List<Member> getMemberListByLevel(List<String> memberLevelList);
    Member getMemberByUserId(Long userId);
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberServiceImpl.java
@@ -630,7 +630,10 @@
                .list();
    }
    @Override
    public Member getMemberByUserId(Long userId) {
        return this.lambdaQuery().eq(Member::getUserId, userId).oneOpt().orElse(null);
    }
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/forepart/ForepartPaylogController.java
@@ -52,13 +52,8 @@
    @ApiOperation(value = "用户端-获取支付信息")
    public R<Map<String, Object>> getPayInfo(@RequestBody PayInfoDTO payInfoDTO,
                                             HttpServletRequest request) {
        try {
            return paylogServiceImpl.getPayInfo(payInfoDTO.getMemberId(), payInfoDTO.getType(),
                    payInfoDTO.getOrderNO(), payInfoDTO.getOpenId(), request);
        } catch (Exception e) {
            return R.fail("获取异常");
        }
        return paylogServiceImpl.getPayInfo(payInfoDTO.getMemberId(), payInfoDTO.getType(),
                payInfoDTO.getOrderNO(), payInfoDTO.getOpenId(), request);
    }
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/LogisticsServiceImpl.java
@@ -41,10 +41,10 @@
public class LogisticsServiceImpl extends ServiceImpl<LogisticsMapper, Logistics> implements
        ILogisticsService {
    private String key="BltjQodT7186";
    private static final String key = "BltjQodT7186";
    private String kye1="GMtjjhxp9pdEpfz37M";
    private String customer="56DE8E9E3D58CE73C60755C8B7483043";
    private static final String kye1 = "GMtjjhxp9pdEpfz37M";
    private static final String customer = "56DE8E9E3D58CE73C60755C8B7483043";
    private static final String AUTONUMBER_AUTO_URL = "http://www.kuaidi100.com/autonumber/auto?num=NUM&key=KEY";
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderAuctionBondServiceImpl.java
@@ -25,10 +25,12 @@
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.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
@@ -141,14 +143,43 @@
    @Override
    public PayInfoVO SaveOrderAuctionBond(MemberAuctionSalesroomBondDTO memberAuctionSalesroomBondDTO) {
        PayInfoVO payInfoVO = new PayInfoVO();
        // 查询参与记录
        Optional<OrderAuctionBond> orderAuctionBondOpt = this.lambdaQuery()
                .eq(OrderAuctionBond::getMemberId, memberAuctionSalesroomBondDTO.getMemberId())
                .eq(memberAuctionSalesroomBondDTO.getBondType()
                                .equals(AuctionOrderTypeEnum.AUCTION_ITEMS.getCode()),
                        OrderAuctionBond::getAuctionSalesroomId,
                        memberAuctionSalesroomBondDTO.getAuctionSalesroomId())
                .eq(memberAuctionSalesroomBondDTO.getBondType()
                                .equals(AuctionOrderTypeEnum.REGULAR_ITEMS.getCode()),
                        OrderAuctionBond::getAuctionGoodsId,
                        memberAuctionSalesroomBondDTO.getAuctionGoodsId()).oneOpt();
        if (orderAuctionBondOpt.isPresent()) {
            OrderAuctionBond orderAuctionBond = orderAuctionBondOpt.get();
            orderAuctionBond.setPaymentMethod(
                    PaymentMethodEnum.fromCode(memberAuctionSalesroomBondDTO.getPaymentMethod()));
            orderAuctionBond.setOrderNo(OrderUtil.getOrderNoForPrefix("BO"));
            this.updateById(orderAuctionBond);
            payInfoVO.setOrderNO(orderAuctionBond.getOrderNo());
            if (memberAuctionSalesroomBondDTO.getPaymentMethod() == 1) {
                payInfoVO.setType(2);
            } else {
                payInfoVO.setType(1);
            }
            payInfoVO.setOrderNO(orderAuctionBond.getOrderNo());
            payInfoVO.setSubject("保证金");
            payInfoVO.setMemberId(memberAuctionSalesroomBondDTO.getMemberId());
            payInfoVO.setBody("保证金");
            return payInfoVO;
        }
        if (memberAuctionSalesroomBondDTO.getBondType() == 1) {
            AuctionGoods data = auctionClient.getauctionGoodsOne(memberAuctionSalesroomBondDTO, SecurityConstants.INNER).getData();
            log.info("商品竞价立即报名的商品:{}", data);
            if (data.getListingStatus().getCode()==1){
                throw new ServiceException("商品拍卖下线");
            }
            if (data.getBond()==null||data.getBond().intValue() == 0) {
            if (data.getBond() == null || data.getBond().compareTo(BigDecimal.ZERO) == 0) {
                OrderAuctionBond orderAuctionBond = new OrderAuctionBond();
                orderAuctionBond.setOrderNo(OrderUtil.getOrderNoForPrefix("BO"));
                orderAuctionBond.setAuctionGoodsId(memberAuctionSalesroomBondDTO.getAuctionGoodsId());
@@ -156,6 +187,7 @@
                orderAuctionBond.setBond(data.getBond());
                orderAuctionBond.setBoundStatus(BondStatusEnum.PAID);
                orderAuctionBond.setBondType(AuctionOrderTypeEnum.REGULAR_ITEMS);
                orderAuctionBond.setOrderTimeSx(data.getEndTime());
                this.save(orderAuctionBond);
                payInfoVO.setOrderNO(orderAuctionBond.getOrderNo());
                payInfoVO.setType(0);
@@ -176,6 +208,7 @@
                } else {
                    orderAuctionBond.setPaymentMethod(PaymentMethodEnum.ALIPAY);
                }
                log.info("保存保证金订单:{}", orderAuctionBond);
                this.save(orderAuctionBond);
                payInfoVO.setOrderNO(orderAuctionBond.getOrderNo());
                if (memberAuctionSalesroomBondDTO.getPaymentMethod() == 1) {
@@ -190,7 +223,9 @@
            }
        } else {
            AuctionSalesroom data = auctionClient.getauctionSalesroomOne(memberAuctionSalesroomBondDTO, SecurityConstants.INNER).getData();
            if (data.getBond()==null||data.getBond().intValue() == 0) {
            log.info("拍卖会报名的拍卖会:{}", data);
            if (data.getBond() == null || data.getBond().compareTo(BigDecimal.ZERO) == 0) {
                OrderAuctionBond orderAuctionBond = new OrderAuctionBond();
                orderAuctionBond.setOrderNo(OrderUtil.getOrderNoForPrefix("BO"));
                orderAuctionBond.setAuctionSalesroomId(memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
@@ -198,6 +233,8 @@
                orderAuctionBond.setBond(data.getBond());
                orderAuctionBond.setBoundStatus(BondStatusEnum.PAID);
                orderAuctionBond.setBondType(AuctionOrderTypeEnum.AUCTION_ITEMS);
                orderAuctionBond.setOrderTimeSx(data.getEndTime());
                log.info("添加保证金为0的记录:{}", orderAuctionBond);
                this.save(orderAuctionBond);
                payInfoVO.setOrderNO(orderAuctionBond.getOrderNo());
                payInfoVO.setType(0);
@@ -210,6 +247,7 @@
                orderAuctionBond.setAuctionSalesroomId(memberAuctionSalesroomBondDTO.getAuctionSalesroomId());
                orderAuctionBond.setMemberId(memberAuctionSalesroomBondDTO.getMemberId());
                orderAuctionBond.setBond(data.getBond());
                orderAuctionBond.setOrderTimeSx(data.getEndTime());
                orderAuctionBond.setBoundStatus(BondStatusEnum.TO_PLAY);
                orderAuctionBond.setBondType(AuctionOrderTypeEnum.AUCTION_ITEMS);
                if (memberAuctionSalesroomBondDTO.getPaymentMethod() == 1) {
@@ -217,6 +255,7 @@
                } else {
                    orderAuctionBond.setPaymentMethod(PaymentMethodEnum.ALIPAY);
                }
                log.info("添加保证金不为0的记录:{}", orderAuctionBond);
                this.save(orderAuctionBond);
                payInfoVO.setOrderNO(orderAuctionBond.getOrderNo());
                if (memberAuctionSalesroomBondDTO.getPaymentMethod() == 1) {
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -1,7 +1,5 @@
package com.ruoyi.order.service.impl;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -96,6 +94,7 @@
import java.util.stream.Collectors;
import javax.annotation.Resource;
import lombok.Synchronized;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.map.HashedMap;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
@@ -110,6 +109,7 @@
 * @author mitao
 * @since 2024-05-16
 */
@Slf4j
@Service
@SuppressWarnings("unchecked")
public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements IOrderService {
@@ -296,7 +296,6 @@
    @Override
    @Synchronized
    public MemberTiOrderVO saveMemberOrder(MemberOrderDTO memberOrderDTO) {
        MemberTiOrderVO memberOrderVO=new MemberTiOrderVO();
        BigDecimal pice=new BigDecimal(0);
@@ -485,6 +484,16 @@
            memberOrderVO.setReceiverCity(data.getReceiverCity());
            memberOrderVO.setReceiverDetailAddress(data.getDetailedAddress());
            memberOrderVO.setReceiverphone(data.getRecipientPhone());
        } else {
            order.setReceiverName(memberOrderDTO.getReceiverName());
            order.setReceiverCity(memberOrderDTO.getReceiverCity());
            order.setReceiverDetailAddress(memberOrderDTO.getReceiverDetailAddress());
            order.setReceiverPhone(memberOrderDTO.getReceiverphone());
            memberOrderVO.setReceiverName(memberOrderDTO.getReceiverName());
            memberOrderVO.setReceiverCity(memberOrderDTO.getReceiverCity());
            memberOrderVO.setReceiverDetailAddress(memberOrderDTO.getReceiverDetailAddress());
            memberOrderVO.setReceiverphone(memberOrderDTO.getReceiverphone());
        }
        order.setGoodsSkuId(memberOrderDTO.getGoodsSkuId());
@@ -518,9 +527,6 @@
        return memberOrderVO;
    }
    public static void main(String[] args) {
        System.err.println(DateUtil.format(LocalDateTime.now(), DatePattern.NORM_DATETIME_PATTERN));
    }
    @Override
    public MemberTiOrderVO updMemberOrder(MemberOrderDTO memberOrderDTO) {
        Order order = baseMapper.selectById(memberOrderDTO.getId());
@@ -1889,9 +1895,11 @@
    @Override
    public void updateOrderStatusByMubres1(String formedGroupMubres) {
        LambdaQueryWrapper<Order> wrapper = Wrappers.lambdaQuery();
        wrapper.eq(Order::getGroupNo, formedGroupMubres);
        List<Order> page1 = this.list(wrapper);
        log.info("开始更新订单,已成团的团购订单:{}", page1);
        for (Order p:page1){
            p.setIsOrder(1);
            this.updateById(p);
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java
@@ -12,12 +12,11 @@
import com.jpay.weixin.api.WxPayApi;
import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.enums.AuctionOrderTypeEnum;
import com.ruoyi.common.core.enums.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;
@@ -25,14 +24,15 @@
import com.ruoyi.order.mapper.PaylogMapper;
import com.ruoyi.order.service.IPaylogService;
import com.ruoyi.order.util.MD5AndKL;
import com.ruoyi.order.util.OrderUtil;
import com.ruoyi.order.util.SinataUtil;
import com.ruoyi.order.util.alipay.config.AlipayConfig;
import com.ruoyi.order.util.alipay.util.PayDemoActivity;
import com.ruoyi.order.util.tencent.common.Configure;
import com.ruoyi.order.util.tencent.common.XMLParser;
import com.ruoyi.system.api.domain.AuctionBondJl;
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;
@@ -86,7 +86,7 @@
    @Resource
    private OrderMapper OrderMapper;
    private OrderMapper orderMapper;
    @Resource
    private AuctionClient auctionClient;
@@ -114,120 +114,114 @@
        Double price = 0.0;
        String subject;
        String body;
        try {
            if(judgeContainsStr(orderNO)){
                if (orderNO.contains("BO")) {
                    LambdaQueryWrapper<OrderAuctionBond> wrapper1= Wrappers.lambdaQuery();
                    wrapper1.eq(OrderAuctionBond::getOrderNo,orderNO);
                    wrapper1.eq(OrderAuctionBond::getDelFlag,0);
                    OrderAuctionBond one1 = orderAuctionBondMapper.selectOne(wrapper1);
                    if (one1.getBond()==null||one1.getBond().compareTo(new BigDecimal(0))==0){
                        one1.setBoundStatus(BondStatusEnum.PAID);
                        Map<String, Object> returnMap = new HashMap<>();
                        // Type 1是否需要支付
                        returnMap.put("Type",1);
                        return R.ok(returnMap);
                    }
                }else{
                    LambdaQueryWrapper<Order> wrapper1= Wrappers.lambdaQuery();
                    wrapper1.eq(Order::getOrderNo,orderNO);
                    wrapper1.eq(Order::getDelFlag,0);
                    Order page1 = OrderMapper.selectOne(wrapper1);
                    // 判断商品库存
                    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);
                    }
                    if (page1.getPoints()!=0){
                        MemberPointsDTO memberPointsDTO=new MemberPointsDTO();
                        memberPointsDTO.setMemberId(page1.getMemberId());
                        memberPointsDTO.setPointsType(1);
                        memberPointsDTO.setPointsStatus(PointStatusEnum.INCREASE);
                        memberPointsDTO.setPoints(page1.getPoints());
                        memberClient.addMemberPoints(memberPointsDTO);
                    }
                    updMembeOneDTO MembeOneDTO=new updMembeOneDTO();
                    MembeOneDTO.setType(1);
                    MembeOneDTO.setMemberId(page1.getMemberId());
                    MembeOneDTO.setMoney(page1.getTotalAmount());
                    MembeOneDTO.setTotalPoints(page1.getPoints());
                    memberClient.updMembeOne(MembeOneDTO, SecurityConstants.INNER);
        if (judgeContainsStr(orderNO)) {
            if (orderNO.contains("BO")) {
                LambdaQueryWrapper<OrderAuctionBond> wrapper1 = Wrappers.lambdaQuery();
                wrapper1.eq(OrderAuctionBond::getOrderNo, orderNO);
                wrapper1.eq(OrderAuctionBond::getDelFlag, 0);
                OrderAuctionBond one1 = orderAuctionBondMapper.selectOne(wrapper1);
                if (one1.getBond() == null || one1.getBond().compareTo(new BigDecimal(0)) == 0) {
                    one1.setBoundStatus(BondStatusEnum.PAID);
                    Map<String, Object> returnMap = new HashMap<>();
                    // Type 1是否需要支付
                    returnMap.put("Type", 1);
                    return R.ok(returnMap);
                }
                if (orderNO.contains("BO")) {
                    LambdaQueryWrapper<OrderAuctionBond> wrapper1= Wrappers.lambdaQuery();
                    wrapper1.eq(OrderAuctionBond::getOrderNo,orderNO);
                    wrapper1.eq(OrderAuctionBond::getDelFlag,0);
                    OrderAuctionBond one = orderAuctionBondMapper.selectOne(wrapper1);
                    price=one.getBond().doubleValue();
                    body = " 订单支付";
                    subject = " 订单支付";
                    if (type == 1) {
                        // 支付宝预下单
                        return this.alipay(zfbOpenid, orderNO, subject, body, price, request);
                    } if (type == 2){
                        // 微信预下单
                        return this.wxpay(2 ,orderNO, body, openId, price, request);
            } else {
                LambdaQueryWrapper<Order> wrapper1 = Wrappers.lambdaQuery();
                wrapper1.eq(Order::getOrderNo, orderNO);
                wrapper1.eq(Order::getDelFlag, 0);
                Order page1 = orderMapper.selectOne(wrapper1);
                if (page1.getTotalAmount().compareTo(new BigDecimal(0)) == 0) {
                    Map<String, Object> returnMap = new HashMap<>();
                    returnMap.put("Type", 1);
                    page1.setOrderStatus(OrderStatusEnum.TO_BE_SHIPPED);
                    page1.setPaymentMethod(paymentMethodEnum);
                    page1.setPayTime(LocalDateTime.now());
                    orderMapper.updateById(page1);
                    if (page1.getOrderNo().contains("SP")) {
                        GoodsSku goodsSku = new GoodsSku();
                        goodsSku.setId(page1.getGoodsSkuId());
                        goodsSku.setSoldQuantity(page1.getGoodsQuantity());
                        goodsSkuClient.updGoods(goodsSku, SecurityConstants.INNER);
                    }
                }else{
                    LambdaQueryWrapper<Order> wrapper1= Wrappers.lambdaQuery();
                    wrapper1.eq(Order::getOrderNo,orderNO);
                    wrapper1.eq(Order::getDelFlag,0);
                    Order page1 = OrderMapper.selectOne(wrapper1);
                    price=page1.getTotalAmount().doubleValue();
                    body = " 订单支付";
                    subject = " 订单支付";
                    Map<String, Object> map = new HashMap<String, Object>();
                    if (type == 1) {
                        // 支付宝预下单
                        return this.alipay(zfbOpenid, orderNO, subject, body, price, request);
                    } if (type == 2) {
                        // 微信预下单
                        return this.wxpay(2, orderNO, body,openId, price, request);
                    }
                    return R.ok(returnMap);
                }
                if (page1.getPoints() != 0) {
                    MemberPointsDTO memberPointsDTO = new MemberPointsDTO();
                    memberPointsDTO.setMemberId(page1.getMemberId());
                    memberPointsDTO.setPointsType(1);
                    memberPointsDTO.setPointsStatus(PointStatusEnum.INCREASE);
                    memberPointsDTO.setPoints(page1.getPoints());
                    memberClient.addMemberPoints(memberPointsDTO);
                }
                updMembeOneDTO MembeOneDTO = new updMembeOneDTO();
                MembeOneDTO.setType(1);
                MembeOneDTO.setMemberId(page1.getMemberId());
                MembeOneDTO.setMoney(page1.getTotalAmount());
                MembeOneDTO.setTotalPoints(page1.getPoints());
                memberClient.updMembeOne(MembeOneDTO, SecurityConstants.INNER);
            }
        } catch (Exception e) {
            log.info("获取异常", e);
            if (orderNO.contains("BO")) {
                LambdaQueryWrapper<OrderAuctionBond> wrapper1 = Wrappers.lambdaQuery();
                wrapper1.eq(OrderAuctionBond::getOrderNo, orderNO);
                wrapper1.eq(OrderAuctionBond::getDelFlag, 0);
                OrderAuctionBond one = orderAuctionBondMapper.selectOne(wrapper1);
                price = one.getBond().doubleValue();
                body = " 订单支付";
                subject = " 订单支付";
                if (type == 1) {
                    // 支付宝预下单
                    return this.alipay(zfbOpenid, orderNO, subject, body, price, request);
                }
                if (type == 2) {
                    // 微信预下单
                    R<Map<String, Object>> wxpayR = this.wxpay(2, orderNO, body, openId, price,
                            request);
                    Map<String, Object> wxpay = wxpayR.getData();
                    if (wxpay.get(
                            "result_code").equals("FAIL") && wxpay.get("err_code_des")
                            .equals("201 商户订单号重复")) {
                        one.setOrderNo(OrderUtil.getOrderNoForPrefix("BO"));
                        orderAuctionBondMapper.updateById(one);
                        wxpayR = this.wxpay(2, one.getOrderNo(), body, openId, price,
                                request);
                    }
                    return wxpayR;
                }
            } else {
                LambdaQueryWrapper<Order> wrapper1 = Wrappers.lambdaQuery();
                wrapper1.eq(Order::getOrderNo, orderNO);
                wrapper1.eq(Order::getDelFlag, 0);
                Order page1 = orderMapper.selectOne(wrapper1);
                price = page1.getTotalAmount().doubleValue();
                body = " 订单支付";
                subject = " 订单支付";
                Map<String, Object> map = new HashMap<String, Object>();
                if (type == 1) {
                    // 支付宝预下单
                    return this.alipay(zfbOpenid, orderNO, subject, body, price, request);
                }
                if (type == 2) {
                    // 微信预下单
                    R<Map<String, Object>> wxpayR = this.wxpay(2, orderNO, body, openId, price,
                            request);
                    Map<String, Object> wxpay = wxpayR.getData();
                    if (wxpay.get("result_code").equals("FAIL") && wxpay.get("err_code_des")
                            .equals("201 商户订单号重复")) {
                        String prefix = page1.getOrderNo().substring(0, 2);
                        page1.setOrderNo(OrderUtil.getOrderNoForPrefix(prefix));
                        orderMapper.updateById(page1);
                        wxpayR = this.wxpay(2, page1.getOrderNo(), body, openId, price,
                                request);
                    }
                    return wxpayR;
                }
            }
        }
        return R.fail("获取异常");
    }
@@ -284,23 +278,61 @@
                            wrapper1.eq(OrderAuctionBond::getDelFlag,0);
                            OrderAuctionBond one1 = orderAuctionBondMapper.selectOne(wrapper1);
                            if (one1.getOrderTimeSx().isAfter(LocalDateTime.now())){
                            if (one1.getBondType().equals(AuctionOrderTypeEnum.REGULAR_ITEMS) &&
                                    one1.getOrderTimeSx().isBefore(LocalDateTime.now())) {
                                boolean bo = refundForAlipay(paylog1.getOutTradeNo(), paylog1.getTradeNo(), paylog1.getPayMoney());
                            }
                            one1.setBoundStatus(BondStatusEnum.PAID);
                            orderAuctionBondMapper.updateById(one1);
                            AuctionOrderTypeEnum bondType = one1.getBondType();
                            AuctionBondJl auctionBondJl = null;
                            if (bondType.equals(AuctionOrderTypeEnum.AUCTION_ITEMS)) {
                                auctionBondJl = auctionClient.getAuctionBondJLByTargetId(
                                                one1.getAuctionSalesroomId(), one1.getMemberId(),
                                                bondType.getCode(), SecurityConstants.INNER)
                                        .getData();
                                log.info("保证金支付回调,添加拍卖参与记录开始进行");
                                if (Objects.isNull(auctionBondJl)) {
                                    auctionBondJl = new AuctionBondJl();
                                    auctionBondJl.setAuctionSalesroomId(
                                            one1.getAuctionSalesroomId());
                                    auctionBondJl.setIsState(0);
                                    auctionBondJl.setBondType(bondType.getCode());
                                    auctionBondJl.setMemberId(
                                            one1.getMemberId());
                                } else {
                                    auctionBondJl.setIsState(0);
                                }
                            } else {
                                auctionBondJl = auctionClient.getAuctionBondJLByTargetId(
                                                one1.getAuctionGoodsId(), one1.getMemberId(),
                                                bondType.getCode(), SecurityConstants.INNER)
                                        .getData();
                                if (Objects.isNull(auctionBondJl)) {
                                    auctionBondJl = new AuctionBondJl();
                                    auctionBondJl.setAuctionGoodsId(one1.getAuctionGoodsId());
                                    auctionBondJl.setIsState(0);
                                    auctionBondJl.setBondType(bondType.getCode());
                                    auctionBondJl.setMemberId(
                                            one1.getMemberId());
                                } else {
                                    auctionBondJl.setIsState(0);
                                }
                            }
                            auctionClient.saveOrUpdateAuctionBondJl(auctionBondJl,
                                    SecurityConstants.INNER);
                            log.info("保证金支付回调,添加拍卖参与记录结束");
                        }else{
                            LambdaQueryWrapper<Order> wrapper1= Wrappers.lambdaQuery();
                            wrapper1.eq(Order::getOrderNo,paylog1.getOutTradeNo());
                            wrapper1.eq(Order::getDelFlag,0);
                            Order page1 = OrderMapper.selectOne(wrapper1);
                            Order page1 = orderMapper.selectOne(wrapper1);
                            page1.setOrderStatus(OrderStatusEnum.TO_BE_SHIPPED);
                            page1.setPaymentMethod(PaymentMethodEnum.ALIPAY);
                            page1.setPayTime(LocalDateTime.now());
                            orderMapper.updateById(page1);
                            if(page1.getOrderNo().contains("SP")){
                                GoodsSku goodsSku =new GoodsSku();
                                goodsSku.setId(page1.getGoodsSkuId());
@@ -316,19 +348,23 @@
                            }
                            if(page1.getOrderNo().contains("TG")){
                                log.info(
                                        "===================================开始处理团购回调===================================");
                                GoodsGroupPurchase goodsSeckiGoodsGroupPurchaseOne = goodsSkuClient.getGoodsSeckiGoodsGroupPurchaseOne(page1.getGoodsSkuId(), SecurityConstants.INNER).getData();
                                GoodsGroupPurchaseInfo goodsSeckiGoodsGroupPurchaseInfo = goodsSkuClient.getGoodsSeckiGoodsGroupPurchaseInfo(page1.getGoodsSkuId(), SecurityConstants.INNER).getData();
                                if (goodsSeckiGoodsGroupPurchaseInfo!=null){
                                    log.info("==================已有待成团团购================");
                                    page1.setGroupNo(goodsSeckiGoodsGroupPurchaseInfo.getMubre());
                                    OrderMapper.updateById(page1);
                                    orderMapper.updateById(page1);
                                    Integer i= goodsSeckiGoodsGroupPurchaseInfo.getPurchaseNum()+page1.getGoodsQuantity();
                                    goodsSeckiGoodsGroupPurchaseInfo.setPurchaseNum(i);
                                    goodsSkuClient.updgoodsGroupPurchaseInfo(goodsSeckiGoodsGroupPurchaseInfo, SecurityConstants.INNER);
                                }else{
                                    log.info("==================开启一个新团================");
                                    UUID uuid = UUID.randomUUID();
                                    page1.setGroupNo(uuid.toString());
                                    OrderMapper.updateById(page1);
                                    orderMapper.updateById(page1);
                                    GoodsGroupPurchaseInfo goodsGroupPurchaseInfo=new GoodsGroupPurchaseInfo();
                                    goodsGroupPurchaseInfo.setGroupSize(goodsSeckiGoodsGroupPurchaseOne.getGroupSize());
                                    goodsGroupPurchaseInfo.setCurrentNumber(1);
@@ -340,6 +376,7 @@
                                }
                            }
                        }
                    }
@@ -431,7 +468,8 @@
                        wrapper1.eq(OrderAuctionBond::getOrderNo,paylog.getOutTradeNo());
                        wrapper1.eq(OrderAuctionBond::getDelFlag,0);
                        OrderAuctionBond one1 = orderAuctionBondMapper.selectOne(wrapper1);
                        if (one1.getOrderTimeSx().isAfter(LocalDateTime.now())){
                        if (one1.getBondType().equals(AuctionOrderTypeEnum.REGULAR_ITEMS)
                                && one1.getOrderTimeSx().isBefore(LocalDateTime.now())) {
                            String refundMoney = SinataUtil.doubleRetainTwo(paylog.getPayMoney() * 100d);
                            Integer refundFee = Integer.parseInt(refundMoney.substring(0, refundMoney.length() - 3));
                            String money = SinataUtil.doubleRetainTwo(paylog.getPayMoney() * 100d);
@@ -448,16 +486,53 @@
                        one1.setBoundStatus(BondStatusEnum.PAID);
                        one1.setPaymentMethod(PaymentMethodEnum.WECHAT);
                        orderAuctionBondMapper.updateById(one1);
                        AuctionOrderTypeEnum bondType = one1.getBondType();
                        AuctionBondJl auctionBondJl = null;
                        if (bondType.equals(AuctionOrderTypeEnum.AUCTION_ITEMS)) {
                            auctionBondJl = auctionClient.getAuctionBondJLByTargetId(
                                            one1.getAuctionSalesroomId(), one1.getMemberId(),
                                            bondType.getCode(), SecurityConstants.INNER)
                                    .getData();
                            log.info("保证金支付回调,添加拍卖参与记录开始进行");
                            if (Objects.isNull(auctionBondJl)) {
                                auctionBondJl = new AuctionBondJl();
                                auctionBondJl.setAuctionSalesroomId(
                                        one1.getAuctionSalesroomId());
                                auctionBondJl.setIsState(0);
                                auctionBondJl.setBondType(bondType.getCode());
                                auctionBondJl.setMemberId(
                                        one1.getMemberId());
                            } else {
                                auctionBondJl.setIsState(0);
                            }
                        } else {
                            auctionBondJl = auctionClient.getAuctionBondJLByTargetId(
                                            one1.getAuctionGoodsId(), one1.getMemberId(),
                                            bondType.getCode(), SecurityConstants.INNER)
                                    .getData();
                            if (Objects.isNull(auctionBondJl)) {
                                auctionBondJl = new AuctionBondJl();
                                auctionBondJl.setAuctionGoodsId(one1.getAuctionGoodsId());
                                auctionBondJl.setIsState(0);
                                auctionBondJl.setBondType(bondType.getCode());
                                auctionBondJl.setMemberId(
                                        one1.getMemberId());
                            } else {
                                auctionBondJl.setIsState(0);
                            }
                        }
                        auctionClient.saveOrUpdateAuctionBondJl(auctionBondJl,
                                SecurityConstants.INNER);
                        log.info("保证金支付回调,添加拍卖参与记录结束");
                    }else{
                        LambdaQueryWrapper<Order> wrapper1= Wrappers.lambdaQuery();
                        wrapper1.eq(Order::getOrderNo,paylog.getOutTradeNo());
                        wrapper1.eq(Order::getDelFlag,0);
                        Order page1 = OrderMapper.selectOne(wrapper1);
                        Order page1 = orderMapper.selectOne(wrapper1);
                        page1.setOrderStatus(OrderStatusEnum.TO_BE_SHIPPED);
                        page1.setPaymentMethod(PaymentMethodEnum.WECHAT);
                        page1.setPayTime(LocalDateTime.now());
                        orderMapper.updateById(page1);
                        if(page1.getOrderNo().contains("SP")){
                            GoodsSku goodsSku =new GoodsSku();
@@ -473,19 +548,23 @@
                            goodsSkuClient.updGoodsSeckill1(goodsSku, SecurityConstants.INNER);
                        }
                        if(page1.getOrderNo().contains("TG")){
                            log.info(
                                    "===================================开始处理团购回调===================================");
                            GoodsGroupPurchase goodsSeckiGoodsGroupPurchaseOne = goodsSkuClient.getGoodsSeckiGoodsGroupPurchaseOne(page1.getGoodsSkuId(), SecurityConstants.INNER).getData();
                            GoodsGroupPurchaseInfo goodsSeckiGoodsGroupPurchaseInfo = goodsSkuClient.getGoodsSeckiGoodsGroupPurchaseInfo(page1.getGoodsSkuId(), SecurityConstants.INNER).getData();
                            if (goodsSeckiGoodsGroupPurchaseInfo!=null){
                                log.info("==================已有待成团团购================");
                                page1.setGroupNo(goodsSeckiGoodsGroupPurchaseInfo.getMubre());
                                OrderMapper.updateById(page1);
                                orderMapper.updateById(page1);
                                Integer i= goodsSeckiGoodsGroupPurchaseInfo.getPurchaseNum()+page1.getGoodsQuantity();
                                goodsSeckiGoodsGroupPurchaseInfo.setPurchaseNum(i);
                                goodsSkuClient.updgoodsGroupPurchaseInfo(goodsSeckiGoodsGroupPurchaseInfo, SecurityConstants.INNER);
                            }else{
                                log.info("==================开启一个新团================");
                                UUID uuid = UUID.randomUUID();
                                page1.setGroupNo(uuid.toString());
                                OrderMapper.updateById(page1);
                                orderMapper.updateById(page1);
                                GoodsGroupPurchaseInfo goodsGroupPurchaseInfo=new GoodsGroupPurchaseInfo();
                                goodsGroupPurchaseInfo.setGroupSize(goodsSeckiGoodsGroupPurchaseOne.getGroupSize());
                                goodsGroupPurchaseInfo.setCurrentNumber(1);
@@ -643,6 +722,8 @@
            String money=SinataUtil.doubleRetainTwo(price*100d);
            Integer price1 = Integer.parseInt(money.substring(0,money.length()-3));
            log.info(
                    "============================>WxpayController.createOrder__price1:\n" + price1);
            paraMap.put("total_fee", price1.toString());
            //设置请求参数(通知地址)
            paraMap.put("notify_url", Configure.wx_notify_url);
@@ -656,9 +737,13 @@
            String sign = PaymentKit.createSign(paraMap, "HSCEWrfSYiwxR6sesZ6De91Xh3m447sh");
            paraMap.put("sign", sign);
            //统一下单,向微信api发送数据
            log.info(
                    "============================>WxpayController.paraMap:\n" + paraMap);
            //转成xml
            String xmlResult = WxPayApi.pushOrder(false, paraMap);
            Map<String, String> map = PaymentKit.xmlToMap(xmlResult);
            log.info(
                    "============================>WxpayController.map:\n" + map);
            //返回状态码
            String returnCode = map.get("return_code");
            /*      Assert.isTrue("SUCCESS".equals(returnCode), getMsgByCode(returnCode));*/
@@ -680,6 +765,7 @@
            returnMap.put("sign", signature);
            returnMap.put("Type",2);
            returnMap.put("result_code", map.get("result_code"));
            returnMap.put("err_code_des", map.get("err_code_des"));
            // 对获取预支付返回接口参数进行封装(生成支付订单接口数据)
            return R.ok(returnMap);
@@ -821,10 +907,11 @@
     */
    @Override
    public Map<String, Object> refund(List<RefundDTO> refundDTOS) {
        log.info("开始退款,入参:{}", refundDTOS);
        Map<String, Object> map = new HashMap<>();
        Set<String> orderNoList = refundDTOS.stream().map(RefundDTO::getOrderNo)
                .collect(Collectors.toSet());
        if (StringUtils.isNotEmpty(orderNoList)) {
        if (StringUtils.isNotEmpty(refundDTOS)) {
            Set<String> orderNoList = refundDTOS.stream().map(RefundDTO::getOrderNo)
                    .collect(Collectors.toSet());
            Map<String, Paylog> paylogMap = this.lambdaQuery()
                    .in(Paylog::getOutTradeNo, orderNoList).eq(Paylog::getState, 1).list().stream()
                    .collect(Collectors.toMap(Paylog::getOutTradeNo, Function.identity()));