123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755 |
- CREATE TABLE ts_consultant_kpi(
- `serial_no` INT NOT NULL AUTO_INCREMENT COMMENT '序号' ,
- `statis_date` VARCHAR(32) COMMENT '统计日期 格式YYYYMMDD' ,
- `org_id` INT COMMENT '公司id' ,
- `building_id` VARCHAR(64) COMMENT '楼盘id' ,
- `building_name` VARCHAR(1024) COMMENT '楼盘名称' ,
- `user_id` INT COMMENT '置业顾问ID' ,
- `user_name` VARCHAR(128) COMMENT '置业顾问名称' ,
- `phone` VARCHAR(32) COMMENT '置业顾问电话' ,
- `new_persons` INT COMMENT '新增客户' ,
- `share_num` INT COMMENT '分享次数' ,
- `visit_persons` INT COMMENT '分享访问人数' ,
- `visit_num` INT COMMENT '分享访问次数' ,
- `share_persons` INT COMMENT '分享拓客' ,
- `home_page_persons` INT COMMENT '主页访问人数' ,
- `home_page_nums` INT COMMENT '主页访问次数' ,
- `chat_persons` INT COMMENT '咨询数' ,
- `favor_num` INT COMMENT '点赞数' ,
- PRIMARY KEY (serial_no)
- ) COMMENT = '置业顾问KPI ';;
-
- ALTER TABLE ts_consultant_kpi ADD INDEX idx_sts_consultant_date(statis_date);;
- ALTER TABLE ts_consultant_kpi ADD INDEX idx_sts_consultant_org(org_id,building_id,statis_date);;
-
- CREATE TABLE ts_activity_daily(
- `serial_no` INT NOT NULL AUTO_INCREMENT COMMENT '序号' ,
- `statis_date` VARCHAR(32) COMMENT '统计时间' ,
- `org_id` INT COMMENT '公司id' ,
- `building_id` VARCHAR(64) COMMENT '楼盘id' ,
- `building_name` VARCHAR(1024) COMMENT '楼盘名称' ,
- `target_type` VARCHAR(32) COMMENT '活动类型' ,
- `target_id` VARCHAR(64) COMMENT '活动ID' ,
- `target_name` VARCHAR(1024) COMMENT '活动名称' ,
- `share_num` INT COMMENT '分享次数' ,
- `share_persons` INT COMMENT '分享人数' ,
- `visit_num` INT COMMENT '访问次数' ,
- `visit_persons` INT COMMENT '访问人数' ,
- `new_persons` INT COMMENT '新增用户' ,
- `new_customers` INT COMMENT '新增客户' ,
- PRIMARY KEY (serial_no)
- ) COMMENT = '活动统计 ';;
-
- ALTER TABLE ts_activity_daily ADD INDEX sts_activity_org(org_id);;
-
-
- CREATE TABLE ta_customer_from(
- `serial_no` INT NOT NULL AUTO_INCREMENT COMMENT '序号' ,
- `person_id` VARCHAR(32) COMMENT '用户ID' ,
- `customer_id` VARCHAR(32) COMMENT '客户ID' ,
- `person_name` VARCHAR(128) COMMENT '用户名' ,
- `target_type` VARCHAR(32) COMMENT '目标类型' ,
- `target_id` VARCHAR(64) COMMENT '目标ID' ,
- `target_name` VARCHAR(128) COMMENT '目标名称' ,
- `org_id` INT COMMENT '公司id' ,
- `building_id` VARCHAR(64) COMMENT '楼盘id' ,
- `building_name` VARCHAR(128) COMMENT '楼盘名称' ,
- `share_person_id` VARCHAR(64) COMMENT '分享人ID' ,
- `share_person_name` VARCHAR(128) COMMENT '分享人名称' ,
- `scene_id` VARCHAR(32) COMMENT '场景ID' ,
- `is_org_first` TINYINT(1) COMMENT '首次进入小程序' ,
- `is_project_first` TINYINT(1) COMMENT '首次进入项目' ,
- `create_date` DATETIME COMMENT '创建时间' ,
- `remark` VARCHAR(512) COMMENT '备注' ,
- PRIMARY KEY (serial_no)
- ) COMMENT = '客户来源 ';;
-
- ALTER TABLE ta_customer_from ADD INDEX idx_customer_from_org(org_id);;
- ALTER TABLE ta_customer_from ADD INDEX idx_cusromer_from_project(org_id,building_id);;
-
-
- ALTER TABLE `ta_person_building`
- ADD INDEX `idx_building_user`(`building_id`, `user_id`),
- ADD INDEX `idx_building_only_user`(`user_id`);
-
- ALTER TABLE `ta_share_count`
- ADD INDEX `idx_share_cout_person`(`person_id`);
-
- ALTER TABLE `ta_favor`
- ADD INDEX `idx_favor_target`(`be_favor`, `tagert_type`);
-
- ALTER TABLE `ta_chat`
- ADD INDEX `idx_chat_send`(`send_person`),
- ADD INDEX `idx_char_receive`(`receive_person`);
-
- ALTER TABLE `ta_person_visit_record`
- ADD INDEX `idx_event_target`(`org_id`, `event_type`, `target_id`, `visit_time`);
-
- ALTER TABLE `ta_recommend_customer`
- ADD INDEX `idx_consultant_sts`(`org_id`, `realty_consultant`, `create_date`);
-
- ALTER TABLE `ta_share_person_from`
- ADD COLUMN `target_name` varchar(1024) NULL COMMENT '目标名称' AFTER `is_first_time`;
-
- ALTER TABLE `ta_share_count`
- ADD COLUMN `target_name` varchar(1024) NULL COMMENT '对象名称' AFTER `create_date`;
-
- ALTER TABLE `ta_share_count`
- ADD COLUMN `org_id` int NULL COMMENT '组织ID' AFTER `target_name`;
- ALTER TABLE `ta_share_count`
- ADD INDEX `idx_share_cout_org`(`org_id`);
-
- --
- INSERT INTO `td_biz_event_type`(`type_id`, `type_name`, `status`, `create_date`, `parent_type_id`) VALUES ('other', '其他', 1, '2020-04-27 15:57:10', NULL);
-
-
- -- 菜单数据
- update sys_menu t
- set t.`status` = -1
- where t.`menu_id` = 85;
-
- delete from ta_role_menu where menu_id = 85;
-
- INSERT INTO `sys_menu`(`menu_id`, `code`, `name`, `parent_code`, `icon`, `app_type`, `status`, `menu_root`, `sort_num`)
- VALUES (110, '/statistical', '数据统计', '-1', NULL, 'estateagent-admin', 1, 110, 2);
- INSERT INTO `sys_menu`(`menu_id`, `code`, `name`, `parent_code`, `icon`, `app_type`, `status`, `menu_root`, `sort_num`)
- VALUES (111, '/statistical/monitor', '数据报表', '110', NULL, 'estateagent-admin', 1, 110, 1);
- INSERT INTO `sys_menu`(`menu_id`, `code`, `name`, `parent_code`, `icon`, `app_type`, `status`, `menu_root`, `sort_num`)
- VALUES (112, '/statistical/activity', '活动统计', '110', NULL, 'estateagent-admin', 1, 110, 2);
- INSERT INTO `sys_menu`(`menu_id`, `code`, `name`, `parent_code`, `icon`, `app_type`, `status`, `menu_root`, `sort_num`)
- VALUES (113, '/statistical/consultant', '置业顾问KPI', '110', NULL, 'estateagent-admin', 1, 110, 4);
- INSERT INTO `sys_menu`(`menu_id`, `code`, `name`, `parent_code`, `icon`, `app_type`, `status`, `menu_root`, `sort_num`)
- VALUES (114, '/statistical/building', '项目统计', '110', NULL, 'estateagent-admin', 1, 110, 3);
-
- INSERT ta_role_menu ( role_id, menu_id )
- SELECT s.role_id, 110
- FROM ta_user t
- LEFT JOIN ta_user_role s ON t.user_id = s.user_id
- WHERE
- t.is_admin = 1
- AND s.role_id IS NOT NULL
- GROUP BY
- s.role_id;
-
- INSERT ta_role_menu ( role_id, menu_id )
- SELECT s.role_id, 111
- FROM ta_user t
- LEFT JOIN ta_user_role s ON t.user_id = s.user_id
- WHERE
- t.is_admin = 1
- AND s.role_id IS NOT NULL
- GROUP BY
- s.role_id;
-
- INSERT ta_role_menu ( role_id, menu_id )
- SELECT s.role_id, 112
- FROM ta_user t
- LEFT JOIN ta_user_role s ON t.user_id = s.user_id
- WHERE
- t.is_admin = 1
- AND s.role_id IS NOT NULL
- GROUP BY
- s.role_id;
-
- INSERT ta_role_menu ( role_id, menu_id )
- SELECT s.role_id, 113
- FROM ta_user t
- LEFT JOIN ta_user_role s ON t.user_id = s.user_id
- WHERE
- t.is_admin = 1
- AND s.role_id IS NOT NULL
- GROUP BY
- s.role_id;
-
- INSERT ta_role_menu ( role_id, menu_id )
- SELECT s.role_id, 114
- FROM ta_user t
- LEFT JOIN ta_user_role s ON t.user_id = s.user_id
- WHERE
- t.is_admin = 1
- AND s.role_id IS NOT NULL
- GROUP BY
- s.role_id;
-
-
- -- 菜单按钮
- INSERT INTO `sys_button_in_menu`(`btn_id`, `menu_id`, `name`, `status`, `code`, `remark`)
- VALUES (212, 114, '导出', 1, 'admin.statistical.building.export', NULL);
- INSERT INTO `sys_button_in_menu`(`btn_id`, `menu_id`, `name`, `status`, `code`, `remark`)
- VALUES (213, 112, '导出', 1, 'admin.statistical.activity.export', NULL);
- INSERT INTO `sys_button_in_menu`(`btn_id`, `menu_id`, `name`, `status`, `code`, `remark`)
- VALUES (214, 113, '导出', 1, 'admin.statistical.consultant.export', NULL);
-
-
- INSERT ta_role_button ( role_id, btn_id )
- SELECT s.role_id, 212
- FROM ta_user t
- LEFT JOIN ta_user_role s ON t.user_id = s.user_id
- WHERE
- t.is_admin = 1
- AND s.role_id IS NOT NULL
- GROUP BY
- s.role_id;
-
- INSERT ta_role_button ( role_id, btn_id )
- SELECT s.role_id, 213
- FROM ta_user t
- LEFT JOIN ta_user_role s ON t.user_id = s.user_id
- WHERE
- t.is_admin = 1
- AND s.role_id IS NOT NULL
- GROUP BY
- s.role_id;
-
- INSERT ta_role_button ( role_id, btn_id )
- SELECT s.role_id, 214
- FROM ta_user t
- LEFT JOIN ta_user_role s ON t.user_id = s.user_id
- WHERE
- t.is_admin = 1
- AND s.role_id IS NOT NULL
- GROUP BY
- s.role_id;
-
- INSERT ta_role_button ( role_id, btn_id )
- SELECT s.role_id, 215
- FROM ta_user t
- LEFT JOIN ta_user_role s ON t.user_id = s.user_id
- WHERE
- t.is_admin = 1
- AND s.role_id IS NOT NULL
- GROUP BY
- s.role_id;
-
- INSERT ta_role_button ( role_id, btn_id )
- SELECT s.role_id, 216
- FROM ta_user t
- LEFT JOIN ta_user_role s ON t.user_id = s.user_id
- WHERE
- t.is_admin = 1
- AND s.role_id IS NOT NULL
- GROUP BY
- s.role_id;
-
- INSERT ta_role_button ( role_id, btn_id )
- SELECT s.role_id, 217
- FROM ta_user t
- LEFT JOIN ta_user_role s ON t.user_id = s.user_id
- WHERE
- t.is_admin = 1
- AND s.role_id IS NOT NULL
- GROUP BY
- s.role_id;
-
-
- -- 置业KPI日统计
- delimiter $$
- CREATE PROCEDURE `pro_consultant_kpi`(IN `st_date` varchar(32))
- BEGIN
-
- DECLARE day_start datetime;
- DECLARE day_end datetime;
-
- SET day_start = STR_TO_DATE(st_date, '%Y%m%d');
- SET day_end = STR_TO_DATE(concat(st_date, '235959'), '%Y%m%d%H%i%s');
-
-
- -- 先删除当天的
- delete from ts_consultant_kpi where statis_date = st_date;
-
- -- 重新插入
- insert into ts_consultant_kpi (
- statis_date,
- org_id,
- building_id,
- building_name,
- user_id,
- user_name,
- phone,
- new_persons,
- share_num,
- visit_persons,
- visit_num,
- share_persons,
- home_page_persons,
- home_page_nums,
- chat_persons,
- favor_num
- )
- select
- st_date as statis_date,
- t.org_id,
- s.building_id,
- n.building_name,
- t.user_id,
- t.user_name,
- t.phone,
-
- -- 新增客户的时间字段不正确
- -- 可能错误: create_date 是之前的时间, 但是最近才分配置业的情况统计不到
- (select count(*) from ta_recommend_customer a
- where a.org_id = t.org_id
- and (a.realty_consultant = concat(t.user_id, '') or a.realty_consultant = m.person_id)
- and a.create_date BETWEEN day_start and day_end
- and a.building_id = s.building_id
- and a.status > 0
- ) as new_persons,
-
- -- 分享次数
- -- 不区分项目
- (select count(*) as share_num from ta_share_count b
- where b.person_id = m.person_id
- and b.create_date BETWEEN day_start and day_end
- and (
- b.tagert_type IN ( 'consultant', 'project', 'activity', 'group', 'h5', 'help', 'news', 'main' )
- OR b.tagert_type like 'house%'
- OR b.tagert_type like 'live%'
- )
- ) as share_num,
-
- -- 分享访问人数
- (select count(DISTINCT c.person_id) from ta_share_person_from c
- where c.org_id = t.org_id
- and c.share_person = concat(t.user_id, '')
- and (
- c.target_type IN ( 'card_share', 'building_share', 'dynamic_share', 'group_share', 'h5_share', 'help_share', 'house_share', 'live_share', 'news_share', 'poster' )
- or ( c.target_type = 'share' and c.target_id = 'index' )
- )
- and (c.building_id is null or c.building_id = s.building_id)
- and c.create_date BETWEEN day_start and day_end
- ) as visit_persons,
-
- -- 分享访问次数
- (select count(*) from ta_share_person_from d
- where d.org_id = t.org_id
- and d.share_person = concat(t.user_id, '')
- and (
- d.target_type IN ( 'card_share', 'building_share', 'dynamic_share', 'group_share', 'h5_share', 'help_share', 'house_share', 'live_share', 'news_share', 'poster' )
- or ( d.target_type = 'share' and d.target_id = 'index' )
- )
- and (d.building_id is null or d.building_id = s.building_id)
- and d.create_date BETWEEN day_start and day_end
- ) as visit_num,
-
- -- 分享拓客
- (select count(DISTINCT e.person_id) from ta_customer_from e
- where e.org_id = t.org_id
- and e.building_id = s.building_id
- and e.share_person_id = m.person_id
- and e.target_type is not null
- and e.is_project_first = 1
- ) as share_persons,
-
- -- 主页访问人数
- (select count(DISTINCT f.person_id) from ta_person_visit_record f
- where f.org_id = t.org_id
- and f.building_id = s.building_id
- and f.event_type = 'card'
- and f.target_id = m.person_id
- and f.visit_time BETWEEN day_start and day_end
- ) as home_page_persons,
-
- -- 主页访问次数
- (select count(*) from ta_person_visit_record g
- where g.org_id = t.org_id
- and g.building_id = s.building_id
- and g.event_type = 'card'
- and g.target_id = m.person_id
- and g.visit_time BETWEEN day_start and day_end
- ) as home_page_nums,
-
- -- 咨询数
- -- 不区分项目
- (select count(DISTINCT h.send_person) from ta_chat h
- where h.receive_person = m.person_id
- and h.create_date BETWEEN day_start and day_end
- ) as chat_persons,
-
- -- 点赞数
- -- 不区分项目
- (select count(*) from ta_favor i
- where i.be_favor = m.person_id
- and i.tagert_type = 'consultant'
- and i.create_date BETWEEN day_start and day_end
- ) as favor_num
-
- from ta_user t
- left join ta_person_building s on t.user_id = s.user_id
- left join ta_person m on t.org_id = m.org_id and t.user_id = m.user_id and m.status = 1
- left join ta_building n on n.building_id = s.building_id
- where t.is_consultant = 1;
-
- END$$
-
-
- delimiter $$
- CREATE PROCEDURE `pro_update_share_target_name`()
- BEGIN
-
- -- 分享项目
- UPDATE ta_share_person_from t
- INNER JOIN ta_building s ON s.building_id = t.target_id
- SET t.target_name = s.building_name
- WHERE t.target_type = 'building_share'
- AND t.target_name is null;
-
- UPDATE ta_share_count t
- INNER JOIN ta_building s ON s.building_id = t.be_share
- SET t.target_name = s.building_name,
- t.org_id = s.org_id
- WHERE t.tagert_type = 'project'
- AND t.target_name is null;
-
- -- 普通活动
- UPDATE ta_share_person_from t
- INNER JOIN ta_building_dynamic s ON s.dynamic_id = t.target_id
- SET t.target_name = s.title
- WHERE t.target_type = 'dynamic_share'
- AND t.target_name is null;
-
- UPDATE ta_share_count t
- INNER JOIN ta_building_dynamic s ON s.dynamic_id = t.be_share
- SET t.target_name = s.title,
- t.org_id = s.org_id
- WHERE t.tagert_type = 'activity'
- AND t.target_name is null;
-
- -- 助力活动
- UPDATE ta_share_person_from t
- INNER JOIN ta_help_activity s ON s.help_activity_id = t.target_id
- SET t.target_name = s.title,
- t.org_id = s.org_id
- WHERE t.target_type = 'help_share'
- AND t.target_name is null;
-
- UPDATE ta_share_count t
- INNER JOIN ta_help_activity s ON s.help_activity_id = t.be_share
- SET t.target_name = s.title
- WHERE t.tagert_type = 'help'
- AND t.target_name is null;
-
- -- 拼团活动
- UPDATE ta_share_person_from t
- INNER JOIN ta_share_activity s ON s.group_activity_id = t.target_id
- SET t.target_name = s.activity_name
- WHERE t.target_type = 'group_share'
- AND t.target_name is null;
-
- UPDATE ta_share_count t
- INNER JOIN ta_share_activity s ON s.group_activity_id = t.be_share
- SET t.target_name = s.activity_name,
- t.org_id = s.org_id
- WHERE t.tagert_type = 'group'
- AND t.target_name is null;
-
- -- H5 活动
- UPDATE ta_share_person_from t
- INNER JOIN ta_drainage s ON s.drainage_id = t.target_id
- SET t.target_name = s.`name`
- WHERE t.target_type = 'h5_share'
- AND t.target_name is null;
-
- UPDATE ta_share_count t
- INNER JOIN ta_drainage s ON s.drainage_id = t.be_share
- SET t.target_name = s.`name`,
- t.org_id = s.org_id
- WHERE t.tagert_type = 'h5'
- AND t.target_name is null;
-
- -- 资讯
- UPDATE ta_share_person_from t
- INNER JOIN ta_news s ON s.news_id = t.target_id
- SET t.target_name = s.news_name
- WHERE t.target_type = 'news_share'
- AND t.target_name is null;
-
- UPDATE ta_share_count t
- INNER JOIN ta_news s ON s.news_id = t.be_share
- SET t.target_name = s.news_name,
- t.org_id = s.org_id
- WHERE t.tagert_type = 'news'
- AND t.target_name is null;
-
- -- 直播活动
- UPDATE ta_share_person_from t
- INNER JOIN ta_live_activity s ON s.live_activity_id = t.target_id
- SET t.target_name = s.live_activity_title
- WHERE t.target_type = 'live_share'
- AND t.target_name is null;
-
- UPDATE ta_share_count t
- INNER JOIN ta_live_activity s ON s.live_activity_id = t.be_share
- SET t.target_name = s.live_activity_title,
- t.org_id = s.org_id
- WHERE t.tagert_type like 'live%'
- AND t.target_name is null;
-
- -- 房源列表
- UPDATE ta_share_person_from t
- INNER JOIN ta_sales_batch s ON s.sales_batch_id = t.target_id
- INNER JOIN ta_building m on m.building_id = s.building_id
- SET t.target_name = m.building_name
- WHERE t.target_type = 'house_share'
- AND t.target_name is null;
-
- UPDATE ta_share_count t
- INNER JOIN ta_sales_batch s ON s.sales_batch_id = t.be_share
- INNER JOIN ta_building m on m.building_id = s.building_id
- SET t.target_name = m.building_name,
- t.org_id = s.org_id
- WHERE t.tagert_type like 'house%'
- AND t.target_name is null;
-
-
- -- 更新 org
- UPDATE ta_share_count t
- INNER JOIN ta_person s ON s.person_id = t.be_share
- SET t.org_id = s.org_id
- WHERE t.tagert_type = 'consultant'
- AND t.org_id is null;
-
- END$$
-
- delimiter $$
- CREATE PROCEDURE `pro_activity_daily`(IN `st_date` varchar(32))
- BEGIN
- DECLARE day_start datetime;
- DECLARE day_end datetime;
-
- SET day_start = STR_TO_DATE(st_date, '%Y-%m-%d');
- SET day_end = STR_TO_DATE(concat(st_date, ' 235959'), '%Y-%m-%d %H%i%s');
-
-
- delete from ts_activity_daily where statis_date = st_date;
-
- insert into ts_activity_daily (
- `statis_date`,
- `org_id`,
- `building_id`,
- `building_name`,
- `target_type`,
- `target_id`,
- `target_name`,
- `share_persons`,
- `share_num`,
- `visit_persons`,
- `visit_num`,
- `new_persons`,
- `new_customers`
- )
-
- select
- st_date as statis_date,
- a.org_id,
- a.building_id,
- a.building_name,
- a.target_type,
- a.target_id,
- a.target_name,
-
- -- 活动分享人数
- (SELECT count(DISTINCT b.person_id) FROM ta_share_count b
- WHERE b.org_id = a.org_id
- AND b.tagert_type like concat(a.target_type,'%')
- AND b.be_share = a.target_id
- AND b.create_date BETWEEN day_start AND day_end
- ) as share_persons,
-
- -- 活动分享次数
- (SELECT count(*) FROM ta_share_count c
- WHERE c.org_id = a.org_id
- AND c.tagert_type like concat(a.target_type,'%')
- AND c.be_share = a.target_id
- AND c.create_date BETWEEN day_start AND day_end
- ) as share_num,
-
- -- 活动访问人数
- (select count( DISTINCT d.person_id ) from ta_person_visit_record d
- WHERE d.org_id = a.org_id
- AND if(d.target_type is null ,d.event_type = a.target_type, d.target_type = REPLACE(a.target_type, 'activity', 'dynamic'))
- AND d.target_id = a.target_id
- AND d.`event` = 'detail'
- AND d.visit_time BETWEEN day_start AND day_end
- ) as visit_persons,
-
- -- 活动访问次数
- (select count(*) from ta_person_visit_record e
- WHERE e.org_id = a.org_id
- AND if(e.target_type is null ,e.event_type = a.target_type, e.target_type = REPLACE(a.target_type, 'activity', 'dynamic'))
- AND e.target_id = a.target_id
- AND e.`event` = 'detail'
- AND e.visit_time BETWEEN day_start AND day_end
- ) as visit_num,
-
- -- 分享新增用户
- (select count(*) from ta_share_person_from f
- where f.org_id = a.org_id
- AND f.target_type = concat(REPLACE(a.target_type, 'activity', 'dynamic'), '_share')
- AND f.target_id = a.target_id
- AND f.`status` > 0
- AND f.create_date BETWEEN day_start AND day_end
- AND f.is_first_time = 1
- ) as new_persons,
-
- -- 分享新增客户
- (select count(*) from ta_customer_from g
- inner join ta_person h on h.person_id = g.person_id
- where g.org_id = a.org_id
- AND g.target_type = a.target_type
- AND g.target_id = a.target_id
- AND g.create_date BETWEEN day_start AND day_end
- AND g.is_org_first = 1
- ) as new_customers
-
- from (
- -- 增加时间的过滤, 是为了减少统计的数据量
- -- 如果统计的时候, 活动还没有创建, 那么活动不创建
- -- 主要是针对初始化数据
-
- -- 报名活动
- select t.org_id, t.building_id, s.building_name, t.dynamic_id as target_id, t.title as target_name, 'activity' as target_type, t.create_date from ta_building_dynamic t
- left join ta_building s on s.building_id = t.building_id
- where t.`status` > -1
- union all
-
- -- h5
- select t.org_id, t.building_id, s.building_name, t.drainage_id as target_id, t.`name` as target_name, 'h5' as target_type, t.create_date from ta_drainage t
- left join ta_building s on s.building_id = t.building_id
- where t.`status` > -1
- union all
-
- -- 助力
- select t.org_id, t.building_id, s.building_name, t.help_activity_id as target_id, t.title as target_name, 'help' as target_type, t.create_date from ta_help_activity t
- left join ta_building s on s.building_id = t.building_id
- where t.`status` > -1
- union all
-
- -- 拼团
- select t.org_id, t.building_id, s.building_name, t.group_activity_id as target_id, t.activity_name as target_name, 'group' as target_type, t.start_time as create_date from ta_share_activity t
- left join ta_building s on s.building_id = t.building_id
- where t.`status` > -1
- union all
-
- -- 直播
- select t.org_id, t.building_id, s.building_name, t.live_activity_id as target_id, t.live_activity_title as target_name, 'live' as target_type, t.create_date from ta_live_activity t
- left join ta_building s on s.building_id = t.building_id
- where t.`status` > -1
- ) a;
-
- END$$
-
- delimiter $$
- CREATE PROCEDURE `pro_init_activity_daily`(IN `days` int)
- BEGIN
- DECLARE inx int DEFAULT 1;
- DECLARE dt VARCHAR(10);
- DECLARE nw datetime DEFAULT now();
-
- while inx <= days do
- set dt = DATE_FORMAT(DATE_SUB(nw, INTERVAL inx DAY),"%Y-%m-%d");
-
- call pro_activity_daily(dt);
-
- set inx = inx + 1;
- end while;
- END$$
-
-
- CREATE EVENT `evt_update_share_target_name_2h`
- ON SCHEDULE
- EVERY 2 HOUR STARTS CURRENT_TIMESTAMP
- DO BEGIN
- CALL pro_update_share_target_name();
- END;
-
-
-
- -- 数据初始化脚本
- delimiter $$
- CREATE PROCEDURE `pro_init_consultant_kpi`(IN days int)
- BEGIN
- DECLARE inx int DEFAULT 1;
- DECLARE dt VARCHAR(10);
- DECLARE nw datetime DEFAULT now();
-
- while inx <= days do
- set dt = DATE_FORMAT(DATE_SUB(nw, INTERVAL inx DAY),"%Y%m%d");
-
- call pro_consultant_kpi(dt);
-
- set inx = inx + 1;
- end while;
- END$$
-
- -- 置业KPI统计每 4 小时执行一次
- CREATE EVENT `evt_consultant_kpi_daily`
- ON SCHEDULE
- EVERY 4 HOUR STARTS CURRENT_TIMESTAMP
- DO BEGIN
-
- call pro_consultant_kpi(DATE_FORMAT(now(),"%Y%m%d"));
-
- END;
-
- -- 活动统计每 4 小时执行一次
- CREATE EVENT `evt_activity_daily`
- ON SCHEDULE
- EVERY 4 HOUR STARTS CURRENT_TIMESTAMP
- DO BEGIN
-
- call pro_activity_daily(DATE_FORMAT(now(),"%Y-%m-%d"));
-
- END;
-
- ALTER TABLE td_live_dict ADD sort INT ( 11 );
-
- UPDATE td_live_dict
- SET sort = 6
- WHERE
- id = 1;
- UPDATE td_live_dict
- SET sort = 5
- WHERE
- id = 2;
- UPDATE td_live_dict
- SET sort = 4
- WHERE
- id = 3;
- UPDATE td_live_dict
- SET sort = 3
- WHERE
- id = 4;
- UPDATE td_live_dict
- SET sort = 2
- WHERE
- id = 5;
- UPDATE td_live_dict
- SET sort = 1
- WHERE
- id = 6;
-
- ALTER TABLE ta_share_person_from ADD INDEX idx_share_person_personId ( person_id );
- ALTER TABLE ta_person_from_record ADD INDEX idx_from_record_personId ( share_person_id );
- ALTER TABLE ta_extend_content ADD create_user INT ( 11 );
- ALTER TABLE ta_drainage ADD create_user INT ( 11 );
-
- INSERT INTO `td_report` ( `report_code`, `report_name`, `is_project`, `remark`, `status`, `create_date` )
- VALUES
- ( 'total_number_of_visit_users', '今日访问次数', NULL, NULL, 1, '2020-04-23 16:07:18' );
- INSERT INTO ta_building_report ( `report_code`, `create_date`, `org_id` ) SELECT
- 'total_number_of_visit_users',
- NOW( ),
- org_id
- FROM
- ta_miniapp;
-
- UPDATE ta_recommend_customer t
- LEFT JOIN ta_person p ON t.person_id = p.person_id
- SET t.sex = p.gender
- WHERE
- t.sex IS NULL;
-
-
-
-
-
|