File indexing completed on 2024-05-05 10:25:48
0001 ALTER TABLE project_rating 0002 ADD COLUMN score_test int(2) COMMENT 'vote up = 9 votedown = 3' AFTER score; 0003 0004 update project_rating set score_test = 9 where user_like = 1 0005 and created_at < '2019-05-14 10:00:00'; 0006 update project_rating set score_test = 3 where user_dislike = 1 0007 and created_at < '2019-05-14 10:00:00'; 0008 0009 update project_rating set score_test = score 0010 where created_at > '2019-05-14 10:00:00'; 0011 0012 update project_rating set score_test = round(((user_like-6)*9+(user_dislike-6)*3+10*5)/(user_like+user_dislike+10-12),2) 0013 where user_like >=6 and user_dislike>=6 ; 0014 0015 0016 DELIMITER $$ 0017 drop PROCEDURE generate_stat_rating_project; 0018 CREATE PROCEDURE `generate_stat_rating_project`() 0019 BEGIN 0020 DROP TABLE IF EXISTS tmp_stat_rating_project; 0021 CREATE TABLE tmp_stat_rating_project 0022 ( 0023 `project_id` int(11) NOT NULL, 0024 `likes` int(11) NOT NULL, 0025 `dislikes` int(11) NOT NULL, 0026 `votes_total` int(11) NOT NULL, 0027 `score` int(11) NOT NULL, 0028 `score_with_pling` int(11) NOT NULL, 0029 `score_test` int(11) NOT NULL, 0030 PRIMARY KEY `primary` (project_id) 0031 ) 0032 AS 0033 SELECT pr.project_id, 0034 sum(pr.likes) AS likes, 0035 sum(pr.dislikes) AS dislikes, 0036 sum(pr.likes) + sum(pr.dislikes) AS votes_total, 0037 laplace_score(sum(pr.likes), sum(pr.dislikes)) AS score, 0038 (sum(pr.totalscore)+2*5)/(sum(pr.count)+2)*100 AS score_with_pling, 0039 (sum(pr.totalscore_test)+10*5)/(sum(pr.count)+10)*100 AS score_test 0040 from 0041 ( 0042 select project_id 0043 ,user_like as likes 0044 ,user_dislike as dislikes 0045 ,1 as count 0046 ,score as totalscore 0047 ,score_test as totalscore_test 0048 from project_rating pr where pr.rating_active = 1 0049 union all 0050 select 0051 project_id 0052 ,user_like-6 as likes 0053 ,user_dislike-6 as dislikes 0054 ,user_like+user_dislike-12 as count 0055 ,(user_like-6)*8+(user_dislike-6)*3 as totalscore 0056 ,(user_like-6)*9+(user_dislike-6)*3 as totalscore_test 0057 from project_rating pr 0058 where pr.rating_active = 0 and user_dislike >=6 and user_like>=6 0059 ) pr 0060 group by project_id; 0061 0062 IF EXISTS(SELECT table_name 0063 FROM INFORMATION_SCHEMA.TABLES 0064 WHERE table_schema = DATABASE() 0065 AND table_name = 'stat_rating_project') 0066 THEN 0067 RENAME TABLE stat_rating_project TO old_stat_rating_project, tmp_stat_rating_project TO stat_rating_project; 0068 0069 ELSE 0070 RENAME TABLE tmp_stat_rating_project TO stat_rating_project; 0071 0072 END IF; 0073 0074 0075 DROP TABLE IF EXISTS old_stat_rating_project; 0076 END$$ 0077 DELIMITER ; 0078 0079 0080 DELIMITER $$ 0081 drop PROCEDURE generate_stat_project; 0082 CREATE PROCEDURE `generate_stat_project`() 0083 BEGIN 0084 DROP TABLE IF EXISTS tmp_reported_projects; 0085 CREATE TEMPORARY TABLE tmp_reported_projects 0086 (PRIMARY KEY `primary` (project_id) ) 0087 AS 0088 SELECT 0089 `reports_project`.`project_id` AS `project_id`, 0090 COUNT(`reports_project`.`project_id`) AS `amount_reports`, 0091 MAX(`reports_project`.`created_at`) AS `latest_report` 0092 FROM 0093 `reports_project` 0094 WHERE 0095 (`reports_project`.`is_deleted` = 0 AND `reports_project`.`report_type` = 0) 0096 GROUP BY `reports_project`.`project_id` 0097 ; 0098 0099 DROP TABLE IF EXISTS tmp_project_package_types; 0100 CREATE TEMPORARY TABLE tmp_project_package_types 0101 (PRIMARY KEY `primary` (project_id)) 0102 ENGINE MyISAM 0103 AS 0104 SELECT 0105 tag_object.tag_parent_object_id as project_id, 0106 GROUP_CONCAT(DISTINCT tag_object.tag_id) AS package_type_id_list, 0107 GROUP_CONCAT(DISTINCT tag.tag_fullname) AS `package_name_list` 0108 FROM 0109 tag_object 0110 JOIN 0111 tag ON tag_object.tag_id = tag.tag_id 0112 JOIN 0113 ppload.ppload_files files ON files.id = tag_object.tag_object_id 0114 WHERE 0115 tag_object.tag_group_id = 8 0116 AND tag_object.is_deleted = 0 0117 AND files.active = 1 0118 GROUP BY tag_object.tag_parent_object_id 0119 ; 0120 0121 DROP TABLE IF EXISTS tmp_project_tags; 0122 CREATE TEMPORARY TABLE tmp_project_tags 0123 (PRIMARY KEY `primary` (tag_project_id)) 0124 ENGINE MyISAM 0125 AS 0126 SELECT 0127 GROUP_CONCAT(tag_name) AS tag_names, 0128 GROUP_CONCAT(tag_id) AS tag_ids, 0129 tag_project_id 0130 FROM ( 0131 select 0132 distinct tag.tag_name, 0133 tag.tag_id, 0134 tgo.tag_object_id AS tag_project_id 0135 FROM tag_object AS tgo 0136 JOIN tag ON tag.tag_id = tgo.tag_id 0137 WHERE tag_type_id = 1 #project 0138 AND tgo.is_deleted = 0 0139 UNION ALL 0140 select 0141 distinct tag.tag_name, 0142 tag.tag_ID, 0143 tgo.tag_parent_object_id AS tag_project_id 0144 FROM tag_object AS tgo 0145 JOIN tag ON tag.tag_id = tgo.tag_id 0146 JOIN ppload.ppload_files files ON files.id = tgo.tag_object_id 0147 WHERE tag_type_id = 3 #file 0148 AND files.active = 1 0149 AND tgo.is_deleted = 0 0150 ) A 0151 GROUP BY tag_project_id 0152 ORDER BY tag_project_id; 0153 0154 DROP TABLE IF EXISTS tmp_stat_projects; 0155 CREATE TABLE tmp_stat_projects 0156 (PRIMARY KEY `primary` (`project_id`), INDEX `idx_ppload` (`ppload_collection_id`), INDEX `idx_cat` (`project_category_id`),INDEX `idx_member` (`member_id`),INDEX `idx_source_url` (`source_url`(50))) 0157 ENGINE MyISAM 0158 AS 0159 SELECT 0160 `project`.`project_id` AS `project_id`, 0161 `project`.`member_id` AS `member_id`, 0162 `project`.`content_type` AS `content_type`, 0163 `project`.`project_category_id` AS `project_category_id`, 0164 `project`.`hive_category_id` AS `hive_category_id`, 0165 `project`.`status` AS `status`, 0166 `project`.`uuid` AS `uuid`, 0167 `project`.`pid` AS `pid`, 0168 `project`.`type_id` AS `type_id`, 0169 `project`.`title` AS `title`, 0170 `project`.`description` AS `description`, 0171 `project`.`version` AS `version`, 0172 `project`.`project_license_id` AS `project_license_id`, 0173 `project`.`image_big` AS `image_big`, 0174 `project`.`image_small` AS `image_small`, 0175 `project`.`start_date` AS `start_date`, 0176 `project`.`content_url` AS `content_url`, 0177 `project`.`created_at` AS `created_at`, 0178 `project`.`changed_at` AS `changed_at`, 0179 `project`.`major_updated_at` AS `major_updated_at`, 0180 `project`.`deleted_at` AS `deleted_at`, 0181 `project`.`creator_id` AS `creator_id`, 0182 `project`.`facebook_code` AS `facebook_code`, 0183 `project`.`source_url` AS `source_url`, 0184 `project`.`twitter_code` AS `twitter_code`, 0185 `project`.`google_code` AS `google_code`, 0186 `project`.`link_1` AS `link_1`, 0187 `project`.`embed_code` AS `embed_code`, 0188 CAST(`project`.`ppload_collection_id` AS UNSIGNED) AS `ppload_collection_id`, 0189 `project`.`validated` AS `validated`, 0190 `project`.`validated_at` AS `validated_at`, 0191 `project`.`featured` AS `featured`, 0192 `project`.`ghns_excluded` AS `ghns_excluded`, 0193 `project`.`amount` AS `amount`, 0194 `project`.`amount_period` AS `amount_period`, 0195 `project`.`claimable` AS `claimable`, 0196 `project`.`claimed_by_member` AS `claimed_by_member`, 0197 IFNULL(`stat_rating_project`.`likes`, 0) AS `count_likes`, 0198 IFNULL(`stat_rating_project`.`dislikes`, 0) AS `count_dislikes`, 0199 `project`.`count_comments` AS `count_comments`, 0200 `project`.`count_downloads_hive` AS `count_downloads_hive`, 0201 `project`.`source_id` AS `source_id`, 0202 `project`.`source_pk` AS `source_pk`, 0203 `project`.`source_type` AS `source_type`, 0204 `project`.`validated` AS `project_validated`, 0205 `project`.`uuid` AS `project_uuid`, 0206 `project`.`status` AS `project_status`, 0207 `project`.`created_at` AS `project_created_at`, 0208 `project`.`changed_at` AS `project_changed_at`, 0209 IFNULL(`stat_rating_project`.`score`, 50) AS `laplace_score_old`, 0210 IFNULL(`stat_rating_project`.`score_with_pling`, 500) AS `laplace_score`, 0211 IFNULL(`stat_rating_project`.`score_test`, 500) AS `laplace_score_test`, 0212 `member`.`type` AS `member_type`, 0213 `member`.`member_id` AS `project_member_id`, 0214 `member`.`username` AS `username`, 0215 `member`.`profile_image_url` AS `profile_image_url`, 0216 `member`.`city` AS `city`, 0217 `member`.`country` AS `country`, 0218 `member`.`created_at` AS `member_created_at`, 0219 `member`.`paypal_mail` AS `paypal_mail`, 0220 `project_category`.`title` AS `cat_title`, 0221 `project_category`.`xdg_type` AS `cat_xdg_type`, 0222 `project_category`.`name_legacy` AS `cat_name_legacy`, 0223 `project_category`.`show_description` AS `cat_show_description`, 0224 `stat_plings`.`amount_received` AS `amount_received`, 0225 `stat_plings`.`count_plings` AS `count_plings`, 0226 `stat_plings`.`count_plingers` AS `count_plingers`, 0227 `stat_plings`.`latest_pling` AS `latest_pling`, 0228 `trp`.`amount_reports` AS `amount_reports`, 0229 `tppt`.`package_type_id_list` AS `package_types`, 0230 `tppt`.`package_name_list` AS `package_names`, 0231 `t`.`tag_names` AS `tags`, 0232 `t`.`tag_ids` AS `tag_ids`, 0233 `sdqy`.amount AS count_downloads_quarter, 0234 `project_license`.title AS project_license_title 0235 FROM 0236 `project` 0237 JOIN `member` ON `member`.`member_id` = `project`.`member_id` 0238 JOIN `project_category` ON `project`.`project_category_id` = `project_category`.`project_category_id` 0239 LEFT JOIN `stat_plings` ON `stat_plings`.`project_id` = `project`.`project_id` 0240 LEFT JOIN `tmp_reported_projects` AS trp ON `trp`.`project_id` = `project`.`project_id` 0241 LEFT JOIN `tmp_project_package_types` AS tppt ON tppt.project_id = `project`.project_id 0242 LEFT JOIN `tmp_project_tags` AS t ON t.`tag_project_id` = project.`project_id` 0243 LEFT JOIN `stat_downloads_quarter_year` AS sdqy ON sdqy.project_id = project.project_id 0244 LEFT JOIN `project_license` ON project_license.project_license_id = project.project_license_id 0245 LEFT JOIN `stat_rating_project` ON stat_rating_project.project_id = project.project_id 0246 0247 WHERE 0248 `member`.`is_deleted` = 0 0249 AND `member`.`is_active` = 1 0250 AND (`project`.`type_id` = 1 OR `project`.`type_id` = 3) 0251 AND `project`.`status` = 100 0252 AND `project_category`.`is_active` = 1 0253 ; 0254 0255 RENAME TABLE stat_projects TO old_stat_projects, tmp_stat_projects TO stat_projects; 0256 0257 DROP TABLE IF EXISTS old_stat_projects; 0258 END$$ 0259 DELIMITER ;