尚品汇-(八)

(1)spu相关业务介绍

销售属性

销售属性,就是商品详情页右边,可以通过销售属性来定位一组spu下的哪款sku。可以让当前的商品详情页,跳转到自己的“兄弟”商品。

     一般每种商品的销售属性不会太多,大约1-4种。整个电商的销售属性种类也不会太多,大概10种以内。比如:颜色、尺寸、版本、套装等等。不同销售属性的组合也就构成了一个spu下多个sku的结构。

因此,在制作spu之前要先确定当前商品有哪些销售属性!

spu数据结构图

(2)列表查询功能开发

当选择最后一个时:会发送请求

 

查询的是单个表:

实体类:SkuInfo 

package com.atguigu.gmall.model.product;import com.atguigu.gmall.model.base.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;import java.math.BigDecimal;
import java.util.List;/*** <p>* SkuInfo* </p>**/
@Data
@ApiModel(description = "SkuInfo")
@TableName("sku_info")
public class SkuInfo extends BaseEntity {public SkuInfo(){}public SkuInfo(Long skuId){setId(skuId);}//	判断去重的话,自动调用equals 方法。public boolean equals(SkuInfo skuInfo){return getId().equals(skuInfo.getId());}private static final long serialVersionUID = 1L;@ApiModelProperty(value = "商品id")@TableField("spu_id")private Long spuId;@ApiModelProperty(value = "价格")@TableField("price")private BigDecimal price;@ApiModelProperty(value = "sku名称")@TableField("sku_name")private String skuName;@ApiModelProperty(value = "商品规格描述")@TableField("sku_desc")private String skuDesc;@ApiModelProperty(value = "重量")@TableField("weight")private String weight;@ApiModelProperty(value = "品牌(冗余)")@TableField("tm_id")private Long tmId;@ApiModelProperty(value = "三级分类id(冗余)")@TableField("category3_id")private Long category3Id;@ApiModelProperty(value = "默认显示图片(冗余)")@TableField("sku_default_img")private String skuDefaultImg;@ApiModelProperty(value = "是否销售(1:是 0:否)")@TableField("is_sale")private Integer isSale;@TableField(exist = false)List<SkuImage> skuImageList;@TableField(exist = false)List<SkuAttrValue> skuAttrValueList;@TableField(exist = false)List<SkuSaleAttrValue> skuSaleAttrValueList;
}

 

创建mapper:SpuInfoMapper 

@Mapper
public interface SpuInfoMapper extends BaseMapper<SpuInfo> {}

继续再ManageService添加

/*** spu分页查询* @param pageParam* @param spuInfo* @return*/
IPage<SpuInfo> getSpuInfoPage(Page<SpuInfo> pageParam, SpuInfo spuInfo);

实现类 ManageServiceImpl

@Autowired
private SpuInfoMapper spuInfoMapper;@Override
public IPage<SpuInfo> getSpuInfoPage(Page<SpuInfo> pageParam, SpuInfo spuInfo) {QueryWrapper<SpuInfo> queryWrapper = new QueryWrapper<>();queryWrapper.eq("category3_id", spuInfo.getCategory3Id());queryWrapper.orderByDesc("id");return spuInfoMapper.selectPage(pageParam, queryWrapper);
}

创建控制器SpuManageController

