diff --git a/MySQL_change.sql b/MySQL_change.sql
index c6ad657..4883370 100644
--- a/MySQL_change.sql
+++ b/MySQL_change.sql
@@ -386,3 +386,10 @@ ALTER TABLE `guides`
 # 21:06 2021/10/25
 ALTER TABLE `orders`
 	CHANGE COLUMN `price` `price` DECIMAL(20,2) NOT NULL COMMENT '订单总价(单价*数量)' AFTER `num`;
+
+
+
+# 10:31 2021/10/26
+ALTER TABLE `industry_orders`
+	ADD COLUMN `audit_status` TINYINT NOT NULL DEFAULT 0 COMMENT '审核状态,-1拒绝,0待审核,1通过' AFTER `info`,
+	ADD COLUMN `audit_opinion` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '审核不通过原因' AFTER `audit_status`;
diff --git a/app/AdminAgent/Controllers/IndustryOrderController.php b/app/AdminAgent/Controllers/IndustryOrderController.php
index f4e5a39..9b6fd8e 100644
--- a/app/AdminAgent/Controllers/IndustryOrderController.php
+++ b/app/AdminAgent/Controllers/IndustryOrderController.php
@@ -7,9 +7,12 @@ use App\Common\OrderStatus;
 use App\Common\PayType;
 use App\Models\AdminSetting;
 use Dcat\Admin\Admin;
+use Dcat\Admin\Form;
 use Dcat\Admin\Grid;
 use Dcat\Admin\Show;
 use Dcat\Admin\Http\Controllers\AdminController;
+use Dcat\Admin\Widgets\Alert;
+use Dcat\Admin\Widgets\Modal;
 use Dcat\Admin\Widgets\Table;
 use EasyWeChat\Factory;
 use EasyWeChat\Kernel\Http\StreamResponse;
@@ -61,12 +64,31 @@ class IndustryOrderController extends AdminController
 				})->xl();
             $grid->column('title')->limit(15);
             $grid->column('picture')->image('', 80, 80);
+			$grid->column('pay_type')->using(PayType::array());
 			$grid->column('status')
 				->using(OrderStatus::array())
 				->if(fn() => $this->status == OrderStatus::UNPAID)
 				->display(fn() => '付款')
 				->if(fn() => $this->status == OrderStatus::PAY_EARNEST)
-				->display(fn() => '付尾款');
+				->display(fn() => '付尾款')
+				->if(fn() => $this->audit_status == -1)
+				->then(function ($column) {
+					$column->display('')
+						->append(function () {
+							return Modal::make()
+								->lg()
+								->title('审核信息')
+								->body($this->audit_opinion)
+								->button('');
+						})
+						->append(function () {
+							return ' 编辑';
+						});
+				})
+				->if(fn() => $this->audit_status == 0)
+				->then(function ($column) {
+					$column->display('待审核')->label();
+				});
             $grid->column('paid_at');
 			$grid->column('verify_qrcode', '核销二维码')
 				->if(fn() => $this->verify_code)
@@ -225,4 +247,64 @@ JS
 			'trade_type' => 'NATIVE', // 请对应换成你的支付方式对应的值类型
 		]);
 	}
+
+	protected function form()
+	{
+		return Form::make(new IndustryOrder(), function (Form $form) {
+			if ($form->model()->agent_id != Admin::user()->id) {
+				Admin::exit('数据不存在');
+			}
+			if ($form->model()->audit_status != -1) {
+				return redirect(admin_url('industry_order/list'))->send();
+			}
+
+			$form->display('id');
+
+			$form->number('num');
+			$form->number('name');
+			$form->mobile('mobile');
+
+			//载入信息收集表单数据
+			if (!empty($form->model()->info)) {
+				$form->html(Alert::make(null, '客户信息收集表单')->warning())->width(12);
+				$fields = $form->model()->info;
+				foreach ($fields as $v) {
+					if (!isset($v['type'], $v['field'], $v['value'])) {
+						continue;
+					}
+					if ($v['type'] == 'radio' || $v['type'] == 'checkbox') {
+						$form->{$v['type']}('info.' . $v['field'])
+							->options(array_combine($v['options'], $v['options']))
+							->required((bool)$v['required'])
+							->customFormat(fn() => $v['value']);
+					} else if ($v['type'] == 'image') {
+						$form->multipleImage('info.' . $v['field'])
+							->uniqueName()->saveFullUrl()
+							->required((bool)$v['required'])
+							->customFormat(fn() => $v['value']);
+					} else {
+						$form->{$v['type']}('info.' . $v['field'])
+							->required((bool)$v['required'])
+							->customFormat(fn() => $v['value']);
+					}
+				}
+			}
+		})->saving(function (Form $form) {
+			//信息收集表处理,保留字段类型等信息,便于后台显示
+			$order_info = $form->info ?? [];
+			if (!empty($order_info)) {
+				$fields = array_column($form->model()->info, null, 'field');
+				foreach ($fields as &$field) {
+					if ($field['required'] && !isset($order_info[$field['field']])) { //判断是否必填
+						return $form->response()->error($field['field'] . '不能为空');
+					}
+					$field['value'] = $order_info[$field['field']] ?? '';
+				}
+				$form->info = $fields;
+			}
+
+			$form->hidden(['audit_status']);
+			$form->audit_status = 0;
+		});
+	}
 }
