/** * load文件并给与权限判断 */ protected static function loadList($p_where = null, $p_order = null, $p_pageIndex = null, $p_pageSize = null, &$p_countThis = null, $isDetail = false) { $tmpResult = parent::loadList($p_where, $p_order, $p_pageIndex, $p_pageSize, $p_countThis, $isDetail); if (is_array($tmpResult) && array_key_exists('errorCode', $tmpResult)) { return $tmpResult; } switch ($auth = static::getAuthIfUserCanDoIt(Utility::getCurrentUserID(), $isDetail ? 'detail' : 'list', $tmpResult)) { case 'admin': //有管理权限 //有管理权限 case 'self': //作者 break; //仅管理员和自己可见 //仅管理员和自己可见 case 'normal': //正常用户 //正常用户 case 'draft': //未激活 //未激活 case 'pending': //待审禁言 //待审禁言 case 'disabled': //封号 //封号 case 'visitor': //游客 return Utility::getArrayForResults(RUNTIME_CODE_ERROR_NO_AUTH, '您没有权限执行该操作'); //其他用户不可见 break; case 'empty': //空 return Utility::getArrayForResults(RUNTIME_CODE_ERROR_DATA_EMPTY, '不存在对应数据'); break; default: return Utility::getArrayForResults(RUNTIME_CODE_ERROR_NO_AUTH, '您没有权限执行该操作'); break; } PayLogModel::$authViewDisabled = static::$authViewDisabledList[$auth]; return $tmpResult; }
/** * 操作用于金额,并记录 * @param int $p_userID 用户ID * @param string $p_payName 款项说明 * @param int $p_payType 操作类型 * @param double $p_money 涉及金额 * @param int $p_eventID 事件ID * @return PayLogModel 记录Model */ public static function payAction($p_userID, $p_payName, $p_payType, $p_money, $p_eventID) { $userModel = UserHandler::loadModelById($p_userID); if (is_object($userModel)) { if ($p_money < 0 && $userModel->getMoney() + $p_money < 0) { return Utility::getArrayForResults(RUNTIME_CODE_ERROR_MONEY_OUT, '用户余额不足,无法扣款。'); } if ($p_money != 0 && $p_payType > 100) { UserHandler::update(array('money = money ' . ($p_money > 0 ? '+' : '') . $p_money), array('id' => $userModel->getId())); } $tmpModel = new PayLogModel(); $tmpModel->setCreateTime(date('Y-m-d H:i:s')); $tmpModel->setModifyTime(date('Y-m-d H:i:s')); $tmpModel->setUserID($p_userID); $tmpModel->setPayName($p_payName); $tmpModel->setPayType($p_payType); $tmpModel->setMoney($p_money); $tmpModel->setEventID($p_eventID); return static::saveModel($tmpModel); } else { return Utility::getArrayForResults(RUNTIME_CODE_ERROR_PARAM, '用户不存在'); } }