/** * 定时处理竞价结束的数据处理 * * */ public function checkAcuctionStatusAction() { // step1 取出已过交易结束时间,类型为竞价的并且有买家id的交易记录 $taoModel = new NewTaoModel(); $taoData = $taoModel->getExpiredByType(\core\Config::item('isInquiry')->toArray()[1], time()); // step2 将step1的记录修改状态为等待买卖双方确认的状态,存到new_trans_result表,并更新用户关注表 $historyModel = new NewTransHistoryModel(); $transLogic = new TransLogic(); if (!empty($taoData)) { foreach ($taoData as $data) { $data = get_object_vars($data); $data['t_status'] = 2; //存表 if ($historyModel->setTransHistory($data)) { //更新用户关注表 if ($transLogic->updateWatchInfo($data['t_id'], $data['t_now_price'], $data['t_nickname'], $endTime = $data['t_end_time'])) { // step3 删除new_tao里面该条交易记录 if ($taoModel->delByTid($data['t_id'])) { echo 'tid 为' . $data['t_id'] . '操作成功'; } else { echo 'tid 为' . $data['t_id'] . '删除net_tao原表数据失败'; } } else { echo 'tid 为' . $data['t_id'] . '更新用户关注表失败'; } } else { echo 'tid 为' . $data['t_id'] . '复制到history 失败'; } } } }
/** * 判断一口价交易卖家是否违约 */ public function IndexAction() { $limit = 100; $condition = array('t_status' => 4, 't_end_time <' => time()); $transResult = new \NewTransResultModel(); $data = $transResult->getListByWhere($condition, '0,100', '*'); $domains = new \common\Domain(); foreach ($data as $v) { $transId = $v['t_id']; // 判断域名是否在卖家ID下 $result = $domains->checkDnInUser($v['t_enameId'], $v['t_dn']); // 如果如果存在 则执行“一口价交易流程” if ($result) { $lock = $domains->lockDomain($v['t_dn'], 2); // 设置成交易状态 if (!$lock) { Logger::write('buynowtask_index', 'lock domain false ' . $v['t_id'] . '-' . $v['t_dn'] . '--' . $lock[1]); continue; } $finance = new \finance\Orders($v['t_enameId']); if (!$finance->cancelOrder($v['t_seller_order'])) { Logger::write('buynowtask_index', 'cancel order false .' . $v['t_seller_order']); } //PUSH域名 $domains->PushDomain($v['t_enameId'], $v['t_buyer'], $v['t_dn']); //确认订单 扣掉买家的钱给卖家 unset($finance); $finance = new \finance\Orders($v['t_buyer']); $finance->confirmOrder($v['t_order_id'], $v['t_money_type'], $v['t_enameId']); //更新关注表 $transLogic = new \TransLogic(); $transLogic->updateWatchInfo($v['t_id'], $v['t_now_price']); $messageObj = new \common\Message(); //通知卖家 $sms = (new \common\Users())->noticeSellerIsOk($v['t_enameId'], 'T204'); $messageObj->sendBuyNowSeller($v['t_enameId'], $v['t_dn'], $v['t_now_price'], $v['t_id'], $sms); //通知买家 $messageObj->sendBuyNowBuyer($v['t_buyer'], $v['t_dn'], $v['t_now_price'], $v['t_id']); } else { Logger::write('buynowtask_index', 'lock domain false not at user id ' . $v['t_id'] . '-' . $v['t_dn']); $trans = new \trans\Weiyue(); $trans->main($v); } } }