尚品匯-(十七)

?目錄:

(1)獲取價格信息

(2)獲取銷售信息

前面的表:

(1)獲取價格信息

?繼續編寫接口:ManagerService

/*** 獲取sku價格* @param skuId* @return*/
BigDecimal getSkuPrice(Long skuId);

實現類?ManagerServiceImpl

/*** 獲取sku價格* @param skuId* @return*/
@Override
public BigDecimal getSkuPrice(Long skuId) {SkuInfo skuInfo = skuInfoMapper.selectById(skuId);if(null != skuInfo) {return skuInfo.getPrice();}return new BigDecimal("0");
}

繼續編寫控制器:ProductApiController

查詢的是sku_info里面的價格

/*** 獲取sku最新價格* @param skuId* @return*/
@GetMapping("inner/getSkuPrice/{skuId}")
public BigDecimal getSkuPrice(@PathVariable Long skuId){return manageService.getSkuPrice(skuId);
}

(2)獲取銷售信息

通過spuid和skuid查詢 選中sku的銷售屬性

思路:

1、查出該商品的spu的所有銷售屬性和屬性值

2、標識出本商品對應的銷售屬性

3、點擊其他銷售屬性值的組合,跳轉到另外的sku頁面

銷售屬性跟銷售屬性值表,沒有外鍵,他們之間不是通過外鍵關聯的,他們是通過兩個字段進行關聯的?

?

選中關系表:選中了sku,然后跟銷售屬性關聯過濾?

查詢出sku對應spu的銷售屬性

第1、2條通過此sql實現:

SELECT sa.id ,sa.spu_id, sa.sale_attr_name,sa.base_sale_attr_id,sv.id sale_attr_value_id,sv.sale_attr_value_name,skv.sku_id,IF(skv.sku_id IS NULL,0,1)? is_checkedFROM spu_sale_attr saINNER JOIN spu_sale_attr_value? sv ON? sa.spu_id=sv.spu_id AND sa.base_sale_attr_id=sv.base_sale_attr_idLEFT JOIN sku_sale_attr_value skv ON skv.sale_attr_value_id= sv.id AND skv.sku_id=#{skuId}WHERE? sa.spu_id=#{spuId}ORDER BY sv.base_sale_attr_id,sv.id

此sql列出所有該spu的銷售屬性和屬性值,并關聯某skuid如果能關聯上is_check設為1,否則設為0。

