3.5.21升级.sql 23KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755
  1. CREATE TABLE ts_consultant_kpi(
  2. `serial_no` INT NOT NULL AUTO_INCREMENT COMMENT '序号' ,
  3. `statis_date` VARCHAR(32) COMMENT '统计日期 格式YYYYMMDD' ,
  4. `org_id` INT COMMENT '公司id' ,
  5. `building_id` VARCHAR(64) COMMENT '楼盘id' ,
  6. `building_name` VARCHAR(1024) COMMENT '楼盘名称' ,
  7. `user_id` INT COMMENT '置业顾问ID' ,
  8. `user_name` VARCHAR(128) COMMENT '置业顾问名称' ,
  9. `phone` VARCHAR(32) COMMENT '置业顾问电话' ,
  10. `new_persons` INT COMMENT '新增客户' ,
  11. `share_num` INT COMMENT '分享次数' ,
  12. `visit_persons` INT COMMENT '分享访问人数' ,
  13. `visit_num` INT COMMENT '分享访问次数' ,
  14. `share_persons` INT COMMENT '分享拓客' ,
  15. `home_page_persons` INT COMMENT '主页访问人数' ,
  16. `home_page_nums` INT COMMENT '主页访问次数' ,
  17. `chat_persons` INT COMMENT '咨询数' ,
  18. `favor_num` INT COMMENT '点赞数' ,
  19. PRIMARY KEY (serial_no)
  20. ) COMMENT = '置业顾问KPI ';;
  21. ALTER TABLE ts_consultant_kpi ADD INDEX idx_sts_consultant_date(statis_date);;
  22. ALTER TABLE ts_consultant_kpi ADD INDEX idx_sts_consultant_org(org_id,building_id,statis_date);;
  23. CREATE TABLE ts_activity_daily(
  24. `serial_no` INT NOT NULL AUTO_INCREMENT COMMENT '序号' ,
  25. `statis_date` VARCHAR(32) COMMENT '统计时间' ,
  26. `org_id` INT COMMENT '公司id' ,
  27. `building_id` VARCHAR(64) COMMENT '楼盘id' ,
  28. `building_name` VARCHAR(1024) COMMENT '楼盘名称' ,
  29. `target_type` VARCHAR(32) COMMENT '活动类型' ,
  30. `target_id` VARCHAR(64) COMMENT '活动ID' ,
  31. `target_name` VARCHAR(1024) COMMENT '活动名称' ,
  32. `share_num` INT COMMENT '分享次数' ,
  33. `share_persons` INT COMMENT '分享人数' ,
  34. `visit_num` INT COMMENT '访问次数' ,
  35. `visit_persons` INT COMMENT '访问人数' ,
  36. `new_persons` INT COMMENT '新增用户' ,
  37. `new_customers` INT COMMENT '新增客户' ,
  38. PRIMARY KEY (serial_no)
  39. ) COMMENT = '活动统计 ';;
  40. ALTER TABLE ts_activity_daily ADD INDEX sts_activity_org(org_id);;
  41. CREATE TABLE ta_customer_from(
  42. `serial_no` INT NOT NULL AUTO_INCREMENT COMMENT '序号' ,
  43. `person_id` VARCHAR(32) COMMENT '用户ID' ,
  44. `customer_id` VARCHAR(32) COMMENT '客户ID' ,
  45. `person_name` VARCHAR(128) COMMENT '用户名' ,
  46. `target_type` VARCHAR(32) COMMENT '目标类型' ,
  47. `target_id` VARCHAR(64) COMMENT '目标ID' ,
  48. `target_name` VARCHAR(128) COMMENT '目标名称' ,
  49. `org_id` INT COMMENT '公司id' ,
  50. `building_id` VARCHAR(64) COMMENT '楼盘id' ,
  51. `building_name` VARCHAR(128) COMMENT '楼盘名称' ,
  52. `share_person_id` VARCHAR(64) COMMENT '分享人ID' ,
  53. `share_person_name` VARCHAR(128) COMMENT '分享人名称' ,
  54. `scene_id` VARCHAR(32) COMMENT '场景ID' ,
  55. `is_org_first` TINYINT(1) COMMENT '首次进入小程序' ,
  56. `is_project_first` TINYINT(1) COMMENT '首次进入项目' ,
  57. `create_date` DATETIME COMMENT '创建时间' ,
  58. `remark` VARCHAR(512) COMMENT '备注' ,
  59. PRIMARY KEY (serial_no)
  60. ) COMMENT = '客户来源 ';;
  61. ALTER TABLE ta_customer_from ADD INDEX idx_customer_from_org(org_id);;
  62. ALTER TABLE ta_customer_from ADD INDEX idx_cusromer_from_project(org_id,building_id);;
  63. ALTER TABLE `ta_person_building`
  64. ADD INDEX `idx_building_user`(`building_id`, `user_id`),
  65. ADD INDEX `idx_building_only_user`(`user_id`);
  66. ALTER TABLE `ta_share_count`
  67. ADD INDEX `idx_share_cout_person`(`person_id`);
  68. ALTER TABLE `ta_favor`
  69. ADD INDEX `idx_favor_target`(`be_favor`, `tagert_type`);
  70. ALTER TABLE `ta_chat`
  71. ADD INDEX `idx_chat_send`(`send_person`),
  72. ADD INDEX `idx_char_receive`(`receive_person`);
  73. ALTER TABLE `ta_person_visit_record`
  74. ADD INDEX `idx_event_target`(`org_id`, `event_type`, `target_id`, `visit_time`);
  75. ALTER TABLE `ta_recommend_customer`
  76. ADD INDEX `idx_consultant_sts`(`org_id`, `realty_consultant`, `create_date`);
  77. ALTER TABLE `ta_share_person_from`
  78. ADD COLUMN `target_name` varchar(1024) NULL COMMENT '目标名称' AFTER `is_first_time`;
  79. ALTER TABLE `ta_share_count`
  80. ADD COLUMN `target_name` varchar(1024) NULL COMMENT '对象名称' AFTER `create_date`;
  81. ALTER TABLE `ta_share_count`
  82. ADD COLUMN `org_id` int NULL COMMENT '组织ID' AFTER `target_name`;
  83. ALTER TABLE `ta_share_count`
  84. ADD INDEX `idx_share_cout_org`(`org_id`);
  85. --
  86. 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);
  87. -- 菜单数据
  88. update sys_menu t
  89. set t.`status` = -1
  90. where t.`menu_id` = 85;
  91. delete from ta_role_menu where menu_id = 85;
  92. INSERT INTO `sys_menu`(`menu_id`, `code`, `name`, `parent_code`, `icon`, `app_type`, `status`, `menu_root`, `sort_num`)
  93. VALUES (110, '/statistical', '数据统计', '-1', NULL, 'estateagent-admin', 1, 110, 2);
  94. INSERT INTO `sys_menu`(`menu_id`, `code`, `name`, `parent_code`, `icon`, `app_type`, `status`, `menu_root`, `sort_num`)
  95. VALUES (111, '/statistical/monitor', '数据报表', '110', NULL, 'estateagent-admin', 1, 110, 1);
  96. INSERT INTO `sys_menu`(`menu_id`, `code`, `name`, `parent_code`, `icon`, `app_type`, `status`, `menu_root`, `sort_num`)
  97. VALUES (112, '/statistical/activity', '活动统计', '110', NULL, 'estateagent-admin', 1, 110, 2);
  98. INSERT INTO `sys_menu`(`menu_id`, `code`, `name`, `parent_code`, `icon`, `app_type`, `status`, `menu_root`, `sort_num`)
  99. VALUES (113, '/statistical/consultant', '置业顾问KPI', '110', NULL, 'estateagent-admin', 1, 110, 4);
  100. INSERT INTO `sys_menu`(`menu_id`, `code`, `name`, `parent_code`, `icon`, `app_type`, `status`, `menu_root`, `sort_num`)
  101. VALUES (114, '/statistical/building', '项目统计', '110', NULL, 'estateagent-admin', 1, 110, 3);
  102. INSERT ta_role_menu ( role_id, menu_id )
  103. SELECT s.role_id, 110
  104. FROM ta_user t
  105. LEFT JOIN ta_user_role s ON t.user_id = s.user_id
  106. WHERE
  107. t.is_admin = 1
  108. AND s.role_id IS NOT NULL
  109. GROUP BY
  110. s.role_id;
  111. INSERT ta_role_menu ( role_id, menu_id )
  112. SELECT s.role_id, 111
  113. FROM ta_user t
  114. LEFT JOIN ta_user_role s ON t.user_id = s.user_id
  115. WHERE
  116. t.is_admin = 1
  117. AND s.role_id IS NOT NULL
  118. GROUP BY
  119. s.role_id;
  120. INSERT ta_role_menu ( role_id, menu_id )
  121. SELECT s.role_id, 112
  122. FROM ta_user t
  123. LEFT JOIN ta_user_role s ON t.user_id = s.user_id
  124. WHERE
  125. t.is_admin = 1
  126. AND s.role_id IS NOT NULL
  127. GROUP BY
  128. s.role_id;
  129. INSERT ta_role_menu ( role_id, menu_id )
  130. SELECT s.role_id, 113
  131. FROM ta_user t
  132. LEFT JOIN ta_user_role s ON t.user_id = s.user_id
  133. WHERE
  134. t.is_admin = 1
  135. AND s.role_id IS NOT NULL
  136. GROUP BY
  137. s.role_id;
  138. INSERT ta_role_menu ( role_id, menu_id )
  139. SELECT s.role_id, 114
  140. FROM ta_user t
  141. LEFT JOIN ta_user_role s ON t.user_id = s.user_id
  142. WHERE
  143. t.is_admin = 1
  144. AND s.role_id IS NOT NULL
  145. GROUP BY
  146. s.role_id;
  147. -- 菜单按钮
  148. INSERT INTO `sys_button_in_menu`(`btn_id`, `menu_id`, `name`, `status`, `code`, `remark`)
  149. VALUES (212, 114, '导出', 1, 'admin.statistical.building.export', NULL);
  150. INSERT INTO `sys_button_in_menu`(`btn_id`, `menu_id`, `name`, `status`, `code`, `remark`)
  151. VALUES (213, 112, '导出', 1, 'admin.statistical.activity.export', NULL);
  152. INSERT INTO `sys_button_in_menu`(`btn_id`, `menu_id`, `name`, `status`, `code`, `remark`)
  153. VALUES (214, 113, '导出', 1, 'admin.statistical.consultant.export', NULL);
  154. INSERT ta_role_button ( role_id, btn_id )
  155. SELECT s.role_id, 212
  156. FROM ta_user t
  157. LEFT JOIN ta_user_role s ON t.user_id = s.user_id
  158. WHERE
  159. t.is_admin = 1
  160. AND s.role_id IS NOT NULL
  161. GROUP BY
  162. s.role_id;
  163. INSERT ta_role_button ( role_id, btn_id )
  164. SELECT s.role_id, 213
  165. FROM ta_user t
  166. LEFT JOIN ta_user_role s ON t.user_id = s.user_id
  167. WHERE
  168. t.is_admin = 1
  169. AND s.role_id IS NOT NULL
  170. GROUP BY
  171. s.role_id;
  172. INSERT ta_role_button ( role_id, btn_id )
  173. SELECT s.role_id, 214
  174. FROM ta_user t
  175. LEFT JOIN ta_user_role s ON t.user_id = s.user_id
  176. WHERE
  177. t.is_admin = 1
  178. AND s.role_id IS NOT NULL
  179. GROUP BY
  180. s.role_id;
  181. INSERT ta_role_button ( role_id, btn_id )
  182. SELECT s.role_id, 215
  183. FROM ta_user t
  184. LEFT JOIN ta_user_role s ON t.user_id = s.user_id
  185. WHERE
  186. t.is_admin = 1
  187. AND s.role_id IS NOT NULL
  188. GROUP BY
  189. s.role_id;
  190. INSERT ta_role_button ( role_id, btn_id )
  191. SELECT s.role_id, 216
  192. FROM ta_user t
  193. LEFT JOIN ta_user_role s ON t.user_id = s.user_id
  194. WHERE
  195. t.is_admin = 1
  196. AND s.role_id IS NOT NULL
  197. GROUP BY
  198. s.role_id;
  199. INSERT ta_role_button ( role_id, btn_id )
  200. SELECT s.role_id, 217
  201. FROM ta_user t
  202. LEFT JOIN ta_user_role s ON t.user_id = s.user_id
  203. WHERE
  204. t.is_admin = 1
  205. AND s.role_id IS NOT NULL
  206. GROUP BY
  207. s.role_id;
  208. -- 置业KPI日统计
  209. delimiter $$
  210. CREATE PROCEDURE `pro_consultant_kpi`(IN `st_date` varchar(32))
  211. BEGIN
  212. DECLARE day_start datetime;
  213. DECLARE day_end datetime;
  214. SET day_start = STR_TO_DATE(st_date, '%Y%m%d');
  215. SET day_end = STR_TO_DATE(concat(st_date, '235959'), '%Y%m%d%H%i%s');
  216. -- 先删除当天的
  217. delete from ts_consultant_kpi where statis_date = st_date;
  218. -- 重新插入
  219. insert into ts_consultant_kpi (
  220. statis_date,
  221. org_id,
  222. building_id,
  223. building_name,
  224. user_id,
  225. user_name,
  226. phone,
  227. new_persons,
  228. share_num,
  229. visit_persons,
  230. visit_num,
  231. share_persons,
  232. home_page_persons,
  233. home_page_nums,
  234. chat_persons,
  235. favor_num
  236. )
  237. select
  238. st_date as statis_date,
  239. t.org_id,
  240. s.building_id,
  241. n.building_name,
  242. t.user_id,
  243. t.user_name,
  244. t.phone,
  245. -- 新增客户的时间字段不正确
  246. -- 可能错误: create_date 是之前的时间, 但是最近才分配置业的情况统计不到
  247. (select count(*) from ta_recommend_customer a
  248. where a.org_id = t.org_id
  249. and (a.realty_consultant = concat(t.user_id, '') or a.realty_consultant = m.person_id)
  250. and a.create_date BETWEEN day_start and day_end
  251. and a.building_id = s.building_id
  252. and a.status > 0
  253. ) as new_persons,
  254. -- 分享次数
  255. -- 不区分项目
  256. (select count(*) as share_num from ta_share_count b
  257. where b.person_id = m.person_id
  258. and b.create_date BETWEEN day_start and day_end
  259. and (
  260. b.tagert_type IN ( 'consultant', 'project', 'activity', 'group', 'h5', 'help', 'news', 'main' )
  261. OR b.tagert_type like 'house%'
  262. OR b.tagert_type like 'live%'
  263. )
  264. ) as share_num,
  265. -- 分享访问人数
  266. (select count(DISTINCT c.person_id) from ta_share_person_from c
  267. where c.org_id = t.org_id
  268. and c.share_person = concat(t.user_id, '')
  269. and (
  270. c.target_type IN ( 'card_share', 'building_share', 'dynamic_share', 'group_share', 'h5_share', 'help_share', 'house_share', 'live_share', 'news_share', 'poster' )
  271. or ( c.target_type = 'share' and c.target_id = 'index' )
  272. )
  273. and (c.building_id is null or c.building_id = s.building_id)
  274. and c.create_date BETWEEN day_start and day_end
  275. ) as visit_persons,
  276. -- 分享访问次数
  277. (select count(*) from ta_share_person_from d
  278. where d.org_id = t.org_id
  279. and d.share_person = concat(t.user_id, '')
  280. and (
  281. d.target_type IN ( 'card_share', 'building_share', 'dynamic_share', 'group_share', 'h5_share', 'help_share', 'house_share', 'live_share', 'news_share', 'poster' )
  282. or ( d.target_type = 'share' and d.target_id = 'index' )
  283. )
  284. and (d.building_id is null or d.building_id = s.building_id)
  285. and d.create_date BETWEEN day_start and day_end
  286. ) as visit_num,
  287. -- 分享拓客
  288. (select count(DISTINCT e.person_id) from ta_customer_from e
  289. where e.org_id = t.org_id
  290. and e.building_id = s.building_id
  291. and e.share_person_id = m.person_id
  292. and e.target_type is not null
  293. and e.is_project_first = 1
  294. ) as share_persons,
  295. -- 主页访问人数
  296. (select count(DISTINCT f.person_id) from ta_person_visit_record f
  297. where f.org_id = t.org_id
  298. and f.building_id = s.building_id
  299. and f.event_type = 'card'
  300. and f.target_id = m.person_id
  301. and f.visit_time BETWEEN day_start and day_end
  302. ) as home_page_persons,
  303. -- 主页访问次数
  304. (select count(*) from ta_person_visit_record g
  305. where g.org_id = t.org_id
  306. and g.building_id = s.building_id
  307. and g.event_type = 'card'
  308. and g.target_id = m.person_id
  309. and g.visit_time BETWEEN day_start and day_end
  310. ) as home_page_nums,
  311. -- 咨询数
  312. -- 不区分项目
  313. (select count(DISTINCT h.send_person) from ta_chat h
  314. where h.receive_person = m.person_id
  315. and h.create_date BETWEEN day_start and day_end
  316. ) as chat_persons,
  317. -- 点赞数
  318. -- 不区分项目
  319. (select count(*) from ta_favor i
  320. where i.be_favor = m.person_id
  321. and i.tagert_type = 'consultant'
  322. and i.create_date BETWEEN day_start and day_end
  323. ) as favor_num
  324. from ta_user t
  325. left join ta_person_building s on t.user_id = s.user_id
  326. left join ta_person m on t.org_id = m.org_id and t.user_id = m.user_id and m.status = 1
  327. left join ta_building n on n.building_id = s.building_id
  328. where t.is_consultant = 1;
  329. END$$
  330. delimiter $$
  331. CREATE PROCEDURE `pro_update_share_target_name`()
  332. BEGIN
  333. -- 分享项目
  334. UPDATE ta_share_person_from t
  335. INNER JOIN ta_building s ON s.building_id = t.target_id
  336. SET t.target_name = s.building_name
  337. WHERE t.target_type = 'building_share'
  338. AND t.target_name is null;
  339. UPDATE ta_share_count t
  340. INNER JOIN ta_building s ON s.building_id = t.be_share
  341. SET t.target_name = s.building_name,
  342. t.org_id = s.org_id
  343. WHERE t.tagert_type = 'project'
  344. AND t.target_name is null;
  345. -- 普通活动
  346. UPDATE ta_share_person_from t
  347. INNER JOIN ta_building_dynamic s ON s.dynamic_id = t.target_id
  348. SET t.target_name = s.title
  349. WHERE t.target_type = 'dynamic_share'
  350. AND t.target_name is null;
  351. UPDATE ta_share_count t
  352. INNER JOIN ta_building_dynamic s ON s.dynamic_id = t.be_share
  353. SET t.target_name = s.title,
  354. t.org_id = s.org_id
  355. WHERE t.tagert_type = 'activity'
  356. AND t.target_name is null;
  357. -- 助力活动
  358. UPDATE ta_share_person_from t
  359. INNER JOIN ta_help_activity s ON s.help_activity_id = t.target_id
  360. SET t.target_name = s.title,
  361. t.org_id = s.org_id
  362. WHERE t.target_type = 'help_share'
  363. AND t.target_name is null;
  364. UPDATE ta_share_count t
  365. INNER JOIN ta_help_activity s ON s.help_activity_id = t.be_share
  366. SET t.target_name = s.title
  367. WHERE t.tagert_type = 'help'
  368. AND t.target_name is null;
  369. -- 拼团活动
  370. UPDATE ta_share_person_from t
  371. INNER JOIN ta_share_activity s ON s.group_activity_id = t.target_id
  372. SET t.target_name = s.activity_name
  373. WHERE t.target_type = 'group_share'
  374. AND t.target_name is null;
  375. UPDATE ta_share_count t
  376. INNER JOIN ta_share_activity s ON s.group_activity_id = t.be_share
  377. SET t.target_name = s.activity_name,
  378. t.org_id = s.org_id
  379. WHERE t.tagert_type = 'group'
  380. AND t.target_name is null;
  381. -- H5 活动
  382. UPDATE ta_share_person_from t
  383. INNER JOIN ta_drainage s ON s.drainage_id = t.target_id
  384. SET t.target_name = s.`name`
  385. WHERE t.target_type = 'h5_share'
  386. AND t.target_name is null;
  387. UPDATE ta_share_count t
  388. INNER JOIN ta_drainage s ON s.drainage_id = t.be_share
  389. SET t.target_name = s.`name`,
  390. t.org_id = s.org_id
  391. WHERE t.tagert_type = 'h5'
  392. AND t.target_name is null;
  393. -- 资讯
  394. UPDATE ta_share_person_from t
  395. INNER JOIN ta_news s ON s.news_id = t.target_id
  396. SET t.target_name = s.news_name
  397. WHERE t.target_type = 'news_share'
  398. AND t.target_name is null;
  399. UPDATE ta_share_count t
  400. INNER JOIN ta_news s ON s.news_id = t.be_share
  401. SET t.target_name = s.news_name,
  402. t.org_id = s.org_id
  403. WHERE t.tagert_type = 'news'
  404. AND t.target_name is null;
  405. -- 直播活动
  406. UPDATE ta_share_person_from t
  407. INNER JOIN ta_live_activity s ON s.live_activity_id = t.target_id
  408. SET t.target_name = s.live_activity_title
  409. WHERE t.target_type = 'live_share'
  410. AND t.target_name is null;
  411. UPDATE ta_share_count t
  412. INNER JOIN ta_live_activity s ON s.live_activity_id = t.be_share
  413. SET t.target_name = s.live_activity_title,
  414. t.org_id = s.org_id
  415. WHERE t.tagert_type like 'live%'
  416. AND t.target_name is null;
  417. -- 房源列表
  418. UPDATE ta_share_person_from t
  419. INNER JOIN ta_sales_batch s ON s.sales_batch_id = t.target_id
  420. INNER JOIN ta_building m on m.building_id = s.building_id
  421. SET t.target_name = m.building_name
  422. WHERE t.target_type = 'house_share'
  423. AND t.target_name is null;
  424. UPDATE ta_share_count t
  425. INNER JOIN ta_sales_batch s ON s.sales_batch_id = t.be_share
  426. INNER JOIN ta_building m on m.building_id = s.building_id
  427. SET t.target_name = m.building_name,
  428. t.org_id = s.org_id
  429. WHERE t.tagert_type like 'house%'
  430. AND t.target_name is null;
  431. -- 更新 org
  432. UPDATE ta_share_count t
  433. INNER JOIN ta_person s ON s.person_id = t.be_share
  434. SET t.org_id = s.org_id
  435. WHERE t.tagert_type = 'consultant'
  436. AND t.org_id is null;
  437. END$$
  438. delimiter $$
  439. CREATE PROCEDURE `pro_activity_daily`(IN `st_date` varchar(32))
  440. BEGIN
  441. DECLARE day_start datetime;
  442. DECLARE day_end datetime;
  443. SET day_start = STR_TO_DATE(st_date, '%Y-%m-%d');
  444. SET day_end = STR_TO_DATE(concat(st_date, ' 235959'), '%Y-%m-%d %H%i%s');
  445. delete from ts_activity_daily where statis_date = st_date;
  446. insert into ts_activity_daily (
  447. `statis_date`,
  448. `org_id`,
  449. `building_id`,
  450. `building_name`,
  451. `target_type`,
  452. `target_id`,
  453. `target_name`,
  454. `share_persons`,
  455. `share_num`,
  456. `visit_persons`,
  457. `visit_num`,
  458. `new_persons`,
  459. `new_customers`
  460. )
  461. select
  462. st_date as statis_date,
  463. a.org_id,
  464. a.building_id,
  465. a.building_name,
  466. a.target_type,
  467. a.target_id,
  468. a.target_name,
  469. -- 活动分享人数
  470. (SELECT count(DISTINCT b.person_id) FROM ta_share_count b
  471. WHERE b.org_id = a.org_id
  472. AND b.tagert_type like concat(a.target_type,'%')
  473. AND b.be_share = a.target_id
  474. AND b.create_date BETWEEN day_start AND day_end
  475. ) as share_persons,
  476. -- 活动分享次数
  477. (SELECT count(*) FROM ta_share_count c
  478. WHERE c.org_id = a.org_id
  479. AND c.tagert_type like concat(a.target_type,'%')
  480. AND c.be_share = a.target_id
  481. AND c.create_date BETWEEN day_start AND day_end
  482. ) as share_num,
  483. -- 活动访问人数
  484. (select count( DISTINCT d.person_id ) from ta_person_visit_record d
  485. WHERE d.org_id = a.org_id
  486. AND if(d.target_type is null ,d.event_type = a.target_type, d.target_type = REPLACE(a.target_type, 'activity', 'dynamic'))
  487. AND d.target_id = a.target_id
  488. AND d.`event` = 'detail'
  489. AND d.visit_time BETWEEN day_start AND day_end
  490. ) as visit_persons,
  491. -- 活动访问次数
  492. (select count(*) from ta_person_visit_record e
  493. WHERE e.org_id = a.org_id
  494. AND if(e.target_type is null ,e.event_type = a.target_type, e.target_type = REPLACE(a.target_type, 'activity', 'dynamic'))
  495. AND e.target_id = a.target_id
  496. AND e.`event` = 'detail'
  497. AND e.visit_time BETWEEN day_start AND day_end
  498. ) as visit_num,
  499. -- 分享新增用户
  500. (select count(*) from ta_share_person_from f
  501. where f.org_id = a.org_id
  502. AND f.target_type = concat(REPLACE(a.target_type, 'activity', 'dynamic'), '_share')
  503. AND f.target_id = a.target_id
  504. AND f.`status` > 0
  505. AND f.create_date BETWEEN day_start AND day_end
  506. AND f.is_first_time = 1
  507. ) as new_persons,
  508. -- 分享新增客户
  509. (select count(*) from ta_customer_from g
  510. inner join ta_person h on h.person_id = g.person_id
  511. where g.org_id = a.org_id
  512. AND g.target_type = a.target_type
  513. AND g.target_id = a.target_id
  514. AND g.create_date BETWEEN day_start AND day_end
  515. AND g.is_org_first = 1
  516. ) as new_customers
  517. from (
  518. -- 增加时间的过滤, 是为了减少统计的数据量
  519. -- 如果统计的时候, 活动还没有创建, 那么活动不创建
  520. -- 主要是针对初始化数据
  521. -- 报名活动
  522. 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
  523. left join ta_building s on s.building_id = t.building_id
  524. where t.`status` > -1
  525. union all
  526. -- h5
  527. 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
  528. left join ta_building s on s.building_id = t.building_id
  529. where t.`status` > -1
  530. union all
  531. -- 助力
  532. 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
  533. left join ta_building s on s.building_id = t.building_id
  534. where t.`status` > -1
  535. union all
  536. -- 拼团
  537. 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
  538. left join ta_building s on s.building_id = t.building_id
  539. where t.`status` > -1
  540. union all
  541. -- 直播
  542. 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
  543. left join ta_building s on s.building_id = t.building_id
  544. where t.`status` > -1
  545. ) a;
  546. END$$
  547. delimiter $$
  548. CREATE PROCEDURE `pro_init_activity_daily`(IN `days` int)
  549. BEGIN
  550. DECLARE inx int DEFAULT 1;
  551. DECLARE dt VARCHAR(10);
  552. DECLARE nw datetime DEFAULT now();
  553. while inx <= days do
  554. set dt = DATE_FORMAT(DATE_SUB(nw, INTERVAL inx DAY),"%Y-%m-%d");
  555. call pro_activity_daily(dt);
  556. set inx = inx + 1;
  557. end while;
  558. END$$
  559. CREATE EVENT `evt_update_share_target_name_2h`
  560. ON SCHEDULE
  561. EVERY 2 HOUR STARTS CURRENT_TIMESTAMP
  562. DO BEGIN
  563. CALL pro_update_share_target_name();
  564. END;
  565. -- 数据初始化脚本
  566. delimiter $$
  567. CREATE PROCEDURE `pro_init_consultant_kpi`(IN days int)
  568. BEGIN
  569. DECLARE inx int DEFAULT 1;
  570. DECLARE dt VARCHAR(10);
  571. DECLARE nw datetime DEFAULT now();
  572. while inx <= days do
  573. set dt = DATE_FORMAT(DATE_SUB(nw, INTERVAL inx DAY),"%Y%m%d");
  574. call pro_consultant_kpi(dt);
  575. set inx = inx + 1;
  576. end while;
  577. END$$
  578. -- 置业KPI统计每 4 小时执行一次
  579. CREATE EVENT `evt_consultant_kpi_daily`
  580. ON SCHEDULE
  581. EVERY 4 HOUR STARTS CURRENT_TIMESTAMP
  582. DO BEGIN
  583. call pro_consultant_kpi(DATE_FORMAT(now(),"%Y%m%d"));
  584. END;
  585. -- 活动统计每 4 小时执行一次
  586. CREATE EVENT `evt_activity_daily`
  587. ON SCHEDULE
  588. EVERY 4 HOUR STARTS CURRENT_TIMESTAMP
  589. DO BEGIN
  590. call pro_activity_daily(DATE_FORMAT(now(),"%Y-%m-%d"));
  591. END;
  592. ALTER TABLE td_live_dict ADD sort INT ( 11 );
  593. UPDATE td_live_dict
  594. SET sort = 6
  595. WHERE
  596. id = 1;
  597. UPDATE td_live_dict
  598. SET sort = 5
  599. WHERE
  600. id = 2;
  601. UPDATE td_live_dict
  602. SET sort = 4
  603. WHERE
  604. id = 3;
  605. UPDATE td_live_dict
  606. SET sort = 3
  607. WHERE
  608. id = 4;
  609. UPDATE td_live_dict
  610. SET sort = 2
  611. WHERE
  612. id = 5;
  613. UPDATE td_live_dict
  614. SET sort = 1
  615. WHERE
  616. id = 6;
  617. ALTER TABLE ta_share_person_from ADD INDEX idx_share_person_personId ( person_id );
  618. ALTER TABLE ta_person_from_record ADD INDEX idx_from_record_personId ( share_person_id );
  619. ALTER TABLE ta_extend_content ADD create_user INT ( 11 );
  620. ALTER TABLE ta_drainage ADD create_user INT ( 11 );
  621. INSERT INTO `td_report` ( `report_code`, `report_name`, `is_project`, `remark`, `status`, `create_date` )
  622. VALUES
  623. ( 'total_number_of_visit_users', '今日访问次数', NULL, NULL, 1, '2020-04-23 16:07:18' );
  624. INSERT INTO ta_building_report ( `report_code`, `create_date`, `org_id` ) SELECT
  625. 'total_number_of_visit_users',
  626. NOW( ),
  627. org_id
  628. FROM
  629. ta_miniapp;
  630. UPDATE ta_recommend_customer t
  631. LEFT JOIN ta_person p ON t.person_id = p.person_id
  632. SET t.sex = p.gender
  633. WHERE
  634. t.sex IS NULL;