File indexing completed on 2024-04-21 06:00:37
0001 USE ppload; 0002 0003 CREATE TABLE ppload.stat_ppload_files_downloaded_nounique 0004 (INDEX `idx_coll` (`collection_id`),INDEX `idx_file` (`file_id`)) 0005 ENGINE MyISAM 0006 AS 0007 SELECT f.owner_id, f.collection_id, f.file_id, COUNT(1) AS count_dl FROM ppload.ppload_files_downloaded f 0008 WHERE f.downloaded_timestamp < '2019-06-01 00:00:00' 0009 GROUP BY f.collection_id, f.file_id 0010 ; 0011 0012 DROP TABLE IF EXISTS ppload.tmp_stat_ppload_files_downloaded_nounique; 0013 0014 CREATE TABLE ppload.tmp_stat_ppload_files_downloaded_nounique 0015 (INDEX `idx_coll` (`collection_id`),INDEX `idx_file` (`file_id`)) 0016 ENGINE MyISAM 0017 AS 0018 SELECT f.owner_id, f.collection_id, f.file_id, COUNT(1) AS count_dl FROM ppload.ppload_files_downloaded f 0019 WHERE f.downloaded_timestamp < '2019-06-01 00:00:00' 0020 GROUP BY f.collection_id, f.file_id 0021 ; 0022 RENAME TABLE ppload.stat_ppload_files_downloaded_nounique TO ppload.old_stat_ppload_files_downloaded_nounique; 0023 RENAME TABLE ppload.tmp_stat_ppload_files_downloaded_nounique TO ppload.stat_ppload_files_downloaded_nounique; 0024 DROP TABLE IF EXISTS ppload.old_stat_ppload_files_downloaded_nounique; 0025 0026 0027 0028 0029 0030 CREATE TABLE ppload_files_downloaded_unique LIKE ppload_files_downloaded; 0031 0032 ALTER TABLE `ppload_files_downloaded_unique` 0033 ADD UNIQUE INDEX `uk` (`collection_id`, `file_id`, `downloaded_ip`); 0034 0035 INSERT IGNORE INTO ppload.ppload_files_downloaded_unique 0036 SELECT MAX(f.id) as id, MAX(f.client_id) AS client_id, f.owner_id, f.collection_id, f.file_id,MAX(f.user_id) AS user_id, MIN(f.referer) AS referer, MIN(f.downloaded_timestamp) AS downloaded_timestamp, f.downloaded_ip FROM ppload.ppload_files_downloaded f 0037 WHERE f.downloaded_timestamp >= '2019-05-01 00:00:00' 0038 GROUP BY f.collection_id, f.file_id, f.downloaded_ip 0039 ; 0040 0041 DROP VIEW pling.stat_member_dl_curent_month; 0042 CREATE VIEW pling.stat_member_dl_curent_month AS 0043 select date_format(now(),'%Y%m') AS `yearmonth`,`p`.`project_id` AS `project_id`,`p`.`project_category_id` AS `project_category_id`,`d`.`owner_id` AS `member_id`,`m`.`mail` AS `mail`,`m`.`paypal_mail` AS `paypal_mail`,count(`d`.`id`) AS `num_downloads`,`c`.`dl_pling_factor` AS `dl_pling_factor`,((count(`d`.`id`) * `c`.`dl_pling_factor`) / 100) AS `amount`,(case when ((select count(1) AS `sum_plings` FROM pling.project_plings `pp` where ((`pp`.`project_id` = `p`.`project_id`) and (`pp`.`is_deleted` = 0) and (`pp`.`is_active` = 1)) group by `pp`.`project_id`) > 0) then ((select count(1) AS `sum_plings` from pling.project_plings `pp` where ((`pp`.`project_id` = `p`.`project_id`) and (`pp`.`is_deleted` = 0) and (`pp`.`is_active` = 1)) group by `pp`.`project_id`) + 1) else 1 end) AS `num_plings`,(case when isnull(`tag`.`tag_item_id`) then 1 else 0 end) AS `is_license_missing`,(case when (((`c`.`source_required` = 1) and (`p`.`source_url` is not null) and (length(`p`.`source_url`) > 0)) or (`c`.`source_required` = 0)) then 0 else 1 end) AS `is_source_missing`,`p`.`pling_excluded` AS `is_pling_excluded`,`m`.`pling_excluded` AS `is_member_pling_excluded`,NULL AS `created_at`,NULL AS `updated_at` from ((((`ppload`.`ppload_files_downloaded_unique` `d` join pling.member `m` on(((`m`.`member_id` = `d`.`owner_id`) and (`m`.`is_active` = 1)))) join pling.tmp_project_for_member_dl_plings `p` on((`p`.`ppload_collection_id` = `d`.`collection_id`))) join pling.project_category `c` on((`c`.`project_category_id` = `p`.`project_category_id`))) left join pling.tag_object `tag` on(((`tag`.`tag_type_id` = 1) and (`tag`.`tag_group_id` = 7) and (`tag`.`tag_object_id` = `p`.`project_id`)))) where (`d`.`downloaded_timestamp` >= concat(left(now(),7),'-01 00:00:00')) group by `d`.`owner_id`,`p`.`project_id` 0044 ; 0045 DROP VIEW pling.stat_member_dl_last_month; 0046 CREATe VIEW pling.stat_member_dl_last_month AS 0047 select date_format((now() - interval 1 month),'%Y%m') AS `yearmonth`,`p`.`project_id` AS `project_id`,`p`.`project_category_id` AS `project_category_id`,`d`.`owner_id` AS `member_id`,`m`.`mail` AS `mail`,`m`.`paypal_mail` AS `paypal_mail`,count(`d`.`id`) AS `num_downloads`,`c`.`dl_pling_factor` AS `dl_pling_factor`,((count(`d`.`id`) * `c`.`dl_pling_factor`) / 100) AS `amount`,(case when ((select count(1) AS `sum_plings` from `pling`.`project_plings` `pp` where ((`pp`.`project_id` = `p`.`project_id`) and (`pp`.`is_deleted` = 0) and (`pp`.`is_active` = 1)) group by `pp`.`project_id`) > 0) then ((select count(1) AS `sum_plings` from `pling`.`project_plings` `pp` where ((`pp`.`project_id` = `p`.`project_id`) and (`pp`.`is_deleted` = 0) and (`pp`.`is_active` = 1)) group by `pp`.`project_id`) + 1) else 1 end) AS `num_plings`,(case when isnull(`tag`.`tag_item_id`) then 1 else 0 end) AS `is_license_missing`,(case when (((`c`.`source_required` = 1) and (`p`.`source_url` is not null) and (length(`p`.`source_url`) > 0)) or (`c`.`source_required` = 0)) then 0 else 1 end) AS `is_source_missing`,`p`.`pling_excluded` AS `is_pling_excluded`,`m`.`pling_excluded` AS `is_member_pling_excluded`,NULL AS `created_at`,NULL AS `updated_at` from ((((`ppload`.`ppload_files_downloaded_unique` `d` join `pling`.`member` `m` on(((`m`.`member_id` = `d`.`owner_id`) and (`m`.`is_active` = 1)))) join `pling`.`project` `p` on(((cast(`p`.`ppload_collection_id` as unsigned) = `d`.`collection_id`) and (`p`.`status` = 100)))) join `pling`.`project_category` `c` on((`c`.`project_category_id` = `p`.`project_category_id`))) left join `pling`.`tag_object` `tag` on(((`tag`.`tag_type_id` = 1) and (`tag`.`tag_group_id` = 7) and (`tag`.`tag_object_id` = `p`.`project_id`)))) where ((`d`.`downloaded_timestamp` >= concat(left((now() - interval 1 month),7),'-01 00:00:00')) and (`d`.`downloaded_timestamp` <= concat(left(now(),7),'-01 00:00:00')) and (`p`.`ppload_collection_id` is not null) and (length(`p`.`ppload_collection_id`) > 0) and (not((`p`.`ppload_collection_id` like '!%')))) group by `d`.`owner_id`,`p`.`project_id` 0048 ; 0049 0050 0051 0052 DROP VIEW pling.stat_member_dl_curent_month_nouk; 0053 CREATE VIEW pling.stat_member_dl_curent_month_nouk AS 0054 select date_format(now(),'%Y%m') AS `yearmonth`,`p`.`project_id` AS `project_id`,`p`.`project_category_id` AS `project_category_id`,`d`.`owner_id` AS `member_id`,`m`.`mail` AS `mail`,`m`.`paypal_mail` AS `paypal_mail`,count(`d`.`id`) AS `num_downloads`,`c`.`dl_pling_factor` AS `dl_pling_factor`,((count(`d`.`id`) * `c`.`dl_pling_factor`) / 100) AS `amount`,(case when ((select count(1) AS `sum_plings` from pling.project_plings `pp` where ((`pp`.`project_id` = `p`.`project_id`) and (`pp`.`is_deleted` = 0) and (`pp`.`is_active` = 1)) group by `pp`.`project_id`) > 0) then ((select count(1) AS `sum_plings` from pling.project_plings `pp` where ((`pp`.`project_id` = `p`.`project_id`) and (`pp`.`is_deleted` = 0) and (`pp`.`is_active` = 1)) group by `pp`.`project_id`) + 1) else 1 end) AS `num_plings`,(case when isnull(`tag`.`tag_item_id`) then 1 else 0 end) AS `is_license_missing`,(case when (((`c`.`source_required` = 1) and (`p`.`source_url` is not null) and (length(`p`.`source_url`) > 0)) or (`c`.`source_required` = 0)) then 0 else 1 end) AS `is_source_missing`,`p`.`pling_excluded` AS `is_pling_excluded`,`m`.`pling_excluded` AS `is_member_pling_excluded`,NULL AS `created_at`,NULL AS `updated_at` from ((((`ppload`.`ppload_files_downloaded` `d` join pling.member `m` on(((`m`.`member_id` = `d`.`owner_id`) and (`m`.`is_active` = 1)))) join pling.tmp_project_for_member_dl_plings `p` on((`p`.`ppload_collection_id` = `d`.`collection_id`))) join pling.project_category `c` on((`c`.`project_category_id` = `p`.`project_category_id`))) left join pling.tag_object `tag` on(((`tag`.`tag_type_id` = 1) and (`tag`.`tag_group_id` = 7) and (`tag`.`tag_object_id` = `p`.`project_id`)))) 0055 WHERE ( 0056 `d`.`downloaded_timestamp` >= concat(left(now(),7),'-01 00:00:00') 0057 ) 0058 group by `d`.`owner_id`,`p`.`project_id` 0059 ; 0060 0061 CREATE TABLE pling.member_dl_plings_nouk LIKE pling.member_dl_plings; 0062 0063 INSERT LOW_PRIORITY INTO pling.member_dl_plings_nouk 0064 (SELECT * FROM pling.stat_member_dl_curent_month_nouk); 0065 0066 USE pling; 0067 DROP EVENT `e_update_member_dl_plings_current_month`; 0068 0069 DELIMITER $$ 0070 CREATE EVENT `e_update_member_dl_plings_current_month` 0071 ON SCHEDULE 0072 EVERY 1 DAY STARTS '2018-06-07 01:00:00' 0073 ON COMPLETION NOT PRESERVE 0074 ENABLE 0075 COMMENT '' 0076 DO BEGIN 0077 0078 #Generate tmp table for active projects 0079 DROP TABLE IF EXISTS tmp_project_for_member_dl_plings; 0080 CREATE TABLE tmp_project_for_member_dl_plings AS 0081 select * from project p where p.ppload_collection_id is not null and p.type_id = 1 and p.`status` = 100; 0082 0083 #ppload_collection_id from char to int 0084 ALTER TABLE `tmp_project_for_member_dl_plings` 0085 CHANGE COLUMN `ppload_collection_id` `ppload_collection_id` INT NULL DEFAULT NULL COLLATE 'utf8_general_ci' AFTER `embed_code`; 0086 0087 #add index 0088 ALTER TABLE `tmp_project_for_member_dl_plings` ADD INDEX `idx_ppload` (`ppload_collection_id`); 0089 ALTER TABLE `tmp_project_for_member_dl_plings` ADD INDEX `idx_pk` (`project_id`); 0090 0091 #fill tmp member_dl_plings table 0092 DROP TABLE IF EXISTS tmp_member_dl_plings; 0093 0094 CREATE TABLE tmp_member_dl_plings LIKE member_dl_plings; 0095 0096 INSERT INTO tmp_member_dl_plings 0097 (SELECT * FROM stat_member_dl_curent_month); 0098 0099 #delete plings from actual month 0100 DELETE FROM member_dl_plings 0101 WHERE yearmonth = (DATE_FORMAT(NOW(),'%Y%m')); 0102 0103 #insert ping for this month from tmp member_dl_plings table 0104 INSERT INTO member_dl_plings 0105 (SELECT * FROM tmp_member_dl_plings); 0106 0107 #remove tmp member_dl_plings table 0108 DROP TABLE tmp_member_dl_plings; 0109 0110 0111 #fill tmp member_dl_plings_nouk table 0112 DROP TABLE IF EXISTS tmp_member_dl_plings_nouk; 0113 0114 CREATE TABLE tmp_member_dl_plings_nouk LIKE member_dl_plings_nouk; 0115 0116 INSERT INTO tmp_member_dl_plings_nouk 0117 (SELECT * FROM stat_member_dl_curent_month_nouk); 0118 0119 #delete plings from actual month 0120 DELETE FROM member_dl_plings_nouk 0121 WHERE yearmonth = (DATE_FORMAT(NOW(),'%Y%m')); 0122 0123 #insert ping for this month from tmp member_dl_plings table 0124 INSERT INTO member_dl_plings_nouk 0125 (SELECT * FROM tmp_member_dl_plings_nouk); 0126 0127 #remove tmp member_dl_plings table 0128 DROP TABLE tmp_member_dl_plings_nouk; 0129 0130 END$$ 0131 DELIMITER ;