| 2 |
* |
* |
| 3 |
* $Revision$ |
* $Revision$ |
| 4 |
* $Log$ |
* $Log$ |
| 5 |
|
* Revision 1.79 2005/03/07 01:20:09 aga4096 |
| 6 |
|
* ・getItemCountGroupByIndexで未承認アイテム・インデックスを数えないよう修正. |
| 7 |
|
* |
| 8 |
* Revision 1.78 2005/03/05 02:28:05 aga4096 |
* Revision 1.78 2005/03/05 02:28:05 aga4096 |
| 9 |
* ・個人領域のインデックスが Private と表示されるよう修正. |
* ・個人領域のインデックスが Private と表示されるよう修正. |
| 10 |
* |
* |
| 3409 |
if( ( ret = registerItem( sid, item::IID_BINDERS, *itemid ) ) == RES_OK ){ |
if( ( ret = registerItem( sid, item::IID_BINDERS, *itemid ) ) == RES_OK ){ |
| 3410 |
ret = setCertifyState( sid, item::IID_BINDERS, *itemid, index::CERTIFIED ); |
ret = setCertifyState( sid, item::IID_BINDERS, *itemid, index::CERTIFIED ); |
| 3411 |
} |
} |
| 3412 |
|
}else if( item -> getItemTypeID( ) == item::ITID_INDEX ){ |
| 3413 |
|
;// 何もしない |
| 3414 |
}else{ |
}else{ |
| 3415 |
//insert into private index |
//insert into private index |
| 3416 |
sql = "SELECT private_index_id FROM " + dbprefix + "_xnpaccount_users "; |
sql = "SELECT private_index_id FROM " + dbprefix + "_xnpaccount_users "; |
| 7084 |
|
|
| 7085 |
string indexItemLinkTable = dbprefix + "_xnpaccount_index_item_link"; |
string indexItemLinkTable = dbprefix + "_xnpaccount_index_item_link"; |
| 7086 |
string indexTable = dbprefix + "_xnpaccount_index"; |
string indexTable = dbprefix + "_xnpaccount_index"; |
| 7087 |
|
string itemTable = dbprefix + "_xnpaccount_item_basic"; |
| 7088 |
string groupsUsersLinkTable = dbprefix + "_xnpaccount_groups_users_link"; |
string groupsUsersLinkTable = dbprefix + "_xnpaccount_groups_users_link"; |
| 7089 |
string sql = "SELECT COUNT(*) FROM " + indexTable; |
string sql = "SELECT COUNT(*) FROM " + indexTable; |
| 7090 |
unsigned int maxXIDsLen; |
unsigned int maxXIDsLen; |
| 7095 |
*xids = new indexid_t [maxXIDsLen]; |
*xids = new indexid_t [maxXIDsLen]; |
| 7096 |
*counts = new int [maxXIDsLen]; |
*counts = new int [maxXIDsLen]; |
| 7097 |
|
|
| 7098 |
|
// todo: item_type_idのチェックを外す |
| 7099 |
if ( isModerator(sid, uid) ) { |
if ( isModerator(sid, uid) ) { |
| 7100 |
sql = "SELECT index_id, COUNT(*) from " + indexItemLinkTable + " GROUP BY index_id"; |
sql = "SELECT index_id, COUNT(*) from " + indexItemLinkTable + " AS tl " |
| 7101 |
|
" LEFT JOIN " + itemTable + " AS ti on ti.item_id=tl.item_id " |
| 7102 |
|
" WHERE ti.item_type_id <> " + unsignedIntToString( item::ITID_INDEX ) + |
| 7103 |
|
" GROUP BY index_id"; |
| 7104 |
} |
} |
| 7105 |
else { |
else { |
| 7106 |
sql = "SELECT tx.index_id, COUNT(*) " |
string certified = " tl.certify_state=" + unsignedIntToString( index::CERTIFIED ); |
| 7107 |
" FROM " + indexTable + " AS tx" |
sql = "SELECT tx.index_id, COUNT(tl.index_id) " |
| 7108 |
" LEFT JOIN " + groupsUsersLinkTable + " AS tgl ON tx.gid=tgl.gid AND tgl.uid=" + unsignedIntToString(uid) + |
" FROM " + indexTable + " AS tx" |
| 7109 |
" LEFT JOIN " + indexItemLinkTable + " AS tl ON tx.index_id=tl.index_id" |
" LEFT JOIN " + groupsUsersLinkTable + " AS tgl ON tx.gid=tgl.gid AND tgl.uid=" + unsignedIntToString(uid) + |
| 7110 |
" WHERE tx.open_level=" + unsignedIntToString( index::OL_PUBLIC ) + |
" LEFT JOIN " + indexItemLinkTable + " AS tl ON tx.index_id=tl.index_id " |
| 7111 |
" OR tx.open_level=" + unsignedIntToString( index::OL_GROUP_ONLY ) + " AND tgl.uid IS NOT NULL " |
" LEFT JOIN " + itemTable + " AS ti ON ti.item_id=tl.item_id " |
| 7112 |
" OR tx.open_level=" + unsignedIntToString( index::OL_PRIVATE ) + " AND tx.uid=" + unsignedIntToString(uid) + |
" WHERE " |
| 7113 |
" GROUP BY tx.index_id"; |
" (tx.open_level=" + unsignedIntToString( index::OL_PUBLIC ) + " AND " + certified + |
| 7114 |
|
" OR tx.open_level=" + unsignedIntToString( index::OL_GROUP_ONLY ) + " AND tgl.uid IS NOT NULL AND " + certified + |
| 7115 |
|
" OR tx.open_level=" + unsignedIntToString( index::OL_PRIVATE ) + " AND tx.uid=" + unsignedIntToString(uid) + |
| 7116 |
|
" ) AND ti.item_type_id <> " + unsignedIntToString( item::ITID_INDEX ) + |
| 7117 |
|
" GROUP BY tx.index_id"; |
| 7118 |
} |
} |
| 7119 |
SQLRETURN sqlcode; |
SQLRETURN sqlcode; |
| 7120 |
SQLHANDLE hstmt = NULL; |
SQLHANDLE hstmt = NULL; |