Browse Source

Merge branch 'master' of ssh://8.134.10.79:222/Leadfyy.co/hainan

master
lemon 4 years ago
parent
commit
40d5d449a1
  1. 10
      MySQL_change.sql
  2. 1
      app/Admin/Controllers/OrderController.php
  3. 6
      app/Admin/Extensions/Grid/AuditAgent.php
  4. 26
      app/AdminAgent/Controllers/AgentProductController.php
  5. 1
      app/AdminAgent/Controllers/OrderController.php
  6. 2
      app/AdminAgent/Renderable/SelectAgentCloudProduct.php
  7. 2
      app/AdminSupplier/Controllers/IndustryProductController.php
  8. 1
      app/AdminSupplier/Controllers/OrderController.php
  9. 2
      app/Http/Controllers/Api/AgentProductController.php
  10. 5
      app/Http/Controllers/Api/OrderController.php
  11. 2
      app/Http/Controllers/Api/SharePayController.php
  12. 11
      app/Http/Controllers/Api/VerificationController.php
  13. 2
      app/Models/Order.php
  14. 5
      resources/lang/zh_CN/order.php

10
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`;

1
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');
});

6
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()]);

26
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 = [

1
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');
});

2
app/AdminAgent/Renderable/SelectAgentCloudProduct.php

@ -8,7 +8,7 @@ use Dcat\Admin\Grid;
use Dcat\Admin\Grid\LazyRenderable;
/**
* 选择代理商组团云产品
* 选择代理商计调云产品
* Class SelectProduct
* @package App\AdminAgent\Renderable
*/

2
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('未设置单人头交易费,请联系管理员在后台设置');
}
//目前逻辑不考虑单人头交易费变动的情况

1
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');
});

2
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 {

5
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) {

2
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,

11
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());
}
}

2
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');

5
resources/lang/zh_CN/order.php

@ -23,8 +23,9 @@ return [
'status' => '订单状态',
'title' => '产品名称',
'user_id' => '用户ID',
'agent_cloud_pid' => '组团云产品ID',
'agent_cloud_price' => '组团云产品售价',
'agent_cloud_pid' => '计调云产品ID',
'agent_cloud_price' => '计调云产品售价',
'timeout' => '超时时间',
'created_at' => '下单时间',
],
'options' => [

Loading…
Cancel
Save