ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/GoodsSkuFactory.java
@@ -9,6 +9,7 @@ import com.ruoyi.system.api.domain.GoodsSku; import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO; import com.ruoyi.system.api.feignClient.GoodsSkuClient; import java.util.Collection; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -88,6 +89,12 @@ public R<?> updGoodsStock(List<GoodsStockUpdDTO> goodsStockUpdDTOS, String source) { return R.fail("更新商品库存失败:" + cause.getMessage()); } @Override public R<List<GoodsSku>> getGoodsListByIds(Collection<Long> goodsIdList, String source) { return R.fail("根据商品id集合查询商品列表失败:" + cause.getMessage()); } }; } } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/GoodsSkuClient.java
@@ -11,6 +11,7 @@ import com.ruoyi.system.api.domain.GoodsSku; import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO; import com.ruoyi.system.api.factory.GoodsSkuFactory; import java.util.Collection; import java.util.List; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; @@ -80,4 +81,15 @@ @PutMapping("/goods-sku/upd-stock") R<?> updGoodsStock(@RequestBody List<GoodsStockUpdDTO> goodsStockUpdDTOS, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** * 根据商品id集合查询商品 * * @param goodsIdList 商品id集合 * @param source 请求来源 * @return 商品集合 */ @PostMapping("/goods-sku/list") R<List<GoodsSku>> getGoodsListByIds(@RequestBody Collection<Long> goodsIdList, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); } ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionGoodsController.java
@@ -1,9 +1,9 @@ package com.ruoyi.auction.controller.management; import com.ruoyi.auction.controller.management.dto.AuctionGoodsDTO; import com.ruoyi.auction.controller.management.dto.AuctionGoodsQuery; import com.ruoyi.auction.controller.management.vo.AuctionGoodsVO; import com.ruoyi.auction.controller.management.dto.MgtAuctionGoodsDTO; import com.ruoyi.auction.controller.management.dto.MgtAuctionGoodsQuery; import com.ruoyi.auction.controller.management.vo.MgtAuctionGoodsVO; import com.ruoyi.auction.service.IAuctionGoodsService; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.page.PageDTO; @@ -43,8 +43,8 @@ */ @ApiOperation(value = "获取拍卖商品列表的分页数据", notes = "获取拍卖商品列表的分页数据") @PostMapping("/page") public R<PageDTO<AuctionGoodsVO>> getAuctionGoodsPage( AuctionGoodsQuery query) { public R<PageDTO<MgtAuctionGoodsVO>> getAuctionGoodsPage( MgtAuctionGoodsQuery query) { return R.ok(auctionGoodsService.getAuctionGoodsPage(query)); } @@ -56,7 +56,7 @@ */ @ApiOperation(value = "查看详情", notes = "查看详情") @GetMapping("/{id}") public R<AuctionGoodsVO> getAuctionGoods(@PathVariable("id") Long id) { public R<MgtAuctionGoodsVO> getAuctionGoods(@PathVariable("id") Long id) { return R.ok(auctionGoodsService.getAuctionGoodsById(id)); } @@ -67,7 +67,7 @@ */ @ApiOperation(value = "添加/编辑 拍卖商品", notes = "添加/编辑 拍卖商品") @PostMapping("/save") public R<?> saveAuctionGoods(@Validated @RequestBody AuctionGoodsDTO dto) { public R<?> saveAuctionGoods(@Validated @RequestBody MgtAuctionGoodsDTO dto) { auctionGoodsService.saveAuctionGoods(dto); return R.ok(); } ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionSalesroomController.java
@@ -1,8 +1,10 @@ package com.ruoyi.auction.controller.management; import com.ruoyi.auction.controller.management.dto.MgtAuctionSaleroomBidRecordQuery; import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomDTO; import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomQuery; import com.ruoyi.auction.controller.management.vo.MgtAuctionBidRecordVO; import com.ruoyi.auction.controller.management.vo.MgtAuctionSalesroomVO; import com.ruoyi.auction.service.IAuctionSalesroomService; import com.ruoyi.common.core.domain.R; @@ -79,4 +81,28 @@ return R.ok(); } /** * 查看详情 * * @param id 拍卖会id * @return 拍卖场视图对象 */ @GetMapping("/{id}") @ApiOperation(value = "查看详情", notes = "查看详情") public R<MgtAuctionSalesroomVO> getAuctionSalesroom(@PathVariable("id") Long id) { return R.ok(auctionSalesroomService.getAuctionSalesroom(id)); } /** * 查看详情-出价记录 * * @param query 拍卖场出价记录查询对象 * @return PageDTO<MgtAuctionBidRecordVO> */ @PostMapping("/bid-record") @ApiOperation(value = "查看详情-出价记录", notes = "查看详情-出价记录") public R<PageDTO<MgtAuctionBidRecordVO>> getAuctionSalesroomBidRecordList( @RequestBody MgtAuctionSaleroomBidRecordQuery query) { return R.ok(auctionSalesroomService.getAuctionSalesroomBidRecordList(query)); } } ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/dto/MgtAuctionGoodsDTO.java
File was renamed from ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/dto/AuctionGoodsDTO.java @@ -16,7 +16,7 @@ */ @Data @ApiModel(value = "拍卖商品数据传输对象", description = "拍卖商品数据传输对象") public class AuctionGoodsDTO { public class MgtAuctionGoodsDTO { @ApiModelProperty(value = "拍卖商品id", notes = "添加不传,更新必传") private Long id; ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/dto/MgtAuctionGoodsQuery.java
File was renamed from ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/dto/AuctionGoodsQuery.java @@ -16,7 +16,7 @@ @Data @EqualsAndHashCode(callSuper = true) @ApiModel(value = "拍卖商品查询对象", description = "拍卖商品查询对象") public class AuctionGoodsQuery extends BasePage { public class MgtAuctionGoodsQuery extends BasePage { private static final long serialVersionUID = 326466175768096072L; @ApiModelProperty(value = "商品名称") ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/dto/MgtAuctionSaleroomBidRecordQuery.java
New file @@ -0,0 +1,27 @@ package com.ruoyi.auction.controller.management.dto; import com.ruoyi.common.core.web.page.BasePage; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import javax.validation.constraints.NotNull; import lombok.Data; import lombok.EqualsAndHashCode; /** * @author mitao * @date 2024/5/30 */ @Data @EqualsAndHashCode(callSuper = true) @ApiModel(value = "拍卖场出价记录查询对象", description = "拍卖场出价记录查询对象") public class MgtAuctionSaleroomBidRecordQuery extends BasePage { private static final long serialVersionUID = -8217461523303481599L; @ApiModelProperty("拍卖商品id") @NotNull(message = "拍卖商品id不能为空") private Long id; @ApiModelProperty(value = "查询类型 1=按会员 2=按次数", notes = "传数字") @NotNull(message = "查询类型不能为空") private Integer sortType; } ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/MgtAuctionBidRecordVO.java
File was renamed from ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/AuctionBidRecordVO.java @@ -13,10 +13,10 @@ */ @Data @ApiModel("拍卖商品出价视图对象") public class AuctionBidRecordVO implements Serializable { public class MgtAuctionBidRecordVO implements Serializable { private static final long serialVersionUID = 8479130955196893180L; @ApiModelProperty(value = "出价记录id") private Long id; @@ -26,6 +26,12 @@ @ApiModelProperty(value = "会员名称") private String memberName; @ApiModelProperty(value = "联系电话") private String phone; @ApiModelProperty(value = "商品id") private Long goodsSkuId; @ApiModelProperty(value = "商品名称") private String goodsSkuName; @@ -35,4 +41,7 @@ @ApiModelProperty(value = "最终出价金额") private BigDecimal lastBidAmount; @ApiModelProperty(value = "出价次数") private Integer bidCount; } ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/MgtAuctionGoodsVO.java
File was renamed from ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/AuctionGoodsVO.java @@ -17,7 +17,7 @@ */ @Data @ApiModel(value = "拍卖商品视图对象", description = "拍卖商品视图对象") public class AuctionGoodsVO { public class MgtAuctionGoodsVO { @ApiModelProperty(value = "拍卖商品id") private Long id; @@ -60,5 +60,5 @@ @ApiModelProperty(value = "开始状态 0=预展中 1=拍卖中 2=已结束") private AuctionStartStatusEnum startStatus; @ApiModelProperty(value = "出价记录") private List<AuctionBidRecordVO> recordList; private List<MgtAuctionBidRecordVO> recordList; } ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/MgtAuctionSalesroomGoodsVO.java
New file @@ -0,0 +1,47 @@ package com.ruoyi.auction.controller.management.vo; import com.ruoyi.common.core.enums.AuctionStartStatusEnum; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; import java.math.BigDecimal; import lombok.Data; /** * @author mitao * @date 2024/5/30 */ @Data @ApiModel(value = "拍卖场商品视图对象", description = "拍卖场商品视图对象") public class MgtAuctionSalesroomGoodsVO implements Serializable { private static final long serialVersionUID = 2894806543298759929L; @ApiModelProperty(value = "拍卖场商品关系id") private Long id; @ApiModelProperty(value = "商品id") private Long goodsSkuId; @ApiModelProperty("拍卖商品名") private String goodsSkuName; @ApiModelProperty(value = "最低加价金额") private BigDecimal minimumMarkupAmount; @ApiModelProperty(value = "拍品数量") private Integer salesroomStock; @ApiModelProperty(value = "兜底成交个数") private Integer guaranteedTradeVolume; @ApiModelProperty(value = "拍卖时间(分钟)") private Integer listingDuration; @ApiModelProperty(value = "设为备选") private Boolean backupStatus; @ApiModelProperty(value = "状态 0=预展中 1=拍卖中 2=已结束") private AuctionStartStatusEnum status; } ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/MgtAuctionSalesroomVO.java
@@ -9,6 +9,7 @@ import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; import lombok.Data; /** @@ -68,4 +69,7 @@ @ApiModelProperty(value = "拍卖商品数") private Integer auctionGoodsNum; @ApiModelProperty(value = "拍卖信息") private List<MgtAuctionSalesroomGoodsVO> auctionSalesroomGoodsVOS; } ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionGoodsService.java
@@ -1,11 +1,11 @@ package com.ruoyi.auction.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.auction.controller.management.dto.AuctionGoodsDTO; import com.ruoyi.auction.controller.management.dto.AuctionGoodsQuery; import com.ruoyi.auction.controller.management.vo.AuctionGoodsVO; import com.ruoyi.system.api.domain.AuctionGoods; import com.ruoyi.auction.controller.management.dto.MgtAuctionGoodsDTO; import com.ruoyi.auction.controller.management.dto.MgtAuctionGoodsQuery; import com.ruoyi.auction.controller.management.vo.MgtAuctionGoodsVO; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.system.api.domain.AuctionGoods; import com.ruoyi.system.api.domain.dto.AuctionGoodsListDTO; import com.ruoyi.system.api.domain.vo.AuctionGoodsListVO; import com.ruoyi.system.api.domain.vo.AuctionGoodsinfoVO; @@ -26,14 +26,14 @@ * @param query 拍卖商品查询对象 * @return PageDTO<AuctionGoodsVO> */ PageDTO<AuctionGoodsVO> getAuctionGoodsPage(AuctionGoodsQuery query); PageDTO<MgtAuctionGoodsVO> getAuctionGoodsPage(MgtAuctionGoodsQuery query); /** * 添加/编辑 拍卖商品 * * @param dto 拍卖商品数据传输对象 */ void saveAuctionGoods(AuctionGoodsDTO dto); void saveAuctionGoods(MgtAuctionGoodsDTO dto); /** * 查看拍卖商品详情 @@ -41,7 +41,7 @@ * @param id 拍卖商品id * @return AuctionGoodsVO */ AuctionGoodsVO getAuctionGoodsById(Long id); MgtAuctionGoodsVO getAuctionGoodsById(Long id); void stopAuctionGoods(Long id); ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java
@@ -6,8 +6,10 @@ import com.ruoyi.auction.controller.forepart.vo.ForepartAuctionSalesroomVO; import com.ruoyi.auction.controller.forepart.vo.MemberAuctionSalesroomInfoVO; import com.ruoyi.auction.controller.forepart.vo.MemberAuctionSalesroomVO; import com.ruoyi.auction.controller.management.dto.MgtAuctionSaleroomBidRecordQuery; import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomDTO; import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomQuery; import com.ruoyi.auction.controller.management.vo.MgtAuctionBidRecordVO; import com.ruoyi.auction.controller.management.vo.MgtAuctionSalesroomVO; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.system.api.domain.AppMiniLoginVO; @@ -77,4 +79,21 @@ void saveAuctionSalesroom(MgtAuctionSalesroomDTO dto); PageDTO<WdMemberAuctionSalesroomVO> getWdAuctionSalesroomList(@RequestBody MemberAuctionSalesroomDTO MemberAuctionSalesroomDTO); /** * 查看详情 * * @param id 拍卖会id * @return 拍卖场视图对象 */ MgtAuctionSalesroomVO getAuctionSalesroom(Long id); /** * 查看详情-出价记录 * * @param query 拍卖场出价记录查询对象 * @return PageDTO<MgtAuctionBidRecordVO> */ PageDTO<MgtAuctionBidRecordVO> getAuctionSalesroomBidRecordList( MgtAuctionSaleroomBidRecordQuery query); } ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java
@@ -4,16 +4,13 @@ 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.controller.forepart.vo.MemberAuctionSalesroomVO; import com.google.common.collect.Lists; import com.ruoyi.auction.controller.management.dto.AuctionGoodsDTO; import com.ruoyi.auction.controller.management.dto.AuctionGoodsQuery; import com.ruoyi.auction.controller.management.vo.AuctionBidRecordVO; import com.ruoyi.auction.controller.management.vo.AuctionGoodsVO; import com.ruoyi.auction.controller.management.dto.MgtAuctionGoodsDTO; import com.ruoyi.auction.controller.management.dto.MgtAuctionGoodsQuery; 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.MemberAuctionCollection; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.domain.*; import com.ruoyi.auction.mapper.AuctionGoodsMapper; import com.ruoyi.auction.service.IAuctionBidRecordService; import com.ruoyi.auction.service.IAuctionGoodsService; @@ -28,14 +25,18 @@ import com.ruoyi.common.core.utils.page.BeanUtils; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.system.api.domain.AuctionGoods; import com.ruoyi.system.api.domain.dto.*; import com.ruoyi.system.api.domain.dto.AuctionGoodsListDTO; import com.ruoyi.system.api.domain.dto.AuctionGoodsListPageDTO; import com.ruoyi.system.api.domain.GoodsBrand; import com.ruoyi.system.api.domain.GoodsCategory; import com.ruoyi.system.api.domain.GoodsFlavorType; import com.ruoyi.system.api.domain.GoodsSeries; import com.ruoyi.system.api.domain.GoodsSku; import com.ruoyi.system.api.domain.Member; import com.ruoyi.system.api.domain.MemberAddress; import com.ruoyi.system.api.domain.OrderAuctionBond; import com.ruoyi.system.api.domain.dto.AuctionGoodsListDTO; import com.ruoyi.system.api.domain.dto.AuctionGoodsListPageDTO; import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO; import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO; import com.ruoyi.system.api.domain.dto.OrderDTO; import com.ruoyi.system.api.domain.dto.RefundDTO; import com.ruoyi.system.api.domain.vo.AuctionGoodsListVO; @@ -51,12 +52,11 @@ import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; import javax.annotation.Resource; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; /** * <p> @@ -92,7 +92,7 @@ * @return PageDTO<AuctionGoodsVO> */ @Override public PageDTO<AuctionGoodsVO> getAuctionGoodsPage(AuctionGoodsQuery query) { public PageDTO<MgtAuctionGoodsVO> getAuctionGoodsPage(MgtAuctionGoodsQuery query) { Set<Long> goodsSkuIdList = null; if (StringUtils.isNotEmpty(query.getGoodsSkuName())) { List<GoodsSku> goodsSku = goodsSkuClient.getGoodsByName(query.getGoodsSkuName(), @@ -114,13 +114,13 @@ .eq(StringUtils.isNotNull(query.getStartStatus()), AuctionGoods::getStartStatus, query.getStartStatus()) .page(new Page<>(query.getPageCurr(), query.getPageSize())); return PageDTO.of(page, AuctionGoodsVO.class); return PageDTO.of(page, MgtAuctionGoodsVO.class); } @Override @Transactional @GlobalTransactional(rollbackFor = Exception.class) public void saveAuctionGoods(AuctionGoodsDTO dto) { public void saveAuctionGoods(MgtAuctionGoodsDTO dto) { Long id = dto.getId(); Long goodsSkuId = dto.getGoodsSkuId(); AuctionGoods auctionGoods = BeanUtils.copyBean(dto, AuctionGoods.class); @@ -192,12 +192,13 @@ * @return AuctionGoodsVO */ @Override public AuctionGoodsVO getAuctionGoodsById(Long id) { public MgtAuctionGoodsVO getAuctionGoodsById(Long id) { AuctionGoods auctionGoods = this.getById(id); if (StringUtils.isNull(auctionGoods)) { throw new ServiceException("拍卖商品不存在"); } AuctionGoodsVO auctionGoodsVO = BeanUtils.copyBean(auctionGoods, AuctionGoodsVO.class); MgtAuctionGoodsVO auctionGoodsVO = BeanUtils.copyBean(auctionGoods, MgtAuctionGoodsVO.class); if (!auctionGoods.getStartStatus().equals(AuctionStartStatusEnum.IN_PREVIEW)) { List<AuctionBidRecord> list = auctionBidRecordService.lambdaQuery() .eq(AuctionBidRecord::getTargetId, auctionGoodsVO.getId()) @@ -210,13 +211,13 @@ getMemberListByIds(collect, SecurityConstants.INNER).getData(); Map<Long, String> memberMap = memberList.stream() .collect(Collectors.toMap(Member::getId, Member::getNickname)); List<AuctionBidRecordVO> auctionBidRecordVOS = BeanUtils.copyList(list, AuctionBidRecordVO.class); for (AuctionBidRecordVO vo : auctionBidRecordVOS) { List<MgtAuctionBidRecordVO> mgtAuctionBidRecordVOS = BeanUtils.copyList(list, MgtAuctionBidRecordVO.class); for (MgtAuctionBidRecordVO vo : mgtAuctionBidRecordVOS) { String memberName = memberMap.get(vo.getMemberId()); vo.setMemberName(StringUtils.isNotEmpty(memberName) ? memberName : ""); } auctionGoodsVO.setRecordList(auctionBidRecordVOS); auctionGoodsVO.setRecordList(mgtAuctionBidRecordVOS); } } return auctionGoodsVO; ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java
@@ -20,9 +20,12 @@ import com.ruoyi.auction.controller.forepart.vo.ForepartAuctionSalesroomVO; import com.ruoyi.auction.controller.forepart.vo.MemberAuctionSalesroomInfoVO; import com.ruoyi.auction.controller.forepart.vo.MemberAuctionSalesroomVO; import com.ruoyi.auction.controller.management.dto.MgtAuctionSaleroomBidRecordQuery; import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomDTO; import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomGoodsDTO; import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomQuery; import com.ruoyi.auction.controller.management.vo.MgtAuctionBidRecordVO; import com.ruoyi.auction.controller.management.vo.MgtAuctionSalesroomGoodsVO; import com.ruoyi.auction.controller.management.vo.MgtAuctionSalesroomVO; import com.ruoyi.auction.domain.AuctionBidRecord; import com.ruoyi.auction.domain.AuctionSalesroomGoods; @@ -60,7 +63,7 @@ import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO; import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO; import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO; import com.ruoyi.system.api.domain.dto.*; import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomWdDTO; import com.ruoyi.system.api.domain.vo.PayInfoVO; import com.ruoyi.system.api.domain.vo.WdMemberAuctionSalesroomVO; import com.ruoyi.system.api.feignClient.GoodsSkuClient; @@ -70,15 +73,18 @@ import io.seata.spring.annotation.GlobalTransactional; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.*; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import java.util.function.Function; import java.util.stream.Collectors; import javax.annotation.Resource; import org.apache.http.HttpResponse; import org.apache.http.util.EntityUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestHeader; /** * <p> @@ -703,4 +709,92 @@ return PageDTO.of(page); } /** * 查看详情 * * @param id 拍卖会id * @return 拍卖场视图对象 */ @Override public MgtAuctionSalesroomVO getAuctionSalesroom(Long id) { // 获取拍卖场 AuctionSalesroom auctionSalesroom = this.getById(id); MgtAuctionSalesroomVO mgtAuctionSalesroomVO = BeanUtils.copyBean(auctionSalesroom, MgtAuctionSalesroomVO.class); // 获取拍卖场商品 List<AuctionSalesroomGoods> list = auctionSalesroomGoodsService.lambdaQuery() .eq(AuctionSalesroomGoods::getAuctionSalesroomId, id).list(); if (StringUtils.isNotEmpty(list)) { List<MgtAuctionSalesroomGoodsVO> mgtAuctionSalesroomGoodsVOS = BeanUtils.copyList(list, MgtAuctionSalesroomGoodsVO.class); Set<Long> goodsIdList = mgtAuctionSalesroomGoodsVOS.stream() .map(MgtAuctionSalesroomGoodsVO::getGoodsSkuId).collect( Collectors.toSet()); // 获取商品信息 List<GoodsSku> goodsSkuList = goodsSkuClient.getGoodsListByIds(goodsIdList, SecurityConstants.INNER).getData(); Map<Long, GoodsSku> goodsSkuMap = goodsSkuList.stream() .collect(Collectors.toMap(GoodsSku::getId, Function.identity())); // 封装商品名称 for (MgtAuctionSalesroomGoodsVO vo : mgtAuctionSalesroomGoodsVOS) { GoodsSku goodsSku = goodsSkuMap.get(vo.getGoodsSkuId()); if (StringUtils.isNotNull(goodsSku)) { vo.setGoodsSkuName(goodsSku.getSkuName()); } } mgtAuctionSalesroomVO.setAuctionSalesroomGoodsVOS(mgtAuctionSalesroomGoodsVOS); } return mgtAuctionSalesroomVO; } /** * 查看详情-出价记录 * * @param query 拍卖场出价记录查询对象 * @return PageDTO<MgtAuctionBidRecordVO> */ @Override public PageDTO<MgtAuctionBidRecordVO> getAuctionSalesroomBidRecordList( MgtAuctionSaleroomBidRecordQuery query) { Page<AuctionBidRecord> page = auctionBidRecordService.lambdaQuery() .eq(AuctionBidRecord::getTargetId, query.getId()) .eq(AuctionBidRecord::getAuctionType, AuctionOrderTypeEnum.AUCTION_ITEMS) .orderByDesc(query.getSortType() == 1, AuctionBidRecord::getLastBidAmount) .orderByDesc(query.getSortType() == 2, AuctionBidRecord::getBidCount) .page(new Page<>(query.getPageCurr(), query.getPageSize())); if (StringUtils.isNull(page.getRecords())) { return PageDTO.empty(page); } PageDTO<MgtAuctionBidRecordVO> mgtAuctionBidRecordVOPageDTO = PageDTO.of(page, MgtAuctionBidRecordVO.class); List<MgtAuctionBidRecordVO> list = mgtAuctionBidRecordVOPageDTO.getList(); Set<Long> goodsIdList = list.stream().map(MgtAuctionBidRecordVO::getGoodsSkuId) .collect(Collectors.toSet()); Set<Long> memberIdList = list.stream().map(MgtAuctionBidRecordVO::getMemberId) .collect(Collectors.toSet()); List<GoodsSku> goodsSkuList = goodsSkuClient.getGoodsListByIds(goodsIdList, SecurityConstants.INNER) .getData(); List<Member> memberList = memberClient.getMemberListByIds(memberIdList, SecurityConstants.INNER) .getData(); Map<Long, GoodsSku> goodsSkuMap = goodsSkuList.stream() .collect(Collectors.toMap(GoodsSku::getId, Function.identity())); Map<Long, Member> memberMap = memberList.stream() .collect(Collectors.toMap(Member::getId, Function.identity())); for (MgtAuctionBidRecordVO vo : list) { GoodsSku goodsSku = goodsSkuMap.get(vo.getGoodsSkuId()); Member member = memberMap.get(vo.getMemberId()); if (StringUtils.isNotNull(goodsSku)) { vo.setGoodsSkuName(goodsSku.getSkuName()); } if (StringUtils.isNotNull(member)) { vo.setMemberName(member.getNickname()); vo.setPhone(member.getPhone()); } } return mgtAuctionBidRecordVOPageDTO; } } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsSkuController.java
@@ -6,6 +6,7 @@ import com.ruoyi.goods.service.IGoodsSkuService; import com.ruoyi.system.api.domain.GoodsSku; import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO; import java.util.Collection; import java.util.List; import javax.annotation.Resource; import org.springframework.web.bind.annotation.GetMapping; @@ -73,9 +74,21 @@ * @param source 请求来源 */ @InnerAuth @PutMapping("/goods-sku/upd-stock") @PutMapping("/upd-stock") R<?> returningStock(@RequestBody List<GoodsStockUpdDTO> goodsStockUpdDTOS) { iGoodsSkuService.returningStock(goodsStockUpdDTOS); return R.ok(); } /** * 根据商品id集合查询商品 * * @param goodsIdList 商品id集合 * @param source 请求来源 * @return 商品集合 */ @PostMapping("/list") R<List<GoodsSku>> getGoodsListByIds(@RequestBody Collection<Long> goodsIdList) { return R.ok(iGoodsSkuService.listByIds(goodsIdList)); } }