185 lines
7.0 KiB
PHP
185 lines
7.0 KiB
PHP
<?php
|
|
/**
|
|
* Created by PhpStorm.
|
|
* User: zn
|
|
* Date: 2017/5/18
|
|
* Time: 19:08
|
|
*/
|
|
|
|
namespace app\controllers;
|
|
|
|
|
|
use common\models\Item;
|
|
use common\modules\dailytask\DailyTaskUtil;
|
|
use common\modules\systemlog\SystemLogUtil;
|
|
use common\services\ClientMessageServices;
|
|
use common\services\GameConfigServices;
|
|
use common\services\ItemServices;
|
|
use common\services\NewbieGuideService;
|
|
use common\services\ResultStatusServices;
|
|
use common\services\UserLogService;
|
|
use common\services\UserService;
|
|
use common\utils\EnumUtil;
|
|
use Yii;
|
|
use yii\rest\Controller;
|
|
|
|
/**
|
|
* 仓库
|
|
* Class StoreHouseController
|
|
* @package app\controllers
|
|
*/
|
|
class StoreHouseController extends Controller
|
|
{
|
|
/**
|
|
* 获取仓库数据
|
|
*/
|
|
public function actionIndex()
|
|
{
|
|
$userID = Yii::$app->request->get('user_id');
|
|
if (!$userID) return ClientMessageServices::sendMessage(ResultStatusServices::RS_USER_NOT_LOGIN);//验证登录
|
|
|
|
$grantRs = NewbieGuideService::grantSeedIfNeeded($userID);
|
|
if ($grantRs != ResultStatusServices::RS_OPERATION_SUCCESS) {
|
|
return ClientMessageServices::sendMessage($grantRs);
|
|
}
|
|
|
|
//获取所有仓库数据
|
|
$itemDbDataList = Item::find()
|
|
->select(['id', 'user_id', 'item_id', 'name', 'type', 'num'])
|
|
->where(['user_id' => $userID])
|
|
->orderBy(['type' => SORT_ASC, 'item_id' => SORT_ASC])
|
|
->asArray()
|
|
->all();
|
|
|
|
$clientData = [];
|
|
foreach ($itemDbDataList as $item) {
|
|
$clientData[] = [
|
|
'id' => (int)$item['id'],
|
|
'user_id' => (int)$item['user_id'],
|
|
'item_id' => (int)$item['item_id'],
|
|
'name' => $item['name'],
|
|
'type' => (int)$item['type'],
|
|
'num' => (int)$item['num'],
|
|
];
|
|
}
|
|
|
|
return ClientMessageServices::sendMessage(ResultStatusServices::RS_OPERATION_SUCCESS, $clientData);
|
|
}
|
|
|
|
/**
|
|
* 出售仓库中物品
|
|
*/
|
|
public function actionSell()
|
|
{
|
|
$userID = Yii::$app->request->get('user_id');
|
|
$itemID = Yii::$app->request->get('item_id');//物品ID
|
|
$num = Yii::$app->request->get('num');//要出售的数量
|
|
|
|
if (!$userID) return ClientMessageServices::sendMessage(ResultStatusServices::RS_USER_NOT_LOGIN);//验证登录
|
|
|
|
//验证
|
|
if (!$itemID || $num <= 0) return ClientMessageServices::sendMessage(ResultStatusServices::RS_PARAM_ERROR);
|
|
|
|
//获取配置
|
|
$itemConfig = GameConfigServices::getParamByPath('item_list.' . $itemID);
|
|
if (!$itemConfig) return ClientMessageServices::sendMessage(ResultStatusServices::RS_NOT_FIND_IN_CONFIG);
|
|
|
|
//判断物品能否出售
|
|
if (in_array($itemConfig['type2'], ItemServices::ITEM_CAN_NOT_SELL_LIST))
|
|
return ClientMessageServices::sendMessage(ResultStatusServices::RS_PARAM_ERROR);
|
|
|
|
//修改数据
|
|
$dbTrans = Yii::$app->db->beginTransaction();
|
|
try {
|
|
//修改金钱
|
|
$gold = $itemConfig['sell_gold'] * $num;
|
|
$log = SystemLogUtil::get($userID, SystemLogUtil::TYPE_GOLD, $gold, 0, SystemLogUtil::FROM_TYPE_SELL, []);
|
|
$rs = UserService::checkAndModifyMoney($userID, true, $gold, 0, $log);
|
|
if ($rs != ResultStatusServices::RS_OPERATION_SUCCESS) return ClientMessageServices::sendMessage($rs);
|
|
|
|
//修改仓库物品
|
|
$log = SystemLogUtil::get($userID, SystemLogUtil::TYPE_ITEM, $itemID, -$num, SystemLogUtil::FROM_TYPE_SELL, []);
|
|
$rs = ItemServices::checkAndModifyNum($userID, $itemID, false, -$num, $log);
|
|
if ($rs != ResultStatusServices::RS_OPERATION_SUCCESS) return ClientMessageServices::sendMessage($rs);
|
|
|
|
//记录日志
|
|
UserLogService::addUserLog($userID, EnumUtil::USER_LOG_TYPE_SELL, $itemID, $num);
|
|
|
|
if($itemConfig['type2']==ItemServices::ITEM_TYPE2_FRUIT)
|
|
{
|
|
//任务记录
|
|
DailyTaskUtil::addTaskCount($userID, DailyTaskUtil::TYPE_SELL_FRUIT, null, 1);
|
|
}
|
|
|
|
|
|
$success = true;
|
|
} finally {
|
|
if (isset($success))
|
|
$dbTrans->commit();
|
|
else {
|
|
$dbTrans->rollBack();
|
|
Yii::$app->redis->clearDirtyKey();//清除脏缓存数据
|
|
}
|
|
}
|
|
|
|
return ClientMessageServices::sendMessage(ResultStatusServices::RS_OPERATION_SUCCESS);
|
|
}
|
|
|
|
// /**
|
|
// * 使用新手礼包
|
|
// */
|
|
// public function actionUseGift()
|
|
// {
|
|
// $userID = Yii::$app->request->get('user_id');
|
|
// $itemID = Yii::$app->request->get('item_id');//物品ID
|
|
//
|
|
// if (!$userID) return ClientMessageServices::sendMessage(ResultStatusServices::RS_USER_NOT_LOGIN);//验证登录
|
|
//
|
|
// //验证
|
|
// if (!isset($itemID)) return ClientMessageServices::sendMessage(ResultStatusServices::RS_PARAM_ERROR);
|
|
//
|
|
// //获取配置
|
|
// $itemConfig = GameConfigServices::getParamByPath('item_list.' . $itemID);
|
|
// if (!$itemConfig) return ClientMessageServices::sendMessage(ResultStatusServices::RS_NOT_FIND_IN_CONFIG);
|
|
//
|
|
// if ($itemConfig['type2'] != ItemServices::ITEM_TYPE2_GIFT)
|
|
// return ClientMessageServices::sendMessage(ResultStatusServices::RS_PARAM_ERROR);
|
|
//
|
|
// //修改数据
|
|
// $dbTrans = Yii::$app->db->beginTransaction();
|
|
// try {
|
|
// //修改仓库物品
|
|
// $log = SystemLogUtil::get($userID, SystemLogUtil::TYPE_ITEM, $itemID, -1, SystemLogUtil::FROM_TYPE_USER_ITEM, []);
|
|
// $rs = ItemServices::checkAndModifyNum($userID, $itemID, false, -1, $log);
|
|
// if ($rs != ResultStatusServices::RS_OPERATION_SUCCESS) return ClientMessageServices::sendMessage($rs);
|
|
//
|
|
// //添加新手包中的物品
|
|
// $giftConfigItemList = GameConfigServices::getParamByPath('gift');
|
|
// foreach ($giftConfigItemList as $giftConfigItem) {
|
|
// $itemType2 = $giftConfigItem['type2'];
|
|
// $itemID = $giftConfigItem['item_id'];
|
|
// $num = $giftConfigItem['num'];
|
|
//
|
|
// //其他物品放入仓库中
|
|
// $log = SystemLogUtil::get($userID, SystemLogUtil::TYPE_ITEM, $itemID, $num, SystemLogUtil::FROM_TYPE_USE_GIFT, []);
|
|
// $rs = ItemServices::checkAndModifyNum($userID, $itemID, true, $num, $log);
|
|
// if ($rs != ResultStatusServices::RS_OPERATION_SUCCESS) return ClientMessageServices::sendMessage($rs);
|
|
// }
|
|
//
|
|
// //记录日志
|
|
// UserLogService::addUserLog($userID, EnumUtil::USER_LOG_TYPE_USE_GIFT);
|
|
//
|
|
// $success = true;
|
|
// } finally {
|
|
// if (isset($success))
|
|
// $dbTrans->commit();
|
|
// else {
|
|
// $dbTrans->rollBack();
|
|
// Yii::$app->redis->clearDirtyKey();//清除脏缓存数据
|
|
// }
|
|
// }
|
|
//
|
|
// return ClientMessageServices::sendMessage(ResultStatusServices::RS_OPERATION_SUCCESS);
|
|
// }
|
|
}
|