mitao
2024-06-03 a756255136e9244180f90d6dcfb51529e2ac8a9b
提交【管理后台】-大屏操作台相关接口
7个文件已添加
47个文件已修改
760 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constants/ConfigEnum.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionGoods.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionSalesroom.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/GoodsBrand.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/GoodsCategory.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/GoodsFlavorType.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/GoodsGroupPurchase.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/GoodsSeckill.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/GoodsSeries.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/GoodsSku.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Member.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/OrderAuctionBond.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/PromotionVideo.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/PromotionClient.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/PointStatusEnum.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/ApplicationConfig.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/Article.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/ArticleComments.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/MemberArticleCollection.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/MemberLike.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/SensitiveWords.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionSalesroomController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionScreenController.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/dto/MgtAuctionSalesroomGoodsDTO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/dto/MgtAuctionSalesroomGoodsQuery.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/dto/MgtScreenSalesroomGoodsDTO.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/dto/MgtScreenVideoDTO.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionBidRecord.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroomGoods.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionVideo.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/MemberAuctionCollection.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionSalesroomGoodsMapper.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java 184 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-auction/src/main/resources/mapper/auction/AuctionSalesroomGoodsMapper.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/GoodsInfoTitle.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/GoodsInfoTitleValue.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/MemberGoodsCollection.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/async/AsyncMethodService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/MemberPoints.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/InvoicingApplication.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/OrderAuction.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/OrderMall.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/OrderReturnRequest.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionVideoController.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionVideoQuery.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/MgtPromotionVideoVO.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/domain/Coupon.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/domain/CouponMember.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/domain/PromotionBanner.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/domain/PromotionWishList.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/IPromotionVideoService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/impl/PromotionVideoServiceImpl.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/pom.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constants/ConfigEnum.java
@@ -22,7 +22,9 @@
    RETURN_ADDRESS_USER_NAME("RETURN_ADDRESS_USER_NAME",1,"退货地址用户名"),
    RETURN_ADDRESS_USER_PHONE("RETURN_ADDRESS_USER_PHONE",1,"退货地址手机号"),
    RETURN_ADDRESS_USER_ADDRESS("RETURN_ADDRESS_USER_ADDRESS",1,"退货地址"),
    RETURN_CYCLE("RETURN_CYCLE",1,"退货周期,用户在收货后{}天可申请售后");
    RETURN_CYCLE("RETURN_CYCLE", 1, "退货周期,用户在收货后{}天可申请售后"),
    MEMBER_POINTS_MONEY("MEMBER_POINTS_MONEY", 1, "会员每实际消费{}元"),
    MEMBER_POINTS_POINTS("MEMBER_POINTS_POINTS", 1, "可获得{}积分");
    private final String key;
    private final Integer keyType;   //1=系统配置
    private final String keyName;
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionGoods.java
@@ -89,7 +89,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionSalesroom.java
@@ -83,7 +83,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/GoodsBrand.java
@@ -48,7 +48,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/GoodsCategory.java
@@ -48,7 +48,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/GoodsFlavorType.java
@@ -48,7 +48,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/GoodsGroupPurchase.java
@@ -100,7 +100,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/GoodsSeckill.java
@@ -1,17 +1,21 @@
package com.ruoyi.system.api.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.enums.ListingStatusEnum;
import com.ruoyi.common.core.enums.StartStatusEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
 * <p>
