You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.8 KiB
71 lines
2.8 KiB
<?php
|
|
|
|
namespace app\home\service;
|
|
|
|
|
|
use app\model\StockBlockListModel;
|
|
use app\model\UserStockBlockOrderModel;
|
|
|
|
class BlockStockService extends BaseHomeService
|
|
{
|
|
|
|
// 列表
|
|
public function index($param)
|
|
{
|
|
try {
|
|
if (empty($param['page']) || !is_numeric($param['page']) || empty($param['limit']) || !is_numeric($param['limit'])) {
|
|
$param['page'] = 1;
|
|
$param['limit'] = 10;
|
|
}
|
|
|
|
// stock_type 3 美股 4 印尼 5 马股 6 泰股 9 新加坡股票
|
|
if (empty($param['type']) || !in_array($param['type'], ['3', '4', '5', '6', '7', '9', '12','14','15','16','17','18'])) {
|
|
return $this->toData('1', 'Params error');
|
|
}
|
|
|
|
$list = StockBlockListModel::where('type', $param['type'])->page($param['page'], $param['limit'])->select();
|
|
$total = StockBlockListModel::where('type', $param['type'])->count();
|
|
|
|
$redisKeyArr = [3 => 'US', 4 => 'Indonesia', 5 => 'Malaysia', 6 => 'Thailand', 7 => 'India', 9 => 'Singapore', 12 => 'HongKong',14=>'UK',15=>'France',16=>'Germany',17=>'Brazil',18=>'Japan'];
|
|
$redis = $this->getRedis();
|
|
|
|
foreach ($list as $key=>&$v) {
|
|
unset($list[$key]['buy_pwd']);
|
|
$key = "Stock:" . $redisKeyArr[$v->type];
|
|
$v->current_price = $redis->hget($key . ":ClosePrice", $v->stock_code) ?? $redis->hget($key . ":CloseNewPrice", $v->stock_code);
|
|
}
|
|
return $this->toData('0', 'SUCCESS', ['list' => $list, 'total' => $total,]);
|
|
} catch (\Exception $exception) {
|
|
return $this->toData('0', 'The system is busy. Please try again later.', [$exception->getMessage()]);
|
|
}
|
|
}
|
|
|
|
// 订单列表
|
|
public function list($param, $userId)
|
|
{
|
|
try {
|
|
|
|
if (empty($param['page']) || !is_numeric($param['page']) || empty($param['limit']) || !is_numeric($param['limit'])) {
|
|
$param['page'] = 1;
|
|
$param['limit'] = 10;
|
|
}
|
|
|
|
$where[] = ['user_id', '=', $userId];
|
|
// stock_type 3 美股 4 印尼 5 马股 6 泰股 9 新加坡股票
|
|
if (!empty($param['type']) && ($param['type'] >2 && $param['type']< 19)) {
|
|
$where[] = [
|
|
'type', '=', $param['type']
|
|
];
|
|
}
|
|
|
|
$list = UserStockBlockOrderModel::where($where)->page($param['page'], $param['limit'])->select();
|
|
$total = StockBlockListModel::where($where)->count();
|
|
|
|
return $this->toData('0', 'SUCCESS', ['list' => $list, 'total' => $total,]);
|
|
} catch (\Exception $exception) {
|
|
return $this->toData('0', 'The system is busy. Please try again later.', [$exception->getMessage()]);
|
|
}
|
|
}
|
|
|
|
|
|
}
|