跳到主要内容

楼层装修架构设计

7.0楼层架构思路变化:

一、前端负责解析模板,后端只负责提供数据

二、模板内容不存储在服务器端

三、模板不再提供维护功能,如果客户需要要新增模板修改前端vue源码(定义模板、样式及渲染规则),并重新编译、部署

四、前端负责所有的交互体验(拖拽、添加、删除、排序),最后由统一保存(此时才和后端进行交互)

表设计

es_page表

NameCodeCommentDataType
主键idpage_idint(11)
页面名称page_namevarchar(255)
页面数据page_datalongtext
页面类型page_typeINDEX/SPECIALvarchar(50)
客户端类型client_typeAPP/WAP/PCvarchar(50)
  1. 页面类型用来标识是首页还是专题页或其它类型
  2. 客户端类型用来标识是哪个端的

API规划

页面数据保存

路径
URL:{managerdomain}/page/{page_id}
METHODPUT
参数
参数类型说明
pagejson页面数据

参数示例

{
page_id:1,
page_name:"首页",
page_data:{ ... } //前端传啥,就保存啥
}

楼层数据模型

整个楼层数据格式为json,最外层为数组,数组内每个元素为一个楼层。

  • tlp_id:模板id,

  • blockList:这个楼层的区块

  • block_type:区块类型

  • block_value:区块的值

区块类型区块备注
GOODS商品
BRAND品牌
IMAGE图片类型
SWIPER轮播图
TEXT文本
[
{
"tpl_id":23,
"blockList":[
{
"block_type":"IMAGE",
"block_value":"http://javashop-statics.oss-cn-beijing.aliyuncs.com/demo/56256727.jpg"
}
]
},
{
"tpl_id":24,
"blockList":[
{
"block_type":"GOODS",
"block_value": {
"goods_id":322,
"goods_name":"促销商品K",
"sn":"0074",
"goods_image":"http://javashop-statics.oss-cn-beijing.aliyuncs.com/demo/E1EE42BA506F4A2895B449F661D1644B.jpg_300x300",
"enable_quantity":100,
"quantity":100,
"price":100.0,
"create_time":1517815032,
"market_enable":1,
"brand_name":"蜜饯",
"category_name":"蜜饯"
}
}
]
},
{
"tpl_id":27,
"blockList":[
{
"block_type":"IMAGE",
"block_value":"http://javashop-statics.oss-cn-beijing.aliyuncs.com/test/null/4D928A6DABE74EF5A78C2A2E2F5764F7.GIF",
"block_opt":{
"opt_type":"keyword",
"opt_value":"关键字",
"opt_detail":"这是个关键字类型"
}
},
{
"block_type":"IMAGE",
"block_value":""
}
]
}
]

移动端楼层模板id映射图

返回值

正确

同入参数

错误

相应错误信息

页面数据获取

路径
URL:{managerdomain}/page/{page_id}
METHODGET
返回值
{
page_id:1,
page_name:"首页",
page_data:{ ... }
}

逻辑说明

品牌和商品类型的区块数据,要进行数据读取后,将数据刷新再输出给客户端(这最终是静态生成器,页面最终展示给实际用户是通过nginx+lua由redis中获取的页面)