logger = new Logger('app'); $this->logger->pushHandler(new StreamHandler(storage_path('logs/app.log'), Logger::WARNING)); } /** * 接收app发来的下线通知 */ public function loginOut(Request $req){ $input = $req->input(); $this->logger->addWarning('loginOut get:'.json_encode($input)); if(!isset($input['money']) || !preg_match('/^[0-9]{1,8}(.[0-9]{1,2})?$/', $input['money'])){ $this->logger->addError('loginOut out: status -201;请传入正确的金额'); return toJson(-201, '请传入正确的金额', []); } $money = $req->input('money'); $appUsername = $req->input('username'); $appUserModel = new Models\AppUser(); $appUserInfo = $appUserModel->where('app_username',$appUsername)->first(); $mathches = array(); preg_match('/^t(\d+)_(\w+\W+)_a(\d+)$/', $appUsername, $mathches); $partyId = $mathches[1]; $appId = $mathches[3]; $partyUserName = $mathches[2]; $appModel = new Models\App; $appInfo = $appModel->where('id', $appId)->first(); DB::beginTransaction(); //更新额度 /*$result = $partyModel->where('id', $partyInfo['id'])->update(array( 'balance' => $partyInfo['balance'] - $money )); if($result === false){ $appUserModel->rollBack(); return toJson(-4, '系统繁忙', []); }*/ //更新额度 $result = $appModel->where('id', $appId)->update(array( 'balance' => $appInfo['balance'] - $money )); if($result === false){ DB::rollBack(); $this->logger->addError('loginOut out:-104, 更新额度失败'); return toJson(-104, '系统繁忙', []); } //记录日志 $result = $balanceLogModel = new Models\BalanceLog(); $balanceLogModel->insert([ 'type' => 2, 'money' => $money, 'app_id' => $appInfo['id'], 'app_username' => $appUsername, 'party_id' =>$partyId, 'party_username' => $partyUserName, ]); if($result === false){ $appUserModel->rollBack(); $this->logger->addError('loginOut out:-104, 记录日志失败'); return toJson(-104, '系统繁忙', []); } DB::commit(); //TODO 调用第三方平台推出接口,更新第三方额度 } public function getToken(Request $request){ $data = $request->input(); $secret = 'abcds'; $partySign = new PartySign($secret); $data = $partySign->signString($data); return $data; } }