在對應的實體類中【SpuSaleAttrValue】添加屬性字段

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.util.List;/*** <p>* SpuSaleAttr* </p>**/
@Data
@ApiModel(description = "銷售屬性")
@TableName("spu_sale_attr")
public class SpuSaleAttr extends BaseEntity {private static final long serialVersionUID = 1L;@ApiModelProperty(value = "商品id")@TableField("spu_id")private Long spuId;@ApiModelProperty(value = "銷售屬性id")@TableField("base_sale_attr_id")private Long baseSaleAttrId;@ApiModelProperty(value = "銷售屬性名稱(冗余)")@TableField("sale_attr_name")private String saleAttrName;// 銷售屬性值對象集合@TableField(exist = false)List<SpuSaleAttrValue> spuSaleAttrValueList;}
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;/*** <p>* SpuSaleAttrValue* </p>**/
@Data
@ApiModel(description = "銷售屬性值")
@TableName("spu_sale_attr_value")
public class SpuSaleAttrValue extends BaseEntity {private static final long serialVersionUID = 1L;@ApiModelProperty(value = "商品id")@TableField("spu_id")private Long spuId;@ApiModelProperty(value = "銷售屬性id")@TableField("base_sale_attr_id")private Long baseSaleAttrId;@ApiModelProperty(value = "銷售屬性值名稱")@TableField("sale_attr_value_name")private String saleAttrValueName;@ApiModelProperty(value = "銷售屬性名稱(冗余)")@TableField("sale_attr_name")private String saleAttrName;// 是否是默認選中狀態
//	@TableField("sale_attr_name")
//	String isChecked;@TableField(exist = false)String isChecked;}

在SpuSaleAttrMapper 接口中添加的方法

// 根據spuId,skuId 查詢銷售屬性集合
List<SpuSaleAttr> selectSpuSaleAttrListCheckBySku(@Param("skuId") Long skuId, @Param("spuId")Long spuId);

SpuSaleAttrMapper.xml:添加

<select id="selectSpuSaleAttrListCheckBySku" resultMap="spuSaleAttrMap">SELECT sa.id ,sa.spu_id, sa.sale_attr_name,sa.base_sale_attr_id,sv.id sale_attr_value_id,sv.sale_attr_value_name,skv.sku_id,IF(skv.sku_id IS NULL,0,1)  is_checkedFROM spu_sale_attr saINNER JOIN spu_sale_attr_value  sv ON  sa.spu_id=sv.spu_id AND sa.base_sale_attr_id=sv.base_sale_attr_idLEFT JOIN sku_sale_attr_value skv ON skv.sale_attr_value_id= sv.id AND skv.sku_id=#{skuId}WHERE  sa.spu_id=#{spuId}ORDER BY sv.base_sale_attr_id,sv.id
</select>

繼續編寫接口ManageService 接口

/*** 根據spuId,skuId 查詢銷售屬性集合* @param skuId* @param spuId* @return*/
List<SpuSaleAttr> getSpuSaleAttrListCheckBySku(Long skuId, Long spuId);

實現類ManageServiceImpl

@Override
public List<SpuSaleAttr> getSpuSaleAttrListCheckBySku(Long skuId, Long spuId) {return spuSaleAttrMapper.selectSpuSaleAttrListCheckBySku(skuId, spuId);
}

編寫控制器:ProductApiController

/*** 根據spuId,skuId 查詢銷售屬性集合* @param skuId* @param spuId* @return*/
@GetMapping("inner/getSpuSaleAttrListCheckBySku/{skuId}/{spuId}")
public List<SpuSaleAttr> getSpuSaleAttrListCheckBySku(@PathVariable("skuId") Long skuId,@PathVariable("spuId") Long spuId){return manageService.getSpuSaleAttrListCheckBySku(skuId, spuId);
}

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/44841.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/44841.shtml
英文地址,請注明出處:http://en.pswp.cn/web/44841.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

『 Linux 』匿名管道應用 - 簡易進程池

文章目錄 池化技術進程池框架及基本思路進程的描述組織管道通信建立的潛在問題 任務的描述與組織子進程讀取管道信息控制子進程進程退出及資源回收 池化技術 池化技術是一種編程技巧,一般用于優化資源的分配與復用; 當一種資源需要被使用時這意味著這個資源可能會被進行多次使…

mqtt.fx連接阿里云

本文主要是記述一下如何使用mqtt.fx連接在阿里云上創建好的MQTT服務。 1 根據MQTT填寫對應端口即可 找到設備信息&#xff0c;里面有MQTT連接參數 2 使用物模型通信Topic&#xff0c;注意這里的post說設備上報&#xff0c;那也就是意味著云端訂閱post&#xff1b;set則意味著設…

【輕松拿捏】Java-final關鍵字(面試)

目錄 1. 定義和基本用法 回答要點&#xff1a; 示例回答&#xff1a; 2. final 變量 回答要點&#xff1a; 示例回答&#xff1a; 3. final 方法 回答要點&#xff1a; 示例回答&#xff1a; 4. final 類 回答要點&#xff1a; 示例回答&#xff1a; 5. final 關鍵…

搭建hadoop+spark完全分布式集群環境

目錄 一、集群規劃 二、更改主機名 三、建立主機名和ip的映射 四、關閉防火墻(master,slave1,slave2) 五、配置ssh免密碼登錄 六、安裝JDK 七、hadoop之hdfs安裝與配置 1)解壓Hadoop 2)修改hadoop-env.sh 3)修改 core-site.xml 4)修改hdfs-site.xml 5) 修改s…

【進階篇-Day9:JAVA中單列集合Collection、List、ArrayList、LinkedList的介紹】

目錄 1、集合的介紹1.1 概念1.2 集合的分類 2、單列集合&#xff1a;Collection2.1 Collection的使用2.2 集合的通用遍歷方式2.2.1 迭代器遍歷&#xff1a;&#xff08;1&#xff09;例子&#xff1a;&#xff08;2&#xff09;迭代器遍歷的原理&#xff1a;&#xff08;3&…

排序——交換排序

在上篇文章我們詳細介紹了排序的概念與插入排序&#xff0c;大家可以通過下面這個鏈接去看&#xff1a; 排序的概念及插入排序 這篇文章就介紹一下一種排序方式&#xff1a;交換排序。 一&#xff0c;交換排序 基本思想&#xff1a;兩兩比較&#xff0c;如果發生逆序則交換…

jenkins系列-09.jpom構建java docker harbor

本地先啟動jpom server agent: /Users/jelex/Documents/work/jpom-2.10.40/server-2.10.40-release/bin jelexjelexxudeMacBook-Pro bin % sh Server.sh start/Users/jelex/Documents/work/jpom-2.10.40/agent-2.10.40-release/bin jelexjelexxudeMacBook-Pro bin % ./Agent.…

達夢數據庫的系統視圖v$sessions

達夢數據庫的系統視圖v$sessions 達夢數據庫&#xff08;DM Database&#xff09;是中國的一款國產數據庫管理系統&#xff0c;它提供了類似于Oracle的系統視圖來監控和管理數據庫。V$SESSIONS 是達夢數據庫中的一個系統視圖&#xff0c;用于顯示當前數據庫會話的信息。 以下…

全自主巡航無人機項目思路:STM32/PX4 + ROS + AI 實現從傳感融合到智能規劃的端到端解決方案