@@ -79,7 +83,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/GoodsSeries.java
@@ -47,7 +47,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/GoodsSku.java
@@ -106,7 +106,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Member.java
@@ -84,7 +84,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/OrderAuctionBond.java
@@ -69,7 +69,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/PromotionVideo.java
@@ -1,14 +1,18 @@
package com.ruoyi.system.api.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * <p>
@@ -46,7 +50,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/PromotionClient.java
@@ -21,5 +21,4 @@
    @PostMapping("/promotion-video/getPromotionVideoOne")
    R<PromotionVideo> getPromotionVideoOne(Long promotionVideoId,
            @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
}
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/PointStatusEnum.java
New file
@@ -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 PointStatusEnum {
    /*积分状态 1=增加 2=减少*/
    INCREASE(1, "增加"),
    REDUCE(2, "减少");
    @EnumValue
    private final int code;
    @JsonValue
    private final String desc;
    /**
     * 通过code获取枚举
     *
     * @param code
     * @return
     */
    public static PointStatusEnum fromCode(Integer code) {
        PointStatusEnum[] resultTypes = PointStatusEnum.values();
        for (PointStatusEnum resultType : resultTypes) {
            if (code.equals(resultType.getCode())) {
                return resultType;
            }
        }
        return null;
    }
}
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/ApplicationConfig.java
@@ -1,5 +1,6 @@
package com.ruoyi.common.security.config;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import java.util.TimeZone;
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.context.annotation.Bean;
@@ -19,4 +20,13 @@
    {
        return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder.timeZone(TimeZone.getDefault());
    }
    @Bean
    public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
        return builder -> {
            // Long 会自动转换成 String
            builder.serializerByType(Long.class, ToStringSerializer.instance);
        };
    }
}
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/Article.java
@@ -73,7 +73,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/ArticleComments.java
@@ -52,7 +52,7 @@
    private String createBy;
    @ApiModelProperty(value = "创建时间")
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    @TableField(value = "create_by", fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/MemberArticleCollection.java
@@ -49,7 +49,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/MemberLike.java
@@ -52,7 +52,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/SensitiveWords.java
@@ -46,7 +46,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionSalesroomController.java
@@ -93,7 +93,7 @@
    @ApiOperation(value = "查看详情", notes = "查看详情")
    public R<MgtAuctionSalesroomVO> getAuctionSalesroom(
            @ApiParam(name = "id", value = "拍卖会id", required = true) @PathVariable("id") Long id) {
        return R.ok(auctionSalesroomService.getAuctionSalesroom(id));
        return R.ok(auctionSalesroomService.getAuctionSalesroom(id, Boolean.FALSE));
    }
    /**
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionScreenController.java
@@ -1,24 +1,33 @@
package com.ruoyi.auction.controller.management;
import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomGoodsQuery;
import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomQuery;
import com.ruoyi.auction.controller.management.dto.MgtScreenBidPage;
import com.ruoyi.auction.controller.management.dto.MgtScreenSalesroomGoodsDTO;
import com.ruoyi.auction.controller.management.dto.MgtScreenVideoDTO;
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.service.IAuctionSalesroomService;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.page.PageDTO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import java.util.List;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
@@ -75,5 +84,90 @@
            @Validated @RequestBody MgtScreenBidPage mgtScreenBidPage) {
        return R.ok(auctionSalesroomService.getScreenBidRecordList(mgtScreenBidPage));
    }
    /**
     * 添加商品
     *
     * @param dto 大屏操作台添加商品数据传输对象
     */
    @PostMapping("/add-goods")
    @ApiOperation(value = "添加商品", notes = "添加商品")
    public R<?> addGoods(@RequestBody MgtScreenSalesroomGoodsDTO dto) {
        auctionSalesroomService.addGoods(dto);
        return R.ok();
    }
    /**
     * 获取备选拍品列表的分页数据
     *
     * @param query 拍卖场商品关系查询对象
     * @return PageDTO<MgtAuctionSalesroomGoodsVO>
     */
    @PostMapping("/backup-goods")
    @ApiOperation(value = "获取备选拍品列表的分页数据", notes = "获取备选拍品列表的分页数据")
    public R<PageDTO<MgtAuctionSalesroomGoodsVO>> backupGoods(
            @RequestBody MgtAuctionSalesroomGoodsQuery query) {
        return R.ok(auctionSalesroomService.backupGoods(query));
    }
    /**
     * 添加备选商品
     *
     * @param idList 备选商品id集合
     */
    @PutMapping("/add-backup-goods")
    @ApiOperation(value = "选择备选商品", notes = "选择备选商品")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "idList", value = "备选商品id集合", required = true, dataType = "List")})
    public R<?> addBackupGoods(@RequestParam("idList") List<Long> idList) {
        auctionSalesroomService.addBackupGoods(idList);
        return R.ok();
    }
    /**
     * 结束当前拍卖商品
     *
     * @param id 拍卖场商品id
     */
    @PutMapping("/stop-current/{id}")
    @ApiOperation("停止当前拍品")
    public R<?> stopCurrentGoods(
            @ApiParam(name = "id", value = "拍卖场商品id", required = true) @PathVariable("id") Long id) {
        auctionSalesroomService.stopCurrentGoods(id);
        return R.ok();
    }
    /**
     * 开始下一拍卖商品
     *
     * @param id 拍卖场商品id
     */
    @PutMapping("/start-next/{id}")
    @ApiOperation("开始下一拍卖商品")
    public R<?> startNextGoods(
            @ApiParam(name = "id", value = "拍卖场商品id", required = true) @PathVariable("id") Long id) {
        auctionSalesroomService.startNextGoods(id);
        return R.ok();
    }
    /**
     * 播放视频
     *
     * @param dto 大屏播放视频对象
     */
    @PostMapping("/play")
    @ApiOperation("播放视频")
    public R<?> play(@RequestBody MgtScreenVideoDTO dto) {
        auctionSalesroomService.play(dto);
        return R.ok();
    }
    @PostMapping("/stop-play/{auctionSalesroomId}")
    @ApiOperation("播放视频")
    public R<?> stopPlay(
            @ApiParam(name = "auctionSalesroomId", value = "拍卖场id", required = true)
            @PathVariable("auctionSalesroomId") Long auctionSalesroomId) {
        auctionSalesroomService.stopPlay(auctionSalesroomId);
        return R.ok();
    }
}
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/dto/MgtAuctionSalesroomGoodsDTO.java
@@ -1,6 +1,7 @@
package com.ruoyi.auction.controller.management.dto;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import javax.validation.constraints.NotNull;
import lombok.Data;
@@ -10,8 +11,10 @@
 * @date 2024/5/30
 */
