diff --git a/app/admin/route/app.php b/app/admin/route/app.php index 910aeea2..47020e10 100644 --- a/app/admin/route/app.php +++ b/app/admin/route/app.php @@ -189,7 +189,7 @@ Route::group('/', function () { // 申购订单 Route::post('/order/pre_stock_order', 'Order/preStock'); - Route::post('/order/update_order_num', 'Order/updateGetNum')->middleware('admin_log'); // 修改中签数 + Route::post('/order/update_order_num', 'Order/updateGetNum')->append(['market_type' => 18])->middleware('admin_log'); // 修改中签数量 Route::post('/order/pre_refund', 'Order/preRefund')->middleware('admin_log'); // ipo订单退款 //基金订单 diff --git a/app/admin/service/OrderService.php b/app/admin/service/OrderService.php index 3f4e3725..b2fedc1b 100644 --- a/app/admin/service/OrderService.php +++ b/app/admin/service/OrderService.php @@ -2252,22 +2252,30 @@ class OrderService extends AdminBaseService if (in_array($order['status'], [7, 8])) return $this->toData('1', '订单已退款,不可操作'); - if ($param['get_num'] > $order['num']) { - return $this->toData('1', '修改中签数不能大于订单申购数'); - } - - $getTime = Db::table($tableObj['stock_table'])->where('id', $order['pre_stock_id'])->value('get_time'); - if (env('USER_ARREARS.HAS_USER_ARREARS') == 1 && $order['pay_type'] == 2 && in_array($order['status'], [5, 6])) { - } else { - if (strtotime($getTime) < time()) return $this->toData('1', 'IPO已中签,无法修改'); - } - - $bool = Db::table($tableObj['order_table'])->where('id', $param['id'])->update([ + // if ($param['get_num'] > $order['num']) { + // return $this->toData('1', '修改中签数不能大于订单申购数'); + // } + // 1 2 5 状态才能修改数量 + if (!in_array($order['status'], [1, 2, 5])) { + return $this->toData('1', 'IPO已上市,无法修改'); + } + // $getTime = Db::table($tableObj['stock_table'])->where('id', $order['pre_stock_id'])->value('get_time'); + // if (env('USER_ARREARS.HAS_USER_ARREARS') == 1 && $order['pay_type'] == 2 && in_array($order['status'], [5, 6])) { + // } else { + // if (strtotime($getTime) < time()) return $this->toData('1', 'IPO已中签,无法修改'); + // } + $updateArr = [ 'get_num' => $param['get_num'], 'get_amount' => $param['get_num'] * $order['price'], 'get_fee' => $order['get_amount'] * $order['fee_rate'], 'update_time' => date('Y-m-d H:i:s') - ]); + ]; + if ($order['pay_type'] == 2) { + $updateArr['num'] = $param['get_num']; + $updateArr['amount'] = $param['get_num'] * $order['price']; + $updateArr['fee'] = $updateArr['amount'] * $order['fee_rate']; + } + $bool = Db::table($tableObj['order_table'])->where('id', $param['id'])->update($updateArr); if (!$bool) return $this->toData('1', '修改失败'); return $this->toData('0', 'SUCCESS', []); diff --git a/app/home/service/IPOService.php b/app/home/service/IPOService.php index bf216dcb..7928ffaf 100644 --- a/app/home/service/IPOService.php +++ b/app/home/service/IPOService.php @@ -221,9 +221,9 @@ class IPOService extends BaseHomeService if ($preStock['price'] <= 0) { return $this->toData('1', lang('price_error'), []); } - + $param['pay_type'] = 2; // 支付类型 - if (empty($param['pay_type']) || !is_numeric($param['pay_type']) || !in_array($param['pay_type'], [1, 2])) { + if (empty($param['pay_type']) || !is_numeric($param['pay_type']) || !in_array($param['pay_type'], [2])) { return $this->toData('1', lang('parameter_error'), []); } @@ -619,7 +619,9 @@ class IPOService extends BaseHomeService if (empty($hasOrder)) { return $this->toData('1', lang('parameter_error'), []); } - + if ($hasOrder['get_num'] <= 0) { + return $this->toData('1', '割当評価と配分を待っています', []); + } $orderNo = $hasOrder['order_no']; Db::startTrans();