1. 項目概述 本項目旨在設計并實現一款高度自主的自動巡航無人機系統。該系統能夠按照預設路徑自主飛行&#xff0c;完成各種巡航任務&#xff0c;如電力巡線、森林防火、邊境巡邏和災害監測等。 1.1 系統特點 基于STM32F4和PX4的高性能嵌入式飛控系統多傳感器融合技術實現精…

MYSQL--第八次作業

MYSQL–第八次作業 一、備份與恢復 環境搭建&#xff1a; CREATE DATABASE booksDB; use booksDB;CREATE TABLE books ( bk_id INT NOT NULL PRIMARY KEY, bk_title VARCHAR(50) NOT NULL, copyright YEAR NOT NULL );CREATE TABLE authors ( auth_id INT NOT NULL PRI…

geoServer在windows中下載安裝部署詳細操作教程

這里寫目錄標題 1.安裝環境檢查2.下載安裝包&#xff08;1&#xff09;進入下載地址&#xff1a;&#xff08;2&#xff09;以下載最新版為例&#xff0c;點擊“Stable GeoServer”下載&#xff08;3&#xff09;安裝有兩種方式&#xff08;4&#xff09;我這里選擇下載war包 3…

python作業三

1.使用requests模塊獲取這個json文件http://java-api.super-yx.com/html/hello.json 2.將獲取到的json轉為dict 3.將dict保存為hello.json文件 4.用io流寫一個copy(src,dst)函數,復制hello.json到C:\hello.json import json import shutilimport requests #使用requests模塊獲…

Qt MV架構-視圖類

一、基本概念 在MV架構中&#xff0c;視圖包含了模型中的數據項&#xff0c;并將它們呈現給用戶。數據項的表示方法&#xff0c;可能和數據項在存儲時用的數據結構完全不同。 這種內容與表現分離之所以能夠實現&#xff0c;是因為使用了 QAbstractItemModel提供的一個標準模…

`nmap`模塊是一個用于與Nmap安全掃描器交互的庫

在Python中&#xff0c;nmap模塊是一個用于與Nmap安全掃描器交互的庫。Nmap&#xff08;Network Mapper&#xff09;是一個開源工具&#xff0c;用于發現網絡上的設備和服務。雖然Python的nmap模塊可能不是官方的Nmap庫&#xff08;因為Nmap本身是用C/C編寫的&#xff09;&…

基于JavaSpringBoot+Vue+uniapp微信小程序校園宿舍管理系統設計與實現

基于JavaSpringBootVueuniapp微信小程序實現校園宿舍管理系統設計與實現 目錄 第一章 緒論 1.1 研究背景 1.2 研究現狀 1.3 研究內容 第二章 相關技術介紹 2.1 Java語言 2.2 HTML網頁技術 2.3 MySQL數據庫 2.4 Springboot 框架介紹 2.5 VueJS介紹 2.6 ElementUI介紹…

視頻轉換、提取音頻、視頻加水印、視頻去水印、音頻轉換、分割合并壓縮等,批量還幾乎免費

「想轉就轉視頻音頻助手」免費版來襲&#xff01; 在數字化時代&#xff0c;視頻和音頻處理已成為我們日常生活的一部分。無論是制作個人視頻博客、編輯家庭影片&#xff0c;還是處理音頻文件&#xff0c;我們都在尋找一個強大而易于使用的解決方案。今天&#xff0c;我要向您…

基于大語言模型(LLM)的合成數據生成、策展和評估的綜述

節前&#xff0c;我們星球組織了一場算法崗技術&面試討論會&#xff0c;邀請了一些互聯網大廠朋友、參加社招和校招面試的同學。 針對算法崗技術趨勢、大模型落地項目經驗分享、新手如何入門算法崗、該如何準備、面試常考點分享等熱門話題進行了深入的討論。 合集&#x…

【JVM實戰篇】內存調優:內存泄露危害+內存監控工具介紹+內存泄露原因介紹

文章目錄 內存調優內存溢出和內存泄漏內存泄露帶來什么問題內存泄露案例演示內存泄漏的常見場景場景一場景二 解決內存溢出的方法常用內存監控工具Top命令優缺點 VisualVM軟件、插件優缺點監控本地Java進程監控服務器的Java進程&#xff08;生產環境不推薦使用&#xff09; Art…

【圖解大數據技術】流式計算:Spark Streaming、Flink

【圖解大數據技術】流式計算&#xff1a;Spark Streaming、Flink 批處理 VS 流式計算Spark StreamingFlinkFlink簡介Flink入門案例Streaming Dataflow Flink架構Flink任務調度與執行task slot 和 task EventTime、Windows、WatermarksEventTimeWindowsWatermarks 批處理 VS 流式…

如何查找電腦的MAC地址

一. 什么是mac地址&#xff1f; mac地址本質上幫助我們連接到我們遇到的大多數本地網絡。每個網絡適配器通常由網絡接口??控制器(NIC) 制造商分配一個唯一的 mac 地址。 二. 如何查找mac地址 1.點擊網絡和Internet設置 2.點擊WLAN點擊硬件屬性 3.即可查看mac地址