FUND_TYPE::class, 'operate_type' => LOG_TYPE::class ]; public function user() { return $this->hasOne(\App\Module\User\Models\User::class, 'id', 'user_id'); } /** * 生成记录的哈希值 * SHA-256 输出为 64 位十六进制字符串 */ public function generateHash(): string { $data = [ 'id' => $this->id, 'user_id' => $this->user_id, 'fund_id' => $this->fund_id, 'amount' => $this->amount, 'operate_id' => $this->operate_id, 'operate_type' => $this->operate_type, 'before_balance' => $this->before_balance, 'later_balance' => $this->later_balance, 'create_time' => $this->create_time, 'create_ip' => $this->create_ip, 'prev_hash' => $this->prev_hash, ]; // 按键名排序,确保生成的哈希值一致 ksort($data); // 生成 64 位十六进制哈希值 return hash('sha256', json_encode($data, JSON_UNESCAPED_UNICODE)); } /** * @param $user_id * @param $fund_id * @return static */ public static function findLastUserFund($user_id, $fund_id) { return self::query()->where([ 'user_id' => $user_id, 'fund_id' => $fund_id ])->orderBy('id', 'desc')->first(); } public static function addLog($userId, $fundId, $amount) { } }