/** * 定时从new_tao表拷贝交易表的交易流拍记录和卖家取消的记录到new_trans_history表 * 拷贝成功后删除原new_tao表对应的原始记录,若删除失败直接输入对应记录id * * */ public function cpActToHistoryAction() { $status = \core\Config::item('transStaCode'); $status = array($status->failure, $status->sellerCancel); $newTaoModel = new NewTaoModel(); $res = $newTaoModel->getDatasByStatus($status); $newTransHistoryModel = new NewTransHistoryModel(); foreach ($res as $value) { $ins = $newTransHistoryModel->setTransHistory((array) $value); if ($ins === false) { echo $value->t_id . PHP_EOL; } } }
/** * 卖家违约流程 * @param array $data 交易结果表全部字段的记录 */ public function main(array $data) { if (!in_array($data['t_status'], array(2, 4))) { throw new \Exception('交易状态错误不能执行违约操作'); } $dn = $data['t_dn']; $money = $data['t_now_price']; $buyer = $data['t_buyer']; $seller = $data['t_enameId']; $sellerOrderId = $data['t_seller_order']; //卖家保证金订单 $orderId = $this->createOrder($dn, $money, $buyer, $seller, $sellerOrderId); if (!$orderId) { return false; //违约失败 } // 设置卖家违约 $newTao = new \NewTaoModel(); $newTao->updateTrans(array("t_status" => 7), array("t_id" => $data['t_id'])); // 如果是我司域名 解锁域名 if (1 == $data['t_is_out']) { $domains = new \common\Domain(); $domains->lockDomain($data['t_dn'], 1); } // 如果买家已经确认 取消买家支付订单 一口价买家肯定是确认状态 $finance = new \finance\Orders($buyer); if (!$finance->cancelOrder($data['t_order_id'])) { //log } // 如果买家未确认 取消买家保证金订单 一口价没有这个 竞价才有这个 // 确认违约订单 // $moneyType['UNWITHDRAWAL'] $finance = new \finance\Orders($seller); if ($finance->confirmOrder($orderid, 2, $buyer)) { //log } // 违约是否要评论 //移动交易记录 到历史表 $newHistory = new \NewTransHistoryModel(); if (!$newHistory->setTransHistory($data)) { //log } // 通知卖家 $nowTime = date('Y-m-d H:i:s'); $message = new \common\Message(); $message->sendAuctionBuyerrefuseSeller($dn, $nowTime, $id, $seller); // 通知买家 $message->sendAuctionBuyerrefuseBuyer($dn, $nowTime, $id, $buyer); return true; }
/** * 获取new_trans_result表里面状态为成功或者失败的记录 * 将取出的记录原封不动的存入new_trans_history表 * 存入成功后删除new_trans_result表里面对应的记录 * */ public function checkResultStatus() { $newTransResultModel = new NewTransResultModel(); $newTransHistoryModel = new NewTransHistoryModel(); $res = $newTransResultModel->getSuccAndFail(); if ($res) { foreach ($res as $k => $v) { $newTransHistoryModel->begin(); $v = (array) $v; $newTransHistoryModel->insert($v); $rs = $newTransHistoryModel->affectRow(); if ($rs) { $del = $newTransResultModel->delSuccAndFail($v['t_id']); if ($del) { $newTransHistoryModel->commit(); echo 't_id为' . $v['t_id'] . '的交易记录从result转存history成功' . PHP_EOL; } else { $newTransHistoryModel->rollback(); echo 't_id为' . $v['t_id'] . '的交易记录从result删除失败' . PHP_EOL; } } else { $newTransHistoryModel->rollback(); echo 't_id为' . $v['t_id'] . '的交易记录从result写入history失败' . PHP_EOL; } } } }
/** * 将原来交易信息写入到new_trans_history表 * NOTICE: 这步骤处理必须修改$transInfo里面的状态字段为交易成功的状态值 * @params $transInfo array 为交易记录完整信息 * @param $status int [修改交易状态] * @param $finishTime int [交易完成时间] * @return int|boolean [lastid or false] */ public function copyToHistory($transInfo, $status, $finishTime = false) { $transInfo['t_status'] = $status; $transInfo['t_last_time'] = $transInfo['t_complate_time'] = !$finishTime ? $_SERVER['REQUEST_TIME'] : $finishTime; $historyModel = new NewTransHistoryModel(); $res = $historyModel->setTransHistory($transInfo); if (!$res) { \core\Logger::write("domain.log", array(__METHOD__, "域名{$transInfo['t_dn']}插入到交易历史表new_trans_history失败,发布时间:" . date('Y-m-d H:i:s', $_SERVER['REQUEST_TIME']))); } return $res; }