From c8a21748f87bc0a23744d9fee5dec3eaaa403fdc Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期二, 11 六月 2024 18:59:51 +0800 Subject: [PATCH] 1.提交【管理后台】-资讯管理相关接口 --- ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java | 126 ++++++++++++++++++++++++++++++++++++----- 1 files changed, 110 insertions(+), 16 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 72655bd..1021e7c 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 @@ -1,25 +1,20 @@ package com.ruoyi.auction.service.impl; import cn.binarywang.wx.miniapp.api.WxMaService; -import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.parser.Feature; import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayClient; -import com.alipay.api.DefaultAlipayClient; import com.alipay.api.internal.util.AlipayEncrypt; import com.alipay.api.internal.util.AlipaySignature; -import com.alipay.api.request.AlipaySystemOauthTokenRequest; -import com.alipay.api.request.AlipayUserInfoShareRequest; -import com.alipay.api.response.AlipaySystemOauthTokenResponse; -import com.alipay.api.response.AlipayUserInfoShareResponse; 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Lists; +import com.google.zxing.WriterException; import com.ruoyi.auction.controller.management.dto.MgtAuctionSaleroomBidRecordQuery; import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomDTO; import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomGoodsDTO; @@ -33,6 +28,7 @@ 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.AuctionBrowseRecord; import com.ruoyi.auction.domain.AuctionSalesroomGoods; import com.ruoyi.auction.domain.AuctionVideo; import com.ruoyi.auction.mapper.AuctionBidRecordMapper; @@ -70,13 +66,14 @@ import com.ruoyi.system.api.domain.PromotionVideo; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO; -import com.ruoyi.system.api.domain.dto.AuctionSalesroomGoodsDTO; +import com.ruoyi.system.api.domain.dto.AuctionSalesroomDTO; import com.ruoyi.system.api.domain.dto.BidDTO; import com.ruoyi.system.api.domain.dto.ForepartAuctionBidRecordDTO; 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.MemberAuctionSalesroomWdDTO; +import com.ruoyi.system.api.domain.dto.OrderAuctionBondDTO; import com.ruoyi.system.api.domain.dto.RefundDTO; import com.ruoyi.system.api.domain.vo.ForepartAuctionSalesroomGoodsVO; import com.ruoyi.system.api.domain.vo.ForepartAuctionSalesroomVO; @@ -90,6 +87,7 @@ import com.ruoyi.system.api.feignClient.PromotionClient; import com.ruoyi.system.api.feignClient.SysUserClient; import io.seata.spring.annotation.GlobalTransactional; +import java.io.IOException; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.ArrayList; @@ -203,17 +201,16 @@ @Override - public PageDTO<AuctionSalesroom> getAuctionBidRecordList(AuctionSalesroomGoodsDTO ationSalesroomGoodsDTO) { - Page<AuctionSalesroom> page = new Page<>(ationSalesroomGoodsDTO.getPageCurr(), ationSalesroomGoodsDTO.getPageSize()); + public List<AuctionSalesroom> getAuctionBidRecordList(AuctionSalesroomDTO ationSalesroomGoodsDTO) { LambdaQueryWrapper<AuctionSalesroom> wrapper=Wrappers.lambdaQuery(); wrapper.eq(AuctionSalesroom::getSalesroomName,ationSalesroomGoodsDTO.getSalesroomName()); wrapper.eq(AuctionSalesroom::getDelFlag,0); - Page<AuctionSalesroom> page1 = this.page(page, wrapper); - return PageDTO.of(page1); + List<AuctionSalesroom> page1 = this.list(wrapper); + return page1; } @Override - public ForepartAuctionSalesroomVO getBaaner(AuctionSalesroomGoodsDTO ationSalesroomGoodsDTO) { + public ForepartAuctionSalesroomVO getBaaner(AuctionSalesroomDTO ationSalesroomGoodsDTO) { LambdaQueryWrapper<AuctionVideo> wrapper=Wrappers.lambdaQuery(); wrapper.eq(AuctionVideo::getAuctionSalesroomId,ationSalesroomGoodsDTO.getAuctionSalesroomId()); wrapper.eq(AuctionVideo::getDelFlag,0); @@ -414,7 +411,7 @@ forepartAuctionSalesroomGoodsVO.setCoverPic(goodsSku.getCoverPic()); forepartAuctionSalesroomGoodsVO.setStartingPrice(salesroomGoods.getStartingPrice()); forepartAuctionSalesroomGoodsVO.setSalesroomStock(salesroomGoods.getSalesroomStock()); - forepartAuctionSalesroomGoodsVO.setGoodsSkustatus(salesroomGoods.getStatus().getCode()); + forepartAuctionSalesroomGoodsVO.setGoodsSkustatus(salesroomGoods.getStatus()); forepartAuctionSalesroomGoodsVO.setYears(String.valueOf(goodsSku.getYears())); LambdaQueryWrapper<AuctionBidRecord> wrapper1=Wrappers.lambdaQuery(); wrapper1.eq(AuctionBidRecord::getMemberId,memberAuctionSalesroomDTO.getMemberId()); @@ -436,6 +433,27 @@ forepartAuctionSalesroomGoodsVOS.add(forepartAuctionSalesroomGoodsVO); } memberAuctionSalesroomInfoVO.setForepartAuctionSalesroomGoodsVO(forepartAuctionSalesroomGoodsVOS); + + + LocalDateTime now = LocalDateTime.now(); + LocalDateTime newTime7 = now.minusDays(7); + + 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, now) + .le(AuctionBrowseRecord::getCreateTime, newTime7); + List<AuctionBrowseRecord> list = iAuctionBrowseRecordService.list(wrapper3); + if (list.size()==0){ + AuctionBrowseRecord auctionBrowseRecord=new AuctionBrowseRecord(); + auctionBrowseRecord.setBrowseType(AuctionOrderTypeEnum.AUCTION_ITEMS); + auctionBrowseRecord.setMemberId(memberAuctionSalesroomDTO.getMemberId()); + auctionBrowseRecord.setTargetId(memberAuctionSalesroomDTO.getAuctionSalesroomId()); + iAuctionBrowseRecordService.save(auctionBrowseRecord); + } + + return memberAuctionSalesroomInfoVO; } @@ -709,7 +727,8 @@ @Override @Transactional @GlobalTransactional(rollbackFor = Exception.class) - public void saveAuctionSalesroom(MgtAuctionSalesroomDTO dto) { + public void saveAuctionSalesroom(MgtAuctionSalesroomDTO dto) + throws IOException, WriterException { Long id = dto.getId(); AuctionSalesroom auctionSalesroom = BeanUtils.copyBean(dto, AuctionSalesroom.class); List<MgtAuctionSalesroomGoodsDTO> auctionSalesroomGoodsDTOS = dto.getAuctionSalesroomGoodsDTOS(); @@ -737,6 +756,8 @@ // 生成唯一编号 Long nextId = IDhelper.getNextId(); auctionSalesroom.setAuctionSalesroomNo(nextId.toString()); + String qrCodeToObs = CreateQrCode.createQRCodeToObs(nextId.toString()); + auctionSalesroom.setQrCode(qrCodeToObs); // 添加 this.save(auctionSalesroom); List<GoodsStockUpdDTO> goodsStockUpdDTOS = auctionSalesroomGoods.stream().map(item -> { @@ -782,7 +803,7 @@ .eq(AuctionSalesroomGoods::getAuctionSalesroomId, id)); } for (AuctionSalesroomGoods auctionSalesroomGood : auctionSalesroomGoods) { - auctionSalesroomGood.setAuctionSalesroomId(id); + auctionSalesroomGood.setAuctionSalesroomId(auctionSalesroom.getId()); } // 添加拍卖商品 for (AuctionSalesroomGoods auctionSalesroomGoodss:auctionSalesroomGoods){ @@ -842,7 +863,7 @@ MgtAuctionSalesroomVO.class); List<AuctionSalesroomGoods> list; if (isScreen) { - list = getAuctionSalesroomGoods(id, Boolean.TRUE); + list = getAuctionSalesroomGoods(id, Boolean.FALSE); } else { list = getAuctionSalesroomGoods(id, null); } @@ -1185,9 +1206,82 @@ iAuctionVideoService.save(auctionVideo); } + /** + * 结束播放 + * + * @param auctionSalesroomId 拍卖场id + */ @Override public void stopPlay(Long auctionSalesroomId) { iAuctionVideoService.remove(Wrappers.<AuctionVideo>lambdaQuery().eq (AuctionVideo::getAuctionSalesroomId, 1L)); } + + /** + * 开始当前拍卖场 + * + * @param auctionSalesroomId 拍卖场id + */ + @Override + public void startCurrentAuctionSalesroom(Long auctionSalesroomId) { + // 修改拍卖场开始状态 + AuctionSalesroom auctionSalesroom = this.getById(auctionSalesroomId); + auctionSalesroom.setStatus(AuctionStartStatusEnum.IN_AUCTION); + auctionSalesroom.setStartTime(LocalDateTime.now()); + auctionSalesroomMapper.updateById(auctionSalesroom); + // 修改拍卖商品开始状态 + LambdaQueryWrapper<AuctionSalesroomGoods> wrapper = Wrappers.lambdaQuery(); + wrapper.eq(AuctionSalesroomGoods::getStatus, AuctionGoodsStatusEnum.WAITING); + wrapper.eq(AuctionSalesroomGoods::getAuctionSalesroomId, auctionSalesroomId); + wrapper.orderByDesc(AuctionSalesroomGoods::getSortNum); + wrapper.last("limit 1"); + AuctionSalesroomGoods auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectOne( + wrapper); + auctionSalesroomGoods.setStatus(AuctionGoodsStatusEnum.IN_PROGRESS); + auctionSalesroomGoods.setStartTime(LocalDateTime.now()); + auctionSalesroomGoodsMapper.updateById(auctionSalesroomGoods); + } + + @Override + @GlobalTransactional(rollbackFor = Exception.class) + @Transactional + public void stopCurrentAuctionSalesroom(Long auctionSalesroomId) { + // 修改拍卖场开始状态 + AuctionSalesroom auctionSalesroom = this.getById(auctionSalesroomId); + auctionSalesroom.setStatus(AuctionStartStatusEnum.ENDED); + auctionSalesroom.setEndTime(LocalDateTime.now()); + auctionSalesroomMapper.updateById(auctionSalesroom); + LambdaQueryWrapper<AuctionSalesroomGoods> wrapper = Wrappers.lambdaQuery(); + wrapper.eq(AuctionSalesroomGoods::getStatus, AuctionGoodsStatusEnum.WAITING); + wrapper.eq(AuctionSalesroomGoods::getAuctionSalesroomId, auctionSalesroomId); + wrapper.orderByDesc(AuctionSalesroomGoods::getSortNum); + List<AuctionSalesroomGoods> auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectList( + wrapper); + if (StringUtils.isNotEmpty(auctionSalesroomGoods)) { + List<GoodsStockUpdDTO> dtoList = new ArrayList<>(); + for (AuctionSalesroomGoods salesroomGoods : auctionSalesroomGoods) { + salesroomGoods.setStatus(AuctionGoodsStatusEnum.ENDED); + GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); + goodsStockUpdDTO.setGoodsSkuId(salesroomGoods.getGoodsSkuId()); + goodsStockUpdDTO.setAuctionStock(salesroomGoods.getSalesroomStock()); + dtoList.add(goodsStockUpdDTO); + } + // 批量更新商品库存 + auctionSalesroomGoodsMapper.updateBatchById(auctionSalesroomGoods); + goodsSkuClient.updGoodsStock(dtoList, SecurityConstants.INNER); + } + // 退保证金 + List<AuctionBidRecord> auctionBidRecordList = auctionBidRecordMapper.selectList( + Wrappers.<AuctionBidRecord>lambdaQuery() + .eq(AuctionBidRecord::getAuctionSalesroomId, auctionSalesroomId) + .eq(AuctionBidRecord::getStatus, BidStatusEnum.ELIMINATE)); + List<Long> memberIdlist = auctionBidRecordList.stream().map(AuctionBidRecord::getMemberId) + .collect(Collectors.toList()); + if (StringUtils.isNotEmpty(memberIdlist)) { + OrderAuctionBondDTO orderAuctionBondDTO = new OrderAuctionBondDTO(); + orderAuctionBondDTO.setAuctionSalesroomId(auctionSalesroom.getId()); + orderAuctionBondDTO.setUserList(memberIdlist); + orderClient.getOrderAuctionBond(orderAuctionBondDTO, SecurityConstants.INNER); + } + } } -- Gitblit v1.7.1