@RestController // @ResponseBody + @Controller
@RequestMapping("admin/product")
public class SpuManageController {@Autowiredprivate ManageService manageService;// 根据查询条件封装控制器// springMVC 的时候,有个叫对象属性传值 如果页面提交过来的参数与实体类的参数一致,// 则可以使用实体类来接收数据// http://api.gmall.com/admin/product/1/10?category3Id=61// @RequestBody 作用 将前台传递过来的json{"category3Id":"61"}  字符串变为java 对象。@GetMapping("{page}/{size}")public Result getSpuInfoPage(@PathVariable Long page,@PathVariable Long size,SpuInfo spuInfo){// 创建一个Page 对象Page<SpuInfo> spuInfoPage = new Page<>(page,size);// 获取数据IPage<SpuInfo> spuInfoPageList = manageService.getSpuInfoPage(spuInfoPage, spuInfo);// 将获取到的数据返回即可!return Result.ok(spuInfoPageList);}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/37462.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

background 与 background-image

相同点&#xff1a;background 与 background-image都可以用于设置背景图 区别. background既可以用于设置背景图&#xff0c; 又可以用于设置CSS样式&#xff0c;还可以用于设置背景属性。 background-image只能用于设置背景图 background能设置的背景属性&#xff0c;如下&…

恢复机制-数据库系统中的故障(事务故障、系统故障、介质故障)、一致性错误、窃取但不强制的缓冲区管理策略

一、引言 数据库管理系统DBMS的事务处理技术实现的一个主要功能部分就是恢复机制&#xff0c;恢复机制完成的功能就是对发生故障后系统中事务的更新结果进行数据恢复&#xff0c;保证事务的原子性和持久性&#xff0c;从而进一步保证数据库的一致性。 数据库系统与其他计算机系…

AI数据分析010:集中度分析和离散度分析

文章目录 一、介绍1.1 集中度分析(Measures of Central Tendency)1.2 离散度分析(Measures of Dispersion)二、输入内容三、输出内容一、介绍 集中度分析和离散度分析是统计学中用来描述数据分布特征的两种方法。它们可以帮助我们了解数据的集中趋势和分散程度。 1.1 集中…

ESP32-C3模组上跑通MQTT遗嘱机制(2)

接前一篇文章:ESP32-C3模组上跑通MQTT遗嘱机制(1) 本文内容参考: ESP-MQTT - ESP32 - — ESP-IDF 编程指南 latest 文档 特此致谢! 上一回对于MQTT遗嘱机制进行了介绍,本回讲解在ESP-IDF中如何使用或者说使能MQTT遗嘱机制。 要弄清楚MQTT遗嘱机制代码如何添加,先得由…

Win11 搭建 Java 开发环境(JDK)

Win11 搭建 Java 开发环境(JDK) 前言步骤1、下载 JDK2、安装 JDK3、配置环境变量(我设置的顺序可不是随便的哟~)3-1、设置 JAVA_HOME_11和 JAVA_HOME3-2、设置 PATH3-3、设置 CLASS_HOME备注1、可以不必再手动配置 CLASSPATH2、恢复 jre 文件夹(有没有 jre 文件夹其实不影…

昇思25天学习打卡营第2天|数据集Dataset

学习目标&#xff1a;熟练掌握mindspore.dataset mindspore.dataset中有常用的视觉、文本、音频开源数据集供下载&#xff0c;点赞、关注收藏哦 了解mindspore.dataset mindspore.dataset应用实践 拓展自定义数据集 昇思平台学习时间记录: 一、关于mindspore.dataset minds…

微软Edge浏览器介绍

目录 一、概述 二、主要功能和特点 三、使用技巧 四、常见问题和解决方案 五、内核革新与性能飞跃 六、 用户体验与功能 七、特殊功能与工具 八、 跨平台支持与同步 九、开发者工具与支持 一、概述 微软Edge浏览器是微软公司开发的一款现代浏览器&#xff0c;旨在为用…

Python反爬虫策略

Python反爬虫策略 概述User-Agent 伪造应对302重定向IP限制与代理使用Cookies和Session管理动态内容加载数据加密与混淆请求频率限制爬虫检测算法法律与道德考量结语 概述 在数字化时代&#xff0c;网络数据采集已成为获取信息的重要手段之一。然而&#xff0c;随着技术的发展…

在HBuilder X中ElementUI框架的搭建

前言 本文将详解基于Vue-cli脚手架搭建的项目如何使用ElementUI &#xff1f;所以在学习本篇文章内容之前建议先学习vue-cli脚手架项目的搭建和学习 使用HbuilderX快速搭建vue-cil项目https://mp.csdn.net/mp_blog/creation/editor/140043776 ElementUI框架: Element&#xff…

【Java】解决Java报错:UnsupportedOperationException in Collections

文章目录 引言一、UnsupportedOperationException的定义与概述1. 什么是UnsupportedOperationException&#xff1f;2. UnsupportedOperationException的常见触发场景3. 示例代码 二、解决方案1. 使用适当的集合类型2. 创建可变副本3. 使用合适的集合工厂方法4. 使用不可变集合…

【代码随想录数据结构刷题记录】

文章目录 一、代码随想录数据结构刷题记录 一、代码随想录数据结构刷题记录 2024-04-08-代码随想录算法训练营第六天[LeetCode242有效的字母异位词、LeetCode349两个数组的交集 、LeetCode202快乐数 、LeetCode1. 两数之和] 2024-04-09-代码随想录算法训练营第七天[LeetCode4…

帮助某企业分析人才流失问题(附方案)

网游公司如何留住人才&#xff1f;某大型网游公司在如何留住人才方面存在一些问题&#xff0c;人才流失严重&#xff0c;人才流失也给企业带来了不小的打击&#xff0c;对该网游公司的发展造成了严重影响&#xff0c;在日益激励的人才争夺战中&#xff0c;如何保留优秀人才一直…

GPT-4o技术粗粗粗解

GPT-4o是一个非常优秀的多模态大模型。它的输入是语音、文字、图像/视频。输出自然有语音、文字、图像。如果说它像一个人的能力&#xff0c;那还真的差不多了。可能离AGI就不远了吧&#xff01;在现有的AI能力路上&#xff0c;SamAltman那句逆言的忠耳一定要听&#xff1a;不要…

ElementUI搭建使用过程

1.ElementUI概述 Element&#xff0c;一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库&#xff0c;相当于是css的框架 2.安装ElementUI 第一步&#xff1a;创建一个vue-cil项目 &#xff01;&#xff01;&#xff01;&#xff08;上篇文章已详细讲述搭建过…

游戏AI的创造思路-技术基础-深度学习(7)TF

重头戏TF&#xff0c;汽车人&#xff0c;变形~~~~ 现在广泛应用的GPT中&#xff0c;数据处理的关键点就是Transformer算法&#xff0c;多次多层的映射“变形”造就了其对自然语言处理能力的提升&#xff0c;但本篇介绍的内容中&#xff0c;Transformer算法是用来构建游戏AI的“…

昇思25天学习打卡营第5天 | 神经网络构建

1. 神经网络构建 神经网络模型是由神经网络层和Tensor操作构成的&#xff0c;mindspore.nn提供了常见神经网络层的实现&#xff0c;在MindSpore中&#xff0c;Cell类是构建所有网络的基类&#xff0c;也是网络的基本单元。一个神经网络模型表示为一个Cell&#xff0c;它由不同…

Quantlab5.0:一切围绕可实盘策略驱动开发

原创文章第573篇&#xff0c;专注“AI量化投资、世界运行的规律、个人成长与财富自由"。 2024年上半年即将结束&#xff0c;开始准备星球下半年的工作。 目前设想的——Quantlab5.0&#xff0c;之所以升级一个大版本&#xff0c;与4.x有很大不同。 5.0专注策略开发&…

Python28-2 机器学习算法之SVM(支持向量机)

SVM&#xff08;支持向量机&#xff09; 支持向量机&#xff08;Support Vector Machine&#xff0c;SVM&#xff09;是一种用于分类和回归分析的监督学习模型&#xff0c;在机器学习领域中被广泛应用。SVM的目标是找到一个最佳的分割超平面&#xff0c;将不同类别的数据分开&…

【Vue】Vue.js中常见的几种语法

在 Vue.js 中&#xff0c;主要的语法可以分为以下几种&#xff1a; 插值语法 (Interpolation) 使用双大括号 {{ }} 进行文本插值。 示例&#xff1a; {{ message }} 指令语法 (Directives) 指令是特殊的标记&#xff0c;用于告诉Vue框架如何操作DOM。Vue提供了多种内置指…

【最新鸿蒙应用开发】——鸿蒙国际化

1. 国际化 鸿蒙应用开发的国际化主要是指让应用支持多种语言和适应不同地区的用户习惯。这包括对不同语言环境的支持&#xff0c;如文本和布局的本地化设置。要实现国际化&#xff0c;开发者需要准备应用程序支持的每种语言环境的一些资源&#xff0c;比如翻译后的文本、特定区…