From 15914f5f306233035ba23332c4ca70beff3412b5 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Thu, 21 Aug 2025 13:33:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../heyu/api/data/dao/vv/VvProductDao.java | 54 +++++++++----- .../heyu/api/data/dto/vv/VvProductDTO.java | 12 ++++ .../api/data/entity/vv/VvProductEntity.java | 56 ++++++++++++--- .../java/com/test/xxx/MysqlMain_update.java | 2 +- .../com/test/xxx/mysql/SqlParseUtilsTest.java | 4 +- .../alibaba/request/mm/VvProductRequest.java | 64 +++++++++++++++++ .../api/controller/mm/ProductController.java | 72 +++++++++++++++++++ 7 files changed, 234 insertions(+), 30 deletions(-) create mode 100644 api-mapper/src/main/java/com/heyu/api/data/dto/vv/VvProductDTO.java create mode 100644 api-third/src/main/java/com/heyu/api/alibaba/request/mm/VvProductRequest.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/mm/ProductController.java diff --git a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvProductDao.java b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvProductDao.java index f848643..5faa44c 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvProductDao.java +++ b/api-mapper/src/main/java/com/heyu/api/data/dao/vv/VvProductDao.java @@ -1,46 +1,64 @@ package com.heyu.api.data.dao.vv; /** -*

-* 商品表 服务类 -*

-* -* @author quyixiao -* @since 2025-08-20 -*/ + *

+ * 商品表 服务类 + *

