初始上传
This commit is contained in:
27
app/event/order/CronOrderAfterSaleClose.php
Executable file
27
app/event/order/CronOrderAfterSaleClose.php
Executable file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace app\event\order;
|
||||
|
||||
use app\model\order\OrderCommon;
|
||||
|
||||
/**
|
||||
* 订单完成之后达到时间自动关闭售后服务
|
||||
*/
|
||||
class CronOrderAfterSaleClose
|
||||
{
|
||||
// 行为扩展的执行入口必须是run
|
||||
public function handle($data)
|
||||
{
|
||||
$order = new OrderCommon();
|
||||
//订单自动完成
|
||||
return $order->orderAfterSaleClose($data["relate_id"]);
|
||||
}
|
||||
}
|
||||
36
app/event/order/CronOrderClose.php
Executable file
36
app/event/order/CronOrderClose.php
Executable file
@@ -0,0 +1,36 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace app\event\order;
|
||||
|
||||
use app\model\order\OrderCommon;
|
||||
use app\model\order\OrderCron;
|
||||
use app\model\system\Cron;
|
||||
|
||||
/**
|
||||
* 订单自动关闭
|
||||
*/
|
||||
class CronOrderClose
|
||||
{
|
||||
// 行为扩展的执行入口必须是run
|
||||
public function handle($data)
|
||||
{
|
||||
$order = new OrderCommon();
|
||||
$order_info = $order->getOrderInfo([ ['order_id', '=', $data['relate_id'] ] ], '*')['data'] ?? [];
|
||||
if (!empty($order_info) && $order_info['order_status'] == 0 && $order_info['pay_type'] != 'offlinepay') {
|
||||
$result = $order->orderClose($data['relate_id'], [], '长时间未支付,订单自动关闭');//订单自动关闭
|
||||
//todo 如果关闭失败,就再创建一个自动关闭任务
|
||||
if(empty($result) && empty($result['code']) && $result['code'] < 0){
|
||||
OrderCron::close(['site_id' => $order_info['site_id'], 'order_id' => $order_info['order_id']]);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
}
|
||||
27
app/event/order/CronOrderComplete.php
Executable file
27
app/event/order/CronOrderComplete.php
Executable file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace app\event\order;
|
||||
|
||||
use app\model\order\OrderCommon;
|
||||
|
||||
/**
|
||||
* 订单自动完成
|
||||
*/
|
||||
class CronOrderComplete
|
||||
{
|
||||
// 行为扩展的执行入口必须是run
|
||||
public function handle($data)
|
||||
{
|
||||
$order = new OrderCommon();
|
||||
//订单自动完成
|
||||
return $order->orderComplete($data['relate_id']);
|
||||
}
|
||||
}
|
||||
31
app/event/order/CronOrderTakeDelivery.php
Executable file
31
app/event/order/CronOrderTakeDelivery.php
Executable file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace app\event\order;
|
||||
|
||||
use app\model\order\OrderCommon;
|
||||
|
||||
/**
|
||||
* 订单自动收货
|
||||
*/
|
||||
class CronOrderTakeDelivery
|
||||
{
|
||||
// 行为扩展的执行入口必须是run
|
||||
public function handle($data)
|
||||
{
|
||||
|
||||
$order = new OrderCommon();
|
||||
$order_info_result = $order->getOrderInfo([ ['order_id', '=', $data['relate_id'] ] ], 'order_status');
|
||||
if (isset($order_info_result['data']['order_status']) && $order_info_result['data']['order_status'] != 10) {
|
||||
//订单自动收货
|
||||
return $order->orderCommonTakeDelivery($data['relate_id']);
|
||||
}
|
||||
}
|
||||
}
|
||||
30
app/event/order/CronOrderUrgePayment.php
Executable file
30
app/event/order/CronOrderUrgePayment.php
Executable file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace app\event\order;
|
||||
|
||||
use app\model\message\Message;
|
||||
use app\model\order\OrderCommon;
|
||||
|
||||
/**
|
||||
* 订单催付通知
|
||||
*/
|
||||
class CronOrderUrgePayment
|
||||
{
|
||||
// 行为扩展的执行入口必须是run
|
||||
public function handle($params)
|
||||
{
|
||||
$order_info = ( new OrderCommon() )->getOrderInfo([ [ 'order_id', '=', $params[ 'relate_id' ] ], [ 'order_status', '=', OrderCommon::ORDER_CREATE ] ], 'site_id')[ 'data' ];
|
||||
if (!empty($order_info)) {
|
||||
( new Message() )->sendMessage([ 'keywords' => 'ORDER_URGE_PAYMENT', 'order_id' => $params[ 'relate_id' ], 'site_id' => $order_info[ 'site_id' ] ]);
|
||||
}
|
||||
return success();
|
||||
}
|
||||
}
|
||||
39
app/event/order/OfflinePay.php
Executable file
39
app/event/order/OfflinePay.php
Executable file
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace app\event\order;
|
||||
|
||||
use app\model\order\OrderCommon;
|
||||
|
||||
/**
|
||||
* 订单支付成功同步事件
|
||||
*/
|
||||
class OfflinePay
|
||||
{
|
||||
/**
|
||||
* 线下支付提交后记录支付方式
|
||||
* @param $pay_info
|
||||
* @return array|void
|
||||
*/
|
||||
public function handle($pay_info)
|
||||
{
|
||||
if($pay_info['event'] == 'OrderPayNotify'){
|
||||
$order_model = new OrderCommon();
|
||||
$pay_type_list = $order_model->getPayType();
|
||||
$res = $order_model->orderUpdate([
|
||||
'pay_type' => $pay_info['pay_type'],
|
||||
'pay_type_name' => $pay_type_list[$pay_info['pay_type']] ?? '',
|
||||
], [['out_trade_no', '=', $pay_info['out_trade_no']]]);
|
||||
return $res;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
64
app/event/order/OrderComplete.php
Executable file
64
app/event/order/OrderComplete.php
Executable file
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace app\event\order;
|
||||
|
||||
use app\model\member\Member;
|
||||
use app\model\member\MemberAccount;
|
||||
use app\model\member\MemberLevel;
|
||||
use app\model\order\OrderCommon;
|
||||
|
||||
/**
|
||||
* 订单完成事件
|
||||
*/
|
||||
class OrderComplete
|
||||
{
|
||||
|
||||
// 行为扩展的执行入口必须是run
|
||||
public function handle($data)
|
||||
{
|
||||
//订单返还积分
|
||||
$order_model = new OrderCommon();
|
||||
$condition = [
|
||||
[ 'order_id', '=', $data[ 'order_id' ] ]
|
||||
];
|
||||
$order_info = $order_model->getOrderInfo($condition, 'order_money,order_status,site_id,member_id')[ 'data' ] ?? [];
|
||||
//如果缺失已完成
|
||||
if ($order_info[ 'order_status' ] == 10) {
|
||||
//会员等级 计算积分返还比率
|
||||
$site_id = $order_info[ 'site_id' ];
|
||||
$member_id = $order_info[ 'member_id' ];
|
||||
//存在散客的情况
|
||||
if ($member_id > 0) {
|
||||
$member_model = new Member();
|
||||
$member_info_result = $member_model->getMemberInfo([ [ 'member_id', '=', $member_id ], [ 'site_id', '=', $site_id ] ], 'member_level');
|
||||
$member_info = $member_info_result[ 'data' ];
|
||||
if ($member_info[ 'member_level' ] > 0) {
|
||||
$member_level_model = new MemberLevel();
|
||||
$member_level_info_result = $member_level_model->getMemberLevelInfo([ [ 'level_id', '=', $member_info[ 'member_level' ] ], [ 'site_id', '=', $site_id ] ], 'point_feedback');
|
||||
$member_level_info = $member_level_info_result[ 'data' ];
|
||||
if ($member_level_info[ 'point_feedback' ] > 0) {
|
||||
//计算返还的积分
|
||||
$point = round($order_info[ 'order_money' ] * $member_level_info[ 'point_feedback' ]);
|
||||
$member_account_model = new MemberAccount();
|
||||
$result = $member_account_model->addMemberAccount($site_id, $member_id, 'point', $point, 'order', '会员消费回馈积分', '会员消费奖励发放');
|
||||
if ($result[ 'code' ] < 0) {
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return $order_model->success();
|
||||
}
|
||||
|
||||
}
|
||||
43
app/event/order/OrderCreate.php
Executable file
43
app/event/order/OrderCreate.php
Executable file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace app\event\order;
|
||||
|
||||
use app\model\goods\Cart;
|
||||
use app\model\system\Stat;
|
||||
|
||||
/**
|
||||
* 订单支付后店铺点单计算
|
||||
*/
|
||||
class OrderCreate
|
||||
{
|
||||
/**
|
||||
* 订单创建后事件
|
||||
* @param unknown $data
|
||||
*/
|
||||
public function handle($data)
|
||||
{
|
||||
/** @var \app\model\order\OrderCreate $order_object */
|
||||
$order_data = $data['create_data'];
|
||||
|
||||
$site_id = $order_data['site_id'];
|
||||
$order_id = $order_data['order_id'];
|
||||
$member_id = $order_data['member_id'];
|
||||
//添加统计
|
||||
$stat = new Stat();
|
||||
return $stat->switchStat([ 'type' => 'order_create', 'data' => [
|
||||
'site_id' => $site_id,
|
||||
'order_id' => $order_id,
|
||||
'member_id' => $member_id,
|
||||
'order_data' => $order_data
|
||||
] ]);
|
||||
}
|
||||
|
||||
}
|
||||
97
app/event/order/OrderCreateAfter.php
Executable file
97
app/event/order/OrderCreateAfter.php
Executable file
@@ -0,0 +1,97 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace app\event\order;
|
||||
|
||||
use app\model\goods\Cart;
|
||||
use app\model\message\Message;
|
||||
use app\model\order\OrderCommon;
|
||||
use app\model\order\OrderLog;
|
||||
use app\model\system\Stat;
|
||||
|
||||
/**
|
||||
* 订单创建后事件
|
||||
*/
|
||||
class OrderCreateAfter
|
||||
{
|
||||
/**
|
||||
* 传入订单信息
|
||||
* @param unknown $data
|
||||
*/
|
||||
public function handle($data)
|
||||
{
|
||||
//添加自动关闭事件
|
||||
/** @var \app\model\order\OrderCreate $order_object */
|
||||
$order_object = $data['order_object'];
|
||||
//清理订单缓存
|
||||
$order_object->deleteOrderCache($order_object->order_key);
|
||||
$order_data = $data['create_data'];
|
||||
$site_id = $order_data['site_id'];
|
||||
$order_id = $order_data['order_id'];
|
||||
$member_id = $order_data['member_id'];
|
||||
// $site_id = $order_object->site_id;
|
||||
// $order_id = $order_object->order_id;
|
||||
// $member_id = $order_object->member_id;
|
||||
//添加自动关闭事件
|
||||
$order_object->addOrderCronClose();
|
||||
//写日志
|
||||
$log_data = $order_data['log'] ?? [];
|
||||
if(!$log_data){
|
||||
//记录订单日志 start
|
||||
//获取用户信息
|
||||
$member_info = $order_object->member_account;
|
||||
|
||||
$buyer_name = !empty($member_info['nickname']) ? '【' . $member_info['nickname'] . '】' : '';
|
||||
$log_data = [
|
||||
'order_id' => $order_id,
|
||||
'action' => '买家下单了',
|
||||
'uid' => $member_id,
|
||||
'nick_name' => $member_info['nickname'],
|
||||
'action_way' => 1,
|
||||
'order_status' => 0,
|
||||
'order_status_name' => $order_object->order_type['order_status']['name']
|
||||
];
|
||||
}
|
||||
$order_common_model = new OrderCommon();
|
||||
OrderLog::addOrderLog($log_data, $order_common_model);
|
||||
//记录订单日志 end
|
||||
|
||||
|
||||
//清除购物车数据
|
||||
$cart_ids = $order_object->cart_ids;
|
||||
if (!empty($cart_ids)) {
|
||||
$cart = new Cart();
|
||||
$data_cart = [
|
||||
'cart_id' => $cart_ids,
|
||||
'member_id' => $member_id
|
||||
];
|
||||
if ($order_object->jielong_id == 0) {
|
||||
$cart->deleteCart($data_cart);
|
||||
}
|
||||
}
|
||||
//发送消息
|
||||
if($member_id > 0){
|
||||
//订单创建发消息
|
||||
$message_model = new Message();
|
||||
$message_model->sendMessage(['keywords' => 'ORDER_CREATE', 'order_id' => $order_id, 'site_id' => $site_id]);
|
||||
}
|
||||
|
||||
//添加统计
|
||||
$stat = new Stat();
|
||||
$stat->switchStat([ 'type' => 'order_create', 'data' => [
|
||||
'site_id' => $site_id,
|
||||
'order_id' => $order_id,
|
||||
'member_id' => $member_id,
|
||||
'order_data' => $order_data
|
||||
] ]);
|
||||
return success();
|
||||
}
|
||||
|
||||
}
|
||||
29
app/event/order/OrderPay.php
Executable file
29
app/event/order/OrderPay.php
Executable file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace app\event\order;
|
||||
|
||||
use app\model\system\Stat;
|
||||
|
||||
/**
|
||||
* 订单支付成功同步事件
|
||||
*/
|
||||
class OrderPay
|
||||
{
|
||||
/**
|
||||
* 传入订单信息
|
||||
* @param unknown $data
|
||||
*/
|
||||
public function handle($data)
|
||||
{
|
||||
return success();
|
||||
}
|
||||
|
||||
}
|
||||
31
app/event/order/OrderPayAfter.php
Executable file
31
app/event/order/OrderPayAfter.php
Executable file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace app\event\order;
|
||||
|
||||
use app\model\system\Stat;
|
||||
|
||||
/**
|
||||
* 订单支付成功异步事件
|
||||
*/
|
||||
class OrderPayAfter
|
||||
{
|
||||
/**
|
||||
* 传入订单信息
|
||||
* @param unknown $data
|
||||
*/
|
||||
public function handle($data)
|
||||
{
|
||||
//添加统计
|
||||
$stat = new Stat();
|
||||
return $stat->switchStat([ 'type' => 'order_pay', 'data' => $data ]);
|
||||
}
|
||||
|
||||
}
|
||||
29
app/event/order/OrderPayNotify.php
Executable file
29
app/event/order/OrderPayNotify.php
Executable file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace app\event\order;
|
||||
|
||||
use app\model\order\OrderCommon;
|
||||
|
||||
/**
|
||||
* 订单异步回调执行
|
||||
*/
|
||||
class OrderPayNotify
|
||||
{
|
||||
|
||||
// 行为扩展的执行入口必须是run
|
||||
public function handle($data)
|
||||
{
|
||||
$order = new OrderCommon();
|
||||
return $order->orderOnlinePay($data);
|
||||
}
|
||||
|
||||
}
|
||||
68
app/event/order/OrderRefundFinish.php
Executable file
68
app/event/order/OrderRefundFinish.php
Executable file
@@ -0,0 +1,68 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace app\event\order;
|
||||
|
||||
use app\dict\order\OrderDict;
|
||||
use app\model\member\Member;
|
||||
use app\model\member\MemberAccount;
|
||||
use app\model\member\MemberLevel;
|
||||
use app\model\order\OrderCommon;
|
||||
use app\model\verify\Verify;
|
||||
|
||||
/**
|
||||
* 订单项退款完成后
|
||||
*/
|
||||
class OrderRefundFinish
|
||||
{
|
||||
|
||||
// 行为扩展的执行入口必须是run
|
||||
public function handle($data)
|
||||
{
|
||||
$order_info = $data['order_info'];
|
||||
if (!empty($order_info) && in_array($order_info['order_type'], [OrderDict::store, OrderDict::virtual])) {
|
||||
$order_goods_info = $data['order_goods_info'];
|
||||
//核销商品操作
|
||||
if ($order_info['order_type'] == OrderDict::store) {//自提订单
|
||||
$verify_code = $order_info['delivery_code'];
|
||||
} else //虚拟订单
|
||||
$verify_code = $order_info['virtual_code'];
|
||||
|
||||
$verify_model = new Verify();
|
||||
$verify_condition = [
|
||||
['verify_code', '=', $verify_code]
|
||||
];
|
||||
$verify_info = $verify_model->getVerifyInfo($verify_condition)['data'] ?? [];
|
||||
if (!empty($verify_info)) {
|
||||
$json_data = $verify_info['data'];
|
||||
$item_array = $json_data['item_array'];
|
||||
foreach ($item_array as $k => $v) {
|
||||
if ($v['order_goods_id'] == $order_goods_info['order_goods_id']) {
|
||||
unset($item_array[$k]);
|
||||
}
|
||||
}
|
||||
sort($item_array);
|
||||
$json_data['item_array'] = $item_array;
|
||||
|
||||
$json_string = json_encode($json_data, JSON_UNESCAPED_UNICODE);
|
||||
$verify_data = [
|
||||
'verify_content_json' => $json_string
|
||||
];
|
||||
$verify_result = $verify_model->editVerify($verify_data, $verify_condition);
|
||||
if ($verify_result['code'] < 0) {
|
||||
return $verify_result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
30
app/event/order/WapOrderDetailPathByPayInfo.php
Executable file
30
app/event/order/WapOrderDetailPathByPayInfo.php
Executable file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace app\event\order;
|
||||
|
||||
use app\model\order\OrderCommon;
|
||||
|
||||
/**
|
||||
* 通过支付信息获取手机端订单详情路径
|
||||
*/
|
||||
class WapOrderDetailPathByPayInfo
|
||||
{
|
||||
public function handle($data)
|
||||
{
|
||||
if($data['event'] == 'OrderPayNotify'){
|
||||
$order_common = new OrderCommon();
|
||||
$order_info = $order_common->getOrderInfo([['out_trade_no', '=', $data['out_trade_no']]], 'order_id')['data'];
|
||||
if(!empty($order_info)){
|
||||
return '/pages/order/detail?order_id='.$order_info['order_id'];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user