From 54ca1488669f98974f0552c9bf6b8ae35e7e902b Mon Sep 17 00:00:00 2001 From: rentaiming <806181062@qq.com> Date: 星期五, 31 五月 2024 11:22:17 +0800 Subject: [PATCH] 写用户端接口 --- ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberAuctionSalesroomWdDTO.java | 8 + ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java | 35 +++++ ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java | 110 +++++++++++--- ruoyi-modules/ruoyi-auction/src/main/resources/mapper/auction/AuctionSalesroomMapper.xml | 6 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomGoodsController.java | 2 ruoyi-modules/ruoyi-auction/src/main/resources/mapper/auction/AuctionGoodsMapper.xml | 3 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java | 12 + ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/dto/AuctionSalesroomGoodsDTO.java | 2 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberAuctionSalesroomDTO.java | 3 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionSalesroomMapper.java | 2 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionBrowseRecordServiceImpl.java | 156 ++++++++++++++++++++++ ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/AuctionGoodsListPageDTO.java | 4 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/AuctionBrowseRecordController.java | 40 +++++ ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionBrowseRecordService.java | 9 + ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/AuctionGoodsListDTO.java | 3 15 files changed, 361 insertions(+), 34 deletions(-) diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/AuctionGoodsListDTO.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/AuctionGoodsListDTO.java index 2213d17..7919076 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/AuctionGoodsListDTO.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/AuctionGoodsListDTO.java @@ -15,4 +15,7 @@ @ApiModelProperty(value = "会员id") private Long memberId; + @ApiModelProperty(value = "拍卖状态 0=预展中 1=拍卖中 2=已结束 4=全部") + private Integer startStatus; + } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/AuctionGoodsListPageDTO.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/AuctionGoodsListPageDTO.java index 28a9da5..72d321d 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/AuctionGoodsListPageDTO.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/AuctionGoodsListPageDTO.java @@ -1,5 +1,6 @@ package com.ruoyi.system.api.domain.dto; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Set; @@ -7,4 +8,7 @@ @Data public class AuctionGoodsListPageDTO { private Set<Long> goodsSkuIdList ; + + @ApiModelProperty(value = "拍卖状态 0=预展中 1=拍卖中 2=已结束 4=全部") + private Integer startStatus; } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberAuctionSalesroomDTO.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberAuctionSalesroomDTO.java index 6ccd835..5dcf7b2 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberAuctionSalesroomDTO.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberAuctionSalesroomDTO.java @@ -18,4 +18,7 @@ @ApiModelProperty(value = "拍卖场编号") private String salesroomNO; + @ApiModelProperty(value = "拍卖状态 0=预展中 1=拍卖中 2=已结束 4=全部") + private Integer status; + } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberAuctionSalesroomWdDTO.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberAuctionSalesroomWdDTO.java index 55be5cb..d3ca12c 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberAuctionSalesroomWdDTO.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberAuctionSalesroomWdDTO.java @@ -1,5 +1,6 @@ package com.ruoyi.system.api.domain.dto; +import com.ruoyi.common.core.enums.AuctionStartStatusEnum; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -12,4 +13,11 @@ @ApiModelProperty(value = "拍卖会id") private Set<Long> goodsSkuIdList; + + @ApiModelProperty(value = "拍卖状态 0=预展中 1=拍卖中 2=已结束 4=全部") + private Integer status; + + @ApiModelProperty(value = "拍卖场名称") + private String salesroomName; + } diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/AuctionBrowseRecordController.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/AuctionBrowseRecordController.java index b7e9966..93f9d9c 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/AuctionBrowseRecordController.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/AuctionBrowseRecordController.java @@ -1,8 +1,24 @@ package com.ruoyi.auction.controller.forepart; +import com.ruoyi.auction.service.IAuctionBrowseRecordService; +import com.ruoyi.auction.service.IAuctionGoodsService; +import com.ruoyi.auction.service.IAuctionSalesroomGoodsService; +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.dto.AuctionCollectionDTO; +import com.ruoyi.system.api.domain.dto.AuctionGoodsListDTO; +import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO; +import com.ruoyi.system.api.domain.vo.AuctionGoodsListVO; +import com.ruoyi.system.api.domain.vo.WdMemberAuctionSalesroomVO; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; /** * <p> @@ -16,4 +32,28 @@ @RequestMapping("/auction-browse-record") public class AuctionBrowseRecordController { + @Resource + private IAuctionBrowseRecordService iAuctionBrowseRecordService; + + @Resource + private IAuctionSalesroomService iAuctionSalesroomService; + + @Resource + private IAuctionGoodsService iAuctionGoodsService; + + @RequestMapping("/getWdAuctionBrowseRecordList") + @ResponseBody + @ApiOperation(value = "用户端-我的拍卖-我的浏览的普通拍品") + public R<PageDTO<AuctionGoodsListVO>> getWdAuctionBrowseRecordList(@RequestBody AuctionGoodsListDTO auctionGoodsListDTO) { + return R.ok(iAuctionBrowseRecordService.getWdAuctionBrowseRecordList(auctionGoodsListDTO)); + } + + @RequestMapping("/getWdAuctionSalesroomBrowseRecordList") + @ResponseBody + @ApiOperation(value = "用户端-我的拍卖-我的浏览的拍卖场") + public R<PageDTO<WdMemberAuctionSalesroomVO>> getWdAuctionSalesroomBrowseRecordList(@RequestBody MemberAuctionSalesroomDTO MemberAuctionSalesroomDTO) { + return R.ok(iAuctionBrowseRecordService.getWdAuctionSalesroomBrowseRecordList(MemberAuctionSalesroomDTO)); + } + + } diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomGoodsController.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomGoodsController.java index 5592b7d..c83f520 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomGoodsController.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/ForepartAuctionSalesroomGoodsController.java @@ -91,7 +91,7 @@ */ @RequestMapping("/auctionSalesroomGoodsEnd") @ResponseBody - @ApiOperation(value = "拍卖师端-拍卖场商品下一个立即结束") + @ApiOperation(value = "拍卖师端-拍卖场商品立即结束") public R auctionSalesroomGoodsEnd(@RequestBody AuctionSalesroomGoodsDTO auctionSalesroomGoodsDTO) { iAuctionSalesroomGoodsService.auctionSalesroomGoodsStart(auctionSalesroomGoodsDTO); return R.ok(); diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/dto/AuctionSalesroomGoodsDTO.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/dto/AuctionSalesroomGoodsDTO.java index 9976b76..077ed2f 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/dto/AuctionSalesroomGoodsDTO.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/forepart/dto/AuctionSalesroomGoodsDTO.java @@ -15,6 +15,8 @@ @ApiModelProperty(value = "拍卖场名称") private String salesroomName; + @ApiModelProperty(value = "会员id") + private Long memberId; } diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionSalesroomMapper.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionSalesroomMapper.java index 78d30cb..72ac888 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionSalesroomMapper.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionSalesroomMapper.java @@ -20,5 +20,5 @@ public interface AuctionSalesroomMapper extends BaseMapper<AuctionSalesroom> { List<AuctionSalesroom> pageMemberAuctionSalesroomList(Page page, @Param("param") MemberAuctionSalesroomDTO memberAuctionSalesroomDTO); - List<AuctionSalesroom> pageMemberAuctionSalesroomWdList(Page page, MemberAuctionSalesroomWdDTO memberAuctionSalesroomWdDTO); + List<AuctionSalesroom> pageMemberAuctionSalesroomWdList(Page page,@Param("param") MemberAuctionSalesroomWdDTO memberAuctionSalesroomWdDTO); } diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionBrowseRecordService.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionBrowseRecordService.java index 6733d4c..e3ef68c 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionBrowseRecordService.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionBrowseRecordService.java @@ -2,6 +2,12 @@ import com.ruoyi.auction.domain.AuctionBrowseRecord; import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.common.core.utils.page.PageDTO; +import com.ruoyi.system.api.domain.dto.AuctionGoodsListDTO; +import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO; +import com.ruoyi.system.api.domain.vo.AuctionGoodsListVO; +import com.ruoyi.system.api.domain.vo.WdMemberAuctionSalesroomVO; +import org.springframework.web.bind.annotation.RequestBody; /** * <p> @@ -12,5 +18,8 @@ * @since 2024-05-30 */ public interface IAuctionBrowseRecordService extends IService<AuctionBrowseRecord> { + PageDTO<AuctionGoodsListVO> getWdAuctionBrowseRecordList(@RequestBody AuctionGoodsListDTO auctionGoodsListDTO); + PageDTO<WdMemberAuctionSalesroomVO> getWdAuctionSalesroomBrowseRecordList(@RequestBody MemberAuctionSalesroomDTO MemberAuctionSalesroomDTO); + } diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionBrowseRecordServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionBrowseRecordServiceImpl.java index f93ca98..3d566ff 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionBrowseRecordServiceImpl.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionBrowseRecordServiceImpl.java @@ -1,10 +1,38 @@ package com.ruoyi.auction.service.impl; +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.auction.domain.AuctionBrowseRecord; import com.ruoyi.auction.mapper.AuctionBrowseRecordMapper; +import com.ruoyi.auction.mapper.AuctionGoodsMapper; +import com.ruoyi.auction.mapper.AuctionSalesroomMapper; import com.ruoyi.auction.service.IAuctionBrowseRecordService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +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.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 org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; /** * <p> @@ -17,4 +45,132 @@ @Service public class AuctionBrowseRecordServiceImpl extends ServiceImpl<AuctionBrowseRecordMapper, AuctionBrowseRecord> implements IAuctionBrowseRecordService { + @Resource + private IAuctionBrowseRecordService iAuctionBrowseRecordService; + + @Resource + private AuctionSalesroomMapper auctionSalesroomMapper; + + @Resource + private OrderClient orderClient; + + @Resource + private GoodsSkuClient goodsSkuClient; + + @Resource + private AuctionGoodsMapper auctionGoodsMapper; + + + @Override + public PageDTO<AuctionGoodsListVO> getWdAuctionBrowseRecordList(AuctionGoodsListDTO auctionGoodsListDTO) { + LocalDateTime now = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + String formattedDate = now.format(formatter); + LocalDateTime parseTime = LocalDateTime.parse(formattedDate, formatter); + LocalDateTime newTime7 = now.minusDays(7); + String formattedDate7 = newTime7.format(formatter); + LocalDateTime parseTime7 = LocalDateTime.parse(formattedDate7, formatter); + + LambdaQueryWrapper<AuctionBrowseRecord> wrapper3= Wrappers.lambdaQuery(); + wrapper3.eq(AuctionBrowseRecord::getDelFlag,0); + wrapper3.eq(AuctionBrowseRecord::getTargetId,auctionGoodsListDTO.getGoodsSkuId()); + wrapper3.eq(AuctionBrowseRecord::getMemberId,auctionGoodsListDTO.getMemberId()); + wrapper3.ge(AuctionBrowseRecord::getCreateTime, parseTime7) + .le(AuctionBrowseRecord::getCreateTime, parseTime); + + List<AuctionBrowseRecord> list = iAuctionBrowseRecordService.list(wrapper3); + Set<Long> goodsSkuIdList = null; + goodsSkuIdList = list.stream().map(AuctionBrowseRecord::getTargetId) + .collect(Collectors.toSet()); + + Set<Long> goodsSkuIdList1 = null; + if (StringUtils.isNotEmpty(auctionGoodsListDTO.getGoodsSkuName())) { + List<GoodsSku> goodsSku = goodsSkuClient.getGoodsByName(auctionGoodsListDTO.getGoodsSkuName(), + SecurityConstants.INNER) + .getData(); + goodsSkuIdList1 = goodsSku.stream().map(GoodsSku::getId) + .collect(Collectors.toSet()); + } + Set<Long> goodsSkuIdList2 =null; + if (goodsSkuIdList1.size()==0){ + goodsSkuIdList.retainAll(goodsSkuIdList1); + goodsSkuIdList2=goodsSkuIdList; + }else { + goodsSkuIdList2=goodsSkuIdList; + } + Page<AuctionGoodsListVO> page = new Page<>(); + page.setSize(auctionGoodsListDTO.getPageSize()); + page.setCurrent(auctionGoodsListDTO.getPageCurr()); + AuctionGoodsListPageDTO auctionGoodsListPageDTO=new AuctionGoodsListPageDTO(); + auctionGoodsListPageDTO.setGoodsSkuIdList(goodsSkuIdList2); + List<AuctionGoods> auctionGoodsPgeList = auctionGoodsMapper.getAuctionGoodsPgeList(page, auctionGoodsListPageDTO); + List<AuctionGoodsListVO> auctionGoodsVOS=new ArrayList<>(); + for (AuctionGoods auctionGoods:auctionGoodsPgeList){ + AuctionGoodsListVO auctionGoodsVO=new AuctionGoodsListVO(); + auctionGoodsVO.setAuctionStock(auctionGoods.getAuctionStock()); + auctionGoodsVO.setGoodsSkuId(auctionGoods.getId()); + auctionGoodsVO.setEndTime(auctionGoods.getEndTime()); + auctionGoodsVO.setStartTime(auctionGoods.getStartTime()); + auctionGoodsVO.setStartingPrice(auctionGoods.getStartingPrice()); + auctionGoodsVO.setStartStatus(auctionGoods.getStartStatus()); + GoodsSku goodsSkuOne = goodsSkuClient.getGoodsSkuOne(auctionGoods.getGoodsSkuId(), SecurityConstants.INNER).getData(); + auctionGoodsVO.setUnit(goodsSkuOne.getUnit()); + auctionGoodsVO.setSpec(goodsSkuOne.getSpec()); + auctionGoodsVO.setSpecUnit(goodsSkuOne.getSpecUnit()); + auctionGoodsVO.setGoodsSkuName(goodsSkuOne.getSkuName()); + auctionGoodsVO.setCoverPic(goodsSkuOne.getCoverPic()); + auctionGoodsVOS.add(auctionGoodsVO); + + } + page.setRecords(auctionGoodsVOS); + return PageDTO.of(page); + } + + @Override + public PageDTO<WdMemberAuctionSalesroomVO> getWdAuctionSalesroomBrowseRecordList(MemberAuctionSalesroomDTO MemberAuctionSalesroomDTO) { + LocalDateTime now = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + String formattedDate = now.format(formatter); + LocalDateTime parseTime = LocalDateTime.parse(formattedDate, formatter); + LocalDateTime newTime7 = now.minusDays(7); + String formattedDate7 = newTime7.format(formatter); + LocalDateTime parseTime7 = LocalDateTime.parse(formattedDate7, formatter); + + LambdaQueryWrapper<AuctionBrowseRecord> wrapper3= Wrappers.lambdaQuery(); + wrapper3.eq(AuctionBrowseRecord::getDelFlag,0); + wrapper3.eq(AuctionBrowseRecord::getTargetId,MemberAuctionSalesroomDTO.getAuctionSalesroomId()); + wrapper3.eq(AuctionBrowseRecord::getMemberId,MemberAuctionSalesroomDTO.getMemberId()); + wrapper3.ge(AuctionBrowseRecord::getCreateTime, parseTime7) + .le(AuctionBrowseRecord::getCreateTime, parseTime); + + List<AuctionBrowseRecord> list = iAuctionBrowseRecordService.list(wrapper3); + Set<Long> goodsSkuIdList = null; + goodsSkuIdList = list.stream().map(AuctionBrowseRecord::getTargetId) + .collect(Collectors.toSet()); + Page<WdMemberAuctionSalesroomVO> page = new Page<>(); + page.setSize(MemberAuctionSalesroomDTO.getPageSize()); + page.setCurrent(MemberAuctionSalesroomDTO.getPageCurr()); + MemberAuctionSalesroomWdDTO memberAuctionSalesroomWdDTO=new MemberAuctionSalesroomWdDTO(); + memberAuctionSalesroomWdDTO.setGoodsSkuIdList(goodsSkuIdList); + memberAuctionSalesroomWdDTO.setSalesroomName(MemberAuctionSalesroomDTO.getSalesroomName()); + + List<AuctionSalesroom> auctionSalesroomList=auctionSalesroomMapper.pageMemberAuctionSalesroomWdList(page,memberAuctionSalesroomWdDTO); + List<WdMemberAuctionSalesroomVO> List=new ArrayList<>(); + for (AuctionSalesroom auctionSalesroom:auctionSalesroomList){ + WdMemberAuctionSalesroomVO memberAuctionSalesroomVO=new WdMemberAuctionSalesroomVO(); + memberAuctionSalesroomVO.setSalesroomName(auctionSalesroom.getSalesroomName()); + memberAuctionSalesroomVO.setDescription(auctionSalesroom.getDescription()); + memberAuctionSalesroomVO.setStatus(auctionSalesroom.getStatus().getCode()); + memberAuctionSalesroomVO.setSalesroomId(auctionSalesroom.getId()); + memberAuctionSalesroomVO.setCoverPic(auctionSalesroom.getCoverPic()); + MemberAuctionSalesroomDTO memberAuctionSalesroomDTO1=new MemberAuctionSalesroomDTO(); + memberAuctionSalesroomDTO1.setAuctionSalesroomId(auctionSalesroom.getId()); + memberAuctionSalesroomDTO1.setMemberId(MemberAuctionSalesroomDTO.getMemberId()); + List<OrderAuctionBond> data1 = orderClient.getOrderAuctionBondList(memberAuctionSalesroomDTO1, SecurityConstants.INNER).getData(); + memberAuctionSalesroomVO.setBondTime(data1.get(0).getCreateTime()); + List.add(memberAuctionSalesroomVO); + } + page.setRecords(List); + return PageDTO.of(page); + } } diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java index 9d07b61..22742c2 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java @@ -10,9 +10,11 @@ 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.AuctionBrowseRecord; import com.ruoyi.auction.domain.MemberAuctionCollection; import com.ruoyi.auction.mapper.AuctionGoodsMapper; import com.ruoyi.auction.service.IAuctionBidRecordService; +import com.ruoyi.auction.service.IAuctionBrowseRecordService; import com.ruoyi.auction.service.IAuctionGoodsService; import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.enums.AuctionOrderTypeEnum; @@ -46,6 +48,7 @@ import com.ruoyi.system.api.feignClient.OrderClient; import io.seata.spring.annotation.GlobalTransactional; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -84,6 +87,9 @@ @Resource private AuctionGoodsMapper auctionGoodsMapper; + + @Resource + private IAuctionBrowseRecordService iAuctionBrowseRecordService; /** * 获取拍卖商品列表的分页数据 @@ -426,6 +432,32 @@ }else{ auctionGoodsinfoVO.setIsApply(1); } + + LocalDateTime now = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + String formattedDate = now.format(formatter); + LocalDateTime parseTime = LocalDateTime.parse(formattedDate, formatter); + LocalDateTime newTime7 = now.minusDays(7); + String formattedDate7 = newTime7.format(formatter); + LocalDateTime parseTime7 = LocalDateTime.parse(formattedDate7, formatter); + + LambdaQueryWrapper<AuctionBrowseRecord> wrapper3=Wrappers.lambdaQuery(); + wrapper3.eq(AuctionBrowseRecord::getDelFlag,0); + wrapper3.eq(AuctionBrowseRecord::getTargetId,auctionGoodsListDTO.getGoodsSkuId()); + wrapper3.eq(AuctionBrowseRecord::getMemberId,auctionGoodsListDTO.getMemberId()); + wrapper3.ge(AuctionBrowseRecord::getCreateTime, parseTime7) + .le(AuctionBrowseRecord::getCreateTime, parseTime); + List<AuctionBrowseRecord> list = iAuctionBrowseRecordService.list(wrapper3); + if (list.size()==0){ + AuctionBrowseRecord auctionBrowseRecord=new AuctionBrowseRecord(); + auctionBrowseRecord.setBrowseType(AuctionOrderTypeEnum.REGULAR_ITEMS); + auctionBrowseRecord.setMemberId(auctionGoodsListDTO.getMemberId()); + auctionBrowseRecord.setTargetId(auctionGoodsListDTO.getGoodsSkuId()); + iAuctionBrowseRecordService.save(auctionBrowseRecord); + } + + + return auctionGoodsinfoVO; } @@ -440,6 +472,9 @@ AuctionGoodsListPageDTO auctionGoodsListPageDTO=new AuctionGoodsListPageDTO(); auctionGoodsListPageDTO.setGoodsSkuIdList(goodsSkuIdList); + if (auctionGoodsListDTO.getStartStatus()!=4){ + auctionGoodsListPageDTO.setStartStatus(auctionGoodsListDTO.getStartStatus()); + } Page<AuctionGoodsListVO> page = new Page<>(); page.setSize(auctionGoodsListDTO.getPageSize()); diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java index 19f8e55..03968fa 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.google.common.collect.Lists; import com.ruoyi.auction.controller.forepart.dto.AuctionSalesroomGoodsDTO; import com.ruoyi.auction.controller.forepart.dto.AuctionSalesroomGoodsInfoDTO; import com.ruoyi.auction.controller.forepart.dto.OrderDTO; @@ -11,9 +12,11 @@ import com.ruoyi.auction.controller.forepart.vo.AuctionSalesroomVO; import com.ruoyi.auction.controller.forepart.vo.ForepartAuctionSalesroomGoodsVO; import com.ruoyi.auction.domain.AuctionBidRecord; +import com.ruoyi.auction.domain.AuctionBrowseRecord; import com.ruoyi.auction.domain.AuctionSalesroomGoods; import com.ruoyi.auction.mapper.AuctionSalesroomGoodsMapper; import com.ruoyi.auction.service.IAuctionBidRecordService; +import com.ruoyi.auction.service.IAuctionBrowseRecordService; import com.ruoyi.auction.service.IAuctionSalesroomGoodsService; import com.ruoyi.auction.service.IAuctionSalesroomService; import com.ruoyi.common.core.constant.SecurityConstants; @@ -30,12 +33,14 @@ import com.ruoyi.system.api.domain.GoodsSku; import com.ruoyi.system.api.domain.Member; import com.ruoyi.system.api.domain.MemberAddress; +import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO; import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO; import com.ruoyi.system.api.feignClient.GoodsSkuClient; import com.ruoyi.system.api.feignClient.MemberClient; import com.ruoyi.system.api.feignClient.OrderClient; import java.math.BigDecimal; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; import javax.annotation.Resource; @@ -70,8 +75,7 @@ private OrderClient orderClient; @Resource - private IAuctionBidRecordService auctionBidRecordService; - + private IAuctionBrowseRecordService iAuctionBrowseRecordService; @@ -227,6 +231,33 @@ } auctionSalesroomVO.setElseAuctionSalesroomGoods(auctionSalesroomGoodsVOS); + + LocalDateTime now = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + String formattedDate = now.format(formatter); + LocalDateTime parseTime = LocalDateTime.parse(formattedDate, formatter); + LocalDateTime newTime7 = now.minusDays(7); + String formattedDate7 = newTime7.format(formatter); + LocalDateTime parseTime7 = LocalDateTime.parse(formattedDate7, formatter); + + LambdaQueryWrapper<AuctionBrowseRecord> wrapper3=Wrappers.lambdaQuery(); + wrapper3.eq(AuctionBrowseRecord::getDelFlag,0); + wrapper3.eq(AuctionBrowseRecord::getTargetId,ationSalesroomGoodsDTO.getAuctionSalesroomId()); + wrapper3.eq(AuctionBrowseRecord::getMemberId,ationSalesroomGoodsDTO.getMemberId()); + wrapper3.ge(AuctionBrowseRecord::getCreateTime, parseTime7) + .le(AuctionBrowseRecord::getCreateTime, parseTime); + List<AuctionBrowseRecord> list = iAuctionBrowseRecordService.list(wrapper3); + if (list.size()==0){ + AuctionBrowseRecord auctionBrowseRecord=new AuctionBrowseRecord(); + auctionBrowseRecord.setBrowseType(AuctionOrderTypeEnum.AUCTION_ITEMS); + auctionBrowseRecord.setMemberId(ationSalesroomGoodsDTO.getMemberId()); + auctionBrowseRecord.setTargetId(ationSalesroomGoodsDTO.getAuctionSalesroomId()); + iAuctionBrowseRecordService.save(auctionBrowseRecord); + } + + + + return auctionSalesroomVO; } @@ -275,13 +306,21 @@ wrapper2.eq(AuctionSalesroomGoods::getDelFlag,0); wrapper2.eq(AuctionSalesroomGoods::getAuctionSalesroomId,ationSalesroomGoodsDTO.getAuctionSalesroomId()); List<AuctionSalesroomGoods> auctionSalesroomGoods=iAuctionSalesroomGoodsService.list(wrapper2); - for (AuctionSalesroomGoods salesroomGoods:auctionSalesroomGoods){ - salesroomGoods.setStatus(AuctionStartStatusEnum.ENDED); - iAuctionSalesroomGoodsService.updateById(salesroomGoods); + if (auctionSalesroomGoods.size()>0){ + for (AuctionSalesroomGoods salesroomGoods:auctionSalesroomGoods){ + salesroomGoods.setStatus(AuctionStartStatusEnum.ENDED); + iAuctionSalesroomGoodsService.updateById(salesroomGoods); + + GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); + goodsStockUpdDTO.setGoodsSkuId(salesroomGoods.getGoodsSkuId()); + goodsStockUpdDTO.setAuctionStock(salesroomGoods.getSalesroomStock()); + goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO), + SecurityConstants.INNER); + + } + } List<Long> list=new ArrayList<>(); - - LambdaQueryWrapper<AuctionBidRecord> wrapper = Wrappers.lambdaQuery(); wrapper.eq(AuctionBidRecord::getAuctionSalesroomId, ationSalesroomGoodsDTO.getAuctionSalesroomId()); wrapper.eq(AuctionBidRecord::getDelFlag, 0); @@ -328,6 +367,8 @@ AuctionSalesroomGoods auctionSalesroomGoods=iAuctionSalesroomGoodsService.getOne(wrapper2); auctionSalesroomGoods.setStatus(AuctionStartStatusEnum.IN_AUCTION); iAuctionSalesroomGoodsService.updateById(auctionSalesroomGoods); + + } @@ -343,8 +384,6 @@ wrapper2.eq(AuctionSalesroomGoods::getDelFlag,0); wrapper2.eq(AuctionSalesroomGoods::getGoodsSkuId,auctionSalesroomGoodsDTO.getGoodsSkuId()); AuctionSalesroomGoods auctionSalesroomGood=iAuctionSalesroomGoodsService.getOne(wrapper2); - - AuctionSalesroom auctionSalesroom=iAuctionSalesroomService.getById(auctionSalesroomGood.getAuctionSalesroomId()); AuctionSalesroomGoods auctionSalesroomGoods=iAuctionSalesroomGoodsService.getById(auctionSalesroomGoodsDTO.getGoodsSkuId()); @@ -356,22 +395,39 @@ wrapper.eq(AuctionBidRecord::getDelFlag, 0); wrapper.orderByDesc(AuctionBidRecord::getLastBidAmount); auctionBidRecordList = iAuctionBidRecordService.list(wrapper); - //判断 - if (auctionBidRecordList.size() >= auctionSalesroomGoods.getSalesroomStock()) { - for (int i = 0; i <= auctionSalesroomGoods.getSalesroomStock(); i++) { - AuctionBidRecord auctionBidRecord = auctionBidRecordList.get(i); - auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL); - AddOrder(auctionBidRecord.getTargetId(), auctionBidRecord.getMemberId(), - auctionBidRecord.getLastBidAmount(), auctionSalesroom.getBond()); + if(auctionBidRecordList.size()>0){ + //判断 + if (auctionBidRecordList.size() >= auctionSalesroomGoods.getSalesroomStock()) { + for (int i = 0; i <= auctionSalesroomGoods.getSalesroomStock(); i++) { + AuctionBidRecord auctionBidRecord = auctionBidRecordList.get(i); + auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL); + AddOrder(auctionBidRecord.getTargetId(), auctionBidRecord.getMemberId(), + auctionBidRecord.getLastBidAmount(), auctionSalesroom.getBond()); + } + } else { + GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); + goodsStockUpdDTO.setGoodsSkuId(auctionSalesroomGoods.getGoodsSkuId()); + goodsStockUpdDTO.setAuctionStock(auctionSalesroomGoods.getSalesroomStock()- auctionBidRecordList.size()); + goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO), + SecurityConstants.INNER); + + + for (int i = 0; i <= auctionBidRecordList.size(); i++) { + AuctionBidRecord auctionBidRecord = auctionBidRecordList.get(i); + auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL); + AddOrder(auctionBidRecord.getTargetId(), auctionBidRecord.getMemberId(), + auctionBidRecord.getLastBidAmount(), auctionSalesroom.getBond()); + } } - } else { - for (int i = 0; i <= auctionBidRecordList.size(); i++) { - AuctionBidRecord auctionBidRecord = auctionBidRecordList.get(i); - auctionBidRecord.setStatus(BidStatusEnum.SUCCESSFUL); - AddOrder(auctionBidRecord.getTargetId(), auctionBidRecord.getMemberId(), - auctionBidRecord.getLastBidAmount(), auctionSalesroom.getBond()); - } + }else { + // 没有人出价,退回拍卖商品库存 + GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); + goodsStockUpdDTO.setGoodsSkuId(auctionSalesroomGoods.getGoodsSkuId()); + goodsStockUpdDTO.setAuctionStock(auctionSalesroomGoods.getSalesroomStock()); + goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO), + SecurityConstants.INNER); } + } auctionSalesroomGood.setStatus(AuctionStartStatusEnum.ENDED); @@ -417,7 +473,7 @@ wrapper1.eq(AuctionBidRecord::getAuctionType,2); wrapper1.eq(AuctionBidRecord::getTargetId,byId1.getId()); wrapper1.eq(AuctionBidRecord::getDelFlag,0); - AuctionBidRecord list1 = auctionBidRecordService.getOne(wrapper1); + AuctionBidRecord list1 = iAuctionBidRecordService.getOne(wrapper1); if (list1!=null){ AuctionSalesroomGoodsInfoVO.setIsBond(2); AuctionSalesroomGoodsInfoVO.setPresentBid(list1.getLastBidAmount()); @@ -442,7 +498,7 @@ wrapper.eq(AuctionBidRecord::getTargetId,auctionSalesroomGoodsInfoDTO.getGoodsSkuId()); wrapper.orderByDesc(AuctionBidRecord::getLastBidAmount); wrapper.last("limit 10"); - List<AuctionBidRecord> auctionBidRecordList=auctionBidRecordService.list(wrapper); + List<AuctionBidRecord> auctionBidRecordList=iAuctionBidRecordService.list(wrapper); List<AuctionBidRecordVO> auctionBidRecordVOList=new ArrayList<>(); for (int i=0;i<auctionBidRecordList.size();i++){ AuctionBidRecordVO auctionBidRecordVO=new AuctionBidRecordVO(); @@ -461,7 +517,7 @@ wrapper1.eq(AuctionBidRecord::getTargetId,auctionSalesroomGoodsInfoDTO.getGoodsSkuId()); wrapper1.eq(AuctionBidRecord::getMemberId,auctionSalesroomGoodsInfoDTO.getMemberId()); wrapper.last("limit 1"); - AuctionBidRecord auctionBidRecord=auctionBidRecordService.getOne(wrapper); + AuctionBidRecord auctionBidRecord=iAuctionBidRecordService.getOne(wrapper); LambdaQueryWrapper<AuctionBidRecord> wrapper3=Wrappers.lambdaQuery(); wrapper3.eq(AuctionBidRecord::getAuctionSalesroomId,auctionSalesroomGoodsInfoDTO.getAuctionSalesroomId()); @@ -469,7 +525,7 @@ wrapper3.eq(AuctionBidRecord::getTargetId,auctionSalesroomGoodsInfoDTO.getGoodsSkuId()); wrapper3.le(AuctionBidRecord::getId,auctionBidRecord.getId()); wrapper3.orderByDesc(AuctionBidRecord::getLastBidAmount); - Long count=auctionBidRecordService.count(wrapper); + Long count=iAuctionBidRecordService.count(wrapper); if (count>0){ AuctionBidRecordVO auctionBidRecordVO=new AuctionBidRecordVO(); auctionBidRecordVO.setSort(Integer.valueOf(count.intValue())); diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java index 3cc4c15..0d2d672 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java @@ -32,11 +32,7 @@ import com.ruoyi.auction.domain.AuctionVideo; import com.ruoyi.auction.mapper.AuctionSalesroomGoodsMapper; import com.ruoyi.auction.mapper.AuctionSalesroomMapper; -import com.ruoyi.auction.service.IAuctionBidRecordService; -import com.ruoyi.auction.service.IAuctionGoodsService; -import com.ruoyi.auction.service.IAuctionSalesroomGoodsService; -import com.ruoyi.auction.service.IAuctionSalesroomService; -import com.ruoyi.auction.service.IAuctionVideoService; +import com.ruoyi.auction.service.*; import com.ruoyi.auction.util.CreateQrCode; import com.ruoyi.auction.util.HttpUtils; import com.ruoyi.common.core.constant.SecurityConstants; @@ -130,6 +126,9 @@ private OrderClient orderClient; @Resource private MemberClient memberClient; + + @Resource + private IAuctionBrowseRecordService iAuctionBrowseRecordService; //微信 @@ -689,6 +688,9 @@ page.setCurrent(memberAuctionSalesroomDTO.getPageCurr()); MemberAuctionSalesroomWdDTO memberAuctionSalesroomWdDTO=new MemberAuctionSalesroomWdDTO(); memberAuctionSalesroomWdDTO.setGoodsSkuIdList(goodsSkuIdList); + if(memberAuctionSalesroomWdDTO.getStatus()!=4){ + memberAuctionSalesroomWdDTO.setStatus(memberAuctionSalesroomWdDTO.getStatus()); + } List<AuctionSalesroom> auctionSalesroomList=auctionSalesroomMapper.pageMemberAuctionSalesroomWdList(page,memberAuctionSalesroomWdDTO); List<WdMemberAuctionSalesroomVO> List=new ArrayList<>(); for (AuctionSalesroom auctionSalesroom:auctionSalesroomList){ diff --git a/ruoyi-modules/ruoyi-auction/src/main/resources/mapper/auction/AuctionGoodsMapper.xml b/ruoyi-modules/ruoyi-auction/src/main/resources/mapper/auction/AuctionGoodsMapper.xml index 6976939..8f0d99b 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/resources/mapper/auction/AuctionGoodsMapper.xml +++ b/ruoyi-modules/ruoyi-auction/src/main/resources/mapper/auction/AuctionGoodsMapper.xml @@ -4,6 +4,9 @@ <select id="getAuctionGoodsPgeList" resultType="com.ruoyi.system.api.domain.AuctionGoods"> SELECT * FROM t_auction_goods ta left join WHERE ta.del_flag = 0 and ta.listing_status=0 + <if test="param.startStatus!=null and param.startStatus != ''"> + AND ta.start_status=#{param.startStatus} + </if> <if test="param.goodsSkuIdList != null and param.goodsSkuIdList.size()>0"> OR ta.goods_sku_id IN <foreach collection="param.goodsSkuIdList" item="item" open="(" separator="," close=")"> diff --git a/ruoyi-modules/ruoyi-auction/src/main/resources/mapper/auction/AuctionSalesroomMapper.xml b/ruoyi-modules/ruoyi-auction/src/main/resources/mapper/auction/AuctionSalesroomMapper.xml index 77b0f89..5749bff 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/resources/mapper/auction/AuctionSalesroomMapper.xml +++ b/ruoyi-modules/ruoyi-auction/src/main/resources/mapper/auction/AuctionSalesroomMapper.xml @@ -19,6 +19,12 @@ <select id="pageMemberAuctionSalesroomWdList" resultType="com.ruoyi.system.api.domain.AuctionSalesroom"> SELECT * FROM t_auction_salesroom ta WHERE ta.del_flag = 0 + <if test="param.status!=null and param.status != ''"> + AND ta.status=#{param.status} + </if> + <if test="param.salesroomName!=null and param.salesroomName != ''"> + AND ta.salesroomName LIKE CONCAT('%',#{param.salesroomName},'%') + </if> <if test="param.goodsSkuIdList != null and param.goodsSkuIdList.size()>0"> OR ta.goods_sku_id IN <foreach collection="param.goodsSkuIdList" item="item" open="(" separator="," close=")"> -- Gitblit v1.7.1