s4
changeset 435:9f7b97c8b694
Group member listing with the number of POST fasten much
author | HIROSE Yuuji <yuuji@gentei.org> |
---|---|
date | Fri, 23 Jun 2017 23:23:40 +0859 |
parents | cf20459261cb |
children | e1bdad674c09 |
files | s4-funcs.sh |
diffstat | 1 files changed, 37 insertions(+), 1 deletions(-) [+] |
line diff
1.1 --- a/s4-funcs.sh Fri Jun 23 23:11:31 2017 +0859 1.2 +++ b/s4-funcs.sh Fri Jun 23 23:23:40 2017 +0859 1.3 @@ -2389,7 +2389,7 @@ 1.4 fi 1.5 # New entry 1.6 sql="select /* Ahh, ugly SQL, I wanna fix... */ 1.7 - case 1.8 + case /* YES, can be REMOVED if it works until 2017-07-01 */ 1.9 when (select user from grp_adm where 1.10 gname=(select gname from grp where rowid=$grid) 1.11 and user=a.name) is not null 1.12 @@ -2413,6 +2413,42 @@ 1.13 WHERE name in (select user from grp_mem where 1.14 gname=(select gname from grp where rowid=$grid)) 1.15 ORDER by a.gecos;" 1.16 + sql="WITH mems AS ( 1.17 + SELECT g.rowid, name, gecos FROM grp_mem gm LEFT JOIN gecoses g 1.18 + ON gm.user=g.name 1.19 + WHERE gname=(SELECT gname FROM grp WHERE rowid=$grid) 1.20 + ), posts AS ( 1.21 + SELECT author, count(author) post 1.22 + FROM article NATURAL JOIN article_s 1.23 + WHERE blogid IN (SELECT id FROM blog_s 1.24 + WHERE key='owner' 1.25 + AND val=(SELECT gname FROM grp WHERE rowid=$grid)) 1.26 + AND key='text' 1.27 + GROUP BY author 1.28 + ), teams AS ( 1.29 + SELECT user, group_concat(val, ', ') team 1.30 + FROM grp_mem_m 1.31 + WHERE gname=(SELECT gname FROM grp WHERE rowid=$grid) 1.32 + AND key='team' 1.33 + GROUP BY user 1.34 + ), user_post AS ( 1.35 + SELECT m.rowid, name, m.gecos, coalesce(post, 0) as POST 1.36 + FROM mems m LEFT JOIN posts 1.37 + ON m.name=posts.author 1.38 + GROUP by m.rowid 1.39 + ) 1.40 + SELECT 1.41 + CASE 1.42 + WHEN (SELECT user FROM grp_adm 1.43 + WHERE gname=(SELECT gname FROM grp WHERE rowid=$grid) 1.44 + AND user=up.name) IS NOT NULL 1.45 + then 'k' 1.46 + ELSE '' 1.47 + END || rowid || ',' || gecos NAME, 1.48 + post POST, team TEAM 1.49 + FROM user_post up LEFT JOIN teams t 1.50 + ON up.name=t.user 1.51 + ORDER BY gecos;" 1.52 ## err grpaction: "`echo \"$sql\"`" 1.53 tf=$tmpd/title.$$ 1.54 echo "グループ[<a href=\"?grp+$grid\">$grp</a>]参加メンバーに対する操作" > $tf