Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
S
shuidi-product-change
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • Operations
    • Operations
    • Incidents
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • 互联网应用开发
  • shuidi-product-change
  • Issues
  • #281

Closed
Open
Created May 27, 2019 by 黄宽宽@huangkuankuanDeveloper

交接文档--黄宽宽

交接文档--(黄宽宽 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

百科相关补充

  1. 百科相关的数据表都在wiki库(几张无法迁移的表除外,eg:百科会员表tb_wiki_vip,百科提单表tb_admin_for_wiki等)

  2. 百科自定义内容的页面标题(可拖动排序的tab页面),在老后台审核通过后,该标题下的内容才会在前台详情页显示。(前台详情页显示逻辑,tab审核通过、对应内容也审核通过)

  3. 所有需要审核的数据表,对应审核的字段都有一个_tmp后缀,例如wiki库的tb_company_wiki_content表,title字段是正式的标题字段(储存审核通过的标题),title_tmp字段是待审的标题字段(储存待审的标题)。各表对应的审核状态可在对应的bll中查看。

  4. 进入百科详情页,现有的判定逻辑(先检测是否在黑名单列表,是否在配置文件中(黑名单公司或医疗机构),公司名中是否含有医疗机构关键词),符合以上判定,就会跳转到水滴对应的详情页。

360统计数据类逻辑

百科用户编辑信息统计

这里有两种统计方式,一种是将统计数据导入到Excel,另一种是将统计数据导入到MySQL再到百科后台进行分析显示。

  1. 导入到EXCEL的脚本 每天0点自动执行,统计前一天的数据/home/www/web-php/app-job/wiki/AnalysisWikiData.php

  2. 导入到MySQL的脚本 每天1点自动执行,统计前一天的数据,等价于那个入库Excel的,但多附加了数据,比如审核未通过的原因/home/www/web-php/app-job/wiki/AnalysisWikiDataAdmin.php

  3. 每天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

Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking