From 9683642563a003f6bfdaaea050c7a9054070510e Mon Sep 17 00:00:00 2001 From: fengxiaohang <15076273430@163.com> Date: Tue, 17 Jun 2025 09:27:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AE=A2=E5=8D=95=E3=80=81?= =?UTF-8?q?=E5=95=86=E5=93=81=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application.yml | 1 - .../goods/controller/ProductController.java | 10 +- .../wzj/soopin/goods/domain/bo/BrandBo.java | 15 +-- .../wzj/soopin/goods/domain/bo/ProductBo.java | 52 +++++---- .../goods/domain/bo/ProductCategoryBo.java | 21 ++-- .../com/wzj/soopin/goods/domain/bo/SkuBo.java | 16 ++- .../soopin/goods/domain/dto/CategoryDTO.java | 11 ++ .../wzj/soopin/goods/domain/entity/Brand.java | 16 ++- .../soopin/goods/domain/entity/Product.java | 55 +++++---- .../goods/domain/entity/ProductCategory.java | 20 ++-- .../wzj/soopin/goods/domain/entity/Sku.java | 27 +++-- .../soopin/goods/domain/query/BrandQuery.java | 14 +-- .../domain/query/ProductCategoryQuery.java | 18 ++- .../goods/domain/query/ProductQuery.java | 47 ++++---- .../soopin/goods/domain/query/SkuQuery.java | 18 ++- .../wzj/soopin/goods/domain/vo/ProductVO.java | 22 ++++ .../soopin/goods/mapper/ProductMapper.java | 7 ++ .../soopin/goods/service/ProductService.java | 5 + .../service/impl/ProductServiceImpl.java | 9 ++ .../resources/mapper/goods/ProductMapper.xml | 43 +++++++ .../order/controller/OrderController.java | 3 +- .../wzj/soopin/order/domain/bo/OrderBo.java | 6 + .../wzj/soopin/order/domain/entity/Order.java | 9 ++ .../order/domain/vo/ManagerOrderDetailVO.java | 6 + .../wzj/soopin/order/domain/vo/OrderVO.java | 17 +++ .../order/service/impl/OrderServiceImpl.java | 107 ++++++++++++++++-- .../src/main/resources/mapper/OrderMapper.xml | 12 ++ .../org/dromara/system/domain/SysOperLog.java | 2 + .../system/mapper/SysOperLogMapper.java | 1 + .../mapper/system/SysOperLogMapper.xml | 23 +++- 30 files changed, 439 insertions(+), 174 deletions(-) diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 4ab1725ed..1cad7ba3c 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -155,7 +155,6 @@ tenant: - oms_order_operate_history - oms_wechat_payment_history - pms_brand - - pms_product - pms_product_category - pms_product_snapshot - pms_sku diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/controller/ProductController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/controller/ProductController.java index 92d2a237c..97a2654ae 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/controller/ProductController.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/controller/ProductController.java @@ -1,6 +1,7 @@ package com.wzj.soopin.goods.controller; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.wzj.soopin.goods.convert.ProductConvert; import com.wzj.soopin.goods.domain.bo.BrandBo; @@ -13,6 +14,7 @@ import com.wzj.soopin.goods.domain.query.ProductQuery; import com.wzj.soopin.goods.domain.vo.BrandVO; import com.wzj.soopin.goods.domain.vo.ProductCategoryVO; import com.wzj.soopin.goods.domain.vo.ProductVO; +import com.wzj.soopin.goods.service.ProductService; import com.wzj.soopin.goods.service.impl.ProductServiceImpl; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -41,12 +43,13 @@ public class ProductController extends BaseController { private ProductServiceImpl service; @Autowired private ProductConvert convert; + @Autowired + private ProductService productService; @Tag(name ="查询商品信息列表") @PostMapping("list") - public R> list(@RequestBody ProductBo query, Page page) { - Page productPage = service.page(page,query.toWrapper()); - return R.ok(convert.toVO(productPage)); + public R> list(@RequestBody ProductBo query, Page page) { + return R.ok(productService.getList(query,page)); } @@ -70,6 +73,7 @@ public class ProductController extends BaseController { @Log(title = "商品信息", businessType = BusinessType.INSERT) @PostMapping("/add") public R add(@RequestBody Product product) { + product.setAuthFlag(1); return R.ok(service.save(product)); } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/bo/BrandBo.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/bo/BrandBo.java index cfc274e6c..cef1d2c33 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/bo/BrandBo.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/bo/BrandBo.java @@ -3,30 +3,28 @@ package com.wzj.soopin.goods.domain.bo; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.wzj.soopin.goods.domain.entity.Brand; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @Data -@ApiModel(description="品牌管理 查询 对象") +@Schema(description = "品牌管理 查询 对象") public class BrandBo { - @ApiModelProperty("NAME 精确匹配") + @Schema(description = "NAME 模糊匹配") private String nameLike; - @ApiModelProperty("SORT 精确匹配") + @Schema(description = "SORT 精确匹配") private Integer sort; - @ApiModelProperty("SHOW_STATUS 精确匹配") + @Schema(description = "SHOW_STATUS 精确匹配") private Integer showStatus; - @ApiModelProperty("品牌logo 精确匹配") + @Schema(description = "品牌logo 精确匹配") private String logo; public Wrapper toWrapper() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - if (nameLike != null && !nameLike.isEmpty()) { queryWrapper.like(Brand::getName, nameLike); } @@ -45,4 +43,3 @@ public class BrandBo { return queryWrapper; } } - diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/bo/ProductBo.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/bo/ProductBo.java index 5226eec4f..a155cdb77 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/bo/ProductBo.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/bo/ProductBo.java @@ -4,79 +4,86 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.wzj.soopin.goods.domain.entity.Product; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.math.BigDecimal; import java.util.List; @Data -@ApiModel(description = "商品信息 查询 对象") +@Schema(description = "商品信息 查询 对象") public class ProductBo { - @ApiModelProperty("BRAND_ID 精确匹配") + @Schema(description = "BRAND_ID 精确匹配") private Long brandId; - @ApiModelProperty("CATEGORY_ID 精确匹配") + @Schema(description = "CATEGORY_ID 精确匹配") private Long categoryId; - @ApiModelProperty("商品编码 精确匹配") + @Schema(description = "商品编码 精确匹配") private String outProductId; - @ApiModelProperty("NAME 模糊匹配") + @Schema(description = "NAME 模糊匹配") private String nameLike; - @ApiModelProperty("主图 精确匹配") + @Schema(description = "主图 精确匹配") private String pic; - @ApiModelProperty("画册图片,连产品图片限制为5张,以逗号分割 精确匹配") + @Schema(description = "画册图片,连产品图片限制为5张,以逗号分割 精确匹配") private String albumPics; - @ApiModelProperty("上架状态:0->下架;1->上架 精确匹配") + @Schema(description = "上架状态:0->下架;1->上架 精确匹配") private Integer publishStatus; - @ApiModelProperty("排序 精确匹配") + @Schema(description = "排序 精确匹配") private Integer sort; - @ApiModelProperty("PRICE 精确匹配") + @Schema(description = "PRICE 精确匹配") private BigDecimal price; - @ApiModelProperty("单位 精确匹配") + @Schema(description = "单位 精确匹配") private String unit; - @ApiModelProperty(name = "商品销售属性,json格式") + @Schema(description = "商品销售属性,json格式") private String productAttr; - @ApiModelProperty("商品重量,默认为克 精确匹配") + @Schema(description = "商品重量,默认为克 精确匹配") private BigDecimal weight; - @ApiModelProperty("产品详情网页内容 精确匹配") + @Schema(description = "产品详情网页内容 精确匹配") private String detailHtml; - @ApiModelProperty("移动端网页详情 精确匹配") + @Schema(description = "移动端网页详情 精确匹配") private String detailMobileHtml; - @ApiModelProperty("品牌名称 模糊匹配") + @Schema(description = "品牌名称 模糊匹配") private String brandNameLike; - @ApiModelProperty("商品分类名称 模糊匹配") + @Schema(description = "商品分类名称 模糊匹配") private String productCategoryNameLike; - @ApiModelProperty("排序字段") + @Schema(description = "排序字段") private String orderField = "sort"; - @ApiModelProperty("排序规则") + @Schema(description = "排序规则") private String orderSort = "desc"; - @ApiModelProperty("搜索关键字") + @Schema(description = "搜索关键字") private String search; // 排查的id + @Schema(description = "排除的商品ID列表") private List excludeProductIds; + @Schema(description = "指定的商品ID列表") private List ids; + @Schema(description = "审核状态") + private String authFlag; + + @Schema(description = "店家手机号") + private String contactPhone; + public Wrapper toWrapper() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); @@ -144,5 +151,4 @@ public class ProductBo { return queryWrapper; } - } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/bo/ProductCategoryBo.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/bo/ProductCategoryBo.java index a1fa7dc0f..43b0578b9 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/bo/ProductCategoryBo.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/bo/ProductCategoryBo.java @@ -3,33 +3,32 @@ package com.wzj.soopin.goods.domain.bo; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.wzj.soopin.goods.domain.entity.ProductCategory; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.math.BigDecimal; import java.util.List; @Data -@ApiModel(description="商品分类 查询 对象") +@Schema(description = "商品分类 查询 对象") public class ProductCategoryBo { - @ApiModelProperty("上级分类的编号:0表示一级分类 精确匹配") + @Schema(description = "上级分类的编号:0表示一级分类 精确匹配") private Long parentId; - @ApiModelProperty("NAME 精确匹配") + @Schema(description = "NAME 模糊匹配") private String nameLike; - @ApiModelProperty("分类级别:0->1级;1->2级 精确匹配") + @Schema(description = "分类级别:0->1级;1->2级 精确匹配") private Integer level; - @ApiModelProperty("显示状态:0->不显示;1->显示 精确匹配") + @Schema(description = "显示状态:0->不显示;1->显示 精确匹配") private Integer showStatus; - @ApiModelProperty("SORT 精确匹配") + @Schema(description = "SORT 精确匹配") private Integer sort; - @ApiModelProperty("图标 精确匹配") + @Schema(description = "图标 精确匹配") private String icon; public Wrapper toWrapper() { @@ -59,8 +58,4 @@ public class ProductCategoryBo { return queryWrapper; } - - - - } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/bo/SkuBo.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/bo/SkuBo.java index 1a2d9388b..7d14d103f 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/bo/SkuBo.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/bo/SkuBo.java @@ -3,29 +3,28 @@ package com.wzj.soopin.goods.domain.bo; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.wzj.soopin.goods.domain.entity.Sku; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.math.BigDecimal; @Data -@ApiModel(description="sku信息 查询 对象") +@Schema(description = "SKU信息 查询 对象") public class SkuBo { - @ApiModelProperty("PRODUCT_ID 精确匹配") + @Schema(description = "PRODUCT_ID 精确匹配") private Long productId; - @ApiModelProperty("sku编码 精确匹配") + @Schema(description = "sku编码 精确匹配") private String outSkuId; - @ApiModelProperty("PRICE 精确匹配") + @Schema(description = "PRICE 精确匹配") private BigDecimal price; - @ApiModelProperty("展示图片 精确匹配") + @Schema(description = "展示图片 精确匹配") private String pic; - @ApiModelProperty("商品销售属性,json格式 精确匹配") + @Schema(description = "商品销售属性,json格式 精确匹配") private String spData; public Wrapper toWrapper() { @@ -50,5 +49,4 @@ public class SkuBo { return queryWrapper; } - } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/dto/CategoryDTO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/dto/CategoryDTO.java index 819019cd4..644adeaba 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/dto/CategoryDTO.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/dto/CategoryDTO.java @@ -1,15 +1,26 @@ package com.wzj.soopin.goods.domain.dto; import com.wzj.soopin.goods.domain.vo.H5ProductVO; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.util.List; +@Schema(description = "商品分类数据传输对象") @Data public class CategoryDTO { + @Schema(description = "分类ID") private Long id; + + @Schema(description = "排序") private Integer sort; + + @Schema(description = "分类名称") private String name; + + @Schema(description = "分类图标") private String icon; + + @Schema(description = "分类下的商品列表") private List productList; } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Brand.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Brand.java index 8d9489a9c..8fd0a4449 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Brand.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Brand.java @@ -1,8 +1,7 @@ package com.wzj.soopin.goods.domain.entity; import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.excel.annotation.Excel; @@ -12,29 +11,28 @@ import org.dromara.common.excel.annotation.Excel; * * @author zcc */ -@ApiModel(description="品牌管理对象") +@Schema(description = "品牌管理对象") @Data @TableName("pms_brand") public class Brand extends BaseAudit { private static final long serialVersionUID = 1L; - @ApiModelProperty("ID") + @Schema(description = "ID") private Long id; - @ApiModelProperty("NAME") + @Schema(description = "NAME") @Excel(name = "NAME") private String name; - @ApiModelProperty("SORT") + @Schema(description = "SORT") @Excel(name = "SORT") private Integer sort; - @ApiModelProperty("SHOW_STATUS") + @Schema(description = "SHOW_STATUS") @Excel(name = "SHOW_STATUS") private Integer showStatus; - @ApiModelProperty("品牌logo") + @Schema(description = "品牌logo") @Excel(name = "品牌logo") private String logo; - } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Product.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Product.java index ce3e3c85c..c765c2b06 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Product.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Product.java @@ -1,89 +1,104 @@ package com.wzj.soopin.goods.domain.entity; import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.excel.annotation.Excel; import java.math.BigDecimal; + /** * 商品信息对象 pms_product * * @author zcc */ -@ApiModel(description="商品信息对象") +@Schema(description = "商品信息对象") @Data @TableName("pms_product") public class Product extends BaseAudit { private static final long serialVersionUID = 1L; - @ApiModelProperty("ID") + @Schema(description = "ID") private Long id; - @ApiModelProperty("BRAND_ID") + @Schema(description = "BRAND_ID") @Excel(name = "BRAND_ID") private Long brandId; - @ApiModelProperty("CATEGORY_ID") + @Schema(description = "CATEGORY_ID") @Excel(name = "CATEGORY_ID") private Long categoryId; - @ApiModelProperty("商品编码") + @Schema(description = "商品编码") @Excel(name = "商品编码") private String outProductId; - @ApiModelProperty("NAME") + @Schema(description = "NAME") @Excel(name = "NAME") private String name; - @ApiModelProperty("主图") + @Schema(description = "主图") @Excel(name = "主图") private String pic; - @ApiModelProperty("画册图片,连产品图片限制为5张,以逗号分割") + @Schema(description = "画册图片,连产品图片限制为5张,以逗号分割") @Excel(name = "画册图片,连产品图片限制为5张,以逗号分割") private String albumPics; - @ApiModelProperty("上架状态:0->下架;1->上架") + @Schema(description = "上架状态:0->下架;1->上架") @Excel(name = "上架状态:0->下架;1->上架") private Integer publishStatus; - @ApiModelProperty("排序") + @Schema(description = "排序") @Excel(name = "排序") private Integer sort; - @ApiModelProperty("PRICE") + @Schema(description = "PRICE") @Excel(name = "PRICE") private BigDecimal price; - @ApiModelProperty("单位") + @Schema(description = "单位") @Excel(name = "单位") private String unit; - @ApiModelProperty("商品重量,默认为克") + @Schema(description = "商品重量,默认为克") @Excel(name = "商品重量,默认为克") private BigDecimal weight; - @ApiModelProperty("商品销售属性,json格式") + @Schema(description = "商品销售属性,json格式") @Excel(name = "商品销售属性,json格式") private String productAttr; - @ApiModelProperty("产品详情网页内容") + @Schema(description = "产品详情网页内容") @Excel(name = "产品详情网页内容") private String detailHtml; - @ApiModelProperty("移动端网页详情") + @Schema(description = "移动端网页详情") @Excel(name = "移动端网页详情") private String detailMobileHtml; - @ApiModelProperty("品牌名称") + @Schema(description = "品牌名称") @Excel(name = "品牌名称") private String brandName; - @ApiModelProperty("商品分类名称") + @Schema(description = "商品分类名称") @Excel(name = "商品分类名称") private String productCategoryName; + @Schema(description = "商品类型 1.团购;->2.拼团;3->秒杀") + @Excel(name = "商品类型 1.团购;->2.拼团;3->秒杀") + private Integer type; + + @Schema(description = "店铺id") + @Excel(name = "店铺id") + private String tenantId; + + @Schema(description = "审核状态 1.待审核;->2.审核通过;3->审核驳回") + @Excel(name = "审核状态 1.待审核;->2.审核通过;3->审核驳回") + private Integer authFlag; + + @Schema(description = "销量") + @Excel(name = "销量") + private String sales; } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/ProductCategory.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/ProductCategory.java index 40ac70880..6e4403a75 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/ProductCategory.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/ProductCategory.java @@ -1,8 +1,7 @@ package com.wzj.soopin.goods.domain.entity; import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.excel.annotation.Excel; @@ -12,37 +11,36 @@ import org.dromara.common.excel.annotation.Excel; * * @author zcc */ -@ApiModel(description="商品分类对象") +@Schema(description = "商品分类对象") @Data @TableName("pms_product_category") public class ProductCategory extends BaseAudit { private static final long serialVersionUID = 1L; - @ApiModelProperty("ID") + @Schema(description = "ID") private Long id; - @ApiModelProperty("上级分类的编号:0表示一级分类") + @Schema(description = "上级分类的编号:0表示一级分类") @Excel(name = "上级分类的编号:0表示一级分类") private Long parentId; - @ApiModelProperty("NAME") + @Schema(description = "NAME") @Excel(name = "NAME") private String name; - @ApiModelProperty("分类级别:0->1级;1->2级") + @Schema(description = "分类级别:0->1级;1->2级") @Excel(name = "分类级别:0->1级;1->2级") private Integer level; - @ApiModelProperty("显示状态:0->不显示;1->显示") + @Schema(description = "显示状态:0->不显示;1->显示") @Excel(name = "显示状态:0->不显示;1->显示") private Integer showStatus; - @ApiModelProperty("SORT") + @Schema(description = "SORT") @Excel(name = "SORT") private Integer sort; - @ApiModelProperty("图标") + @Schema(description = "图标") @Excel(name = "图标") private String icon; - } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Sku.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Sku.java index e4232989c..e3138b78a 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Sku.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/entity/Sku.java @@ -1,49 +1,48 @@ package com.wzj.soopin.goods.domain.entity; import com.baomidou.mybatisplus.annotation.TableName; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.dromara.common.core.domain.model.BaseAudit; import org.dromara.common.excel.annotation.Excel; import java.math.BigDecimal; + /** * sku信息对象 pms_sku * * @author zcc */ -@ApiModel(description="sku信息对象") +@Schema(description = "SKU信息对象") @Data @TableName("pms_sku") public class Sku extends BaseAudit { private static final long serialVersionUID = 1L; - @ApiModelProperty("ID") + @Schema(description = "ID") private Long id; - @ApiModelProperty("PRODUCT_ID") + @Schema(description = "PRODUCT_ID") @Excel(name = "PRODUCT_ID") private Long productId; - @ApiModelProperty("sku编码") - @Excel(name = "sku编码") + @Schema(description = "SKU编码") + @Excel(name = "SKU编码") private String outSkuId; - @ApiModelProperty("PRICE") - @Excel(name = "PRICE") + @Schema(description = "价格") + @Excel(name = "价格") private BigDecimal price; - @ApiModelProperty("展示图片") + @Schema(description = "展示图片") @Excel(name = "展示图片") private String pic; - @ApiModelProperty("商品销售属性,json格式") - @Excel(name = "商品销售属性,json格式") + @Schema(description = "商品销售属性,JSON格式") + @Excel(name = "商品销售属性,JSON格式") private String spData; - @ApiModelProperty("库存数") + @Schema(description = "库存数") @Excel(name = "库存数") private Integer stock; - } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/query/BrandQuery.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/query/BrandQuery.java index d1ec303ac..539f2d592 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/query/BrandQuery.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/query/BrandQuery.java @@ -1,7 +1,6 @@ package com.wzj.soopin.goods.domain.query; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; /** @@ -9,19 +8,18 @@ import lombok.Data; * * @author zcc */ -@ApiModel(description="品牌管理 查询 对象") +@Schema(description = "品牌管理查询对象") @Data public class BrandQuery { - @ApiModelProperty("NAME 精确匹配") + @Schema(description = "NAME 精确匹配") private String nameLike; - @ApiModelProperty("SORT 精确匹配") + @Schema(description = "SORT 精确匹配") private Integer sort; - @ApiModelProperty("SHOW_STATUS 精确匹配") + @Schema(description = "SHOW_STATUS 精确匹配") private Integer showStatus; - @ApiModelProperty("品牌logo 精确匹配") + @Schema(description = "品牌logo 精确匹配") private String logo; - } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/query/ProductCategoryQuery.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/query/ProductCategoryQuery.java index 0f3577ba0..d3dae98c5 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/query/ProductCategoryQuery.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/query/ProductCategoryQuery.java @@ -1,7 +1,6 @@ package com.wzj.soopin.goods.domain.query; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; /** @@ -9,25 +8,24 @@ import lombok.Data; * * @author zcc */ -@ApiModel(description="商品分类 查询 对象") +@Schema(description = "商品分类查询对象") @Data public class ProductCategoryQuery { - @ApiModelProperty("上级分类的编号:0表示一级分类 精确匹配") + @Schema(description = "上级分类的编号:0表示一级分类 精确匹配") private Long parentId; - @ApiModelProperty("NAME 精确匹配") + @Schema(description = "NAME 模糊匹配") private String nameLike; - @ApiModelProperty("分类级别:0->1级;1->2级 精确匹配") + @Schema(description = "分类级别:0->1级;1->2级 精确匹配") private Integer level; - @ApiModelProperty("显示状态:0->不显示;1->显示 精确匹配") + @Schema(description = "显示状态:0->不显示;1->显示 精确匹配") private Integer showStatus; - @ApiModelProperty("SORT 精确匹配") + @Schema(description = "SORT 精确匹配") private Integer sort; - @ApiModelProperty("图标 精确匹配") + @Schema(description = "图标 精确匹配") private String icon; - } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/query/ProductQuery.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/query/ProductQuery.java index 0d03b97e9..bf67ddb17 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/query/ProductQuery.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/query/ProductQuery.java @@ -1,7 +1,6 @@ package com.wzj.soopin.goods.domain.query; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.math.BigDecimal; @@ -12,69 +11,69 @@ import java.util.List; * * @author zcc */ -@ApiModel(description="商品信息 查询 对象") +@Schema(description = "商品信息查询对象") @Data public class ProductQuery { - @ApiModelProperty("BRAND_ID 精确匹配") + @Schema(description = "BRAND_ID 精确匹配") private Long brandId; - @ApiModelProperty("CATEGORY_ID 精确匹配") + @Schema(description = "CATEGORY_ID 精确匹配") private Long categoryId; - @ApiModelProperty("商品编码 精确匹配") + @Schema(description = "商品编码 精确匹配") private String outProductId; - @ApiModelProperty("NAME 精确匹配") + @Schema(description = "NAME 模糊匹配") private String nameLike; - @ApiModelProperty("主图 精确匹配") + @Schema(description = "主图 精确匹配") private String pic; - @ApiModelProperty("画册图片,连产品图片限制为5张,以逗号分割 精确匹配") + @Schema(description = "画册图片,连产品图片限制为5张,以逗号分割 精确匹配") private String albumPics; - @ApiModelProperty("上架状态:0->下架;1->上架 精确匹配") + @Schema(description = "上架状态:0->下架;1->上架 精确匹配") private Integer publishStatus; - @ApiModelProperty("排序 精确匹配") + @Schema(description = "排序 精确匹配") private Integer sort; - @ApiModelProperty("PRICE 精确匹配") + @Schema(description = "PRICE 精确匹配") private BigDecimal price; - @ApiModelProperty("单位 精确匹配") + @Schema(description = "单位 精确匹配") private String unit; - @ApiModelProperty(name = "商品销售属性,json格式") + @Schema(description = "商品销售属性,JSON格式") private String productAttr; - @ApiModelProperty("商品重量,默认为克 精确匹配") + @Schema(description = "商品重量,默认为克 精确匹配") private BigDecimal weight; - @ApiModelProperty("产品详情网页内容 精确匹配") + @Schema(description = "产品详情网页内容 精确匹配") private String detailHtml; - @ApiModelProperty("移动端网页详情 精确匹配") + @Schema(description = "移动端网页详情 精确匹配") private String detailMobileHtml; - @ApiModelProperty("品牌名称 精确匹配") + @Schema(description = "品牌名称 模糊匹配") private String brandNameLike; - @ApiModelProperty("商品分类名称 精确匹配") + @Schema(description = "商品分类名称 模糊匹配") private String productCategoryNameLike; - @ApiModelProperty("排序字段") + @Schema(description = "排序字段,默认值:sort") private String orderField = "sort"; - @ApiModelProperty("排序规则") + @Schema(description = "排序规则,默认值:desc") private String orderSort = "desc"; - @ApiModelProperty("搜索关键字") + @Schema(description = "搜索关键字,支持多字段模糊匹配") private String search; - //排查的id + @Schema(description = "排除的商品ID列表") private List excludeProductIds; + @Schema(description = "包含的商品ID列表") private List ids; - } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/query/SkuQuery.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/query/SkuQuery.java index 41c6fca05..6c10d1e74 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/query/SkuQuery.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/query/SkuQuery.java @@ -1,32 +1,30 @@ package com.wzj.soopin.goods.domain.query; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.math.BigDecimal; /** - * sku信息 查询 对象 + * SKU信息 查询 对象 * * @author zcc */ -@ApiModel(description="sku信息 查询 对象") +@Schema(description = "SKU信息查询对象") @Data public class SkuQuery { - @ApiModelProperty("PRODUCT_ID 精确匹配") + @Schema(description = "PRODUCT_ID 精确匹配") private Long productId; - @ApiModelProperty("sku编码 精确匹配") + @Schema(description = "SKU编码 精确匹配") private String outSkuId; - @ApiModelProperty("PRICE 精确匹配") + @Schema(description = "价格 精确匹配") private BigDecimal price; - @ApiModelProperty("展示图片 精确匹配") + @Schema(description = "展示图片 精确匹配") private String pic; - @ApiModelProperty("商品销售属性,json格式 精确匹配") + @Schema(description = "商品销售属性,JSON格式 精确匹配") private String spData; - } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/vo/ProductVO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/vo/ProductVO.java index 853df7c37..b7e94b1d2 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/vo/ProductVO.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/domain/vo/ProductVO.java @@ -91,6 +91,9 @@ public class ProductVO extends BaseAudit { @Excel(name = "品牌名称") private String brandName; + @Schema(description = "品牌logo") + private String brandLogo; + /** 商品分类名称 */ @Schema(description = "商品分类名称") @Excel(name = "商品分类名称") @@ -102,4 +105,23 @@ public class ProductVO extends BaseAudit { @Schema(description = "SKU列表") private List skuList; + + @Schema(description = "店铺名称") + private String contactUserName; + + @Schema(description = "店铺手机号") + private String contactPhone; + + @Schema(description = "店铺id") + private String tenantId; + + @Schema(description = "审核状态") + private String authFlag; + + @Schema(description = "销量") + private String sales; + + @Schema(description = "配送方式 1->到店核销;2->自提;3->配送;") + private Integer distribution; + } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductMapper.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductMapper.java index f16dd0aa1..94f586f84 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductMapper.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/mapper/ProductMapper.java @@ -1,7 +1,12 @@ package com.wzj.soopin.goods.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.wzj.soopin.goods.domain.bo.ProductBo; import com.wzj.soopin.goods.domain.entity.Product; +import com.wzj.soopin.goods.domain.vo.ProductVO; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -18,4 +23,6 @@ public interface ProductMapper extends BaseMapper { * @return 商品信息集合 */ List selectByEntity(Product product); + + IPage getlist(@Param("page") Page page, @Param("query") ProductBo query); } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/ProductService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/ProductService.java index 841d2d3f3..ddeaca72e 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/ProductService.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/ProductService.java @@ -1,7 +1,12 @@ package com.wzj.soopin.goods.service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.wzj.soopin.goods.domain.bo.ProductBo; import com.wzj.soopin.goods.domain.entity.Product; +import com.wzj.soopin.goods.domain.vo.ProductVO; public interface ProductService extends IService { + IPage getList(ProductBo query, Page page); } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/ProductServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/ProductServiceImpl.java index 2809075b8..0e2d15139 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/ProductServiceImpl.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/wzj/soopin/goods/service/impl/ProductServiceImpl.java @@ -4,8 +4,11 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.wzj.soopin.goods.convert.ProductConvert; +import com.wzj.soopin.goods.domain.bo.ProductBo; import com.wzj.soopin.goods.domain.entity.Product; import com.wzj.soopin.goods.domain.entity.Sku; import com.wzj.soopin.goods.domain.query.ProductQuery; @@ -209,4 +212,10 @@ public class ProductServiceImpl extends ServiceImpl impl } return res; } + + @Override + public IPage getList(ProductBo query, Page page) { + IPage resultPage = productMapper.getlist(page,query); + return resultPage; + } } diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/ProductMapper.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/ProductMapper.xml index 01af364d8..876fab248 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/ProductMapper.xml +++ b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/ProductMapper.xml @@ -55,4 +55,47 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and product_category_name like concat('%', #{productCategoryName}, '%') + + + diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderController.java index b4f0eb036..1352d6f05 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderController.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/controller/OrderController.java @@ -99,7 +99,8 @@ public class OrderController extends BaseController { @Log(title = "订单表", businessType = BusinessType.INSERT) @PostMapping("/add") public R add(@RequestBody Order order) { - return R.ok(service.save(order)); + order.setWithdrawStatus(1); + return service.insert(order); } @Tag(name ="修改订单表") diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/bo/OrderBo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/bo/OrderBo.java index 690701f0a..a79b80152 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/bo/OrderBo.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/bo/OrderBo.java @@ -119,6 +119,12 @@ public class OrderBo { @Schema(description ="创建订单结束时间 精确匹配") private LocalDateTime endTime; + @Schema(description = "订单类型:1->团购;2->拼团;3->秒杀;") + private Integer type; + + @Schema(description = "提现状态:1->等待转账;2->转帐中;3->转账成功;4->转账失败") + private Integer withdrawStatus; + public Wrapper toWrapper() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/Order.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/Order.java index a6e1e1df3..2136638c3 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/Order.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/entity/Order.java @@ -171,4 +171,13 @@ public class Order extends BaseAudit { @Schema(description = "核销码url") private String codeUrl; + + @Schema(description = "订单类型:1->团购;2->拼团;3->秒杀;") + private Integer type; + + @Schema(description = "提现状态:1->等待转账;2->转帐中;3->转账成功;4->转账失败") + private Integer withdrawStatus; + + @Schema(description = "配送方式 1->到店核销;2->自提;3->配送;") + private Integer distribution; } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/ManagerOrderDetailVO.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/ManagerOrderDetailVO.java index bf93ccfdb..db4a160e7 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/ManagerOrderDetailVO.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/ManagerOrderDetailVO.java @@ -60,4 +60,10 @@ public class ManagerOrderDetailVO { @Schema(description = "优惠卷金额") private BigDecimal couponAmount; + + @Schema(description = "店铺名称") + private String contactUserName; + + @Schema(description = "店铺手机号") + private String contactPhone; } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/OrderVO.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/OrderVO.java index cafa1819e..ddb713e2b 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/OrderVO.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/domain/vo/OrderVO.java @@ -13,6 +13,8 @@ import org.dromara.common.excel.annotation.Excel; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; +import java.util.Map; + /** * 订单表 数据视图对象 * @@ -188,4 +190,19 @@ public class OrderVO extends BaseAudit { @Excel(name = "商品价格") private BigDecimal productPrice; + @Schema(description = "订单类型:1->团购;2->拼团;3->秒杀;") + @Excel(name = "订单类型:1->团购;2->拼团;3->秒杀;") + private Integer type; + + @Schema(description = "提现状态:1->等待转账;2->转帐中;3->转账成功;4->转账失败") + @Excel(name = "提现状态:1->等待转账;2->转帐中;3->转账成功;4->转账失败") + private Integer withdrawStatus; + + @Schema(name = "productInfo", description = "订单商品数据") + private List> productList; + + @Schema(description = "配送方式 1->到店核销;2->自提;3->配送;") + private Integer distribution; + + } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/OrderServiceImpl.java index 20f3fd32f..9bce37fd4 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/OrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/wzj/soopin/order/service/impl/OrderServiceImpl.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.wzj.soopin.goods.convert.SkuConvert; +import com.wzj.soopin.goods.domain.entity.Sku; import com.wzj.soopin.goods.mapper.ProductMapper; import com.wzj.soopin.goods.mapper.SkuMapper; import com.wzj.soopin.member.domain.po.Member; @@ -29,13 +30,16 @@ import com.wzj.soopin.order.mapper.OrderItemMapper; import com.wzj.soopin.order.mapper.OrderMapper; import com.wzj.soopin.order.mapper.OrderOperateHistoryMapper; import com.wzj.soopin.order.service.OrderService; +import com.wzj.soopin.order.service.VerificationCodeService; import com.wzj.soopin.order.utils.PageUtil; import com.wzj.soopin.order.utils.SecurityUtils; import org.dromara.common.core.domain.R; import org.dromara.common.core.domain.event.Constants; import org.dromara.common.core.utils.PhoneUtils; import org.dromara.system.domain.SysOperLog; +import org.dromara.system.domain.SysTenant; import org.dromara.system.mapper.SysOperLogMapper; +import org.dromara.system.mapper.SysTenantMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; @@ -88,6 +92,11 @@ public class OrderServiceImpl extends ServiceImpl implements @Autowired private SysOperLogMapper sysOperLogMapper; + @Autowired + private VerificationCodeService verificationCodeService; + + @Autowired + private SysTenantMapper sysTenantMapper; /** * 查询订单表 * @@ -95,10 +104,13 @@ public class OrderServiceImpl extends ServiceImpl implements * @return 订单表 */ public ManagerOrderDetailVO selectById(Long id) { + // 1. 原有订单查询逻辑保持不变 Order order = orderMapper.selectById(id); if (order == null){ throw new RuntimeException("查不到订单信息"); } + + // 2. 原有VO封装逻辑保持不变 ManagerOrderDetailVO managerOrderDetailVO = new ManagerOrderDetailVO(); //封装订单信息 managerOrderDetailVO.setOrderId(id); @@ -115,21 +127,37 @@ public class OrderServiceImpl extends ServiceImpl implements managerOrderDetailVO.setTotalAmount(order.getTotalAmount()); managerOrderDetailVO.setPayAmount(order.getPayAmount()); managerOrderDetailVO.setReceiveTime(order.getReceiveTime()); + //封装订单地址信息 ManagerOrderAddressVo managerOrderAddressVo = new ManagerOrderAddressVo(); managerOrderAddressVo.setUserPhone(order.getReceiverPhone()); managerOrderAddressVo.setAddress(order.getReceiverDetailAddress()); managerOrderAddressVo.setArea( - order.getReceiverProvince() + + order.getReceiverProvince() + order.getReceiverCity() + order.getReceiverDistrict()); managerOrderAddressVo.setName(order.getReceiverName()); managerOrderDetailVO.setAddressInfo(managerOrderAddressVo); - //查询会员信息 + + // 3. 原有会员查询逻辑保持不变 Member member = memberMapper.selectById(order.getMemberId()); managerOrderDetailVO.setUserName(member.getNickname()); managerOrderDetailVO.setUserPhone(member.getPhoneHidden()); - //查询购买商品信息 + + // 4. 新增租户信息查询(完全独立新增,不影响原有逻辑) + if (order.getTenantId() != null) { + SysTenant tenant = sysTenantMapper.selectOne( + new QueryWrapper() + .eq("tenant_id", order.getTenantId()) + .select("contact_user_name", "contact_phone") + ); + if (tenant != null) { + managerOrderDetailVO.setContactUserName(tenant.getContactUserName()); + managerOrderDetailVO.setContactPhone(tenant.getContactPhone()); + } + } + + // 5. 原有商品查询逻辑保持不变 QueryWrapper qw = new QueryWrapper<>(); qw.eq("order_id", order.getId()); List orderItemList = orderItemMapper.selectList(qw); @@ -145,6 +173,7 @@ public class OrderServiceImpl extends ServiceImpl implements productList.add(productVO); }); managerOrderDetailVO.setProductInfo(productList); + return managerOrderDetailVO; } @@ -202,10 +231,12 @@ public class OrderServiceImpl extends ServiceImpl implements */ public R insert(Order order) { order.setCreateTime(LocalDateTime.now()); + order.setWithdrawStatus(1); int insert = orderMapper.insert(order); if (insert>1){ return R.fail("订单创建失败"); }else { + verificationCodeService.generateVerificationCode(order.getId()); return R.ok(order); } } @@ -404,9 +435,17 @@ public class OrderServiceImpl extends ServiceImpl implements // List historyList = orderOperateHistoryMapper.selectList(wrapper); // return historyList; - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(SysOperLog::getTitle, "订单表"); - wrapper.eq(SysOperLog::getOperatorType, 1); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SysOperLog::getTitle, "订单表") + .eq(SysOperLog::getOperatorType, 1) + .select( + SysOperLog::getTitle, + SysOperLog::getBusinessType, + SysOperLog::getOperName, + SysOperLog::getDeptName, + SysOperLog::getStatus, + SysOperLog::getOperTime + ); return sysOperLogMapper.selectList(wrapper); } @@ -445,13 +484,67 @@ public class OrderServiceImpl extends ServiceImpl implements @Override public IPage getlist(Page page, OrderBo query) { + IPage resultPage = orderMapper.getlist(page,query); + List orderVOList = resultPage.getRecords(); + if (orderVOList.isEmpty()) { + return resultPage; + } + + // 获取所有订单id + List orderIds = orderVOList.stream() + .map(OrderVO::getId) + .collect(Collectors.toList()); + + // 根据订单id查询订单详情(oms_order_item表) + QueryWrapper orderItemQueryWrapper = new QueryWrapper<>(); + orderItemQueryWrapper.in("order_id", orderIds); + List orderItemList = orderItemMapper.selectList(orderItemQueryWrapper); + + // 按照订单id分组订单详情 + Map> orderItemMapByOrderId = orderItemList.stream() + .collect(Collectors.groupingBy(OrderItem::getOrderId)); + + // 获取所有sku_id + List skuIds = orderItemList.stream() + .map(OrderItem::getSkuId) + .collect(Collectors.toList()); + + // 根据sku_id查询pms_sku表数据 + QueryWrapper skuQueryWrapper = new QueryWrapper<>(); + skuQueryWrapper.in("id", skuIds); + List skuList = skuMapper.selectList(skuQueryWrapper); + + // 按照sku_id分组pms_sku数据 + Map skuMapById = skuList.stream() + .collect(Collectors.toMap(Sku::getId, sku -> sku)); + + for (OrderVO orderVO : orderVOList) { + List> productList = new ArrayList<>(); + List orderItems = orderItemMapByOrderId.get(orderVO.getId()); + if (orderItems != null) { + for (OrderItem orderItem : orderItems) { + Sku sku = skuMapById.get(orderItem.getSkuId()); + if (sku != null) { + Map productMap = new HashMap<>(); + productMap.put("price", sku.getPrice()); + productMap.put("pic", sku.getPic()); + productMap.put("stock", sku.getStock()); + productMap.put("spData", sku.getSpData()); + productList.add(productMap); + } + } + } + orderVO.setProductList(productList); + } + return resultPage; } + } // @Override // public IPage getlist(PageVO pageVO, OrderBo query) { // IPage resultPage = orderMapper.getlist(PageUtil.initPage(pageVO),query); // return resultPage; // } -} + diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/OrderMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/OrderMapper.xml index 66f6d544a..9ecdc1fa3 100644 --- a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/OrderMapper.xml +++ b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/OrderMapper.xml @@ -295,9 +295,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND o.member_id LIKE CONCAT('%', #{query.memberId}, '%') + + AND o.receiver_phone LIKE CONCAT('%', #{receiverPhone}, '%') + AND o.status LIKE CONCAT('%', #{query.status}, '%') + + AND o.type LIKE CONCAT('%', #{query.type}, '%') + + + AND o.withdraw_status LIKE CONCAT('%', #{withdrawStatus}, '%') + + + AND o.aftersale_status LIKE CONCAT('%', #{aftersaleStatus}, '%') + AND o.create_time >= #{query.startTime, jdbcType=TIMESTAMP} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOperLog.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOperLog.java index 41a8c59fa..2b5a71fd0 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOperLog.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/SysOperLog.java @@ -2,6 +2,7 @@ package org.dromara.system.domain; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonInclude; import lombok.Data; import java.io.Serial; @@ -16,6 +17,7 @@ import java.util.Date; @Data @TableName("sys_oper_log") +@JsonInclude(JsonInclude.Include.NON_NULL) public class SysOperLog implements Serializable { @Serial diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOperLogMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOperLogMapper.java index 5d2040417..0ffc77bd5 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOperLogMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysOperLogMapper.java @@ -11,4 +11,5 @@ import org.dromara.system.domain.vo.SysOperLogVo; */ public interface SysOperLogMapper extends BaseMapperPlus { + } diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml index 5ef14eee9..2a22a0210 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml @@ -1,7 +1,26 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +