From e40c0643e26447d89f50c0118da13dba80684089 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期四, 30 五月 2024 14:50:26 +0800 Subject: [PATCH] 1.清除所有冗余字段 2.提交【管理后台】-拍卖场管理 添加/编辑接口 --- ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java | 174 ++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 157 insertions(+), 17 deletions(-) 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 00c097f..03b6425 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 @@ -16,45 +16,65 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.auction.controller.forepart.dto.AuctionSalesroomGoodsDTO; import com.ruoyi.auction.controller.forepart.dto.ForepartAuctionBidRecordDTO; -import com.ruoyi.common.core.enums.AuctionOrderTypeEnum; -import com.ruoyi.common.core.enums.BidStatusEnum; -import com.ruoyi.system.api.domain.*; -import com.ruoyi.system.api.domain.dto.BidVO; -import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO; -import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO; import com.ruoyi.auction.controller.forepart.vo.ForepartAuctionSalesroomGoodsVO; 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.domain.*; +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.MgtAuctionSalesroomVO; +import com.ruoyi.auction.domain.AuctionBidRecord; +import com.ruoyi.auction.domain.AuctionSalesroomGoods; +import com.ruoyi.auction.domain.AuctionVideo; import com.ruoyi.auction.mapper.AuctionSalesroomGoodsMapper; import com.ruoyi.auction.mapper.AuctionSalesroomMapper; -import com.ruoyi.auction.service.*; +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.util.CreateQrCode; +import com.ruoyi.auction.util.HttpUtils; 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.AuctionStartStatusEnum; +import com.ruoyi.common.core.enums.BidStatusEnum; import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.IDhelper; import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.page.BeanUtils; +import com.ruoyi.common.core.utils.page.Checker; +import com.ruoyi.common.core.utils.page.CollUtils; import com.ruoyi.common.core.utils.page.PageDTO; -import com.ruoyi.auction.util.HttpUtils; +import com.ruoyi.system.api.domain.AppMiniLoginVO; +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.Member; +import com.ruoyi.system.api.domain.OrderAuctionBond; +import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO; +import com.ruoyi.system.api.domain.dto.BidVO; +import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomBondDTO; +import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO; import com.ruoyi.system.api.domain.vo.PayInfoVO; import com.ruoyi.system.api.feignClient.GoodsSkuClient; import com.ruoyi.system.api.feignClient.MemberClient; import com.ruoyi.system.api.feignClient.OrderClient; import com.ruoyi.system.api.feignClient.SysUserClient; -import javax.annotation.Resource; - -import org.apache.http.HttpResponse; -import org.apache.http.util.EntityUtils; -import org.springframework.stereotype.Service; - - import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +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; /** * <p> @@ -324,7 +344,7 @@ AuctionSalesroom byId = iAuctionSalesroomService.getById(memberAuctionSalesroomDTO.getAuctionSalesroomId()); MemberAuctionSalesroomInfoVO memberAuctionSalesroomInfoVO=new MemberAuctionSalesroomInfoVO(); memberAuctionSalesroomInfoVO.setId(byId.getId()); - memberAuctionSalesroomInfoVO.setBound(byId.getBound()); + memberAuctionSalesroomInfoVO.setBound(byId.getBond()); memberAuctionSalesroomInfoVO.setAuthentication(byId.getAuthentication()); memberAuctionSalesroomInfoVO.setEndTime(byId.getEndTime()); memberAuctionSalesroomInfoVO.setSalesroomName(byId.getSalesroomName()); @@ -499,4 +519,124 @@ HttpResponse response = HttpUtils.doPost(host, "", "POST", headers, querys, body); return EntityUtils.toString(response.getEntity()); } + + /** + * 分页查询拍卖场 + * + * @param query 拍卖场查询对象 + * @return PageDTO<MgtAuctionSalesroomVO> + */ + @Override + public PageDTO<MgtAuctionSalesroomVO> getAuctionSalesroomPage(MgtAuctionSalesroomQuery query) { + // 分页查询 + Page<AuctionSalesroom> page = this.lambdaQuery() + .select(AuctionSalesroom::getId, AuctionSalesroom::getSalesroomName, + AuctionSalesroom::getCreateTime, AuctionSalesroom::getStartTime, + AuctionSalesroom::getEndTime, AuctionSalesroom::getType, + AuctionSalesroom::getAuthentication, AuctionSalesroom::getStatus) + .like(StringUtils.isNotEmpty(query.getSalesroomName()), + AuctionSalesroom::getSalesroomName, query.getSalesroomName()) + .eq(StringUtils.isNotNull(query.getAuthentication()), + AuctionSalesroom::getAuthentication, query.getAuthentication()) + .eq(StringUtils.isNotNull(query.getStatus()), AuctionSalesroom::getStatus, + query.getStatus()).between( + StringUtils.isNotNull(query.getStartTime()) && StringUtils.isNotNull( + query.getEndTime()), AuctionSalesroom::getStartTime, + query.getStartTime(), + query.getEndTime()) + .page(new Page<>(query.getPageCurr(), query.getPageSize())); + List<AuctionSalesroom> records = page.getRecords(); + if (StringUtils.isNull(records)) { + return PageDTO.empty(page); + } + PageDTO<MgtAuctionSalesroomVO> auctionSalesroomVOPageDTO = PageDTO.of(page, + MgtAuctionSalesroomVO.class); + List<MgtAuctionSalesroomVO> list = auctionSalesroomVOPageDTO.getList(); + List<Long> auctionSalesroomIdList = list.stream().map(MgtAuctionSalesroomVO::getId) + .collect(Collectors.toList()); + // 所有拍卖场的拍卖商品 + List<AuctionSalesroomGoods> auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectList( + Wrappers.<AuctionSalesroomGoods>lambdaQuery() + .in(AuctionSalesroomGoods::getAuctionSalesroomId, auctionSalesroomIdList)); + // 计算每个拍卖场所有拍品数量 + Map<Long, Integer> map = auctionSalesroomGoods.stream() + .collect(Collectors.groupingBy(AuctionSalesroomGoods::getAuctionSalesroomId, + Collectors.summingInt(AuctionSalesroomGoods::getSalesroomStock))); + for (MgtAuctionSalesroomVO mgtAuctionSalesroomVO : list) { + Integer i = map.get(mgtAuctionSalesroomVO.getId()); + if (StringUtils.isNotNull(i)) { + mgtAuctionSalesroomVO.setAuctionGoodsNum(i); + } + } + return auctionSalesroomVOPageDTO; + } + + /** + * 查看二维码 + * + * @param id 拍卖场id + * @return 二维码 + */ + @Override + public String getQrCode(Long id) throws Exception { + AuctionSalesroom auctionSalesroom = this.getById(id); + String auctionSalesroomNo = auctionSalesroom.getAuctionSalesroomNo(); + return CreateQrCode.createQRCode(auctionSalesroomNo); + } + + @Override + public void saveAuctionSalesroom(MgtAuctionSalesroomDTO dto) { + Long id = dto.getId(); + AuctionSalesroom auctionSalesroom = BeanUtils.copyBean(dto, AuctionSalesroom.class); + List<MgtAuctionSalesroomGoodsDTO> auctionSalesroomGoodsDTOS = dto.getAuctionSalesroomGoodsDTOS(); + CollUtils.check(auctionSalesroomGoodsDTOS, new Checker<MgtAuctionSalesroomGoodsDTO>() { + @Override + public void check(MgtAuctionSalesroomGoodsDTO data) { + if (StringUtils.isNull(data.getStartingPrice())) { + throw new ServiceException("拍卖商品起拍价格不能为空"); + } + if (StringUtils.isNull(data.getMinimumMarkupAmount())) { + throw new ServiceException("拍卖商品最低加价金额不能为空"); + } + if (StringUtils.isNull(data.getSalesroomStock())) { + throw new ServiceException("拍卖商品拍品数量不能为空"); + } + if (StringUtils.isNull(data.getListingDuration())) { + throw new ServiceException("拍卖商品拍卖时间不能为空"); + } + } + }); + List<AuctionSalesroomGoods> auctionSalesroomGoods = BeanUtils.copyList( + auctionSalesroomGoodsDTOS, AuctionSalesroomGoods.class); + + if (StringUtils.isNull(id)) { + // 生成唯一编号 + Long nextId = IDhelper.getNextId(); + auctionSalesroom.setAuctionSalesroomNo(nextId.toString()); + // 添加 + this.save(auctionSalesroom); + } else { + // 编辑 + AuctionSalesroom auctionSalesroomOrg = this.getById(id); + if (StringUtils.isNull(auctionSalesroomOrg)) { + throw new ServiceException("该拍卖场不存在"); + } + if (auctionSalesroomOrg.getStatus().equals(AuctionStartStatusEnum.IN_AUCTION)) { + throw new ServiceException("该拍卖场正在拍卖中,不能编辑"); + } + if (auctionSalesroomOrg.getStatus().equals(AuctionStartStatusEnum.ENDED)) { + throw new ServiceException("该拍卖场已结束,不能编辑"); + } + auctionSalesroom.setId(auctionSalesroomOrg.getId()); + this.updateById(auctionSalesroom); + // 移除原来地拍卖商品 + auctionSalesroomGoodsService.remove(Wrappers.<AuctionSalesroomGoods>lambdaQuery() + .eq(AuctionSalesroomGoods::getAuctionSalesroomId, id)); + } + for (AuctionSalesroomGoods auctionSalesroomGood : auctionSalesroomGoods) { + auctionSalesroomGood.setAuctionSalesroomId(id); + } + // 添加拍卖商品 + auctionSalesroomGoodsService.saveBatch(auctionSalesroomGoods); + } } -- Gitblit v1.7.1