From 5e3829ee63f5bf4909d7c4b57ea048b2fd87a99b Mon Sep 17 00:00:00 2001
From: zepengdev <lzpsmith@outlook.com>
Date: Fri, 29 Aug 2025 09:58:20 +0800
Subject: [PATCH] feat: 店铺与商品审核查询增加筛选条件
---
oying-system/src/main/java/com/oying/modules/pc/store/view/StoreAuditView.java | 54 ++++++++++
oying-system/src/main/resources/mapper/pc/store/StoreAuditMapper.xml | 44 +++++++-
oying-system/src/main/java/com/oying/modules/pc/product/service/impl/ProductAuditServiceImpl.java | 5
oying-system/src/main/java/com/oying/modules/pc/product/service/ProductAuditService.java | 5
oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreAuditServiceImpl.java | 17 +-
oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductAuditController.java | 2
oying-system/src/main/java/com/oying/modules/pc/store/mapper/StoreAuditMapper.java | 6
oying-system/src/main/java/com/oying/modules/pc/product/domain/dto/ProductAuditQueryCriteria.java | 11 ++
oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreAuditQueryCriteria.java | 8 +
oying-system/src/main/java/com/oying/modules/pc/store/service/StoreAuditService.java | 5
oying-system/src/main/java/com/oying/modules/pc/product/mapper/ProductAuditMapper.java | 5
oying-system/src/main/resources/mapper/pc/product/ProductAuditMapper.xml | 51 ++++++++-
oying-system/src/main/java/com/oying/modules/pc/product/view/ProductAuditView.java | 50 ++++++++++
13 files changed, 226 insertions(+), 37 deletions(-)
diff --git a/oying-system/src/main/java/com/oying/modules/pc/product/domain/dto/ProductAuditQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/pc/product/domain/dto/ProductAuditQueryCriteria.java
index d91c32d..32f5e4b 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/product/domain/dto/ProductAuditQueryCriteria.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/product/domain/dto/ProductAuditQueryCriteria.java
@@ -13,10 +13,19 @@
@Data
public class ProductAuditQueryCriteria {
- @NotNull
+ private String blurry;
+
@ApiModelProperty(value = "商品ID")
private Long productId;
+ @ApiModelProperty(value = "商品名称")
+ private String productName;
+
+ @ApiModelProperty(value = "商品标题")
+ private String productTitle;
+
+ private String createBy;
+
@NotBlank
@ApiModelProperty(value = "类型")
private String type;
diff --git a/oying-system/src/main/java/com/oying/modules/pc/product/mapper/ProductAuditMapper.java b/oying-system/src/main/java/com/oying/modules/pc/product/mapper/ProductAuditMapper.java
index dad7e69..33c69e1 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/product/mapper/ProductAuditMapper.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/product/mapper/ProductAuditMapper.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.oying.modules.pc.product.domain.ProductAudit;
import com.oying.modules.pc.product.domain.dto.ProductAuditQueryCriteria;
+import com.oying.modules.pc.product.view.ProductAuditView;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -17,7 +18,7 @@
@Mapper
public interface ProductAuditMapper extends BaseMapper<ProductAudit> {
- IPage<ProductAudit> findAll(@Param("criteria") ProductAuditQueryCriteria criteria, Page<Object> page);
+ IPage<ProductAuditView> findAll(@Param("criteria") ProductAuditQueryCriteria criteria, Page<Object> page);
- List<ProductAudit> findAll(@Param("criteria") ProductAuditQueryCriteria criteria);
+ List<ProductAuditView> findAll(@Param("criteria") ProductAuditQueryCriteria criteria);
}
diff --git a/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductAuditController.java b/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductAuditController.java
index 8530d0c..04d0bc8 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductAuditController.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/product/rest/ProductAuditController.java
@@ -54,7 +54,7 @@
return ResponseEntity.noContent().build();
}
- @PutMapping(value = "/verdict")
+ @PostMapping(value = "/verdict")
@ApiOperation("处理审核")
public ResponseEntity<?> submitAuditVerdict(@RequestBody ProductAudit resources) {
auditService.processVerdict(resources);
diff --git a/oying-system/src/main/java/com/oying/modules/pc/product/service/ProductAuditService.java b/oying-system/src/main/java/com/oying/modules/pc/product/service/ProductAuditService.java
index 909c8f3..7929629 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/product/service/ProductAuditService.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/product/service/ProductAuditService.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.oying.modules.pc.product.domain.ProductAudit;
import com.oying.modules.pc.product.domain.dto.ProductAuditQueryCriteria;
+import com.oying.modules.pc.product.view.ProductAuditView;
import com.oying.utils.PageResult;
import javax.servlet.http.HttpServletResponse;
@@ -24,7 +25,7 @@
* @param page 分页参数
* @return PageResult
*/
- PageResult<ProductAudit> queryAll(ProductAuditQueryCriteria criteria, Page<Object> page);
+ PageResult<ProductAuditView> queryAll(ProductAuditQueryCriteria criteria, Page<Object> page);
/**
* 查询所有数据不分页
@@ -32,7 +33,7 @@
* @param criteria 条件参数
* @return List<StoreRevisionDto>
*/
- List<ProductAudit> queryAll(ProductAuditQueryCriteria criteria);
+ List<ProductAuditView> queryAll(ProductAuditQueryCriteria criteria);
/**
* 商品ID查询修订数据,
diff --git a/oying-system/src/main/java/com/oying/modules/pc/product/service/impl/ProductAuditServiceImpl.java b/oying-system/src/main/java/com/oying/modules/pc/product/service/impl/ProductAuditServiceImpl.java
index e21362b..d55c18b 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/product/service/impl/ProductAuditServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/product/service/impl/ProductAuditServiceImpl.java
@@ -10,6 +10,7 @@
import com.oying.modules.pc.product.events.ProductAuditVerdictEvent;
import com.oying.modules.pc.product.mapper.ProductAuditMapper;
import com.oying.modules.pc.product.service.ProductAuditService;
+import com.oying.modules.pc.product.view.ProductAuditView;
import com.oying.modules.pc.store.domain.StoreAudit;
import com.oying.utils.FileUtil;
import com.oying.utils.PageResult;
@@ -40,12 +41,12 @@
private final ProductAuditMapper productAuditMapper;
@Override
- public PageResult<ProductAudit> queryAll(ProductAuditQueryCriteria criteria, Page<Object> page) {
+ public PageResult<ProductAuditView> queryAll(ProductAuditQueryCriteria criteria, Page<Object> page) {
return PageUtil.toPage(productAuditMapper.findAll(criteria, page));
}
@Override
- public List<ProductAudit> queryAll(ProductAuditQueryCriteria criteria) {
+ public List<ProductAuditView> queryAll(ProductAuditQueryCriteria criteria) {
return productAuditMapper.findAll(criteria);
}
diff --git a/oying-system/src/main/java/com/oying/modules/pc/product/view/ProductAuditView.java b/oying-system/src/main/java/com/oying/modules/pc/product/view/ProductAuditView.java
new file mode 100644
index 0000000..2521747
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/pc/product/view/ProductAuditView.java
@@ -0,0 +1,50 @@
+package com.oying.modules.pc.product.view;
+
+import com.oying.base.BaseEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+* @description /
+* @author lzp
+* @date 2025-07-01
+**/
+@Getter
+@Setter
+public class ProductAuditView extends BaseEntity implements Serializable {
+
+ @ApiModelProperty(value = "商品ID")
+ private Long productId;
+
+ @ApiModelProperty(value = "商品名称")
+ private String productName;
+
+ @ApiModelProperty(value = "商品标题")
+ private String productTitle;
+
+ @ApiModelProperty(value = "审核ID")
+ private Long auditId;
+
+ @ApiModelProperty(value = "类型")
+ private String type;
+
+ @ApiModelProperty(value = "审核状态")
+ private Integer status;
+
+ @ApiModelProperty(value = "审核原因")
+ private String reason;
+
+ @ApiModelProperty(value = "审核人")
+ private String auditor;
+
+ @ApiModelProperty(value = "审核时间")
+ private Date auditTime;
+
+ @ApiModelProperty(value = "审核内容")
+ private String data;
+
+}
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreAuditQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreAuditQueryCriteria.java
index a9216ad..dd4607c 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreAuditQueryCriteria.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/domain/dto/StoreAuditQueryCriteria.java
@@ -13,10 +13,14 @@
@Data
public class StoreAuditQueryCriteria {
- @NotNull
- @ApiModelProperty(value = "店铺ID")
+ private String blurry;
+
private Long storeId;
+ private String storeName;
+
+ private String createBy;
+
@NotBlank
@ApiModelProperty(value = "类型")
private String type;
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/mapper/StoreAuditMapper.java b/oying-system/src/main/java/com/oying/modules/pc/store/mapper/StoreAuditMapper.java
index 8280a8e..1b37d45 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/mapper/StoreAuditMapper.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/mapper/StoreAuditMapper.java
@@ -3,6 +3,8 @@
import com.oying.modules.pc.store.domain.StoreAudit;
import com.oying.modules.pc.store.domain.dto.StoreAuditQueryCriteria;
import java.util.List;
+
+import com.oying.modules.pc.store.view.StoreAuditView;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -16,7 +18,7 @@
@Mapper
public interface StoreAuditMapper extends BaseMapper<StoreAudit> {
- IPage<StoreAudit> findAll(@Param("criteria") StoreAuditQueryCriteria criteria, Page<Object> page);
+ IPage<StoreAuditView> findAll(@Param("criteria") StoreAuditQueryCriteria criteria, Page<Object> page);
- List<StoreAudit> findAll(@Param("criteria") StoreAuditQueryCriteria criteria);
+ List<StoreAuditView> findAll(@Param("criteria") StoreAuditQueryCriteria criteria);
}
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/service/StoreAuditService.java b/oying-system/src/main/java/com/oying/modules/pc/store/service/StoreAuditService.java
index 180c43a..929adbe 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/service/StoreAuditService.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/service/StoreAuditService.java
@@ -8,6 +8,7 @@
import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.modules.pc.store.view.StoreAuditView;
import com.oying.utils.PageResult;
/**
@@ -23,14 +24,14 @@
* @param page 分页参数
* @return PageResult
*/
- PageResult<StoreAudit> queryAll(StoreAuditQueryCriteria criteria, Page<Object> page);
+ PageResult<StoreAuditView> queryAll(StoreAuditQueryCriteria criteria, Page<Object> page);
/**
* 查询所有数据不分页
* @param criteria 条件参数
* @return List<StoreRevisionDto>
*/
- List<StoreAudit> queryAll(StoreAuditQueryCriteria criteria);
+ List<StoreAuditView> queryAll(StoreAuditQueryCriteria criteria);
/**
* 店铺ID查询修订数据,
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreAuditServiceImpl.java b/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreAuditServiceImpl.java
index 3411955..a4cc8c5 100644
--- a/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreAuditServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/service/impl/StoreAuditServiceImpl.java
@@ -1,5 +1,6 @@
package com.oying.modules.pc.store.service.impl;
+import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -10,9 +11,8 @@
import com.oying.modules.pc.store.events.StoreAuditVerdictEvent;
import com.oying.modules.pc.store.mapper.StoreAuditMapper;
import com.oying.modules.pc.store.service.StoreAuditService;
-import com.oying.utils.FileUtil;
-import com.oying.utils.PageResult;
-import com.oying.utils.PageUtil;
+import com.oying.modules.pc.store.view.StoreAuditView;
+import com.oying.utils.*;
import lombok.RequiredArgsConstructor;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Service;
@@ -20,10 +20,7 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
/**
* @author lzp
@@ -39,12 +36,12 @@
private final StoreAuditMapper storeAuditMapper;
@Override
- public PageResult<StoreAudit> queryAll(StoreAuditQueryCriteria criteria, Page<Object> page) {
+ public PageResult<StoreAuditView> queryAll(StoreAuditQueryCriteria criteria, Page<Object> page) {
return PageUtil.toPage(storeAuditMapper.findAll(criteria, page));
}
@Override
- public List<StoreAudit> queryAll(StoreAuditQueryCriteria criteria) {
+ public List<StoreAuditView> queryAll(StoreAuditQueryCriteria criteria) {
return storeAuditMapper.findAll(criteria);
}
@@ -91,6 +88,8 @@
throw new BadRequestException("审核状态错误");
}
existingAudit.copy(resources);
+ existingAudit.setAuditor(SecurityUtils.getCurrentUsername());
+ existingAudit.setAuditTime(new Date());
storeAuditMapper.updateById(existingAudit);
eventPublisher.publishEvent(new StoreAuditVerdictEvent(existingAudit.getAuditId()));
}
diff --git a/oying-system/src/main/java/com/oying/modules/pc/store/view/StoreAuditView.java b/oying-system/src/main/java/com/oying/modules/pc/store/view/StoreAuditView.java
new file mode 100644
index 0000000..81baf53
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/pc/store/view/StoreAuditView.java
@@ -0,0 +1,54 @@
+package com.oying.modules.pc.store.view;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.bean.copier.CopyOptions;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.oying.base.BaseEntity;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+* @description /
+* @author lzp
+* @date 2025-07-01
+**/
+@Getter
+@Setter
+public class StoreAuditView extends BaseEntity implements Serializable {
+
+ @ApiModelProperty(value = "店铺ID")
+ private Long storeId;
+
+ @ApiModelProperty(value = "店铺名称")
+ private String storeName;
+
+ @ApiModelProperty(value = "审核ID")
+ private Long auditId;
+
+ @ApiModelProperty(value = "类型")
+ private String type;
+
+ @ApiModelProperty(value = "审核状态")
+ private Integer status;
+
+ @ApiModelProperty(value = "审核原因")
+ private String reason;
+
+ @ApiModelProperty(value = "审核人")
+ private String auditor;
+
+ @ApiModelProperty(value = "审核时间")
+ private Date auditTime;
+
+ @ApiModelProperty(value = "审核内容")
+ private String data;
+
+}
diff --git a/oying-system/src/main/resources/mapper/pc/product/ProductAuditMapper.xml b/oying-system/src/main/resources/mapper/pc/product/ProductAuditMapper.xml
index a7f5155..3cad00d 100644
--- a/oying-system/src/main/resources/mapper/pc/product/ProductAuditMapper.xml
+++ b/oying-system/src/main/resources/mapper/pc/product/ProductAuditMapper.xml
@@ -16,25 +16,62 @@
<result column="update_time" property="updateTime"/>
</resultMap>
+ <resultMap id="JoinResultMap" type="com.oying.modules.pc.product.view.ProductAuditView">
+ <result column="product_id" property="productId"/>
+ <result column="product_name" property="productName"/>
+ <result column="product_title" property="productTitle"/>
+ <result column="audit_id" property="auditId"/>
+ <result column="type" property="type"/>
+ <result column="status" property="status"/>
+ <result column="data" property="data"/>
+ <result column="reason" property="reason"/>
+ <result column="auditor" property="auditor"/>
+ <result column="audit_time" property="auditTime"/>
+ <result column="create_by" property="createBy"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_by" property="updateBy"/>
+ <result column="update_time" property="updateTime"/>
+ </resultMap>
+
<sql id="Base_Column_List">
audit_id, product_id, type, status, reason, auditor, audit_time, data, create_by, create_time, update_by, update_time
</sql>
- <select id="findAll" resultMap="BaseResultMap">
+ <sql id="Join_Column_List">
+ p.name as product_name, p.title as product_title,
+ pa.audit_id, pa.product_id, pa.type, pa.status, pa.reason, pa.auditor, pa.audit_time, pa.data, pa.create_by, pa.create_time, pa.update_by, pa.update_time
+ </sql>
+
+ <select id="findAll" resultMap="JoinResultMap">
select
- <include refid="Base_Column_List"/>
- from pc_product_audit
+ <include refid="Join_Column_List"/>
+ from pc_product_audit as pa left join pc_product as p on pa.product_id = p.product_id
<where>
+ <if test="criteria.blurry != null and criteria.blurry != ''">
+ and p.name like concat('%', #{criteria.blurry}, '%')
+ </if>
+ <if test="criteria.productName != null and criteria.productName != ''">
+ and p.name like concat('%', #{criteria.productName}, '%')
+ </if>
+ <if test="criteria.blurry != null and criteria.blurry != ''">
+ and p.title like concat('%', #{criteria.blurry}, '%')
+ </if>
+ <if test="criteria.productTitle != null and criteria.productTitle != ''">
+ and p.title like concat('%', #{criteria.productTitle}, '%')
+ </if>
<if test="criteria.productId != null">
- and product_id = #{criteria.productId}
+ and pa.product_id = #{criteria.productId}
</if>
<if test="criteria.type != null and criteria.type != ''">
- and type = #{criteria.type}
+ and pa.type = #{criteria.type}
</if>
<if test="criteria.status != null">
- and status = #{criteria.status}
+ and pa.status = #{criteria.status}
+ </if>
+ <if test="criteria.createBy != null and criteria.createBy != ''">
+ and pa.create_by = #{criteria.createBy}
</if>
</where>
- order by audit_id desc
+ order by pa.audit_id desc
</select>
</mapper>
\ No newline at end of file
diff --git a/oying-system/src/main/resources/mapper/pc/store/StoreAuditMapper.xml b/oying-system/src/main/resources/mapper/pc/store/StoreAuditMapper.xml
index 45844e3..658d0fc 100644
--- a/oying-system/src/main/resources/mapper/pc/store/StoreAuditMapper.xml
+++ b/oying-system/src/main/resources/mapper/pc/store/StoreAuditMapper.xml
@@ -16,25 +16,55 @@
<result column="update_time" property="updateTime"/>
</resultMap>
+ <resultMap id="JoinResultMap" type="com.oying.modules.pc.store.view.StoreAuditView">
+ <result column="store_name" property="storeName"/>
+ <result column="audit_id" property="auditId"/>
+ <result column="store_id" property="storeId"/>
+ <result column="type" property="type"/>
+ <result column="status" property="status"/>
+ <result column="data" property="data"/>
+ <result column="reason" property="reason"/>
+ <result column="auditor" property="auditor"/>
+ <result column="audit_time" property="auditTime"/>
+ <result column="create_by" property="createBy"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_by" property="updateBy"/>
+ <result column="update_time" property="updateTime"/>
+ </resultMap>
+
<sql id="Base_Column_List">
audit_id, store_id, type, status, reason, auditor, audit_time, data, create_by, create_time, update_by, update_time
</sql>
- <select id="findAll" resultMap="BaseResultMap">
+ <sql id="Join_Column_List">
+ s.store_name,
+ sa.audit_id, sa.store_id, sa.type, sa.status, sa.reason, sa.auditor, sa.audit_time, sa.data, sa.create_by, sa.create_time, sa.update_by, sa.update_time
+ </sql>
+
+ <select id="findAll" resultMap="JoinResultMap">
select
- <include refid="Base_Column_List"/>
- from pc_store_audit
+ <include refid="Join_Column_List"/>
+ from pc_store_audit as sa left join pc_store s on sa.store_id = s.store_id
<where>
+ <if test="criteria.blurry != null and criteria.blurry != ''">
+ and s.store_name like concat('%', #{criteria.blurry}, '%')
+ </if>
+ <if test="criteria.storeName != null and criteria.storeName != ''">
+ and s.store_name like concat('%', #{criteria.storeName}, '%')
+ </if>
<if test="criteria.storeId != null">
- and store_id = #{criteria.storeId}
+ and sa.store_id = #{criteria.storeId}
</if>
<if test="criteria.type != null and criteria.type != ''">
- and type = #{criteria.type}
+ and sa.type = #{criteria.type}
</if>
<if test="criteria.status != null">
- and status = #{criteria.status}
+ and sa.status = #{criteria.status}
+ </if>
+ <if test="criteria.createBy != null and criteria.createBy != ''">
+ and sa.create_by = #{criteria.createBy}
</if>
</where>
- order by audit_id desc
+ order by sa.audit_id desc
</select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.3