一、贷款产品管理,贷款标签管理,办卡产品管理
cfg_product_v3产品表
cfg_url_v3链接表
a.每个产品可能有多个链接;
b.每个链接可能有多个展示渠道,展示渠道还可以选择是否默认,存成如下字符串格式,其中id是渠道id
$default_channel = [{"id":1,"is_default":1},{"id":47,"is_default":0}];
cfg_channel_v3渠道表
cfg_label_v3营销标签表
cfg_label_product_link_v3每个产品可以关联多个营销标签
cfg_product_price_v3产品价格配置表,每个产品可能有多个价格配置
a、price存成了如下格式,ladder有阶梯制概念
$price1 = [{"price":20,"ladder":0},{"price":20,"ladder":3},{"price":3,"ladder":4}];
$price2 = [{"price":15,"ladder":"0"}];
sys_bank_card_v3办卡产品管理表
channel字段存储json字符串,主要channelNumber里键名对应展示渠道名称,键值对应权重
二、操作日志
cfg_operation_log_v3操作日志表
CREATE TABLE `cfg_operation_log_v3` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`operator_id` int(11) NOT NULL DEFAULT '0' COMMENT '操作人id',
`operator_name` varchar(16) NOT NULL DEFAULT '' COMMENT '操作人名字',
`operation_target_type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '操作的目标 1 贷款产品 2 贷款链接
3 贷款产品关联的标签 4 弹窗管理 5 banner管理 6 公告管理 7 频道管理 8 产品列表管理 9 产品价格配置',
`target_id` int(11) NOT NULL DEFAULT '0' COMMENT '操作目标的id',
`product_id` int(11) NOT NULL DEFAULT '0' COMMENT '最后关联的产品id',
`target_name` varchar(20) NOT NULL DEFAULT '' COMMENT '操作目标的名称',
`save_content` text NOT NULL COMMENT '从前端传过来的json字符串',
`type` char(5) NOT NULL DEFAULT '0' COMMENT "操作类型,包括 '标签设置','新增','修改','删除','价格配置'"
`field` varchar(20) NOT NULL DEFAULT '' COMMENT '修改的字段',
`field_before` varchar(50) NOT NULL DEFAULT '' COMMENT '被修改字段修改前内容',
`field_after` varchar(50) NOT NULL DEFAULT '' COMMENT '被修改字段修改后内容',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE,
KEY `index_targettype_productid` (`operation_target_type`,`product_id`) USING BTREE,
KEY `create_time` (`create_time`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=828 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='操作日志表';
1、新增产品时,会有新增记录、标签设置、url新增(此时target_id对应的id)、价格配置的记录
2、列表页(或编辑页)更改上下架状态或更改权重时
注:下架某个产品时判断该产品下的链接是否有被某些资源位使用
3、不管有没有更改,只要编辑提交,都会产生三条记录(感觉不完美);
而新增或删除价格模板时,产生价格配置的记录类似这里的记录
4、编辑页新增或删除链接时
5、编辑页修改链接上下架状态、修改链接展示渠道和渠道默认链接时
三、渠道配置
cfg_channel_onoff_log_v3 渠道操作日志记录表
a、渠道新增时日志记录,主要记录is_create = 1;
如果新增时下架状态,记录'is_create_off' = 1
b、上下架状态改变的日志记录
四、前期收获
1、$set = elements( array_intersect(Cfg_Channel_V3::get_fields() , array_keys($this->input_params) ),$this->input_params );
防止用户发送额外数据写入数据库
2、新增,编辑,下架,写到一个方法里,新增与编辑通过是否有id区分;
关联产品的添加和删除,将数据加到product_list参数里,有该参数时,先删除 cfg_label_product_link_v3 表中该标签id的关联数据,再批量添加入库。
3、
//join后面还可以加where条件
$v['product_list'] = get_read_db()->from(Cfg_Label_Product_Link_V3::$table_name.' as a')
->select('b.id,b.product_name')
->order_by('b.id desc')
->join(Cfg_Product_V3::$table_name.' as b', 'a.product_id=b.id', 'left join')->where($linkWhere)->get()->result_array();
//添加新的关联产品时排除这些已有的产品id
$v['eliminate'] = array_column($v['product_list'], 'id');
$v['product_num'] = count($v['eliminate']);