File indexing completed on 2024-04-28 17:16:07
0001 0002 DROP PROCEDURE IF EXISTS `generate_stat_project`; 0003 0004 DELIMITER $$ 0005 USE `pling`$$ 0006 CREATE PROCEDURE `generate_stat_project`() 0007 BEGIN 0008 DROP TABLE IF EXISTS `tmp_reported_projects`; 0009 CREATE TEMPORARY TABLE `tmp_reported_projects` 0010 ( 0011 PRIMARY KEY `primary` (`project_id`) 0012 ) 0013 AS 0014 SELECT `reports_project`.`project_id` AS `project_id`, 0015 COUNT(`reports_project`.`project_id`) AS `amount_reports`, 0016 MAX(`reports_project`.`created_at`) AS `latest_report` 0017 FROM `reports_project` 0018 WHERE (`reports_project`.`is_deleted` = 0) 0019 GROUP BY `reports_project`.`project_id`; 0020 0021 DROP TABLE IF EXISTS `tmp_project_package_types`; 0022 CREATE TEMPORARY TABLE `tmp_project_package_types` 0023 ( 0024 PRIMARY KEY `primary` (`project_id`) 0025 ) 0026 ENGINE MyISAM 0027 AS 0028 SELECT `project_id`, 0029 GROUP_CONCAT(DISTINCT `project_package_type`.`package_type_id`) AS `package_type_id_list`, 0030 GROUP_CONCAT(DISTINCT `package_types`.`name`) AS `package_name_list` 0031 FROM `project_package_type` 0032 JOIN 0033 `package_types` ON `project_package_type`.`package_type_id` = `package_types`.`package_type_id` 0034 WHERE `package_types`.`is_active` = 1 0035 GROUP BY `project_id`; 0036 0037 0038 DROP TABLE IF EXISTS `tmp_stat_projects`; 0039 CREATE TABLE `tmp_stat_projects` 0040 ( 0041 PRIMARY KEY `primary` (`project_id`), 0042 INDEX `idx_cat` (`project_category_id`) 0043 ) 0044 ENGINE MyISAM 0045 AS 0046 SELECT `project`.`project_id` AS `project_id`, 0047 `project`.`member_id` AS `member_id`, 0048 `project`.`content_type` AS `content_type`, 0049 `project`.`project_category_id` AS `project_category_id`, 0050 `project`.`hive_category_id` AS `hive_category_id`, 0051 `project`.`status` AS `status`, 0052 `project`.`uuid` AS `uuid`, 0053 `project`.`pid` AS `pid`, 0054 `project`.`type_id` AS `type_id`, 0055 `project`.`title` AS `title`, 0056 `project`.`description` AS `description`, 0057 `project`.`version` AS `version`, 0058 `project`.`image_big` AS `image_big`, 0059 `project`.`image_small` AS `image_small`, 0060 `project`.`start_date` AS `start_date`, 0061 `project`.`content_url` AS `content_url`, 0062 `project`.`created_at` AS `created_at`, 0063 `project`.`changed_at` AS `changed_at`, 0064 `project`.`deleted_at` AS `deleted_at`, 0065 `project`.`creator_id` AS `creator_id`, 0066 `project`.`facebook_code` AS `facebook_code`, 0067 `project`.`github_code` AS `github_code`, 0068 `project`.`twitter_code` AS `twitter_code`, 0069 `project`.`google_code` AS `google_code`, 0070 `project`.`link_1` AS `link_1`, 0071 `project`.`embed_code` AS `embed_code`, 0072 `project`.`ppload_collection_id` AS `ppload_collection_id`, 0073 `project`.`validated` AS `validated`, 0074 `project`.`validated_at` AS `validated_at`, 0075 `project`.`featured` AS `featured`, 0076 `project`.`approved` AS `approved`, 0077 `project`.`amount` AS `amount`, 0078 `project`.`amount_period` AS `amount_period`, 0079 `project`.`claimable` AS `claimable`, 0080 `project`.`claimed_by_member` AS `claimed_by_member`, 0081 `project`.`count_likes` AS `count_likes`, 0082 `project`.`count_dislikes` AS `count_dislikes`, 0083 `project`.`count_comments` AS `count_comments`, 0084 `project`.`count_downloads_hive` AS `count_downloads_hive`, 0085 `project`.`source_id` AS `source_id`, 0086 `project`.`source_pk` AS `source_pk`, 0087 `project`.`source_type` AS `source_type`, 0088 `project`.`validated` AS `project_validated`, 0089 `project`.`uuid` AS `project_uuid`, 0090 `project`.`status` AS `project_status`, 0091 `project`.`created_at` AS `project_created_at`, 0092 `project`.`changed_at` AS `project_changed_at`, 0093 laplace_score(`project`.`count_likes`, `project`.`count_dislikes`) AS `laplace_score`, 0094 `member`.`type` AS `member_type`, 0095 `member`.`member_id` AS `project_member_id`, 0096 `member`.`username` AS `username`, 0097 `member`.`profile_image_url` AS `profile_image_url`, 0098 `member`.`city` AS `city`, 0099 `member`.`country` AS `country`, 0100 `member`.`created_at` AS `member_created_at`, 0101 `member`.`paypal_mail` AS `paypal_mail`, 0102 `project_category`.`title` AS `cat_title`, 0103 `project_category`.`xdg_type` AS `cat_xdg_type`, 0104 `project_category`.`name_legacy` AS `cat_name_legacy`, 0105 `stat_plings`.`amount_received` AS `amount_received`, 0106 `stat_plings`.`count_plings` AS `count_plings`, 0107 `stat_plings`.`count_plingers` AS `count_plingers`, 0108 `stat_plings`.`latest_pling` AS `latest_pling`, 0109 `trp`.`amount_reports` AS `amount_reports`, 0110 `tppt`.`package_type_id_list` AS `package_types`, 0111 `tppt`.`package_name_list` AS `package_names` 0112 FROM `project` 0113 JOIN `member` ON `member`.`member_id` = `project`.`member_id` 0114 JOIN `project_category` ON `project`.`project_category_id` = `project_category`.`project_category_id` 0115 LEFT JOIN `stat_plings` ON `stat_plings`.`project_id` = `project`.`project_id` 0116 LEFT JOIN `tmp_reported_projects` AS `trp` ON `trp`.`project_id` = `project`.`project_id` 0117 LEFT JOIN `tmp_project_package_types` AS `tppt` ON `tppt`.`project_id` = `project`.`project_id` 0118 WHERE `member`.`is_deleted` = 0 0119 AND `member`.`is_active` = 1 0120 AND `project`.`type_id` = 1 0121 AND `project`.`status` = 100 0122 AND `project_category`.`is_active` = 1; 0123 0124 RENAME TABLE `stat_projects` TO `old_stat_projects`, `tmp_stat_projects` TO `stat_projects`; 0125 0126 DROP TABLE IF EXISTS `old_stat_projects`; 0127 END$$ 0128 0129 DELIMITER ; 0130 0131 0132 DROP EVENT IF EXISTS `e_generate_stat_projects`; 0133 CREATE 0134 DEFINER = CURRENT_USER 0135 EVENT IF NOT EXISTS `e_generate_stat_projects` 0136 ON SCHEDULE 0137 EVERY 5 MINUTE STARTS DATE_FORMAT(NOW(), '%Y-%m-%d 05:00:00') 0138 ON COMPLETION PRESERVE 0139 -- DISABLE ON SLAVE 0140 COMMENT 'Regenerates stat_projects table' 0141 DO 0142 CALL `pling`.generate_stat_project();