コード例 #1
0
 public static function &getInstance()
 {
     if (self::$_instance === null) {
         self::$_instance = new self();
     }
     return self::$_instance;
 }
コード例 #2
0
ファイル: Arrearage.php プロジェクト: emilymwang8/ajk-broker
 public function handle_request()
 {
     $arrearageList = $this->getRequestData();
     if (!empty($arrearageList)) {
         foreach ($arrearageList as $arrearageVal) {
             $updateArrearageArr = array();
             $apiData = $otherData = '';
             /*
              *1.设置status = 1,为正在处理中  更新为处理状态(更新失败,跳出继续执行下一跳数据)
              */
             $check = Bll_Broker_EntrustArrearage::getInstance()->updateOneData(array('id' => $arrearageVal->id, 'status' => array(0, 2)), array('status' => 1));
             if (empty($check)) {
                 continue;
             }
             $arrearageVal->add_old_property_value('status', 1);
             $commission = $this->getCommissionDataById($arrearageVal->commissionId);
             if (!$commission) {
                 $otherData = '委托关系表中不存在数据';
                 $updateArrearageArr['status'] = 2;
                 $this->updateArrearageTable($arrearageVal, $updateArrearageArr, $apiData, $otherData);
                 continue;
             }
             // 获取房东房源信息
             $house = $this->getCommissionProPDataById($commission->houseId);
             if (!$house) {
                 $otherData = '房东房源表中不存在数据';
                 $updateArrearageArr['status'] = 2;
                 $this->updateArrearageTable($arrearageVal, $updateArrearageArr, $apiData, $otherData);
                 continue;
             }
             /*
              * 2. 获取账户余额
              */
             $userId = Bll_Broker_BrokerCheckInfo::getUserIdByBrokerId($arrearageVal->brokerId, 'sale');
             $balance = Bll_Broker_ShowcaseOrders::getInstance()->getBrokerMoney($userId);
             $balance = $balance * 100;
             $updateArrearageArr['balance'] = $balance;
             if ($balance < $arrearageVal->price) {
                 // 余额不足,插入消费日志
                 $otherData = '余额不足';
                 $updateArrearageArr['status'] = 2;
             } else {
                 /*
                  * 3.余额足够,调用扣费API
                  */
                 $commName = mb_strlen($house->commName, "utf-8") <= 12 ? $house->commName : mb_substr($house->commName, 0, 12, "utf-8") . "...";
                 $note = "抢委托扣费,房源信息:" . $commName . " " . $house->userName . "(房源id" . $house->id . ")";
                 $apiResult = Bll_Broker_EntrustConsume::getInstance()->callCosumeApi($userId, $arrearageVal->requestId, $arrearageVal->price, $note);
                 // 扣费成功
                 if ($apiResult['status'] === true) {
                     $updateArrearageArr['status'] = 3;
                     $otherData = '扣费成功';
                     $apiData = $apiResult['apiData'];
                     // 更新adconsume表状态
                     $tmpConsumeData = Bll_Broker_EntrustConsume::getInstance()->getDataById($arrearageVal->consumeId, $arrearageVal->dateIndex);
                     if ($tmpConsumeData) {
                         $consumeData = $tmpConsumeData[0];
                         $consumeData->balance = $balance;
                         $consumeData->status = 5;
                         $consumeData->updateTime = date("Y-m-d H:i:s", time());
                         $consumeData->save();
                     }
                 } else {
                     // 扣费失败
                     $updateArrearageArr['status'] = 2;
                     $otherData = '扣费失败';
                 }
             }
             $this->updateArrearageTable($arrearageVal, $updateArrearageArr, $apiData, $otherData);
         }
     }
 }
コード例 #3
0
ファイル: Consume.php プロジェクト: emilymwang8/ajk-broker
 /**
  * 插入消费
  */
 protected function addConsume($queryData, $commission, $price)
 {
     $insertData = array('brokerId' => $commission->brokerId, 'balance' => 0, 'price' => $price, 'queryId' => $queryData->id, 'commissionId' => $queryData->commissionId, 'dateIndex' => $queryData->dateIndex, 'status' => 0, 'requestId' => 0, 'createTime' => time(), 'updateTime' => date("Y-m-d H:i:s"));
     // 插入扣费表
     $consumeId = Bll_Broker_EntrustConsume::getInstance()->insertOneData($insertData, $queryData->dateIndex);
     if ($consumeId > 0) {
         $consumeData = Bll_Broker_EntrustConsume::getInstance()->getDataById($consumeId, $queryData->dateIndex, true);
         if (empty($consumeData)) {
             $this->textOutput($queryData, "扣费表数据获取失败,consumeId:" . $consumeId);
             return false;
         }
         // 记录日志
         $this->insertDetailLog($consumeData[0], 1, "", "插入扣费表成功");
         return $consumeData[0];
     } else {
         $this->textOutput($queryData, "插入扣费表失败");
         return false;
     }
 }