Browse Source

fix: 日股资产明细查询

master
liyang 21 hours ago
parent
commit
9876f2fe3f
  1. 83
      app/model/UserStockJpLogModel.php

83
app/model/UserStockJpLogModel.php

@ -1,5 +1,9 @@
<?php <?php
namespace app\model; namespace app\model;
use think\facade\Db;
/** /**
* @property int id * @property int id
* @property int user_id * @property int user_id
@ -13,27 +17,68 @@ class UserStockJpLogModel extends BaseModel
{ {
protected $name = 'user_stock_jp_log'; protected $name = 'user_stock_jp_log';
protected $pk = 'id'; protected $pk = 'id';
public static function getUserBalanceLog(array $data):array
public static function getUserBalanceLog(array $data): array
{ {
$where['user_id']=$data['user_id']; $userId = $data['user_id'];
$where['stock_id']='JPY'; $page = max(1, (int)($data['page'] ?? 1));
$count=self::where($where)->count(); $pageSize = max(1, (int)($data['page_size'] ?? 10));
if($data['page']<1){ $offset = ($page - 1) * $pageSize;
$data['page']=1;
} // 第一张表
if($data['page_size']<1){ $query1 = self::where('user_id', $userId)
$data['page_size']=10; ->where('stock_id', 'JPY')
} ->field("change_type, stock_id as name, change_num, create_time, order_id");
$list = self::where($where)->field('change_type,stock_id as name,change_num,create_time,order_id')->order('id desc')->page($data['page'],$data['page_size'])->select();
// 第二张表
$query2 = Db::name('user_stock_block_log')
->where('user_id', $userId)
->where('stock_id', 'JPY')
->field("change_type, stock_id as name, change_num, create_time, order_id");
// 合并 SQL
$unionSql = $query1->unionAll($query2->buildSql(), true)->buildSql();
// 查询分页数据
$list = Db::table("({$unionSql}) t")
->order('create_time desc')
->limit($offset, $pageSize)
->select()
->toArray();
// 总数
$count1 = self::where('user_id', $userId)->where('stock_id', 'JPY')->count();
$count2 = Db::name('user_stock_block_log')->where('user_id', $userId)->where('stock_id', 'JPY')->count();
$total = $count1 + $count2;
if(empty($list)){
return [];
}
return [ return [
'total'=>$count, 'total' => $total,
'list'=>$list->toArray(), 'list' => $list,
]; ];
} }
// public static function getUserBalanceLog(array $data):array
// {
// $where['user_id']=$data['user_id'];
// $where['stock_id']='JPY';
// $count=self::where($where)->count();
// if($data['page']<1){
// $data['page']=1;
// }
// if($data['page_size']<1){
// $data['page_size']=10;
// }
// $list = self::where($where)->field('change_type,stock_id as name,change_num,create_time,order_id')->order('id desc')->page($data['page'],$data['page_size'])->select();
// if(empty($list)){
// return [];
// }
// return [
// 'total'=>$count,
// 'list'=>$list->toArray(),
// ];
// }
public static function InsertUserBalanceLog(array $data) public static function InsertUserBalanceLog(array $data)
{ {
$self = new self; $self = new self;
@ -41,7 +86,7 @@ class UserStockJpLogModel extends BaseModel
$self->stock_id = $data['stock_id']; $self->stock_id = $data['stock_id'];
$self->change_type = $data['change_type']; $self->change_type = $data['change_type'];
$self->change_num = $data['change_num']; $self->change_num = $data['change_num'];
if(isset($data['order_id'])){ if (isset($data['order_id'])) {
$self->order_id = $data['order_id']; $self->order_id = $data['order_id'];
} }
$self->before_num = $data['before_num']; $self->before_num = $data['before_num'];
@ -49,8 +94,4 @@ class UserStockJpLogModel extends BaseModel
$self->update_time = date('Y-m-d H:i:s'); $self->update_time = date('Y-m-d H:i:s');
return $self->save(); return $self->save();
} }
} }
Loading…
Cancel
Save