hy-farm/muchang/home/controllers/PetController.php
2026-05-30 20:23:54 +08:00

203 lines
6.3 KiB
PHP

<?php
namespace app\controllers;
use common\models\User;
use common\modules\arena\vo\Arena;
use common\modules\pet\PetUtil;
use common\modules\pet\vo\Pet;
use common\services\ClientMessageServices;
use common\services\PetBattleService;
use common\services\ResultStatusServices;
use Yii;
use yii\rest\Controller;
/**
* Created by PhpStorm.
* User: zn
* Date: 2017/9/11
* Time: 15:00
*/
class PetController extends Controller
{
/**
* 获取所有宠物
* @return mixed
*/
public function actionGetList()
{
$userID = Yii::$app->request->get('user_id');
if (!$userID) return ClientMessageServices::sendMessage(ResultStatusServices::RS_USER_NOT_LOGIN);//验证登录
PetBattleService::recoverWeakIfExpiredByUserID($userID);
$dbList = Pet::findAllByUserID($userID);
$list = [];
foreach ($dbList as $item) {
$data = $item->toArray();
if ($item->is_enter_war == PetUtil::ENTER_WAR) {
PetUtil::updateFeedTime($item);
$data = $item->toArray();
$ranking = Arena::findPetFightRankingByUserID($userID, $item->fighting_capacity);
if (!empty($ranking)) {
$data['index'] = $ranking->index;
} else {
$data['index'] = 0;
}
} else {
$data['index'] = 0;
}
array_push($list, $data);
}
return ClientMessageServices::sendMessage(ResultStatusServices::RS_OPERATION_SUCCESS, ['list' => $list]);
}
/**
* 孵化
* @return mixed
*/
public function actionBroodingEgg()
{
$userID = Yii::$app->request->get('user_id');
$itemID = Yii::$app->request->get('item_id');
if (!$userID) return ClientMessageServices::sendMessage(ResultStatusServices::RS_USER_NOT_LOGIN);//验证登录
PetUtil::broodingEgg($userID, $itemID);
return ClientMessageServices::sendMessage(ResultStatusServices::RS_OPERATION_SUCCESS);
}
/**
* 加速孵化
* @return mixed
*/
public function actionAccelerateBroodingEgg()
{
$userID = Yii::$app->request->get('user_id');
$petID = Yii::$app->request->get('pet_id');
if (!$userID) return ClientMessageServices::sendMessage(ResultStatusServices::RS_USER_NOT_LOGIN);//验证登录
PetUtil::accelerateBroodingEgg($userID, $petID);
return ClientMessageServices::sendMessage(ResultStatusServices::RS_OPERATION_SUCCESS);
}
/**
* 进化
* @return mixed
*/
public function actionEvolution()
{
$userID = Yii::$app->request->get('user_id');
$petID = Yii::$app->request->get('pet_id');
if (!$userID) return ClientMessageServices::sendMessage(ResultStatusServices::RS_USER_NOT_LOGIN);//验证登录
PetUtil::evolution($userID, $petID);
return ClientMessageServices::sendMessage(ResultStatusServices::RS_OPERATION_SUCCESS);
}
/**
* 参战
* @return mixed
*/
public function actionSetEnterWar()
{
$userID = Yii::$app->request->get('user_id');
$petID = Yii::$app->request->get('pet_id');
if (!$userID) return ClientMessageServices::sendMessage(ResultStatusServices::RS_USER_NOT_LOGIN);//验证登录
PetUtil::setEnterWar($userID, $petID);
return ClientMessageServices::sendMessage(ResultStatusServices::RS_OPERATION_SUCCESS);
}
/**
* 培养
* @return mixed
*/
public function actionTrain()
{
$userID = Yii::$app->request->get('user_id');
$petID = Yii::$app->request->get('pet_id');
$type = Yii::$app->request->get('type');
if (!$userID) return ClientMessageServices::sendMessage(ResultStatusServices::RS_USER_NOT_LOGIN);//验证登录
PetUtil::train($userID, $petID, $type);
return ClientMessageServices::sendMessage(ResultStatusServices::RS_OPERATION_SUCCESS);
}
/**
* 升级
* @return mixed
*/
public function actionUpgrade()
{
$userID = Yii::$app->request->get('user_id');
$petID = Yii::$app->request->get('pet_id');
$gold = Yii::$app->request->get('gold');
if (!$userID) return ClientMessageServices::sendMessage(ResultStatusServices::RS_USER_NOT_LOGIN);//验证登录
PetUtil::upgrade($userID, $petID, $gold);
return ClientMessageServices::sendMessage(ResultStatusServices::RS_OPERATION_SUCCESS);
}
/**
* 喂养
* @return mixed
*/
public function actionFeed()
{
$userID = Yii::$app->request->get('user_id');
$petID = Yii::$app->request->get('pet_id');
$itemID = Yii::$app->request->get('item_id');
if (!$userID) return ClientMessageServices::sendMessage(ResultStatusServices::RS_USER_NOT_LOGIN);//验证登录
PetUtil::feed($userID, $petID, $itemID);
return ClientMessageServices::sendMessage(ResultStatusServices::RS_OPERATION_SUCCESS);
}
public function actionGetBattleInfo()
{
$userID = Yii::$app->request->get('user_id');
$beUserID = Yii::$app->request->get('be_user_id');
$type = (int)Yii::$app->request->get('type');
if (!$userID) return ClientMessageServices::sendMessage(ResultStatusServices::RS_USER_NOT_LOGIN);//验证登录
if (empty(User::findById($beUserID))) return ClientMessageServices::sendMessage(ResultStatusServices::RS_PARAM_ERROR);
$data = PetUtil::getBattleInfo($userID, $beUserID, $type > 0 ? true : false);
return ClientMessageServices::sendMessage(ResultStatusServices::RS_OPERATION_SUCCESS, $data);
}
public function actionBattle()
{
$userID = Yii::$app->request->get('user_id');
$fromPetID = Yii::$app->request->get('pet_id');
$beUserID = Yii::$app->request->get('be_user_id');
$type = Yii::$app->request->get('type');
if (!$userID) return ClientMessageServices::sendMessage(ResultStatusServices::RS_USER_NOT_LOGIN);//验证登录
if (empty(User::findById($beUserID))) return ClientMessageServices::sendMessage(ResultStatusServices::RS_PARAM_ERROR);
PetUtil::battle($userID, $fromPetID, $beUserID, $type);
return ClientMessageServices::sendMessage(ResultStatusServices::RS_OPERATION_SUCCESS);
}
}