Esempio n. 1
0
 /**
  * 获取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;
             }
         }
     }
 }
Esempio n. 2
0
 /**
  * 判断一口价交易卖家是否违约
  */
 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);
         }
     }
 }
Esempio n. 3
0
 /**
  * 复制非我司域名的交易信息到new_trans_result表,状态需要修改
  * @param $transInfo array [交易信息]
  * @param $status int [修改交易状态]
  * @param $finishTime int [交易完成时间]
  * @return int|boolean [lastid or false]
  */
 public function copyToResult($transInfo, $status, $finishTime = false)
 {
     $transInfo['t_status'] = $status;
     $transInfo['t_last_time'] = $transInfo['t_complate_time'] = !$finishTime ? $_SERVER['REQUEST_TIME'] : $finishTime;
     $resModel = new NewTransResultModel();
     $res = $resModel->setTransResult($transInfo);
     if (!$res) {
         \core\Logger::write("domain.log", array(__METHOD__, "域名{$domain}插入到交易结果表new_trans_result失败,发布时间:" . date('Y-m-d H:i:s', $_SERVER['REQUEST_TIME'])));
     }
     return $res;
 }
Esempio n. 4
0
 /**
  * 我司域名根据交易类型检查是否符合发布交易条件,并从历史交易表取出可交易的域名的历史简介和是否推荐标志
  * @param int $uId 用户id
  * @param s $domain 格式:array('abc.com'=>array('expireTime'=>121212,'regTime'=>454545,'domianStatus'=>2))
  *
  * @param s $type
  *        	int
  *
  */
 public function comCheck($uId, $domain, $type, $info)
 {
     //我司域名  判断过期时间  注册时间  域名状态
     // 判断是否是 cn 域名   是的 必须注册满7天
     // 检测我司的域名 状态 获取域名状态对应的msg
     $status = $info['domianStatus'];
     $domainStatusConf = \core\Config::item('domainStatus');
     if ($status != 1) {
         return array('flag' => false, 'msg' => '域名状态为:' . $domainStatusConf[$status] . '中,无法发布!');
     }
     if ($this->checkCnDomainByRegtime($domain, strtotime($info['regTime']))) {
         return array('flag' => false, 'msg' => '该域名注册未满7天不能发布交易!');
     }
     //  根据type 判断过期时间
     $res = $this->checkExpTimeByType($type, strtotime($info['expireTime']));
     if ($res['flag']) {
         return array('flag' => false, 'msg' => '域名将在' . $res['msg'] . '天内过期,无法发布!');
     }
     $newTransResult = new NewTransResultModel();
     // 获取可交易域名的简介和推荐标识
     if ($domainInfo = $newTransResult->getDescAndHot($uId, $domain)) {
         // is hot  写入redis,  promote:uid.domain
         if ($domainInfo->t_hot) {
             $redis = \core\driver\Redis::getInstance('default');
             $redis->setex('promote:' . $domainInfo->t_enameId . $domain, 1800, $domainInfo->t_hot);
         }
         return array('flag' => true, 'msg' => $domainInfo->t_desc);
     }
     return array('flag' => true, 'msg' => '');
 }