# Kylin Library

Kylin 智慧图书馆业务扩展包 — 图书编目、借阅管理、读者管理、座位预约、馆藏统计、阅读推荐。

## 功能特性

- **图书管理**：MARC 编目（CNMARC/MARC21）、ISBN 查重、馆藏副本管理、图书检索
- **借阅管理**：借书/还书/续借、借阅规则引擎、逾期管理、滞纳金计算
- **读者管理**：读者注册、读者证管理、敏感数据 AES-256-CBC 加密、脱敏展示
- **座位预约**：阅览室管理、座位预约/签到/暂离、违规管理（3 次违规冻结 7 天）
- **馆藏统计**：流通统计、入藏统计、读者统计、报表导出
- **阅读推荐**：个性化推荐、新书推荐、热门排行

## 行业标准合规

- GB/T 38548.1-2020 馆藏资源数字化
- GB/T 35660.1-2017 馆藏元数据
- GB/T 2901-2008 信息交换格式
- GB/T 3792.1-2023 图书馆统计
- GB/T 22239-2019 网络安全等级保护
- GB/T 35273-2020 个人信息保护

## 安装

```bash
composer require kylin/library
```

## 配置发布

```bash
php artisan vendor:publish --tag=kylin-library-config
php artisan vendor:publish --tag=kylin-library-migrations
php artisan migrate
```

## 配置说明

```php
// config/kylin-library.php
return [
    'encryption' => [
        'enabled' => true,
        'cipher' => 'aes-256-cbc',
    ],
    'fine_per_day' => 0.5,              // 逾期罚款（元/天）
    'reminder_days_before' => 3,        // 还书提醒天数
    'isbn_api_url' => 'https://...',    // ISBN 查询 API
    'marc' => [
        'standard' => ['cnmarc', 'marc21'],
    ],
    'seat' => [
        'daily_limit' => 1,             // 每日预约次数限制
        'check_in_timeout' => 30,       // 签到超时（分钟）
        'violation_threshold' => 3,     // 违规冻结阈值
        'freeze_days' => 7,             // 冻结天数
    ],
];
```

## 使用示例

### 借阅管理

```php
use Kylin\Library\Facades\KylinLibrary;

// 借书
$borrow = KylinLibrary::borrow([
    'reader_id' => 1,
    'book_id' => 100,
    'due_days' => 30,
]);

// 还书
$return = KylinLibrary::returnBook($borrow->id);

// 续借
$renew = KylinLibrary::renew($borrow->id, 15);
```

### 座位预约

```php
// 预约座位
$seat = KylinLibrary::reserveSeat([
    'reader_id' => 1,
    'seat_id' => 10,
    'room_id' => 1,
    'date' => '2026-06-19',
    'time_slot' => '09:00-12:00',
]);

// 签到
KylinLibrary::checkIn($seat->id);

// 暂离
KylinLibrary::tempLeave($seat->id);
```

### API 路由

| 方法 | 路径 | 说明 |
|------|------|------|
| GET | /api/kylin/library/books | 图书列表 |
| POST | /api/kylin/library/borrow | 借书 |
| POST | /api/kylin/library/return | 还书 |
| POST | /api/kylin/library/renew | 续借 |
| GET | /api/kylin/library/readers | 读者列表 |
| POST | /api/kylin/library/seats/reserve | 座位预约 |
| POST | /api/kylin/library/seats/checkin | 座位签到 |
| POST | /api/kylin/library/seats/temp-leave | 暂离 |

## 法律合规

本包严格遵循以下法律法规和行业标准：

- 《中华人民共和国公共图书馆法》（2018）
- 《中华人民共和国个人信息保护法》（2021）
- 《中华人民共和国著作权法》（2021）
- 《中华人民共和国网络安全法》（2017）
- 《普通高等学校图书馆规程》（教高〔2015〕14号）

详见 [LEGAL.md](./LEGAL.md)。

## 依赖

- PHP ^8.5
- Laravel ^13.0
- kylin/core

## 许可证

私有软件，未经授权禁止使用。