codingliang 11 месяцев назад
Родитель
Сommit
84f8162f0a

+ 9 - 0
src/main/java/com/sqx/modules/order/controller/app/AppOrderController.java

@@ -3,8 +3,10 @@ package com.sqx.modules.order.controller.app;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.sqx.common.exception.SqxException;
+import com.sqx.common.utils.PageUtils;
 import com.sqx.common.utils.Result;
 import com.sqx.modules.app.annotation.Login;
+import com.sqx.modules.order.controller.query.GoodsSkuQuery;
 import com.sqx.modules.order.entity.Evaluate;
 import com.sqx.modules.order.entity.TbOrder;
 import com.sqx.modules.order.service.AppOrderService;
@@ -283,4 +285,11 @@ public class AppOrderController {
         PayTransactionsVO payParamVO = appOrderService.getTransactionsParam(userId, payOrderDTO);
         return Result.success(BeanUtil.beanToMap(payParamVO, false, true));
     }
+
+    @GetMapping(value = "goods-sku-sales-count")
+    @ApiOperation("获取商品sku销售数量")
+    public Result getGoodsSkuSalesCount(@Valid GoodsSkuQuery query){
+        PageUtils pageUtils = appOrderService.getGoodsSkuSalesCount(query);
+        return Result.success().put("data", pageUtils);
+    }
 }

+ 33 - 0
src/main/java/com/sqx/modules/order/controller/query/GoodsSkuQuery.java

@@ -0,0 +1,33 @@
+package com.sqx.modules.order.controller.query;
+
+import com.sqx.common.query.PageQuery;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Pattern;
+
+/**
+ * sku销量查询
+ * @author codingliang
+ * @date 2025-07-31
+ */
+@Data
+public class GoodsSkuQuery extends PageQuery {
+
+    @ApiModelProperty(value = "店铺id")
+    private Long shopId;
+
+    @ApiModelProperty(value = "sku信息 模糊查询")
+    private String skuName;
+
+    @ApiModelProperty(value = "查询开始时间 格式yyyy-MM-dd HH:mm:ss")
+    @NotBlank(message = "查询开始时间不能为空")
+    @Pattern(regexp = "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$", message = "查询开始时间格式必须为yyyy-MM-dd HH:mm:ss")
+    private String startTime;
+
+    @ApiModelProperty(value = "查询结束时间 格式yyyy-MM-dd HH:mm:ss")
+    @NotBlank(message = "查询结束时间不能为空")
+    @Pattern(regexp = "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$", message = "查询结束时间格式必须为yyyy-MM-dd HH:mm:ss")
+    private String endTime;
+}

+ 28 - 0
src/main/java/com/sqx/modules/order/controller/vo/GoodsSkuSalesCountVO.java

@@ -0,0 +1,28 @@
+package com.sqx.modules.order.controller.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * sku销售数量统计
+ * @author codingliang
+ * @date 2025-07-31
+ */
+@Data
+public class GoodsSkuSalesCountVO {
+
+    @ApiModelProperty(value = "skuId")
+    private Long skuId;
+
+    @ApiModelProperty(value = "sku信息")
+    private String skuInfo;
+
+    @ApiModelProperty(value = "店铺id")
+    private Long shopId;
+
+    @ApiModelProperty(value = "店铺名称")
+    private String shopName;
+
+    @ApiModelProperty(value = "销售量")
+    private Integer value;
+}

+ 4 - 0
src/main/java/com/sqx/modules/order/dao/AppOrderDao.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.sqx.datasource.annotation.DataSource;
 import com.sqx.modules.datacentre.query.DataCenterQuery;
+import com.sqx.modules.order.controller.query.GoodsSkuQuery;
+import com.sqx.modules.order.controller.vo.GoodsSkuSalesCountVO;
 import com.sqx.modules.order.dto.OrderQueryDto;
 import com.sqx.modules.order.entity.TbOrder;
 import org.apache.ibatis.annotations.Mapper;
@@ -108,4 +110,6 @@ public interface AppOrderDao extends BaseMapper<TbOrder> {
     BigDecimal selectAllOrderTotalPrice(@Param("query") OrderQueryDto queryDto);
 
     List<TbOrder> changeTimeOutOrder(@Param("time") long time);
+
+    IPage<GoodsSkuSalesCountVO> getGoodsSkuSalesCount(Page<GoodsSkuSalesCountVO> pages, GoodsSkuQuery query);
 }

+ 9 - 0
src/main/java/com/sqx/modules/order/service/AppOrderService.java

@@ -2,7 +2,9 @@ package com.sqx.modules.order.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.sqx.common.utils.PageUtils;
 import com.sqx.common.utils.Result;
+import com.sqx.modules.order.controller.query.GoodsSkuQuery;
 import com.sqx.modules.order.dto.OrderFinishByShopDTO;
 import com.sqx.modules.order.dto.OrderQueryDto;
 import com.sqx.modules.order.entity.Evaluate;
@@ -183,4 +185,11 @@ public interface AppOrderService extends IService<TbOrder> {
 
 
     List<TbOrder> changeTimeOutOrder(long time);
+
+    /**
+     * 查询商品sku销售数量
+     * @param query 查询参数
+     * @return 商品sku销售数量
+     */
+    PageUtils getGoodsSkuSalesCount(GoodsSkuQuery query);
 }

+ 11 - 0
src/main/java/com/sqx/modules/order/service/impl/AppAppOrderServiceImpl.java

@@ -66,6 +66,8 @@ import com.sqx.modules.integral.dao.UserIntegralDetailsDao;
 import com.sqx.modules.integral.entity.UserIntegralDetails;
 import com.sqx.modules.message.dao.MessageInfoDao;
 import com.sqx.modules.message.entity.MessageInfo;
+import com.sqx.modules.order.controller.query.GoodsSkuQuery;
+import com.sqx.modules.order.controller.vo.GoodsSkuSalesCountVO;
 import com.sqx.modules.order.dao.AppOrderDao;
 import com.sqx.modules.order.dao.EvaluateDao;
 import com.sqx.modules.order.dao.OrderGoodsDao;
@@ -2881,6 +2883,15 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
         return appOrderDao.changeTimeOutOrder(time);
     }
 
+    @Override
+    public PageUtils getGoodsSkuSalesCount(GoodsSkuQuery query) {
+        Page<GoodsSkuSalesCountVO> pages = new Page<>(query.getPage(), query.getLimit());
+
+        IPage<GoodsSkuSalesCountVO> page = baseMapper.getGoodsSkuSalesCount(pages, query);
+        PageUtils pageUtils = new PageUtils(page);
+        return pageUtils;
+    }
+
     /**
      * 更新订单状态和支付顺序
      *