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