/** * getInstanceメソッド * * このクラスのオブジェクトを生成する。 * 既に生成されていたら、前回と同じものを返す。 * * @return object $instance */ public static function getInstance() { if (!self::$_instance) { self::$_instance = new self(); } return self::$_instance; }
/** * * ポイント更新処理 * * @param array $userData ユーザーデータ * @param integer $point ポイント * @param integer $pointType ポイントタイプ * @param integer $orderingId 注文ID * @param integer $infoStatusId 情報表示条件ID * * @return boolean */ public function updatePoint($userData, $point, $orderingId = 0, $infoStatusId = 0) { if (!$userData or !is_numeric($point)) { return FALSE; } // ユーザーポイントがマイナスになるなら処理をしない if ($userData["point"] + $point < 0) { return FALSE; } $updateArray = array(); $updateArray["point"] = "point + (" . $point . ")"; $updateArray["update_datetime"] = "'" . date("YmdHis") . "'"; $whereArray[] = "user_id = " . $userData["user_id"]; if ($point < 0) { // ポイントがマイナスなら消費ポイントに加える $updateArray["total_use_point"] = "total_use_point - (" . $point . ")"; } else { // ポイントがプラスなら付加ポイントに加える $updateArray["total_addition_point"] = "total_addition_point + " . $point; } if (!$this->updateProfileData($updateArray, $whereArray, FALSE)) { return FALSE; } //ログを残します $insertArray = array(); $insertArray["ordering_id"] = $orderingId; $insertArray["information_status_id"] = $infoStatusId; $insertArray["user_id"] = $userData["user_id"]; $insertArray["point"] = $point; $insertArray["create_datetime"] = date("YmdHis"); $pointLogOBJ = PointLog::getInstance(); if (!$pointLogOBJ->insertPointLog($insertArray)) { return FALSE; } return TRUE; }