架构设计(基础的组件)
涉及到的数据表
涉及到的模型(抽象,根据各层的需要)
根据各层不同的需求需要进行POJO的各种封装
获取商品的列表
前端请求的信息
// 定义全局商品数组信息
var g_itemList = [];
$(document).ready(function () {
$.ajax({
type: "GET",
url: "http://localhost:8080/item/getItemList",
contentType: "application/x-www-form-urlencoded",
xhrFields: {
withCredentials: true,
},
success: function (data) {
if (data.status == "success") {
//获取后端传过来的数据
g_itemList = data.data;
//追加数据,渲染页面
reloadDom();
} else {
alert("获取商品信息失败,原因为" + data.data.errMsg);
}
},
error: function (data) {
alert("获取商品信息失败,原因为" + data.responseText);
}
});
});
<!--将后端传给的数据在前端追加进来-->
function reloadDom() {
for (var i = 0; i < g_itemList.length; i++) {
var itemVO = g_itemList[i];
var dom =
"<tr data-id='" + itemVO.id + "' id='itemDetail" + itemVO.id + "'> " +
"<td>" + itemVO.title + "</td> <td><img src=" + itemVO.imgUrl + " /></td> " +
"<td>" + itemVO.description + "</td>" +
"<td>" + itemVO.price + "</td>" +
"<td>" + itemVO.stock + "</td>" +
"<td>" + itemVO.sales + "</td>" +
"</tr>";
$("#container").append($(dom));
//点击一行任意的位置 跳转到商品详情页
$("#itemDetail" + itemVO.id).on("click", function (e) {
window.location.href = "getitem.html?id=" + $(this).data("id");
});
}
}
后端
//商品列表页浏览
@RequestMapping(value="/getItemList",method = {RequestMethod.GET},consumes = {CONTENT_TYPE_FORMED})
@ResponseBody
public CommonReturnType list(){
//获取前端的列表
List<ItemModel> listItemModels = itemService.listItem();
if(listItemModels ==null){
return null;
}
List<ItemVo> listItemVos = listItemModels .stream().map(
itemModel-> {
return convertVOFromModel(itemModel);
}
).collect(Collectors.toList());
return CommonReturnType.create(listItemVos);
}
"status":"success",//状态
"data":[//数据
{
"id":4,
"title":"剑指Offer树部分解析",
"price":123,
"stock":12,
"description":"测试",
"sales":0,
"imgUrl":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1590575581472&di=b9767ddbccb08a760b3a913d09a72a21&imgtype=0&src=http%3A%2F%2Fimg1.imgtn.bdimg.com%2Fit%2Fu%3D3175508956%2C2902264390%26fm%3D214%26gp%3D0.jpg",
"promoPrice":null,
"startDate":null,
"promoId":null,
"promoStatus":0
},
{
"id":5,
"title":"111",
"price":123,
"stock":122,
"description":"测试",
"sales":0,
"imgUrl":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1590575581472&di=b9767ddbccb08a760b3a913d09a72a21&imgtype=0&src=http%3A%2F%2Fimg1.imgtn.bdimg.com%2Fit%2Fu%3D3175508956%2C2902264390%26fm%3D214%26gp%3D0.jpg",
"promoPrice":null,
"startDate":null,
"promoId":null,
"promoStatus":0
},
{
"id":7,
"title":"剑指Offer树部分解析",
"price":12,
"stock":3332,
"description":"testtt",
"sales":0,
"imgUrl":"https://wenhui.whb.cn/u/cms/www/202005/27152911unyv.jpg",
"promoPrice":null,
"startDate":null,
"promoId":null,
"promoStatus":0
},
{
"id":8,
"title":"222222222222",
"price":12,
"stock":3333,
"description":"testtt",
"sales":0,
"imgUrl":"https://wenhui.whb.cn/u/cms/www/202005/27152911unyv.jpg",
"promoPrice":null,
"startDate":null,
"promoId":null,
"promoStatus":0
},
{
"id":3,
"title":"剑指Offer树部分解析",
"price":123,
"stock":3,
"description":"测试",
"sales":1,
"imgUrl":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1590575581472&di=b9767ddbccb08a760b3a913d09a72a21&imgtype=0&src=http%3A%2F%2Fimg1.imgtn.bdimg.com%2Fit%2Fu%3D3175508956%2C2902264390%26fm%3D214%26gp%3D0.jpg",
"promoPrice":null,
"startDate":null,
"promoId":null,
"promoStatus":0
},
{
"id":6,
"title":"剑指Offer树部分解析",
"price":22,
"stock":219,
"description":"test",
"sales":2,
"imgUrl":"https://wenhui.whb.cn/u/cms/www/202005/27152911unyv.jpg",
"promoPrice":null,
"startDate":null,
"promoId":null,
"promoStatus":0
},
{
"id":1,
"title":"iphone12",
"price":21123,
"stock":103,
"description":"不错",
"sales":141,
"imgUrl":"https://i1.mifile.cn/a1/pms_1550642182.7527088!220x220.jpg",
"promoPrice":null,
"startDate":null,
"promoId":null,
"promoStatus":0
},
{
"id":2,
"title":"iphone13",
"price":12321,
"stock":90,
"description":"nice",
"sales":142,
"imgUrl":"https://i1.mifile.cn/a1/pms_1550642182.7527088!220x220.jpg",
"promoPrice":null,
"startDate":null,
"promoId":null,
"promoStatus":0
}
]
}
获取商品的详情页
//商品详情页浏览
@RequestMapping(value="/getItem",method = {RequestMethod.GET},consumes = {CONTENT_TYPE_FORMED})
@ResponseBody
public CommonReturnType getItem(@RequestParam(name="id")Integer id){
ItemModel itemModel = itemService.getItemById(id);
if(itemModel==null){
return null;
}
ItemVo itemVo = convertVOFromModel(itemModel);
return CommonReturnType.create(itemVo);//返回给前端的数据itemVo
}
@Override
public ItemModel getItemById(Integer id) {
ItemDO itemDO = itemDOMapper.selectByPrimaryKey(id);
if(itemDO==null) return null;
//操作获得库存数量
ItemStockDO itemStockDO = itemStockDOMapper.selectByItemId(itemDO.getId());
//将dataobject转换为model
ItemModel itemModel = convertModelFromDataObject(itemDO,itemStockDO);
//获取活动商品信息id
PromoModel promoModel = promoService.getPromoByItemId(id);
return itemModel;
}
返回给前端的数据
{
"status":"success",
"data":{
"id":7,
"title":"剑指Offer树部分解析",
"price":12,
"stock":3332,
"description":"testtt",
"sales":0,
"imgUrl":"https://wenhui.whb.cn/u/cms/www/202005/27152911unyv.jpg",
"promoPrice":null,
"startDate":null,
"promoId":null,
"promoStatus":0
}
}
渲染的页面