Develop and Download Open Source Software

Browse CVS Repository

Diff of /xoonips/AL/commonal.cc

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.78 by aga4096, Sat Mar 5 02:28:05 2005 UTC revision 1.79 by aga4096, Mon Mar 7 01:20:09 2005 UTC
# Line 2  Line 2 
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   *   *
# Line 3406  result_t insertItem( sessionid_t sid, co Line 3409  result_t insertItem( sessionid_t sid, co
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 ";
# Line 7079  result_t getItemCountGroupByIndex( sessi Line 7084  result_t getItemCountGroupByIndex( sessi
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;
# Line 7089  result_t getItemCountGroupByIndex( sessi Line 7095  result_t getItemCountGroupByIndex( sessi
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;

Legend:
Removed from v.1.78  
changed lines
  Added in v.1.79

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26