mirror of
https://gitlink.org.cn/Gitlink/forgeplus.git
synced 2026-05-24 13:45:44 +08:00
新增:后台管理排行榜数据
This commit is contained in:
74
app/views/admins/users_rank/index.html.erb
Normal file
74
app/views/admins/users_rank/index.html.erb
Normal file
@@ -0,0 +1,74 @@
|
||||
<% define_admin_breadcrumbs do %>
|
||||
<% add_admin_breadcrumb('用户排行榜', admins_path) %>
|
||||
<% end %>
|
||||
|
||||
|
||||
<div class="box search-form-container user-list-form">
|
||||
<%= form_tag(admins_users_rank_index_path, method: :get, class: 'form-inline search-form flex-1', id: 'user-rank-date-form') do %>
|
||||
<div class="form-group mr-2">
|
||||
<label for="status">日期:</label>
|
||||
<% dates_array = (0..30).to_a.map { |item| [(Date.today-item.days).to_s, (Date.today-item.days).to_s] } %>
|
||||
<%= select_tag(:date, options_for_select(dates_array, params[:date]), class:"form-control",id: "user-rank-date-select")%>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="box admin-list-container project-language-list-container">
|
||||
<table class="table table-hover text-center subject-list-table">
|
||||
<thead class="thead-light">
|
||||
<tr>
|
||||
<th width="20%">排名</th>
|
||||
<th width="20%">用户</th>
|
||||
<th width="20%">得分</th>
|
||||
<th width="20%">影响力</th>
|
||||
<th width="20%">贡献度</th>
|
||||
<th width="20%">活跃度</th>
|
||||
<th width="20%">项目经验</th>
|
||||
<th width="20%">语言能力</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<% @date_rank.each_with_index do |item, index| %>
|
||||
<tr class="">
|
||||
<td><%= index + 1%></td>
|
||||
<% owner_common = $redis_cache.hgetall("v2-owner-common:#{item[0]}")%>
|
||||
<td>
|
||||
<a href="/<%= owner_common["login"] %>">
|
||||
<%= owner_common["name"] %>
|
||||
</a>
|
||||
</td>
|
||||
<% user_date_statistic_key = "v2-user-statistic:#{item[0]}-#{@rank_date}"%>
|
||||
<% follow_count = $redis_cache.hget(user_date_statistic_key, "follow-count") || 0 %>
|
||||
<% pullrequest_count = $redis_cache.hget(user_date_statistic_key, "pullrequest-count") || 0 %>
|
||||
<% issues_count = $redis_cache.hget(user_date_statistic_key, "issue-count") || 0 %>
|
||||
<% project_count = $redis_cache.hget(user_date_statistic_key, "project-count") || 0 %>
|
||||
<% fork_count = $redis_cache.hget(user_date_statistic_key, "fork-count") || 0 %>
|
||||
<% project_watchers_count = $redis_cache.hget(user_date_statistic_key, "project-watcher-count") || 0 %>
|
||||
<% project_praises_count = $redis_cache.hget(user_date_statistic_key, "project-praise-count") || 0 %>
|
||||
<% project_language = $redis_cache.hget(user_date_statistic_key, "project-language") %>
|
||||
<% project_languages_count = project_language.nil? || project_language == "{}" ? 0 : JSON.parse(project_language).length %>
|
||||
|
||||
<% influence = (60.0 + follow_count.to_i / (follow_count.to_i + 20.0) * 40.0).to_i %>
|
||||
<% contribution = (60.0 + pullrequest_count.to_i / (pullrequest_count.to_i + 20.0) * 40.0).to_i %>
|
||||
<% activity = (60.0 + issues_count.to_i / (issues_count.to_i + 80.0) * 40.0).to_i %>
|
||||
<% experience = 10 * project_count.to_i + 5 * fork_count.to_i + project_watchers_count.to_i + project_praises_count.to_i %>
|
||||
<% experience = (60.0 + experience / (experience + 100.0) * 40.0).to_i %>
|
||||
<% language = (60.0 + project_languages_count.to_i / (project_languages_count.to_i + 5.0) * 40.0).to_i %>
|
||||
<% score = influence+ contribution + activity + experience + language%>
|
||||
<td><%= score %></td>
|
||||
<td><%= influence%></td>
|
||||
<td><%= contribution%></td>
|
||||
<td><%= activity%></td>
|
||||
<td><%= experience%></td>
|
||||
<td><%= language%></td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<script>
|
||||
$("#user-rank-date-select").on('change', function() {
|
||||
$("#user-rank-date-form").submit()
|
||||
});
|
||||
</script>
|
||||
Reference in New Issue
Block a user