@Data
public class MgtAuctionSalesroomGoodsDTO {
public class MgtAuctionSalesroomGoodsDTO implements Serializable {
    private static final long serialVersionUID = -7793257582778819593L;
    @ApiModelProperty(value = "商品id")
    @NotNull(message = "商品id不能为空")
    private Long goodsSkuId;
@@ -36,7 +39,6 @@
    private Integer listingDuration;
    @ApiModelProperty(value = "设为备选")
    @NotNull(message = "设为备选不能为空")
    private Boolean backupStatus;
    @ApiModelProperty(value = "排序")
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/dto/MgtAuctionSalesroomGoodsQuery.java
New file
@@ -0,0 +1,22 @@
package com.ruoyi.auction.controller.management.dto;
import com.ruoyi.common.core.web.page.BasePage;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * @author mitao
 * @date 2024/6/3
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "拍卖场商品关系查询对象", description = "拍卖场商品关系查询对象")
public class MgtAuctionSalesroomGoodsQuery extends BasePage {
    private static final long serialVersionUID = 9040206486072802788L;
    @ApiModelProperty(value = "商品名称")
    private String goodsName;
}
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/dto/MgtScreenSalesroomGoodsDTO.java
New file
@@ -0,0 +1,47 @@
package com.ruoyi.auction.controller.management.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import javax.validation.constraints.NotNull;
import lombok.Data;
/**
 * @author mitao
 * @date 2024/5/30
 */
@Data
@ApiModel(value = "大屏操作台添加商品数据传输对象", description = "大屏操作台添加商品数据传输对象")
public class MgtScreenSalesroomGoodsDTO implements Serializable {
    private static final long serialVersionUID = 6854876306221398178L;
    @ApiModelProperty(value = "拍卖会id")
    @NotNull(message = "拍卖会id不能为空")
    private Long auctionSalesroomId;
    @ApiModelProperty(value = "商品id")
    @NotNull(message = "商品id不能为空")
    private Long goodsSkuId;
    @ApiModelProperty(value = "起拍价格")
    @NotNull(message = "起拍价格不能为空")
    private BigDecimal startingPrice;
    @ApiModelProperty(value = "最低加价金额")
    @NotNull(message = "最低加价金额不能为空")
    private BigDecimal minimumMarkupAmount;
    @ApiModelProperty(value = "拍品数量")
    @NotNull(message = "拍品数量不能为空")
    private Integer salesroomStock;
    @ApiModelProperty(value = "兜底成交个数")
    private Integer guaranteedTradeVolume;
    @ApiModelProperty(value = "拍卖时间(分钟)")
    @NotNull(message = "拍卖时间不能为空")
    private Integer listingDuration;
}
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/dto/MgtScreenVideoDTO.java
New file
@@ -0,0 +1,26 @@
package com.ruoyi.auction.controller.management.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import javax.validation.constraints.NotNull;
import lombok.Data;
/**
 * @author mitao
 * @date 2024/6/3
 */
@Data
@ApiModel(value = "大屏播放视频对象", description = "大屏播放视频对象")
public class MgtScreenVideoDTO implements Serializable {
    private static final long serialVersionUID = 2889588554773207971L;
    @ApiModelProperty(value = "视频id")
    @NotNull(message = "视频id不能为空")
    private Long videoId;
    @ApiModelProperty(value = "拍卖会id")
    @NotNull(message = "拍卖会id不能为空")
    private Long auctionSalesroomId;
}
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionBidRecord.java
@@ -71,7 +71,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroomGoods.java
@@ -79,7 +79,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionVideo.java
@@ -1,7 +1,10 @@
package com.ruoyi.auction.domain;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -42,18 +45,23 @@
    private Long auctionSalesroomId;
    @ApiModelProperty(value = "创建者")
    @TableField(value = "create_by", fill = FieldFill.INSERT)
    private String createBy;
    @ApiModelProperty(value = "创建时间")
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    @ApiModelProperty(value = "删除标志(0代表存在 1代表删除)")
    @TableLogic
    private Integer delFlag;
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/MemberAuctionCollection.java
@@ -49,7 +49,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
@@ -59,5 +59,4 @@
    @ApiModelProperty(value = "删除标志(0代表存在 1代表删除)")
    @TableLogic
    private Integer delFlag;
}
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/mapper/AuctionSalesroomGoodsMapper.java
@@ -1,11 +1,10 @@
package com.ruoyi.auction.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO;
import com.ruoyi.auction.domain.AuctionSalesroomGoods;
import org.apache.ibatis.annotations.Param;
import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO;
import java.util.List;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
@@ -19,4 +18,5 @@
   List<AuctionSalesroomGoods> getAuctionSalesroomGoods(@Param("param") MemberAuctionSalesroomDTO memberAuctionSalesroomDTO);
   void updateBatchById(@Param("param") List<AuctionSalesroomGoods> auctionSalesroomGoods);
}
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionSalesroomService.java
@@ -8,9 +8,13 @@
import com.ruoyi.auction.controller.forepart.vo.MemberAuctionSalesroomVO;
import com.ruoyi.auction.controller.management.dto.MgtAuctionSaleroomBidRecordQuery;
import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomDTO;
import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomGoodsQuery;
import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomQuery;
import com.ruoyi.auction.controller.management.dto.MgtScreenBidPage;
import com.ruoyi.auction.controller.management.dto.MgtScreenSalesroomGoodsDTO;
import com.ruoyi.auction.controller.management.dto.MgtScreenVideoDTO;
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.common.core.utils.page.PageDTO;
@@ -22,6 +26,7 @@
import com.ruoyi.system.api.domain.dto.MemberAuctionSalesroomDTO;
import com.ruoyi.system.api.domain.vo.PayInfoVO;
import com.ruoyi.system.api.domain.vo.WdMemberAuctionSalesroomVO;
import java.util.List;
import org.springframework.web.bind.annotation.RequestBody;
/**
@@ -86,11 +91,11 @@
    /**
     * 查看详情
     *
     * @param id 拍卖会id
     * @return 拍卖场视图对象
     * @param isScreen 是否为大屏控制台
     * @return MgtAuctionSalesroomVO
     */
    MgtAuctionSalesroomVO getAuctionSalesroom(Long id);
    MgtAuctionSalesroomVO getAuctionSalesroom(Long id, Boolean isScreen);
    /**
     * 查看详情-出价记录
@@ -124,4 +129,49 @@
     * @return PageDTO<MgtAuctionBidRecordVO>
     */
    PageDTO<MgtAuctionBidRecordVO> getScreenBidRecordList(MgtScreenBidPage mgtScreenBidPage);
    /**
     * 添加商品
     *
     * @param dto 大屏操作台添加商品数据传输对象
     */
    void addGoods(MgtScreenSalesroomGoodsDTO dto);
    /**
     * 获取备选拍品列表的分页数据
     *
     * @param query 拍卖场商品关系查询对象
     * @return PageDTO<MgtAuctionSalesroomGoodsVO>
     */
    PageDTO<MgtAuctionSalesroomGoodsVO> backupGoods(MgtAuctionSalesroomGoodsQuery query);
    /**
     * 选择备选商品
     *
     * @param idList 备选商品id集合
     */
    void addBackupGoods(List<Long> idList);
    /**
     * 结束当前拍卖商品
     *
     * @param id 拍卖场商品id
     */
    void stopCurrentGoods(Long id);
    /**
     * 开始下一拍卖商品
     *
     * @param id 拍卖场商品id
     */
    void startNextGoods(Long id);
    /**
     * 播放视频
     *
     * @param dto 大屏播放视频对象
     */
    void play(MgtScreenVideoDTO dto);
    void stopPlay(Long auctionSalesroomId);
}
ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java
@@ -14,6 +14,7 @@
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.ruoyi.auction.controller.forepart.dto.AuctionSalesroomGoodsDTO;
import com.ruoyi.auction.controller.forepart.dto.ForepartAuctionBidRecordDTO;
import com.ruoyi.auction.controller.forepart.vo.ForepartAuctionSalesroomGoodsVO;
@@ -23,8 +24,11 @@
import com.ruoyi.auction.controller.management.dto.MgtAuctionSaleroomBidRecordQuery;
import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomDTO;
import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomGoodsDTO;
import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomGoodsQuery;
import com.ruoyi.auction.controller.management.dto.MgtAuctionSalesroomQuery;
import com.ruoyi.auction.controller.management.dto.MgtScreenBidPage;
import com.ruoyi.auction.controller.management.dto.MgtScreenSalesroomGoodsDTO;
import com.ruoyi.auction.controller.management.dto.MgtScreenVideoDTO;
import com.ruoyi.auction.controller.management.vo.MgtAuctionBidRecordVO;
import com.ruoyi.auction.controller.management.vo.MgtAuctionSalesroomGoodsVO;
import com.ruoyi.auction.controller.management.vo.MgtAuctionSalesroomScreenVO;
@@ -42,6 +46,7 @@
import com.ruoyi.auction.service.IAuctionVideoService;
import com.ruoyi.auction.util.CreateQrCode;
import com.ruoyi.auction.util.HttpUtils;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.enums.AuctionGoodsStatusEnum;
@@ -62,6 +67,7 @@
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.PromotionVideo;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO;
import com.ruoyi.system.api.domain.dto.BidDTO;
@@ -75,6 +81,7 @@
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.PromotionClient;
import com.ruoyi.system.api.feignClient.SysUserClient;
import io.seata.spring.annotation.GlobalTransactional;
import java.math.BigDecimal;
@@ -137,6 +144,8 @@
    @Resource
    private IAuctionBrowseRecordService  iAuctionBrowseRecordService;
    @Resource
    private PromotionClient promotionClient;
    //微信
    private static final String ACCESS_TOKEN_HOST = "https://api.weixin.qq.com/cgi-bin/token";
