一個(gè)用戶有一個(gè)購物車,一個(gè)購物車下有多個(gè)商店,一個(gè)商店下有多個(gè)商品
聯(lián)表查詢
1.根據(jù)用戶id,查出購物車數(shù)據(jù),
2.一個(gè)購物車下,有多個(gè)商店,黑色框
3.商店下有多個(gè)商品,藍(lán)色框
4.一個(gè)商品,有這個(gè)商品的信息,紅色框
根據(jù)用戶id查詢數(shù)據(jù)
let cartSelectGroupByUserId = (userId) => {
let sql = `select a.cart_goods_number,c.goods_id,c.goods_name,c.goods_img,c.goods_price,d.shop_id,d.shop_name from cart a,user b,goods c,shop d where a.user_id = b.user_id and a.goods_id = c.goods_id and c.shop_id = d.shop_id and a.user_id =${userId};`
return query(sql)
}
根據(jù)商店id查詢商店名
let shopSelectNameById = (id) => {
let sql = `select shop_name from shop where shop_id=${id};`
return query(sql)
}
const cartSelectGroupByUserId = async(ctx) => {
let id = ctx.params.id;
let shopId;
await cartModel.cartSelectGroupByUserId(id)
.then(result => {
console.log(result)
shopId = result[0].shop_id
})
await cartModel.shopSelectNameById(shopId)
.then(result => {
ctx.body = {
status: 200,
msg: "根據(jù)用戶id查詢用戶購物車所有數(shù)據(jù)",
data: result
}
})
.catch(error => {
console.log(error);
ctx.body = false;
})
}
data: [
{
cart_goods_number: 3,
goods_id: 3,
goods_name: "honor7x",
goods_img: "honor7x.png",
goods_price: 1299,
shop_id: 4,
shop_name: "honor之家"
},
{
cart_goods_number: 2,
goods_id: 4,
goods_name: "honor6x",
goods_img: "honor6x.png",
goods_price: 1199,
shop_id: 4,
shop_name: "honor之家"
},
{
cart_goods_number: 1,
goods_id: 1,
goods_name: "iPhonex",
goods_img: "iPhonex.png",
goods_price: 8888,
shop_id: 1,
shop_name: "iPhone之家"
}
],
一個(gè)用戶有一個(gè)購物車,一個(gè)購物車下有多個(gè)商店,一個(gè)商店下有多個(gè)商品
data1: [
{
shop_id: 4,
shop_name: "honor之家",
children: [
{
cart_goods_number: 3,
goods_id: 3,
goods_name: "honor7x",
goods_img: "honor7x.png",
goods_price: 1299
},
{
cart_goods_number: 2,
goods_id: 4,
goods_name: "honor6x",
goods_img: "honor6x.png",
goods_price: 1199
}
]
},
{
shop_id: 1,
shop_name: "iPhone之家",
children: [
{
cart_goods_number: 1,
goods_id: 1,
goods_name: "iPhonex",
goods_img: "iPhonex.png",
goods_price: 8888
}
]
}
]
用戶id,商品id,商品數(shù)量
CREATE TABLE `cart` (
`cart_id` int(10) NOT NULL AUTO_INCREMENT,
`user_id` int(10) DEFAULT NULL,
`goods_id` int(10) DEFAULT NULL,
`cart_goods_number` int(10) DEFAULT NULL,
`create_time` datetime DEFAULT NULL,
`last_edit_time` datetime DEFAULT NULL,
PRIMARY KEY (`cart_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
CREATE TABLE `user` (
`user_id` int(10) NOT NULL AUTO_INCREMENT,
`user_name` varchar(10) DEFAULT NULL,
`user_password` varchar(10) DEFAULT NULL,
`user_img` varchar(1024) DEFAULT NULL,
`user_phone` varchar(11) DEFAULT NULL,
`user_sex` int(2) NOT NULL DEFAULT '1' COMMENT '1:男,2:女',
`user_address` varchar(100) DEFAULT NULL,
`user_state` int(2) NOT NULL DEFAULT '1' COMMENT '1:允許使用,2:禁止使用',
`create_time` datetime DEFAULT NULL,
`last_edit_time` datetime DEFAULT NULL,
PRIMARY KEY (`user_id`),
UNIQUE KEY `user_name` (`user_name`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
CREATE TABLE `goods` (
`goods_id` int(10) NOT NULL AUTO_INCREMENT,
`goods_name` varchar(10) DEFAULT NULL,
`goods_img` varchar(1024) DEFAULT NULL,
`goods_price` double DEFAULT NULL,
`goods_number` int(10) DEFAULT NULL,
`goods_priority` int(2) NOT NULL DEFAULT '1',
`goods_state` int(2) NOT NULL DEFAULT '1' COMMENT '1:允許使用,2:禁止使用',
`shop_id` int(10) DEFAULT NULL,
`create_time` datetime DEFAULT NULL,
`last_edit_time` datetime DEFAULT NULL,
`goods_desc` varchar(1024) DEFAULT NULL,
PRIMARY KEY (`goods_id`),
UNIQUE KEY `goods_name` (`goods_name`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
CREATE TABLE `shop` (
`shop_id` int(10) NOT NULL AUTO_INCREMENT,
`shop_name` varchar(10) DEFAULT NULL,
`shop_phone` varchar(11) DEFAULT NULL,
`shop_img` varchar(1024) DEFAULT NULL,
`shop_category_id` int(10) DEFAULT NULL,
`shop_priority` int(2) NOT NULL DEFAULT '1',
`shop_state` int(2) NOT NULL DEFAULT '1' COMMENT '1:允許使用,2:禁止使用',
`create_time` datetime DEFAULT NULL,
`last_edit_time` datetime DEFAULT NULL,
`shop_desc` varchar(1024) DEFAULT NULL,
PRIMARY KEY (`shop_id`),
UNIQUE KEY `shop_name` (`shop_name`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
這個(gè)問題其實(shí)很好解決吧,用JSONObject嵌套就能實(shí)現(xiàn)呀~
package testdemo;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class demo {
public static void main(String[] args){
JSONObject root = new JSONObject();
int shopNumber,goodsNumber;
JSONArray shopArray = new JSONArray();
for(shopNumber=0;shopNumber<2;shopNumber++){
JSONObject shopObj = new JSONObject();
shopObj.put("shop_id",1);
shopObj.put("shop_name","honor之家");
shopObj.put("children",1);
JSONArray goodsArray = new JSONArray();
for(goodsNumber=0;goodsNumber<3;goodsNumber++){
JSONObject goods = new JSONObject();
goods.put("cart_goods_number","3");
goods.put("goods_id","1");
goods.put("goods_name","honor7x");
goods.put("goods_img","honor7x.png");
goods.put("goods_price","1299");
goodsArray.add(goods);
}
shopObj.put("children",goodsArray);
shopArray.add(shopObj);
}
root.put("data1",shopArray);
System.out.println(root.toJSONString());
}
}
輸出結(jié)果:
{"data1":[{"shop_id":1,"children":[{"goods_price":"1299","goods_id":"1","goods_name":"honor7x","goods_img":"honor7x.png","cart_goods_number":"3"},{"goods_price":"1299","goods_id":"1","goods_name":"honor7x","goods_img":"honor7x.png","cart_goods_number":"3"},{"goods_price":"1299","goods_id":"1","goods_name":"honor7x","goods_img":"honor7x.png","cart_goods_number":"3"}],"shop_name":"honor之家"},{"shop_id":1,"children":[{"goods_price":"1299","goods_id":"1","goods_name":"honor7x","goods_img":"honor7x.png","cart_goods_number":"3"},{"goods_price":"1299","goods_id":"1","goods_name":"honor7x","goods_img":"honor7x.png","cart_goods_number":"3"},{"goods_price":"1299","goods_id":"1","goods_name":"honor7x","goods_img":"honor7x.png","cart_goods_number":"3"}],"shop_name":"honor之家"}]}
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。