Ejemplo n.º 1
0
function process_message($msg)
{
    $dataStr = $msg->body;
    print_r($dataStr);
    //print
    // 	$filename = '/data/web/purchase.valsun.cn/log/superorder.txt';
    // 	file_put_contents($filename, date("Y-m-d H:i:s")."\t".$dataStr."\r\n", FILE_APPEND);
    if (empty($dataStr)) {
        return;
    }
    $dataArr = json_decode($dataStr, true);
    if (!isset($dataArr['omOrderId'], $dataArr['omOrderdetailId'], $dataArr['sku'], $dataArr['amount'])) {
        return;
    }
    reconnect();
    //mysql 重新连接
    $where = "omOrderdetailId='{$dataArr['omOrderdetailId']}' and omOrderId='{$dataArr['omOrderId']}' and sku='{$dataArr['sku']}' and is_delete=0 ";
    try {
        $row = SuperorderAuditModel::getOne('id, amount', $where);
    } catch (Exception $e) {
        print_r(array($e->getMessage(), $e->getTraceAsString()));
        return;
    }
    $data_array = array();
    $data_array['omOrderId'] = $dataArr['omOrderId'];
    $data_array['omOrderdetailId'] = $dataArr['omOrderdetailId'];
    $data_array['sku'] = $dataArr['sku'];
    $data_array['amount'] = $dataArr['amount'];
    if (!empty($row)) {
        if ($row['amount'] != $dataArr['amount'] && $dataArr['amount'] != 0) {
            $where = " id='{$row['id']}'";
            $isOk = SuperorderAuditModel::update(array('is_delete' => 1), $where);
            if ($isOk) {
                $data_array['addTime'] = time();
                $isOk = SuperorderAuditModel::add($data_array);
            }
        }
        // 		echo '111'."\n";
        // 		var_dump($isOk);
    } else {
        $data_array['addTime'] = time();
        $isOk = SuperorderAuditModel::add($data_array);
        // 		echo '222'."\n";
        // 		var_dump($isOk);
    }
    if ($isOk) {
        $msg->delivery_info['channel']->basic_ack($msg->delivery_info['delivery_tag']);
    }
}