jh-admin/addon/ali1688/model/NotifyChange.php

333 lines
11 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* SaaSMall商城系统 - 团队十年电商经验汇集巨献!
* =========================================================
* Copy right 2019-2029 成都SAAS云科技有限公司, 保留所有权利。
* ----------------------------------------------
* 官方网址: https://www.gobuysaas.com
* =========================================================
*/
namespace addon\ali1688\model;
use addon\ali1688\model\Config as ConfigModel;
use app\model\BaseModel;
use app\model\system\Cron;
class NotifyChange extends BaseModel
{
public $site_id;
public function Notify($data)
{
if (isset($data['message']) && isset($data['site_id'])) {
$ConfigModel = new ConfigModel();
$this->site_id = $data['site_id'];
$config = $ConfigModel->getConfig($data['site_id'])['data']['value'];
$msg = json_decode($data['message'], true);
file_put_contents($msg['type'] ?? '1688' . '.txt', json_encode($data));
if (!empty($config) && isset($msg['userInfo']) && isset($config['memberId']) && $config['memberId'] == $msg['userInfo']) {
switch ($msg['type']) {
//以下功能已完成
case 'LOGISTICS_BUYER_VIEW_TRACE': //物流变更
$res = $this->LOGISTICS_BUYER_VIEW_TRACE($msg);
break;
case 'ORDER_BUYER_VIEW_ORDER_SELLER_MODIFY_ADRESS': //商家修改订单地址(买家视角)
$res = $this->ORDER_BUYER_VIEW_ORDER_SELLER_MODIFY_ADRESS($msg);
break;
case 'ORDER_BUYER_VIEW_PART_PART_SENDGOODS': //1688订单部分发货
$res = $this->ORDER_BUYER_VIEW_ANNOUNCE_SENDGOODS($msg, 2);
break;
case 'ORDER_BUYER_VIEW_ANNOUNCE_SENDGOODS': //商品发货
$res = $this->ORDER_BUYER_VIEW_ANNOUNCE_SENDGOODS($msg);
break;
case 'ORDER_BUYER_VIEW_BUYER_MAKE': //订单创建成功
$res = $this->ORDER_BUYER_VIEW_BUYER_MAKE($msg);
break;
case 'ORDER_BATCH_PAY': //批量支付状态
$res = $this->ORDER_BATCH_PAY($msg);
break;
case 'ORDER_BUYER_VIEW_ORDER_PAY': //1688交易付款买家视角
$res = $this->ORDER_BUYER_VIEW_ORDER_PAY($msg);
break;
case 'ORDER_BUYER_VIEW_ORDER_SUCCESS': //交易成功
$res = $this->ORDER_BUYER_VIEW_ORDER_SUCCESS($msg);
break;
case 'ORDER_BUYER_VIEW_ORDER_SELLER_CLOSE': //1688订单关闭
$res = $this->ORDER_BUYER_VIEW_ORDER_SELLER_CLOSE($msg);
break;
case 'PRODUCT_RELATION_VIEW_PRODUCT_DELETE': //1688产品删除关系用户视角
case 'PRODUCT_RELATION_VIEW_PRODUCT_AUDIT': //1688产品审核下架关系用户视角
case 'PRODUCT_RELATION_VIEW_PRODUCT_EXPIRE': //1688产品下架关系用户视角
case 'PRODUCT_PFT_OFFER_QUIT': //商品下架
$res = $this->PRODUCT_PFT_OFFER_QUIT($msg);
break;
//未开发不重要
case 'LOGISTICS_MAIL_NO_CHANGE': //快递号修改
$res = $this->LOGISTICS_MAIL_NO_CHANGE($msg);
break;
case 'ORDER_BUYER_VIEW_ORDER_BUYER_REFUND_IN_SALES': //1688订单售中退款买家视角
case 'ORDER_BUYER_VIEW_ORDER_REFUND_AFTER_SALES': //1688订单售后退款买家视角
$res = $this->ORDER_BUYER_VIEW_ORDER_REFUND($msg);
break;
case 'PRODUCT_PFT_OFFER_PRICE_MODIFY': //精选货源商品价格变动消息
case 'PRODUCT_PRODUCT_INVENTORY_CHANGE': //1688商品库存变更消息
case 'PRODUCT_RELATION_VIEW_PRODUCT_CHANGE': //商品变更消息(关系用户视角、包含所有商品变更动作)
case 'PRODUCT_RELATION_VIEW_PRODUCT_REPOST': //1688产品上架关系用户视角
case 'PRODUCT_RELATION_VIEW_PRODUCT_NEW_OR_MODIFY': //1688产品新增或修改关系用户视角
$res = $this->PRODUCT_PFT_OFFER_PRICE_MODIFY($msg);
break;
case 'ORDER_BUYER_VIEW_ORDER_PRICE_MODIFY': //1688修改订单价格
$res = $this->ORDER_BUYER_VIEW_ORDER_PRICE_MODIFY($msg);
break;
default:
$res = 'ok';
break;
}
}
} else {
$res = 'ok';
}
echo $res;
}
/****
* 商品下架
* @param $msg
* @return void
*/
public function PRODUCT_PFT_OFFER_QUIT($msg)
{
$goodsModel = new Goods($this->site_id);
$isDel = 0;
if ($msg['type'] == 'PRODUCT_PFT_OFFER_QUIT') {//产品下架
$offerId = $msg['data']['offerId'];
} else if ($msg['type'] == 'PRODUCT_RELATION_VIEW_PRODUCT_EXPIRE') {//1688产品下架关系用户视角
$offerId = $msg['data']['productIds'];
} else if ($msg['type'] == 'PRODUCT_RELATION_VIEW_PRODUCT_DELETE') {//产品删除
$isDel = 1;
$offerId = $msg['data']['productIds'];
} else if ($msg['type'] == 'PRODUCT_RELATION_VIEW_PRODUCT_AUDIT') {//产品下架
$offerId = $msg['data']['productIds'];
}
$goodsModel->GooodsDelisting($this->site_id, $offerId, $isDel);
return 'ok';
}
/***
* 商品信息变动
* @param $msg
* @return string
*/
public function PRODUCT_PFT_OFFER_PRICE_MODIFY($msg)
{
return 'ok';
}
/***
* 物流变更
* @param $msg
* @return string
*/
public function LOGISTICS_BUYER_VIEW_TRACE($msg)
{
$logistics = $msg['data']['OrderLogisticsTracingModel'] ?? '';
if ($logistics) {
$goodsModel = new Order($this->site_id);
if ($logistics['statusChanged'] == 'CONSIGN') {//订单发货
$goodsModel->SendDelivery($logistics, $this->site_id, 'CONSIGN');
} else if ($logistics['statusChanged'] == 'SIGN') { //订单签收
}
}
return 'ok';
}
/***
* 快递号修改
* @param $msg
* @return string
*/
public function LOGISTICS_MAIL_NO_CHANGE($msg)
{
return 'ok';
}
/**
* 批量支付状态
* @param $msg
* @return string
*/
public function ORDER_BATCH_PAY($msg)
{
$batchPay = $msg['data']['batchPay'] ?? [];
$goodsModel = new Order($this->site_id);
foreach ($batchPay as $key => $value) {
if ($value['status'] == 'successed') {
$where = [
'third_order' => $value['orderId'],
'channel_type' => 1688,
];
$data = [
'pay_status' => 1,
'pay_time' => time(),
];
$goodsModel->updateOrderState($where, $data, $this->site_id);
}
}
return 'ok';
}
/***
* 商品发货
* @param $msg
* @return string
* @throws \Exception
*/
public function ORDER_BUYER_VIEW_ANNOUNCE_SENDGOODS($msg, $order_status = 1)
{
$goodsModel = new Order($this->site_id);
$third_order = $msg['data']['orderId'] ?? 0;
if ($third_order) {
$where = [
'third_order' => $third_order,
'channel_type' => 1688,
];
$data = [
'order_status' => $order_status,
];
$goodsModel->updateOrderState($where, $data, $this->site_id);
}
return 'ok';
}
/***
* 下单成功
* @param $msg
* @return string
* @throws \Exception
*/
public function ORDER_BUYER_VIEW_BUYER_MAKE($msg)
{
$goodsModel = new Order($this->site_id);
$third_order = $msg['data']['orderId'] ?? 0;
if ($third_order) {
$where = [
'third_order' => $third_order,
'channel_type' => 1688,
];
$data = [
'status' => 1,
];
$goodsModel->updateOrderState($where, $data, $this->site_id);
}
return 'ok';
}
/***
* 订单付款
* @param $msg
* @return string
*/
public function ORDER_BUYER_VIEW_ORDER_PAY($msg)
{
$goodsModel = new Order($this->site_id);
$third_order = $msg['data']['orderId'] ?? 0;
if ($third_order) {
$where = [
'third_order' => $third_order,
'channel_type' => 1688,
];
$data = [
'three_pay_status' => 1,
'pay_time' => time(),
];
$goodsModel->updateOrderState($where, $data, $this->site_id);
}
return 'ok';
}
/***
* 订单价格修改
* @param $msg
* @return string
*/
public function ORDER_BUYER_VIEW_ORDER_PRICE_MODIFY($msg)
{
return 'ok';
}
/***
* 交易订单关闭
* @param $msg
* @return string
*/
public function ORDER_BUYER_VIEW_ORDER_SELLER_CLOSE($msg)
{
$goodsModel = new Order($this->site_id);
$third_order = $msg['data']['orderId'] ?? 0;
if ($third_order) {
$where = [
'third_order' => $third_order,
'channel_type' => 1688,
];
$data = [
'order_status' => -1,
];
$goodsModel->updateOrderState($where, $data, $this->site_id);
$cron_model = new Cron();
$order_id = model('supply_order')->getValue($where, 'order_id');
$cron_model->addCron(1, 0, '订单自动关闭', 'CronOrderClose', time(), $order_id);
}
return 'ok';
}
/***
* 商家修改订单地址
* @param $msg
* @return string
*/
public function ORDER_BUYER_VIEW_ORDER_SELLER_MODIFY_ADRESS($msg)
{
return 'ok';
}
/***
* 交易成功
* @param $msg
* @return string
*/
public function ORDER_BUYER_VIEW_ORDER_SUCCESS($msg)
{
$goodsModel = new Order($this->site_id);
$third_order = $msg['data']['orderId'] ?? 0;
if ($third_order) {
$where = [
'third_order' => $third_order,
'channel_type' => 1688,
];
$data = [
'order_status' => 10,
];
$goodsModel->updateOrderState($where, $data, $this->site_id);
}
return 'ok';
}
/***
* 交易退款售后
* @param $msg
* @return string
*/
public function ORDER_BUYER_VIEW_ORDER_REFUND($msg)
{
return 'ok';
}
}