diff --git a/app/AdminSupplier/Controllers/IndustryOrderController.php b/app/AdminSupplier/Controllers/IndustryOrderController.php
index 9c453d6..137fc12 100644
--- a/app/AdminSupplier/Controllers/IndustryOrderController.php
+++ b/app/AdminSupplier/Controllers/IndustryOrderController.php
@@ -2,9 +2,11 @@
 
 namespace App\AdminSupplier\Controllers;
 
+use App\AdminSupplier\Extensions\Grid\IndustryOrderAudit;
 use App\AdminSupplier\Extensions\Grid\IndustryOrderStatus;
 use App\AdminSupplier\Repositories\IndustryOrder;
 use App\Common\OrderStatus;
+use App\Common\PayType;
 use Dcat\Admin\Admin;
 use Dcat\Admin\Form;
 use Dcat\Admin\Grid;
@@ -58,10 +60,28 @@ class IndustryOrderController extends AdminController
 			$grid->column('industry_product_id', '产品ID');
             $grid->column('title')->limit(15);
             $grid->column('picture')->image('', 60, 60);
-			$grid->column('status')
-				->using(OrderStatus::array())
-				->if(fn() => $this->status == OrderStatus::OFFLINE_UNPAID)
-				->action(new IndustryOrderStatus);
+			$grid->column('pay_type')->using(PayType::array());
+			$grid->column('订单状态')
+				//待审核
+				->if(fn() => $this->audit_status == 0)
+				->then(function ($column) {
+					$column->append((new IndustryOrderAudit(null, 1))->setKey($this->id))->append(' ');
+					$column->append((new IndustryOrderAudit(null, 2))->setKey($this->id));
+				})
+				//审核拒绝
+				->if(fn() => $this->audit_status == -1)
+				->then(function ($column) {
+					$column->append('已拒绝')->label();
+				})
+				//审核通过
+				->if(fn() => $this->audit_status == 1)
+				->then(function ($column) {
+					if ($this->status == OrderStatus::OFFLINE_UNPAID) {
+						$column->action(new IndustryOrderStatus);
+					} else {
+						$column->append(OrderStatus::array()[$this->status]);
+					}
+				});
             $grid->column('paid_at');
 //            $grid->column('timeout');
             $grid->column('created_at');
diff --git a/app/AdminSupplier/Extensions/Grid/IndustryOrderAudit.php b/app/AdminSupplier/Extensions/Grid/IndustryOrderAudit.php
new file mode 100644
index 0000000..159d985
--- /dev/null
+++ b/app/AdminSupplier/Extensions/Grid/IndustryOrderAudit.php
@@ -0,0 +1,88 @@
+action = $action; //$action:1=通过;2=拒绝
+		$this->title = $action == 1 ? '通过' : '拒绝';
+	}
+
+	protected function html()
+	{
+		$class = $this->action == 1 ? 'btn btn-sm btn-success' : 'btn btn-sm btn-danger';
+		$this->appendHtmlAttribute('class', $class);
+		$this->defaultHtmlAttribute('href', 'javascript:;');
+
+		return "formatHtmlAttributes()}>{$this->title}";
+	}
+
+	protected function actionScript()
+	{
+		if ($this->action == 2) {
+			return <<getKey();
+		$status = $request->action == 1 ? 1 : -1;
+
+		try {
+			$order = IndustryOrder::where('audit_status', 0)->find($id);
+			if (!$order) {
+				throw new \Exception('订单不存在或已经审核过了');
+			}
+
+			if (!is_null($request->audit_opinion)) {
+				$order->audit_opinion = $request->audit_opinion;
+			}
+			$order->audit_status = $status;
+			$order->save();
+
+			return $this->response()->success('操作成功')->refresh();
+		} catch (\Exception $e) {
+			return $this->response()->error($e->getMessage())->refresh();
+		}
+	}
+
+	public function confirm()
+	{
+		if ($this->action == 1) {
+			return ['确定要设置为已通过吗?', ''];
+		}
+	}
+
+	public function parameters()
+	{
+		return [
+			'action' => $this->action,
+		];
+	}
+}
diff --git a/app/Http/Controllers/Api/TestController.php b/app/Http/Controllers/Api/TestController.php
index fe0974c..cf60c25 100644
--- a/app/Http/Controllers/Api/TestController.php
+++ b/app/Http/Controllers/Api/TestController.php
@@ -2,7 +2,15 @@
 
 namespace App\Http\Controllers\Api;
 