+ * + * @author quyixiao + * @since 2025-08-20 + */ + +import com.baomidou.mybatisplus.core.metadata.IPage; import com.heyu.api.data.entity.vv.VvProductEntity; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.lz.mybatis.plugin.annotations.IN; -import com.lz.mybatis.plugin.annotations.OrderBy; +import com.lz.mybatis.plugin.annotations.*; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.math.BigDecimal; import java.util.List; @Mapper public interface VvProductDao extends BaseMapper { - VvProductEntity selectVvProductById(@Param("id")Long id); + VvProductEntity selectVvProductById(@Param("id") Long id); - Long insertVvProduct(VvProductEntity vvProduct); + Long insertVvProduct(VvProductEntity vvProduct); - Long insertOrUpdateVvProduct(VvProductEntity vvProduct); + Long insertOrUpdateVvProduct(VvProductEntity vvProduct); - int updateVvProductById(VvProductEntity vvProduct); + int updateVvProductById(VvProductEntity vvProduct); - int updateCoverVvProductById(VvProductEntity vvProduct); + int updateCoverVvProductById(VvProductEntity vvProduct); - int deleteVvProductById(@Param("id")Long id); + int deleteVvProductById(@Param("id") Long id); - @OrderBy(VvProductEntity.default_sort) - List selectVvProductByFrontPage(Integer frontPage); + @OrderBy(VvProductEntity.default_sort) + List selectVvProductByFrontPage(Integer frontPage); + List selectVvProductByIds(@IN List id); - List selectVvProductByIds(@IN List id); + List selectVvProductByCondition(IPage page, + @IF @LIKE String title, + @IF @Column(VvProductEntity.show_sale_price) @GE BigDecimal minShowSalePrice, + @IF @Column(VvProductEntity.show_sale_price) @LE BigDecimal maxShowSalePrice, + @IF @Column(VvProductEntity.real_sale_count) @GE Integer minRealSaleCount, + @IF @Column(VvProductEntity.real_sale_count) @LE Integer maxRealSaleCount, + @IF @Column(VvProductEntity.create_timestamp) @GE Long minCreateTimestamp, + @IF @Column(VvProductEntity.create_timestamp) @LE Long maxCreateTimestamp, + @IF @Column(VvProductEntity.modify_timestamp) @GE Long minModifyTimestamp, + @IF @Column(VvProductEntity.modify_timestamp) @LE Long maxModifyTimestamp, + @IF Integer frontPage, + @IF String status, + @IF @OrderBy(VvProductEntity.real_sale_count) String saleCount, + @IF @OrderBy(VvProductEntity.create_timestamp) String createTimestamp, + @IF @OrderBy(VvProductEntity.modify_timestamp) String modifyTimestamp + ); } \ No newline at end of file diff --git a/api-mapper/src/main/java/com/heyu/api/data/dto/vv/VvProductDTO.java b/api-mapper/src/main/java/com/heyu/api/data/dto/vv/VvProductDTO.java new file mode 100644 index 0000000..f05d9d7 --- /dev/null +++ b/api-mapper/src/main/java/com/heyu/api/data/dto/vv/VvProductDTO.java @@ -0,0 +1,12 @@ +package com.heyu.api.data.dto.vv; + +import com.heyu.api.data.entity.vv.VvPropertyEntity; +import lombok.Data; + + +@Data +public class VvProductDTO extends VvPropertyEntity { + + + +} diff --git a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvProductEntity.java b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvProductEntity.java index ca3abda..9cfed63 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvProductEntity.java +++ b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvProductEntity.java @@ -1,16 +1,16 @@ package com.heyu.api.data.entity.vv; + import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; -import com.lz.mybatis.plugin.annotations.AS; import java.math.BigDecimal; -import java.util.Date;import java.util.Date; +import java.util.Date; /** *商品表 * @author quyixiao -* @since 2025-08-20 +* @since 2025-08-21 */ @Data @@ -37,6 +37,8 @@ private static final long serialVersionUID = 1L; public final static String category_id_two = CLASS_NAME + "category_id_two"; // 二级类目 public final static String category_id_three = CLASS_NAME + "category_id_three"; // 三级类目 public final static String front_page = CLASS_NAME + "front_page"; // 是否是首页 + public final static String status_ = CLASS_NAME + "status"; // delete 删除,down 下架,online 在线,draft 草稿 + public final static String real_sale_count = CLASS_NAME + "real_sale_count"; // 真实销售量 // @TableId(value = "id", type = IdType.AUTO) private Long id; @@ -59,9 +61,9 @@ private static final long serialVersionUID = 1L; //默认排序 private Integer defaultSort; //创建时间撮 - private Integer createTimestamp; + private Long createTimestamp; //修改时间撮 - private Integer modifyTimestamp; + private Long modifyTimestamp; //一级类目id private Integer categoryIdOne; //二级类目 @@ -70,6 +72,10 @@ private static final long serialVersionUID = 1L; private Integer categoryIdThree; //是否是首页 private Integer frontPage; + //delete 删除,down 下架,online 在线,draft 草稿 + private String status; + //真实销售量 + private Integer realSaleCount; /** * * @return @@ -224,14 +230,14 @@ private static final long serialVersionUID = 1L; * 创建时间撮 * @return */ - public Integer getCreateTimestamp() { + public Long getCreateTimestamp() { return createTimestamp; } /** * 创建时间撮 * @param createTimestamp */ - public void setCreateTimestamp(Integer createTimestamp) { + public void setCreateTimestamp(Long createTimestamp) { this.createTimestamp = createTimestamp; } @@ -239,14 +245,14 @@ private static final long serialVersionUID = 1L; * 修改时间撮 * @return */ - public Integer getModifyTimestamp() { + public Long getModifyTimestamp() { return modifyTimestamp; } /** * 修改时间撮 * @param modifyTimestamp */ - public void setModifyTimestamp(Integer modifyTimestamp) { + public void setModifyTimestamp(Long modifyTimestamp) { this.modifyTimestamp = modifyTimestamp; } @@ -310,6 +316,36 @@ private static final long serialVersionUID = 1L; this.frontPage = frontPage; } + /** + * delete 删除,down 下架,online 在线,draft 草稿 + * @return + */ + public String getStatus() { + return status; + } + /** + * delete 删除,down 下架,online 在线,draft 草稿 + * @param status + */ + public void setStatus(String status) { + this.status = status; + } + + /** + * 真实销售量 + * @return + */ + public Integer getRealSaleCount() { + return realSaleCount; + } + /** + * 真实销售量 + * @param realSaleCount + */ + public void setRealSaleCount(Integer realSaleCount) { + this.realSaleCount = realSaleCount; + } + @Override public String toString() { return "VvProductEntity{" + @@ -329,6 +365,8 @@ private static final long serialVersionUID = 1L; ",categoryIdTwo=" + categoryIdTwo + ",categoryIdThree=" + categoryIdThree + ",frontPage=" + frontPage + + ",status=" + status + + ",realSaleCount=" + realSaleCount + "}"; } } \ No newline at end of file diff --git a/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java b/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java index 7ae536d..47a2839 100644 --- a/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java +++ b/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java @@ -49,7 +49,7 @@ public class MysqlMain_update { List list = new ArrayList(); - String a = "vv_property,vv_property_value"; + String a = "vv_product"; for (String s : a.split(",")) { list.add(new TablesBean(s)); } diff --git a/api-mapper/src/test/java/com/test/xxx/mysql/SqlParseUtilsTest.java b/api-mapper/src/test/java/com/test/xxx/mysql/SqlParseUtilsTest.java index d5f8659..42c3268 100644 --- a/api-mapper/src/test/java/com/test/xxx/mysql/SqlParseUtilsTest.java +++ b/api-mapper/src/test/java/com/test/xxx/mysql/SqlParseUtilsTest.java @@ -1,6 +1,6 @@ package com.test.xxx.mysql; -import com.heyu.api.data.dao.api.ApiPostCodeDao; +import com.heyu.api.data.dao.vv.VvProductDao; import com.lz.mybatis.plugin.utils.TestParseUtils; import com.lz.mybatis.plugin.utils.t.Tuple2; import org.junit.Test; @@ -12,7 +12,7 @@ SqlParseUtilsTest { public void test1() { - Tuple2 tuple = TestParseUtils.testSql(ApiPostCodeDao::insertApiPostCode).getData(); + Tuple2 tuple = TestParseUtils.testSql(VvProductDao::selectVvProductByCondition).getData(); diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/VvProductRequest.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/VvProductRequest.java new file mode 100644 index 0000000..18bfe27 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/VvProductRequest.java @@ -0,0 +1,64 @@ +package com.heyu.api.alibaba.request.mm; + + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class VvProductRequest { + + private Integer pageNum; + + + private Integer pageSize; + + //商品标题 + private String title; + + + //销售价格 + private BigDecimal minShowSalePrice; + + + //销售价格 + private BigDecimal maxShowSalePrice; + + + // 真实销售数量 + private Integer minRealSaleCount; + //真实销售数量 + private Integer maxRealSaleCount; + + + //创建时间撮 + private Long minCreateTimestamp; + private Long maxCreateTimestamp; + + + //修改时间撮 + private Long minModifyTimestamp; + + private Long maxModifyTimestamp; + + + //是否是首页 + private Integer frontPage; + + + //delete 删除,down 下架,online 在线,draft 草稿 + private String status; + + // 按真实销量排序,传ASC 或 DESC + private String realSaleCountSort; + /*** + * 按创建时间排序,,传ASC 或 DESC + */ + private String createTimestampSort; + + /*** + * 按修改时间排序,传ASC 或 DESC + */ + private String modifyTimestampSort; + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/ProductController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/ProductController.java new file mode 100644 index 0000000..d13f955 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/ProductController.java @@ -0,0 +1,72 @@ +package com.heyu.api.controller.mm; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.heyu.api.alibaba.request.mm.VvProductRequest; +import com.heyu.api.data.dao.vv.VvProductDao; +import com.heyu.api.data.entity.vv.VvPropertyEntity; +import com.heyu.api.data.utils.R; +import com.heyu.api.data.utils.StringUtils; +import com.heyu.api.utils.ISelect; +import com.heyu.api.utils.PPageUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@Slf4j +@RestController +@RequestMapping("/mm/product") +public class ProductController { + + + @Autowired + private VvProductDao vvProductDao; + + + /*** + * 列表 + */ + @RequestMapping("/list") + public R list(VvProductRequest vvProductRequest) { + if(StringUtils.isNotBlank(vvProductRequest.getRealSaleCountSort()) + && StringUtils.isBlank(vvProductRequest.getCreateTimestampSort()) + && StringUtils.isBlank(vvProductRequest.getModifyTimestampSort())){ + vvProductRequest.setCreateTimestampSort("DESC"); + } + PPageUtils pageUtils = PPageUtils.startPage(vvProductRequest.getPageNum(), vvProductRequest.getPageSize()) + .doSelect(new ISelect() { + @Override + public List doSelect(IPage page) { + return vvProductDao.selectVvProductByCondition(page, + vvProductRequest.getTitle(), + vvProductRequest.getMinShowSalePrice(), + vvProductRequest.getMaxShowSalePrice(), + vvProductRequest.getMinRealSaleCount(), + vvProductRequest.getMaxRealSaleCount(), + vvProductRequest.getMinCreateTimestamp(), + vvProductRequest.getMaxCreateTimestamp(), + vvProductRequest.getMinModifyTimestamp(), + vvProductRequest.getMaxModifyTimestamp(), + vvProductRequest.getFrontPage(), + vvProductRequest.getStatus(), + vvProductRequest.getRealSaleCountSort(), + vvProductRequest.getCreateTimestampSort(), + vvProductRequest.getModifyTimestampSort() + + ); + + } + }); + + List vvPropertyEntities = pageUtils.getRows(); + + + + return R.ok(); + } + + +}