p2 project
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.

98 lines
3.0 KiB

7 months ago
<?php
7 months ago
namespace app\model;
use think\facade\Db;
7 months ago
/**
* @property int id
* @property int user_id
* @property int stock_id
* @property float change_type
* @property float change_num
* @property string create_time
* @property string update_time
*/
class UserStockJpLogModel extends BaseModel
{
protected $name = 'user_stock_jp_log';
protected $pk = 'id';
public static function getUserBalanceLog(array $data): array
7 months ago
{
$userId = $data['user_id'];
$page = max(1, (int)($data['page'] ?? 1));
$pageSize = max(1, (int)($data['page_size'] ?? 10));
$offset = ($page - 1) * $pageSize;
// 第一张表
$query1 = self::where('user_id', $userId)
->where('stock_id', 'JPY')
->field("change_type, stock_id as name, change_num, create_time, order_id");
// 第二张表
$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;
7 months ago
return [
'total' => $total,
'list' => $list,
7 months ago
];
}
// 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(),
// ];
// }
7 months ago
public static function InsertUserBalanceLog(array $data)
{
$self = new self;
$self->user_id = $data['user_id'];
$self->stock_id = $data['stock_id'];
$self->change_type = $data['change_type'];
$self->change_num = $data['change_num'];
if (isset($data['order_id'])) {
7 months ago
$self->order_id = $data['order_id'];
}
$self->before_num = $data['before_num'];
$self->create_time = date('Y-m-d H:i:s');
$self->update_time = date('Y-m-d H:i:s');
return $self->save();
}
}