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 ;