feat(shopGoods): 新增商品置顶功能及批量上下架操作

- 在商品模型中新增 isTop 字段支持置顶状态(1置顶,0不置顶)
- 商品列表新增置顶列,支持列表内联切换置顶状态
- 启用排序号列排序功能,置顶列参与前端排序
- 新增单个商品上架/下架切换接口及批量上下架操作
- 优化商品列表工具栏和选中操作栏,加入批量上架、下架按钮
- 商品分类及图片列表调用 OSS 图片压缩接口处理展示图片
- 新增删除商品导入模板及图片导入模板下载链接与使用说明
- 优化图片压缩工具,新增去除 URL 中 x-oss-process 参数功能,确保调用参数生效
This commit is contained in:
2026-07-24 10:57:23 +08:00
parent 44e416525d
commit e2f6dce7a1
11 changed files with 453 additions and 107 deletions

35
add-is-top-shop-goods.sql Normal file
View File

@@ -0,0 +1,35 @@
-- ============================================================
-- 商品表新增「置顶」字段 is_top并调整默认排序方案 B
-- ------------------------------------------------------------
-- 约定说明(依据本项目代码 /Users/gxwebsoft/VUE/guilixu-admin
-- 1. is_top = 1 表示置顶0默认表示不置顶
-- 2. 表名/字段名 snake_case 约定Node + TypeORM 常见);
-- 若你的库列名是驼峰goodsId / isTop请自行替换
-- 3. 与 recommend推荐同为「列表内联一键切换」的布尔开关
-- 4. 混合排序思路:置顶的永远在最前;置顶内部按排序号升序;
-- 其余商品按创建时间倒序(绝大多数商品无需手动排)
-- ============================================================
-- 第一步新增字段已存在则跳过MySQL 5.7 / 8 通用)
ALTER TABLE shop_goods
ADD COLUMN is_top TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否置顶1置顶 0不置顶';
-- (可选)联合索引,置顶 + 排序号分页查询更稳
-- ALTER TABLE shop_goods
-- ADD INDEX idx_is_top_sort (is_top, sort_number);
-- 第二步:调整分页查询(page 接口)默认排序
-- 原示例ORDER BY create_time DESC
-- 改: ORDER BY is_top DESC, sort_number ASC, create_time DESC
-- 说明:若后端排序字段来自前端 orders 参数,需放开 is_top / sort_number 参与排序
-- (前端「置顶」「排序号」列已开启 sorter会向后端传 orders
-- 第三步(验证):确认字段已加、数据默认 0且排序符合预期
SELECT goods_id,
name,
is_top,
sort_number,
create_time
FROM shop_goods
ORDER BY is_top DESC, sort_number ASC, create_time DESC
LIMIT 20;