/** * 操作用于金额,并记录 * @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, '用户不存在'); } }