From 855921d253a4854d4fb78b83bfcf7c6e93b3f68d Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期三, 29 五月 2024 19:43:50 +0800 Subject: [PATCH] 1.提交【管理后台】团购、拍卖商品立即结束退款处理 2.提交【管理后台】拍卖场管理部分接口 --- ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java | 218 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 207 insertions(+), 11 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 4f571e7..48111e6 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,35 +16,46 @@ 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.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.controller.management.dto.MgtAuctionSalesroomQuery; +import com.ruoyi.auction.controller.management.vo.MgtAuctionSalesroomVO; +import com.ruoyi.auction.domain.AuctionBidRecord; import com.ruoyi.auction.domain.AuctionSalesroom; +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.IAuctionBidRecordService; 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.exception.ServiceException; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.page.PageDTO; -import com.ruoyi.auction.util.HttpUtils; -import com.ruoyi.system.api.constants.SecurityConstant; import com.ruoyi.system.api.domain.AppMiniLoginVO; -import com.ruoyi.system.api.domain.Member; +import com.ruoyi.system.api.domain.GoodsSku; +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.MemberAuctionSalesroomDTO; +import com.ruoyi.system.api.feignClient.GoodsSkuClient; +import com.ruoyi.system.api.feignClient.OrderClient; import com.ruoyi.system.api.feignClient.SysUserClient; +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; - - -import java.util.HashMap; -import java.util.Map; -import java.util.concurrent.TimeUnit; - -import static com.ruoyi.member.service.impl.MemberServiceImpl.getAccessTokenByWX; /** * <p> @@ -60,6 +71,12 @@ private IAuctionSalesroomService iAuctionSalesroomService; @Resource + private IAuctionBidRecordService auctionBidRecordService; + + @Resource + private AuctionSalesroomMapper auctionSalesroomMapper; + + @Resource private IAuctionVideoService iAuctionVideoService; @Resource @@ -67,6 +84,15 @@ @Resource private WxMaService wxMaService; + + @Resource + private AuctionSalesroomGoodsMapper auctionSalesroomGoodsMapper; + + @Resource + private GoodsSkuClient goodsSkuClient; + + @Resource + private OrderClient orderClient; //微信 @@ -242,6 +268,8 @@ } } + + private AlipayUserInfoShareResponse getAliUserInfo (String accessToken) throws Exception { AlipayClient alipayClient = new DefaultAlipayClient(ALIPAY_BORDER_PROD,APP_ID_PROD, APP_PRIVATE_KEY, "json", "GBK", ALIPAY_PUBLIC_KEY, "RSA2"); @@ -252,6 +280,110 @@ return response; } return null; + } + + @Override + public PageDTO<MemberAuctionSalesroomVO> getMemberAuctionSalesroomList(MemberAuctionSalesroomDTO memberAuctionSalesroomDTO) { + Page<MemberAuctionSalesroomVO> page = new Page<>(); + page.setSize(memberAuctionSalesroomDTO.getPageSize()); + page.setCurrent(memberAuctionSalesroomDTO.getPageCurr()); + List<AuctionSalesroom> auctionSalesroomList=auctionSalesroomMapper.pageMemberAuctionSalesroomList(page,memberAuctionSalesroomDTO); + List<MemberAuctionSalesroomVO> List=new ArrayList<>(); + for (AuctionSalesroom auctionSalesroom:auctionSalesroomList){ + MemberAuctionSalesroomVO memberAuctionSalesroomVO=new MemberAuctionSalesroomVO(); + memberAuctionSalesroomVO.setSalesroomName(auctionSalesroom.getSalesroomName()); + memberAuctionSalesroomVO.setDescription(auctionSalesroom.getDescription()); + memberAuctionSalesroomVO.setStatus(auctionSalesroom.getStatus().getCode()); + memberAuctionSalesroomVO.setSalesroomId(auctionSalesroom.getId()); + memberAuctionSalesroomVO.setCoverPic(auctionSalesroom.getCoverPic()); + List<OrderAuctionBond> data = orderClient.getOrderAuctionBondList(memberAuctionSalesroomDTO, SecurityConstants.INNER).getData(); + if (data.size()>0){ + memberAuctionSalesroomVO.setIsApply(2); + }else{ + memberAuctionSalesroomVO.setIsApply(1); + } + MemberAuctionSalesroomDTO memberAuctionSalesroomDTO1=new MemberAuctionSalesroomDTO(); + memberAuctionSalesroomDTO1.setAuctionSalesroomId(auctionSalesroom.getId()); + List<OrderAuctionBond> data1 = orderClient.getOrderAuctionBondList(memberAuctionSalesroomDTO1, SecurityConstants.INNER).getData(); + memberAuctionSalesroomVO.setApplyNum(data1.size()); + List.add(memberAuctionSalesroomVO); + } + page.setRecords(List); + return PageDTO.of(page); + } + + @Override + public MemberAuctionSalesroomInfoVO getMemberAuctionSalesroomInfo(MemberAuctionSalesroomDTO memberAuctionSalesroomDTO) { + AuctionSalesroom byId = iAuctionSalesroomService.getById(memberAuctionSalesroomDTO.getAuctionSalesroomId()); + MemberAuctionSalesroomInfoVO memberAuctionSalesroomInfoVO=new MemberAuctionSalesroomInfoVO(); + memberAuctionSalesroomInfoVO.setId(byId.getId()); + memberAuctionSalesroomInfoVO.setBound(byId.getBound()); + memberAuctionSalesroomInfoVO.setAuthentication(byId.getAuthentication()); + memberAuctionSalesroomInfoVO.setEndTime(byId.getEndTime()); + memberAuctionSalesroomInfoVO.setSalesroomName(byId.getSalesroomName()); + memberAuctionSalesroomInfoVO.setType(byId.getType()); + memberAuctionSalesroomInfoVO.setDescription(byId.getDescription()); + memberAuctionSalesroomInfoVO.setSharePic(byId.getSharePic()); + memberAuctionSalesroomInfoVO.setShareTitle(byId.getShareTitle()); + memberAuctionSalesroomInfoVO.setStartTime(byId.getStartTime()); + memberAuctionSalesroomInfoVO.setStatus(byId.getStatus()); + memberAuctionSalesroomInfoVO.setCoverPic(byId.getCoverPic()); + List<OrderAuctionBond> data = orderClient.getOrderAuctionBondList(memberAuctionSalesroomDTO, SecurityConstants.INNER).getData(); + if (data.size()>0){ + memberAuctionSalesroomInfoVO.setIsApply(2); + }else{ + memberAuctionSalesroomInfoVO.setIsApply(1); + } + List<ForepartAuctionSalesroomGoodsVO> forepartAuctionSalesroomGoodsVOS=new ArrayList<>(); + List<AuctionSalesroomGoods> auctionSalesroomGoods = auctionSalesroomGoodsMapper.getAuctionSalesroomGoods(memberAuctionSalesroomDTO); + for (AuctionSalesroomGoods salesroomGoods:auctionSalesroomGoods){ + ForepartAuctionSalesroomGoodsVO forepartAuctionSalesroomGoodsVO=new ForepartAuctionSalesroomGoodsVO(); + forepartAuctionSalesroomGoodsVO.setSalesroomId(byId.getId()); + forepartAuctionSalesroomGoodsVO.setSalesroomName(byId.getSalesroomName()); + GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(salesroomGoods.getGoodsSkuId(), SecurityConstants.INNER) + .getData(); + forepartAuctionSalesroomGoodsVO.setGoodsSkuName(goodsSku.getSkuName()); + forepartAuctionSalesroomGoodsVO.setGoodsSkuId(salesroomGoods.getId()); + forepartAuctionSalesroomGoodsVO.setCoverPic(goodsSku.getCoverPic()); + forepartAuctionSalesroomGoodsVO.setStartingPrice(salesroomGoods.getStartingPrice()); + forepartAuctionSalesroomGoodsVO.setSalesroomStock(salesroomGoods.getSalesroomStock()); + forepartAuctionSalesroomGoodsVO.setGoodsSkustatus(salesroomGoods.getStatus().getCode()); + + LambdaQueryWrapper<AuctionBidRecord> wrapper1=Wrappers.lambdaQuery(); + wrapper1.eq(AuctionBidRecord::getMemberId,memberAuctionSalesroomDTO.getMemberId()); + wrapper1.eq(AuctionBidRecord::getAuctionSalesroomId,byId.getId()); + wrapper1.eq(AuctionBidRecord::getTargetId,salesroomGoods.getId()); + wrapper1.eq(AuctionBidRecord::getDelFlag,0); + AuctionBidRecord list1 = auctionBidRecordService.getOne(wrapper1); + if (list1!=null){ + forepartAuctionSalesroomGoodsVO.setIsBond(2); + if (list1.getStatus().getCode()==2){ + forepartAuctionSalesroomGoodsVO.setIsStatus(2); + }else{ + forepartAuctionSalesroomGoodsVO.setIsStatus(1); + } + }else{ + forepartAuctionSalesroomGoodsVO.setIsBond(1); + forepartAuctionSalesroomGoodsVO.setIsStatus(1); + } + forepartAuctionSalesroomGoodsVOS.add(forepartAuctionSalesroomGoodsVO); + } + memberAuctionSalesroomInfoVO.setForepartAuctionSalesroomGoodsVO(forepartAuctionSalesroomGoodsVOS); + return memberAuctionSalesroomInfoVO; + } + + @Override + public MemberAuctionSalesroomVO getMemberAuctionSalesroomSweep(MemberAuctionSalesroomDTO MemberAuctionSalesroomDTO) { + LambdaQueryWrapper<AuctionSalesroom> wrapper=Wrappers.lambdaQuery(); + wrapper.eq(AuctionSalesroom::getAuctionSalesroomNo,MemberAuctionSalesroomDTO.getSalesroomNO()); + wrapper.eq(AuctionSalesroom::getDelFlag,0); + AuctionSalesroom auctionSalesroom=iAuctionSalesroomService.getOne(wrapper); + MemberAuctionSalesroomVO memberAuctionSalesroomVO=new MemberAuctionSalesroomVO(); + memberAuctionSalesroomVO.setSalesroomName(auctionSalesroom.getSalesroomName()); + memberAuctionSalesroomVO.setStatus(auctionSalesroom.getStatus().getCode()); + memberAuctionSalesroomVO.setDescription(auctionSalesroom.getDescription()); + memberAuctionSalesroomVO.setSalesroomId(auctionSalesroom.getId()); + return memberAuctionSalesroomVO; } @@ -275,4 +407,68 @@ 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); + } } -- Gitblit v1.7.1