@@ -810,21 +819,22 @@
    /**
     * 查看详情
     *
     * @param id 拍卖会id
     * @return 拍卖场视图对象
     * @param isScreen 是否为大屏控制台
     * @return MgtAuctionSalesroomVO
     */
    @Override
    public MgtAuctionSalesroomVO getAuctionSalesroom(Long id) {
    public MgtAuctionSalesroomVO getAuctionSalesroom(Long id, Boolean isScreen) {
        // 获取拍卖场
        AuctionSalesroom auctionSalesroom = this.getById(id);
        MgtAuctionSalesroomVO mgtAuctionSalesroomVO = BeanUtils.copyBean(auctionSalesroom,
                MgtAuctionSalesroomVO.class);
        // 获取拍卖场商品
        LambdaQueryWrapper<AuctionSalesroomGoods> wrappers=new LambdaQueryWrapper<AuctionSalesroomGoods>();
        wrappers.eq(AuctionSalesroomGoods::getAuctionSalesroomId, id);
        wrappers.orderByDesc(AuctionSalesroomGoods::getSortNum);
        List<AuctionSalesroomGoods> list = auctionSalesroomGoodsMapper.selectList(wrappers);
        List<AuctionSalesroomGoods> list;
        if (isScreen) {
            list = getAuctionSalesroomGoods(id, Boolean.TRUE);
        } else {
            list = getAuctionSalesroomGoods(id, null);
        }
        if (StringUtils.isNotEmpty(list)) {
            List<MgtAuctionSalesroomGoodsVO> mgtAuctionSalesroomGoodsVOS = BeanUtils.copyList(list,
                    MgtAuctionSalesroomGoodsVO.class);
@@ -848,6 +858,16 @@
            mgtAuctionSalesroomVO.setAuctionSalesroomGoodsVOS(mgtAuctionSalesroomGoodsVOS);
        }
        return mgtAuctionSalesroomVO;
    }
    private List<AuctionSalesroomGoods> getAuctionSalesroomGoods(Long id, Boolean isBackup) {
        // 获取拍卖场商品
        LambdaQueryWrapper<AuctionSalesroomGoods> wrappers = new LambdaQueryWrapper<AuctionSalesroomGoods>();
        wrappers.eq(AuctionSalesroomGoods::getAuctionSalesroomId, id);
        wrappers.eq(StringUtils.isNotNull(isBackup), AuctionSalesroomGoods::getBackupStatus,
                isBackup);
        wrappers.orderByDesc(AuctionSalesroomGoods::getSortNum);
        return auctionSalesroomGoodsMapper.selectList(wrappers);
    }
    /**
@@ -936,7 +956,7 @@
     */
    @Override
    public MgtAuctionSalesroomScreenVO getAuctionSalesroomDetail(Long id) {
        MgtAuctionSalesroomVO mgtAuctionSalesroomVO = this.getAuctionSalesroom(id);
        MgtAuctionSalesroomVO mgtAuctionSalesroomVO = this.getAuctionSalesroom(id, Boolean.TRUE);
        MgtAuctionSalesroomScreenVO vo = BeanUtils.copyBean(
                mgtAuctionSalesroomVO, MgtAuctionSalesroomScreenVO.class);
        if (vo.getStatus().equals(AuctionStartStatusEnum.IN_AUCTION)) {
@@ -987,14 +1007,14 @@
    /**
     * 进入详情-出价会员列表
     *
     * @param mgtScreenBidPage
     * @param mgtScreenBidPage 分页参数对象
     * @return PageDTO<MgtAuctionBidRecordVO>
     */
    @Override
    public PageDTO<MgtAuctionBidRecordVO> getScreenBidRecordList(
            MgtScreenBidPage mgtScreenBidPage) {
        MgtAuctionSalesroomVO mgtAuctionSalesroomVO = this.getAuctionSalesroom(
                mgtScreenBidPage.getId());
                mgtScreenBidPage.getId(), Boolean.TRUE);
        List<MgtAuctionSalesroomGoodsVO> auctionSalesroomGoodsVOS = mgtAuctionSalesroomVO.getAuctionSalesroomGoodsVOS();
        if (StringUtils.isEmpty(auctionSalesroomGoodsVOS)) {
            throw new ServiceException("该拍卖会暂无拍卖商品");
@@ -1017,4 +1037,146 @@
        }
        return PageDTO.of(page, MgtAuctionBidRecordVO.class);
    }
    /**
     * 添加商品
     *
     * @param dto 大屏操作台添加商品数据传输对象
     */
    @Override
    @Transactional
    @GlobalTransactional(rollbackFor = Exception.class)
    public void addGoods(MgtScreenSalesroomGoodsDTO dto) {
        GoodsSku data = goodsSkuClient.getGoodsSkuOne(dto.getGoodsSkuId(), SecurityConstants.INNER)
                .getData();
        if (StringUtils.isNull(data)) {
            throw new ServiceException("商品不存在");
        }
        // 扣减库存
        GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
        goodsStockUpdDTO.setGoodsSkuId(data.getId());
        goodsStockUpdDTO.setAuctionStock(dto.getSalesroomStock() * -1);
        R<?> result = goodsSkuClient.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO),
                SecurityConstants.INNER);
        if (result.getCode() != Constants.SUCCESS) {
            throw new ServiceException("添加商品失败");
        }
        AuctionSalesroomGoods auctionSalesroomGoods = BeanUtils.copyBean(dto,
                AuctionSalesroomGoods.class);
        auctionSalesroomGoods.setBackupStatus(false);
        auctionSalesroomGoodsMapper.insert(auctionSalesroomGoods);
    }
    /**
     * 获取备选拍品列表的分页数据
     *
     * @param query 拍卖场商品关系查询对象
     * @return PageDTO<MgtAuctionSalesroomGoodsVO>
     */
    @Override
    public PageDTO<MgtAuctionSalesroomGoodsVO> backupGoods(MgtAuctionSalesroomGoodsQuery query) {
        Set<Long> goodsSkuIdSet = null;
        if (StringUtils.isNotBlank(query.getGoodsName())) {
            List<GoodsSku> data = goodsSkuClient.getGoodsByName(query.getGoodsName(),
                    SecurityConstants.INNER).getData();
            if (StringUtils.isNotEmpty(data)) {
                goodsSkuIdSet = data.stream().map(GoodsSku::getId)
                        .collect(Collectors.toSet());
            }
        }
        Page<AuctionSalesroomGoods> page = auctionSalesroomGoodsMapper.selectPage(
                new Page<>(query.getPageCurr(), query.getPageSize()),
                Wrappers.<AuctionSalesroomGoods>lambdaQuery()
                        .in(StringUtils.isNotEmpty(goodsSkuIdSet),
                                AuctionSalesroomGoods::getGoodsSkuId, goodsSkuIdSet));
        if (StringUtils.isNotEmpty(page.getRecords())) {
            return PageDTO.empty(page);
        }
        Set<Long> skuIdList = page.getRecords().stream().map(AuctionSalesroomGoods::getGoodsSkuId)
                .collect(Collectors.toSet());
        List<GoodsSku> goodsSkuList = goodsSkuClient.getGoodsListByIds(skuIdList,
                SecurityConstants.INNER).getData();
        Map<Long, GoodsSku> goodsSkuMap = goodsSkuList.stream()
                .collect(Collectors.toMap(GoodsSku::getId, e -> e));
        PageDTO<MgtAuctionSalesroomGoodsVO> mgtAuctionSalesroomGoodsVOPageDTO = PageDTO.of(page,
                MgtAuctionSalesroomGoodsVO.class);
        mgtAuctionSalesroomGoodsVOPageDTO.getList().forEach(item -> {
            item.setGoodsSkuName(goodsSkuMap.get(item.getGoodsSkuId()).getSkuName());
        });
        return mgtAuctionSalesroomGoodsVOPageDTO;
    }
    /**
     * 选择备选商品
     *
     * @param idList 备选商品id集合
     */
    @Override
    public void addBackupGoods(List<Long> idList) {
        List<AuctionSalesroomGoods> auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectList(
                Wrappers.<AuctionSalesroomGoods>lambdaQuery()
                        .in(AuctionSalesroomGoods::getId, idList)
                        .eq(AuctionSalesroomGoods::getBackupStatus, Boolean.TRUE));
        if (StringUtils.isNotEmpty(auctionSalesroomGoods)) {
            auctionSalesroomGoods.forEach(item -> {
                item.setStatus(AuctionGoodsStatusEnum.WAITING);
            });
            auctionSalesroomGoodsMapper.updateBatchById(auctionSalesroomGoods);
        }
    }
    /**
     * 结束当前拍卖商品
     *
     * @param id 拍卖场商品id
     */
    @Override
    public void stopCurrentGoods(Long id) {
        AuctionSalesroomGoods auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectById(id);
        if (StringUtils.isNull(auctionSalesroomGoods)) {
            throw new ServiceException("拍卖商品不存在");
        }
        auctionSalesroomGoods.setStatus(AuctionGoodsStatusEnum.ENDED);
        auctionSalesroomGoodsMapper.updateById(auctionSalesroomGoods);
    }
    /**
     * 开始下一拍卖商品
     *
     * @param id 拍卖场商品id
     */
    @Override
    public void startNextGoods(Long id) {
        AuctionSalesroomGoods auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectById(id);
        if (StringUtils.isNull(auctionSalesroomGoods)) {
            throw new ServiceException("拍卖商品不存在");
        }
        auctionSalesroomGoods.setStatus(AuctionGoodsStatusEnum.IN_PROGRESS);
        auctionSalesroomGoodsMapper.updateById(auctionSalesroomGoods);
    }
    /**
     * 播放视频
     *
     * @param dto 大屏播放视频对象
     */
    @Override
    public void play(MgtScreenVideoDTO dto) {
        PromotionVideo data = promotionClient.getPromotionVideoOne(dto.getVideoId(),
                SecurityConstants.INNER).getData();
        if (StringUtils.isNull(data)) {
            throw new ServiceException("视频不存在");
        }
        AuctionVideo auctionVideo = new AuctionVideo();
        auctionVideo.setAuctionSalesroomId(dto.getAuctionSalesroomId());
        auctionVideo.setPromotionVideoId(dto.getVideoId());
        auctionVideo.setPromotionVideoUrl(data.getVideoUrl());
        iAuctionVideoService.save(auctionVideo);
    }
    @Override
    public void stopPlay(Long auctionSalesroomId) {
        iAuctionVideoService.remove(Wrappers.<AuctionVideo>lambdaQuery().eq
                (AuctionVideo::getAuctionSalesroomId, 1L));
    }
}
ruoyi-modules/ruoyi-auction/src/main/resources/mapper/auction/AuctionSalesroomGoodsMapper.xml
@@ -1,7 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.auction.mapper.AuctionSalesroomGoodsMapper">
    <select id="pageMemberAuctionSalesroomList" resultType="com.ruoyi.auction.domain.AuctionSalesroomGoods">
  <update id="updateBatchById" parameterType="java.util.List">
    UPDATE t_auction_salesroom_goods
    SET status = CASE
    <foreach collection="param" item="item" index="index">
      WHEN id = #{item.id} THEN #{item.status}
    </foreach>
    END
    WHERE id IN
    <foreach collection="param" index="index" item="item" open="(" separator="," close=")">
      #{item.id}
    </foreach>
  </update>
  <select id="pageMemberAuctionSalesroomList"
    resultType="com.ruoyi.auction.domain.AuctionSalesroomGoods">
        SELECT * FROM t_auction_salesroom_goods ta
        WHERE ta.del_flag = 0
        <if test="param.auctionSalesroomId!=null and param.auctionSalesroomId != ''">
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/GoodsInfoTitle.java
@@ -48,7 +48,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/GoodsInfoTitleValue.java
@@ -60,7 +60,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/MemberGoodsCollection.java
@@ -49,7 +49,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/async/AsyncMethodService.java
@@ -3,9 +3,9 @@
import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.goods.domain.GoodsGroupPurchase;
import com.ruoyi.system.api.constants.DelayTaskEnum;
import com.ruoyi.system.api.domain.DelayTask;
import com.ruoyi.system.api.domain.GoodsGroupPurchase;
import com.ruoyi.system.api.domain.GoodsSeckill;
import com.ruoyi.system.api.feignClient.SysUserClient;
import java.time.Duration;
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/MemberPoints.java
@@ -6,6 +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.PointStatusEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
@@ -31,8 +32,8 @@
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;
    @ApiModelProperty(value = "积分")
    private Integer points;
