mitao
2024-05-21 c87e5c5204b95a59d6ae48629488088d1eb296a8
提交秒杀商品模块接口
35 文件已重命名
1个文件已删除
6个文件已添加
36个文件已修改
851 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsSkuController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/MgtGoodsSeckillController.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsBrandDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsBrandQuery.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsCategoryDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsCategoryQuery.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsFlavorTypeDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsFlavorTypeQuery.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsInfoTitleDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsInfoTitleQuery.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsInfoTitleValueDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSeckillDTO.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSeckillQuery.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSeckillUpd.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSeriesDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSeriesQuery.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSkuDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSkuInfoDTO.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSkuQuery.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsBrandController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsCategoryController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsFlavorTypeController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsGroupPurchaseController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsInfoTitleController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsSeckillController.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsSeriesController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsSkuController.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsBrandVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsCategoryVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsFlavorTypeVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsInfoTitleVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsSeckillVO.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsSeriesVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsSkuVO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/GoodsBrand.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/GoodsCategory.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/GoodsFlavorType.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/GoodsGroupPurchase.java 2 ●●● 补丁 | 查看 | 原始文档 | 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/GoodsSeckill.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/GoodsSeries.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/GoodsSku.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsBrandMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsCategoryMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsFlavorTypeMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsGroupPurchaseMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsInfoTitleMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsInfoTitleValueMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsSeckillMapper.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsSeriesMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsSkuMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsBrandService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsCategoryService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsFlavorTypeService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsGroupPurchaseService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsInfoTitleService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsInfoTitleValueService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSeckillService.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSeriesService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSkuService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsBrandServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsCategoryServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsFlavorTypeServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsInfoTitleServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsInfoTitleValueServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeriesServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsSeckillMapper.xml 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java
@@ -1,5 +1,6 @@
package com.ruoyi.system.api.factory;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.api.feignClient.OrderClient;
import org.springframework.cloud.openfeign.FallbackFactory;
@@ -11,6 +12,11 @@
    @Override
    public OrderClient create(Throwable cause) {
        return null;
        return new OrderClient() {
            @Override
            public R<Integer> getSeckillMembers(Long id) {
                return R.fail("获取秒杀商品已购会员数失败:" + cause.getMessage());
            }
        };
    }
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java
@@ -1,10 +1,21 @@
package com.ruoyi.system.api.feignClient;
import com.ruoyi.common.core.constant.ServiceNameConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.api.factory.OrderFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@FeignClient(contextId = "orderClient", value = ServiceNameConstants.RUOYI_ORDER, fallbackFactory = OrderFallbackFactory.class)
public interface OrderClient {
    /**
     * 获取某个商品的已购会员数
     *
     * @param id 秒杀商品id
     * @return 已购会员数
     */
    @GetMapping("/order/seckill-members/{id}")
    R<Integer> getSeckillMembers(@PathVariable("id") Long id);
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/GoodsSkuController.java
@@ -1,15 +1,15 @@
package com.ruoyi.goods.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.goods.domain.pojo.GoodsSku;
import com.ruoyi.goods.domain.GoodsSku;
import com.ruoyi.goods.service.IGoodsSkuService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
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.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
/**
 * <p>
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/MgtGoodsSeckillController.java
File was deleted
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsBrandDTO.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/DTO/GoodsBrandDTO.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.controller.mamagement.DTO;
package com.ruoyi.goods.controller.management.DTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsBrandQuery.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/DTO/GoodsBrandQuery.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.controller.mamagement.DTO;
package com.ruoyi.goods.controller.management.DTO;
import com.ruoyi.common.core.web.page.BasePage;
import io.swagger.annotations.ApiModel;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsCategoryDTO.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/DTO/GoodsCategoryDTO.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.controller.mamagement.DTO;
package com.ruoyi.goods.controller.management.DTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsCategoryQuery.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/DTO/GoodsCategoryQuery.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.controller.mamagement.DTO;
package com.ruoyi.goods.controller.management.DTO;
import com.ruoyi.common.core.web.page.BasePage;
import io.swagger.annotations.ApiModel;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsFlavorTypeDTO.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/DTO/GoodsFlavorTypeDTO.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.controller.mamagement.DTO;
package com.ruoyi.goods.controller.management.DTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsFlavorTypeQuery.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/DTO/GoodsFlavorTypeQuery.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.controller.mamagement.DTO;
package com.ruoyi.goods.controller.management.DTO;
import com.ruoyi.common.core.web.page.BasePage;
import io.swagger.annotations.ApiModel;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsInfoTitleDTO.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/DTO/GoodsInfoTitleDTO.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.controller.mamagement.DTO;
package com.ruoyi.goods.controller.management.DTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsInfoTitleQuery.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/DTO/GoodsInfoTitleQuery.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.controller.mamagement.DTO;
package com.ruoyi.goods.controller.management.DTO;
import com.ruoyi.common.core.web.page.BasePage;
import io.swagger.annotations.ApiModel;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsInfoTitleValueDTO.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/DTO/GoodsInfoTitleValueDTO.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.controller.mamagement.DTO;
package com.ruoyi.goods.controller.management.DTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSeckillDTO.java
New file
@@ -0,0 +1,41 @@
package com.ruoyi.goods.controller.management.DTO;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import lombok.Data;
/**
 * @author mitao
 * @date 2024/5/21
 */
@Data
@ApiModel(value = "商品秒杀数据传输对象", description = "商品秒杀数据传输对象")
public class GoodsSeckillDTO implements Serializable {
    private static final long serialVersionUID = -3736491035819949518L;
    @ApiModelProperty(value = "商品信息")
    @NotEmpty(message = "商品信息不能为空")
    @Valid
    private List<GoodsSkuInfoDTO> goodsSkuList;
    @ApiModelProperty(value = "分享标题")
    private String shareTitle;
    @ApiModelProperty(value = "分享图片")
    private String sharePic;
    @ApiModelProperty(value = "秒杀开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startTime;
    @ApiModelProperty(value = "秒杀结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime endTime;
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSeckillQuery.java
New file
@@ -0,0 +1,23 @@
package com.ruoyi.goods.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/5/20
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "秒杀商品查询对象", description = "秒杀商品查询对象")
public class GoodsSeckillQuery extends BasePage {
    private static final long serialVersionUID = 1440540784488131168L;
    @ApiModelProperty(value = "秒杀商品名称")
    private String goodsSkuName;
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSeckillUpd.java
New file
@@ -0,0 +1,61 @@
package com.ruoyi.goods.controller.management.DTO;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.time.LocalDateTime;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
 * <p>
 * 商品秒杀表
 * </p>
 *
 * @author mitao
 * @since 2024-05-16
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "商品秒杀数据传输对象", description = "商品秒杀数据传输对象")
public class GoodsSeckillUpd implements Serializable {
    private static final long serialVersionUID = 5347721819131215157L;
    @ApiModelProperty(value = "商品秒杀id")
    @NotNull(message = "商品秒杀id不能为空")
    private Long id;
    @ApiModelProperty(value = "秒杀库存")
    @NotNull(message = "秒杀库存不能为空")
    private Integer seckillStock;
    @ApiModelProperty(value = "限购数量")
    private Integer limitNumber;
    @ApiModelProperty(value = "分享标题")
    @NotBlank(message = "分享标题不能为空")
    private String shareTitle;
    @ApiModelProperty(value = "分享图片")
    @NotBlank(message = "分享图片不能为空")
    private String sharePic;
    @ApiModelProperty(value = "秒杀开始时间", notes = "传 2024-05-21 18:18:49 不可传:2024-05-21T18:18:49 ")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime startTime;
    @ApiModelProperty(value = "秒杀结束时间", notes = "传 2024-05-21 18:18:49 不可传:2024-05-21T18:18:49 ")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime endTime;
    @ApiModelProperty(value = "排序")
    private Integer sortNum;
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSeriesDTO.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/DTO/GoodsSeriesDTO.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.controller.mamagement.DTO;
package com.ruoyi.goods.controller.management.DTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSeriesQuery.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/DTO/GoodsSeriesQuery.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.controller.mamagement.DTO;
package com.ruoyi.goods.controller.management.DTO;
import com.ruoyi.common.core.web.page.BasePage;
import io.swagger.annotations.ApiModel;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSkuDTO.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/DTO/GoodsSkuDTO.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.controller.mamagement.DTO;
package com.ruoyi.goods.controller.management.DTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSkuInfoDTO.java
New file
@@ -0,0 +1,38 @@
package com.ruoyi.goods.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/21
 */
@Data
@ApiModel(value = "秒杀商品数据传输对象", description = "秒杀商品数据传输对象")
public class GoodsSkuInfoDTO implements Serializable {
    private static final long serialVersionUID = -6565529043925729311L;
    @ApiModelProperty(value = "商品id")
    @NotNull(message = "商品id不能为空")
    private Long goods_sku_id;
    @ApiModelProperty(value = "秒杀价格")
    @NotNull(message = "秒杀价格不能为空")
    private BigDecimal skillPrice;
    @ApiModelProperty(value = "秒杀库存")
    @NotNull(message = "秒杀库存不能为空")
    private Integer skillStock;
    @ApiModelProperty(value = "限购数量")
    private Integer limitNumber;
    @ApiModelProperty(value = "排序")
    private Integer sortNum;
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/DTO/GoodsSkuQuery.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/DTO/GoodsSkuQuery.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.controller.mamagement.DTO;
package com.ruoyi.goods.controller.management.DTO;
import com.ruoyi.common.core.enums.ListingStatusEnum;
import com.ruoyi.common.core.web.page.BasePage;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsBrandController.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/MgtGoodsBrandController.java
@@ -1,11 +1,11 @@
package com.ruoyi.goods.controller.mamagement;
package com.ruoyi.goods.controller.management;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsBrandDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsBrandQuery;
import com.ruoyi.goods.controller.mamagement.VO.GoodsBrandVO;
import com.ruoyi.goods.controller.management.DTO.GoodsBrandDTO;
import com.ruoyi.goods.controller.management.DTO.GoodsBrandQuery;
import com.ruoyi.goods.controller.management.VO.GoodsBrandVO;
import com.ruoyi.goods.service.IGoodsBrandService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsCategoryController.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/MgtGoodsCategoryController.java
@@ -1,11 +1,11 @@
package com.ruoyi.goods.controller.mamagement;
package com.ruoyi.goods.controller.management;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsCategoryDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsCategoryQuery;
import com.ruoyi.goods.controller.mamagement.VO.GoodsCategoryVO;
import com.ruoyi.goods.controller.management.DTO.GoodsCategoryDTO;
import com.ruoyi.goods.controller.management.DTO.GoodsCategoryQuery;
import com.ruoyi.goods.controller.management.VO.GoodsCategoryVO;
import com.ruoyi.goods.service.IGoodsCategoryService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsFlavorTypeController.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/MgtGoodsFlavorTypeController.java
@@ -1,11 +1,11 @@
package com.ruoyi.goods.controller.mamagement;
package com.ruoyi.goods.controller.management;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsFlavorTypeDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsFlavorTypeQuery;
import com.ruoyi.goods.controller.mamagement.VO.GoodsFlavorTypeVO;
import com.ruoyi.goods.controller.management.DTO.GoodsFlavorTypeDTO;
import com.ruoyi.goods.controller.management.DTO.GoodsFlavorTypeQuery;
import com.ruoyi.goods.controller.management.VO.GoodsFlavorTypeVO;
import com.ruoyi.goods.service.IGoodsFlavorTypeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsGroupPurchaseController.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/MgtGoodsGroupPurchaseController.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.controller.mamagement;
package com.ruoyi.goods.controller.management;
import io.swagger.annotations.Api;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsInfoTitleController.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/MgtGoodsInfoTitleController.java
@@ -1,11 +1,11 @@
package com.ruoyi.goods.controller.mamagement;
package com.ruoyi.goods.controller.management;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsInfoTitleDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsInfoTitleQuery;
import com.ruoyi.goods.controller.mamagement.VO.GoodsInfoTitleVO;
import com.ruoyi.goods.controller.management.DTO.GoodsInfoTitleDTO;
import com.ruoyi.goods.controller.management.DTO.GoodsInfoTitleQuery;
import com.ruoyi.goods.controller.management.VO.GoodsInfoTitleVO;
import com.ruoyi.goods.service.IGoodsInfoTitleService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsSeckillController.java
New file
@@ -0,0 +1,96 @@
package com.ruoyi.goods.controller.management;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.goods.controller.management.DTO.GoodsSeckillDTO;
import com.ruoyi.goods.controller.management.DTO.GoodsSeckillQuery;
import com.ruoyi.goods.controller.management.DTO.GoodsSeckillUpd;
import com.ruoyi.goods.controller.management.VO.GoodsSeckillVO;
import com.ruoyi.goods.service.IGoodsSeckillService;
import com.ruoyi.system.api.domain.dto.ListStatusDTO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
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.RestController;
/**
 * <p>
 * 商品秒杀表 前端控制器
 * </p>
 *
 * @author mitao
 * @since 2024-05-16
 */
@Slf4j
@RestController
@RequiredArgsConstructor
@RequestMapping("/mgt/goods-seckill")
@Api(value = "管理后台商品秒杀相关接口", tags = {"管理后台接口"})
public class MgtGoodsSeckillController {
    private final IGoodsSeckillService goodsSeckillService;
    /**
     * 获取秒杀商品列表的分页数据
     *
     * @param query 秒杀商品查询对象
     * @return R<PageDTO < GoodsSeckillVO>>
     */
    @ApiOperation(value = "获取秒杀商品列表的分页数据", notes = "获取秒杀商品列表的分页数据")
    @PostMapping("/page")
    public R<PageDTO<GoodsSeckillVO>> getGoodsSeckillPage(
            @Validated @RequestBody GoodsSeckillQuery query) {
        return R.ok(goodsSeckillService.getGoodsSeckillPage(query));
    }
    /**
     * 添加秒杀商品
     *
     * @param dto 商品秒杀数据传输对象
     */
    @ApiOperation(value = "添加秒杀商品", notes = "添加秒杀商品")
    @PostMapping("/add")
    public R<Void> addGoodsSeckill(@Validated @RequestBody GoodsSeckillDTO dto) {
        goodsSeckillService.addGoodsSeckill(dto);
        return R.ok();
    }
    /**
     * 修改秒杀商品
     *
     * @param upd 商品秒杀数据传输对象
     */
    @ApiOperation(value = "修改秒杀商品", notes = "修改秒杀商品")
    @PutMapping
    public R<Void> updGoodsSeckill(@Validated @RequestBody GoodsSeckillUpd upd) {
        goodsSeckillService.updGoodsSeckill(upd);
        return R.ok();
    }
    /**
     * 上架/下架 秒杀商品
     *
     * @param dto 商品上下架状态对象
     */
    @ApiOperation(value = "上架/下架 秒杀商品", notes = "上架/下架 秒杀商品")
    @PutMapping("/upd-status")
    public R<Void> updStatus(@Validated @RequestBody ListStatusDTO dto) {
        goodsSeckillService.updStatus(dto);
        return R.ok();
    }
    @ApiOperation("查看详情")
    @GetMapping("/detail/{id}")
    public R<GoodsSeckillVO> getDetail(@PathVariable("id") Long id) {
        return R.ok(goodsSeckillService.getDetail(id));
    }
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsSeriesController.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/MgtGoodsSeriesController.java
@@ -1,11 +1,11 @@
package com.ruoyi.goods.controller.mamagement;
package com.ruoyi.goods.controller.management;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsSeriesDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsSeriesQuery;
import com.ruoyi.goods.controller.mamagement.VO.GoodsSeriesVO;
import com.ruoyi.goods.controller.management.DTO.GoodsSeriesDTO;
import com.ruoyi.goods.controller.management.DTO.GoodsSeriesQuery;
import com.ruoyi.goods.controller.management.VO.GoodsSeriesVO;
import com.ruoyi.goods.service.IGoodsSeriesService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsSkuController.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/MgtGoodsSkuController.java
@@ -1,18 +1,18 @@
package com.ruoyi.goods.controller.mamagement;
package com.ruoyi.goods.controller.management;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsInfoTitleQuery;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsSkuDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsSkuQuery;
import com.ruoyi.goods.controller.mamagement.VO.GoodsBrandVO;
import com.ruoyi.goods.controller.mamagement.VO.GoodsCategoryVO;
import com.ruoyi.goods.controller.mamagement.VO.GoodsFlavorTypeVO;
import com.ruoyi.goods.controller.mamagement.VO.GoodsInfoTitleVO;
import com.ruoyi.goods.controller.mamagement.VO.GoodsSeriesVO;
import com.ruoyi.goods.controller.mamagement.VO.GoodsSkuVO;
import com.ruoyi.goods.controller.management.DTO.GoodsInfoTitleQuery;
import com.ruoyi.goods.controller.management.DTO.GoodsSkuDTO;
import com.ruoyi.goods.controller.management.DTO.GoodsSkuQuery;
import com.ruoyi.goods.controller.management.VO.GoodsBrandVO;
import com.ruoyi.goods.controller.management.VO.GoodsCategoryVO;
import com.ruoyi.goods.controller.management.VO.GoodsFlavorTypeVO;
import com.ruoyi.goods.controller.management.VO.GoodsInfoTitleVO;
import com.ruoyi.goods.controller.management.VO.GoodsSeriesVO;
import com.ruoyi.goods.controller.management.VO.GoodsSkuVO;
import com.ruoyi.goods.service.IGoodsBrandService;
import com.ruoyi.goods.service.IGoodsCategoryService;
import com.ruoyi.goods.service.IGoodsFlavorTypeService;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsBrandVO.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/VO/GoodsBrandVO.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.controller.mamagement.VO;
package com.ruoyi.goods.controller.management.VO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsCategoryVO.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/VO/GoodsCategoryVO.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.controller.mamagement.VO;
package com.ruoyi.goods.controller.management.VO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsFlavorTypeVO.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/VO/GoodsFlavorTypeVO.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.controller.mamagement.VO;
package com.ruoyi.goods.controller.management.VO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsInfoTitleVO.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/VO/GoodsInfoTitleVO.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.controller.mamagement.VO;
package com.ruoyi.goods.controller.management.VO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsSeckillVO.java
New file
@@ -0,0 +1,68 @@
package com.ruoyi.goods.controller.management.VO;
import com.ruoyi.common.core.enums.StartStatusEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
 * <p>
 * 商品秒杀表
 * </p>
 *
 * @author mitao
 * @since 2024-05-16
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "商品秒杀视图对象", description = "商品秒杀视图对象")
public class GoodsSeckillVO implements Serializable {
    private static final long serialVersionUID = 620695205462624870L;
    @ApiModelProperty(value = "商品秒杀id")
    private Long id;
    @ApiModelProperty(value = "商品名称")
    private String goodsSkuName;
    @ApiModelProperty(value = "秒杀价格")
    private BigDecimal seckillPrice;
    @ApiModelProperty(value = "已售数量")
    private Integer soldQuantity;
    @ApiModelProperty(value = "秒杀库存")
    private Integer seckillStock;
    @ApiModelProperty(value = "限购数量")
    private Integer limitNumber;
    @ApiModelProperty(value = "排序")
    private Integer sortNum;
    @ApiModelProperty(value = "分享标题")
    private String shareTitle;
    @ApiModelProperty(value = "分享图片")
    private String sharePic;
    @ApiModelProperty(value = "秒杀开始时间")
    private LocalDateTime startTime;
    @ApiModelProperty(value = "秒杀结束时间")
    private LocalDateTime endTime;
    @ApiModelProperty(value = "开始状态 0=未开始 1= 已开始 2=已结束")
    private StartStatusEnum startStatus;
    @ApiModelProperty(value = "已购会员数")
    private Integer numberOfPurchasedMembers;
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsSeriesVO.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/VO/GoodsSeriesVO.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.controller.mamagement.VO;
package com.ruoyi.goods.controller.management.VO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/VO/GoodsSkuVO.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/mamagement/VO/GoodsSkuVO.java
@@ -1,7 +1,7 @@
package com.ruoyi.goods.controller.mamagement.VO;
package com.ruoyi.goods.controller.management.VO;
import com.ruoyi.common.core.enums.ListingStatusEnum;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsInfoTitleValueDTO;
import com.ruoyi.goods.controller.management.DTO.GoodsInfoTitleValueDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/GoodsBrand.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/GoodsBrand.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.domain.pojo;
package com.ruoyi.goods.domain;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/GoodsCategory.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/GoodsCategory.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.domain.pojo;
package com.ruoyi.goods.domain;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/GoodsFlavorType.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/GoodsFlavorType.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.domain.pojo;
package com.ruoyi.goods.domain;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/GoodsGroupPurchase.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/GoodsGroupPurchase.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.domain.pojo;
package com.ruoyi.goods.domain;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/GoodsInfoTitle.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/GoodsInfoTitle.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.domain.pojo;
package com.ruoyi.goods.domain;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/GoodsInfoTitleValue.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/GoodsInfoTitleValue.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.domain.pojo;
package com.ruoyi.goods.domain;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/GoodsSeckill.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/GoodsSeckill.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.domain.pojo;
package com.ruoyi.goods.domain;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -41,18 +41,15 @@
    @ApiModelProperty(value = "商品id")
    private Long goodsSkuId;
    @ApiModelProperty(value = "商品名称")
    private String goodsSkuName;
    @ApiModelProperty(value = "当前库存")
    private Integer currentStock;
    @ApiModelProperty(value = "秒杀价格")
    private BigDecimal seckillPrice;
    @ApiModelProperty(value = "秒杀库存")
    private Integer seckillStock;
    @ApiModelProperty(value = "已售数量")
    private Integer soldQuantity;
    @ApiModelProperty(value = "限购数量")
    private Integer limitNumber;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/GoodsSeries.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/GoodsSeries.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.domain.pojo;
package com.ruoyi.goods.domain;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/GoodsSku.java
File was renamed from ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/GoodsSku.java
@@ -1,4 +1,4 @@
package com.ruoyi.goods.domain.pojo;
package com.ruoyi.goods.domain;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsBrandMapper.java
@@ -1,7 +1,7 @@
package com.ruoyi.goods.mapper;
import com.ruoyi.goods.domain.pojo.GoodsBrand;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.goods.domain.GoodsBrand;
/**
 * <p>
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsCategoryMapper.java
@@ -1,7 +1,7 @@
package com.ruoyi.goods.mapper;
import com.ruoyi.goods.domain.pojo.GoodsCategory;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.goods.domain.GoodsCategory;
/**
 * <p>
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsFlavorTypeMapper.java
@@ -1,7 +1,7 @@
package com.ruoyi.goods.mapper;
import com.ruoyi.goods.domain.pojo.GoodsFlavorType;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.goods.domain.GoodsFlavorType;
/**
 * <p>
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsGroupPurchaseMapper.java
@@ -1,7 +1,7 @@
package com.ruoyi.goods.mapper;
import com.ruoyi.goods.domain.pojo.GoodsGroupPurchase;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.goods.domain.GoodsGroupPurchase;
/**
 * <p>
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsInfoTitleMapper.java
@@ -1,7 +1,7 @@
package com.ruoyi.goods.mapper;
import com.ruoyi.goods.domain.pojo.GoodsInfoTitle;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.goods.domain.GoodsInfoTitle;
/**
 * <p>
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsInfoTitleValueMapper.java
@@ -1,7 +1,7 @@
package com.ruoyi.goods.mapper;
import com.ruoyi.goods.domain.pojo.GoodsInfoTitleValue;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.goods.domain.GoodsInfoTitleValue;
/**
 * <p>
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsSeckillMapper.java
@@ -1,7 +1,10 @@
package com.ruoyi.goods.mapper;
import com.ruoyi.goods.domain.pojo.GoodsSeckill;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.goods.controller.management.VO.GoodsSeckillVO;
import com.ruoyi.goods.domain.GoodsSeckill;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
@@ -13,4 +16,6 @@
 */
public interface GoodsSeckillMapper extends BaseMapper<GoodsSeckill> {
    Page<GoodsSeckillVO> getGoodsSeckillPage(@Param("goodsSkuName") String goodsSkuName,
            @Param("page") Page<GoodsSeckillVO> page);
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsSeriesMapper.java
@@ -1,7 +1,7 @@
package com.ruoyi.goods.mapper;
import com.ruoyi.goods.domain.pojo.GoodsSeries;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.goods.domain.GoodsSeries;
/**
 * <p>
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsSkuMapper.java
@@ -1,7 +1,7 @@
package com.ruoyi.goods.mapper;
import com.ruoyi.goods.domain.pojo.GoodsSku;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.goods.domain.GoodsSku;
/**
 * <p>
@@ -13,4 +13,5 @@
 */
public interface GoodsSkuMapper extends BaseMapper<GoodsSku> {
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsBrandService.java
@@ -2,10 +2,10 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsBrandDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsBrandQuery;
import com.ruoyi.goods.controller.mamagement.VO.GoodsBrandVO;
import com.ruoyi.goods.domain.pojo.GoodsBrand;
import com.ruoyi.goods.controller.management.DTO.GoodsBrandDTO;
import com.ruoyi.goods.controller.management.DTO.GoodsBrandQuery;
import com.ruoyi.goods.controller.management.VO.GoodsBrandVO;
import com.ruoyi.goods.domain.GoodsBrand;
import java.util.List;
/**
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsCategoryService.java
@@ -2,10 +2,10 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsCategoryDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsCategoryQuery;
import com.ruoyi.goods.controller.mamagement.VO.GoodsCategoryVO;
import com.ruoyi.goods.domain.pojo.GoodsCategory;
import com.ruoyi.goods.controller.management.DTO.GoodsCategoryDTO;
import com.ruoyi.goods.controller.management.DTO.GoodsCategoryQuery;
import com.ruoyi.goods.controller.management.VO.GoodsCategoryVO;
import com.ruoyi.goods.domain.GoodsCategory;
import java.util.List;
/**
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsFlavorTypeService.java
@@ -2,10 +2,10 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsFlavorTypeDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsFlavorTypeQuery;
import com.ruoyi.goods.controller.mamagement.VO.GoodsFlavorTypeVO;
import com.ruoyi.goods.domain.pojo.GoodsFlavorType;
import com.ruoyi.goods.controller.management.DTO.GoodsFlavorTypeDTO;
import com.ruoyi.goods.controller.management.DTO.GoodsFlavorTypeQuery;
import com.ruoyi.goods.controller.management.VO.GoodsFlavorTypeVO;
import com.ruoyi.goods.domain.GoodsFlavorType;
import java.util.List;
/**
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsGroupPurchaseService.java
@@ -1,7 +1,7 @@
package com.ruoyi.goods.service;
import com.ruoyi.goods.domain.pojo.GoodsGroupPurchase;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.goods.domain.GoodsGroupPurchase;
/**
 * <p>
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsInfoTitleService.java
@@ -2,10 +2,10 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsInfoTitleDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsInfoTitleQuery;
import com.ruoyi.goods.controller.mamagement.VO.GoodsInfoTitleVO;
import com.ruoyi.goods.domain.pojo.GoodsInfoTitle;
import com.ruoyi.goods.controller.management.DTO.GoodsInfoTitleDTO;
import com.ruoyi.goods.controller.management.DTO.GoodsInfoTitleQuery;
import com.ruoyi.goods.controller.management.VO.GoodsInfoTitleVO;
import com.ruoyi.goods.domain.GoodsInfoTitle;
/**
 * <p>
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsInfoTitleValueService.java
@@ -1,7 +1,7 @@
package com.ruoyi.goods.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.goods.domain.pojo.GoodsInfoTitleValue;
import com.ruoyi.goods.domain.GoodsInfoTitleValue;
/**
 * <p>
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSeckillService.java
@@ -1,7 +1,13 @@
package com.ruoyi.goods.service;
import com.ruoyi.goods.domain.pojo.GoodsSeckill;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.goods.controller.management.DTO.GoodsSeckillDTO;
import com.ruoyi.goods.controller.management.DTO.GoodsSeckillQuery;
import com.ruoyi.goods.controller.management.DTO.GoodsSeckillUpd;
import com.ruoyi.goods.controller.management.VO.GoodsSeckillVO;
import com.ruoyi.goods.domain.GoodsSeckill;
import com.ruoyi.system.api.domain.dto.ListStatusDTO;
/**
 * <p>
@@ -13,4 +19,29 @@
 */
public interface IGoodsSeckillService extends IService<GoodsSeckill> {
    /**
     * 添加秒杀商品
     *
     * @param dto 商品秒杀数据传输对象
     */
    void addGoodsSeckill(GoodsSeckillDTO dto);
    /**
     * 获取秒杀商品列表的分页数据
     *
     * @param query 秒杀商品查询对象
     * @return PageDTO<GoodsSeckillVO>
     */
    PageDTO<GoodsSeckillVO> getGoodsSeckillPage(GoodsSeckillQuery query);
    /**
     * 修改秒杀商品
     *
     * @param upd 商品秒杀数据传输对象
     */
    void updGoodsSeckill(GoodsSeckillUpd upd);
    void updStatus(ListStatusDTO dto);
    GoodsSeckillVO getDetail(Long id);
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSeriesService.java
@@ -2,10 +2,10 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsSeriesDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsSeriesQuery;
import com.ruoyi.goods.controller.mamagement.VO.GoodsSeriesVO;
import com.ruoyi.goods.domain.pojo.GoodsSeries;
import com.ruoyi.goods.controller.management.DTO.GoodsSeriesDTO;
import com.ruoyi.goods.controller.management.DTO.GoodsSeriesQuery;
import com.ruoyi.goods.controller.management.VO.GoodsSeriesVO;
import com.ruoyi.goods.domain.GoodsSeries;
import java.util.List;
/**
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSkuService.java
@@ -3,10 +3,10 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsSkuDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsSkuQuery;
import com.ruoyi.goods.controller.mamagement.VO.GoodsSkuVO;
import com.ruoyi.goods.domain.pojo.GoodsSku;
import com.ruoyi.goods.controller.management.DTO.GoodsSkuDTO;
import com.ruoyi.goods.controller.management.DTO.GoodsSkuQuery;
import com.ruoyi.goods.controller.management.VO.GoodsSkuVO;
import com.ruoyi.goods.domain.GoodsSku;
import com.ruoyi.system.api.domain.dto.ListStatusDTO;
/**
@@ -42,4 +42,5 @@
     * @return 无返回值。
     */
    void updStatus(ListStatusDTO dto);
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsBrandServiceImpl.java
@@ -5,10 +5,10 @@
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.page.BeanUtils;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsBrandDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsBrandQuery;
import com.ruoyi.goods.controller.mamagement.VO.GoodsBrandVO;
import com.ruoyi.goods.domain.pojo.GoodsBrand;
import com.ruoyi.goods.controller.management.DTO.GoodsBrandDTO;
import com.ruoyi.goods.controller.management.DTO.GoodsBrandQuery;
import com.ruoyi.goods.controller.management.VO.GoodsBrandVO;
import com.ruoyi.goods.domain.GoodsBrand;
import com.ruoyi.goods.mapper.GoodsBrandMapper;
import com.ruoyi.goods.service.IGoodsBrandService;
import java.util.List;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsCategoryServiceImpl.java
@@ -5,10 +5,10 @@
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.page.BeanUtils;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsCategoryDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsCategoryQuery;
import com.ruoyi.goods.controller.mamagement.VO.GoodsCategoryVO;
import com.ruoyi.goods.domain.pojo.GoodsCategory;
import com.ruoyi.goods.controller.management.DTO.GoodsCategoryDTO;
import com.ruoyi.goods.controller.management.DTO.GoodsCategoryQuery;
import com.ruoyi.goods.controller.management.VO.GoodsCategoryVO;
import com.ruoyi.goods.domain.GoodsCategory;
import com.ruoyi.goods.mapper.GoodsCategoryMapper;
import com.ruoyi.goods.service.IGoodsCategoryService;
import java.util.List;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsFlavorTypeServiceImpl.java
@@ -5,10 +5,10 @@
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.page.BeanUtils;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsFlavorTypeDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsFlavorTypeQuery;
import com.ruoyi.goods.controller.mamagement.VO.GoodsFlavorTypeVO;
import com.ruoyi.goods.domain.pojo.GoodsFlavorType;
import com.ruoyi.goods.controller.management.DTO.GoodsFlavorTypeDTO;
import com.ruoyi.goods.controller.management.DTO.GoodsFlavorTypeQuery;
import com.ruoyi.goods.controller.management.VO.GoodsFlavorTypeVO;
import com.ruoyi.goods.domain.GoodsFlavorType;
import com.ruoyi.goods.mapper.GoodsFlavorTypeMapper;
import com.ruoyi.goods.service.IGoodsFlavorTypeService;
import java.util.List;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
@@ -1,9 +1,9 @@
package com.ruoyi.goods.service.impl;
import com.ruoyi.goods.domain.pojo.GoodsGroupPurchase;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.goods.domain.GoodsGroupPurchase;
import com.ruoyi.goods.mapper.GoodsGroupPurchaseMapper;
import com.ruoyi.goods.service.IGoodsGroupPurchaseService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsInfoTitleServiceImpl.java
@@ -5,10 +5,10 @@
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.page.BeanUtils;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsInfoTitleDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsInfoTitleQuery;
import com.ruoyi.goods.controller.mamagement.VO.GoodsInfoTitleVO;
import com.ruoyi.goods.domain.pojo.GoodsInfoTitle;
import com.ruoyi.goods.controller.management.DTO.GoodsInfoTitleDTO;
import com.ruoyi.goods.controller.management.DTO.GoodsInfoTitleQuery;
import com.ruoyi.goods.controller.management.VO.GoodsInfoTitleVO;
import com.ruoyi.goods.domain.GoodsInfoTitle;
import com.ruoyi.goods.mapper.GoodsInfoTitleMapper;
import com.ruoyi.goods.service.IGoodsInfoTitleService;
import org.springframework.stereotype.Service;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsInfoTitleValueServiceImpl.java
@@ -1,7 +1,7 @@
package com.ruoyi.goods.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.goods.domain.pojo.GoodsInfoTitleValue;
import com.ruoyi.goods.domain.GoodsInfoTitleValue;
import com.ruoyi.goods.mapper.GoodsInfoTitleValueMapper;
import com.ruoyi.goods.service.IGoodsInfoTitleValueService;
import org.springframework.stereotype.Service;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java
@@ -1,10 +1,29 @@
package com.ruoyi.goods.service.impl;
import com.ruoyi.goods.domain.pojo.GoodsSeckill;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.enums.StartStatusEnum;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.page.BeanUtils;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.goods.controller.management.DTO.GoodsSeckillDTO;
import com.ruoyi.goods.controller.management.DTO.GoodsSeckillQuery;
import com.ruoyi.goods.controller.management.DTO.GoodsSeckillUpd;
import com.ruoyi.goods.controller.management.DTO.GoodsSkuInfoDTO;
import com.ruoyi.goods.controller.management.VO.GoodsSeckillVO;
import com.ruoyi.goods.domain.GoodsSeckill;
import com.ruoyi.goods.domain.GoodsSku;
import com.ruoyi.goods.mapper.GoodsSeckillMapper;
import com.ruoyi.goods.service.IGoodsSeckillService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.goods.service.IGoodsSkuService;
import com.ruoyi.system.api.domain.dto.ListStatusDTO;
import com.ruoyi.system.api.feignClient.OrderClient;
import java.util.List;
import java.util.Optional;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
 * <p>
@@ -14,7 +33,86 @@
 * @author mitao
 * @since 2024-05-16
 */
@Slf4j
@Service
@RequiredArgsConstructor
public class GoodsSeckillServiceImpl extends ServiceImpl<GoodsSeckillMapper, GoodsSeckill> implements IGoodsSeckillService {
    private final IGoodsSkuService goodsSkuService;
    private final OrderClient orderClient;
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void addGoodsSeckill(GoodsSeckillDTO dto) {
        List<GoodsSkuInfoDTO> goodsSkuList = dto.getGoodsSkuList();
        List<GoodsSeckill> goodsSeckills = BeanUtils.copyList(dto.getGoodsSkuList(),
                GoodsSeckill.class);
        for (GoodsSeckill goodsSeckill : goodsSeckills) {
            goodsSeckill.setShareTitle(dto.getShareTitle());
            goodsSeckill.setSharePic(dto.getSharePic());
            goodsSeckill.setStartTime(dto.getStartTime());
            goodsSeckill.setEndTime(dto.getEndTime());
            goodsSeckill.setStartStatus(StartStatusEnum.NOT_STARTED);
        }
        this.saveBatch(goodsSeckills);
    }
    /**
     * 获取秒杀商品列表的分页数据
     *
     * @param query 秒杀商品查询对象
     * @return
     */
    @Override
    public PageDTO<GoodsSeckillVO> getGoodsSeckillPage(GoodsSeckillQuery query) {
        Page<GoodsSeckillVO> page = baseMapper.getGoodsSeckillPage(query.getGoodsSkuName(),
                new Page<GoodsSeckillVO>(query.getPageCurr(), query.getPageSize())
        );
        return PageDTO.of(page);
    }
    /**
     * 修改秒杀商品
     *
     * @param upd 商品秒杀数据传输对象
     */
    @Override
    public void updGoodsSeckill(GoodsSeckillUpd upd) {
        //查询秒杀商品
        GoodsSeckill goodsSeckill = this.getById(upd.getId());
        if (StringUtils.isNull(goodsSeckill)) {
            throw new RuntimeException("秒杀商品不存在");
        }
        GoodsSeckill goodsSeckillUpd = BeanUtils.copyBean(upd, GoodsSeckill.class);
        this.updateById(goodsSeckillUpd);
    }
    /**
     * 上架/下架 秒杀商品
     *
     * @param dto 商品上下架状态对象
     */
    @Override
    public void updStatus(ListStatusDTO dto) {
        this.lambdaUpdate()
                .eq(GoodsSeckill::getId, dto.getId())
                .set(GoodsSeckill::getListingStatus, dto.getListingStatus())
                .update();
    }
    @Override
    public GoodsSeckillVO getDetail(Long id) {
        GoodsSeckill goodsSeckill = this.getById(id);
        if (StringUtils.isNull(goodsSeckill)) {
            throw new RuntimeException("秒杀商品不存在");
        }
        GoodsSeckillVO vo = BeanUtils.copyBean(goodsSeckill, GoodsSeckillVO.class);
        GoodsSku goods = goodsSkuService.getById(goodsSeckill.getGoodsSkuId());
        Optional.of(goods).ifPresent(goodsSku -> {
            vo.setGoodsSkuName(goodsSku.getSkuName());
        });
        Integer num = orderClient.getSeckillMembers(goodsSeckill.getId()).getData();
        vo.setNumberOfPurchasedMembers(num);
        return vo;
    }
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeriesServiceImpl.java
@@ -5,10 +5,10 @@
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.page.BeanUtils;
import com.ruoyi.common.core.utils.page.PageDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsSeriesDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsSeriesQuery;
import com.ruoyi.goods.controller.mamagement.VO.GoodsSeriesVO;
import com.ruoyi.goods.domain.pojo.GoodsSeries;
import com.ruoyi.goods.controller.management.DTO.GoodsSeriesDTO;
import com.ruoyi.goods.controller.management.DTO.GoodsSeriesQuery;
import com.ruoyi.goods.controller.management.VO.GoodsSeriesVO;
import com.ruoyi.goods.domain.GoodsSeries;
import com.ruoyi.goods.mapper.GoodsSeriesMapper;
import com.ruoyi.goods.service.IGoodsSeriesService;
import java.util.List;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java
@@ -10,12 +10,12 @@
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.goods.controller.mamagement.DTO.GoodsInfoTitleValueDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsSkuDTO;
import com.ruoyi.goods.controller.mamagement.DTO.GoodsSkuQuery;
import com.ruoyi.goods.controller.mamagement.VO.GoodsSkuVO;
import com.ruoyi.goods.domain.pojo.GoodsInfoTitleValue;
import com.ruoyi.goods.domain.pojo.GoodsSku;
import com.ruoyi.goods.controller.management.DTO.GoodsInfoTitleValueDTO;
import com.ruoyi.goods.controller.management.DTO.GoodsSkuDTO;
import com.ruoyi.goods.controller.management.DTO.GoodsSkuQuery;
import com.ruoyi.goods.controller.management.VO.GoodsSkuVO;
import com.ruoyi.goods.domain.GoodsInfoTitleValue;
import com.ruoyi.goods.domain.GoodsSku;
import com.ruoyi.goods.mapper.GoodsSkuMapper;
import com.ruoyi.goods.service.IGoodsInfoTitleValueService;
import com.ruoyi.goods.service.IGoodsSkuService;
ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsSeckillMapper.xml
@@ -1,5 +1,28 @@
<?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.goods.mapper.GoodsSeckillMapper">
  <select id="getGoodsSeckillPage"
    resultType="com.ruoyi.goods.controller.management.VO.GoodsSeckillVO">
    select
    gs.id,
    gsku.goods_sku_name,
    gs.seckill_price,
    gs.sold_quantity,
    gs.seckill_stock,
    gs.limit_number,
    gs.sort_num,
    gs.share_title,
    gs.share_pic,
    gs.start_time,
    gs.end_time,
    gs.start_status
    from t_goods_seckill gs
    left join t_goods_sku gsku on gs.goods_sku_id = gsku.id
    <where>
      <if test="goodsSkuName != null and goodsSkuName != ''">
        and gsku.goods_sku_name like concat('%',#{goodsSkuName},'%')
      </if>
    </where>
    order by gs.create_time desc
  </select>
</mapper>
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
@@ -1,8 +1,14 @@
package com.ruoyi.order.controller;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.security.annotation.InnerAuth;
import com.ruoyi.order.service.IOrderService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
@@ -13,8 +19,23 @@
 * @author mitao
 * @since 2024-05-16
 */
@Slf4j
@RestController
@RequestMapping("/order")
@AllArgsConstructor
public class OrderController {
    private final IOrderService orderService;
    /**
     * 获取某个商品的已购会员数
     *
     * @param id 秒杀商品id
     * @return 已购会员数
     */
    @InnerAuth
    @GetMapping("/seckill-members/{id}")
    R<Integer> getSeckillMembers(@PathVariable("id") Long id) {
        return R.ok(orderService.getSeckillMembers(id));
    }
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java
@@ -1,7 +1,8 @@
package com.ruoyi.order.mapper;
import com.ruoyi.order.domain.pojo.Order;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.order.domain.pojo.Order;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
@@ -13,4 +14,5 @@
 */
public interface OrderMapper extends BaseMapper<Order> {
    Integer getSeckillMembers(@Param("id") Long id);
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java
@@ -1,7 +1,7 @@
package com.ruoyi.order.service;
import com.ruoyi.order.domain.pojo.Order;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.order.domain.pojo.Order;
/**
 * <p>
@@ -13,4 +13,5 @@
 */
public interface IOrderService extends IService<Order> {
    Integer getSeckillMembers(Long id);
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -1,9 +1,9 @@
package com.ruoyi.order.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.order.domain.pojo.Order;
import com.ruoyi.order.mapper.OrderMapper;
import com.ruoyi.order.service.IOrderService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
@@ -17,4 +17,8 @@
@Service
public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements IOrderService {
    @Override
    public Integer getSeckillMembers(Long id) {
        return baseMapper.getSeckillMembers(id);
    }
}
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -2,4 +2,12 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.order.mapper.OrderMapper">
  <select id="getSeckillMembers" resultType="java.lang.Integer">
    select ifnull(count(1), 0)
             form t_order_mall left om join t_order o
    on om.order_id = o.id
    where om.goods_sku_id = #{id}
    group by o.member_id
  </select>
</select>
</mapper>