From 6ee26224022ced8968108a5a2faf98e55b591c56 Mon Sep 17 00:00:00 2001 From: liapples Date: Sat, 18 Sep 2021 15:49:41 +0800 Subject: [PATCH 01/11] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Extensions/Grid/AuditAgent.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/Admin/Extensions/Grid/AuditAgent.php b/app/Admin/Extensions/Grid/AuditAgent.php index d36055f..4a5e171 100644 --- a/app/Admin/Extensions/Grid/AuditAgent.php +++ b/app/Admin/Extensions/Grid/AuditAgent.php @@ -112,9 +112,9 @@ class AuditAgent extends RowAction //插入权限表 if ($user->status == UserStatus::NORMAL) { $roleArr = [ - AgentType::CLUSTER => 4, //计调旅行社 role_id - AgentType::SUPPLIER => 2, //供应商旅行社 role_id - AgentType::OPERATOR => 3, //组团旅行社 role_id + AgentType::SUPPLIER => 2, //供应商旅行社,对应后台的角色role_id + AgentType::CLUSTER => 3, //计调旅行社,对应后台的角色role_id + AgentType::OPERATOR => 4, //组团旅行社,对应后台的角色role_id ]; DB::table(config('admin-agent.database.role_users_table')) ->insertOrIgnore(['role_id' => $roleArr[$user->type], 'user_id' => $this->getKey()]); From ec3476fcd42538cf8edcb27d46407c0d682a1b84 Mon Sep 17 00:00:00 2001 From: liapples Date: Sat, 18 Sep 2021 15:57:32 +0800 Subject: [PATCH 02/11] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/AgentProductController.php | 26 +++++++++---------- .../Renderable/SelectAgentCloudProduct.php | 2 +- .../Api/AgentProductController.php | 2 +- app/Models/Order.php | 2 +- resources/lang/zh_CN/order.php | 4 +-- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/app/AdminAgent/Controllers/AgentProductController.php b/app/AdminAgent/Controllers/AgentProductController.php index 035321a..9e3ffb0 100644 --- a/app/AdminAgent/Controllers/AgentProductController.php +++ b/app/AdminAgent/Controllers/AgentProductController.php @@ -177,7 +177,7 @@ class AgentProductController extends AdminController $form->display('id'); - //组团版旅行社不允许选择组团云产品 + //计调版旅行社不允许选择计调云产品 if (Admin::user()->type == AgentType::CLUSTER) { $form->hidden('product_id')->value(0)->default(0); $form->hidden('type')->value(1)->default(1); @@ -196,7 +196,7 @@ class AgentProductController extends AdminController $form->editor('content'); } else { $form->radio('type') - ->options(['单品销售', '组合销售', '组团云产品']) + ->options(['单品销售', '组合销售', '计调云产品']) ->default(Admin::user()->type == AgentType::CLUSTER ? 1 : 0)->required() ->help('单品销售无需审核,组合销售需要审核才能上架') ->when(0, function (Form $form) { @@ -222,8 +222,8 @@ class AgentProductController extends AdminController $form->editor('know'); $form->editor('content'); })->when(2, function (Form $form) { - /** 组团云产品 **/ - $form->selectTable('agent_cloud_pid', '组团云产品') + /** 计调云产品 **/ + $form->selectTable('agent_cloud_pid', '计调云产品') ->help('产品列表显示的是该产品的标题和图片') ->title('选择产品') ->dialogWidth('80%;min-width:825px;') @@ -260,7 +260,7 @@ class AgentProductController extends AdminController // ->customFormat(fn($v) => !$v ? '' : $v) // ->required(); - //组团版旅行社可以选择地接 + //计调版旅行社可以选择地接 if (Admin::user()->type == AgentType::CLUSTER) { $form->selectTable('guide_id', '地接人员') ->title('选择地接人员') @@ -328,11 +328,11 @@ class AgentProductController extends AdminController return $form->response()->error('产品待审核或审核拒绝,不允许修改!'); } - //组团云产品处理 + //计调云产品处理 if ($form->type == 2) { $cloud_product = AgentProduct::find($form->agent_cloud_pid); if (!$cloud_product || $cloud_product->status != ProductStatus::ON_SALE) { - return $form->response()->error('你选择的组团云产品状态异常,上架失败!'); + return $form->response()->error('你选择的计调云产品状态异常,上架失败!'); } } @@ -410,13 +410,13 @@ class AgentProductController extends AdminController return $form->response()->error("产品售价不能小于供应商产品总售价{$total_price}"); } - //如果是组团版旅行社,标记为是云产品 + //如果是计调版旅行社,标记为是云产品 if (Admin::user()->type == AgentType::CLUSTER) { $form->hidden('is_cloud'); $form->is_cloud = 1; } } - //组团云产品 + //计调云产品 else if ($form->type == 2) { $form->agent_cloud_pid = (int)$form->agent_cloud_pid; if (!$form->agent_cloud_pid) { @@ -437,11 +437,11 @@ class AgentProductController extends AdminController })->find($form->agent_cloud_pid); if (!$cloud_product) { - return $form->response()->error('你选择的组团云产品库存不足或已下架,请重新选择'); + return $form->response()->error('你选择的计调云产品库存不足或已下架,请重新选择'); } else if ($cloud_product->stock < $form->stock) { - return $form->response()->error("组团云产品当前库存为{$cloud_product->stock},你设置的库存不能超过该数值"); + return $form->response()->error("计调云产品当前库存为{$cloud_product->stock},你设置的库存不能超过该数值"); } else if ($form->price < $cloud_product->price) { - return $form->response()->error("产品售价不能小于组团云产品售价{$cloud_product->price}"); + return $form->response()->error("产品售价不能小于计调云产品售价{$cloud_product->price}"); } //同步关键字段信息 @@ -543,7 +543,7 @@ class AgentProductController extends AdminController } } - //如果是组团云产品,且处于上架状态,同步信息到其它产品,否则下架所有关联的产品 + //如果是计调云产品,且处于上架状态,同步信息到其它产品,否则下架所有关联的产品 if ($form->is_cloud) { if ($form->status == ProductStatus::ON_SALE) { $data = [ diff --git a/app/AdminAgent/Renderable/SelectAgentCloudProduct.php b/app/AdminAgent/Renderable/SelectAgentCloudProduct.php index 67acca4..d128258 100644 --- a/app/AdminAgent/Renderable/SelectAgentCloudProduct.php +++ b/app/AdminAgent/Renderable/SelectAgentCloudProduct.php @@ -8,7 +8,7 @@ use Dcat\Admin\Grid; use Dcat\Admin\Grid\LazyRenderable; /** - * 选择代理商组团云产品 + * 选择代理商计调云产品 * Class SelectProduct * @package App\AdminAgent\Renderable */ diff --git a/app/Http/Controllers/Api/AgentProductController.php b/app/Http/Controllers/Api/AgentProductController.php index 21ce1b6..b7d2f4b 100644 --- a/app/Http/Controllers/Api/AgentProductController.php +++ b/app/Http/Controllers/Api/AgentProductController.php @@ -94,7 +94,7 @@ class AgentProductController extends Controller $agent_product->cost = ''; } - //如果是单品销售,显示附加信息字段,组合产品和组团产品不显示 + //如果是单品销售,显示附加信息字段,组合产品和计调产品不显示 if ($agent_product->type == 0) { $agent_product->product = Product::query()->where('id', $agent_product->product_id)->first(['type', 'extends']); } else { diff --git a/app/Models/Order.php b/app/Models/Order.php index 9d03db2..a72bbed 100644 --- a/app/Models/Order.php +++ b/app/Models/Order.php @@ -123,7 +123,7 @@ class Order extends BaseModel return $this->belongsTo(Guide::class); } - //关联的组团云产品 + //关联的计调云产品 public function agentCloud() { return $this->belongsTo(AgentProduct::class, 'agent_cloud_pid', 'id'); diff --git a/resources/lang/zh_CN/order.php b/resources/lang/zh_CN/order.php index fac16ba..bd3a971 100644 --- a/resources/lang/zh_CN/order.php +++ b/resources/lang/zh_CN/order.php @@ -23,8 +23,8 @@ return [ 'status' => '订单状态', 'title' => '产品名称', 'user_id' => '用户ID', - 'agent_cloud_pid' => '组团云产品ID', - 'agent_cloud_price' => '组团云产品售价', + 'agent_cloud_pid' => '计调云产品ID', + 'agent_cloud_price' => '计调云产品售价', 'created_at' => '下单时间', ], 'options' => [ From d2f7e0a07f063d833fd9498c5f632b83676c2b30 Mon Sep 17 00:00:00 2001 From: liapples Date: Sat, 18 Sep 2021 16:09:23 +0800 Subject: [PATCH 03/11] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/AdminSupplier/Controllers/IndustryProductController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/AdminSupplier/Controllers/IndustryProductController.php b/app/AdminSupplier/Controllers/IndustryProductController.php index c30b7b3..7506f01 100644 --- a/app/AdminSupplier/Controllers/IndustryProductController.php +++ b/app/AdminSupplier/Controllers/IndustryProductController.php @@ -218,7 +218,7 @@ class IndustryProductController extends AdminController //判断交易金是否充足 $single = SystemSetting::val('single', 'price'); //单人头交易费 if (!$single) { - return $form->response()->error('没有可用交易金,请先联系管理员充值'); + return $form->response()->error('系统未设置交易金,请联系管理员在后台设置'); } //目前逻辑不考虑单人头交易费变动的情况 From 592100ac5bb0d439e08fc001678d743ec7a2b614 Mon Sep 17 00:00:00 2001 From: liapples Date: Sat, 18 Sep 2021 16:10:42 +0800 Subject: [PATCH 04/11] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/AdminSupplier/Controllers/IndustryProductController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/AdminSupplier/Controllers/IndustryProductController.php b/app/AdminSupplier/Controllers/IndustryProductController.php index 7506f01..f71f826 100644 --- a/app/AdminSupplier/Controllers/IndustryProductController.php +++ b/app/AdminSupplier/Controllers/IndustryProductController.php @@ -218,7 +218,7 @@ class IndustryProductController extends AdminController //判断交易金是否充足 $single = SystemSetting::val('single', 'price'); //单人头交易费 if (!$single) { - return $form->response()->error('系统未设置交易金,请联系管理员在后台设置'); + return $form->response()->error('未设置单人头交易费,请联系管理员在后台设置'); } //目前逻辑不考虑单人头交易费变动的情况 From 2fad39cd1d86e4fe0086c7bbecd78dabf29615e2 Mon Sep 17 00:00:00 2001 From: liapples Date: Sat, 18 Sep 2021 16:50:14 +0800 Subject: [PATCH 05/11] =?UTF-8?q?=E6=94=AF=E4=BB=98=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E7=9A=84=E4=BA=A7=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/Api/OrderController.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/Http/Controllers/Api/OrderController.php b/app/Http/Controllers/Api/OrderController.php index 2ff7ee0..6896a42 100644 --- a/app/Http/Controllers/Api/OrderController.php +++ b/app/Http/Controllers/Api/OrderController.php @@ -147,6 +147,11 @@ class OrderController extends Controller return $this->error('产品已下架或库存不足'); } + //支付小程序的产品不允许购买 + if (AdminSetting::val('payee_appid') == Agent::where('id', $this->agent_id)->value('appid')) { + return $this->error('系统出错了,购买失败~~'); + } + $coupon_ids = []; if ($ap->coupon) { foreach ($ap->coupon as $v) { From a45e32a0e8ed973f391dc500b8f1f0e2280e364b Mon Sep 17 00:00:00 2001 From: liapples Date: Sat, 18 Sep 2021 17:09:47 +0800 Subject: [PATCH 06/11] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MySQL_change.sql | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/MySQL_change.sql b/MySQL_change.sql index fde968a..b0ca76e 100644 --- a/MySQL_change.sql +++ b/MySQL_change.sql @@ -71,3 +71,13 @@ ENGINE=InnoDB; # 13:28 2021/9/18 ALTER TABLE `industry_orders` ADD COLUMN `deposit` DECIMAL(20,2) NOT NULL DEFAULT 0 COMMENT '需要扣除的交易金数量' AFTER `verify_code`; + +# 15:59 2021/9/18 +ALTER TABLE `agent_products` + CHANGE COLUMN `guide_id` `guide_id` INT(10) NOT NULL DEFAULT '0' COMMENT '绑定地接(计调版旅行社才能绑定)' AFTER `category_id`, + CHANGE COLUMN `type` `type` TINYINT(3) NOT NULL DEFAULT '0' COMMENT '0:单品销售;1:组合销售;2:计调旅行社的云产品;' AFTER `is_rec`, + CHANGE COLUMN `is_cloud` `is_cloud` TINYINT(3) NOT NULL DEFAULT '0' COMMENT '是否是(计调旅行社特有)云产品,。0:否;1:是;' AFTER `earnest_timeout`, + CHANGE COLUMN `agent_cloud_pid` `agent_cloud_pid` INT(10) NOT NULL DEFAULT '0' COMMENT '计调版旅行社的云产品ID' AFTER `is_cloud`; +ALTER TABLE `orders` + CHANGE COLUMN `agent_cloud_pid` `agent_cloud_pid` INT(10) NOT NULL DEFAULT '0' COMMENT '计调云产品ID' AFTER `verify_code`, + CHANGE COLUMN `agent_cloud_price` `agent_cloud_price` DECIMAL(20,2) NOT NULL DEFAULT '0.00' COMMENT '计调云产品销售价格' AFTER `agent_cloud_pid`; From ecdaed3f97e422710c901fdab290bc7e934c88f9 Mon Sep 17 00:00:00 2001 From: liapples Date: Sat, 18 Sep 2021 17:10:09 +0800 Subject: [PATCH 07/11] =?UTF-8?q?=E8=A1=8C=E4=B8=9A=E4=BA=A7=E5=93=81?= =?UTF-8?q?=E6=A0=B8=E9=94=80=E6=89=A3=E9=99=A4=E4=BA=A4=E6=98=93=E9=87=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/Api/VerificationController.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Api/VerificationController.php b/app/Http/Controllers/Api/VerificationController.php index 709eb3b..4ca94d0 100644 --- a/app/Http/Controllers/Api/VerificationController.php +++ b/app/Http/Controllers/Api/VerificationController.php @@ -87,13 +87,22 @@ class VerificationController extends Controller return $this->error('对不起,你没有该订单的核销权限'); } + DB::beginTransaction(); try { //改变订单状态为已完成 $order->status = OrderStatus::SUCCESS; $order->save(); - return $this->success(); + //扣除供应商冻结的交易金 + $supplier = Supplier::find($order->supplier_id); + $supplier->deposit_used = $supplier->deposit_used + $order->deposit; + $supplier->deposit_frozen = $supplier->deposit_frozen - $order->deposit; + $supplier->save(); //需要用save才能执行模型事件记录日志 + + DB::commit(); + return $this->success('核销成功'); } catch (\Exception $e) { + DB::rollBack(); return $this->error($e->getMessage()); } } From 0b86cfa0fbee1b117adeb26d7528247fe22908c9 Mon Sep 17 00:00:00 2001 From: liapples Date: Sat, 18 Sep 2021 17:23:44 +0800 Subject: [PATCH 08/11] =?UTF-8?q?=E8=B6=85=E6=97=B6=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Controllers/OrderController.php | 1 + app/AdminAgent/Controllers/OrderController.php | 1 + app/AdminSupplier/Controllers/OrderController.php | 1 + resources/lang/zh_CN/order.php | 1 + 4 files changed, 4 insertions(+) diff --git a/app/Admin/Controllers/OrderController.php b/app/Admin/Controllers/OrderController.php index 5935cd5..fd9d248 100644 --- a/app/Admin/Controllers/OrderController.php +++ b/app/Admin/Controllers/OrderController.php @@ -105,6 +105,7 @@ class OrderController extends AdminController $show->field('status')->using(OrderStatus::array()); $show->field('title'); $show->field('user_id'); + $show->field('timeout'); $show->field('created_at'); $show->field('updated_at'); }); diff --git a/app/AdminAgent/Controllers/OrderController.php b/app/AdminAgent/Controllers/OrderController.php index 86a360a..9a186d6 100644 --- a/app/AdminAgent/Controllers/OrderController.php +++ b/app/AdminAgent/Controllers/OrderController.php @@ -178,6 +178,7 @@ class OrderController extends AdminController $show->field('picture')->image('', 80, 80); $show->field('status')->using(OrderStatus::array()); $show->field('pay_type')->using(PayType::array()); + $show->field('timeout'); $show->field('created_at'); $show->field('updated_at'); }); diff --git a/app/AdminSupplier/Controllers/OrderController.php b/app/AdminSupplier/Controllers/OrderController.php index 611a1b6..ba47bf4 100644 --- a/app/AdminSupplier/Controllers/OrderController.php +++ b/app/AdminSupplier/Controllers/OrderController.php @@ -116,6 +116,7 @@ class OrderController extends AdminController $show->field('status')->using(OrderStatus::array()); $show->field('title'); $show->field('user_id'); + $show->field('timeout'); $show->field('created_at'); $show->field('updated_at'); }); diff --git a/resources/lang/zh_CN/order.php b/resources/lang/zh_CN/order.php index bd3a971..555309d 100644 --- a/resources/lang/zh_CN/order.php +++ b/resources/lang/zh_CN/order.php @@ -25,6 +25,7 @@ return [ 'user_id' => '用户ID', 'agent_cloud_pid' => '计调云产品ID', 'agent_cloud_price' => '计调云产品售价', + 'timeout' => '超时时间', 'created_at' => '下单时间', ], 'options' => [ From d2bdacfecc3802aa9309a07d66d89ff591f44371 Mon Sep 17 00:00:00 2001 From: liapples Date: Sat, 18 Sep 2021 17:24:53 +0800 Subject: [PATCH 09/11] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/Api/OrderController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Api/OrderController.php b/app/Http/Controllers/Api/OrderController.php index 6896a42..6d8952e 100644 --- a/app/Http/Controllers/Api/OrderController.php +++ b/app/Http/Controllers/Api/OrderController.php @@ -397,7 +397,7 @@ class OrderController extends Controller $result = $app->order->unify([ 'body' => mb_strcut($order->title, 0, 127), 'out_trade_no' => $order->order_no . '-' . $order->status, //后面加status,主要是为了方便微信支付回调时区分定金(首付款)和尾款支付 - 'total_fee' => round($price * 100), //支付金额单位为分 + 'total_fee' => 1,//TODO 测试专用 round($price * 100), //支付金额单位为分 'notify_url' => route('wxpay_notify', ['agent_id' => $this->agent_id]), // 支付结果通知网址,如果不设置则会使用配置里的默认地址 'trade_type' => 'JSAPI', 'openid' => $openid, From 2a9eca2016d55a33d70b312862252e34cbf95124 Mon Sep 17 00:00:00 2001 From: liapples Date: Sat, 18 Sep 2021 17:29:18 +0800 Subject: [PATCH 10/11] =?UTF-8?q?=E5=9B=9E=E6=BB=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/Api/OrderController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Api/OrderController.php b/app/Http/Controllers/Api/OrderController.php index 6d8952e..6896a42 100644 --- a/app/Http/Controllers/Api/OrderController.php +++ b/app/Http/Controllers/Api/OrderController.php @@ -397,7 +397,7 @@ class OrderController extends Controller $result = $app->order->unify([ 'body' => mb_strcut($order->title, 0, 127), 'out_trade_no' => $order->order_no . '-' . $order->status, //后面加status,主要是为了方便微信支付回调时区分定金(首付款)和尾款支付 - 'total_fee' => 1,//TODO 测试专用 round($price * 100), //支付金额单位为分 + 'total_fee' => round($price * 100), //支付金额单位为分 'notify_url' => route('wxpay_notify', ['agent_id' => $this->agent_id]), // 支付结果通知网址,如果不设置则会使用配置里的默认地址 'trade_type' => 'JSAPI', 'openid' => $openid, From 90bff0cf2d3a408f9579b646d8d5a40faaff54ac Mon Sep 17 00:00:00 2001 From: liapples Date: Sat, 18 Sep 2021 17:30:18 +0800 Subject: [PATCH 11/11] =?UTF-8?q?=E6=B5=8B=E8=AF=950.01?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/Api/SharePayController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Api/SharePayController.php b/app/Http/Controllers/Api/SharePayController.php index b83c97f..7c345bf 100644 --- a/app/Http/Controllers/Api/SharePayController.php +++ b/app/Http/Controllers/Api/SharePayController.php @@ -76,7 +76,7 @@ class SharePayController extends Controller $result = $app->order->unify([ 'body' => mb_strcut($order->title, 0, 127), 'out_trade_no' => $order->order_no . '-' . $order->status, //后面加status,主要是为了方便微信支付回调时区分定金(首付款)和尾款支付 - 'total_fee' => round($price * 100), //支付金额单位为分 + 'total_fee' => 1, //TODO 测试专用 round($price * 100), //支付金额单位为分 'notify_url' => route('wxpay_notify', ['agent_id' => $this->agent_id]), // 支付结果通知网址,如果不设置则会使用配置里的默认地址 'trade_type' => 'JSAPI', 'openid' => $openid,