From 07c30af8fdfb9b75086e9e02c4d695fded2a03ab Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期六, 01 六月 2024 17:43:12 +0800 Subject: [PATCH] 提交【管理后台】-大屏操作台相关接口 --- /dev/null | 20 --- ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroomGoods.java | 6 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomGoodsServiceImpl.java | 9 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/MgtAuctionSalesroomGoodsVO.java | 26 +++ ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/AuctionGoodsStatusEnum.java | 39 ++++++ ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java | 19 +++ ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionScreenController.java | 61 ++++++++++ ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java | 114 +++++++++++++++++- ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/MgtAuctionSalesroomScreenVO.java | 49 ++++++++ ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/MgtAuctionSalesroomVO.java | 6 + 10 files changed, 311 insertions(+), 38 deletions(-) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/AuctionGoodsStatusEnum.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/AuctionGoodsStatusEnum.java new file mode 100644 index 0000000..1d1d42b --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/AuctionGoodsStatusEnum.java @@ -0,0 +1,39 @@ +package com.ruoyi.common.core.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.AllArgsConstructor; +import lombok.Getter; + + +@Getter +@AllArgsConstructor +public enum AuctionGoodsStatusEnum { + + /*状态 0=等待中 1=进行中 2=已结束*/ + WAITING(0, "等待中"), + IN_PROGRESS(1, "进行中"), + ENDED(2, "已结束"); + @EnumValue + private final int code; + @JsonValue + private final String desc; + + + /** + * 通过code获取枚举 + * + * @param code + * @return + */ + public static AuctionGoodsStatusEnum fromCode(Integer code) { + AuctionGoodsStatusEnum[] resultTypes = AuctionGoodsStatusEnum.values(); + for (AuctionGoodsStatusEnum resultType : resultTypes) { + if (code.equals(resultType.getCode())) { + return resultType; + } + } + return null; + } + +} diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionScreenController.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionScreenController.java new file mode 100644 index 0000000..5b8ff62 --- /dev/null +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionScreenController.java @@ -0,0 +1,61 @@ +package com.ruoyi.auction.controller.management; + + +import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomQuery; +import com.ruoyi.auction.controller.management.vo.MgtAuctionSalesroomScreenVO; +import com.ruoyi.auction.controller.management.vo.MgtAuctionSalesroomVO; +import com.ruoyi.auction.service.IAuctionSalesroomService; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.utils.page.PageDTO; +import com.ruoyi.common.core.web.page.BasePage; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +/** + * <p> + * 拍卖会视频表 前端控制器 + * </p> + * + * @author mitao + * @since 2024-05-17 + */ +@RestController +@RequestMapping("/mgt/auction-screen") +@Api(tags = {"管理后台-大屏操作台相关接口"}) +@RequiredArgsConstructor +public class MgtAuctionScreenController { + + private final IAuctionSalesroomService auctionSalesroomService; + + /** + * 大屏操作台分页查询拍卖场 + * + * @param query 拍卖场查询对象 + * @return PageDTO<MgtAuctionSalesroomVO> + */ + @PostMapping("/page") + @ApiOperation(value = "获取拍卖场列表的分页数据", notes = "获取拍卖场列表的分页数据") + public R<PageDTO<MgtAuctionSalesroomVO>> getAuctionSalesroom4ScreenPage( + MgtAuctionSalesroomQuery query) { + return R.ok(auctionSalesroomService.getAuctionSalesroom4ScreenPage(query)); + } + + /** + * 进入详情 + * + * @param id 拍卖会id + * @return 大屏操作台拍卖场视图对象 + */ + @PostMapping("/detail/{id}") + @ApiOperation(value = "进入详情", notes = "进入详情") + public R<MgtAuctionSalesroomScreenVO> getAuctionSalesroomDetail(@PathVariable("id") Long id, + @RequestParam("basePage") BasePage basePage) { + return R.ok(auctionSalesroomService.getAuctionSalesroomDetail(id, basePage)); + } +} diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionVideoController.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionVideoController.java deleted file mode 100644 index 54b933c..0000000 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionVideoController.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.ruoyi.auction.controller.management; - - -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * <p> - * 拍卖会视频表 前端控制器 - * </p> - * - * @author mitao - * @since 2024-05-17 - */ -@RestController -@RequestMapping("/mgt/auction-video") -public class MgtAuctionVideoController { - - -} diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/MgtAuctionSalesroomGoodsVO.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/MgtAuctionSalesroomGoodsVO.java index f90c082..c088218 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/MgtAuctionSalesroomGoodsVO.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/MgtAuctionSalesroomGoodsVO.java @@ -1,11 +1,14 @@ package com.ruoyi.auction.controller.management.vo; -import com.ruoyi.common.core.enums.AuctionStartStatusEnum; +import com.ruoyi.common.core.enums.AuctionGoodsStatusEnum; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; import java.math.BigDecimal; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * @author mitao @@ -13,6 +16,9 @@ */ @Data @ApiModel(value = "拍卖场商品视图对象", description = "拍卖场商品视图对象") +@Builder +@NoArgsConstructor +@AllArgsConstructor public class MgtAuctionSalesroomGoodsVO implements Serializable { private static final long serialVersionUID = 2894806543298759929L; @@ -22,7 +28,7 @@ @ApiModelProperty(value = "商品id") private Long goodsSkuId; - + @ApiModelProperty("拍卖商品名") private String goodsSkuName; @@ -41,7 +47,19 @@ @ApiModelProperty(value = "设为备选") private Boolean backupStatus; - @ApiModelProperty(value = "状态 0=预展中 1=拍卖中 2=已结束") - private AuctionStartStatusEnum status; + @ApiModelProperty(value = "状态 0=等待中 1=进行中 2=已结束") + private AuctionGoodsStatusEnum status; + + @ApiModelProperty(value = "规格") + private String spec; + + @ApiModelProperty(value = "中拍人数") + private Integer bidCount = 0; + + @ApiModelProperty(value = "已拍数量") + private Integer bidQuantity = 0; + + @ApiModelProperty(value = "已拍人数") + private Integer bidPersonCount = 0; } diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/MgtAuctionSalesroomScreenVO.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/MgtAuctionSalesroomScreenVO.java new file mode 100644 index 0000000..9a14628 --- /dev/null +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/MgtAuctionSalesroomScreenVO.java @@ -0,0 +1,49 @@ +package com.ruoyi.auction.controller.management.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.core.enums.AuctionStartStatusEnum; +import com.ruoyi.common.core.utils.page.PageDTO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; +import lombok.Data; + +/** + * @author mitao + * @date 2024/5/29 + */ +@Data +@ApiModel(value = "大屏操作台拍卖场视图对象", description = "大屏操作台拍卖场视图对象") +public class MgtAuctionSalesroomScreenVO implements Serializable { + + + private static final long serialVersionUID = -5626613967629761052L; + + @ApiModelProperty(value = "拍卖场id") + private Long id; + + @ApiModelProperty(value = "拍卖场名称") + private String salesroomName; + + @ApiModelProperty(value = "开始时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime startTime; + + + @ApiModelProperty(value = "拍卖状态 0=预展中 1=拍卖中 2=已结束") + private AuctionStartStatusEnum status; + + @ApiModelProperty(value = "当前拍品信息") + private MgtAuctionSalesroomGoodsVO currentAuctionSalesroomGoods; + + @ApiModelProperty(value = "下一拍品拍卖信息") + private MgtAuctionSalesroomGoodsVO nextAuctionSalesroomGoods; + + @ApiModelProperty(value = "拍卖信息") + private List<MgtAuctionSalesroomGoodsVO> auctionSalesroomGoodsVOS; + + @ApiModelProperty(value = "当前拍品出价信息") + private PageDTO<MgtAuctionBidRecordVO> mgtAuctionBidRecordVOPageDTO; +} diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/MgtAuctionSalesroomVO.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/MgtAuctionSalesroomVO.java index 797aadd..27910c8 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/MgtAuctionSalesroomVO.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/vo/MgtAuctionSalesroomVO.java @@ -10,7 +10,10 @@ import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; +import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * @author mitao @@ -18,6 +21,9 @@ */ @Data @ApiModel(value = "拍卖场视图对象", description = "拍卖场视图对象") +@Builder +@NoArgsConstructor +@AllArgsConstructor public class MgtAuctionSalesroomVO implements Serializable { private static final long serialVersionUID = -7682015246094307938L; diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroomGoods.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroomGoods.java index 89b9f02..b35e26e 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroomGoods.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroomGoods.java @@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableName; -import com.ruoyi.common.core.enums.AuctionStartStatusEnum; +import com.ruoyi.common.core.enums.AuctionGoodsStatusEnum; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; @@ -67,8 +67,8 @@ @ApiModelProperty(value = "开始时间") private LocalDateTime startTime; - @ApiModelProperty(value = "状态 0=预展中 1=拍卖中 2=已结束") - private AuctionStartStatusEnum status; + @ApiModelProperty(value = "状态 0=等待中 1=进行中 2=已结束") + private AuctionGoodsStatusEnum status; @ApiModelProperty(value = "创建者") @TableField(value = "create_by", fill = FieldFill.INSERT) diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java index 495b3bc..d4dcef1 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java @@ -10,8 +10,10 @@ 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.MgtAuctionSalesroomScreenVO; import com.ruoyi.auction.controller.management.vo.MgtAuctionSalesroomVO; import com.ruoyi.common.core.utils.page.PageDTO; +import com.ruoyi.common.core.web.page.BasePage; import com.ruoyi.system.api.domain.AppMiniLoginVO; import com.ruoyi.system.api.domain.AuctionSalesroom; import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO; @@ -98,4 +100,21 @@ */ PageDTO<MgtAuctionBidRecordVO> getAuctionSalesroomBidRecordList( MgtAuctionSaleroomBidRecordQuery query); + + /** + * 大屏操作台分页查询拍卖场 + * + * @param query 拍卖场查询对象 + * @return PageDTO<MgtAuctionSalesroomVO> + */ + PageDTO<MgtAuctionSalesroomVO> getAuctionSalesroom4ScreenPage(MgtAuctionSalesroomQuery query); + + /** + * 进入详情 + * + * @param id 拍卖会id + * @param page + * @return 大屏操作台拍卖场视图对象 + */ + MgtAuctionSalesroomScreenVO getAuctionSalesroomDetail(Long id, BasePage basePage); } 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 28fff74..135ec68 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 @@ -22,6 +22,7 @@ import com.ruoyi.auction.service.IAuctionSalesroomService; import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.enums.AuctionGoodsStatusEnum; import com.ruoyi.common.core.enums.AuctionOrderTypeEnum; import com.ruoyi.common.core.enums.AuctionStartStatusEnum; import com.ruoyi.common.core.enums.BidStatusEnum; @@ -291,7 +292,7 @@ wrapper2.orderByAsc(AuctionSalesroomGoods::getSortNum); wrapper2.last("limit 1"); AuctionSalesroomGoods auctionSalesroomGoods = this.getOne(wrapper2); - auctionSalesroomGoods.setStatus(AuctionStartStatusEnum.IN_AUCTION); + auctionSalesroomGoods.setStatus(AuctionGoodsStatusEnum.IN_PROGRESS); this.updateById(auctionSalesroomGoods); } @@ -316,7 +317,7 @@ List<AuctionSalesroomGoods> auctionSalesroomGoods=this.list(wrapper2); if (auctionSalesroomGoods.size()>0){ for (AuctionSalesroomGoods salesroomGoods:auctionSalesroomGoods){ - salesroomGoods.setStatus(AuctionStartStatusEnum.ENDED); + salesroomGoods.setStatus(AuctionGoodsStatusEnum.ENDED); this.updateById(salesroomGoods); GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); @@ -373,7 +374,7 @@ wrapper2.eq(AuctionSalesroomGoods::getDelFlag,0); wrapper2.eq(AuctionSalesroomGoods::getGoodsSkuId,auctionSalesroomGoodsDTO.getGoodsSkuId()); AuctionSalesroomGoods auctionSalesroomGoods=this.getOne(wrapper2); - auctionSalesroomGoods.setStatus(AuctionStartStatusEnum.IN_AUCTION); + auctionSalesroomGoods.setStatus(AuctionGoodsStatusEnum.IN_PROGRESS); this.updateById(auctionSalesroomGoods); @@ -431,7 +432,7 @@ } } - auctionSalesroomGood.setStatus(AuctionStartStatusEnum.ENDED); + auctionSalesroomGood.setStatus(AuctionGoodsStatusEnum.ENDED); this.updateById(auctionSalesroomGood); } 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 d1550bc..a0614d2 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,5 +1,6 @@ package com.ruoyi.auction.service.impl; +import cn.binarywang.wx.miniapp.api.WxMaService; import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; import com.alibaba.fastjson.JSONObject; import com.alipay.api.AlipayApiException; @@ -25,6 +26,7 @@ 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.MgtAuctionSalesroomScreenVO; import com.ruoyi.auction.controller.management.vo.MgtAuctionSalesroomVO; import com.ruoyi.auction.domain.AuctionBidRecord; import com.ruoyi.auction.domain.AuctionSalesroomGoods; @@ -35,13 +37,13 @@ import com.ruoyi.auction.service.IAuctionBidRecordService; 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.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.AuctionGoodsStatusEnum; import com.ruoyi.common.core.enums.AuctionOrderTypeEnum; import com.ruoyi.common.core.enums.AuctionStartStatusEnum; import com.ruoyi.common.core.enums.BidStatusEnum; @@ -53,6 +55,7 @@ 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.common.core.web.page.BasePage; import com.ruoyi.system.api.domain.AppMiniLoginVO; import com.ruoyi.system.api.domain.AuctionGoods; import com.ruoyi.system.api.domain.AuctionSalesroom; @@ -60,7 +63,13 @@ 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.*; +import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO; +import com.ruoyi.system.api.domain.dto.BidDTO; +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.RefundDTO; import com.ruoyi.system.api.domain.vo.PayInfoVO; import com.ruoyi.system.api.domain.vo.WdMemberAuctionSalesroomVO; import com.ruoyi.system.api.feignClient.GoodsSkuClient; @@ -70,7 +79,11 @@ 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; @@ -102,12 +115,11 @@ @Resource private SysUserClient sysUserClient; - // @Resource - // private WxMaService wxMaService; + @Resource + private WxMaService wxMaService; @Resource private AuctionSalesroomGoodsMapper auctionSalesroomGoodsMapper; - @Resource private IAuctionGoodsService auctionGoodsService; @@ -117,6 +129,7 @@ @Resource private OrderClient orderClient; + @Resource private MemberClient memberClient; @@ -260,7 +273,7 @@ String openid; String sessionKey = null; //获取session - // session = wxMaService.getUserService().getSessionInfo(appMiniLoginDto.getCode()); + session = wxMaService.getUserService().getSessionInfo(appMiniLoginDto.getCode()); if (session != null && StringUtils.isNotBlank(session.getOpenid())) { unionid = session.getUnionid(); openid = session.getOpenid(); @@ -809,6 +822,7 @@ // 获取拍卖场商品 LambdaQueryWrapper<AuctionSalesroomGoods> wrappers=new LambdaQueryWrapper<AuctionSalesroomGoods>(); wrappers.eq(AuctionSalesroomGoods::getAuctionSalesroomId, id); + wrappers.orderByDesc(AuctionSalesroomGoods::getSortNum); List<AuctionSalesroomGoods> list = auctionSalesroomGoodsMapper.selectList(wrappers); if (StringUtils.isNotEmpty(list)) { List<MgtAuctionSalesroomGoodsVO> mgtAuctionSalesroomGoodsVOS = BeanUtils.copyList(list, @@ -827,6 +841,7 @@ GoodsSku goodsSku = goodsSkuMap.get(vo.getGoodsSkuId()); if (StringUtils.isNotNull(goodsSku)) { vo.setGoodsSkuName(goodsSku.getSkuName()); + vo.setSpec(goodsSku.getSpec()); } } mgtAuctionSalesroomVO.setAuctionSalesroomGoodsVOS(mgtAuctionSalesroomGoodsVOS); @@ -882,4 +897,89 @@ } return mgtAuctionBidRecordVOPageDTO; } + + /** + * 大屏操作台分页查询拍卖场 + * + * @param query 拍卖场查询对象 + * @return PageDTO<MgtAuctionSalesroomVO> + */ + @Override + public PageDTO<MgtAuctionSalesroomVO> getAuctionSalesroom4ScreenPage( + MgtAuctionSalesroomQuery query) { + // 分页查询 + Page<AuctionSalesroom> page = this.lambdaQuery() + .select(AuctionSalesroom::getId, AuctionSalesroom::getSalesroomName, + AuctionSalesroom::getStartTime, AuctionSalesroom::getStatus) + .like(StringUtils.isNotEmpty(query.getSalesroomName()), + AuctionSalesroom::getSalesroomName, query.getSalesroomName()) + .eq(StringUtils.isNotNull(query.getStatus()), AuctionSalesroom::getStatus, + query.getStatus()) + .ne(AuctionSalesroom::getStatus, AuctionStartStatusEnum.ENDED) + .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); + } + return PageDTO.of(page, MgtAuctionSalesroomVO.class); + } + + /** + * 进入详情 + * + * @param id 拍卖会id + * @param basePage + * @return 大屏操作台拍卖场视图对象 + */ + @Override + public MgtAuctionSalesroomScreenVO getAuctionSalesroomDetail(Long id, BasePage basePage) { + MgtAuctionSalesroomVO mgtAuctionSalesroomVO = this.getAuctionSalesroom(id); + MgtAuctionSalesroomScreenVO vo = BeanUtils.copyBean( + mgtAuctionSalesroomVO, MgtAuctionSalesroomScreenVO.class); + if (vo.getStatus().equals(AuctionStartStatusEnum.IN_AUCTION)) { + List<MgtAuctionSalesroomGoodsVO> auctionSalesroomGoodsVOS = vo.getAuctionSalesroomGoodsVOS(); + List<MgtAuctionSalesroomGoodsVO> collect = auctionSalesroomGoodsVOS.stream() + .peek(goods -> { + List<AuctionBidRecord> list = auctionBidRecordService.lambdaQuery() + .eq(AuctionBidRecord::getTargetId, goods.getId()) + .eq(AuctionBidRecord::getAuctionType, + AuctionOrderTypeEnum.AUCTION_ITEMS) + .list(); + if (StringUtils.isNotEmpty(list)) { + long bidCount = list.stream() + .filter(item -> BidStatusEnum.SUCCESSFUL.equals( + item.getStatus())) + .count(); + goods.setBidCount((int) bidCount); + goods.setBidQuantity((int) bidCount); + goods.setBidPersonCount(list.size()); + } + if (goods.getStatus().equals(AuctionGoodsStatusEnum.IN_PROGRESS)) { + vo.setCurrentAuctionSalesroomGoods(goods); + } + }).collect(Collectors.toList()); + vo.setAuctionSalesroomGoodsVOS(collect); + if (StringUtils.isNotNull(vo.getCurrentAuctionSalesroomGoods())) { + int index = collect.indexOf(vo.getCurrentAuctionSalesroomGoods()); + vo.setNextAuctionSalesroomGoods(collect.get(index + 1)); + // 分页查询当前拍品出价信息 + Page<AuctionBidRecord> page = auctionBidRecordService.lambdaQuery() + .eq(AuctionBidRecord::getTargetId, + vo.getCurrentAuctionSalesroomGoods().getId()) + .eq(AuctionBidRecord::getAuctionType, + AuctionOrderTypeEnum.AUCTION_ITEMS) + .page(new Page<>(basePage.getPageCurr(), basePage.getPageSize())); + if (StringUtils.isNotEmpty(page.getRecords())) { + vo.setMgtAuctionBidRecordVOPageDTO(PageDTO.empty(page)); + } + vo.setMgtAuctionBidRecordVOPageDTO(PageDTO.of(page, MgtAuctionBidRecordVO.class)); + } else { + vo.setNextAuctionSalesroomGoods(collect.get(0)); + } + } + return vo; + } } -- Gitblit v1.7.1