@@ -41,7 +42,7 @@
    private Integer pointsType;
    @ApiModelProperty(value = "积分状态 1是加积分,2 是减积分")
    private Integer pointsStatus;
    private PointStatusEnum pointsStatus;
    @ApiModelProperty(value = "会员id")
    private Long memberId;
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/InvoicingApplication.java
@@ -90,7 +90,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/OrderAuction.java
@@ -53,7 +53,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/OrderMall.java
@@ -56,7 +56,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/OrderReturnRequest.java
@@ -68,7 +68,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionVideoController.java
New file
@@ -0,0 +1,46 @@
package com.ruoyi.promotion.controller.management;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.promotion.controller.management.dto.MgtPromotionVideoQuery;
import com.ruoyi.promotion.controller.management.vo.MgtPromotionVideoVO;
import com.ruoyi.promotion.service.IPromotionVideoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * <p>
 * 视频表 前端控制器
 * </p>
 *
 * @author mitao
 * @since 2024-05-16
 */
@Api(tags = {"管理后台-视频管理"})
@RestController
@RequestMapping("/mgt/promotion-video")
@RequiredArgsConstructor
public class MgtPromotionVideoController {
    private final IPromotionVideoService promotionVideoService;
    /**
     * 获取视频列表的分页数据
     *
     * @param query 视频查询对象
     * @return PageDTO<MgtPromotionVideoVO>
     */
    @ApiOperation("获取视频列表的分页数据")
    @PostMapping("/page")
    public R<PageDTO<MgtPromotionVideoVO>> getPromotionVideoPage(@Validated @RequestBody
    MgtPromotionVideoQuery query) {
        return R.ok(promotionVideoService.getPromotionVideoPage(query));
    }
}
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionVideoQuery.java
New file
@@ -0,0 +1,22 @@
package com.ruoyi.promotion.controller.management.dto;
import com.ruoyi.common.core.web.page.BasePage;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
 * @author mitao
 * @date 2024/6/3
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "视频查询对象", description = "视频查询对象")
public class MgtPromotionVideoQuery extends BasePage {
    private static final long serialVersionUID = -3563536516887180915L;
    @ApiModelProperty(value = "视频名称")
    private String videoName;
}
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/MgtPromotionVideoVO.java
New file
@@ -0,0 +1,26 @@
package com.ruoyi.promotion.controller.management.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import lombok.Data;
/**
 * @author mitao
 * @date 2024/6/3
 */
