Files
guilixu-admin/.workbuddy/memory/2026-08-17.md
T
gxwebsoft bec3a6f1b8 feat(special-zone): 走压缩URL处理专区商品图片
- 将专区商品抽屉已关联商品列表的图片src改为压缩URL,减少缩略图体积
- 调整banner图片压缩宽度为300,保证清晰度与加载速度平衡
- 统一调用getCompressedImageUrl方法,无需额外引入
- 优化图片加载性能,提升用户体验
2026-08-17 16:47:37 +08:00

2.4 KiB
Raw Blame History

2026-08-17 工作日志

专区销量统计功能(/special/zone

  • 调研:专区与商品靠 ShopGoods.section_ids(逗号串)关联;ShopOrderGoods 无 sectionId,有 goodsId/totalNum/price/payStatus/orderStatus/tenantId;商品有 sales 累计字段。
  • 确认方案:方案B(订单真实成交聚合)+ 列表汇总列 + 独立统计弹窗,指标=销量件数+销售额。
  • 后端 guilixu-javashop 模块)改动:
    • ShopHomeSection 实体加 salesNum/salesAmount@TableField(exist=false)
    • 新建 VOSectionSalesSummaryVO / ShopSectionGoodsRankVO / SectionSalesStatsVOvo 包)
    • ShopHomeSectionMapper 加 selectSectionSalesSummary(批量)/ selectSectionGoodsRankTOP50
    • ShopHomeSectionServiceImpl.pageRel 批量填充汇总 + 新增 getSectionSalesStats
    • ShopHomeSectionController 新增 GET /{id}/stats?start=&end=
    • 口径:payStatus=1 且 orderStatus NOT IN(2,6)tenantId 隔离,时间对应 create_time
  • 前端 guilixu-admin
    • shopZone API 加 getSectionSalesStatsmodel 加字段与 VO 类型
    • zone/index.vue 列表加「销量件数」「销售额」列 + 操作列「销量」按钮
    • 新建 SectionSalesStatsModal.vue(时间筛选 + 汇总卡片 + 商品排行)
    • vite build 通过(exit 0
  • 待办:后端需 maven 编译并部署到 shop-api.websoft.top 才生效(本环境未部署)。

修复专区商品抽屉分页点击无效

  • 文件:src/views/special/zone/index.vue
  • 问题:抽屉里 a-table:pagination 直接内联写 { current: goodsPage, pageSize: goodsPageSize, total: goodsTotal },对象属性中的 ref 不会被 Vue 自动解包,Pagination 拿到的是 ref 对象而非 number,导致分页按钮点不动。
  • 修复:
    • 提取 goodsPagination = computed(() => ({ total: goodsTotal.value, current: goodsPage.value, pageSize: goodsPageSize.value, showSizeChanger: true, onChange: ... }))
    • :pagination="goodsPagination"
    • onChangeloadGoods(currentSectionId.value) 修正为 .value
  • 验证:vite build 通过(exit 0)。

专区商品图片走压缩 URL

  • 文件:src/views/special/zone/index.vue
  • 改动:专区商品抽屉的已关联商品列表「图片」列,从直接 :src="text" 改为 :src="getCompressedImageUrl(text, { width: 120 })",缩小缩略图体积并统一走 OSS 图片处理。
  • 说明:getCompressedImageUrl 已导入,无需额外引入。