/** * 卖家违约流程 * @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; }
/** * 更新交易记录的状态和买家以及卖家的违约截止时间,买家id,买家昵称,交易结束时间,最后更新时间 * @params $transId int 交易id * @params $transType int 交易类型 * @params $domainType int 域名类型 我司或者非我司 * @params $buyerId int 买家id * @params $buyerNick string 买家昵称 * @params $buyerIp string 买家IP * * @Notice 根据交易类型判断买家和买家的违约截止时间 * 根据交易类型和域名类型更新交易状态值 * */ public function updateTransInfo($transId, $transType, $domainType, $buyerId, $buyerNick, $buyerIp, $orderId) { // 处理买家和卖家的违约时间可以根据交易类型拆分成不同内部函数处理 // 处理交易状态也可以根据交易类型拆分成不同的内部函数处理判断 $newTao = new NewTaoModel(); $tType = \core\Config::item('transType'); $update = array(); /** * 选择update字段 */ if ($breTime = $this->calBreTime($transType, $domainType)) { $update['t_seller_end'] = $breTime; } if ($traSta = $this->calSta($transType, $domainType)) { $update['t_status'] = $traSta; } $update['t_buyer'] = $buyerId; if (!empty($buyerNick)) { $update['t_nickname'] = $buyerNick; } $update['t_buyer_ip'] = $buyerIp; $update['t_complate_time'] = $update['t_last_time'] = $_SERVER['REQUEST_TIME']; $update['t_order_id'] = $orderId; if ($newTao->updateTrans($update, array('t_id' => $transId))) { return true; } else { return false; } }