交接文档--黄宽宽
交接文档--(黄宽宽 to 王常春)
麻烦请先熟悉后台审核部分,再熟悉百科相关业务代码,接着是手动执行的脚本,自启脚本优先级可以放最后(除数据统计相关的脚本)。
自启脚本部分(php代码配置了crontab自动执行,Python配置了supervisorctl自动执行,以下列出的都是配置项)
获取新闻脚本
0 5 * * * /usr/local/bin/php /home/www/web-php/app-job/run.php Bin_Shuidi_HotCompanyNews >> /tmp/Bin_Shuidi_HotCompanyNews.log
获取最新新注册公司脚本
0 3 * * * /usr/local/bin/php /home/www/web-php/app-job/run.php Bin_Shuidi_GetLastEstablishCompany >> /tmp/Bin_Shuidi_GetLastEstablishCompany.log
每天跑一次公司名变更脚本,调用360接口
0 0 * * * /usr/local/bin/php /home/www/web-php/app-job/run.php Bin_Shuidi_FindCompanyChange >> /tmp/wikicompanynamechange.log
每天零点跑一次百科信息填写完整度统计脚本
0 0 * * * /usr/local/bin/php /home/www/web-php/app-job/run.php Bin_Wiki_AnalysisWikiData >> /tmp/wikianalysisdata.log
每天一点跑一次百科信息填写完整度统计脚本入数据库
0 1 * * * /usr/local/bin/php /home/www/web-php/app-job/run.php Bin_Wiki_AnalysisWikiDataAdmin >> /tmp/wikiadminanalysisdata.log
每天三点跑一次统计百科填写信息代理商合格率的脚本
0 3 * * * /usr/local/bin/php /home/www/web-php/app-job/run.php Bin_Wiki_AnalysisWikiDataAdminCount >> /tmp/wikiadmincountdata.log
计算redis中统计的百科外链数据,导入到mysql中
0 1 * * * /usr/local/bin/php /home/www/web-php/app-job/run.php Bin_Wiki_OpenLinkAnalysis >> /tmp/wikiopenlinkcount.log
百科外链导出脚本 每周五凌晨自动将mysql中的外链数据导出到百科公开目录
0 1 * * 5 /usr/local/bin/php /home/www/web-php/app-job/run.php Bin_Wiki_ExportOpenlinkData >> /tmp/wikiopenlinkexport.log
百科通知360客户生效
[program:freshnoti]
command=python -u /home/www/pypingan/fresh_noti_wiki.py
redirect_stderr=true
stdout_logfile=/tmp/freshNotiWiki360.log
水滴信用报告
[program:report]
command=python -u /home/www/pypingan/shuidi_report.py
redirect_stderr=true
stdout_logfile=/tmp/report.log
手动执行脚本部分
哥伦布线索
哥伦布线索主要是360或者渠道方给一批“脏数据”,数据格式可能是Excel、txt、csv等等,总之不论什么格式,在数据中至少需要给一个“公司名”维度,到我们自己的mongo库中查找该公司是否存在,若存在,查找对应的工商信息(经营状态是否是正常营业),若状态正常,根据指定的维度在我们的库中收集数据,并按指定的维度顺序导出(ps:要根据对应的城市找到负责该城市的代理商)。
需求文档参考地址:http://pm.pingansec.com/index.php?m=project&f=view&project=121
执行脚本带上三个参数,分别是文件名(路径),数据来源,标识符(用于和其他文件进行区分,确保每次执行时的标识符唯一)
php run.php Bin_Wiki_ColumbusDataWash file from flag
新审核后台
审核涉及到的表:
大任务表 tb_audit_task_wiki_content
小任务表 tb_audit_child_task_wiki_content
任务日志表 tb_audit_log_wiki_content
每一步审核操作都会记录对应的日志。
任务审核上传截图表 tb_audit_log_wiki_img
目前只有资质核验用到了截图上传。
审核逻辑:
当个人中心用户添加对应的数据时,会分配对应的任务。在项目中全局搜索代码(快捷键ctrl+shift+f)$bll_task_assign = new \Wiki\WikiAdminTask()
就能找到对应的逻辑。调用task_assign()
和del_task()
方法,分别是用户增改数据时分配任务和删除数据时删除任务。所有需要待审的数据进行修改操作或者删除操作都会调用该方法。
后台审核快速上手操作思路:
每种需要审核的数据都要先在大任务表和小任务表的bll里设置相应的type,然后调用接口的时候或要求填写对应的大任务type和小任务type这样将任务和数据进行绑定。
$bll_big_task = new \Bll\Wiki\AuditTaskContent();
$bll_small_task = new \Bll\Wiki\AuditChildTaskContent();
审核后台修改优化建议
因为任务表是通过digest
和相关公司进行关联的,如果当待审的主体不再是公司,而是用户,可以在company_name_digest
字段中填写对应的user_id
,同理,也是要在bll
中配置相关的type
类型,目前大任务表只有两种type
类型在启用,分别是一般内容审核的const TYPE_GENERAL = 1
和资质类内容审核const TYPE_QUALIFY = 6
,虽然大任务bll
中还设置了其他的类型,但都因需求变更而废弃,后期优化可以删除,但具体的type数值不要改变,以免影响线上数据。
教育版(本次上线)
办学特色表tb_education_character
校长表tb_education_rector
教师表tb_education_teacher
另外对百科自定义表进行了如下修改,以便实现根据title聚合数据模块的功能。
ALTER TABLE `tb_company_wiki_content` ADD `title` VARCHAR(255) NULL DEFAULT '' AFTER `tab_id`;
ALTER TABLE `tb_company_wiki_content` ADD `title_tmp` VARCHAR(255) NULL DEFAULT '' COMMENT '临时待审的title' AFTER `title`;
ALTER TABLE `tb_company_wiki_content` ADD `title_status` TINYINT(1) NOT NULL DEFAULT '1' COMMENT 'title的状态' AFTER `title_tmp`;
ALTER TABLE `tb_company_wiki_content` ADD `title_msg` VARCHAR(2000) NULL DEFAULT '' COMMENT 'title审核信息' AFTER `title_status`;
医疗版(未上线,但代码已实现,在本次上线的教育版分支中,因为教育版需要用到之前医疗版开发的部分功能,比如弹窗、提单等等。)
医生表tb_hospital_doctor
弹窗图表tb_hospital_popup_diagram
预约时间表tb_hospital_register_time
百科外链
控制器在app-wiki
下的TrustedLink.php
对应的表tb_open_link_analysis
百科相关补充
-
百科相关的数据表都在
wiki
库(几张无法迁移的表除外,eg:百科会员表tb_wiki_vip
,百科提单表tb_admin_for_wiki
等) -
百科自定义内容的页面标题(可拖动排序的tab页面),在老后台审核通过后,该标题下的内容才会在前台详情页显示。(前台详情页显示逻辑,tab审核通过、对应内容也审核通过)
-
所有需要审核的数据表,对应审核的字段都有一个
_tmp
后缀,例如wiki
库的tb_company_wiki_content
表,title
字段是正式的标题字段(储存审核通过的标题),title_tmp
字段是待审的标题字段(储存待审的标题)。各表对应的审核状态可在对应的bll中查看。 -
进入百科详情页,现有的判定逻辑(先检测是否在黑名单列表,是否在配置文件中(黑名单公司或医疗机构),公司名中是否含有医疗机构关键词),符合以上判定,就会跳转到水滴对应的详情页。
360统计数据类逻辑
百科用户编辑信息统计
这里有两种统计方式,一种是将统计数据导入到Excel,另一种是将统计数据导入到MySQL再到百科后台进行分析显示。
-
导入到EXCEL的脚本 每天0点自动执行,统计前一天的数据
/home/www/web-php/app-job/wiki/AnalysisWikiData.php
-
导入到MySQL的脚本 每天1点自动执行,统计前一天的数据,等价于那个入库Excel的,但多附加了数据,比如审核未通过的原因
/home/www/web-php/app-job/wiki/AnalysisWikiDataAdmin.php
-
每天3点自动执行,在第2个脚本的基础上进行计算合格率
/home/www/web-php/app-job/wiki/AnalysisWikiDataAdminCount.php
详细文档需求在http://pm.pingansec.com/index.php?m=doc&f=view&docID=68
百科外链pv/uv统计
当用户将我们百科提供的外链js代码部署到自己的网站时,当该网站被访问时,会加载该js代码,也就访问到了我们的控制器/home/www/web-php/app-wiki/controller/wiki/TrustedLink.php
,该控制器每次被加载都会往redis里赛数据,到了凌晨,会启动脚本将redis里的数据取出来进行统计,并清空redis里对应的key和value。
脚本计算redis中统计的百科外链数据/home/www/web-php/app-job/OpenLinkAnalysis.php
,导入到mysql中
百科外链导出/home/www/web-php/app-job/ExportOpenlinkData.php
,每周五凌晨自动将mysql中的外链数据导出到百科公开目录
新审核后台补充
一般内容审核
企业网址(tb_biz_company_base_info_website
)
企业logo(tb_biz_company_base_info_logo
)
企业公告(tb_biz_company_base_info_notice
)
企业简介(tb_company_wiki_info
)
自定义内容(tb_company_wiki_content
),自定义内容有多种数据类型也就是该表的content_type
字段,在该表的bll文件app-core/class/bll/shuidi/CompanyWikiContent.php
中有如下定义:
# 内容类型 content_type
const TYPE_WORDS = 1; # 文字类型
const TYPE_PIC_SINGLE = 2; # 单图类型
const TYPE_PIC_MULTI = 3; # 多图类型
const TYPE_PIC_WALL = 4; # 图片墙类型
const TYPE_VIDEO = 5; # 视频类型
const TYPE_HOSPITAL_BANNER = 6; # 轮播图类型(医疗版功能)
const TYPE_HOSPITAL_CV = 7; # 医护人员介绍(医疗版功能)
const TYPE_HOSPITAL_ALBUM = 8; # 相册类型(医疗版功能)
const TYPE_EDUCATION_COURSE = 9; # 推荐课程(教育版功能)
const TYPE_WIKI_EDUCATION_TEACHER = 10; # 推荐教师(教育版功能)
资质核验(tb_qulification
该块内容如有疑问请向姚坤咨询)
弹窗图(tb_hospital_popup_diagram
)
根据title聚合的自定义内容(需要审核的title名,也就是module_name,也就是tb_company_wiki_content
中的title作为前缀的字段)
办学特色的标签(tb_education_character
)
资质类内容审核
校长信息(tb_education_rector
)
教师信息(tb_education_teacher
)
医生信息(tb_hospital_doctor
)
教育版详情页(to 前端)
相比之前的详情页,新增如下内容:
办学特色$tag_info
(每家企业有多条,需要进行循环,先判定$tag_info['content']
是否有值,有就代表有通过审核的线上数据,即可显示。)
弹窗$diagram_info
(每家企业只有一条,先判定$diagram_info['img_path']
是否有值,有就代表有通过审核的线上数据,可以将不带_tmp
后缀的数据显示出来)
教师$teacher_info
(每家企业有多条,需要进行循环,先判定$teacher_info['content']
是否有值,有就代表有通过审核的线上数据,即可显示。)
校长$rector_info
(每家企业只有一条,先判定$recotor_info['content']
是否有值,有就代表有通过审核的线上数据,可以将不带_tmp
后缀的数据显示出来)。
其他的信息填写可以参照之前的前端代码。
电脑密码
Linux密码:Kuan12!@#
Mac mini密码:huang1020