初始上传
This commit is contained in:
22
addon/store/event/AddStore.php
Executable file
22
addon/store/event/AddStore.php
Executable file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\store\event;
|
||||
|
||||
/**
|
||||
*添加门店
|
||||
*/
|
||||
class AddStore
|
||||
{
|
||||
|
||||
public function handle($data)
|
||||
{
|
||||
}
|
||||
}
|
||||
27
addon/store/event/GoodsEdit.php
Executable file
27
addon/store/event/GoodsEdit.php
Executable file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\store\event;
|
||||
|
||||
use addon\store\model\StoreGoods;
|
||||
|
||||
/**
|
||||
* 商品编辑之后
|
||||
*/
|
||||
class GoodsEdit
|
||||
{
|
||||
|
||||
public function handle($data)
|
||||
{
|
||||
$goods = new StoreGoods();
|
||||
$goods->goodsEditAfter($data['goods_id'], $data['site_id']);
|
||||
}
|
||||
}
|
||||
39
addon/store/event/GoodsSkuStock.php
Executable file
39
addon/store/event/GoodsSkuStock.php
Executable file
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\store\event;
|
||||
|
||||
use addon\store\model\StoreGoodsSku;
|
||||
|
||||
class GoodsSkuStock
|
||||
{
|
||||
|
||||
public function handle($params)
|
||||
{
|
||||
//todo 优化
|
||||
$order_object = $params['order_object'];
|
||||
$store_goods_sku_model = new StoreGoodsSku();
|
||||
foreach ($params[ 'goods_list' ] as $v) {
|
||||
$condition = array (
|
||||
[ 'store_id', '=', $order_object->delivery[ 'store_id' ] ],
|
||||
[ 'sku_id', '=', $v[ 'sku_id' ] ]
|
||||
);
|
||||
$store_sku_info = model('store_goods_sku')->getInfo($condition, 'id, goods_id, stock');
|
||||
if (empty($store_sku_info)) {
|
||||
return $store_goods_sku_model->error([ 'error_code' => 11 ], '当前门店库存不足,请选择其他门店');
|
||||
}
|
||||
$store_sku_info[ 'stock' ] = numberFormat($store_sku_info[ 'stock' ]);
|
||||
if (( $store_sku_info[ 'stock' ] - $v[ 'num' ] ) < 0) {
|
||||
return $store_goods_sku_model->error([ 'error_code' => 11 ], '当前门店库存不足,请选择其他门店');
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
32
addon/store/event/Install.php
Executable file
32
addon/store/event/Install.php
Executable file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\store\event;
|
||||
|
||||
use app\model\system\Menu;
|
||||
|
||||
/**
|
||||
* 应用安装
|
||||
*/
|
||||
class Install
|
||||
{
|
||||
/**
|
||||
* 执行安装
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
|
||||
$menu = new Menu();
|
||||
$menu->refreshMenu("store", "store");
|
||||
$menu->refreshCashierAuth('store');
|
||||
return success();
|
||||
}
|
||||
}
|
||||
43
addon/store/event/OrderClose.php
Executable file
43
addon/store/event/OrderClose.php
Executable file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\store\event;
|
||||
|
||||
use addon\store\model\StoreGoodsSku;
|
||||
use app\model\order\OrderCommon;
|
||||
|
||||
/**
|
||||
* 关闭订单返还门店库存
|
||||
*/
|
||||
class OrderClose
|
||||
{
|
||||
|
||||
public function handle($data)
|
||||
{
|
||||
// $order_model = new OrderCommon();
|
||||
// $order_info_result = $order_model->getOrderInfo([['order_id', '=', $data['order_id']]], 'site_id,member_id,delivery_store_id');
|
||||
// $order_info = $order_info_result['data'];
|
||||
//
|
||||
// if ($order_info["delivery_store_id"] > 0) {
|
||||
// //减少库存
|
||||
// $order_goods_list_result = $order_model->getOrderGoodsList([['order_id', '=', $data['order_id']]], "num,sku_id");
|
||||
// $order_goods_list = $order_goods_list_result["data"];
|
||||
// foreach ($order_goods_list as $k => $v) {
|
||||
// $store_goods_sku_model = new StoreGoodsSku();
|
||||
// $stock_result = $store_goods_sku_model->incStock(["store_id" => $order_info["delivery_store_id"], "sku_id" => $v["sku_id"], 'stock' => $v["num"]]);
|
||||
// if ($stock_result["code"] < 0) {
|
||||
// return $stock_result;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
||||
}
|
||||
26
addon/store/event/OrderComplete.php
Executable file
26
addon/store/event/OrderComplete.php
Executable file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\store\event;
|
||||
|
||||
use addon\store\model\StoreOrder;
|
||||
|
||||
/**
|
||||
* 添加下单用户为门店用户
|
||||
*/
|
||||
class OrderComplete
|
||||
{
|
||||
public function handle($order)
|
||||
{
|
||||
$store_order = new StoreOrder();
|
||||
$res = $store_order->orderComplete($order[ 'order_id' ]);
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
37
addon/store/event/OrderCreateAfter.php
Executable file
37
addon/store/event/OrderCreateAfter.php
Executable file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\store\event;
|
||||
|
||||
use addon\store\model\StoreMember as StoreMemberModel;
|
||||
use app\model\order\OrderCommon;
|
||||
|
||||
/**
|
||||
* 添加下单用户为门店用户
|
||||
*/
|
||||
class OrderCreateAfter
|
||||
{
|
||||
public function handle($data)
|
||||
{
|
||||
$order_data = $data['create_data'] ?? [];
|
||||
$delivery_store_id = $order_data['delivery_store_id'] ?? 0;
|
||||
$member_id = $order_data['member_id'] ?? 0;
|
||||
if ($delivery_store_id > 0 && $member_id > 0) {
|
||||
//添加门店关注记录
|
||||
$shop_member_model = new StoreMemberModel();
|
||||
$res = $shop_member_model->addStoreMember($delivery_store_id, $member_id);
|
||||
if ($res["code"] < 0) {
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
229
addon/store/event/OrderCreateCommonData.php
Executable file
229
addon/store/event/OrderCreateCommonData.php
Executable file
@@ -0,0 +1,229 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 上海牛之云网络科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
|
||||
* 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\store\event;
|
||||
|
||||
use addon\cashier\model\order\CashierOrderPay;
|
||||
use app\model\express\Express;
|
||||
use app\model\express\Local;
|
||||
use app\model\order\OrderCommon;
|
||||
use app\model\order\OrderCreateTool;
|
||||
use app\model\store\Store;
|
||||
|
||||
/**
|
||||
* 订单创建相关
|
||||
*/
|
||||
class OrderCreateCommonData
|
||||
{
|
||||
use OrderCreateTool;
|
||||
// 行为扩展的执行入口必须是run
|
||||
public function handle($params)
|
||||
{
|
||||
/** @var \app\model\order\OrderCreate $order_object */
|
||||
$order_object = $params['order_object'];
|
||||
|
||||
$type = $params['type'];
|
||||
$store_id = $order_object->store_id ?? 0;
|
||||
$site_id = $order_object->site_id;
|
||||
if($store_id == 0)
|
||||
return null;
|
||||
|
||||
$store_model = new Store();
|
||||
$store_condition = array(
|
||||
['store_id', '=', $store_id]
|
||||
);
|
||||
$store_info = $store_model->getStoreInfo($store_condition)['data'] ?? [];
|
||||
$store_is_express = $store_info['is_express'];
|
||||
$store_is_o2o = $store_info['is_o2o'];
|
||||
$store_is_pickup = $store_info['is_pickup'];
|
||||
|
||||
$store_config_model = new \addon\store\model\Config();
|
||||
|
||||
$store_config = $store_config_model->getStoreBusinessConfig($site_id)['data']['value'] ?? [];
|
||||
$deliver_type_sort = $order_object->config('delivery_type_sort');
|
||||
$deliver_sort_list = explode(',', $deliver_type_sort['value']['deliver_type']);
|
||||
// $deliver_sort_list = $params['deliver_sort_list'];
|
||||
$latitude = $order_object->param[ 'latitude' ] ?? 0;
|
||||
$longitude= $order_object->param[ 'longitude' ] ?? 0;
|
||||
$order_model = new OrderCommon();
|
||||
switch($type){
|
||||
case 'trade':
|
||||
|
||||
//必须是连锁模式 还需要判断某一个插件是否存在
|
||||
if($store_id > 0 && $store_config['store_business'] == 'store'){
|
||||
|
||||
foreach ($deliver_sort_list as $type) {
|
||||
// 物流
|
||||
if ($type == 'express') {
|
||||
$store_is_express = $store_is_express ?? 0;
|
||||
if($store_is_express == 1){
|
||||
$title = $order_object->config('express')[ 'value' ][ 'express_name' ];
|
||||
if ($title == '') {
|
||||
$title = Express::express_type[ 'express' ][ 'title' ];
|
||||
}
|
||||
$express_type[] = [ 'title' => $title, 'name' => 'express' ];
|
||||
}
|
||||
|
||||
}
|
||||
// 自提
|
||||
if ($type == 'store') {
|
||||
$store_is_pickup = $store_is_pickup ?? 0;
|
||||
if($store_is_pickup == 1){
|
||||
//根据坐标查询门店
|
||||
$store_model = new Store();
|
||||
$store_condition = array (
|
||||
[ 'site_id', '=', $site_id ],
|
||||
[ 'is_pickup', '=', 1 ],
|
||||
[ 'status', '=', 1 ],
|
||||
[ 'is_frozen', '=', 0 ],
|
||||
);
|
||||
$store_condition[] = ['store_id', '=', $store_id];
|
||||
$latlng = array (
|
||||
'lat' => $latitude,
|
||||
'lng' => $longitude,
|
||||
);
|
||||
$store_list = $store_model->getLocationStoreList($store_condition, '*', $latlng)['data'] ?? [];
|
||||
|
||||
$title = $order_object->config('store')[ 'value' ][ 'store_name' ];
|
||||
if ($title == '') {
|
||||
$title = Express::express_type[ 'store' ][ 'title' ];
|
||||
}
|
||||
$express_type[] = [ 'title' => $title, 'name' => 'store', 'store_list' => $store_list ];
|
||||
}
|
||||
|
||||
}
|
||||
// 外卖
|
||||
if ($type == 'local') {
|
||||
|
||||
$store_is_o2o = $store_is_o2o ?? 0;
|
||||
if($store_is_o2o == 1){
|
||||
//查询本店的通讯地址
|
||||
$title = $order_object->config('local')[ 'value' ][ 'local_name' ];
|
||||
if ($title == '') {
|
||||
$title = '外卖配送';
|
||||
}
|
||||
$store_model = new Store();
|
||||
$local_condition = array (
|
||||
[ 'site_id', '=', $site_id ],
|
||||
);
|
||||
// if (addon_is_exit('store', $site_id)) {
|
||||
$local_condition[] = [ 'is_o2o', '=', 1 ];
|
||||
$local_condition[] = [ 'status', '=', 1 ];
|
||||
$local_condition[] = [ 'is_frozen', '=', 0 ];
|
||||
// } else {
|
||||
// $store_condition[] = ['is_default', '=', 1];
|
||||
// }
|
||||
|
||||
$local_condition[] = ['store_id', '=', $store_id];
|
||||
|
||||
$latlng = array (
|
||||
'lat' => $latitude,
|
||||
'lng' => $longitude,
|
||||
);
|
||||
$local_store_list = $store_model->getLocationStoreList($local_condition, '*', $latlng)['data'] ?? [];
|
||||
$express_type[] = [ 'title' => $title, 'name' => 'local', 'store_list' => $local_store_list ];
|
||||
}
|
||||
}
|
||||
}
|
||||
return $order_model->success($express_type ?? []);
|
||||
}
|
||||
|
||||
break;
|
||||
case 'trade_calc':
|
||||
if($store_id > 0 && $store_config['store_business'] == 'store'){
|
||||
|
||||
//如果本地配送开启, 则查询出本地配送的配置
|
||||
$local_model = new Local();
|
||||
$local_info = $local_model->getLocalInfo([ [ 'site_id', '=', $site_id ], ['store_id', '=', $store_id ] ])['data'] ?? [];
|
||||
$order_object->delivery[ 'local' ][ 'info' ] = $local_info;
|
||||
|
||||
|
||||
$delivery_array = $order_object->param[ 'delivery' ] ?? [];
|
||||
$delivery_type = $delivery_array[ 'delivery_type' ] ?? 'express';
|
||||
|
||||
if ($delivery_type == 'store') {
|
||||
//门店自提
|
||||
$delivery_money = 0;
|
||||
$order_object->delivery[ 'delivery_type' ] = 'store';
|
||||
if ($store_is_pickup == 0) {
|
||||
$error = ['error_msg' => '门店自提方式未开启!'];
|
||||
}
|
||||
|
||||
$order_object->delivery[ 'store_id' ] = $delivery_array[ 'store_id' ] ?? 0;
|
||||
// $order_object->delivery[ 'buyer_ask_delivery_time' ] = $delivery_array[ 'buyer_ask_delivery_time' ] ?? [];
|
||||
//同步门店信息
|
||||
$order_object->storeOrderData();
|
||||
} else {
|
||||
if (empty($order_object->delivery[ 'member_address' ])) {
|
||||
$delivery_money = 0;
|
||||
$order_object->delivery[ 'delivery_type' ] = 'express';
|
||||
$error = ['error_msg' => '未配置默认收货地址!'];
|
||||
} else {
|
||||
if ($delivery_type == 'express') {
|
||||
if ($store_is_express == 1) {
|
||||
//物流配送
|
||||
$express = new Express();
|
||||
$express_fee_result = $express->calculate(['order_object' => $order_object]);
|
||||
if ($express_fee_result[ 'code' ] < 0) {
|
||||
$error = ['error_msg' => $express_fee_result[ 'message' ]];
|
||||
$delivery_fee = 0;
|
||||
} else {
|
||||
$delivery_fee = $express_fee_result[ 'data' ][ 'delivery_fee' ];
|
||||
}
|
||||
} else {
|
||||
$error = ['error_msg' => '物流配送方式未开启!'];
|
||||
$delivery_fee = 0;
|
||||
}
|
||||
$order_object->delivery_money = $delivery_fee;
|
||||
$order_object->delivery[ 'delivery_type' ] = 'express';
|
||||
} else if ($delivery_type == 'local') {
|
||||
//外卖配送
|
||||
$delivery_money = 0;
|
||||
$order_object->delivery[ 'delivery_type' ] = 'local';
|
||||
if ($store_is_o2o == 0) {
|
||||
$error = ['error_msg' => '外卖配送方式未开启!'];
|
||||
} else {
|
||||
if (empty($delivery_array[ 'store_id' ])) {
|
||||
$error = ['error_msg' => '门店未选择!'];
|
||||
}
|
||||
// $local_delivery_time = $delivery_array[ 'buyer_ask_delivery_time' ] ?? [];
|
||||
// $order_object->delivery[ 'buyer_ask_delivery_time' ] = $local_delivery_time;
|
||||
$local_model = new Local();
|
||||
$local_result = $local_model->calculate(['order_object' => $order_object]);
|
||||
$order_object->delivery[ 'start_money' ] = 0;
|
||||
if ($local_result[ 'code' ] < 0) {
|
||||
$order_object->delivery[ 'start_money' ] = $local_result[ 'data' ][ 'start_money_array' ][ 0 ] ?? 0;
|
||||
$error = ['error_msg' => $local_result[ 'message' ], 'priority' => 1, 'error' => $local_result[ 'data' ][ 'code' ]];
|
||||
} else {
|
||||
$order_object->delivery_money = $local_result[ 'data' ][ 'delivery_money' ];
|
||||
if (!empty($local_result[ 'data' ][ 'error_code' ])) {
|
||||
$error = ['error_msg' => $local_result[ 'data' ][ 'error' ], 'priority' => 1, 'error' => $local_result[ 'data' ][ 'error' ]];
|
||||
}
|
||||
}
|
||||
$order_object->delivery[ 'error' ] = $error['error'] ?? 0;
|
||||
$order_object->delivery[ 'error_msg' ] = $error['error_msg'] ?? '';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!empty($error)){
|
||||
$order_object->setError($error['error'] ?? 1, $error['error_msg'] ?? '', $error['priority'] ?? 0);
|
||||
}
|
||||
return true;
|
||||
// return $order_model->success(['shop_goods' => $shop_goods, 'delivery_money' => $delivery_money, 'error' => $error ?? []]);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
158
addon/store/event/OrderGoodsCalculate.php
Executable file
158
addon/store/event/OrderGoodsCalculate.php
Executable file
@@ -0,0 +1,158 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 上海牛之云网络科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
|
||||
* 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\store\event;
|
||||
|
||||
use addon\cashier\model\order\CashierOrderPay;
|
||||
|
||||
/**
|
||||
* 订单项计算
|
||||
*/
|
||||
class OrderGoodsCalculate
|
||||
{
|
||||
public function handle($data)
|
||||
{
|
||||
/** @var \app\model\order\OrderCreate $order_object */
|
||||
$order_object = $data['order_object'];
|
||||
$store_id = $order_object->store_id;
|
||||
|
||||
if($store_id > 0){
|
||||
$site_id = $order_object->site_id;
|
||||
// $delivery_array = $data[ 'delivery' ] ?? [];
|
||||
// $delivery_type = $delivery_array[ 'delivery_type' ] ?? 'express';
|
||||
$store_config_model = new \addon\store\model\Config();
|
||||
$store_config = $store_config_model->getStoreBusinessConfig($site_id)[ 'data' ][ 'value' ] ?? [];
|
||||
// if ($store_config[ 'store_business' ] == 'shop' && !in_array($delivery_type, [ 'local', 'store' ])) {
|
||||
// return null;
|
||||
// }
|
||||
//只要是平台运营模式,就不参与商品设置的门店,所在门店的上下架状态
|
||||
if ($store_config[ 'store_business' ] == 'shop') {
|
||||
return true;
|
||||
}
|
||||
|
||||
if(!empty($order_object->goods_list)) {
|
||||
$sku_ids = array_column($order_object->goods_list, 'sku_id');
|
||||
$store_sku_condition = array(
|
||||
['sku_id', 'in', $sku_ids],
|
||||
['store_id', '=', $store_id]
|
||||
);
|
||||
$store_sku_column = model('store_goods_sku')->getColumn($store_sku_condition, 'sku_id, price, stock, status', 'sku_id');
|
||||
foreach ($order_object->goods_list as &$goods_v) {
|
||||
|
||||
$sale_store = $goods_v[ 'sale_store' ] ?? '';
|
||||
if ($sale_store != 'all') {
|
||||
$sale_store_ids = explode(',', $sale_store);
|
||||
if (!in_array($store_id, $sale_store_ids)) {
|
||||
$error = array (
|
||||
'message' => '当前门店暂不支持销售此项商品'
|
||||
);
|
||||
$goods_v[ 'error' ] = $error;
|
||||
$order_object->setError(1, '存在商品不支持在当前门店销售!');
|
||||
continue;
|
||||
}
|
||||
}
|
||||
//门店sku信息
|
||||
$store_sku_info = $store_sku_column[$goods_v['sku_id']] ?? [];
|
||||
if (!empty($store_sku_info)) {
|
||||
$is_unify_price = $goods_v[ 'is_unify_price' ];
|
||||
if ($is_unify_price == 1) {
|
||||
//表逻辑,无实际意义
|
||||
} else {
|
||||
$goods_v[ 'price' ] = $store_sku_info[ 'price' ];
|
||||
}
|
||||
$goods_v[ 'stock' ] = numberFormat($store_sku_info[ 'stock' ]);
|
||||
|
||||
if ($store_sku_info[ 'status' ] != 1) {
|
||||
$goods_v[ 'error' ] = array (
|
||||
'message' => '当前门店暂不支持销售此项商品'
|
||||
);
|
||||
$order_object->setError(1, '存在商品不支持在当前门店销售!');
|
||||
|
||||
}
|
||||
} else {
|
||||
$goods_v[ 'error' ] = array (
|
||||
'message' => '当前门店暂不支持销售此项商品'
|
||||
);
|
||||
$order_object->setError(1, '存在商品不支持在当前门店销售!');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// $store_id = $data[ 'store_id' ] ?? 0;
|
||||
// if ($store_id > 0) {
|
||||
//
|
||||
//
|
||||
// $site_id = $data[ 'site_id' ];
|
||||
// //还需要判断配送方式(平台运营模式如果是 同城 门店自提的话 才有可能传入store_id)
|
||||
// $delivery_array = $data[ 'delivery' ] ?? [];
|
||||
// $delivery_type = $delivery_array[ 'delivery_type' ] ?? 'express';
|
||||
// $store_config_model = new \addon\store\model\Config();
|
||||
// $store_config = $store_config_model->getStoreBusinessConfig($site_id)[ 'data' ][ 'value' ] ?? [];
|
||||
// if ($store_config[ 'store_business' ] == 'shop' && !in_array($delivery_type, [ 'local', 'store' ])) {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// $goods_id = $data[ 'goods_id' ];
|
||||
// $goods_info = model('goods')->getInfo([ [ 'goods_id', '=', $goods_id ] ], 'sale_store');
|
||||
// $sale_store = $goods_info[ 'sale_store' ] ?? '';
|
||||
//
|
||||
// if ($sale_store != 'all') {
|
||||
// $sale_store_ids = explode(',', $sale_store);
|
||||
// if (!in_array($store_id, $sale_store_ids)) {
|
||||
// $error = array (
|
||||
//// 'code' => '',//暂无映射关系
|
||||
// 'message' => '当前门店暂不支持销售此项商品'
|
||||
// );
|
||||
// $data[ 'error' ] = $error;
|
||||
// return ( new CashierOrderPay() )->success($data);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// $sku_id = $data[ 'sku_id' ];
|
||||
// $store_sku_condition = array (
|
||||
// [ 'sku_id', '=', $sku_id ],
|
||||
// [ 'store_id', '=', $store_id ]
|
||||
// );
|
||||
// $store_sku_info = model('store_goods_sku')->getInfo($store_sku_condition);
|
||||
// if (!empty($store_sku_info)) {
|
||||
// $is_unify_price = $data[ 'is_unify_price' ];
|
||||
// if ($is_unify_price == 1) {
|
||||
// //表逻辑,无实际意义
|
||||
// } else {
|
||||
// $data[ 'price' ] = $store_sku_info[ 'price' ];
|
||||
// }
|
||||
// $data[ 'stock' ] = numberFormat($store_sku_info[ 'stock' ]);
|
||||
//
|
||||
// if ($store_sku_info[ 'status' ] != 1) {
|
||||
// $error = array (
|
||||
//// 'code' => '',//暂无映射关系
|
||||
// 'message' => '当前门店暂不支持销售此项商品'
|
||||
// );
|
||||
// }
|
||||
// } else {
|
||||
// $error = array (
|
||||
//// 'code' => '',//暂无映射关系
|
||||
// 'message' => '当前门店暂不支持销售此项商品'
|
||||
// );
|
||||
// }
|
||||
//
|
||||
//
|
||||
// if (!empty($error)) {
|
||||
// $data[ 'error' ] = $error;
|
||||
// }
|
||||
// return ( new CashierOrderPay() )->success($data);
|
||||
// }
|
||||
}
|
||||
|
||||
}
|
||||
26
addon/store/event/OrderPayAfter.php
Executable file
26
addon/store/event/OrderPayAfter.php
Executable file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\store\event;
|
||||
|
||||
use addon\store\model\StoreOrder;
|
||||
|
||||
/**
|
||||
* 添加下单用户为门店用户(todo 为兼容已存在但未完成的旧数据先保留)
|
||||
*/
|
||||
class OrderPayAfter
|
||||
{
|
||||
public function handle($order)
|
||||
{
|
||||
$store_order = new StoreOrder();
|
||||
$res = $store_order->orderPay($order);
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
38
addon/store/event/PointExchangeOrderCreate.php
Executable file
38
addon/store/event/PointExchangeOrderCreate.php
Executable file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
|
||||
namespace addon\store\event;
|
||||
|
||||
use addon\store\model\StoreMember as StoreMemberModel;
|
||||
|
||||
/**
|
||||
* 积分兑换订单创建之后
|
||||
*/
|
||||
class PointExchangeOrderCreate
|
||||
{
|
||||
|
||||
// 行为扩展的执行入口必须是run
|
||||
public function handle($data)
|
||||
{
|
||||
$order_data = $data['create_data'];
|
||||
$delivery_store_id = $order_data['delivery'][ 'delivery_store_id' ] ?? 0;
|
||||
if ($delivery_store_id > 0) {
|
||||
//添加店铺关注记录
|
||||
$shop_member_model = new StoreMemberModel();
|
||||
$res = $shop_member_model->addStoreMember($delivery_store_id, $order_data[ 'member_id' ]);
|
||||
if ($res[ "code" ] < 0) {
|
||||
return $res;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
48
addon/store/event/ShowPromotion.php
Executable file
48
addon/store/event/ShowPromotion.php
Executable file
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
|
||||
* 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
|
||||
namespace addon\store\event;
|
||||
|
||||
/**
|
||||
* 活动展示
|
||||
*/
|
||||
class ShowPromotion
|
||||
{
|
||||
|
||||
/**
|
||||
* 活动展示
|
||||
* @return array
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
$data = [
|
||||
'shop' => [
|
||||
[
|
||||
//插件名称
|
||||
'name' => 'store',
|
||||
//店铺端展示分类 shop:营销活动 member:互动营销
|
||||
'show_type' => 'tool',
|
||||
//展示主题
|
||||
'title' => '门店管理',
|
||||
//展示介绍
|
||||
'description' => '门店管理功能',
|
||||
//展示图标
|
||||
'icon' => 'addon/store/icon.png',
|
||||
//跳转链接
|
||||
'url' => 'store://shop/store/lists',
|
||||
]
|
||||
]
|
||||
];
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
30
addon/store/event/StoreOrderRefundSettlementCalculate.php
Executable file
30
addon/store/event/StoreOrderRefundSettlementCalculate.php
Executable file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 上海牛之云网络科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
|
||||
* 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\store\event;
|
||||
|
||||
use addon\store\model\settlement\OrderSettlement;
|
||||
|
||||
|
||||
/**
|
||||
* 门店分成结算
|
||||
*/
|
||||
class StoreOrderRefundSettlementCalculate
|
||||
{
|
||||
|
||||
public function handle($data)
|
||||
{
|
||||
$order_settlement_model = new OrderSettlement();
|
||||
$order_settlement_model->orderRefundSettlementAccount($data);
|
||||
}
|
||||
|
||||
}
|
||||
30
addon/store/event/StoreOrderSettlementCalculate.php
Executable file
30
addon/store/event/StoreOrderSettlementCalculate.php
Executable file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 上海牛之云网络科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
|
||||
* 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\store\event;
|
||||
|
||||
use addon\store\model\settlement\OrderSettlement;
|
||||
|
||||
|
||||
/**
|
||||
* 门店分成结算
|
||||
*/
|
||||
class StoreOrderSettlementCalculate
|
||||
{
|
||||
|
||||
public function handle($data)
|
||||
{
|
||||
$order_settlement_model = new OrderSettlement();
|
||||
$order_settlement_model->orderSettlementAccount($data);
|
||||
}
|
||||
|
||||
}
|
||||
29
addon/store/event/StoreWithdrawPeriodCalc.php
Executable file
29
addon/store/event/StoreWithdrawPeriodCalc.php
Executable file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\store\event;
|
||||
|
||||
use addon\store\model\Settlement;
|
||||
use Carbon\Carbon;
|
||||
|
||||
/**
|
||||
* 门店结算
|
||||
*/
|
||||
class StoreWithdrawPeriodCalc
|
||||
{
|
||||
public function handle($params)
|
||||
{
|
||||
$model = new Settlement();
|
||||
$time = Carbon::today()->timestamp;
|
||||
$res = $model->settlement($params[ 'relate_id' ], $time);
|
||||
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
30
addon/store/event/UnInstall.php
Executable file
30
addon/store/event/UnInstall.php
Executable file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\store\event;
|
||||
|
||||
use addon\store\model\Menu;
|
||||
|
||||
/**
|
||||
* 应用卸载
|
||||
*/
|
||||
class UnInstall
|
||||
{
|
||||
/**
|
||||
* 执行卸载
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
$menu = new Menu();
|
||||
$res = $menu->uninstall();
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
25
addon/store/event/WithdrawTransferCheck.php
Executable file
25
addon/store/event/WithdrawTransferCheck.php
Executable file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\store\event;
|
||||
|
||||
/**
|
||||
* 提现通知
|
||||
*/
|
||||
class WithdrawTransferCheck
|
||||
{
|
||||
public function handle($param)
|
||||
{
|
||||
if($param['from_type'] == 'store_withdraw'){
|
||||
$model = new \addon\store\model\StoreWithdraw();
|
||||
return $model->transferCheck($param['relate_tag']);
|
||||
}
|
||||
}
|
||||
}
|
||||
25
addon/store/event/WithdrawTransferNotify.php
Executable file
25
addon/store/event/WithdrawTransferNotify.php
Executable file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\store\event;
|
||||
|
||||
/**
|
||||
* 提现通知
|
||||
*/
|
||||
class WithdrawTransferNotify
|
||||
{
|
||||
public function handle($param)
|
||||
{
|
||||
if($param['from_type'] == 'store_withdraw'){
|
||||
$model = new \addon\store\model\StoreWithdraw();
|
||||
return $model->transferNotify($param);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user