短视频账号矩阵seo霸屏技术开发搭建:
Symbol值通过Symbol函数生成。这就是说,对象的属性名现在可以有两种类型,一种是原来就有的字符串,另一种就是新增的Symbol类型。凡是属性名属于Symbol类型,就都是独一无二的,可以保证不会与其他属性名产生冲突。接受一个字符串作为参数,表示对Symbol实例的描述,主要是为了在控制台显示,或者转为字符串时,比较容易区分。
功能列表初版清单:
1.数据总览 2.企业号管理 3.私信消息 4.群聊管理 5.评论管理 6.留资客户 7.意向客户8.互动数据
9.文案素材库
主页会显示客户档案,商机线索,账号矩阵, 一些线索图,线索统计环形图,更直观的了解客户动态,包括地区等功能。
第一步要新增授权添加账号,第二步本视频下的所有客户进行,点击矩阵发布,选择平台发布账号,点击授权添加,绑定账号可在列表中查看,会显示账号名称,账号信息等内容。
核心功能
1.智能挖掘客户
不仅仅是用户直接留资,让每一个跟我们产生过交互的用户都能自动化触达,高效利用用户流量,不放弃任何可能的潜在意向客。
2.智能投放广告
针对互动客户,第一时间进行智能评论回复深触达,自定义设定广告文案素材推送
3.群营销运营
群营销,精准粉丝入群,群会话,可以进行群转化,产品推送,客户转化
4.多账号一键管理
添加授权账号,多个账号统一管理,精细化运作,意向客户深触达
Part3: When is use Dependency injection
eg: 以用户调用 API 层打印日志来说明
- LoggerService被ApiService和UserService所依赖
- ApiService被UserService所依赖
}
}
if ($video_duration > 120) $this->displayJsonError('视频长度不建议超过2分钟');
if ($video_use < 3 || $video_use > 60) {
$this->displayJsonError('场景或组合数,需介于3-60');
}
$video_cfg = [
'title_font' => $title_font,
'title_size' => $title_size,
'title_color' => $title_color,
'title_position'=> $title_position,
'write_font' => $write_font,
'write_size' => $write_size,
'write_color' => $write_color,
'write_position'=> $write_position,
'select' => $select_type,
'vcn' => $vcn_on,
'yushu' => 50,
'yinliang' => 50,
'bgm' => $bgm,
'videobg' => $video_bg,
'bgcolor' => $color_list,
'sigma' => $sigma_val,
];
//主表数据
$updata = [
'dv_title' => $video_name,
'dv_video_mode' => $video_mixed,
'dv_video_layout' => $video_layout,
'dv_video_shot' => $video_shot,
'dv_video_count'=> $video_count,
'dv_video_use' => $video_use,
'dv_video_duration' => $video_duration,
'dv_video_open' => 0, //随机视频开幕
'dv_video_transition' => $video_transition,
'dv_video_filter' => $video_filter,
'dv_video_effect' => $video_effect,
'dv_de_id' => $select_type,//字幕配音形式
'dv_use_only' => $use_only,
'dv_use_platform' => json_encode($platform_list),
];if (empty($dv_id)) {//新增
$indata = [
'dv_s_id' => $this->sid,
'dv_platform' => json_encode($video_cfg),
'dv_create_time'=> time(),
];
$indata = array_merge($updata, $indata);
$ret = $video_model->insertValue($indata);
} else {//编辑
$video_item = $video_model->getRowByIdSid($dv_id, $this->sid);
if (empty($video_item)) {
$this->displayJsonError('参数错误');
}
$curr_platform = json_decode($video_item['dv_platform'], 1);
$curr_platform = is_null($curr_platform) ? [] : $curr_platform;
$updata['dv_platform'] = json_encode(array_merge($curr_platform, $video_cfg));
$ret = $video_model->updateById($updata, $dv_id);
//切换模式或更改场景组合数,则需要重新生成组合
if($video_item['dv_video_mode'] != $video_mixed || $video_item['dv_video_use'] != $video_use){
//清空素材排列组合及缓存视频
$VideoMaterialPailie_model = new App_Model_Douyin_MysqlVideoMaterialPailieStorage();
$VideoMaterialPailie_model->clearPailie($dv_id);
//清除素材
$video_meta_model = new App_Model_Douyin_MysqlVideoMaterialStorage();
$vm_where = [
['name' => 'dvm_ds_id', 'oper' => '=', 'value' => $this->sid],
['name' => 'dvm_dv_id', 'oper' => '=', 'value' => $dv_id],
];
$video_meta_list = $video_meta_model->getList($vm_where, 0, 0);
foreach ($video_meta_list as $item) {
//新旧模式相同,并且视频对应场景不大于新的场景数
if ($item['dvm_video_mixed_mode'] == $video_mixed && $item['dvm_scene'] <= $video_use) {
continue;
//与新模式不同,则清除
}
//场景顺序组合,减少了场景数
/*
Proxy 与 Reflect 是 ES6 为了操作对象引入的 API,Reflect 的 API 和 Proxy 的 API 一一对应,并且可以函数式的实现一些对象操作。 另外,使用 reflect-metadata 可以让 Reflect 支持元编程
类型获取
- 类型元数据:design:type
- 参数类型元数据:design:paramtypes
- 函数返回值类型元数据:design:returntype