@Data
@ApiModel(value = "大屏视频视图对象", description = "大屏视频视图对象")
public class MgtPromotionVideoVO implements Serializable {
    private static final long serialVersionUID = -1717120548273715375L;
    @ApiModelProperty(value = "视频id")
    private Long id;
    @ApiModelProperty(value = "视频名称")
    private String videoName;
    @ApiModelProperty(value = "视频链接")
    private String videoUrl;
}
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/domain/Coupon.java
@@ -84,7 +84,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/domain/CouponMember.java
@@ -82,7 +82,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/domain/PromotionBanner.java
@@ -57,7 +57,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/domain/PromotionWishList.java
@@ -60,7 +60,7 @@
    private LocalDateTime createTime;
    @ApiModelProperty(value = "更新者")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/IPromotionVideoService.java
@@ -1,6 +1,9 @@
package com.ruoyi.promotion.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.promotion.controller.management.dto.MgtPromotionVideoQuery;
import com.ruoyi.promotion.controller.management.vo.MgtPromotionVideoVO;
import com.ruoyi.system.api.domain.PromotionVideo;
/**
@@ -13,4 +16,11 @@
 */
public interface IPromotionVideoService extends IService<PromotionVideo> {
    /**
     * 获取视频列表的分页数据
     *
     * @param query 视频查询对象
     * @return PageDTO<MgtPromotionVideoVO>
     */
    PageDTO<MgtPromotionVideoVO> getPromotionVideoPage(MgtPromotionVideoQuery query);
}
ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/impl/PromotionVideoServiceImpl.java
@@ -1,8 +1,13 @@
package com.ruoyi.promotion.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.promotion.controller.management.dto.MgtPromotionVideoQuery;
import com.ruoyi.promotion.controller.management.vo.MgtPromotionVideoVO;
import com.ruoyi.promotion.mapper.PromotionVideoMapper;
import com.ruoyi.promotion.service.IPromotionVideoService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.system.api.domain.PromotionVideo;
import org.springframework.stereotype.Service;
@@ -17,4 +22,21 @@
@Service
public class PromotionVideoServiceImpl extends ServiceImpl<PromotionVideoMapper, PromotionVideo> implements IPromotionVideoService {
    /**
     * 获取视频列表的分页数据
     *
     * @param query 视频查询对象
     * @return PageDTO<MgtPromotionVideoVO>
     */
    @Override
    public PageDTO<MgtPromotionVideoVO> getPromotionVideoPage(MgtPromotionVideoQuery query) {
        Page<PromotionVideo> page = this.lambdaQuery()
                .like(StringUtils.isNotBlank(query.getVideoName()), PromotionVideo::getVideoName,
                        query.getVideoName())
                .page(new Page<>(query.getPageCurr(), query.getPageSize()));
        if (StringUtils.isEmpty(page.getRecords())) {
            return PageDTO.empty(page);
        }
        return PageDTO.of(page, MgtPromotionVideoVO.class);
    }
}
ruoyi-modules/ruoyi-system/pom.xml
@@ -95,18 +95,6 @@
            <artifactId>fastjson</artifactId>
            <version>1.2.47</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-spring-boot-starter</artifactId>
            <version>4.0.0</version>
            <exclusions>
                <exclusion>
                    <artifactId>guava</artifactId>
                    <groupId>com.google.guava</groupId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
    <build>