toData('1', '分页参数错误'); } $where = []; // 未删除 $where[] = [ 'is_delete', '=', StockBlockListModel::IS_DELETE_NO ]; // 股票号 if (!empty($param['stock_code']) && is_string($param['stock_code'])) { $where[] = [ 'stock_code', '=', $param['stock_code'] ]; } // 状态 if (!empty($param['status']) && in_array($param['status'], [StockBlockListModel::STATUS_ON, StockBlockListModel::STATUS_OFF])) { $where[] = [ 'status', '=', $param['status'] ]; } $query = StockBlockListModel::where($where); $totalQuery = StockBlockListModel::where($where); $list = $query->order('id', 'desc')->page($param['page'], $param['limit'])->select(); $total = $totalQuery->order('id', 'desc')->count(); return $this->toData('0', 'SUCCESS', ['list' => $list, 'total' => $total, 'extend' => [ // 'tape_list' => StockBlockListModel::$tapeList, 'stock_type_list' => StockBlockListModel::$typeList, ]]); } catch (\Exception $exception) { return $this->toData('1', '系统繁忙', [$exception->getMessage()]); } } // 新增 public function add($param) { try { // 股票代码 if (empty($param['stock_code']) || !is_string($param['stock_code'])) { return $this->toData('1', '股票代码 无效'); } // 股票类型 if (empty($param['type']) || !in_array($param['type'], array_keys(StockBlockListModel::$typeList))) { return $this->toData('1', '股票市场 无效'); } // 交易所类型 // if(empty($param['tape']) || !in_array($param['tape'], array_keys(StockBlockListModel::$tapeList))){ // return $this->toData('1', '交易所类型 无效'); // } switch ($param['type']) { case '3': $stock = StockListModel::where('stock_code', $param['stock_code'])->find(); if (empty($stock)) return $this->toData('1', 'stock_code 无效'); break; case '4': $stock = StockIdnListModel::where('stock_code', $param['stock_code'])->find(); if (empty($stock)) return $this->toData('1', 'stock_code 无效'); break; case '5': $stock = StockMysListModel::where('stock_code', $param['stock_code'])->find(); if (empty($stock)) return $this->toData('1', 'stock_code 无效'); break; case '6': $stock = StockThaListModel::where('stock_code', $param['stock_code'])->find(); if (empty($stock)) return $this->toData('1', 'stock_code 无效'); break; case '7': $stock = StockInListModel::where('stock_code', $param['stock_code'])->find(); if (empty($stock)) return $this->toData('1', 'stock_code 无效'); break; case '9': $stock = StockSgdListModel::where('stock_code', $param['stock_code'])->find(); if (empty($stock)) return $this->toData('1', 'stock_code 无效'); break; case '12': $stock = StockHkdListModel::where('stock_code', $param['stock_code'])->find(); if (empty($stock)) return $this->toData('1', 'stock_code 无效'); break; case '14': $stock = StockGBXListModel::where('stock_code', $param['stock_code'])->find(); if (empty($stock)) return $this->toData('1', 'stock_code 无效'); break; case '15': $stock = StockFurListModel::where('stock_code', $param['stock_code'])->find(); if (empty($stock)) return $this->toData('1', 'stock_code 无效'); break; case '16': $stock = StockEurListModel::where('stock_code', $param['stock_code'])->find(); if (empty($stock)) return $this->toData('1', 'stock_code 无效'); break; case '17': $stock = StockBrlListModel::where('stock_code', $param['stock_code'])->find(); if (empty($stock)) return $this->toData('1', 'stock_code 无效'); break; case '18': $stock = StockJpListModel::where('stock_code', $param['stock_code'])->find(); if (empty($stock)) return $this->toData('1', 'stock_code 无效'); break; default: return $this->toData('1', '股票市场或股票代码 无效'); } // 发布状态 if (empty($param['status']) || !in_array($param['status'], [StockBlockListModel::STATUS_ON, StockBlockListModel::STATUS_OFF])) { return $this->toData('1', '发布状态 无效'); } // 单股价格 if (empty($param['price']) || !is_numeric($param['price']) || $param['price'] <= 0) { return $this->toData('1', '单股价格 无效'); } // 最小申购数量 if (empty($param['min']) || !is_numeric($param['min']) || $param['min'] <= 0 || ceil($param['min']) != $param['min']) { return $this->toData('1', '最小购买股数无效'); } // 开始认购时间 if (empty($param['start_time']) || !is_string($param['start_time'])) { return $this->toData('1', '开始认购时间 无效'); } // 认购结束时间 if (empty($param['end_time']) || !is_string($param['end_time']) || strtotime($param['end_time']) <= strtotime($param['start_time'])) { return $this->toData('1', '认购结束时间 无效'); } // 可出售时间时间 if (empty($param['today_add']) || !is_numeric($param['today_add'])) { return $this->toData('1', 'T+n 无效'); } // 新增数据 $blockStock = new StockBlockListModel(); $blockStock->stock_code = $param['stock_code']; $blockStock->stock_name = $param['stock_name']; $blockStock->type = $param['type']; $blockStock->tape = $stock->tape; $blockStock->status = $param['status']; $blockStock->price = $param['price']; $blockStock->min = $param['min']; $blockStock->start_time = $param['start_time']; $blockStock->end_time = $param['end_time']; $blockStock->today_add = $param['today_add']; $blockStock->keep_decimal = $stock->keep_decimal; $blockStock->info = $param['info'] ?? ''; $blockStock->forced_closure = $stock->forced_closure; $blockStock->up_limit = $stock->up_limit;; $blockStock->down_limit = $stock->down_limit; $blockStock->buy_pwd = isset($param['buy_pwd']) ? trim($param['buy_pwd']) : '' ; $blockStock->create_time = date('Y-m-d H:i:s'); $blockStock->update_time = date('Y-m-d H:i:s'); $blockStock->save(); // 加入缓存 $list_key = StockBlockListModel::$typeListEn[$param['type']] . ":BLOCK:LIST:" . $param['stock_code']; $redis = $this->getRedis(); $redis->del($list_key); $redis->hMset($list_key, [ 'stock_name' => $blockStock->stock_name, 'stock_code' => $blockStock->stock_code, 'status' => $blockStock->status, 'keep_decimal' => $blockStock->keep_decimal, 'forced_closure' => $blockStock->forced_closure, 'up_limit' => $blockStock->up_limit, 'down_limit' => $blockStock->down_limit, 'info' => $blockStock->info, 'tape' => $blockStock->tape, 'price' => $blockStock->price, 'min' => $blockStock->min, 'start_time' => $blockStock->start_time, 'end_time' => $blockStock->end_time, 'today_add' => $blockStock->today_add, 'buy_pwd'=>$blockStock->buy_pwd ]); return $this->toData('0', 'SUCCESS'); } catch (\Exception $exception) { return $this->toData('0', '系统繁忙', [$exception->getMessage()]); } } // 编辑 public function edit($param) { try { if (empty($param['id']) || !is_numeric($param['id'])) { return $this->toData('1', '主键 无效'); } $blockStock = StockBlockListModel::where('id', $param['id'])->where('is_delete', StockBlockListModel::IS_DELETE_NO)->find(); if (empty($blockStock)) { return $this->toData('1', '主键 无效'); } // // 已中签或者已上市不支持修改 // if($blockStock->open_status == PreMysStockModel::OPEN_STATUS_HAD || strtotime($blockStock->get_time)<=time()){ // return $this->toData('1', '已中签或已上市 不支持修改'); // } // 股票代码 if (empty($param['stock_code']) || !is_string($param['stock_code'])) { return $this->toData('1', '股票代码 无效'); } // 股票名称 if (empty($param['stock_name']) || !is_string($param['stock_name'])) { return $this->toData('1', '股票代码 无效'); } // 股票类型 if (empty($param['type']) || !in_array($param['type'], array_keys(StockBlockListModel::$typeList))) { return $this->toData('1', '股票市场 无效'); } switch ($param['type']) { case '3': $stock = StockListModel::where('stock_code', $param['stock_code'])->find(); if (empty($stock)) return $this->toData('1', 'stock_code 无效'); break; case '4': $stock = StockIdnListModel::where('stock_code', $param['stock_code'])->find(); if (empty($stock)) return $this->toData('1', 'stock_code 无效'); break; case '5': $stock = StockMysListModel::where('stock_code', $param['stock_code'])->find(); if (empty($stock)) return $this->toData('1', 'stock_code 无效'); break; case '6': $stock = StockThaListModel::where('stock_code', $param['stock_code'])->find(); if (empty($stock)) return $this->toData('1', 'stock_code 无效'); break; case '7': $stock = StockInListModel::where('stock_code', $param['stock_code'])->find(); if (empty($stock)) return $this->toData('1', 'stock_code 无效'); break; case '9': $stock = StockSgdListModel::where('stock_code', $param['stock_code'])->find(); if (empty($stock)) return $this->toData('1', 'stock_code 无效'); break; case '12': $stock = StockHkdListModel::where('stock_code', $param['stock_code'])->find(); if (empty($stock)) return $this->toData('1', 'stock_code 无效'); break; case '14': $stock = StockGBXListModel::where('stock_code', $param['stock_code'])->find(); if (empty($stock)) return $this->toData('1', 'stock_code 无效'); break; case '15': $stock = StockFurListModel::where('stock_code', $param['stock_code'])->find(); if (empty($stock)) return $this->toData('1', 'stock_code 无效'); break; case '16': $stock = StockEurListModel::where('stock_code', $param['stock_code'])->find(); if (empty($stock)) return $this->toData('1', 'stock_code 无效'); break; case '17': $stock = StockBrlListModel::where('stock_code', $param['stock_code'])->find(); if (empty($stock)) return $this->toData('1', 'stock_code 无效'); break; case '18': $stock = StockJpListModel::where('stock_code', $param['stock_code'])->find(); if (empty($stock)) return $this->toData('1', 'stock_code 无效'); break; default: return $this->toData('1', '股票市场或股票代码 无效'); } // 交易所类型 // if(empty($param['tape']) || !in_array($param['tape'], array_keys(StockBlockListModel::$tapeList))){ // return $this->toData('1', '交易所类型 无效'); // } // 发布状态 if (empty($param['status']) || !in_array($param['status'], [StockBlockListModel::STATUS_ON, StockBlockListModel::STATUS_OFF])) { return $this->toData('1', '发布状态 无效'); } // 单股价格 if (empty($param['price']) || !is_numeric($param['price']) || $param['price'] <= 0) { return $this->toData('1', '单股价格 无效'); } // 最小申购数量 if (empty($param['min']) || !is_numeric($param['min']) || $param['min'] <= 0 || ceil($param['min']) != $param['min']) { return $this->toData('1', '最小购买股数无效'); } // 开始认购时间 if (empty($param['start_time']) || !is_string($param['start_time'])) { return $this->toData('1', '开始认购时间 无效'); } // 认购结束时间 if (empty($param['end_time']) || !is_string($param['end_time']) || strtotime($param['end_time']) <= strtotime($param['start_time'])) { return $this->toData('1', '认购结束时间 无效'); } // 可出售时间时间 if (empty($param['today_add']) || !is_numeric($param['today_add'])) { return $this->toData('1', 'T+n 无效'); } // 新增数据 $blockStock->stock_code = $param['stock_code']; $blockStock->stock_name = $param['stock_name']; $blockStock->type = $param['type']; $blockStock->tape = $stock->tape; $blockStock->status = $param['status']; $blockStock->price = $param['price']; $blockStock->min = $param['min']; $blockStock->start_time = $param['start_time']; $blockStock->end_time = $param['end_time']; $blockStock->today_add = $param['today_add']; $blockStock->keep_decimal = $stock->keep_decimal; $blockStock->info = $param['info'] ?? ''; $blockStock->forced_closure = $stock->forced_closure; $blockStock->up_limit = $stock->up_limit;; $blockStock->down_limit = $stock->down_limit; $blockStock->update_time = date('Y-m-d H:i:s'); $blockStock->buy_pwd = trim($param['buy_pwd']); $blockStock->save(); // 加入缓存 $list_key = StockBlockListModel::$typeListEn[$param['type']] . ":BLOCK:LIST:" . $param['stock_code']; $redis = $this->getRedis(); $redis->del($list_key); $redis->hMset($list_key, [ 'stock_name' => $blockStock->stock_name, 'stock_code' => $blockStock->stock_code, 'status' => $blockStock->status, 'keep_decimal' => $blockStock->keep_decimal, 'forced_closure' => $blockStock->forced_closure, 'up_limit' => $blockStock->up_limit, 'down_limit' => $blockStock->down_limit, 'info' => $blockStock->info, 'tape' => $blockStock->tape, 'price' => $blockStock->price, 'min' => $blockStock->min, 'start_time' => $blockStock->start_time, 'end_time' => $blockStock->end_time, 'today_add' => $blockStock->today_add, 'buy_pwd'=>$blockStock->buy_pwd, ]); return $this->toData('0', 'SUCCESS'); } catch (\Exception $exception) { return $this->toData('0', '系统繁忙', [$exception->getMessage()]); } } // //删除 // public function del($param) // { // try { // if (empty($param['id']) || !is_numeric($param['id'])) { // return $this->toData('1', '主键 无效'); // } // // $preInStock = StockBlockListModel::where('id', $param['id'])->where('is_delete', StockBlockListModel::IS_DELETE_NO)->find(); // if (empty($preInStock)) { // return $this->toData('1', '主键 无效'); // } // // $orderList = UserMysPreStockOrderModel::where('pre_stock_id', $preInStock->id)->select(); // if (!$orderList->isEmpty()) { // return $this->toData('1', '已有申购订单不可删除'); // } // // // 删除 // $list_key = "MYS:STOCK:LIST:" . $preInStock->stock_code; // $redis = $this->getRedis(); // $redis->del($list_key); // // //删除 修改状态 // $preInStock->is_delete = PreMysStockModel::IS_DELETE_YES; // $preInStock->save(); // return $this->toData('0', 'SUCCESS'); // } catch (\Exception $exception) { // return $this->toData('1', '系统繁忙', [$exception->getMessage()]); // } // } }