select(); $rows = []; if (!$list->isEmpty()) { $rows = $list->toArray(); } return $this->toData('0', 'SUCCESS', ['list' => $rows, 'total' => count($rows), 'extent' => [ 'market_type_list' => StockMarketModel::STOCK_MARKET_TYPE, 'pay_type' => FeeSettingModel::$payTypeList ]]); } catch (\Exception $exception) { return $this->toData('1', '系统繁忙', []); } } public function add($param) { try { $marketTypeIds = array_keys(StockMarketModel::STOCK_MARKET_TYPE); if (empty($param['market_type']) || !in_array($param['market_type'], $marketTypeIds)) { return $this->toData('1', '市场类型无效', []); } if (!is_numeric($param['buy_fee']) || $param['buy_fee'] < 0) { return $this->toData('1', '买入手续费无效', []); } // if(empty($param['purchase_fee']) || !is_numeric($param['purchase_fee']) || $param['purchase_fee'] < 0){ // return $this->toData('1', '盘前申购手续费无效', []); // } if (!is_numeric($param['sale_fee']) || $param['sale_fee'] < 0) { return $this->toData('1', '卖出手续费无效', []); } if (in_array($param['market_type'], [3, 4, 5, 6, 7, 9, 12,14])) { if (empty($param['purchase_fee']) || !is_numeric($param['purchase_fee']) || $param['purchase_fee'] < 0) { return $this->toData('1', '申购手续费无效', []); } } // 结算方式:0固定费用,1按比例结算 if (!isset($param['pay_type']) || !in_array($param['pay_type'], array_keys(FeeSettingModel::$payTypeList))) { return $this->toData('1', '结算方式无效', []); } // 买入最小下单金额 if (empty($param['min_buy_num']) || !is_numeric($param['min_buy_num']) || ceil($param['min_buy_num']) != $param['min_buy_num']) { return $this->toData('1', '买入最小下单金额无效', []); } //卖出最小下单金额 if (empty($param['min_sale_num']) || !is_numeric($param['min_sale_num']) || ceil($param['min_sale_num']) != $param['min_sale_num']) { return $this->toData('1', '卖出最小下单金额无效', []); } // max_entrust_num if (empty($param['max_entrust_num']) || !is_numeric($param['max_entrust_num']) || ceil($param['max_entrust_num']) != $param['max_entrust_num']) { return $this->toData('1', '最大挂单数量无效', []); } // 最大持仓数量 if (empty($param['max_hold_num']) || !is_numeric($param['max_hold_num']) || ceil($param['max_hold_num']) != $param['max_hold_num']) { return $this->toData('1', '最大持仓数量无效', []); } $count = FeeSettingModel::where('market_type', $param['market_type'])->count(); if ($count > 0) { return $this->toData('1', '市场类型已经存在', []); } $feeSetting = new FeeSettingModel; $feeSetting->market_type = $param['market_type']; $feeSetting->buy_fee = $param['buy_fee']; $feeSetting->sale_fee = $param['sale_fee']; $feeSetting->pay_type = $param['pay_type']; $feeSetting->purchase_fee = isset($param['purchase_fee']) ? $param['purchase_fee'] : 0; $feeSetting->min_buy_num = $param['min_buy_num']; $feeSetting->min_sale_num = $param['min_sale_num']; $feeSetting->max_entrust_num = $param['max_entrust_num']; $feeSetting->max_hold_num = $param['max_hold_num']; $feeSetting->min_withdrawal_num = empty($param['min_withdrawal_num']) ? 0 :$param['min_withdrawal_num']; $feeSetting->min_recharge_num = empty($param['min_recharge_num']) ? 0 :$param['min_recharge_num']; $feeSetting->save(); // 设置缓存 $fee_key = $this->getTradeFeeKey($param['market_type']); $redis = $this->getRedis(); $redis->del($fee_key); $redis->hMSet($fee_key, $param); return $this->toData('0', 'SUCCESS', []); } catch (\Exception $exception) { return $this->toData('1', '系统繁忙', [$exception->getMessage(), $exception->getTrace()]); } } public function edit($param) { try { if (empty($param['id']) || !is_numeric($param['id'])) { return $this->toData('1', '目标不存在', []); } $feeSetting = FeeSettingModel::where('id', $param['id'])->find(); if (empty($feeSetting)) { return $this->toData('1', '目标不存在', []); } $marketTypeIds = array_keys(StockMarketModel::STOCK_MARKET_TYPE); if (empty($param['market_type']) || !in_array($param['market_type'], $marketTypeIds)) { return $this->toData('1', '市场类型无效', []); } if (!is_numeric($param['buy_fee']) || $param['buy_fee'] < 0) { return $this->toData('1', '买入手续费无效', []); } if (in_array($param['market_type'], [3, 4, 5, 6, 7, 9, 12, 14])) { if (empty($param['purchase_fee']) || !is_numeric($param['purchase_fee']) || $param['purchase_fee'] < 0) { return $this->toData('1', '申购手续费无效', []); } } if (!is_numeric($param['sale_fee']) || $param['sale_fee'] < 0) { return $this->toData('1', '卖出手续费无效', []); } // if(empty($param['purchase_fee']) || !is_numeric($param['purchase_fee']) || $param['purchase_fee'] < 0){ // return $this->toData('1', '申购手续费无效', []); // } // 结算方式:0固定费用,1按比例结算 if (!isset($param['pay_type']) || !in_array($param['pay_type'], array_keys(FeeSettingModel::$payTypeList))) { return $this->toData('1', '结算方式无效', []); } // 买入最小下单金额 if (empty($param['min_buy_num']) || !is_numeric($param['min_buy_num']) || ceil($param['min_buy_num']) != $param['min_buy_num']) { return $this->toData('1', '买入最小下单金额无效', []); } //卖出最小下单金额 if (empty($param['min_sale_num']) || !is_numeric($param['min_sale_num']) || ceil($param['min_sale_num']) != $param['min_sale_num']) { return $this->toData('1', '卖出最小下单金额无效', []); } // max_entrust_num if (empty($param['max_entrust_num']) || !is_numeric($param['max_entrust_num']) || ceil($param['max_entrust_num']) != $param['max_entrust_num']) { return $this->toData('1', '最大挂单数量无效', []); } // 最大持仓数量 if (empty($param['max_hold_num']) || !is_numeric($param['max_hold_num']) || ceil($param['max_hold_num']) != $param['max_hold_num']) { return $this->toData('1', '最大持仓数量无效', []); } $count = FeeSettingModel::where('market_type', $param['market_type'])->where('id', '<>', $feeSetting->id)->count(); if ($count > 0) { return $this->toData('1', '市场类型已经存在', []); } $feeSetting->market_type = $param['market_type']; $feeSetting->buy_fee = $param['buy_fee']; $feeSetting->sale_fee = $param['sale_fee']; $feeSetting->pay_type = $param['pay_type']; $feeSetting->min_buy_num = $param['min_buy_num']; $feeSetting->purchase_fee = $param['purchase_fee']; $feeSetting->min_sale_num = $param['min_sale_num']; $feeSetting->max_entrust_num = $param['max_entrust_num']; $feeSetting->max_hold_num = $param['max_hold_num']; $feeSetting->min_withdrawal_num = empty($param['min_withdrawal_num']) ? 0 :$param['min_withdrawal_num']; $feeSetting->min_recharge_num = empty($param['min_recharge_num']) ? 0 :$param['min_recharge_num']; $feeSetting->save(); // 设置缓存 $fee_key = $this->getTradeFeeKey($param['market_type']); $redis = $this->getRedis(); $redis->del($fee_key); $redis->hMSet($fee_key, $param); return $this->toData('0', 'SUCCESS', []); } catch (\Exception $exception) { return $this->toData('1', '系统繁忙', []); } } }