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()));