diff --git a/doc/User.py b/doc/User.py index d257da97..e28a1f54 100644 --- a/doc/User.py +++ b/doc/User.py @@ -77,6 +77,7 @@ class User(object): ['guild_id', 0, '跟新工会id(可选参数,不传就不更新)'], ['guild_job', 0, '跟新工会职位(可选参数,不传就不更新)'], ['guild_name', 0, '跟新工会名称(可选参数,不传就不更新)'], + ['parachute', 0, '跟新降落伞(可选参数,不传就不更新)'], ], 'response': [ _common.RspHead(), diff --git a/doc/_common.py b/doc/_common.py index e38c0f55..7711c7f8 100644 --- a/doc/_common.py +++ b/doc/_common.py @@ -149,6 +149,8 @@ class UserInfo(object): ['guild_id', '', '工会id'], ['guild_job', 0, '工会职位'], ['guild_name', '', '工会名称'], + ['parachute', '', '当前使用的降落伞id'], + ['!parachute_list', [0], '拥有的降落伞列表'], ] class UserSimple(object): diff --git a/webapp/controller/UserController.class.php b/webapp/controller/UserController.class.php index f876b9d2..6b346dd5 100644 --- a/webapp/controller/UserController.class.php +++ b/webapp/controller/UserController.class.php @@ -486,6 +486,21 @@ class UserController extends BaseAuthedController { 'valid_func' => function ($val, &$errCode, &$errMsg) { return true; } + ), + 'parachute' => array( + 'field_name' => 'parachute', + 'val_func' => function ($val) { + return $val; + }, + 'valid_func' => function ($val, &$errCode, &$errMsg) { + if (User::isValidParachute($val)) { + return true; + } else { + $errCode = 1; + $errMsg = 'parachute parameter error'; + return false; + } + } ) ); $fieldsKv = array(); diff --git a/webapp/models/Parachute.php b/webapp/models/Parachute.php index 5c7a97fc..286dbfa2 100644 --- a/webapp/models/Parachute.php +++ b/webapp/models/Parachute.php @@ -8,14 +8,25 @@ use mt; use phpcommon\SqlHelper; class Parachute extends BaseModel { + public static $parachute = '170001'; //默认降落伞 + public static function getMyParachute(){ - return SqlHelper::ormSelect( + $list = array( + self::$parachute + ); + $rows = SqlHelper::ormSelect( myself()->_getSelfMysql(), 't_parachute', array( 'account_id' => myself()->_getAccountId(), ) ); + if ($rows){ + foreach ($rows as $row){ + array_push($list, $row['item_id']); + } + } + return $list; } public static function addParachute($itemMeta){ if ($itemMeta){ diff --git a/webapp/models/User.php b/webapp/models/User.php index 5b0c3729..0746e1c7 100644 --- a/webapp/models/User.php +++ b/webapp/models/User.php @@ -4,11 +4,13 @@ namespace models; require_once('mt/Item.php'); require_once('models/UserSeasonRing.php'); +require_once('models/Parachute.php'); use mt; use phpcommon; use phpcommon\SqlHelper; use models\UserSeasonRing; +use models\Parachute; class User extends BaseModel { @@ -69,6 +71,8 @@ class User extends BaseModel { 'guild_id' => $row['guild_id'], 'guild_job' => $row['guild_job'], 'guild_name' => $row['guild_name'], + 'parachute' => $row['parachute'] ? $row['parachute'] : Parachute::$parachute, + 'parachute_list' => Parachute::getMyParachute(), ); } @@ -106,7 +110,9 @@ class User extends BaseModel { 'guild_id' => $row['guild_id'], 'guild_job' => $row['guild_job'], 'guild_name' => $row['guild_name'], - 'ring_list' => UserSeasonRing::ringList($row['account_id']) + 'ring_list' => UserSeasonRing::ringList($row['account_id']), + 'parachute' => $row['parachute'] ? $row['parachute'] : Parachute::$parachute, + 'parachute_list' => Parachute::getMyParachute(), ); } @@ -150,6 +156,11 @@ class User extends BaseModel { return in_array($headFrame, $headFrameList); } + public static function isValidParachute($parachute){ + $parachuteList = Parachute::getMyParachute(); + return in_array($parachute, $parachuteList); + } + private static function getHeadList($userInfo) { $headList = emptyReplace(json_decode($userInfo['head_list'], true), array());