商品服务-商品维护-SPU规格维护
1.接口文档
2.AttrController中添加baseAttrListForSPU方法
/*** 获取spu规格* @param spuId* @return*/@GetMapping("/base/listforspu/{spuId}")public R baseAttrListForSPU(@PathVariable("spuId") Long spuId){List<ProductAttrValueEntity> productAttrValueEntityList = productAttrValueService.baseAttrListForSPU(spuId);return R.ok().put("data",productAttrValueEntityList);}
3.ProductAttrValueService中添加baseAttrListForSPU方法
List<ProductAttrValueEntity> baseAttrListForSPU(Long spuId);
4.ProductAttrValueServiceImpl中添加baseAttrListForSPU方法实现
/*** 获取spu规格* @param spuId* @return*/
@Override
public List<ProductAttrValueEntity> baseAttrListForSPU(Long spuId) {List<ProductAttrValueEntity> productAttrValueEntityList = this.baseMapper.selectList(new QueryWrapper<ProductAttrValueEntity>().eq("spu_id", spuId));return productAttrValueEntityList;
}
5.前端bug修改
bug:在spu管理中点击规格,前端显示404
用post测试:成功获取数据
问题分析: 前端路由问题
解决方案:在src/router/index.js的mainRoutes的children中配置spu管理–>规格的路由
// 主入口路由(需嵌套上左右整体布局)
const mainRoutes = {path: '/',component: _import('main'),name: 'main',redirect: { name: 'home' },meta: { title: '主入口整体布局' },children: [// 通过meta对象设置路由展示方式// 1. isTab: 是否通过tab展示内容, true: 是, false: 否// 2. iframeUrl: 是否通过iframe嵌套展示内容, '以http[s]://开头': 是, '': 否// 提示: 如需要通过iframe嵌套展示内容, 但不通过tab打开, 请自行创建组件使用iframe处理!{ path: '/home', component: _import('common/home'), name: 'home', meta: { title: '首页' } },{ path: '/theme', component: _import('common/theme'), name: 'theme', meta: { title: '主题' } },{ path: '/demo-echarts', component: _import('demo/echarts'), name: 'demo-echarts', meta: { title: 'demo-echarts', isTab: true } },{ path: '/demo-ueditor', component: _import('demo/ueditor'), name: 'demo-ueditor', meta: { title: 'demo-ueditor', isTab: true } },// 商品系统--商品维护-- spu管理 --规格{ path: '/product-attrupdate', component: _import('modules/product/attrupdate'), name: 'attr-update', meta: { title: '规格维护', isTab: true } }],
重启再次访问
6.修改商品规格
6.1.AttrController中添加updateSpuAttr方法
/*** 修改商品规格* @param spuId* @param entities* @return*/@PostMapping("/update/{spuId}")public R updateSpuAttr(@PathVariable("spuId") Long spuId,@RequestBody List<ProductAttrValueEntity> entities){productAttrValueService.updateSpuAttr(spuId,entities);return R.ok();}
6.2.ProductAttrValueService中添加updateSpuAttr
void updateSpuAttr(Long spuId, List<ProductAttrValueEntity> entities);
6.3.ProductAttrValueServiceImpl中添加updateSpuAttr方法实现
/*** 修改商品规格* @param spuId* @param entities*/@Transactional@Overridepublic void updateSpuAttr(Long spuId, List<ProductAttrValueEntity> entities) {//1、删除这个spuId之前对应的所有属性this.baseMapper.delete(new QueryWrapper<ProductAttrValueEntity>().eq("spu_id",spuId));List<ProductAttrValueEntity> productAttrValueEntityList = entities.stream().map(item -> {item.setSpuId(spuId);return item;}).collect(Collectors.toList());this.saveBatch(productAttrValueEntityList);}
.
商品服务-商品维护-SPU规格维护相关推荐
- 【谷粒商城高级篇】商品服务 商品上架
谷粒商城笔记合集 分布式基础篇 分布式高级篇 高可用集群篇 ===简介&环境搭建=== ===Elasticsearch=== 项目简介与分布式概念(第一.二章) Elasticsearch: ...
- 新增商品(商品维护模块)
7.商品维护:SPU管理.发布商品.商品管理 将其它前端页面导入项目 pubsub un difined:在src下的main.js添加 import PubSub from 'pubsub-js'V ...
- 微信小程序菜品做法展示数据库设计_微信小程序结合后台数据管理实现商品数据的动态展示、维护...
微信小程序给我们提供了一个很好的开发平台,可以用于展现各种数据和实现丰富的功能,本篇随笔介绍微信小程序结合后台数据管理实现商品数据的动态展示.维护,介绍如何实现商品数据在后台管理系统中的维护管理,并通 ...
- 谷粒商城九商品服务之商品属性及仓储服务todo
之前的文章我都是把整篇的代码直接复制到文章中,这样容易抓不住重点, 但是一段代码都贴出来,又显得繁琐, 从这篇开始,我会把重点步骤写出来,代码还是贴完整的 从这篇开始的mybatis-plus分页插件 ...
- 第5章-商品服务-品牌管理
第5章 商品服务-品牌管理 文章目录 第5章 商品服务-品牌管理 1. 使用逆向工程的代码 1.1 导入代码 1.2 显示状态优化 2. 文件上传技术 2.1 阿里云---对象存储OSS 云存储开启 ...
- 电商项目——商品服务-API-属性分组——第十一章——上篇
电商项目--初识电商--第一章--上篇 电商项目--分布式基础概念和电商项目微服务架构图,划分图的详解--第二章--上篇 电商项目--电商项目的虚拟机环境搭建_VirtualBox,Vagrant-- ...
- Day400401402403404405406.商品服务 -谷粒商城
商品服务 一.品牌管理 1.效果优化与快速显示开关 将逆向工程product得到的resources\src\views\modules\product文件拷贝到achangmall/renren-f ...
- 谷粒商城笔记+踩坑(6)——商品服务-属性及其关联分组
导航: 谷粒商城笔记+踩坑汇总篇_谷粒商城笔记踩坑6_vincewm的博客-CSDN博客 目录 10.商品服务-属性(规格参数和销售属性) 10.1.新增属性时,新增属性和属性分组的关联关系 10 ...
- 谷粒商城六商品服务三级分类
递归-树形结构数据获取 sql文件 sql文件太大了,这个博主写的非常厉害,看他的就ok了 CategoryController package com.atguigu.gulistore.produ ...
最新文章
- linux dns chroot配置文件,linxu chroot DNS 配置
- 非对称加密,我终于理解了!
- (转)svn检出的时候报 Unable to connect to a repository at URL错误
- 【opencv图像基础】图像常见的通道模式:RGB、YUV、HSV
- u-boot移植随笔:u-boot2010.09移植到8MB Nor Flash的S3C2440,第一步搞定(补记)
- 理解iOS 8中的Self Sizing Cells和Dynamic Type
- 俄罗斯方块java分析_[源码和文档分享]基于Java的俄罗斯方块游戏
- c语言面试题-基本概念
- (附源码)学生社团管理系统app 毕业设计 191850
- 『单片机原理』程序存储器的结构
- ios开发 多人语音聊天_iOS语音通话(语音对讲)
- 关于ORACLE (AMERICAN_AMERICA.US7ASCII)字符集
- 浮点数切分 C++
- vue结合饿了么_vue-饿了么项目总结
- html中如何把一张图片分块,神奇图片分割软件有哪些分割模式 图片分割器如何检验能否无缝拼图...
- CSP-J1 CSP-S1 信奥 第1轮 初赛 数据分析 成绩及分数线汇总
- mac安装matlab提示libmwlmgrimpl.dylib文件已损坏
- matlab二阶滤波器设计,基于matlab的各类滤波器设计
- 输入框的三种触发事件
- 全国计算机二级c++上机试题.cpp,计算机二级考试C++上机考试试题
热门文章
- hellgate 射击体验
- 使用Chrome Dev Tools, deb.js调试Javascript小技巧
- FileWriter的默认编码
- 秦州:西瓜书 + 南瓜书 吃瓜系列 16. 计算学习理论(上)
- MUX-VLAN QINQ
- 拟态UI4.0-个人主页【完全开源】
- [图示]做人36字诀:六)不败人生——教你人生辉煌
- 计算机大专函授自我鉴定总结怎么写,计算机专科函授毕业自我鉴定
- Python中的JSON简介
- nginx php 缓存时间,nginx expires设置数据过期时间