public function write($uid, $action_type, $action_detail, $other_info = null)
 {
     $insert_data = array('uid' => $uid, 'action_type' => $action_type, 'action_detail' => $action_detail);
     if (!empty($other_info)) {
         $insert_data = array_merge($insert_data, $other_info);
     }
     $id = $this->dbo->inserttable($this->table_name, $insert_data, true);
     return $id;
 }
 public function deleteTester($uid)
 {
     if (empty($uid)) {
         return false;
     }
     $sql = "delete from %s where uid in (%s)";
     $sql = sprintf($sql, $this->table_name, $uid);
     return $this->dbhelper->execute($sql);
 }
 /**
  * 进行用户验证
  * @param array $credentials
  * @param array $options
  * @return array
  */
 public function onAuthenticate($credentials, $options = null)
 {
     return "test1";
     $response = new AuthenticationResponse();
     if (empty($credentials['password'])) {
         $response->status = ELEX_AUTHENTICATE_STATUS_FAILURE;
         $response->error_message = 'Empty password not allowed';
         return $response;
     }
     $sql = "select * from admin_users where username = '******'";
     $username = $credentials['username'];
     //		$result = $this->dbo->getOne($sql,$username);
     $result["password"] = "******";
     if (empty($result)) {
         $response->status = ELEX_AUTHENTICATE_STATUS_FAILURE;
         $response->error_message = 'User does not exist';
         return $response;
     } else {
         $cryptmethod = 'sha1';
         if (isset($options['crypt_method'])) {
             if (is_callable($options['crypt_method'])) {
                 $cryptmethod = $options['crypt_method'];
             }
         }
         //			if($options['salt'] === false){
         //				$encrypass = $cryptmethod($credentials['password']);
         //			}
         //			else{
         //				$encrypass = $cryptmethod($cryptmethod($credentials['password']) . $result['salt']);
         //			}
         if ($result['password'] != $encrypass) {
             $response->status = ELEX_AUTHENTICATE_STATUS_FAILURE;
             $response->error_message = 'Invalid password';
             return $response;
         }
         if ($result['expire_time'] > 0 && $result['expire_time'] < time()) {
             $response->status = ELEX_AUTHENTICATE_STATUS_FAILURE;
             $response->error_message = 'Account expired';
             return $response;
         }
         $response->status = ELEX_AUTHENTICATE_STATUS_SUCCESS;
         $response->error_code = 0;
         $response->error_message = '';
         $response->uid = $result['adminuid'];
         $response->email = $result['email'];
         $response->group_id = $result['group_id'];
         $response->username = $result['username'];
         if ($result['expire_time']) {
             $response->expire_time = date('Y-m-d H:i:s', $result['expire_time']);
         }
         if ($result['last_login_time']) {
             $response->last_login_time = date('Y-m-d H:i:s', $result['last_login_time']);
         }
         $this->dbo->updatetable('admin_users', array('last_login_time' => time()), array('adminuid' => $result['adminuid']));
         return $response;
     }
 }
 /**
  *
  * @return int
  */
 private function initSeq()
 {
     $key = $this->getMemKey();
     $seq = $this->cache->get($key);
     if ($seq === FALSE) {
         $sql = sprintf("select LAST_INSERT_ID() from %s", $this->table_name);
         $value = $this->dbhelper->resultFirst($sql);
         if (!empty($value)) {
             $seq = $value['gameuid'];
         }
     }
     if ($seq != FALSE && $seq >= 1) {
         $user_mgr = new UserAccountManager();
         $account = $user_mgr->getUserAccount($seq);
         $nexAccount = $user_mgr->getUserAccount($seq);
     }
     if (empty($account) || !empty($nexAccount)) {
         $sql = sprintf("select ifnull(max(%s),0) max_value from %s", "gameuid", $this->table_name);
         $res = $this->dbhelper->getOne($sql);
         $seq = $res['max_value'];
     }
     return $seq;
 }
 /**
  * 获取其他的where条件
  * @return string
  */
 protected function getWhereExp()
 {
     $sql = '';
     // 组合所有的key
     if (!empty($this->keys)) {
         foreach ($this->keys as $field => $val) {
             $fields = explode(",", $field);
             if (count($fields) > 1) {
                 if (count($val) > 0) {
                     //针对WHERE (pk1=v1 AND pk2=v2) OR (pk1=v3 AND pk2=v4) OR (pk1=v5 AND pk2=v6)
                     //调用方法addKeyValue("pk1,pk2", array(array(v1,v2),array(v3,v4),array(v5,v6)));
                     $or_clauses = '';
                     foreach ($val as $v) {
                         $or_value = array_combine($fields, $v);
                         if ($or_value === false) {
                             continue;
                         }
                         $and_clause = '';
                         foreach ($or_value as $or_value_k => $or_value_v) {
                             $or_value_v = $this->prepareForSql($or_value_k, $or_value_v);
                             if (isset($and_clause[0])) {
                                 $and_clause .= " AND ";
                             }
                             $and_clause .= "{$or_value_k}={$or_value_v}";
                         }
                         if (isset($or_clauses[0])) {
                             $or_clauses .= " OR ";
                         }
                         $or_clauses .= "({$and_clause})";
                     }
                     if (isset($or_clauses[0])) {
                         if (count($val) > 1) {
                             $sql .= " AND ({$or_clauses}) ";
                         } else {
                             $sql .= " AND {$or_clauses} ";
                         }
                     }
                 }
             } else {
                 $formatted_value = $this->prepareForSql($field, $val);
                 if (is_array($val)) {
                     $sql .= " AND {$field} IN ({$formatted_value})";
                 } else {
                     $sql .= " AND {$field}={$formatted_value}";
                 }
             }
         }
     }
     // 如果设置额外的条件,则加上
     if (is_array($this->extra_cond)) {
         $sql .= DBHelper2::joinPairs($this->extra_cond, ' AND ');
     } elseif (!empty($this->extra_cond)) {
         $sql .= $this->extra_cond;
     }
     if (!empty($sql)) {
         return ' where 1=1 ' . $sql;
     } else {
         return '';
     }
 }
 private function commitData($value)
 {
     $sql = "update id_sequence set current_value=%d,next_value=next_value+%d where id_key='%s'";
     $this->dbhelper->execute($sql, array($value, $this->step, $this->table_name));
 }