+use App\Common\StatementType;
+use App\Models\Agent;
+use App\Models\Guide;
+use App\Models\Order;
+use App\Models\OrderProductItem;
 use App\Models\Supplier;
+use App\Service\WithdrawalService;
+use App\Traits\DemandTraits;
+use App\Traits\StatementTraits;
 use Illuminate\Support\Facades\Cache;
 use Illuminate\Support\Facades\DB;
 
@@ -15,9 +23,99 @@ class TestController
 {
 	public function index()
 	{
-		dd(Supplier::class);
+		dd($this->fund(Order::find(221)));
 	}
 
+	public function fund($order)
+	{
+		$service = new WithdrawalService();
+		DB::beginTransaction();
+		try {
+			//最后批量插入
+			$statementCreate = [];
+			$cost = 0;
+			//如果有地接价格 分帐给地接
+			if ($order->guide_price > 0) {
+				$guidePrice = $order->guide_price;
+				$cost = bcadd($cost, $order->guide_price, 6);
+				//成本价 加上地接价格
+				$statementCreate[] = $service->createByOrder(
+					$order->guide_price,
+					StatementType::ORDER,
+					$order->guide->id,
+					DemandTraits::$col[2],
+					$order->id,
+					StatementTraits::$type[0]
+				);
+				//抽成
+				$guide = Guide::query()->where('id', $order->guide->id)->lockForUpdate()->first();
+				$guide->balance = bcadd($guide->balance, $guidePrice, 6);
+				$guide->save();
+			}
+
+			//分账给供应商
+			$orderItem = OrderProductItem::query()
+				->where('order_id', $order->id)
+				->with('supplier')
+				->select('*')
+				->selectRaw('sum(price) as sum_price,sum(single_deposit * num) as sum_persons')
+				->groupBy('supplier_id')
+				->get();
+			foreach ($orderItem as $v) {
+
+				$cost = bcadd($cost, $v->sum_price, 6);
+				$supplierPrice = $v->sum_price;
+				$statementCreate[] = $service->createByOrder(
+					$v->sum_price,
+					StatementType::ORDER,
+					$v->supplier_id,
+					DemandTraits::$col[1],
+					$order->id,
+					StatementTraits::$type[0]
+				);
+
+				$supplier = Supplier::query()->where('id', $v->supplier_id)->lockForUpdate()->first();
+				//处理交易金
+				if ($v->sum_persons > 0) {
+					//计算交易金
+					$deposit = $v->sum_persons;
+					//流水
+					//扣
+					$supplier->trade_balance = bcsub($supplier->trade_balance,$deposit,6);
+				}
+
+				$supplier->balance = bcadd($supplier->balance, $supplierPrice, 6);
+				$supplier->save();
+			}
+
+			//分账给代理商
+			//成本价 加上地接价格
+			$agentPrice = bcsub($order->price, $cost, 2);
+
+			$statementCreate[] = $service->createByOrder(
+				$agentPrice,
+				StatementType::ORDER,
+				$order->agent_id,
+				DemandTraits::$col[0],
+				$order->id,
+				StatementTraits::$type[0]
+			);
+
+			$agent = Agent::query()->where('id', $order->agent->id)->lockForUpdate()->first();
+			$agent->balance = bcadd($agent->balance, $agentPrice, 6);
+			$agent->save();
+
+			if (!empty($statementCreate)) {
+				$order->statement()->createMany($statementCreate);
+			}
+			DB::commit();
+		} catch (\Exception $e) {
+			DB::rollBack();
+			return $this->error($e->getMessage());
+		}
+	}
+
+
 	/**
 	 * 模拟登录
 	 * @param $user_id