楼层WAP\APP端支持开发文档
1 需求说明
1.1菜单调整
后台的页面菜单子菜单调整为:
PC装修 | |
---|---|
楼层模板 | 原功能不变 |
楼层管理 | 原功能不变 |
焦点图 | 原功能不变 |
移动端装修 | |
楼层模板 | 管理移动端的楼层模板 |
楼层管理 | 设计移动端的楼层 |
焦点图 | 移动端的焦点图管理 |
1.2移动端楼层模板管理
同PC端:
但是,从数据上,PC端和移动端的数据分开显示管理
1.1移动端楼层设计
点击移动端的“楼层设计”直接进入以下页面
1.3.1 区域介绍
模块选择区的模块列表就是“移动端楼层模板”的列表,图标使用同一的图标,文字是楼层模板的名称:
1.3.2 操作说明
1.3.2.1 模块选择
当鼠标悬停在某个模块时的效果:
1.3.2.2 模块新增
点击某模块时会在“页面编译预览区”的最下新增一个楼层
如上图所示,还可以对此模块进行排序和删除的操作。
1.3.2.3 内容编辑
对于模块内的区域鼠标移上去时,像PC一样有一个遮罩,点击这个遮罩也弹出和PC一样的选择器。
1.3.2.4 首页发布
点击“发布首页”按钮对数据进行保存,并生成首页的静态页。
2 开发说明
2.1.1数据库设计
2.1.1.1 es_cms_floor表
中文:楼层表
Name | Code | Comment | DataType | Length |
---|---|---|---|---|
主键id | id | int(11) | 11 | |
模板id | tpl_id | int(11) | 11 | |
楼层名称 | name | varchar(255) | 255 | |
楼层排序 | sort | int(11) | 11 | |
是否显示 | is_display | 0:否,1:是 | int(1) | 1 |
锚点文字 | anchor_word | 预留字段 | varchar(255) | 255 |
锚点图标地址 | anchor_url | 预留字段 | varchar(255) | 255 |
楼层颜色风格 | floor_color | 预留字段 | varchar(255) | 255 |
客户端类型 | client_type | pc:pc楼层mobile:移动端楼层 | varchar(10) | 10 |
2.1.1.2 es_cms_floor_panel表
中文:楼层面板表
原表:es_cms_floorcontent
Name | Code | Comment | DataType | Length |
---|---|---|---|---|
主键id | id | int(11) | 11 | |
楼层id | floor_id | int(11) | 11 | |
楼层元数据 | panel_data | text | ||
模板id | panel_tpl_id | int(10) | 10 | |
排序 | sort | int(11) | 11 | |
面板名称 | panel_name | varchar(255) | 255 | |
2.1.1.3 es_cms_focuspic表
Name | Code | Comment | DataType | Length |
---|---|---|---|---|
主键id | id | int(11) | 11 | |
图片地址 | pic_url | varchar(255) | 255 | |
操作类型 | operation_type | int(11) | 11 | |
操作参数 | operation_param | varchar(255) | 255 | |
操作地址 | operation_url | varchar(255) | 255 | |
客户端类型 | client_type | pc:pc楼层mobile:移动端楼层 | varchar(10) | 10 |
2.1.1.4 es_cms_panel_tpl表
Name | Code | Comment | DataType | Length |
---|---|---|---|---|
主键id | tpl_id | int(10) | 10 | |
模板类型 | tpl_type | int(10) | 10 | |
模板内容 | tpl_content | text | ||
模板名称 | tpl_name | varchar(255) | 255 | |
客户端类型 | client_type | pc:pc楼层mobile:移动端楼层 | varchar(10) | 10 |
2.1.2包规划
主包名为:com.enation.app.cms,下面的包皆以此为父包:
一、楼层业务包
floor | |
---|---|
model | 模型 |
enums | 存放枚举 |
floor | 楼层本身相关模型 |
po | po模型 |
vo | 装修所所需相应模型 |
controller | 控制器 |
service | 业务类接口 |
builder | 楼层构建器 |
impl | 业务类实现 |
tag | 标签 |
二、焦点图业务包
focuspic | |
---|---|
model | 模型 |
controller | 控制器 |
service | 业务类接口 |
impl | 业务类实现 |
tag |
三、数据管理业务包
data | |
---|---|
model | 模型 |
controller | 控制器 |
service | 业务类接口 |
impl | 业务类实现 |
event | 事件定义 |
component | 组件包 |
tag |
2.2 包结构预览
2.3 全部类明细
2.4 移动端楼层模板的维护
其中标红色的是变化的,就是为读取列表加入了client_type,增和改也加了client_type。
要将Pc端口的楼层维护改为client_type用于传pc。
2.5 移动端楼层模板读取API
需求即列成下图中的效果:
要读取出这些移动端的楼层模板。
移动端的楼层模板不分主模板和普通模板,这是一个重要的概念。
2.5.1 读取时序图:
2.6 楼层新增API(已经存在,需要重构)
主要在FloorPo中新增了一个Client_type:
新增的时序图:
此api用于移动端的楼层新增。
2.7 后台装修数据构建
2.7.1 vo类图
楼层由floor,panel,layout,block构成,block分为品牌区块,手动选择商品区块,多图片区块,单图片区块,区块的类型在BlockType中。
2.7.2 构建器类图
2.7.3 时序图
上述逻辑在现有代码中,大部分已经实现,总体思路是通过建造者模式,一层层的构建元素(Block,Panel,Layout,Floor),最后形成Floor输出给前端,这个Floor是在如下大的体系中的一个模型:
此逻辑同时完成了pc和移动端的装修数据构建。
2.8 楼层装修数据保存
此逻辑比较简单,前端直接传递一个FloorDesign的Json对象至服务器端,服务器直接入库即可。
2.9 楼层数据页面展示
此逻辑需要重构FloorManager的getAllCmsFrontFloor方法,加入client_type参数来区分要展示PC端的楼层数据还是要展示移动端的楼层数据。
FloorManager总体类图:
2.10 业务类类图明细
2.11消息发送的重构
在楼层装修保存时发送AMQP消息
即在这个方法中:
com.enation.app.cms.floor.service.impl.FloorContentManager#design
要发送的消息在这里:
com.enation.app.base.AmqpExchange
里面有两个,一个是Pc的首页生成消息,一个是移动的首页生成消息。
根据floor的client_type判断来发相应的消息