feat: 添加图片变清晰功能
- 创建 /api/enhance 路由,实现图片变清晰API集成 - 在图片标注组件中添加变清晰按钮(Sparkles图标) - 在相册页面添加变清晰按钮 - 系统设置:将抠图设置改名为本地AI设置,添加变清晰API配置 - 支持同步和异步两种模式 - 自动上传到S3存储桶并保存到数据库 - 在相册和出图记录中显示处理后的图片
This commit is contained in:
parent
2c1f0d2dce
commit
e9ceedb3bf
511
RMBG_API_文档.md
Normal file
511
RMBG_API_文档.md
Normal file
@ -0,0 +1,511 @@
|
||||
# RMBG-2.0 API 接口文档
|
||||
|
||||
## 服务信息
|
||||
|
||||
- **服务地址**: http://156.225.27.52:8000
|
||||
- **API版本**: 2.0.0
|
||||
- **模型**: RMBG-2.0 (背景移除模型)
|
||||
- **框架**: FastAPI
|
||||
- **API文档**: http://156.225.27.52:8000/docs
|
||||
- **OpenAPI规范**: http://156.225.27.52:8000/openapi.json
|
||||
- **API密钥**: 所有核心接口需要API密钥认证(详见下方认证说明)
|
||||
|
||||
---
|
||||
|
||||
## 认证方式
|
||||
|
||||
所有核心接口(`/rmbg/file` 和 `/rmbg/base64`)需要在请求头中添加API密钥:
|
||||
|
||||
**请求头**:
|
||||
```
|
||||
X-API-Key: rmbg_sk_live_7K9mP2nQ5rT8vW1xY4zA6bC9dE0fG3hI6jK9mL2nO5pQ8rS1tU4vW7xY0zA3bC6dE9fG
|
||||
```
|
||||
|
||||
**注意**: 以下端点无需API密钥:
|
||||
- `GET /` - 根端点(服务状态检查)
|
||||
- `GET /health` - 健康检查
|
||||
- `GET /api-key-info` - API密钥信息
|
||||
|
||||
---
|
||||
|
||||
## 接口列表
|
||||
|
||||
### 1. 根端点 - 服务状态检查
|
||||
|
||||
**接口地址**: `GET /`
|
||||
|
||||
**描述**: 检查服务是否正常运行
|
||||
|
||||
**请求示例**:
|
||||
```bash
|
||||
curl http://156.225.27.52:8000/
|
||||
```
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
{
|
||||
"message": "RMBG-2.0 API 服务运行正常",
|
||||
"version": "2.0.0",
|
||||
"model": "RMBG-2.0"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2. 健康检查
|
||||
|
||||
**接口地址**: `GET /health`
|
||||
|
||||
**描述**: 检查服务健康状态和模型加载状态(无需API密钥)
|
||||
|
||||
**请求示例**:
|
||||
```bash
|
||||
curl http://156.225.27.52:8000/health
|
||||
```
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
{
|
||||
"status": "healthy",
|
||||
"model_loaded": true,
|
||||
"model": "RMBG-2.0"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 3. API密钥信息
|
||||
|
||||
**接口地址**: `GET /api-key-info`
|
||||
|
||||
**描述**: 获取API密钥使用说明(无需API密钥)
|
||||
|
||||
**请求示例**:
|
||||
```bash
|
||||
curl http://156.225.27.52:8000/api-key-info
|
||||
```
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
{
|
||||
"api_key_name": "X-API-Key",
|
||||
"description": "请在请求头中添加API密钥"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 4. 文件上传背景移除
|
||||
|
||||
**接口地址**: `POST /rmbg/file`
|
||||
|
||||
**描述**: 通过文件上传方式移除图片背景(需要API密钥)
|
||||
|
||||
**Content-Type**: `multipart/form-data`
|
||||
|
||||
**请求头**:
|
||||
```
|
||||
X-API-Key: rmbg_sk_live_7K9mP2nQ5rT8vW1xY4zA6bC9dE0fG3hI6jK9mL2nO5pQ8rS1tU4vW7xY0zA3bC6dE9fG
|
||||
```
|
||||
|
||||
**请求参数**:
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| file | File | 是 | 图片文件(支持常见图片格式) |
|
||||
|
||||
**请求示例 (cURL)**:
|
||||
```bash
|
||||
curl -X POST http://156.225.27.52:8000/rmbg/file \
|
||||
-H "X-API-Key: rmbg_sk_live_7K9mP2nQ5rT8vW1xY4zA6bC9dE0fG3hI6jK9mL2nO5pQ8rS1tU4vW7xY0zA3bC6dE9fG" \
|
||||
-F "file=@/path/to/your/image.jpg"
|
||||
```
|
||||
|
||||
**请求示例 (Python)**:
|
||||
```python
|
||||
import requests
|
||||
|
||||
url = "http://156.225.27.52:8000/rmbg/file"
|
||||
headers = {
|
||||
"X-API-Key": "rmbg_sk_live_7K9mP2nQ5rT8vW1xY4zA6bC9dE0fG3hI6jK9mL2nO5pQ8rS1tU4vW7xY0zA3bC6dE9fG"
|
||||
}
|
||||
files = {"file": open("image.jpg", "rb")}
|
||||
response = requests.post(url, files=files, headers=headers)
|
||||
|
||||
# 保存结果
|
||||
with open("result.png", "wb") as f:
|
||||
f.write(response.content)
|
||||
|
||||
print(f"处理时间: {response.headers.get('X-Processing-Time')} 秒")
|
||||
```
|
||||
|
||||
**请求示例 (JavaScript/Node.js)**:
|
||||
```javascript
|
||||
const FormData = require('form-data');
|
||||
const fs = require('fs');
|
||||
const axios = require('axios');
|
||||
|
||||
const form = new FormData();
|
||||
form.append('file', fs.createReadStream('image.jpg'));
|
||||
|
||||
axios.post('http://156.225.27.52:8000/rmbg/file', form, {
|
||||
headers: {
|
||||
...form.getHeaders(),
|
||||
'X-API-Key': 'rmbg_sk_live_7K9mP2nQ5rT8vW1xY4zA6bC9dE0fG3hI6jK9mL2nO5pQ8rS1tU4vW7xY0zA3bC6dE9fG'
|
||||
},
|
||||
responseType: 'arraybuffer'
|
||||
})
|
||||
.then(response => {
|
||||
fs.writeFileSync('result.png', response.data);
|
||||
console.log('处理时间:', response.headers['x-processing-time'], '秒');
|
||||
});
|
||||
```
|
||||
|
||||
**响应**:
|
||||
- **Content-Type**: `image/png`
|
||||
- **Body**: PNG格式的图片二进制数据(背景已移除)
|
||||
- **Headers**:
|
||||
- `X-Processing-Time`: 处理时间(秒)
|
||||
|
||||
**错误响应**:
|
||||
```json
|
||||
{
|
||||
"detail": "Invalid API key"
|
||||
}
|
||||
```
|
||||
(当API密钥无效或缺失时)
|
||||
|
||||
或
|
||||
```json
|
||||
{
|
||||
"detail": "只支持图片文件"
|
||||
}
|
||||
```
|
||||
(当文件格式不支持时)
|
||||
|
||||
或
|
||||
```json
|
||||
{
|
||||
"detail": "处理失败: [错误信息]"
|
||||
}
|
||||
```
|
||||
(当处理失败时)
|
||||
|
||||
---
|
||||
|
||||
### 5. Base64 图片背景移除
|
||||
|
||||
**接口地址**: `POST /rmbg/base64`
|
||||
|
||||
**描述**: 通过Base64编码的图片数据移除背景(需要API密钥)
|
||||
|
||||
**Content-Type**: `application/json`
|
||||
|
||||
**请求头**:
|
||||
```
|
||||
X-API-Key: rmbg_sk_live_7K9mP2nQ5rT8vW1xY4zA6bC9dE0fG3hI6jK9mL2nO5pQ8rS1tU4vW7xY0zA3bC6dE9fG
|
||||
```
|
||||
|
||||
**请求体**:
|
||||
```json
|
||||
{
|
||||
"image_base64": "base64编码的图片字符串"
|
||||
}
|
||||
```
|
||||
|
||||
**请求参数**:
|
||||
| 参数名 | 类型 | 必填 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| image_base64 | string | 是 | Base64编码的图片数据 |
|
||||
|
||||
**请求示例 (cURL)**:
|
||||
```bash
|
||||
curl -X POST http://156.225.27.52:8000/rmbg/base64 \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-API-Key: rmbg_sk_live_7K9mP2nQ5rT8vW1xY4zA6bC9dE0fG3hI6jK9mL2nO5pQ8rS1tU4vW7xY0zA3bC6dE9fG" \
|
||||
-d '{
|
||||
"image_base64": "iVBORw0KGgoAAAANSUhEUgAA..."
|
||||
}'
|
||||
```
|
||||
|
||||
**请求示例 (Python)**:
|
||||
```python
|
||||
import requests
|
||||
import base64
|
||||
|
||||
# 读取图片并转换为base64
|
||||
with open("image.jpg", "rb") as f:
|
||||
image_base64 = base64.b64encode(f.read()).decode('utf-8')
|
||||
|
||||
url = "http://156.225.27.52:8000/rmbg/base64"
|
||||
headers = {
|
||||
"Content-Type": "application/json",
|
||||
"X-API-Key": "rmbg_sk_live_7K9mP2nQ5rT8vW1xY4zA6bC9dE0fG3hI6jK9mL2nO5pQ8rS1tU4vW7xY0zA3bC6dE9fG"
|
||||
}
|
||||
data = {"image_base64": image_base64}
|
||||
response = requests.post(url, json=data, headers=headers)
|
||||
|
||||
result = response.json()
|
||||
if result["success"]:
|
||||
# 保存结果
|
||||
result_image = base64.b64decode(result["image_base64"])
|
||||
with open("result.png", "wb") as f:
|
||||
f.write(result_image)
|
||||
print(f"处理时间: {result['processing_time']} 秒")
|
||||
```
|
||||
|
||||
**请求示例 (JavaScript)**:
|
||||
```javascript
|
||||
const fs = require('fs');
|
||||
const axios = require('axios');
|
||||
|
||||
// 读取图片并转换为base64
|
||||
const imageBuffer = fs.readFileSync('image.jpg');
|
||||
const imageBase64 = imageBuffer.toString('base64');
|
||||
|
||||
axios.post('http://156.225.27.52:8000/rmbg/base64', {
|
||||
image_base64: imageBase64
|
||||
}, {
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'X-API-Key': 'rmbg_sk_live_7K9mP2nQ5rT8vW1xY4zA6bC9dE0fG3hI6jK9mL2nO5pQ8rS1tU4vW7xY0zA3bC6dE9fG'
|
||||
}
|
||||
})
|
||||
.then(response => {
|
||||
if (response.data.success) {
|
||||
const resultImage = Buffer.from(response.data.image_base64, 'base64');
|
||||
fs.writeFileSync('result.png', resultImage);
|
||||
console.log('处理时间:', response.data.processing_time, '秒');
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
**响应示例**:
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"image_base64": "iVBORw0KGgoAAAANSUhEUgAA...",
|
||||
"processing_time": 1.234
|
||||
}
|
||||
```
|
||||
|
||||
**响应参数**:
|
||||
| 参数名 | 类型 | 说明 |
|
||||
|--------|------|------|
|
||||
| success | boolean | 是否成功 |
|
||||
| image_base64 | string | Base64编码的结果图片(PNG格式) |
|
||||
| processing_time | number | 处理时间(秒) |
|
||||
|
||||
**错误响应**:
|
||||
```json
|
||||
{
|
||||
"detail": "Invalid API key"
|
||||
}
|
||||
```
|
||||
(当API密钥无效或缺失时)
|
||||
|
||||
或
|
||||
```json
|
||||
{
|
||||
"detail": "处理失败: [错误信息]"
|
||||
}
|
||||
```
|
||||
(当处理失败时)
|
||||
|
||||
---
|
||||
|
||||
## 错误码说明
|
||||
|
||||
| HTTP状态码 | 说明 |
|
||||
|-----------|------|
|
||||
| 200 | 请求成功 |
|
||||
| 400 | 请求参数错误(如文件格式不支持) |
|
||||
| 401 | 未授权(API密钥无效或缺失) |
|
||||
| 422 | 请求参数验证失败 |
|
||||
| 500 | 服务器内部错误(如处理失败) |
|
||||
|
||||
---
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **API密钥认证**:
|
||||
- 所有核心接口(`/rmbg/file` 和 `/rmbg/base64`)都需要在请求头中添加 `X-API-Key`
|
||||
- API密钥:`rmbg_sk_live_7K9mP2nQ5rT8vW1xY4zA6bC9dE0fG3hI6jK9mL2nO5pQ8rS1tU4vW7xY0zA3bC6dE9fG`
|
||||
- 健康检查和根端点无需密钥
|
||||
2. **支持的图片格式**: 所有常见图片格式(JPG, PNG, JPEG等)
|
||||
3. **输出格式**: 所有接口返回PNG格式的透明背景图片(RGBA模式)
|
||||
4. **文件大小**: 建议图片大小不超过50MB
|
||||
5. **处理时间**: 处理时间取决于图片大小和服务器负载,通常在0.5-5秒之间
|
||||
6. **CORS**: 服务已配置CORS,支持跨域请求
|
||||
|
||||
---
|
||||
|
||||
## 完整使用示例
|
||||
|
||||
### Python完整示例
|
||||
```python
|
||||
import requests
|
||||
import base64
|
||||
from pathlib import Path
|
||||
|
||||
# 方法1: 文件上传
|
||||
def remove_bg_file(image_path):
|
||||
url = "http://156.225.27.52:8000/rmbg/file"
|
||||
headers = {
|
||||
"X-API-Key": "rmbg_sk_live_7K9mP2nQ5rT8vW1xY4zA6bC9dE0fG3hI6jK9mL2nO5pQ8rS1tU4vW7xY0zA3bC6dE9fG"
|
||||
}
|
||||
with open(image_path, "rb") as f:
|
||||
files = {"file": f}
|
||||
response = requests.post(url, files=files, headers=headers)
|
||||
|
||||
if response.status_code == 200:
|
||||
output_path = Path(image_path).stem + "_nobg.png"
|
||||
with open(output_path, "wb") as f:
|
||||
f.write(response.content)
|
||||
print(f"✅ 成功! 结果已保存到: {output_path}")
|
||||
return output_path
|
||||
else:
|
||||
print(f"❌ 失败: {response.json()}")
|
||||
return None
|
||||
|
||||
# 方法2: Base64
|
||||
def remove_bg_base64(image_path):
|
||||
url = "http://156.225.27.52:8000/rmbg/base64"
|
||||
headers = {
|
||||
"Content-Type": "application/json",
|
||||
"X-API-Key": "rmbg_sk_live_7K9mP2nQ5rT8vW1xY4zA6bC9dE0fG3hI6jK9mL2nO5pQ8rS1tU4vW7xY0zA3bC6dE9fG"
|
||||
}
|
||||
|
||||
with open(image_path, "rb") as f:
|
||||
image_base64 = base64.b64encode(f.read()).decode('utf-8')
|
||||
|
||||
data = {"image_base64": image_base64}
|
||||
response = requests.post(url, json=data, headers=headers)
|
||||
|
||||
if response.status_code == 200:
|
||||
result = response.json()
|
||||
if result["success"]:
|
||||
output_path = Path(image_path).stem + "_nobg.png"
|
||||
result_image = base64.b64decode(result["image_base64"])
|
||||
with open(output_path, "wb") as f:
|
||||
f.write(result_image)
|
||||
print(f"✅ 成功! 处理时间: {result['processing_time']:.2f}秒")
|
||||
return output_path
|
||||
else:
|
||||
print(f"❌ 失败: {response.json()}")
|
||||
return None
|
||||
|
||||
# 使用示例
|
||||
if __name__ == "__main__":
|
||||
image_path = "test_image.jpg"
|
||||
|
||||
# 使用文件上传方式
|
||||
remove_bg_file(image_path)
|
||||
|
||||
# 或使用Base64方式
|
||||
# remove_bg_base64(image_path)
|
||||
```
|
||||
|
||||
### JavaScript/Node.js完整示例
|
||||
```javascript
|
||||
const axios = require('axios');
|
||||
const FormData = require('form-data');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
// 方法1: 文件上传
|
||||
async function removeBgFile(imagePath) {
|
||||
const form = new FormData();
|
||||
form.append('file', fs.createReadStream(imagePath));
|
||||
|
||||
try {
|
||||
const response = await axios.post(
|
||||
'http://156.225.27.52:8000/rmbg/file',
|
||||
form,
|
||||
{
|
||||
headers: {
|
||||
...form.getHeaders(),
|
||||
'X-API-Key': 'rmbg_sk_live_7K9mP2nQ5rT8vW1xY4zA6bC9dE0fG3hI6jK9mL2nO5pQ8rS1tU4vW7xY0zA3bC6dE9fG'
|
||||
},
|
||||
responseType: 'arraybuffer'
|
||||
}
|
||||
);
|
||||
|
||||
const outputPath = path.parse(imagePath).name + '_nobg.png';
|
||||
fs.writeFileSync(outputPath, response.data);
|
||||
console.log(`✅ 成功! 结果已保存到: ${outputPath}`);
|
||||
return outputPath;
|
||||
} catch (error) {
|
||||
console.error('❌ 失败:', error.response?.data || error.message);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// 方法2: Base64
|
||||
async function removeBgBase64(imagePath) {
|
||||
const imageBuffer = fs.readFileSync(imagePath);
|
||||
const imageBase64 = imageBuffer.toString('base64');
|
||||
|
||||
try {
|
||||
const response = await axios.post(
|
||||
'http://156.225.27.52:8000/rmbg/base64',
|
||||
{ image_base64: imageBase64 },
|
||||
{
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'X-API-Key': 'rmbg_sk_live_7K9mP2nQ5rT8vW1xY4zA6bC9dE0fG3hI6jK9mL2nO5pQ8rS1tU4vW7xY0zA3bC6dE9fG'
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
if (response.data.success) {
|
||||
const outputPath = path.parse(imagePath).name + '_nobg.png';
|
||||
const resultImage = Buffer.from(response.data.image_base64, 'base64');
|
||||
fs.writeFileSync(outputPath, resultImage);
|
||||
console.log(`✅ 成功! 处理时间: ${response.data.processing_time.toFixed(2)}秒`);
|
||||
return outputPath;
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('❌ 失败:', error.response?.data || error.message);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// 使用示例
|
||||
(async () => {
|
||||
const imagePath = 'test_image.jpg';
|
||||
|
||||
// 使用文件上传方式
|
||||
await removeBgFile(imagePath);
|
||||
|
||||
// 或使用Base64方式
|
||||
// await removeBgBase64(imagePath);
|
||||
})();
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 交互式API文档
|
||||
|
||||
访问 http://156.225.27.52:8000/docs 可以在浏览器中查看交互式API文档(Swagger UI),支持在线测试接口。
|
||||
|
||||
**注意**: 在Swagger UI中测试需要API密钥的接口时,需要先点击右上角的"Authorize"按钮(如果有),或者直接在请求头中添加 `X-API-Key`。
|
||||
|
||||
---
|
||||
|
||||
## API密钥
|
||||
|
||||
当前API密钥:
|
||||
```
|
||||
rmbg_sk_live_7K9mP2nQ5rT8vW1xY4zA6bC9dE0fG3hI6jK9mL2nO5pQ8rS1tU4vW7xY0zA3bC6dE9fG
|
||||
```
|
||||
|
||||
**请求头格式**:
|
||||
```
|
||||
X-API-Key: rmbg_sk_live_7K9mP2nQ5rT8vW1xY4zA6bC9dE0fG3hI6jK9mL2nO5pQ8rS1tU4vW7xY0zA3bC6dE9fG
|
||||
```
|
||||
|
||||
**安全提示**:
|
||||
- 请妥善保管API密钥,不要将其暴露在客户端代码中
|
||||
- 建议通过环境变量或配置文件管理API密钥
|
||||
- 定期更换API密钥以提高安全性
|
||||
|
||||
@ -347,6 +347,14 @@ export function AdminSettingsClient() {
|
||||
apiKey: "",
|
||||
});
|
||||
|
||||
// 变清晰API配置状态
|
||||
const [enhanceConfig, setEnhanceConfig] = useState({
|
||||
apiUrl: "",
|
||||
apiKey: "",
|
||||
type: "clean", // "clean" | "face"
|
||||
scaleFactor: "", // "" | "1" | "2" | "4"
|
||||
});
|
||||
|
||||
// 加载抠图API配置
|
||||
const { data: rmbgConfigData } = useSWR("/api/admin/settings?key=rmbg_api_config", fetcher);
|
||||
useEffect(() => {
|
||||
@ -359,6 +367,25 @@ export function AdminSettingsClient() {
|
||||
}
|
||||
}, [rmbgConfigData]);
|
||||
|
||||
// 加载变清晰API配置
|
||||
const { data: enhanceConfigData } = useSWR("/api/admin/settings?key=enhance_api_config", fetcher);
|
||||
useEffect(() => {
|
||||
if (enhanceConfigData?.setting?.value) {
|
||||
const config = enhanceConfigData.setting.value as {
|
||||
apiUrl?: string;
|
||||
apiKey?: string;
|
||||
type?: string;
|
||||
scaleFactor?: number;
|
||||
};
|
||||
setEnhanceConfig({
|
||||
apiUrl: config.apiUrl || "",
|
||||
apiKey: config.apiKey || "",
|
||||
type: config.type || "clean",
|
||||
scaleFactor: config.scaleFactor ? String(config.scaleFactor) : "",
|
||||
});
|
||||
}
|
||||
}, [enhanceConfigData]);
|
||||
|
||||
// 导航链接状态
|
||||
const [navLinkForm, setNavLinkForm] = useState({
|
||||
id: "",
|
||||
@ -666,6 +693,40 @@ export function AdminSettingsClient() {
|
||||
}
|
||||
};
|
||||
|
||||
// --- 变清晰API配置逻辑 ---
|
||||
const handleSaveEnhanceConfig = async () => {
|
||||
try {
|
||||
if (!enhanceConfig.apiUrl.trim()) {
|
||||
toast.error("请输入API地址");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!enhanceConfig.apiKey.trim()) {
|
||||
toast.error("请输入API密钥");
|
||||
return;
|
||||
}
|
||||
|
||||
const response = await fetch("/api/admin/settings", {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({
|
||||
key: "enhance_api_config",
|
||||
value: {
|
||||
apiUrl: enhanceConfig.apiUrl.trim(),
|
||||
apiKey: enhanceConfig.apiKey.trim(),
|
||||
type: enhanceConfig.type,
|
||||
scaleFactor: enhanceConfig.scaleFactor ? Number.parseInt(enhanceConfig.scaleFactor) : undefined,
|
||||
},
|
||||
}),
|
||||
});
|
||||
|
||||
if (!response.ok) throw new Error("保存失败");
|
||||
toast.success("变清晰API配置保存成功");
|
||||
} catch (error) {
|
||||
toast.error("保存变清晰API配置失败");
|
||||
}
|
||||
};
|
||||
|
||||
// --- 导航链接逻辑 ---
|
||||
const resetNavLinkForm = () => {
|
||||
setNavLinkForm({ id: "", name: "", url: "", order: 0, isEnabled: true });
|
||||
@ -1018,7 +1079,7 @@ export function AdminSettingsClient() {
|
||||
</TabsTrigger>
|
||||
<TabsTrigger value="rmbg">
|
||||
<Scissors className="mr-2 h-4 w-4" />
|
||||
抠图设置
|
||||
本地AI设置
|
||||
</TabsTrigger>
|
||||
</TabsList>
|
||||
|
||||
@ -2901,8 +2962,9 @@ export function AdminSettingsClient() {
|
||||
</Card>
|
||||
</TabsContent>
|
||||
|
||||
{/* 抠图设置 */}
|
||||
<TabsContent value="rmbg" className="mt-6">
|
||||
{/* 本地AI设置 */}
|
||||
<TabsContent value="rmbg" className="mt-6 space-y-6">
|
||||
{/* 抠图API配置 */}
|
||||
<Card>
|
||||
<CardHeader>
|
||||
<CardTitle>抠图API配置</CardTitle>
|
||||
@ -2950,6 +3012,94 @@ export function AdminSettingsClient() {
|
||||
</Button>
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
{/* 变清晰API配置 */}
|
||||
<Card>
|
||||
<CardHeader>
|
||||
<CardTitle>变清晰API配置</CardTitle>
|
||||
<CardDescription>
|
||||
配置图片变清晰API,用于画图标注功能中的图片增强处理
|
||||
</CardDescription>
|
||||
</CardHeader>
|
||||
<CardContent className="space-y-6 pt-6">
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="enhanceApiUrl">API地址 *</Label>
|
||||
<Input
|
||||
id="enhanceApiUrl"
|
||||
value={enhanceConfig.apiUrl}
|
||||
onChange={(e) => setEnhanceConfig({ ...enhanceConfig, apiUrl: e.target.value })}
|
||||
placeholder="https://techsz.aoscdn.com"
|
||||
/>
|
||||
<div className="text-xs text-muted-foreground">
|
||||
请输入完整的API地址,例如: https://techsz.aoscdn.com
|
||||
</div>
|
||||
</div>
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="enhanceApiKey">API密钥 *</Label>
|
||||
<Input
|
||||
id="enhanceApiKey"
|
||||
type="password"
|
||||
value={enhanceConfig.apiKey}
|
||||
onChange={(e) => setEnhanceConfig({ ...enhanceConfig, apiKey: e.target.value })}
|
||||
placeholder="请输入API密钥"
|
||||
/>
|
||||
<div className="text-xs text-muted-foreground">
|
||||
API密钥是必需的,请从服务提供商获取
|
||||
</div>
|
||||
</div>
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="enhanceType">修复类型</Label>
|
||||
<Select
|
||||
value={enhanceConfig.type}
|
||||
onValueChange={(value) => setEnhanceConfig({ ...enhanceConfig, type: value })}
|
||||
>
|
||||
<SelectTrigger id="enhanceType">
|
||||
<SelectValue />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectItem value="clean">通用放大清晰化</SelectItem>
|
||||
<SelectItem value="face">人像放大清晰化</SelectItem>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
<div className="text-xs text-muted-foreground">
|
||||
选择图片类型:通用或人像(人像模式最多同时处理10个人)
|
||||
</div>
|
||||
</div>
|
||||
<div className="space-y-2">
|
||||
<Label htmlFor="enhanceScaleFactor">放大倍数(可选)</Label>
|
||||
<Select
|
||||
value={enhanceConfig.scaleFactor}
|
||||
onValueChange={(value) => setEnhanceConfig({ ...enhanceConfig, scaleFactor: value })}
|
||||
>
|
||||
<SelectTrigger id="enhanceScaleFactor">
|
||||
<SelectValue placeholder="自动缩放" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectItem value="">自动缩放</SelectItem>
|
||||
<SelectItem value="1">不放大</SelectItem>
|
||||
<SelectItem value="2">2倍放大</SelectItem>
|
||||
<SelectItem value="4">4倍放大</SelectItem>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
<div className="text-xs text-muted-foreground">
|
||||
选择放大倍数:自动(根据图片尺寸智能选择)、不放大、2倍或4倍
|
||||
</div>
|
||||
</div>
|
||||
<div className="rounded-lg border border-blue-200 bg-blue-50 p-4 space-y-2">
|
||||
<div className="text-sm font-medium text-blue-900">API文档说明</div>
|
||||
<div className="text-xs text-blue-800 space-y-1">
|
||||
<p>• API地址应指向服务根地址,例如: https://techsz.aoscdn.com</p>
|
||||
<p>• 系统会自动调用 /api/tasks/visual/scale 接口进行变清晰处理</p>
|
||||
<p>• 支持的图片格式:JPG, JPEG, PNG, BMP, WEBP, TIFF等</p>
|
||||
<p>• 图片大小:不超过20MB,分辨率最大4096x4096</p>
|
||||
<p>• 返回的链接有效期为1小时,系统会自动下载并存储到S3</p>
|
||||
</div>
|
||||
</div>
|
||||
<Button onClick={handleSaveEnhanceConfig}>
|
||||
<Save className="mr-2 h-4 w-4" /> 保存配置
|
||||
</Button>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</TabsContent>
|
||||
|
||||
</Tabs>
|
||||
|
||||
@ -4,7 +4,7 @@ import { useState, useEffect } from "react";
|
||||
import { useRouter } from "next/navigation";
|
||||
import { Button } from "@/components/ui/button";
|
||||
import { Dialog, DialogContent } from "@/components/ui/dialog";
|
||||
import { ArrowLeft, Download, ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight, Edit, Scissors } from "lucide-react";
|
||||
import { ArrowLeft, Download, ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight, Edit, Scissors, Sparkles } from "lucide-react";
|
||||
import { Input } from "@/components/ui/input";
|
||||
import Image from "next/image";
|
||||
import { toast } from "sonner";
|
||||
@ -41,6 +41,7 @@ export default function GalleryPage() {
|
||||
const [dialogOpen, setDialogOpen] = useState(false);
|
||||
const [pageInput, setPageInput] = useState("");
|
||||
const [processingImageId, setProcessingImageId] = useState<string | null>(null);
|
||||
const [enhancingImageId, setEnhancingImageId] = useState<string | null>(null);
|
||||
|
||||
const fetchImages = async (page: number) => {
|
||||
setLoading(true);
|
||||
@ -232,12 +233,26 @@ export default function GalleryPage() {
|
||||
e.stopPropagation();
|
||||
handleRemoveBackground(img, e);
|
||||
}}
|
||||
disabled={processingImageId === img.id}
|
||||
disabled={processingImageId === img.id || enhancingImageId === img.id}
|
||||
title="移除背景(抠图)"
|
||||
>
|
||||
<Scissors className={`h-3 w-3 mr-1 ${processingImageId === img.id ? "animate-spin" : ""}`} />
|
||||
{processingImageId === img.id ? "处理中" : "抠图"}
|
||||
</Button>
|
||||
<Button
|
||||
size="sm"
|
||||
variant="secondary"
|
||||
className="h-8 px-2 bg-black/70 hover:bg-black/90 text-white border-0"
|
||||
onClick={(e) => {
|
||||
e.stopPropagation();
|
||||
handleEnhance(img, e);
|
||||
}}
|
||||
disabled={enhancingImageId === img.id || processingImageId === img.id}
|
||||
title="图片变清晰"
|
||||
>
|
||||
<Sparkles className={`h-3 w-3 mr-1 ${enhancingImageId === img.id ? "animate-spin" : ""}`} />
|
||||
{enhancingImageId === img.id ? "处理中" : "变清晰"}
|
||||
</Button>
|
||||
<Button
|
||||
size="sm"
|
||||
variant="secondary"
|
||||
|
||||
454
app/api/enhance/route.ts
Normal file
454
app/api/enhance/route.ts
Normal file
@ -0,0 +1,454 @@
|
||||
import { NextRequest, NextResponse } from "next/server";
|
||||
import { getSystemSetting } from "@/lib/db/queries";
|
||||
import { auth } from "@/app/(auth)/auth";
|
||||
import { uploadFile } from "@/lib/storage/service";
|
||||
import { db } from "@/lib/db";
|
||||
import { generatedImage } from "@/lib/db/schema";
|
||||
|
||||
/**
|
||||
* 压缩图片生成缩略图(使用 sharp)
|
||||
*/
|
||||
async function createThumbnail(buffer: Buffer, mimeType: string): Promise<Buffer> {
|
||||
try {
|
||||
const sharp = await import("sharp");
|
||||
|
||||
// 创建缩略图(宽度 500px,高度按比例,质量 80%)
|
||||
const thumbnailBuffer = await sharp.default(buffer)
|
||||
.resize(500, null, {
|
||||
fit: "inside",
|
||||
withoutEnlargement: true,
|
||||
})
|
||||
.jpeg({ quality: 80 }) // JPEG格式
|
||||
.toBuffer();
|
||||
|
||||
console.log(`[Enhance] Thumbnail created, size: ${thumbnailBuffer.length} bytes (original: ${buffer.length} bytes)`);
|
||||
return thumbnailBuffer;
|
||||
} catch (error) {
|
||||
console.error("[Enhance] Failed to create thumbnail:", error);
|
||||
// 如果失败,返回原图
|
||||
return buffer;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 将 base64 图片上传到 S3,返回缩略图和原图的 URL
|
||||
*/
|
||||
async function uploadBase64ToS3(base64Data: string, mimeType: string = "image/jpeg"): Promise<{ thumbnail: string; original: string }> {
|
||||
try {
|
||||
// 解析 base64 数据
|
||||
const buffer = Buffer.from(base64Data, "base64");
|
||||
|
||||
// 生成文件名
|
||||
const ext = mimeType.split("/")[1] || "jpg";
|
||||
const timestamp = Date.now();
|
||||
const randomStr = Math.random().toString(36).slice(2, 8);
|
||||
const thumbnailFilename = `enhance-thumb-${timestamp}-${randomStr}.${ext}`;
|
||||
const originalFilename = `enhance-orig-${timestamp}-${randomStr}.${ext}`;
|
||||
|
||||
console.log(`[Enhance] Original size: ${buffer.length} bytes`);
|
||||
|
||||
// 生成缩略图
|
||||
const thumbnailBuffer = await createThumbnail(buffer, mimeType);
|
||||
|
||||
// 转换为 ArrayBuffer
|
||||
const thumbnailArrayBuffer = thumbnailBuffer.buffer.slice(
|
||||
thumbnailBuffer.byteOffset,
|
||||
thumbnailBuffer.byteOffset + thumbnailBuffer.byteLength
|
||||
) as ArrayBuffer;
|
||||
const originalArrayBuffer = buffer.buffer.slice(
|
||||
buffer.byteOffset,
|
||||
buffer.byteOffset + buffer.byteLength
|
||||
) as ArrayBuffer;
|
||||
|
||||
// 并行上传缩略图和原图到 S3
|
||||
console.log(`[Enhance] Uploading thumbnail and original to S3...`);
|
||||
const [thumbnailResult, originalResult] = await Promise.all([
|
||||
uploadFile(thumbnailFilename, thumbnailArrayBuffer),
|
||||
uploadFile(originalFilename, originalArrayBuffer),
|
||||
]);
|
||||
|
||||
console.log(`[Enhance] Uploaded to S3:`);
|
||||
console.log(` - Thumbnail: ${thumbnailResult.url}`);
|
||||
console.log(` - Original: ${originalResult.url}`);
|
||||
|
||||
return {
|
||||
thumbnail: thumbnailResult.url,
|
||||
original: originalResult.url,
|
||||
};
|
||||
} catch (error) {
|
||||
console.error("[Enhance] Failed to upload to S3:", error);
|
||||
throw new Error(`图片上传到存储桶失败: ${error instanceof Error ? error.message : "未知错误"}。请检查系统设置中的存储配置。`);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 轮询获取任务结果
|
||||
*/
|
||||
async function pollTaskResult(apiUrl: string, apiKey: string, taskId: string, maxAttempts: number = 30): Promise<any> {
|
||||
const pollUrl = `${apiUrl}/api/tasks/visual/scale/${taskId}`;
|
||||
|
||||
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
||||
try {
|
||||
const response = await fetch(pollUrl, {
|
||||
method: "GET",
|
||||
headers: {
|
||||
"X-API-KEY": apiKey,
|
||||
},
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
throw new Error(`轮询请求失败: ${response.status} ${response.statusText}`);
|
||||
}
|
||||
|
||||
const result = await response.json();
|
||||
|
||||
// 检查任务状态
|
||||
if (result.status === 200 && result.data) {
|
||||
if (result.data.state === 1) {
|
||||
// 任务完成
|
||||
return result.data;
|
||||
} else if (result.data.state === 0) {
|
||||
// 任务进行中,继续轮询
|
||||
await new Promise(resolve => setTimeout(resolve, 1000)); // 等待1秒
|
||||
continue;
|
||||
} else {
|
||||
// 任务失败
|
||||
throw new Error(`任务失败: state=${result.data.state}`);
|
||||
}
|
||||
} else {
|
||||
throw new Error(`API返回错误: ${result.message || "未知错误"}`);
|
||||
}
|
||||
} catch (error) {
|
||||
if (attempt === maxAttempts - 1) {
|
||||
throw error;
|
||||
}
|
||||
await new Promise(resolve => setTimeout(resolve, 1000)); // 等待1秒后重试
|
||||
}
|
||||
}
|
||||
|
||||
throw new Error("轮询超时,任务未在30秒内完成");
|
||||
}
|
||||
|
||||
/**
|
||||
* 图片变清晰API路由
|
||||
* 从数据库读取变清晰API配置,调用外部API进行图片增强处理
|
||||
* 将处理后的图片上传到S3并保存到数据库
|
||||
*/
|
||||
export async function POST(request: NextRequest) {
|
||||
try {
|
||||
// 0. 获取用户会话
|
||||
const session = await auth();
|
||||
if (!session?.user?.id) {
|
||||
return NextResponse.json(
|
||||
{ error: "未授权,请先登录" },
|
||||
{ status: 401 }
|
||||
);
|
||||
}
|
||||
|
||||
const userId = session.user.id;
|
||||
// 1. 从数据库获取变清晰API配置
|
||||
const enhanceConfig = await getSystemSetting({ key: "enhance_api_config" });
|
||||
|
||||
if (!enhanceConfig || !enhanceConfig.value) {
|
||||
return NextResponse.json(
|
||||
{ error: "变清晰API配置未设置,请在系统设置中配置" },
|
||||
{ status: 400 }
|
||||
);
|
||||
}
|
||||
|
||||
const config = enhanceConfig.value as {
|
||||
apiUrl?: string;
|
||||
apiKey?: string;
|
||||
type?: string; // "clean" | "face"
|
||||
scaleFactor?: number; // 1 | 2 | 4
|
||||
};
|
||||
|
||||
if (!config.apiUrl || !config.apiKey) {
|
||||
return NextResponse.json(
|
||||
{ error: "变清晰API地址或密钥未配置" },
|
||||
{ status: 400 }
|
||||
);
|
||||
}
|
||||
|
||||
// 2. 获取请求体(Base64图片或FormData)
|
||||
const contentType = request.headers.get("content-type") || "";
|
||||
|
||||
let imageBase64: string;
|
||||
let prompt = ""; // 用户提示词(可选)
|
||||
let chatId: string | null = null; // 聊天ID(可选)
|
||||
let messageId: string | null = null; // 消息ID(可选)
|
||||
|
||||
if (contentType.includes("application/json")) {
|
||||
// JSON格式:Base64图片
|
||||
const body = await request.json();
|
||||
imageBase64 = body.image_base64;
|
||||
prompt = body.prompt || "图片变清晰处理";
|
||||
chatId = body.chatId || null;
|
||||
messageId = body.messageId || null;
|
||||
|
||||
if (!imageBase64) {
|
||||
return NextResponse.json(
|
||||
{ error: "缺少image_base64参数" },
|
||||
{ status: 400 }
|
||||
);
|
||||
}
|
||||
} else if (contentType.includes("multipart/form-data")) {
|
||||
// FormData格式:文件上传
|
||||
const formData = await request.formData();
|
||||
const file = formData.get("file") as File;
|
||||
|
||||
if (!file) {
|
||||
return NextResponse.json(
|
||||
{ error: "缺少file参数" },
|
||||
{ status: 400 }
|
||||
);
|
||||
}
|
||||
|
||||
// 将文件转换为Base64
|
||||
const arrayBuffer = await file.arrayBuffer();
|
||||
const buffer = Buffer.from(arrayBuffer);
|
||||
imageBase64 = buffer.toString("base64");
|
||||
prompt = (formData.get("prompt") as string) || "图片变清晰处理";
|
||||
chatId = (formData.get("chatId") as string) || null;
|
||||
messageId = (formData.get("messageId") as string) || null;
|
||||
} else {
|
||||
return NextResponse.json(
|
||||
{ error: "不支持的Content-Type,请使用application/json或multipart/form-data" },
|
||||
{ status: 400 }
|
||||
);
|
||||
}
|
||||
|
||||
// 3. 调用变清晰API(使用同步模式)
|
||||
const apiUrl = config.apiUrl.endsWith("/")
|
||||
? config.apiUrl.slice(0, -1)
|
||||
: config.apiUrl;
|
||||
|
||||
const enhanceUrl = `${apiUrl}/api/tasks/visual/scale`;
|
||||
|
||||
// 将Base64转换为Buffer
|
||||
const imageBuffer = Buffer.from(imageBase64, "base64");
|
||||
|
||||
// 创建FormData
|
||||
const formData = new FormData();
|
||||
const blob = new Blob([imageBuffer], { type: "image/jpeg" });
|
||||
formData.append("image_file", blob, "image.jpg");
|
||||
formData.append("sync", "1"); // 同步模式
|
||||
formData.append("type", config.type || "clean"); // 默认通用清晰化
|
||||
if (config.scaleFactor) {
|
||||
formData.append("scale_factor", String(config.scaleFactor));
|
||||
}
|
||||
formData.append("return_type", "2"); // 返回base64
|
||||
|
||||
const headers: HeadersInit = {
|
||||
"X-API-KEY": config.apiKey,
|
||||
};
|
||||
|
||||
const startTime = Date.now();
|
||||
let response: Response;
|
||||
|
||||
try {
|
||||
// 添加超时控制(60秒,因为同步模式可能需要更长时间)
|
||||
const controller = new AbortController();
|
||||
const timeoutId = setTimeout(() => controller.abort(), 60000);
|
||||
|
||||
response = await fetch(enhanceUrl, {
|
||||
method: "POST",
|
||||
headers,
|
||||
body: formData,
|
||||
signal: controller.signal,
|
||||
});
|
||||
|
||||
clearTimeout(timeoutId);
|
||||
} catch (fetchError) {
|
||||
const processingTime = (Date.now() - startTime) / 1000;
|
||||
console.error("[Enhance API] 网络请求失败:", {
|
||||
error: fetchError,
|
||||
enhanceUrl,
|
||||
processingTime,
|
||||
});
|
||||
|
||||
// 检查是否是网络连接错误
|
||||
if (fetchError instanceof Error) {
|
||||
if (fetchError.name === 'AbortError') {
|
||||
return NextResponse.json(
|
||||
{
|
||||
error: "变清晰API请求超时",
|
||||
detail: "请求超过60秒未响应,请检查API服务器状态或网络连接",
|
||||
},
|
||||
{ status: 504 }
|
||||
);
|
||||
}
|
||||
|
||||
// 检查错误消息和cause中的网络错误
|
||||
const errorMessage = fetchError.message || '';
|
||||
const errorCause = (fetchError as any).cause;
|
||||
const causeMessage = errorCause?.message || '';
|
||||
const causeCode = errorCause?.code || '';
|
||||
|
||||
// 检查各种网络连接错误
|
||||
if (errorMessage.includes('EHOSTUNREACH') ||
|
||||
errorMessage.includes('ENOTFOUND') ||
|
||||
errorMessage.includes('ECONNREFUSED') ||
|
||||
errorMessage.includes('No route to host') ||
|
||||
causeMessage.includes('EHOSTUNREACH') ||
|
||||
causeMessage.includes('ENOTFOUND') ||
|
||||
causeMessage.includes('ECONNREFUSED') ||
|
||||
causeMessage.includes('No route to host') ||
|
||||
causeCode === 'EHOSTUNREACH' ||
|
||||
causeCode === 'ENOTFOUND' ||
|
||||
causeCode === 'ECONNREFUSED') {
|
||||
return NextResponse.json(
|
||||
{
|
||||
error: "无法连接到变清晰API服务器",
|
||||
detail: `服务器无法访问 ${enhanceUrl},请检查:\n1. API服务器是否在线\n2. 网络连接是否正常\n3. 防火墙设置是否正确\n4. API地址和密钥是否正确`,
|
||||
},
|
||||
{ status: 503 }
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return NextResponse.json(
|
||||
{
|
||||
error: "变清晰API请求失败",
|
||||
detail: fetchError instanceof Error ? fetchError.message : "未知网络错误",
|
||||
},
|
||||
{ status: 500 }
|
||||
);
|
||||
}
|
||||
|
||||
const processingTime = (Date.now() - startTime) / 1000;
|
||||
|
||||
if (!response.ok) {
|
||||
const errorText = await response.text();
|
||||
console.error("[Enhance API] 请求失败:", {
|
||||
status: response.status,
|
||||
statusText: response.statusText,
|
||||
error: errorText,
|
||||
enhanceUrl,
|
||||
});
|
||||
|
||||
return NextResponse.json(
|
||||
{
|
||||
error: "变清晰API请求失败",
|
||||
detail: errorText || response.statusText,
|
||||
},
|
||||
{ status: response.status }
|
||||
);
|
||||
}
|
||||
|
||||
const result = await response.json();
|
||||
|
||||
// 4. 处理返回结果
|
||||
if (result.status !== 200 || !result.data) {
|
||||
return NextResponse.json(
|
||||
{ error: "变清晰处理失败", detail: result.message || "未知错误" },
|
||||
{ status: 500 }
|
||||
);
|
||||
}
|
||||
|
||||
// 检查是否是异步任务(返回task_id)
|
||||
let enhancedImageBase64: string;
|
||||
let finalProcessingTime = processingTime;
|
||||
|
||||
if (result.data.task_id && !result.data.image && !result.data.image_base64) {
|
||||
// 异步模式,需要轮询
|
||||
console.log(`[Enhance] 异步任务,task_id: ${result.data.task_id}`);
|
||||
const taskResult = await pollTaskResult(apiUrl, config.apiKey, result.data.task_id);
|
||||
|
||||
if (taskResult.image_base64) {
|
||||
enhancedImageBase64 = taskResult.image_base64;
|
||||
} else if (taskResult.image) {
|
||||
// 返回的是URL,需要下载
|
||||
const imageResponse = await fetch(taskResult.image);
|
||||
const imageBuffer = await imageResponse.arrayBuffer();
|
||||
enhancedImageBase64 = Buffer.from(imageBuffer).toString("base64");
|
||||
} else {
|
||||
return NextResponse.json(
|
||||
{ error: "变清晰处理失败", detail: "轮询结果未包含图片数据" },
|
||||
{ status: 500 }
|
||||
);
|
||||
}
|
||||
finalProcessingTime = (Date.now() - startTime) / 1000;
|
||||
} else if (result.data.image_base64) {
|
||||
// 同步模式,直接返回base64
|
||||
enhancedImageBase64 = result.data.image_base64;
|
||||
} else if (result.data.image) {
|
||||
// 返回的是URL,需要下载
|
||||
const imageResponse = await fetch(result.data.image);
|
||||
if (!imageResponse.ok) {
|
||||
return NextResponse.json(
|
||||
{ error: "变清晰处理失败", detail: "无法下载处理后的图片" },
|
||||
{ status: 500 }
|
||||
);
|
||||
}
|
||||
const imageBuffer = await imageResponse.arrayBuffer();
|
||||
enhancedImageBase64 = Buffer.from(imageBuffer).toString("base64");
|
||||
} else {
|
||||
return NextResponse.json(
|
||||
{ error: "变清晰处理失败", detail: "API未返回处理后的图片" },
|
||||
{ status: 500 }
|
||||
);
|
||||
}
|
||||
|
||||
if (!enhancedImageBase64) {
|
||||
return NextResponse.json(
|
||||
{ error: "变清晰处理失败", detail: "无法获取处理后的图片" },
|
||||
{ status: 500 }
|
||||
);
|
||||
}
|
||||
|
||||
// 5. 上传处理后的图片到S3存储桶
|
||||
let thumbnailUrl: string;
|
||||
let originalUrl: string;
|
||||
|
||||
try {
|
||||
const uploadResult = await uploadBase64ToS3(enhancedImageBase64, "image/jpeg");
|
||||
thumbnailUrl = uploadResult.thumbnail;
|
||||
originalUrl = uploadResult.original;
|
||||
console.log(`[Enhance] ✅ Images uploaded to S3 successfully`);
|
||||
} catch (uploadError) {
|
||||
console.error("[Enhance] ❌ Failed to upload to S3:", uploadError);
|
||||
return NextResponse.json(
|
||||
{
|
||||
error: "图片上传到存储桶失败",
|
||||
detail: uploadError instanceof Error ? uploadError.message : "未知错误"
|
||||
},
|
||||
{ status: 500 }
|
||||
);
|
||||
}
|
||||
|
||||
// 6. 保存图片记录到数据库
|
||||
try {
|
||||
await db.insert(generatedImage).values({
|
||||
userId,
|
||||
chatId: chatId || null,
|
||||
messageId: messageId || null,
|
||||
thumbnailUrl,
|
||||
originalUrl,
|
||||
imageSize: "2K", // 默认尺寸
|
||||
prompt: prompt || "图片变清晰处理",
|
||||
modelId: "enhance-1.0", // 标记为变清晰处理
|
||||
});
|
||||
console.log(`[Enhance] ✅ Image record saved to database`);
|
||||
} catch (dbError) {
|
||||
console.error("[Enhance] ❌ Failed to save image record to database:", dbError);
|
||||
// 即使数据库保存失败,也返回成功(因为图片已上传到S3)
|
||||
}
|
||||
|
||||
// 7. 返回结果(包含S3 URL和Base64,前端可以选择使用)
|
||||
return NextResponse.json({
|
||||
success: true,
|
||||
image_base64: enhancedImageBase64, // 保留Base64用于前端立即显示
|
||||
thumbnail_url: thumbnailUrl, // S3缩略图URL
|
||||
original_url: originalUrl, // S3原图URL
|
||||
processing_time: finalProcessingTime,
|
||||
});
|
||||
} catch (error) {
|
||||
console.error("[Enhance API] 处理错误:", error);
|
||||
return NextResponse.json(
|
||||
{ error: "服务器内部错误", detail: error instanceof Error ? error.message : "未知错误" },
|
||||
{ status: 500 }
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
118
backup-old-server.sh
Executable file
118
backup-old-server.sh
Executable file
@ -0,0 +1,118 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 备份旧服务器数据脚本
|
||||
# 这个脚本只备份数据,不执行迁移
|
||||
|
||||
set -e
|
||||
|
||||
OLD_SERVER="156.225.27.52"
|
||||
OLD_PORT="5204"
|
||||
OLD_USER="root"
|
||||
OLD_PASS="Jsjj@8888"
|
||||
BACKUP_DIR="./migration-backup-$(date +%Y%m%d_%H%M%S)"
|
||||
|
||||
echo "=========================================="
|
||||
echo "AI Chatbot 旧服务器数据备份"
|
||||
echo "=========================================="
|
||||
echo "服务器: $OLD_USER@$OLD_SERVER:$OLD_PORT"
|
||||
echo "备份目录: $BACKUP_DIR"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
# 创建备份目录
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
|
||||
# 步骤1: 备份数据库
|
||||
echo "📦 步骤 1/3: 备份数据库..."
|
||||
sshpass -p "$OLD_PASS" ssh -p "$OLD_PORT" "$OLD_USER@$OLD_SERVER" << 'EOF'
|
||||
cd /var/www/ai-chatbot
|
||||
if [ ! -f .env.local ]; then
|
||||
echo "❌ 未找到 .env.local 文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 读取 POSTGRES_URL
|
||||
POSTGRES_URL=$(grep "^POSTGRES_URL=" .env.local | cut -d '=' -f2- | tr -d '"' | tr -d "'")
|
||||
|
||||
if [ -z "$POSTGRES_URL" ]; then
|
||||
echo "❌ 无法读取 POSTGRES_URL"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 解析数据库连接信息
|
||||
DB_NAME=$(echo "$POSTGRES_URL" | sed -n 's|.*/\([^?]*\)$|\1|p')
|
||||
DB_USER=$(echo "$POSTGRES_URL" | sed -n 's|.*://\([^:]*\):.*|\1|p')
|
||||
DB_PASS=$(echo "$POSTGRES_URL" | sed -n 's|.*://[^:]*:\([^@]*\)@.*|\1|p')
|
||||
DB_HOST=$(echo "$POSTGRES_URL" | sed -n 's|.*@\([^:]*\):.*|\1|p')
|
||||
DB_PORT=$(echo "$POSTGRES_URL" | sed -n 's|.*:\([0-9]*\)/.*|\1|p')
|
||||
|
||||
if [ -z "$DB_PORT" ]; then
|
||||
DB_PORT=5432
|
||||
fi
|
||||
|
||||
echo "数据库信息: $DB_USER@$DB_HOST:$DB_PORT/$DB_NAME"
|
||||
|
||||
# 创建备份目录
|
||||
mkdir -p /tmp/ai-chatbot-backup
|
||||
|
||||
# 使用 pg_dump 备份数据库
|
||||
export PGPASSWORD="$DB_PASS"
|
||||
BACKUP_FILE="/tmp/ai-chatbot-backup/database_backup_$(date +%Y%m%d_%H%M%S).dump"
|
||||
pg_dump -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -F c -f "$BACKUP_FILE" 2>&1
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "✅ 数据库备份完成: $BACKUP_FILE"
|
||||
ls -lh "$BACKUP_FILE"
|
||||
else
|
||||
echo "❌ 数据库备份失败"
|
||||
exit 1
|
||||
fi
|
||||
EOF
|
||||
|
||||
# 下载数据库备份
|
||||
echo ""
|
||||
echo "📥 步骤 2/3: 下载数据库备份..."
|
||||
LATEST_BACKUP=$(sshpass -p "$OLD_PASS" ssh -p "$OLD_PORT" "$OLD_USER@$OLD_SERVER" "ls -t /tmp/ai-chatbot-backup/*.dump 2>/dev/null | head -1")
|
||||
if [ -z "$LATEST_BACKUP" ]; then
|
||||
echo "❌ 未找到备份文件"
|
||||
exit 1
|
||||
fi
|
||||
echo "正在下载: $LATEST_BACKUP"
|
||||
sshpass -p "$OLD_PASS" scp -P "$OLD_PORT" "$OLD_USER@$OLD_SERVER:$LATEST_BACKUP" "$BACKUP_DIR/database.dump"
|
||||
echo "✅ 数据库备份已下载 ($(du -h "$BACKUP_DIR/database.dump" | cut -f1))"
|
||||
|
||||
# 下载项目文件和配置
|
||||
echo ""
|
||||
echo "📥 步骤 3/3: 下载项目文件..."
|
||||
sshpass -p "$OLD_PASS" ssh -p "$OLD_PORT" "$OLD_USER@$OLD_SERVER" << 'EOF'
|
||||
cd /var/www/ai-chatbot
|
||||
# 创建项目打包(排除 node_modules 和 .next)
|
||||
tar --exclude='node_modules' \
|
||||
--exclude='.next' \
|
||||
--exclude='.git' \
|
||||
--exclude='*.log' \
|
||||
-czf /tmp/ai-chatbot-backup/project.tar.gz .
|
||||
echo "✅ 项目文件打包完成"
|
||||
EOF
|
||||
|
||||
sshpass -p "$OLD_PASS" scp -P "$OLD_PORT" "$OLD_USER@$OLD_SERVER:/tmp/ai-chatbot-backup/project.tar.gz" "$BACKUP_DIR/"
|
||||
echo "✅ 项目文件已下载 ($(du -h "$BACKUP_DIR/project.tar.gz" | cut -f1))"
|
||||
|
||||
# 下载环境变量文件
|
||||
sshpass -p "$OLD_PASS" scp -P "$OLD_PORT" "$OLD_USER@$OLD_SERVER:/var/www/ai-chatbot/.env.local" "$BACKUP_DIR/.env.local" 2>/dev/null || echo "⚠️ 未找到 .env.local 文件"
|
||||
echo "✅ 环境变量文件已下载"
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "✅ 备份完成!"
|
||||
echo "=========================================="
|
||||
echo "备份目录: $BACKUP_DIR"
|
||||
echo "包含文件:"
|
||||
ls -lh "$BACKUP_DIR"
|
||||
echo ""
|
||||
echo "📝 下一步:"
|
||||
echo "1. 确保新服务器 (114.66.31.51) 可以连接"
|
||||
echo "2. 运行迁移脚本: ./migrate-server.sh"
|
||||
echo " 或者使用备份文件手动迁移"
|
||||
echo "=========================================="
|
||||
|
||||
0
check-gpu.sh
Normal file → Executable file
0
check-gpu.sh
Normal file → Executable file
83
check-server-ssh.sh
Executable file
83
check-server-ssh.sh
Executable file
@ -0,0 +1,83 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 服务器SSH配置检查脚本
|
||||
# 请在服务器上运行此脚本来检查SSH配置
|
||||
|
||||
echo "=========================================="
|
||||
echo "服务器SSH配置检查"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
# 检查SSH服务状态
|
||||
echo "1. 检查SSH服务状态..."
|
||||
if systemctl is-active --quiet sshd || systemctl is-active --quiet ssh; then
|
||||
echo "✅ SSH服务正在运行"
|
||||
systemctl status sshd 2>/dev/null || systemctl status ssh 2>/dev/null | head -5
|
||||
else
|
||||
echo "❌ SSH服务未运行"
|
||||
echo "启动命令: systemctl start sshd 或 systemctl start ssh"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# 检查SSH端口监听
|
||||
echo "2. 检查SSH端口监听..."
|
||||
if netstat -tlnp 2>/dev/null | grep -E ':22\s' || ss -tlnp 2>/dev/null | grep -E ':22\s'; then
|
||||
echo "✅ SSH正在监听端口22"
|
||||
netstat -tlnp 2>/dev/null | grep :22 || ss -tlnp 2>/dev/null | grep :22
|
||||
else
|
||||
echo "❌ SSH未监听端口22"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# 检查防火墙状态
|
||||
echo "3. 检查防火墙状态..."
|
||||
if command -v ufw &> /dev/null; then
|
||||
echo "UFW防火墙状态:"
|
||||
ufw status
|
||||
echo ""
|
||||
echo "如果22端口未开放,运行: ufw allow 22/tcp"
|
||||
elif command -v firewall-cmd &> /dev/null; then
|
||||
echo "firewalld防火墙状态:"
|
||||
firewall-cmd --list-all
|
||||
echo ""
|
||||
echo "如果22端口未开放,运行: firewall-cmd --permanent --add-service=ssh && firewall-cmd --reload"
|
||||
elif command -v iptables &> /dev/null; then
|
||||
echo "iptables规则:"
|
||||
iptables -L -n | grep -E '22|ssh' || echo "未找到SSH相关规则"
|
||||
echo ""
|
||||
echo "如果22端口未开放,运行: iptables -A INPUT -p tcp --dport 22 -j ACCEPT"
|
||||
else
|
||||
echo "未检测到防火墙工具"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# 检查SSH配置文件
|
||||
echo "4. 检查SSH配置文件..."
|
||||
if [ -f /etc/ssh/sshd_config ]; then
|
||||
echo "SSH配置文件: /etc/ssh/sshd_config"
|
||||
echo "端口配置:"
|
||||
grep -E "^Port|^#Port" /etc/ssh/sshd_config | head -1
|
||||
echo "允许root登录:"
|
||||
grep -E "^PermitRootLogin|^#PermitRootLogin" /etc/ssh/sshd_config | head -1
|
||||
echo ""
|
||||
echo "如果需要修改配置,编辑后运行: systemctl restart sshd"
|
||||
else
|
||||
echo "❌ 未找到SSH配置文件"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# 检查网络接口
|
||||
echo "5. 检查网络接口..."
|
||||
ip addr show | grep -E "inet " | head -5
|
||||
echo ""
|
||||
|
||||
# 检查云服务器安全组(提示)
|
||||
echo "=========================================="
|
||||
echo "重要提示:"
|
||||
echo "=========================================="
|
||||
echo "如果是云服务器,还需要检查:"
|
||||
echo "1. 云控制台的安全组规则 - 确保开放22端口"
|
||||
echo "2. 云控制台的防火墙规则 - 确保允许SSH连接"
|
||||
echo "3. 如果使用阿里云/腾讯云等,检查安全组入站规则"
|
||||
echo "=========================================="
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
"use client";
|
||||
|
||||
import React, { useRef, useState, useEffect, useCallback } from "react";
|
||||
import { X, Pencil, Circle, ArrowRight, Type, Check, Undo, Trash2, Scissors } from "lucide-react";
|
||||
import { X, Pencil, Circle, ArrowRight, Type, Check, Undo, Trash2, Scissors, Sparkles } from "lucide-react";
|
||||
import { Button } from "./ui/button";
|
||||
import { toast } from "sonner";
|
||||
|
||||
@ -58,6 +58,7 @@ export function ImageAnnotator({ imageUrl, onConfirm, onCancel }: ImageAnnotator
|
||||
const [offset, setOffset] = useState({ x: 0, y: 0 });
|
||||
const [isLoading, setIsLoading] = useState(true);
|
||||
const [isRemovingBg, setIsRemovingBg] = useState(false);
|
||||
const [isEnhancing, setIsEnhancing] = useState(false);
|
||||
|
||||
// 加载图片
|
||||
useEffect(() => {
|
||||
@ -376,6 +377,72 @@ export function ImageAnnotator({ imageUrl, onConfirm, onCancel }: ImageAnnotator
|
||||
}
|
||||
};
|
||||
|
||||
// 变清晰处理
|
||||
const handleEnhance = async () => {
|
||||
if (!image || !canvasRef.current) return;
|
||||
|
||||
setIsEnhancing(true);
|
||||
try {
|
||||
// 获取当前画布的图片(包含标注)
|
||||
const canvas = canvasRef.current;
|
||||
const currentImageData = canvas.toDataURL("image/png");
|
||||
|
||||
// 提取Base64数据(去掉data:image/png;base64,前缀)
|
||||
const base64Data = currentImageData.split(",")[1];
|
||||
|
||||
// 调用变清晰API
|
||||
const response = await fetch("/api/enhance", {
|
||||
method: "POST",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
body: JSON.stringify({
|
||||
image_base64: base64Data,
|
||||
prompt: "画图标注-变清晰处理", // 可选:添加提示词
|
||||
}),
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
const error = await response.json();
|
||||
throw new Error(error.error || "变清晰处理失败");
|
||||
}
|
||||
|
||||
const result = await response.json();
|
||||
|
||||
if (result.success && result.image_base64) {
|
||||
// 将返回的Base64图片加载为新图片
|
||||
const processedImage = new window.Image();
|
||||
processedImage.crossOrigin = "anonymous";
|
||||
|
||||
processedImage.onload = () => {
|
||||
// 更新图片和画布
|
||||
setImage(processedImage);
|
||||
// 清空所有标注(因为图片已更新)
|
||||
setActions([]);
|
||||
toast.success(`变清晰完成!图片已保存到相册。处理时间: ${result.processing_time?.toFixed(2) || "未知"}秒`);
|
||||
};
|
||||
|
||||
processedImage.onerror = () => {
|
||||
throw new Error("加载处理后的图片失败");
|
||||
};
|
||||
|
||||
// 优先使用S3 URL(如果可用),否则使用Base64
|
||||
if (result.original_url) {
|
||||
processedImage.src = result.original_url;
|
||||
} else {
|
||||
processedImage.src = `data:image/jpeg;base64,${result.image_base64}`;
|
||||
}
|
||||
} else {
|
||||
throw new Error(result.error || "变清晰处理失败");
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("[变清晰] 错误:", error);
|
||||
toast.error(error instanceof Error ? error.message : "变清晰失败,请稍后重试");
|
||||
} finally {
|
||||
setIsEnhancing(false);
|
||||
}
|
||||
};
|
||||
|
||||
// 确认
|
||||
const handleConfirm = () => {
|
||||
const canvas = canvasRef.current;
|
||||
@ -417,12 +484,22 @@ export function ImageAnnotator({ imageUrl, onConfirm, onCancel }: ImageAnnotator
|
||||
variant="ghost"
|
||||
size="sm"
|
||||
onClick={handleRemoveBackground}
|
||||
disabled={isRemovingBg || !image}
|
||||
disabled={isRemovingBg || isEnhancing || !image}
|
||||
title="移除背景(抠图)"
|
||||
>
|
||||
<Scissors className={`mr-1 h-4 w-4 ${isRemovingBg ? "animate-spin" : ""}`} />
|
||||
{isRemovingBg ? "处理中..." : "抠图"}
|
||||
</Button>
|
||||
<Button
|
||||
variant="ghost"
|
||||
size="sm"
|
||||
onClick={handleEnhance}
|
||||
disabled={isEnhancing || isRemovingBg || !image}
|
||||
title="图片变清晰"
|
||||
>
|
||||
<Sparkles className={`mr-1 h-4 w-4 ${isEnhancing ? "animate-spin" : ""}`} />
|
||||
{isEnhancing ? "处理中..." : "变清晰"}
|
||||
</Button>
|
||||
<Button variant="ghost" size="sm" onClick={handleUndo} disabled={actions.length === 0}>
|
||||
<Undo className="mr-1 h-4 w-4" />
|
||||
撤销
|
||||
|
||||
125
deploy-rmbg-feature.sh
Executable file
125
deploy-rmbg-feature.sh
Executable file
@ -0,0 +1,125 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 抠图功能部署脚本
|
||||
# 用于将新功能更新到服务器
|
||||
|
||||
set -e
|
||||
|
||||
echo "=================================================================================="
|
||||
echo "🚀 抠图功能部署脚本"
|
||||
echo "=================================================================================="
|
||||
|
||||
# 服务器配置
|
||||
SERVER="45.192.99.48"
|
||||
USER="root"
|
||||
PORT="22"
|
||||
PASSWORD="1blZllMIp7"
|
||||
PROJECT_DIR="/var/www/ai-chatbot"
|
||||
SSH_OPTS="-o StrictHostKeyChecking=no -o ServerAliveInterval=60"
|
||||
|
||||
echo ""
|
||||
echo "📋 部署步骤:"
|
||||
echo " 1. 检查本地代码状态"
|
||||
echo " 2. 提交代码到Git(如果需要)"
|
||||
echo " 3. 推送到远程仓库"
|
||||
echo " 4. 在服务器上拉取更新"
|
||||
echo " 5. 安装依赖(如果需要)"
|
||||
echo " 6. 重新构建项目"
|
||||
echo " 7. 重启应用"
|
||||
echo ""
|
||||
|
||||
# 步骤1: 检查本地代码状态
|
||||
echo "步骤 1/7: 检查本地代码状态..."
|
||||
if ! git diff --quiet || ! git diff --cached --quiet; then
|
||||
echo "⚠️ 发现未提交的更改:"
|
||||
git status --short
|
||||
echo ""
|
||||
read -p "是否提交这些更改?(y/n) " -n 1 -r
|
||||
echo ""
|
||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||
git add -A
|
||||
git commit -m "feat: 添加画图标注抠图功能
|
||||
|
||||
- 新增抠图API路由 (/api/rmbg)
|
||||
- 在画图标注组件中添加抠图功能
|
||||
- 在系统设置中添加抠图API配置
|
||||
- 支持图片上传到S3并保存到数据库
|
||||
- 图片可在相册和出图记录中查看"
|
||||
echo "✅ 代码已提交"
|
||||
else
|
||||
echo "❌ 取消部署(需要先提交代码)"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "✅ 没有未提交的更改"
|
||||
fi
|
||||
|
||||
# 步骤2: 推送到远程仓库
|
||||
echo ""
|
||||
echo "步骤 2/7: 推送到远程仓库..."
|
||||
read -p "是否推送到远程仓库?(y/n) " -n 1 -r
|
||||
echo ""
|
||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||
git push
|
||||
echo "✅ 代码已推送到远程仓库"
|
||||
else
|
||||
echo "⚠️ 跳过推送(如果服务器使用本地代码,可以跳过)"
|
||||
fi
|
||||
|
||||
# 步骤3-7: 在服务器上执行
|
||||
echo ""
|
||||
echo "步骤 3-7: 在服务器上执行更新..."
|
||||
sshpass -p "$PASSWORD" ssh -p "$PORT" $SSH_OPTS "$USER@$SERVER" << 'REMOTEEOF'
|
||||
set -e
|
||||
cd /var/www/ai-chatbot
|
||||
|
||||
echo ""
|
||||
echo "步骤 3/7: 拉取最新代码..."
|
||||
git pull || echo "⚠️ Git pull失败,可能使用本地代码"
|
||||
|
||||
echo ""
|
||||
echo "步骤 4/7: 检查依赖..."
|
||||
if [ -f "pnpm-lock.yaml" ]; then
|
||||
echo "检查pnpm依赖..."
|
||||
pnpm install --no-frozen-lockfile || echo "⚠️ 依赖安装失败"
|
||||
else
|
||||
echo "⚠️ 未找到pnpm-lock.yaml"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "步骤 5/7: 重新构建项目..."
|
||||
pnpm build || {
|
||||
echo "❌ 构建失败,查看错误信息:"
|
||||
pnpm build 2>&1 | tail -30
|
||||
exit 1
|
||||
}
|
||||
|
||||
echo ""
|
||||
echo "步骤 6/7: 重启应用..."
|
||||
pm2 restart ai-chatbot || pm2 restart all || {
|
||||
echo "⚠️ PM2重启失败,尝试手动重启..."
|
||||
pm2 list
|
||||
}
|
||||
|
||||
echo ""
|
||||
echo "步骤 7/7: 检查应用状态..."
|
||||
sleep 3
|
||||
pm2 status ai-chatbot || pm2 list
|
||||
|
||||
echo ""
|
||||
echo "=================================================================================="
|
||||
echo "✅ 部署完成!"
|
||||
echo "=================================================================================="
|
||||
echo ""
|
||||
echo "📋 验证步骤:"
|
||||
echo " 1. 访问系统设置 → 抠图设置,配置API地址"
|
||||
echo " 2. 在画图标注界面测试抠图功能"
|
||||
echo " 3. 检查相册中是否显示抠图后的图片"
|
||||
echo " 4. 检查系统设置的出图记录中是否显示"
|
||||
echo ""
|
||||
REMOTEEOF
|
||||
|
||||
echo ""
|
||||
echo "=================================================================================="
|
||||
echo "✅ 部署脚本执行完成!"
|
||||
echo "=================================================================================="
|
||||
171
lib/security/crowdsec-evaluation.md
Normal file
171
lib/security/crowdsec-evaluation.md
Normal file
@ -0,0 +1,171 @@
|
||||
# CrowdSec 评估报告
|
||||
|
||||
## 当前安全防护状态
|
||||
|
||||
### ✅ 已部署的安全措施
|
||||
|
||||
1. **fail2ban** - SSH暴力破解防护
|
||||
- 状态:已安装并运行
|
||||
- 效果:已封禁15个攻击者IP
|
||||
- 覆盖:SSH服务
|
||||
|
||||
2. **应用层安全防护**
|
||||
- 速率限制:防止API滥用和DDoS
|
||||
- 可疑请求检测:基于行为模式识别攻击
|
||||
- 输入清理和验证:防止命令注入和XSS
|
||||
- 覆盖:Web应用和API
|
||||
|
||||
## CrowdSec 简介
|
||||
|
||||
CrowdSec 是一个现代化的开源安全引擎,提供:
|
||||
- **社区威胁情报**:共享全球攻击者IP黑名单
|
||||
- **行为分析**:基于机器学习的异常检测
|
||||
- **多服务保护**:不仅限于SSH,可保护Web、API、数据库等
|
||||
- **灵活配置**:支持自定义场景和规则
|
||||
- **轻量级**:资源占用低
|
||||
|
||||
## CrowdSec vs fail2ban 对比
|
||||
|
||||
| 特性 | fail2ban | CrowdSec |
|
||||
|------|----------|----------|
|
||||
| **成熟度** | 非常成熟,广泛使用 | 较新,但发展迅速 |
|
||||
| **社区支持** | 大 | 快速增长 |
|
||||
| **威胁情报** | 无(仅本地检测) | ✅ 全球共享威胁情报 |
|
||||
| **保护范围** | 主要SSH | ✅ SSH、Web、API、数据库等 |
|
||||
| **配置复杂度** | 简单 | 中等 |
|
||||
| **资源占用** | 低 | 低 |
|
||||
| **学习曲线** | 低 | 中等 |
|
||||
| **与Next.js集成** | 无直接集成 | ✅ 有API和中间件支持 |
|
||||
|
||||
## 是否需要安装 CrowdSec?
|
||||
|
||||
### ✅ 建议安装的情况
|
||||
|
||||
1. **需要更全面的保护**
|
||||
- 当前fail2ban只保护SSH
|
||||
- CrowdSec可以保护Web应用、API、数据库等
|
||||
|
||||
2. **需要威胁情报**
|
||||
- 利用全球社区共享的攻击者IP黑名单
|
||||
- 自动更新,无需手动维护
|
||||
|
||||
3. **需要行为分析**
|
||||
- 检测异常访问模式
|
||||
- 识别高级持续性威胁(APT)
|
||||
|
||||
4. **需要统一管理**
|
||||
- 一个工具管理所有安全规则
|
||||
- 统一的日志和监控
|
||||
|
||||
### ❌ 可以不安装的情况
|
||||
|
||||
1. **当前防护已足够**
|
||||
- fail2ban已有效保护SSH
|
||||
- 应用层已有完善的安全措施
|
||||
|
||||
2. **资源有限**
|
||||
- 服务器资源紧张
|
||||
- 需要最小化系统复杂度
|
||||
|
||||
3. **团队技术栈限制**
|
||||
- 团队不熟悉CrowdSec
|
||||
- 维护成本考虑
|
||||
|
||||
## 推荐方案
|
||||
|
||||
### 方案A:立即安装(推荐)
|
||||
|
||||
**适用场景**:
|
||||
- 服务器资源充足
|
||||
- 需要最全面的安全防护
|
||||
- 愿意投入时间学习和维护
|
||||
|
||||
**优势**:
|
||||
- ✅ 获得全球威胁情报
|
||||
- ✅ 保护更多服务(Web、API、数据库)
|
||||
- ✅ 更智能的行为分析
|
||||
- ✅ 与fail2ban可以共存(互补)
|
||||
|
||||
**实施步骤**:
|
||||
1. 安装CrowdSec
|
||||
2. 配置Web应用保护
|
||||
3. 配置API保护
|
||||
4. 启用威胁情报共享
|
||||
5. 监控和调优
|
||||
|
||||
### 方案B:暂不安装(当前推荐)
|
||||
|
||||
**适用场景**:
|
||||
- 当前安全措施已足够
|
||||
- 优先稳定性和简单性
|
||||
- 资源有限
|
||||
|
||||
**理由**:
|
||||
- ✅ fail2ban已有效保护SSH
|
||||
- ✅ 应用层已有完善防护
|
||||
- ✅ 避免过度复杂化
|
||||
- ✅ 减少维护成本
|
||||
|
||||
**后续考虑**:
|
||||
- 如果攻击增加,再考虑安装
|
||||
- 如果发现fail2ban无法覆盖的攻击,再评估
|
||||
|
||||
## 最终建议
|
||||
|
||||
### 🎯 当前阶段:**暂不安装**
|
||||
|
||||
**理由**:
|
||||
1. **当前防护已足够**
|
||||
- fail2ban有效保护SSH(已封禁15个IP)
|
||||
- 应用层有速率限制、输入验证、可疑检测
|
||||
- 多层防护已建立
|
||||
|
||||
2. **避免过度复杂化**
|
||||
- 当前系统已稳定运行
|
||||
- 增加新工具需要学习和维护成本
|
||||
- 可能引入新的配置问题
|
||||
|
||||
3. **可以后续添加**
|
||||
- 如果发现fail2ban无法覆盖的攻击
|
||||
- 如果需要更智能的行为分析
|
||||
- 如果需要威胁情报共享
|
||||
|
||||
### 📋 监控指标
|
||||
|
||||
如果出现以下情况,建议安装CrowdSec:
|
||||
- SSH攻击持续增加,fail2ban封禁效果不佳
|
||||
- 发现Web应用层面的攻击(fail2ban无法检测)
|
||||
- 需要更智能的异常行为检测
|
||||
- 需要利用全球威胁情报
|
||||
|
||||
### 🔄 替代方案
|
||||
|
||||
如果暂时不安装CrowdSec,可以:
|
||||
1. **加强现有防护**
|
||||
- 优化fail2ban规则
|
||||
- 增强应用层安全检测
|
||||
- 添加更多输入验证
|
||||
|
||||
2. **监控和日志**
|
||||
- 定期检查fail2ban日志
|
||||
- 监控应用安全日志
|
||||
- 分析攻击模式
|
||||
|
||||
3. **定期评估**
|
||||
- 每月评估安全状况
|
||||
- 根据攻击趋势决定是否需要CrowdSec
|
||||
|
||||
## 总结
|
||||
|
||||
**当前建议:暂不安装CrowdSec**
|
||||
|
||||
- ✅ 当前安全措施已足够
|
||||
- ✅ fail2ban + 应用层防护已建立多层防护
|
||||
- ✅ 避免过度复杂化
|
||||
- ✅ 可以后续根据需求添加
|
||||
|
||||
**如果决定安装**:
|
||||
- CrowdSec与fail2ban可以共存
|
||||
- 可以提供额外的威胁情报和行为分析
|
||||
- 需要一定的学习和维护成本
|
||||
|
||||
192
lib/security/crowdsec-internal-monitoring.md
Normal file
192
lib/security/crowdsec-internal-monitoring.md
Normal file
@ -0,0 +1,192 @@
|
||||
# CrowdSec 内部威胁监控报告
|
||||
|
||||
## 📊 监控状态总览
|
||||
|
||||
### ✅ 当前状态
|
||||
- **auditd服务**:运行中
|
||||
- **CrowdSec auditd监控**:已启用
|
||||
- **日志处理**:1.21k行已读取,255行已解析
|
||||
- **内部威胁检测**:0个警报(系统正常)
|
||||
|
||||
## 🔍 已启用的内部威胁检测场景(6个)
|
||||
|
||||
### 1. auditd-postexploit-exec-from-net
|
||||
- **检测内容**:从网络下载并执行(curl/wget + exec)
|
||||
- **用途**:检测后门利用行为
|
||||
- **场景**:检测攻击者下载恶意脚本并执行
|
||||
- **状态**:已启用,正在监控
|
||||
|
||||
### 2. auditd-base64-exec-behavior
|
||||
- **检测内容**:base64编码执行行为
|
||||
- **用途**:检测隐藏的命令执行
|
||||
- **场景**:检测使用base64编码隐藏恶意命令
|
||||
- **状态**:已启用,正在监控
|
||||
|
||||
### 3. auditd-postexploit-pkill
|
||||
- **检测内容**:后门利用后的进程终止行为
|
||||
- **用途**:检测恶意进程管理
|
||||
- **场景**:检测攻击者终止安全进程
|
||||
- **状态**:已启用,正在监控
|
||||
|
||||
### 4. auditd-postexploit-rm
|
||||
- **检测内容**:后门利用后的文件删除行为
|
||||
- **用途**:检测痕迹清理行为
|
||||
- **场景**:检测攻击者删除日志和证据
|
||||
- **状态**:已启用,正在监控
|
||||
|
||||
### 5. auditd-suid-crash
|
||||
- **检测内容**:SUID权限滥用导致的崩溃
|
||||
- **用途**:检测权限提升攻击
|
||||
- **场景**:检测利用SUID程序进行权限提升
|
||||
- **状态**:已启用,正在监控
|
||||
|
||||
### 6. auditd-sus-exec
|
||||
- **检测内容**:可疑的执行行为
|
||||
- **用途**:检测异常进程执行
|
||||
- **场景**:检测不正常的程序执行模式
|
||||
- **状态**:已启用,正在监控
|
||||
|
||||
## 📈 监控数据统计
|
||||
|
||||
### 日志处理
|
||||
- **audit.log读取**:1.21k行
|
||||
- **已解析**:255行
|
||||
- **未解析**:951行(正常,部分日志不需要解析)
|
||||
|
||||
### 场景触发
|
||||
- **当前活跃实例**:0个(系统正常)
|
||||
- **历史触发**:无(系统正常)
|
||||
|
||||
## 🚨 检测能力
|
||||
|
||||
### 可以检测的内部威胁类型
|
||||
|
||||
1. **后门利用**
|
||||
- 从网络下载恶意脚本
|
||||
- 执行下载的脚本
|
||||
- 创建反向shell
|
||||
|
||||
2. **恶意进程**
|
||||
- 隐藏的命令执行
|
||||
- base64编码的恶意命令
|
||||
- 异常进程行为
|
||||
|
||||
3. **权限提升**
|
||||
- SUID权限滥用
|
||||
- 权限提升攻击
|
||||
|
||||
4. **痕迹清理**
|
||||
- 删除日志文件
|
||||
- 删除证据文件
|
||||
- 清理攻击痕迹
|
||||
|
||||
5. **进程管理**
|
||||
- 终止安全进程
|
||||
- 恶意进程管理
|
||||
|
||||
## 📋 查看监控日志的命令
|
||||
|
||||
### 查看CrowdSec警报
|
||||
```bash
|
||||
# 查看所有警报
|
||||
cscli alerts list
|
||||
|
||||
# 查看最近的警报
|
||||
cscli alerts list --limit 20
|
||||
|
||||
# 查看特定类型的警报
|
||||
cscli alerts list | grep auditd
|
||||
```
|
||||
|
||||
### 查看auditd原始日志
|
||||
```bash
|
||||
# 实时查看audit日志
|
||||
tail -f /var/log/audit/audit.log
|
||||
|
||||
# 查看最近的audit日志
|
||||
tail -100 /var/log/audit/audit.log
|
||||
|
||||
# 搜索特定事件
|
||||
ausearch -k exec # 查看执行事件
|
||||
ausearch -k file # 查看文件访问事件
|
||||
```
|
||||
|
||||
### 查看CrowdSec服务日志
|
||||
```bash
|
||||
# 实时查看CrowdSec日志
|
||||
journalctl -u crowdsec -f
|
||||
|
||||
# 查看最近的日志
|
||||
journalctl -u crowdsec -n 50
|
||||
|
||||
# 查看错误日志
|
||||
journalctl -u crowdsec -p err
|
||||
```
|
||||
|
||||
### 查看场景指标
|
||||
```bash
|
||||
# 查看所有指标
|
||||
cscli metrics
|
||||
|
||||
# 查看场景统计
|
||||
cscli metrics | grep -A 20 "Scenario Metrics"
|
||||
|
||||
# 查看auditd相关指标
|
||||
cscli metrics | grep auditd
|
||||
```
|
||||
|
||||
## 🔄 监控流程
|
||||
|
||||
1. **auditd收集系统事件**
|
||||
- 记录系统调用
|
||||
- 记录文件访问
|
||||
- 记录进程执行
|
||||
|
||||
2. **CrowdSec解析日志**
|
||||
- 解析audit.log
|
||||
- 提取关键事件
|
||||
- 匹配场景规则
|
||||
|
||||
3. **场景检测**
|
||||
- 检测后门利用行为
|
||||
- 检测异常执行
|
||||
- 检测权限滥用
|
||||
|
||||
4. **自动响应**
|
||||
- 生成警报
|
||||
- 创建封禁决策
|
||||
- 通知管理员
|
||||
|
||||
## ✅ 当前系统状态
|
||||
|
||||
- **内部威胁**:0个警报(系统正常)
|
||||
- **外部攻击**:5个警报(SSH暴力破解,已封禁)
|
||||
- **系统健康**:正常
|
||||
|
||||
## 🛡️ 防护效果
|
||||
|
||||
CrowdSec的auditd监控正在:
|
||||
- ✅ 实时监控系统内部活动
|
||||
- ✅ 检测后门利用行为
|
||||
- ✅ 检测恶意进程执行
|
||||
- ✅ 检测权限提升攻击
|
||||
- ✅ 检测痕迹清理行为
|
||||
- ✅ 记录所有可疑活动
|
||||
|
||||
## 📝 注意事项
|
||||
|
||||
1. **auditd日志量**
|
||||
- auditd会产生大量日志
|
||||
- 需要定期清理旧日志
|
||||
- 建议配置日志轮转
|
||||
|
||||
2. **性能影响**
|
||||
- auditd对系统性能影响很小
|
||||
- CrowdSec解析效率高
|
||||
- 不会影响正常服务
|
||||
|
||||
3. **误报处理**
|
||||
- 某些正常操作可能触发警报
|
||||
- 需要根据实际情况调整规则
|
||||
- 可以配置白名单
|
||||
|
||||
209
lib/security/database-security-report.md
Normal file
209
lib/security/database-security-report.md
Normal file
@ -0,0 +1,209 @@
|
||||
# PostgreSQL 数据库安全报告
|
||||
|
||||
## 📊 安全状态总览
|
||||
|
||||
### ✅ 已实施的安全措施
|
||||
|
||||
1. **网络访问控制**
|
||||
- ✅ 仅监听本地地址(127.0.0.1, ::1)
|
||||
- ✅ 无外部网络访问
|
||||
- ✅ 端口5432仅本地可访问
|
||||
|
||||
2. **CrowdSec监控**
|
||||
- ✅ PostgreSQL暴力破解检测已启用
|
||||
- ✅ 实时监控数据库连接
|
||||
- ✅ 自动检测和封禁攻击者
|
||||
|
||||
3. **应用层安全**
|
||||
- ✅ 使用ORM (Drizzle ORM)
|
||||
- ✅ 自动参数化查询
|
||||
- ✅ 防止SQL注入攻击
|
||||
|
||||
4. **日志记录**
|
||||
- ✅ 数据库日志已启用
|
||||
- ✅ 记录所有查询和错误
|
||||
|
||||
## 🔍 详细安全检查
|
||||
|
||||
### 1. 网络访问安全
|
||||
|
||||
**当前配置:**
|
||||
- 监听地址:`localhost` (127.0.0.1, ::1)
|
||||
- 外部连接:0个
|
||||
- 端口:5432(仅本地)
|
||||
|
||||
**安全评估:** ✅ 安全
|
||||
- 数据库不对外暴露
|
||||
- 只能通过本地应用访问
|
||||
- 无法从外部直接连接
|
||||
|
||||
### 2. 访问控制 (pg_hba.conf)
|
||||
|
||||
**需要检查的配置:**
|
||||
- 本地连接认证方式
|
||||
- 密码加密方式
|
||||
- 用户权限限制
|
||||
|
||||
**建议:**
|
||||
- 使用`md5`或`scram-sha-256`认证
|
||||
- 限制用户权限到最小必要
|
||||
- 定期审查用户列表
|
||||
|
||||
### 3. CrowdSec监控
|
||||
|
||||
**已启用场景:**
|
||||
- `crowdsecurity/pgsql-bf` - PostgreSQL暴力破解检测
|
||||
|
||||
**监控能力:**
|
||||
- 检测暴力破解攻击
|
||||
- 自动封禁攻击者IP
|
||||
- 记录攻击尝试
|
||||
|
||||
**当前状态:**
|
||||
- 攻击警报:0个
|
||||
- 监控状态:正常
|
||||
|
||||
### 4. 应用层安全
|
||||
|
||||
**ORM使用:**
|
||||
- Drizzle ORM自动参数化所有查询
|
||||
- 防止SQL注入攻击
|
||||
- 类型安全的查询构建
|
||||
|
||||
**查询示例:**
|
||||
```typescript
|
||||
// ✅ 安全:使用ORM,自动参数化
|
||||
await db.select().from(user).where(eq(user.email, email));
|
||||
|
||||
// ❌ 不安全:直接SQL拼接(项目中未使用)
|
||||
// await db.execute(`SELECT * FROM user WHERE email = '${email}'`);
|
||||
```
|
||||
|
||||
### 5. 数据库用户权限
|
||||
|
||||
**当前用户:**
|
||||
- `chatbot_user` - 应用数据库用户
|
||||
- `postgres` - 管理员用户
|
||||
|
||||
**权限建议:**
|
||||
- 应用用户仅需必要的表权限
|
||||
- 不要使用超级用户运行应用
|
||||
- 定期审查用户权限
|
||||
|
||||
### 6. 密码安全
|
||||
|
||||
**当前状态:**
|
||||
- 密码存储在环境变量中
|
||||
- 使用强密码策略
|
||||
|
||||
**建议:**
|
||||
- 定期更换密码
|
||||
- 使用密码管理器
|
||||
- 不要在代码中硬编码密码
|
||||
|
||||
## ⚠️ 需要加强的安全措施
|
||||
|
||||
### 优先级1:立即实施
|
||||
|
||||
1. **检查pg_hba.conf配置**
|
||||
```bash
|
||||
# 确保使用安全的认证方式
|
||||
local all all md5
|
||||
host all all 127.0.0.1/32 md5
|
||||
```
|
||||
|
||||
2. **启用SSL连接**(如果可能)
|
||||
```bash
|
||||
# 在postgresql.conf中启用SSL
|
||||
ssl = on
|
||||
```
|
||||
|
||||
3. **限制数据库用户权限**
|
||||
```sql
|
||||
-- 仅授予必要的权限
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO chatbot_user;
|
||||
```
|
||||
|
||||
### 优先级2:短期实施
|
||||
|
||||
1. **定期备份**
|
||||
- 自动备份数据库
|
||||
- 测试恢复流程
|
||||
|
||||
2. **监控异常查询**
|
||||
- 设置慢查询日志
|
||||
- 监控异常访问模式
|
||||
|
||||
3. **审计日志**
|
||||
- 记录所有数据库操作
|
||||
- 定期审查日志
|
||||
|
||||
### 优先级3:长期优化
|
||||
|
||||
1. **数据库加密**
|
||||
- 表级加密
|
||||
- 敏感字段加密
|
||||
|
||||
2. **访问审计**
|
||||
- 完整的访问日志
|
||||
- 异常行为检测
|
||||
|
||||
3. **定期安全审计**
|
||||
- 检查配置
|
||||
- 更新补丁
|
||||
- 审查权限
|
||||
|
||||
## 📋 安全检查清单
|
||||
|
||||
### 网络安全
|
||||
- [x] 仅监听本地地址
|
||||
- [x] 无外部访问
|
||||
- [ ] 防火墙规则(如果需要)
|
||||
|
||||
### 访问控制
|
||||
- [ ] 检查pg_hba.conf配置
|
||||
- [ ] 审查用户权限
|
||||
- [ ] 使用强密码
|
||||
|
||||
### 监控和日志
|
||||
- [x] CrowdSec监控已启用
|
||||
- [x] 数据库日志已启用
|
||||
- [ ] 设置日志轮转
|
||||
|
||||
### 应用安全
|
||||
- [x] 使用ORM防止SQL注入
|
||||
- [x] 参数化查询
|
||||
- [ ] 输入验证(应用层)
|
||||
|
||||
## 🛡️ 当前安全等级
|
||||
|
||||
**总体评估:** ✅ **较安全**
|
||||
|
||||
**优势:**
|
||||
- ✅ 网络隔离良好(仅本地访问)
|
||||
- ✅ 使用ORM防止SQL注入
|
||||
- ✅ CrowdSec监控已启用
|
||||
- ✅ 日志记录完整
|
||||
|
||||
**需要改进:**
|
||||
- ⚠️ 需要检查pg_hba.conf详细配置
|
||||
- ⚠️ 需要审查用户权限
|
||||
- ⚠️ 考虑启用SSL(如果可能)
|
||||
|
||||
## 📝 建议的后续行动
|
||||
|
||||
1. **立即执行:**
|
||||
- 检查pg_hba.conf配置
|
||||
- 审查数据库用户权限
|
||||
- 确认密码强度
|
||||
|
||||
2. **短期执行:**
|
||||
- 设置数据库备份
|
||||
- 配置日志轮转
|
||||
- 审查慢查询
|
||||
|
||||
3. **长期执行:**
|
||||
- 定期安全审计
|
||||
- 更新PostgreSQL版本
|
||||
- 实施数据库加密
|
||||
|
||||
83
lib/security/internal-threat-monitoring.md
Normal file
83
lib/security/internal-threat-monitoring.md
Normal file
@ -0,0 +1,83 @@
|
||||
# 内部威胁监控方案
|
||||
|
||||
## 当前内部安全监控状态
|
||||
|
||||
### ✅ 已部署的监控
|
||||
|
||||
1. **CrowdSec Auditd 监控**
|
||||
- 监控系统调用和进程执行
|
||||
- 检测后门利用行为
|
||||
- 检测异常进程执行
|
||||
- 检测SUID权限滥用
|
||||
|
||||
2. **系统日志监控**
|
||||
- SSH登录监控
|
||||
- 系统进程监控
|
||||
- 文件访问监控(通过auditd)
|
||||
|
||||
### ⚠️ 需要加强的监控
|
||||
|
||||
1. **进程监控**
|
||||
- 实时进程监控
|
||||
- 异常进程检测
|
||||
- 僵尸进程检测
|
||||
|
||||
2. **文件完整性监控**
|
||||
- 关键系统文件监控
|
||||
- 配置文件变更监控
|
||||
- 可执行文件监控
|
||||
|
||||
3. **网络连接监控**
|
||||
- 异常出站连接
|
||||
- 反向shell检测
|
||||
- 数据外泄检测
|
||||
|
||||
4. **系统资源监控**
|
||||
- CPU异常使用
|
||||
- 内存异常使用
|
||||
- 磁盘IO异常
|
||||
|
||||
## 推荐的内部分全监控工具
|
||||
|
||||
### 1. AIDE (Advanced Intrusion Detection Environment)
|
||||
- **功能**:文件完整性监控
|
||||
- **用途**:检测系统文件被修改
|
||||
- **安装**:`dnf install aide`
|
||||
|
||||
### 2. rkhunter (Rootkit Hunter)
|
||||
- **功能**:Rootkit和恶意软件检测
|
||||
- **用途**:扫描隐藏的恶意软件
|
||||
- **安装**:`dnf install rkhunter`
|
||||
|
||||
### 3. chkrootkit
|
||||
- **功能**:Rootkit检测
|
||||
- **用途**:检测已知的rootkit
|
||||
- **安装**:`dnf install chkrootkit`
|
||||
|
||||
### 4. psacct (进程 accounting)
|
||||
- **功能**:进程活动记录
|
||||
- **用途**:记录所有进程执行历史
|
||||
- **安装**:`dnf install psacct`
|
||||
|
||||
### 5. auditd (已部分启用)
|
||||
- **功能**:系统审计
|
||||
- **用途**:记录系统调用和文件访问
|
||||
- **状态**:CrowdSec正在使用
|
||||
|
||||
## 实施建议
|
||||
|
||||
### 优先级1:立即实施
|
||||
1. **启用完整的auditd监控**
|
||||
2. **安装AIDE进行文件完整性监控**
|
||||
3. **定期运行rkhunter扫描**
|
||||
|
||||
### 优先级2:短期实施
|
||||
1. **安装psacct记录进程活动**
|
||||
2. **配置实时进程监控**
|
||||
3. **设置异常网络连接告警**
|
||||
|
||||
### 优先级3:长期优化
|
||||
1. **部署SIEM系统**
|
||||
2. **实施行为分析**
|
||||
3. **建立安全基线**
|
||||
|
||||
@ -118,3 +118,5 @@ export async function validateRequestBody(
|
||||
return { valid: true };
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
252
lib/security/security-status-report.md
Normal file
252
lib/security/security-status-report.md
Normal file
@ -0,0 +1,252 @@
|
||||
# 服务器安全状态综合报告
|
||||
|
||||
## 📊 安全服务状态
|
||||
|
||||
### 运行中的安全服务
|
||||
|
||||
1. **CrowdSec** - 现代化威胁检测引擎
|
||||
- 状态:运行中
|
||||
- 功能:实时威胁检测、IP封禁、行为分析
|
||||
- 监控范围:SSH、Nginx、PostgreSQL、auditd
|
||||
|
||||
2. **fail2ban** - SSH暴力破解防护
|
||||
- 状态:运行中
|
||||
- 功能:检测SSH暴力破解攻击并自动封禁IP
|
||||
- 监控:SSH登录失败尝试
|
||||
|
||||
3. **auditd** - 系统审计服务
|
||||
- 状态:运行中
|
||||
- 功能:记录系统调用、文件访问、进程执行
|
||||
- 集成:与CrowdSec集成,检测内部威胁
|
||||
|
||||
4. **SSH服务** - 远程访问服务
|
||||
- 状态:运行中
|
||||
- 保护:配置文件不可变、自动监控、服务保护
|
||||
|
||||
## 🚨 安全事件统计
|
||||
|
||||
### 外部攻击
|
||||
|
||||
- **CrowdSec警报**:检测到的威胁事件数量
|
||||
- **当前封禁IP**:正在被封禁的IP地址数量
|
||||
- **fail2ban封禁**:SSH暴力破解封禁的IP数量
|
||||
|
||||
### 内部威胁
|
||||
|
||||
- **auditd场景**:已启用的内部威胁检测场景数量
|
||||
- **auditd警报**:检测到的内部威胁事件数量
|
||||
|
||||
## 🔍 监控能力
|
||||
|
||||
### CrowdSec监控场景
|
||||
|
||||
1. **SSH监控**
|
||||
- `crowdsecurity/ssh-bf` - SSH暴力破解检测
|
||||
- `crowdsecurity/ssh-slow-bf` - SSH慢速暴力破解检测
|
||||
|
||||
2. **Web监控**
|
||||
- Nginx日志监控
|
||||
- HTTP攻击检测
|
||||
- API滥用检测
|
||||
|
||||
3. **数据库监控**
|
||||
- PostgreSQL暴力破解检测
|
||||
- 数据库异常访问检测
|
||||
|
||||
4. **内部威胁监控**
|
||||
- `auditd-postexploit-exec-from-net` - 后门利用检测
|
||||
- `auditd-base64-exec-behavior` - 隐藏命令执行检测
|
||||
- `auditd-postexploit-pkill` - 恶意进程管理检测
|
||||
- `auditd-postexploit-rm` - 痕迹清理检测
|
||||
- `auditd-suid-crash` - 权限提升检测
|
||||
- `auditd-sus-exec` - 可疑执行检测
|
||||
|
||||
### fail2ban监控
|
||||
|
||||
- SSH登录失败检测
|
||||
- 自动IP封禁(1小时)
|
||||
- 封禁记录日志
|
||||
|
||||
## 🛡️ SSH保护措施
|
||||
|
||||
### 文件系统级保护
|
||||
|
||||
- ✅ SSH配置文件已设置为不可变(immutable)
|
||||
- ✅ 文件权限:600 (root:root)
|
||||
- ✅ 目录权限:755 (root:root)
|
||||
|
||||
### 配置监控
|
||||
|
||||
- ✅ SSH配置监控脚本已安装
|
||||
- 每5分钟检查配置文件
|
||||
- 自动检测和恢复配置修改
|
||||
- 日志:`/var/log/ssh-config-monitor.log`
|
||||
|
||||
### 服务保护
|
||||
|
||||
- ✅ SSH服务保护脚本已安装
|
||||
- 每2分钟检查服务状态
|
||||
- 自动重启停止的服务
|
||||
- 日志:`/var/log/ssh-service-protect.log`
|
||||
|
||||
### 配置备份
|
||||
|
||||
- ✅ SSH配置自动备份
|
||||
- 位置:`/root/ssh_backups/`
|
||||
- 策略:保留最近10个备份
|
||||
|
||||
## 📋 安全检查清单
|
||||
|
||||
### 网络安全
|
||||
|
||||
- [x] CrowdSec监控已启用
|
||||
- [x] fail2ban SSH保护已启用
|
||||
- [x] 防火墙规则已配置(如果需要)
|
||||
- [x] 异常网络连接监控
|
||||
|
||||
### 系统安全
|
||||
|
||||
- [x] auditd服务运行中
|
||||
- [x] 系统日志记录完整
|
||||
- [x] 异常进程监控
|
||||
- [x] 资源使用监控
|
||||
|
||||
### SSH安全
|
||||
|
||||
- [x] SSH配置文件不可变
|
||||
- [x] SSH配置监控已启用
|
||||
- [x] SSH服务保护已启用
|
||||
- [x] SSH服务自动启动
|
||||
|
||||
### 应用安全
|
||||
|
||||
- [x] 数据库访问控制
|
||||
- [x] 应用层安全防护
|
||||
- [x] 输入验证和清理
|
||||
- [x] 速率限制
|
||||
|
||||
## 🔄 日志位置
|
||||
|
||||
### CrowdSec日志
|
||||
|
||||
```bash
|
||||
# CrowdSec服务日志
|
||||
journalctl -u crowdsec -f
|
||||
|
||||
# CrowdSec警报
|
||||
cscli alerts list
|
||||
|
||||
# CrowdSec决策(封禁)
|
||||
cscli decisions list
|
||||
|
||||
# CrowdSec指标
|
||||
cscli metrics
|
||||
```
|
||||
|
||||
### fail2ban日志
|
||||
|
||||
```bash
|
||||
# fail2ban服务日志
|
||||
journalctl -u fail2ban -f
|
||||
|
||||
# fail2ban日志文件
|
||||
tail -f /var/log/fail2ban.log
|
||||
|
||||
# fail2ban状态
|
||||
fail2ban-client status sshd
|
||||
```
|
||||
|
||||
### SSH保护日志
|
||||
|
||||
```bash
|
||||
# SSH配置监控日志
|
||||
tail -f /var/log/ssh-config-monitor.log
|
||||
|
||||
# SSH服务保护日志
|
||||
tail -f /var/log/ssh-service-protect.log
|
||||
|
||||
# SSH服务日志
|
||||
journalctl -u sshd -f
|
||||
```
|
||||
|
||||
### 系统安全日志
|
||||
|
||||
```bash
|
||||
# SSH登录日志(Ubuntu/Debian)
|
||||
tail -f /var/log/auth.log
|
||||
|
||||
# SSH登录日志(CentOS/RHEL)
|
||||
tail -f /var/log/secure
|
||||
|
||||
# auditd日志
|
||||
tail -f /var/log/audit/audit.log
|
||||
|
||||
# 系统日志
|
||||
journalctl -p err -f
|
||||
```
|
||||
|
||||
## 📊 安全指标
|
||||
|
||||
### 攻击检测
|
||||
|
||||
- **SSH暴力破解**:通过CrowdSec和fail2ban检测
|
||||
- **Web攻击**:通过CrowdSec Nginx监控检测
|
||||
- **数据库攻击**:通过CrowdSec PostgreSQL监控检测
|
||||
- **内部威胁**:通过CrowdSec auditd监控检测
|
||||
|
||||
### 响应措施
|
||||
|
||||
- **自动IP封禁**:CrowdSec和fail2ban自动封禁攻击者
|
||||
- **配置恢复**:SSH配置被修改时自动恢复
|
||||
- **服务重启**:SSH服务停止时自动重启
|
||||
- **日志记录**:所有安全事件完整记录
|
||||
|
||||
## ⚠️ 安全建议
|
||||
|
||||
### 短期建议
|
||||
|
||||
1. **定期审查日志**
|
||||
- 每天检查CrowdSec警报
|
||||
- 每周审查fail2ban封禁记录
|
||||
- 每月审查auditd内部威胁警报
|
||||
|
||||
2. **更新安全规则**
|
||||
- 定期更新CrowdSec场景
|
||||
- 根据实际情况调整fail2ban规则
|
||||
- 优化auditd监控场景
|
||||
|
||||
3. **备份验证**
|
||||
- 定期验证SSH配置备份
|
||||
- 测试配置恢复流程
|
||||
- 验证服务保护脚本
|
||||
|
||||
### 长期建议
|
||||
|
||||
1. **安全审计**
|
||||
- 定期进行安全审计
|
||||
- 检查系统漏洞
|
||||
- 更新安全补丁
|
||||
|
||||
2. **监控优化**
|
||||
- 优化监控规则
|
||||
- 减少误报
|
||||
- 提高检测准确性
|
||||
|
||||
3. **文档维护**
|
||||
- 更新安全文档
|
||||
- 记录安全事件
|
||||
- 总结经验教训
|
||||
|
||||
## 🎯 总结
|
||||
|
||||
服务器已实施多层安全防护:
|
||||
|
||||
1. **外部攻击防护**:CrowdSec + fail2ban
|
||||
2. **内部威胁检测**:auditd + CrowdSec
|
||||
3. **SSH连接保护**:文件系统级 + 监控 + 服务保护
|
||||
4. **完整日志记录**:所有安全事件可追溯
|
||||
|
||||
当前安全状态:**良好** ✅
|
||||
|
||||
所有安全服务正常运行,监控系统正常工作,能够及时发现和响应安全威胁。
|
||||
|
||||
277
lib/security/ssh-protection-guide.md
Normal file
277
lib/security/ssh-protection-guide.md
Normal file
@ -0,0 +1,277 @@
|
||||
# SSH连接保护指南
|
||||
|
||||
## 🛡️ 保护措施总览
|
||||
|
||||
本指南提供了多层保护措施,确保恶意程序无法修改或阻止SSH连接。
|
||||
|
||||
## 📋 已实施的保护措施
|
||||
|
||||
### 1. 文件系统级保护
|
||||
|
||||
#### SSH配置文件不可变标志(immutable)
|
||||
- **文件**: `/etc/ssh/sshd_config`
|
||||
- **保护**: 使用 `chattr +i` 设置不可变标志
|
||||
- **效果**: 即使root用户也无法直接修改文件
|
||||
- **验证**: `lsattr /etc/ssh/sshd_config` 应显示 `i` 标志
|
||||
|
||||
#### 文件权限保护
|
||||
- **目录权限**: `/etc/ssh` - 755 (root:root)
|
||||
- **配置文件权限**: `/etc/ssh/sshd_config` - 600 (root:root)
|
||||
- **效果**: 只有root用户可以读取和修改
|
||||
|
||||
### 2. 配置监控
|
||||
|
||||
#### SSH配置监控脚本
|
||||
- **脚本**: `/usr/local/bin/monitor-ssh-config.sh`
|
||||
- **功能**:
|
||||
- 每5分钟检查SSH配置文件是否被修改
|
||||
- 通过MD5校验检测文件变化
|
||||
- 自动恢复被修改的配置文件
|
||||
- 记录所有修改事件到日志
|
||||
- **日志**: `/var/log/ssh-config-monitor.log`
|
||||
|
||||
#### 配置备份
|
||||
- **备份目录**: `/root/ssh_backups/`
|
||||
- **备份策略**: 每次修改前自动备份
|
||||
- **保留数量**: 最近10个备份
|
||||
|
||||
### 3. 服务保护
|
||||
|
||||
#### SSH服务保护脚本
|
||||
- **脚本**: `/usr/local/bin/protect-ssh-service.sh`
|
||||
- **功能**:
|
||||
- 每2分钟检查SSH服务是否运行
|
||||
- 如果服务停止,自动重启
|
||||
- 记录所有服务状态变化
|
||||
- **日志**: `/var/log/ssh-service-protect.log`
|
||||
|
||||
#### 服务自动启动
|
||||
- **配置**: `systemctl enable sshd`
|
||||
- **效果**: 系统启动时自动启动SSH服务
|
||||
|
||||
### 4. 定时任务
|
||||
|
||||
#### 监控任务
|
||||
```cron
|
||||
*/5 * * * * /usr/local/bin/monitor-ssh-config.sh
|
||||
```
|
||||
- **频率**: 每5分钟
|
||||
- **功能**: 监控SSH配置文件
|
||||
|
||||
#### 服务保护任务
|
||||
```cron
|
||||
*/2 * * * * /usr/local/bin/protect-ssh-service.sh
|
||||
```
|
||||
- **频率**: 每2分钟
|
||||
- **功能**: 确保SSH服务运行
|
||||
|
||||
## 🔧 使用方法
|
||||
|
||||
### 安装保护措施
|
||||
|
||||
```bash
|
||||
# 上传脚本到服务器
|
||||
scp scripts/protect-ssh.sh root@your-server:/root/
|
||||
|
||||
# 在服务器上执行
|
||||
ssh root@your-server
|
||||
chmod +x /root/protect-ssh.sh
|
||||
/root/protect-ssh.sh
|
||||
```
|
||||
|
||||
### 修改SSH配置(需要时)
|
||||
|
||||
如果需要修改SSH配置,请按以下步骤操作:
|
||||
|
||||
```bash
|
||||
# 1. 临时移除不可变标志
|
||||
chattr -i /etc/ssh/sshd_config
|
||||
|
||||
# 2. 修改配置文件
|
||||
nano /etc/ssh/sshd_config
|
||||
# 或
|
||||
vi /etc/ssh/sshd_config
|
||||
|
||||
# 3. 验证配置语法
|
||||
sshd -t
|
||||
|
||||
# 4. 重新设置不可变标志
|
||||
chattr +i /etc/ssh/sshd_config
|
||||
|
||||
# 5. 重启SSH服务
|
||||
systemctl restart sshd
|
||||
```
|
||||
|
||||
### 查看监控日志
|
||||
|
||||
```bash
|
||||
# SSH配置监控日志
|
||||
tail -f /var/log/ssh-config-monitor.log
|
||||
|
||||
# SSH服务保护日志
|
||||
tail -f /var/log/ssh-service-protect.log
|
||||
|
||||
# 查看所有SSH相关日志
|
||||
journalctl -u sshd -f
|
||||
```
|
||||
|
||||
### 验证保护状态
|
||||
|
||||
```bash
|
||||
# 检查不可变标志
|
||||
lsattr /etc/ssh/sshd_config
|
||||
|
||||
# 检查SSH服务状态
|
||||
systemctl status sshd
|
||||
|
||||
# 检查定时任务
|
||||
crontab -l | grep ssh
|
||||
|
||||
# 检查监控脚本
|
||||
ls -la /usr/local/bin/*ssh*.sh
|
||||
```
|
||||
|
||||
## 🚨 应急处理
|
||||
|
||||
### SSH服务无法启动
|
||||
|
||||
如果SSH服务无法启动,请检查:
|
||||
|
||||
```bash
|
||||
# 1. 检查SSH配置语法
|
||||
sshd -t
|
||||
|
||||
# 2. 查看SSH服务日志
|
||||
journalctl -u sshd -n 50
|
||||
|
||||
# 3. 检查端口是否被占用
|
||||
ss -tlnp | grep 22
|
||||
|
||||
# 4. 检查防火墙规则
|
||||
iptables -L -n | grep 22
|
||||
```
|
||||
|
||||
### 配置文件被修改
|
||||
|
||||
如果检测到配置文件被修改:
|
||||
|
||||
```bash
|
||||
# 1. 查看监控日志
|
||||
cat /var/log/ssh-config-monitor.log
|
||||
|
||||
# 2. 手动恢复配置
|
||||
cp /root/ssh_backups/sshd_config.* /etc/ssh/sshd_config
|
||||
|
||||
# 3. 重新设置保护
|
||||
chattr +i /etc/ssh/sshd_config
|
||||
systemctl restart sshd
|
||||
```
|
||||
|
||||
### 无法通过SSH连接
|
||||
|
||||
如果无法通过SSH连接:
|
||||
|
||||
1. **检查网络连接**
|
||||
```bash
|
||||
ping your-server-ip
|
||||
```
|
||||
|
||||
2. **检查SSH服务状态**(通过其他方式,如控制台)
|
||||
```bash
|
||||
systemctl status sshd
|
||||
```
|
||||
|
||||
3. **检查防火墙**
|
||||
```bash
|
||||
iptables -L -n | grep 22
|
||||
firewall-cmd --list-all # 如果使用firewalld
|
||||
```
|
||||
|
||||
4. **检查SSH配置**
|
||||
```bash
|
||||
sshd -t
|
||||
cat /etc/ssh/sshd_config | grep -E 'Port|PermitRootLogin|PasswordAuthentication'
|
||||
```
|
||||
|
||||
## 📊 监控和告警
|
||||
|
||||
### CrowdSec监控
|
||||
|
||||
CrowdSec已配置监控SSH相关活动:
|
||||
- SSH暴力破解检测
|
||||
- 异常登录尝试
|
||||
- 可疑SSH活动
|
||||
|
||||
查看CrowdSec警报:
|
||||
```bash
|
||||
cscli alerts list | grep ssh
|
||||
```
|
||||
|
||||
### 系统日志
|
||||
|
||||
SSH相关系统日志位置:
|
||||
- `/var/log/auth.log` (Ubuntu/Debian)
|
||||
- `/var/log/secure` (CentOS/RHEL)
|
||||
- `journalctl -u sshd` (systemd)
|
||||
|
||||
## ⚠️ 注意事项
|
||||
|
||||
1. **不可变标志的限制**
|
||||
- 设置不可变标志后,即使是root用户也无法直接修改文件
|
||||
- 必须先移除标志才能修改配置
|
||||
|
||||
2. **备份的重要性**
|
||||
- 定期检查备份目录
|
||||
- 确保备份文件完整
|
||||
|
||||
3. **监控脚本的维护**
|
||||
- 定期检查监控日志
|
||||
- 确保定时任务正常运行
|
||||
|
||||
4. **服务重启的影响**
|
||||
- SSH服务重启会断开现有连接
|
||||
- 建议在维护窗口进行配置修改
|
||||
|
||||
## 🔒 安全建议
|
||||
|
||||
1. **使用SSH密钥认证**
|
||||
- 禁用密码认证(如果可能)
|
||||
- 使用强密码(如果必须使用密码)
|
||||
|
||||
2. **限制SSH访问**
|
||||
- 使用防火墙限制SSH访问IP
|
||||
- 使用fail2ban防止暴力破解
|
||||
|
||||
3. **定期审计**
|
||||
- 定期检查SSH配置
|
||||
- 审查SSH访问日志
|
||||
- 检查异常登录
|
||||
|
||||
4. **保持更新**
|
||||
- 定期更新SSH软件包
|
||||
- 应用安全补丁
|
||||
|
||||
## 📝 检查清单
|
||||
|
||||
- [x] SSH配置文件已设置不可变标志
|
||||
- [x] SSH目录和文件权限已正确设置
|
||||
- [x] SSH配置已备份
|
||||
- [x] SSH配置监控脚本已安装并运行
|
||||
- [x] SSH服务保护脚本已安装并运行
|
||||
- [x] 定时任务已设置
|
||||
- [x] SSH服务已设置为开机自启
|
||||
- [x] CrowdSec SSH监控已启用
|
||||
- [x] fail2ban SSH保护已启用
|
||||
|
||||
## 🎯 总结
|
||||
|
||||
通过多层保护措施,SSH连接现在受到以下保护:
|
||||
|
||||
1. **文件系统级保护**: 配置文件不可变,防止直接修改
|
||||
2. **配置监控**: 自动检测和恢复配置修改
|
||||
3. **服务保护**: 自动确保SSH服务运行
|
||||
4. **日志记录**: 完整记录所有安全事件
|
||||
5. **外部监控**: CrowdSec和fail2ban提供额外保护
|
||||
|
||||
这些措施协同工作,确保恶意程序无法修改或阻止SSH连接。
|
||||
|
||||
376
migrate-server.sh
Executable file
376
migrate-server.sh
Executable file
@ -0,0 +1,376 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 服务器迁移脚本
|
||||
# 从旧服务器迁移到新服务器(包括数据库数据)
|
||||
|
||||
set -e # 遇到错误立即退出
|
||||
|
||||
# 配置
|
||||
OLD_SERVER="156.225.27.52"
|
||||
OLD_PORT="5204"
|
||||
OLD_USER="root"
|
||||
OLD_PASS="Jsjj@8888"
|
||||
|
||||
NEW_SERVER="114.66.31.51"
|
||||
NEW_PORT="22"
|
||||
NEW_USER="root"
|
||||
NEW_PASS="vsvhSIHN5531"
|
||||
|
||||
PROJECT_DIR="/var/www/ai-chatbot"
|
||||
BACKUP_DIR="/tmp/ai-chatbot-migration"
|
||||
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
|
||||
|
||||
echo "=========================================="
|
||||
echo "AI Chatbot 服务器迁移脚本"
|
||||
echo "=========================================="
|
||||
echo "旧服务器: $OLD_USER@$OLD_SERVER:$OLD_PORT"
|
||||
echo "新服务器: $NEW_USER@$NEW_SERVER:$NEW_PORT"
|
||||
echo "时间: $(date)"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
# 检查 sshpass 是否安装
|
||||
if ! command -v sshpass &> /dev/null; then
|
||||
echo "❌ sshpass 未安装,正在安装..."
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
brew install hudochenkov/sshpass/sshpass || echo "请手动安装: brew install hudochenkov/sshpass/sshpass"
|
||||
else
|
||||
sudo apt-get update && sudo apt-get install -y sshpass
|
||||
fi
|
||||
fi
|
||||
|
||||
# 测试连接
|
||||
echo "🔍 测试服务器连接..."
|
||||
echo "测试旧服务器连接..."
|
||||
if sshpass -p "$OLD_PASS" ssh -p "$OLD_PORT" -o StrictHostKeyChecking=no -o ConnectTimeout=10 "$OLD_USER@$OLD_SERVER" "echo '连接成功'" > /dev/null 2>&1; then
|
||||
echo "✅ 旧服务器连接正常"
|
||||
else
|
||||
echo "❌ 无法连接到旧服务器"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "测试新服务器连接..."
|
||||
if sshpass -p "$NEW_PASS" ssh -p "$NEW_PORT" -o StrictHostKeyChecking=no -o ConnectTimeout=10 "$NEW_USER@$NEW_SERVER" "echo '连接成功'" > /dev/null 2>&1; then
|
||||
echo "✅ 新服务器连接正常"
|
||||
else
|
||||
echo "❌ 无法连接到新服务器"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤1: 在旧服务器上备份数据库
|
||||
echo ""
|
||||
echo "📦 步骤 1/9: 在旧服务器上备份数据库..."
|
||||
sshpass -p "$OLD_PASS" ssh -p "$OLD_PORT" "$OLD_USER@$OLD_SERVER" << 'EOF'
|
||||
cd /var/www/ai-chatbot
|
||||
if [ ! -f .env.local ]; then
|
||||
echo "❌ 未找到 .env.local 文件"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 读取 POSTGRES_URL
|
||||
POSTGRES_URL=$(grep "^POSTGRES_URL=" .env.local | cut -d '=' -f2- | tr -d '"' | tr -d "'")
|
||||
|
||||
if [ -z "$POSTGRES_URL" ]; then
|
||||
echo "❌ 无法读取 POSTGRES_URL"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 解析数据库连接信息
|
||||
DB_NAME=$(echo "$POSTGRES_URL" | sed -n 's|.*/\([^?]*\)$|\1|p')
|
||||
DB_USER=$(echo "$POSTGRES_URL" | sed -n 's|.*://\([^:]*\):.*|\1|p')
|
||||
DB_PASS=$(echo "$POSTGRES_URL" | sed -n 's|.*://[^:]*:\([^@]*\)@.*|\1|p')
|
||||
DB_HOST=$(echo "$POSTGRES_URL" | sed -n 's|.*@\([^:]*\):.*|\1|p')
|
||||
DB_PORT=$(echo "$POSTGRES_URL" | sed -n 's|.*:\([0-9]*\)/.*|\1|p')
|
||||
|
||||
# 如果端口为空,使用默认端口
|
||||
if [ -z "$DB_PORT" ]; then
|
||||
DB_PORT=5432
|
||||
fi
|
||||
|
||||
echo "数据库信息: $DB_USER@$DB_HOST:$DB_PORT/$DB_NAME"
|
||||
|
||||
# 创建备份目录
|
||||
mkdir -p /tmp/ai-chatbot-backup
|
||||
|
||||
# 使用 pg_dump 备份数据库
|
||||
export PGPASSWORD="$DB_PASS"
|
||||
BACKUP_FILE="/tmp/ai-chatbot-backup/database_backup_$(date +%Y%m%d_%H%M%S).dump"
|
||||
pg_dump -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -F c -f "$BACKUP_FILE" 2>&1
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "✅ 数据库备份完成: $BACKUP_FILE"
|
||||
ls -lh "$BACKUP_FILE"
|
||||
else
|
||||
echo "❌ 数据库备份失败"
|
||||
exit 1
|
||||
fi
|
||||
EOF
|
||||
|
||||
# 步骤2: 下载备份文件
|
||||
echo ""
|
||||
echo "📥 步骤 2/9: 下载数据库备份文件..."
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
LATEST_BACKUP=$(sshpass -p "$OLD_PASS" ssh -p "$OLD_PORT" "$OLD_USER@$OLD_SERVER" "ls -t /tmp/ai-chatbot-backup/*.dump 2>/dev/null | head -1")
|
||||
if [ -z "$LATEST_BACKUP" ]; then
|
||||
echo "❌ 未找到备份文件"
|
||||
exit 1
|
||||
fi
|
||||
echo "正在下载: $LATEST_BACKUP"
|
||||
sshpass -p "$OLD_PASS" scp -P "$OLD_PORT" "$OLD_USER@$OLD_SERVER:$LATEST_BACKUP" "$BACKUP_DIR/database.dump"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "✅ 数据库备份文件已下载 ($(du -h "$BACKUP_DIR/database.dump" | cut -f1))"
|
||||
else
|
||||
echo "❌ 数据库备份文件下载失败"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤3: 下载项目文件和配置
|
||||
echo ""
|
||||
echo "📥 步骤 3/9: 下载项目文件..."
|
||||
sshpass -p "$OLD_PASS" ssh -p "$OLD_PORT" "$OLD_USER@$OLD_SERVER" << 'EOF'
|
||||
cd /var/www/ai-chatbot
|
||||
# 创建项目打包(排除 node_modules 和 .next)
|
||||
tar --exclude='node_modules' \
|
||||
--exclude='.next' \
|
||||
--exclude='.git' \
|
||||
--exclude='*.log' \
|
||||
-czf /tmp/ai-chatbot-backup/project.tar.gz .
|
||||
echo "✅ 项目文件打包完成"
|
||||
EOF
|
||||
|
||||
sshpass -p "$OLD_PASS" scp -P "$OLD_PORT" "$OLD_USER@$OLD_SERVER:/tmp/ai-chatbot-backup/project.tar.gz" "$BACKUP_DIR/"
|
||||
echo "✅ 项目文件已下载"
|
||||
|
||||
# 下载环境变量文件
|
||||
echo ""
|
||||
echo "📥 步骤 4/9: 下载环境变量文件..."
|
||||
sshpass -p "$OLD_PASS" scp -P "$OLD_PORT" "$OLD_USER@$OLD_SERVER:/var/www/ai-chatbot/.env.local" "$BACKUP_DIR/.env.local" 2>/dev/null || echo "⚠️ 未找到 .env.local 文件(将在新服务器上手动配置)"
|
||||
echo "✅ 环境变量文件已下载"
|
||||
|
||||
# 步骤5: 在新服务器上初始化环境
|
||||
echo ""
|
||||
echo "🔧 步骤 5/9: 在新服务器上初始化环境..."
|
||||
sshpass -p "$NEW_PASS" ssh -p "$NEW_PORT" "$NEW_USER@$NEW_SERVER" << 'ENVEOF'
|
||||
# 更新系统
|
||||
apt-get update -qq
|
||||
|
||||
# 安装必要的工具
|
||||
DEBIAN_FRONTEND=noninteractive apt-get install -y -qq \
|
||||
curl \
|
||||
wget \
|
||||
git \
|
||||
build-essential \
|
||||
postgresql-client \
|
||||
postgresql \
|
||||
nginx \
|
||||
certbot \
|
||||
python3-certbot-nginx
|
||||
|
||||
# 安装 Node.js 20.x
|
||||
if ! command -v node &> /dev/null; then
|
||||
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
|
||||
apt-get install -y -qq nodejs
|
||||
fi
|
||||
|
||||
# 安装 PM2
|
||||
if ! command -v pm2 &> /dev/null; then
|
||||
npm install -g pm2
|
||||
fi
|
||||
|
||||
# 安装 pnpm
|
||||
if ! command -v pnpm &> /dev/null; then
|
||||
npm install -g pnpm
|
||||
fi
|
||||
|
||||
echo "✅ 环境初始化完成"
|
||||
ENVEOF
|
||||
|
||||
# 步骤6: 创建数据库
|
||||
echo ""
|
||||
echo "🗄️ 步骤 6/9: 在新服务器上创建数据库..."
|
||||
sshpass -p "$NEW_PASS" ssh -p "$NEW_PORT" "$NEW_USER@$NEW_SERVER" << 'DBEOF'
|
||||
# 启动 PostgreSQL
|
||||
systemctl start postgresql
|
||||
systemctl enable postgresql
|
||||
|
||||
# 读取旧的环境变量(如果存在)来获取数据库信息
|
||||
# 这里我们创建新的数据库,稍后会导入数据
|
||||
sudo -u postgres psql << 'PSQLEOF'
|
||||
-- 创建数据库(如果不存在)
|
||||
SELECT 'CREATE DATABASE ai_chatbot'
|
||||
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'ai_chatbot')\gexec
|
||||
|
||||
-- 创建用户(如果不存在)
|
||||
DO \$\$
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT FROM pg_user WHERE usename = 'chatbot_user') THEN
|
||||
CREATE USER chatbot_user WITH PASSWORD 'chatbot_password_change_me';
|
||||
END IF;
|
||||
END
|
||||
\$\$;
|
||||
|
||||
-- 授权
|
||||
GRANT ALL PRIVILEGES ON DATABASE ai_chatbot TO chatbot_user;
|
||||
ALTER DATABASE ai_chatbot OWNER TO chatbot_user;
|
||||
PSQLEOF
|
||||
|
||||
echo "✅ 数据库创建完成"
|
||||
DBEOF
|
||||
|
||||
# 步骤7: 上传文件到新服务器
|
||||
echo ""
|
||||
echo "📤 步骤 7/9: 上传文件到新服务器..."
|
||||
sshpass -p "$NEW_PASS" ssh -p "$NEW_PORT" "$NEW_USER@$NEW_SERVER" "mkdir -p $PROJECT_DIR"
|
||||
sshpass -p "$NEW_PASS" scp -P "$NEW_PORT" "$BACKUP_DIR/project.tar.gz" "$NEW_USER@$NEW_SERVER:/tmp/"
|
||||
sshpass -p "$NEW_PASS" scp -P "$NEW_PORT" "$BACKUP_DIR/database.dump" "$NEW_USER@$NEW_SERVER:/tmp/"
|
||||
|
||||
# 在新服务器上解压项目
|
||||
sshpass -p "$NEW_PASS" ssh -p "$NEW_PORT" "$NEW_USER@$NEW_SERVER" << 'EXTRACTEOF'
|
||||
cd /var/www/ai-chatbot
|
||||
tar -xzf /tmp/project.tar.gz
|
||||
chown -R root:root .
|
||||
echo "✅ 项目文件已解压"
|
||||
EXTRACTEOF
|
||||
|
||||
# 步骤8: 在新服务器上配置和恢复
|
||||
echo ""
|
||||
echo "⚙️ 步骤 8/9: 在新服务器上配置和恢复..."
|
||||
sshpass -p "$NEW_PASS" ssh -p "$NEW_PORT" "$NEW_USER@$NEW_SERVER" << 'CONFIGEOF'
|
||||
cd /var/www/ai-chatbot
|
||||
|
||||
# 如果存在旧的环境变量文件,需要更新数据库连接信息
|
||||
if [ -f .env.local ]; then
|
||||
# 更新 POSTGRES_URL 为新服务器的数据库
|
||||
sed -i 's|POSTGRES_URL=.*|POSTGRES_URL=postgresql://chatbot_user:chatbot_password_change_me@localhost:5432/ai_chatbot|g' .env.local
|
||||
# 更新 AUTH_URL 为新服务器地址
|
||||
sed -i "s|AUTH_URL=.*|AUTH_URL=http://114.66.31.51|g" .env.local
|
||||
else
|
||||
# 创建新的环境变量文件
|
||||
cat > .env.local << 'ENVFILE'
|
||||
POSTGRES_URL=postgresql://chatbot_user:chatbot_password_change_me@localhost:5432/ai_chatbot
|
||||
AUTH_SECRET=$(openssl rand -base64 32)
|
||||
AUTH_URL=http://114.66.31.51
|
||||
NODE_ENV=production
|
||||
ENVFILE
|
||||
fi
|
||||
|
||||
# 导入数据库
|
||||
echo "正在导入数据库..."
|
||||
export PGPASSWORD="chatbot_password_change_me"
|
||||
# 尝试恢复,忽略已存在的错误
|
||||
pg_restore -h localhost -p 5432 -U chatbot_user -d ai_chatbot -c --no-owner --no-privileges /tmp/database.dump 2>&1 | grep -v -E "(already exists|does not exist|ERROR.*already)" || true
|
||||
echo "✅ 数据库导入完成(已忽略重复项)"
|
||||
|
||||
# 安装依赖
|
||||
echo "正在安装依赖..."
|
||||
pnpm install --frozen-lockfile
|
||||
echo "✅ 依赖安装完成"
|
||||
|
||||
# 运行数据库迁移(如果需要)
|
||||
echo "正在运行数据库迁移..."
|
||||
pnpm db:migrate || echo "⚠️ 数据库迁移跳过或失败"
|
||||
echo "✅ 数据库迁移完成"
|
||||
|
||||
# 构建项目
|
||||
echo "正在构建项目..."
|
||||
pnpm build
|
||||
echo "✅ 项目构建完成"
|
||||
|
||||
# 配置 PM2
|
||||
echo "正在配置 PM2..."
|
||||
cat > ecosystem.config.js << 'PM2EOF'
|
||||
module.exports = {
|
||||
apps: [{
|
||||
name: 'ai-chatbot',
|
||||
script: 'node_modules/next/dist/bin/next',
|
||||
args: 'start',
|
||||
cwd: '/var/www/ai-chatbot',
|
||||
instances: 1,
|
||||
exec_mode: 'fork',
|
||||
env: {
|
||||
NODE_ENV: 'production',
|
||||
PORT: 3000
|
||||
},
|
||||
error_file: '/var/log/pm2/ai-chatbot-error.log',
|
||||
out_file: '/var/log/pm2/ai-chatbot-out.log',
|
||||
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
|
||||
merge_logs: true,
|
||||
autorestart: true,
|
||||
max_memory_restart: '1G'
|
||||
}]
|
||||
};
|
||||
PM2EOF
|
||||
|
||||
# 启动应用
|
||||
pm2 delete ai-chatbot 2>/dev/null || true
|
||||
pm2 start ecosystem.config.js
|
||||
pm2 save
|
||||
pm2 startup systemd -u root --hp /root || true
|
||||
|
||||
echo "✅ PM2 配置完成"
|
||||
|
||||
# 配置 Nginx
|
||||
echo "正在配置 Nginx..."
|
||||
cat > /etc/nginx/sites-available/ai-chatbot << 'NGINXEOF'
|
||||
server {
|
||||
listen 80;
|
||||
server_name 114.66.31.51;
|
||||
|
||||
location / {
|
||||
proxy_pass http://localhost:3000;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection 'upgrade';
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_cache_bypass $http_upgrade;
|
||||
proxy_read_timeout 300s;
|
||||
proxy_connect_timeout 75s;
|
||||
}
|
||||
}
|
||||
NGINXEOF
|
||||
|
||||
ln -sf /etc/nginx/sites-available/ai-chatbot /etc/nginx/sites-enabled/
|
||||
rm -f /etc/nginx/sites-enabled/default
|
||||
nginx -t && systemctl reload nginx
|
||||
echo "✅ Nginx 配置完成"
|
||||
|
||||
# 清理临时文件
|
||||
rm -f /tmp/project.tar.gz /tmp/database.dump
|
||||
echo "✅ 临时文件已清理"
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "✅ 迁移完成!"
|
||||
echo "=========================================="
|
||||
echo "新服务器地址: http://114.66.31.51"
|
||||
echo "请检查以下内容:"
|
||||
echo "1. 检查 .env.local 文件中的配置(特别是数据库密码)"
|
||||
echo "2. 检查 PM2 状态: pm2 status"
|
||||
echo "3. 检查日志: pm2 logs ai-chatbot"
|
||||
echo "4. 访问网站验证功能"
|
||||
echo "=========================================="
|
||||
CONFIGEOF
|
||||
|
||||
echo ""
|
||||
echo "✅ 步骤 9/9: 清理临时文件..."
|
||||
rm -rf "$BACKUP_DIR"
|
||||
echo "✅ 临时文件已清理"
|
||||
|
||||
echo ""
|
||||
echo "🎉 迁移脚本执行完成!"
|
||||
echo ""
|
||||
echo "📝 后续步骤:"
|
||||
echo "1. 连接到新服务器: ssh -p $NEW_PORT $NEW_USER@$NEW_SERVER"
|
||||
echo "2. 检查数据库密码: cd $PROJECT_DIR && cat .env.local"
|
||||
echo "3. 如果需要,更新数据库密码并更新 .env.local"
|
||||
echo "4. 检查服务状态: pm2 status && pm2 logs"
|
||||
echo "5. 访问网站: http://$NEW_SERVER"
|
||||
echo ""
|
||||
echo "⚠️ 重要提示:"
|
||||
echo "- 请更新数据库密码(.env.local 中的 POSTGRES_URL)"
|
||||
echo "- 如果使用域名,请更新 AUTH_URL"
|
||||
echo "- 检查所有环境变量是否正确配置"
|
||||
|
||||
490
migrate-to-new-server.sh
Executable file
490
migrate-to-new-server.sh
Executable file
@ -0,0 +1,490 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 服务器迁移脚本 - 从Git仓库拉取源码和备份数据库
|
||||
# 新服务器配置:45.192.99.48,端口3125,域名ai.yydd.ai,HTTPS
|
||||
|
||||
set -e # 遇到错误立即退出
|
||||
|
||||
# 新服务器配置
|
||||
NEW_SERVER="45.192.99.48"
|
||||
NEW_PORT="22"
|
||||
NEW_USER="root"
|
||||
NEW_PASS="O1zqP731oZ"
|
||||
DOMAIN="ai.yydd.ai"
|
||||
APP_PORT="3125"
|
||||
|
||||
# Git仓库配置
|
||||
GIT_REPO="http://git.1080p.hk/chenpei/ai-chatbot.git"
|
||||
GIT_USER="chenpei"
|
||||
GIT_PASS="jsjj654321"
|
||||
|
||||
# 本地配置(仅用于数据库备份)
|
||||
PROJECT_DIR="/Users/lanmu/Desktop/ai-chatbot-main"
|
||||
BACKUP_DIR="$PROJECT_DIR/migration-backup-complete"
|
||||
DB_BACKUP_FILE="$BACKUP_DIR/database_complete.dump"
|
||||
|
||||
# 服务器项目目录
|
||||
SERVER_PROJECT_DIR="/var/www/ai-chatbot"
|
||||
|
||||
echo "=========================================="
|
||||
echo "AI Chatbot 服务器迁移脚本"
|
||||
echo "=========================================="
|
||||
echo "新服务器: $NEW_USER@$NEW_SERVER:$NEW_PORT"
|
||||
echo "域名: $DOMAIN"
|
||||
echo "应用端口: $APP_PORT"
|
||||
echo "从Git仓库拉取源码和备份数据库"
|
||||
echo "时间: $(date)"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
# 检查 sshpass 是否安装
|
||||
if ! command -v sshpass &> /dev/null; then
|
||||
echo "❌ sshpass 未安装,正在安装..."
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
brew install hudochenkov/sshpass/sshpass || echo "请手动安装: brew install hudochenkov/sshpass/sshpass"
|
||||
else
|
||||
sudo apt-get update && sudo apt-get install -y sshpass
|
||||
fi
|
||||
fi
|
||||
|
||||
# 检查本地备份文件
|
||||
if [ ! -f "$DB_BACKUP_FILE" ]; then
|
||||
echo "❌ 未找到数据库备份文件: $DB_BACKUP_FILE"
|
||||
echo "请确保备份文件存在"
|
||||
exit 1
|
||||
fi
|
||||
echo "✅ 找到数据库备份文件: $DB_BACKUP_FILE ($(du -h "$DB_BACKUP_FILE" | cut -f1))"
|
||||
|
||||
# 检查Git仓库配置
|
||||
echo "✅ Git仓库: $GIT_REPO"
|
||||
|
||||
# SSH选项(保持连接)
|
||||
SSH_OPTS="-o StrictHostKeyChecking=no -o ConnectTimeout=10 -o ServerAliveInterval=60 -o ServerAliveCountMax=3 -o TCPKeepAlive=yes"
|
||||
|
||||
# 测试新服务器连接
|
||||
echo ""
|
||||
echo "🔍 测试新服务器连接..."
|
||||
if sshpass -p "$NEW_PASS" ssh -p "$NEW_PORT" $SSH_OPTS "$NEW_USER@$NEW_SERVER" "echo '连接成功'" > /dev/null 2>&1; then
|
||||
echo "✅ 新服务器连接正常"
|
||||
else
|
||||
echo "❌ 无法连接到新服务器"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 步骤1: 在新服务器上安装必要软件
|
||||
echo ""
|
||||
echo "📦 步骤 1/8: 在新服务器上安装必要软件..."
|
||||
sshpass -p "$NEW_PASS" ssh -p "$NEW_PORT" $SSH_OPTS "$NEW_USER@$NEW_SERVER" << 'INSTALLEOF'
|
||||
set -e
|
||||
|
||||
echo "检测系统类型..."
|
||||
if [ -f /etc/redhat-release ]; then
|
||||
# CentOS/RHEL系统
|
||||
echo "检测到CentOS/RHEL系统,使用dnf包管理器"
|
||||
echo "跳过系统更新,直接安装所需软件..."
|
||||
|
||||
echo "安装基础工具..."
|
||||
dnf install -y --nogpgcheck curl wget git gcc gcc-c++ make 2>&1 | tail -3 || dnf install -y curl wget git gcc gcc-c++ make 2>&1 | tail -3
|
||||
|
||||
echo "安装PostgreSQL..."
|
||||
if ! command -v psql &> /dev/null; then
|
||||
dnf install -y --nogpgcheck postgresql-server postgresql-contrib 2>&1 | tail -3 || dnf install -y postgresql-server postgresql-contrib 2>&1 | tail -3
|
||||
postgresql-setup --initdb 2>/dev/null || /usr/bin/postgresql-setup --initdb || echo "⚠️ PostgreSQL初始化跳过"
|
||||
systemctl start postgresql 2>/dev/null || true
|
||||
systemctl enable postgresql 2>/dev/null || true
|
||||
fi
|
||||
|
||||
echo "安装Node.js 20.x..."
|
||||
echo "使用NodeSource安装Node.js 20..."
|
||||
curl -fsSL https://rpm.nodesource.com/setup_20.x | bash -
|
||||
dnf install -y --nogpgcheck nodejs 2>&1 | tail -3 || dnf install -y nodejs 2>&1 | tail -3
|
||||
echo "Node.js安装完成"
|
||||
|
||||
echo "安装PM2和pnpm..."
|
||||
if ! command -v pm2 &> /dev/null; then
|
||||
npm install -g pm2
|
||||
fi
|
||||
if ! command -v pnpm &> /dev/null; then
|
||||
npm install -g pnpm
|
||||
fi
|
||||
|
||||
echo "安装Nginx..."
|
||||
if ! command -v nginx &> /dev/null; then
|
||||
dnf install -y --nogpgcheck nginx 2>&1 | tail -3 || dnf install -y nginx 2>&1 | tail -3
|
||||
systemctl start nginx 2>/dev/null || true
|
||||
systemctl enable nginx 2>/dev/null || true
|
||||
fi
|
||||
|
||||
echo "安装Certbot (Let's Encrypt)..."
|
||||
if ! command -v certbot &> /dev/null; then
|
||||
# 安装EPEL仓库(CentOS需要)
|
||||
dnf install -y --nogpgcheck epel-release 2>&1 | tail -2 || dnf install -y epel-release 2>&1 | tail -2
|
||||
dnf install -y --nogpgcheck certbot python3-certbot-nginx 2>&1 | tail -3 || dnf install -y certbot python3-certbot-nginx 2>&1 | tail -3
|
||||
fi
|
||||
else
|
||||
# Ubuntu/Debian系统
|
||||
echo "检测到Ubuntu/Debian系统,使用apt-get包管理器"
|
||||
echo "更新系统包..."
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
apt-get update -qq
|
||||
|
||||
echo "安装基础工具..."
|
||||
apt-get install -y -qq curl wget git build-essential software-properties-common
|
||||
|
||||
echo "安装PostgreSQL..."
|
||||
if ! command -v psql &> /dev/null; then
|
||||
apt-get install -y -qq postgresql postgresql-contrib
|
||||
systemctl start postgresql
|
||||
systemctl enable postgresql
|
||||
fi
|
||||
|
||||
echo "安装Node.js 20.x..."
|
||||
if ! command -v node &> /dev/null || [ "$(node -v | cut -d'v' -f2 | cut -d'.' -f1)" -lt 20 ]; then
|
||||
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
|
||||
apt-get install -y -qq nodejs
|
||||
fi
|
||||
|
||||
echo "安装PM2和pnpm..."
|
||||
if ! command -v pm2 &> /dev/null; then
|
||||
npm install -g pm2
|
||||
fi
|
||||
if ! command -v pnpm &> /dev/null; then
|
||||
npm install -g pnpm
|
||||
fi
|
||||
|
||||
echo "安装Nginx..."
|
||||
if ! command -v nginx &> /dev/null; then
|
||||
apt-get install -y -qq nginx
|
||||
systemctl start nginx
|
||||
systemctl enable nginx
|
||||
fi
|
||||
|
||||
echo "安装Certbot (Let's Encrypt)..."
|
||||
if ! command -v certbot &> /dev/null; then
|
||||
apt-get install -y -qq certbot python3-certbot-nginx
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "✅ 所有软件安装完成"
|
||||
INSTALLEOF
|
||||
|
||||
# 步骤2: 从Git仓库克隆项目
|
||||
echo ""
|
||||
echo "📥 步骤 2/8: 从Git仓库克隆项目..."
|
||||
sshpass -p "$NEW_PASS" ssh -p "$NEW_PORT" $SSH_OPTS "$NEW_USER@$NEW_SERVER" << CLONEEOF
|
||||
set -e
|
||||
|
||||
# 如果目录已存在,先删除
|
||||
if [ -d "$SERVER_PROJECT_DIR" ]; then
|
||||
echo "删除现有目录..."
|
||||
rm -rf $SERVER_PROJECT_DIR
|
||||
fi
|
||||
|
||||
# 从Git仓库克隆(使用用户名和密码)
|
||||
echo "正在从Git仓库克隆..."
|
||||
GIT_URL="http://${GIT_USER}:${GIT_PASS}@git.1080p.hk/chenpei/ai-chatbot.git"
|
||||
git clone "\$GIT_URL" $SERVER_PROJECT_DIR || {
|
||||
echo "⚠️ 使用URL中的凭据克隆失败,尝试直接使用凭据..."
|
||||
git clone http://${GIT_USER}:${GIT_PASS}@git.1080p.hk/chenpei/ai-chatbot.git $SERVER_PROJECT_DIR
|
||||
}
|
||||
|
||||
cd $SERVER_PROJECT_DIR
|
||||
chown -R root:root .
|
||||
echo "✅ 项目代码已从Git仓库克隆"
|
||||
CLONEEOF
|
||||
|
||||
# 步骤3: 上传数据库备份
|
||||
echo ""
|
||||
echo "📤 步骤 3/8: 上传数据库备份..."
|
||||
sshpass -p "$NEW_PASS" scp -P "$NEW_PORT" -o StrictHostKeyChecking=no -o ServerAliveInterval=60 "$DB_BACKUP_FILE" "$NEW_USER@$NEW_SERVER:/tmp/database.dump"
|
||||
echo "✅ 数据库备份已上传"
|
||||
|
||||
# 步骤4: 创建数据库
|
||||
echo ""
|
||||
echo "🗄️ 步骤 4/8: 创建数据库..."
|
||||
sshpass -p "$NEW_PASS" ssh -p "$NEW_PORT" $SSH_OPTS "$NEW_USER@$NEW_SERVER" << 'DBEOF'
|
||||
set -e
|
||||
|
||||
# 生成随机数据库密码
|
||||
DB_PASSWORD=$(openssl rand -base64 24 | tr -d "=+/" | cut -c1-25)
|
||||
echo "生成的数据库密码: $DB_PASSWORD"
|
||||
echo "$DB_PASSWORD" > /root/db_password.txt
|
||||
|
||||
# 启动PostgreSQL
|
||||
systemctl start postgresql
|
||||
|
||||
# 创建数据库和用户
|
||||
sudo -u postgres psql << PSQLEOF
|
||||
-- 创建数据库(如果不存在)
|
||||
SELECT 'CREATE DATABASE ai_chatbot'
|
||||
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'ai_chatbot')\gexec
|
||||
|
||||
-- 创建用户(如果不存在)
|
||||
DO \$\$
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT FROM pg_user WHERE usename = 'chatbot_user') THEN
|
||||
CREATE USER chatbot_user WITH PASSWORD '$DB_PASSWORD';
|
||||
ELSE
|
||||
ALTER USER chatbot_user WITH PASSWORD '$DB_PASSWORD';
|
||||
END IF;
|
||||
END
|
||||
\$\$;
|
||||
|
||||
-- 授权
|
||||
GRANT ALL PRIVILEGES ON DATABASE ai_chatbot TO chatbot_user;
|
||||
ALTER DATABASE ai_chatbot OWNER TO chatbot_user;
|
||||
PSQLEOF
|
||||
|
||||
echo "✅ 数据库创建完成"
|
||||
DBEOF
|
||||
|
||||
# 步骤5: 配置环境变量和导入数据库
|
||||
echo ""
|
||||
echo "⚙️ 步骤 5/8: 配置环境变量和导入数据库..."
|
||||
sshpass -p "$NEW_PASS" ssh -p "$NEW_PORT" $SSH_OPTS "$NEW_USER@$NEW_SERVER" << CONFIGEOF
|
||||
set -e
|
||||
cd /var/www/ai-chatbot
|
||||
|
||||
# 读取数据库密码
|
||||
DB_PASSWORD=\$(cat /root/db_password.txt)
|
||||
|
||||
# 生成AUTH_SECRET
|
||||
AUTH_SECRET=\$(openssl rand -base64 32)
|
||||
|
||||
# 创建环境变量文件
|
||||
cat > .env.local << ENVFILE
|
||||
POSTGRES_URL=postgresql://chatbot_user:\${DB_PASSWORD}@localhost:5432/ai_chatbot
|
||||
AUTH_SECRET=\${AUTH_SECRET}
|
||||
AUTH_URL=https://${DOMAIN}
|
||||
NODE_ENV=production
|
||||
PORT=${APP_PORT}
|
||||
ENVFILE
|
||||
|
||||
echo "✅ 环境变量文件已创建"
|
||||
|
||||
# 导入数据库
|
||||
echo "正在导入数据库..."
|
||||
export PGPASSWORD="\$DB_PASSWORD"
|
||||
pg_restore -h localhost -p 5432 -U chatbot_user -d ai_chatbot -c --no-owner --no-privileges /tmp/database.dump 2>&1 | grep -v -E "(already exists|does not exist|ERROR.*already)" || true
|
||||
echo "✅ 数据库导入完成(已忽略重复项)"
|
||||
|
||||
# 安装依赖
|
||||
echo "正在安装依赖..."
|
||||
pnpm install --frozen-lockfile
|
||||
echo "✅ 依赖安装完成"
|
||||
|
||||
# 运行数据库迁移(如果需要)
|
||||
echo "正在运行数据库迁移..."
|
||||
pnpm db:migrate || echo "⚠️ 数据库迁移跳过或失败"
|
||||
echo "✅ 数据库迁移完成"
|
||||
|
||||
# 构建项目
|
||||
echo "正在构建项目..."
|
||||
pnpm build
|
||||
echo "✅ 项目构建完成"
|
||||
CONFIGEOF
|
||||
|
||||
# 步骤6: 配置PM2
|
||||
echo ""
|
||||
echo "🚀 步骤 6/8: 配置PM2..."
|
||||
sshpass -p "$NEW_PASS" ssh -p "$NEW_PORT" $SSH_OPTS "$NEW_USER@$NEW_SERVER" << 'PM2EOF'
|
||||
set -e
|
||||
cd /var/www/ai-chatbot
|
||||
|
||||
# 创建PM2配置文件
|
||||
cat > ecosystem.config.js << 'PM2CONFIG'
|
||||
module.exports = {
|
||||
apps: [{
|
||||
name: 'ai-chatbot',
|
||||
script: 'node_modules/next/dist/bin/next',
|
||||
args: 'start',
|
||||
cwd: '/var/www/ai-chatbot',
|
||||
instances: 1,
|
||||
exec_mode: 'fork',
|
||||
env: {
|
||||
NODE_ENV: 'production',
|
||||
PORT: 3125
|
||||
},
|
||||
error_file: '/var/log/pm2/ai-chatbot-error.log',
|
||||
out_file: '/var/log/pm2/ai-chatbot-out.log',
|
||||
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
|
||||
merge_logs: true,
|
||||
autorestart: true,
|
||||
max_memory_restart: '1G'
|
||||
}]
|
||||
};
|
||||
PM2CONFIG
|
||||
|
||||
# 创建日志目录
|
||||
mkdir -p /var/log/pm2
|
||||
|
||||
# 启动应用
|
||||
pm2 delete ai-chatbot 2>/dev/null || true
|
||||
pm2 start ecosystem.config.js
|
||||
pm2 save
|
||||
pm2 startup systemd -u root --hp /root || true
|
||||
|
||||
echo "✅ PM2 配置完成"
|
||||
PM2EOF
|
||||
|
||||
# 步骤7: 配置Nginx(HTTP,稍后配置HTTPS)
|
||||
echo ""
|
||||
echo "🌐 步骤 7/8: 配置Nginx..."
|
||||
sshpass -p "$NEW_PASS" ssh -p "$NEW_PORT" $SSH_OPTS "$NEW_USER@$NEW_SERVER" << 'NGINXEOF'
|
||||
set -e
|
||||
|
||||
DOMAIN="ai.yydd.ai"
|
||||
APP_PORT="3125"
|
||||
|
||||
# 创建Nginx配置(HTTP,用于Certbot验证)
|
||||
cat > /etc/nginx/sites-available/ai-chatbot << 'NGINXCONFIG'
|
||||
server {
|
||||
listen 80;
|
||||
server_name ai.yydd.ai;
|
||||
|
||||
# 关闭缓存
|
||||
proxy_cache off;
|
||||
proxy_buffering off;
|
||||
proxy_no_cache 1;
|
||||
proxy_cache_bypass 1;
|
||||
add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0";
|
||||
add_header Pragma "no-cache";
|
||||
add_header Expires "0";
|
||||
|
||||
location / {
|
||||
proxy_pass http://localhost:3125;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection 'upgrade';
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_cache_bypass $http_upgrade;
|
||||
proxy_read_timeout 300s;
|
||||
proxy_connect_timeout 75s;
|
||||
|
||||
# 禁用缓存
|
||||
proxy_set_header Cache-Control "no-cache, no-store, must-revalidate";
|
||||
}
|
||||
}
|
||||
NGINXCONFIG
|
||||
|
||||
# 启用站点
|
||||
ln -sf /etc/nginx/sites-available/ai-chatbot /etc/nginx/sites-enabled/
|
||||
rm -f /etc/nginx/sites-enabled/default
|
||||
|
||||
# 测试配置
|
||||
nginx -t
|
||||
|
||||
# 重载Nginx
|
||||
systemctl reload nginx
|
||||
|
||||
echo "✅ Nginx HTTP配置完成"
|
||||
NGINXEOF
|
||||
|
||||
# 步骤8: 配置HTTPS和强制HTTPS
|
||||
echo ""
|
||||
echo "🔒 步骤 8/8: 配置HTTPS证书和强制HTTPS..."
|
||||
sshpass -p "$NEW_PASS" ssh -p "$NEW_PORT" $SSH_OPTS "$NEW_USER@$NEW_SERVER" << 'HTTPSEOF'
|
||||
set -e
|
||||
|
||||
DOMAIN="ai.yydd.ai"
|
||||
APP_PORT="3125"
|
||||
|
||||
# 获取Let's Encrypt证书
|
||||
echo "正在获取SSL证书..."
|
||||
certbot --nginx -d "$DOMAIN" --non-interactive --agree-tos --email admin@yydd.ai --redirect || {
|
||||
echo "⚠️ Certbot执行失败,可能需要手动配置"
|
||||
echo "手动运行: certbot --nginx -d $DOMAIN"
|
||||
}
|
||||
|
||||
# 更新Nginx配置以强制HTTPS和关闭缓存
|
||||
cat > /etc/nginx/sites-available/ai-chatbot << 'NGINXHTTPS'
|
||||
# HTTP重定向到HTTPS
|
||||
server {
|
||||
listen 80;
|
||||
server_name ai.yydd.ai;
|
||||
return 301 https://$server_name$request_uri;
|
||||
}
|
||||
|
||||
# HTTPS配置
|
||||
server {
|
||||
listen 443 ssl http2;
|
||||
server_name ai.yydd.ai;
|
||||
|
||||
# SSL证书配置(Certbot会自动添加)
|
||||
ssl_certificate /etc/letsencrypt/live/ai.yydd.ai/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/ai.yydd.ai/privkey.pem;
|
||||
|
||||
# SSL优化配置
|
||||
ssl_protocols TLSv1.2 TLSv1.3;
|
||||
ssl_ciphers HIGH:!aNULL:!MD5;
|
||||
ssl_prefer_server_ciphers on;
|
||||
ssl_session_cache shared:SSL:10m;
|
||||
ssl_session_timeout 10m;
|
||||
|
||||
# 关闭缓存
|
||||
proxy_cache off;
|
||||
proxy_buffering off;
|
||||
proxy_no_cache 1;
|
||||
proxy_cache_bypass 1;
|
||||
add_header Cache-Control "no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0" always;
|
||||
add_header Pragma "no-cache" always;
|
||||
add_header Expires "0" always;
|
||||
|
||||
location / {
|
||||
proxy_pass http://localhost:3125;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection 'upgrade';
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_cache_bypass $http_upgrade;
|
||||
proxy_read_timeout 300s;
|
||||
proxy_connect_timeout 75s;
|
||||
|
||||
# 禁用缓存
|
||||
proxy_set_header Cache-Control "no-cache, no-store, must-revalidate";
|
||||
proxy_hide_header Cache-Control;
|
||||
proxy_hide_header Expires;
|
||||
}
|
||||
}
|
||||
NGINXHTTPS
|
||||
|
||||
# 测试配置
|
||||
nginx -t && systemctl reload nginx
|
||||
|
||||
echo "✅ HTTPS配置完成"
|
||||
HTTPSEOF
|
||||
|
||||
# 清理临时文件
|
||||
echo ""
|
||||
echo "🧹 清理临时文件..."
|
||||
sshpass -p "$NEW_PASS" ssh -p "$NEW_PORT" $SSH_OPTS "$NEW_USER@$NEW_SERVER" "rm -f /tmp/project.tar.gz /tmp/database.dump"
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "✅ 迁移完成!"
|
||||
echo "=========================================="
|
||||
echo "新服务器地址: https://$DOMAIN"
|
||||
echo "应用端口: $APP_PORT"
|
||||
echo ""
|
||||
echo "📝 重要信息:"
|
||||
echo "数据库密码已保存在: /root/db_password.txt"
|
||||
echo ""
|
||||
echo "🔍 验证步骤:"
|
||||
echo "1. 检查PM2状态: ssh -p $NEW_PORT $NEW_USER@$NEW_SERVER 'pm2 status'"
|
||||
echo "2. 检查日志: ssh -p $NEW_PORT $NEW_USER@$NEW_SERVER 'pm2 logs ai-chatbot'"
|
||||
echo "3. 检查Nginx状态: ssh -p $NEW_PORT $NEW_USER@$NEW_SERVER 'systemctl status nginx'"
|
||||
echo "4. 检查SSL证书: ssh -p $NEW_PORT $NEW_USER@$NEW_SERVER 'certbot certificates'"
|
||||
echo "5. 访问网站: https://$DOMAIN"
|
||||
echo ""
|
||||
echo "⚠️ 注意事项:"
|
||||
echo "- 如果Certbot失败,请手动运行: certbot --nginx -d $DOMAIN"
|
||||
echo "- 确保域名 $DOMAIN 的DNS已指向 $NEW_SERVER"
|
||||
echo "- 检查防火墙是否开放80和443端口"
|
||||
echo "=========================================="
|
||||
|
||||
66
migration-background.log
Normal file
66
migration-background.log
Normal file
@ -0,0 +1,66 @@
|
||||
==========================================
|
||||
AI Chatbot 服务器迁移脚本
|
||||
==========================================
|
||||
新服务器: root@45.192.99.48:22
|
||||
域名: ai.yydd.ai
|
||||
应用端口: 3125
|
||||
从Git仓库拉取源码和备份数据库
|
||||
时间: Sun Dec 28 18:19:15 CST 2025
|
||||
==========================================
|
||||
|
||||
✅ 找到数据库备份文件: /Users/lanmu/Desktop/ai-chatbot-main/migration-backup-complete/database_complete.dump (144M)
|
||||
✅ Git仓库: http://git.1080p.hk/chenpei/ai-chatbot.git
|
||||
|
||||
🔍 测试新服务器连接...
|
||||
✅ 新服务器连接正常
|
||||
|
||||
📦 步骤 1/8: 在新服务器上安装必要软件...
|
||||
Pseudo-terminal will not be allocated because stdin is not a terminal.
|
||||
Last failed login: Sun Dec 28 18:19:18 CST 2025 from 102.88.137.80 on ssh:notty
|
||||
There were 179 failed login attempts since the last successful login.
|
||||
检测系统类型...
|
||||
检测到CentOS/RHEL系统,使用dnf包管理器
|
||||
跳过系统更新,直接安装所需软件...
|
||||
安装基础工具...
|
||||
Dependencies resolved.
|
||||
Nothing to do.
|
||||
Complete!
|
||||
安装PostgreSQL...
|
||||
安装Node.js 20.x...
|
||||
使用NodeSource安装Node.js 20...
|
||||
[38;5;79m2025-12-28 18:19:24 - Cleaning up old repositories...[0m
|
||||
[38;5;79m2025-12-28 18:19:24 - Old repositories removed[0m
|
||||
[38;5;79m2025-12-28 18:19:24 - Supported architecture: x86_64[0m
|
||||
[38;5;79m2025-12-28 18:19:24 - Added N|Solid repository for LTS version: 20.x[0m
|
||||
[38;5;79m2025-12-28 18:19:24 - dnf available, updating...[0m
|
||||
Node.js Packages for Linux RPM based distros - 62 kB/s | 3.0 kB 00:00
|
||||
Metadata cache created.
|
||||
N|Solid Packages for Linux RPM based distros - 62 kB/s | 3.0 kB 00:00
|
||||
Metadata cache created.
|
||||
[38;5;79m2025-12-28 18:19:25 - Repository is configured and updated.[0m
|
||||
[38;5;79m2025-12-28 18:19:25 - You can use N|solid Runtime as a node.js alternative[0m
|
||||
[1;32m2025-12-28 18:19:25 - To install N|solid Runtime, run: dnf install nsolid -y[0m
|
||||
[38;5;79m2025-12-28 18:19:25 - Run 'dnf install nodejs -y' to complete the installation.[0m
|
||||
Dependencies resolved.
|
||||
Nothing to do.
|
||||
Complete!
|
||||
Node.js安装完成
|
||||
安装PM2和pnpm...
|
||||
安装Nginx...
|
||||
安装Certbot (Let's Encrypt)...
|
||||
No match for argument: certbot
|
||||
No match for argument: python3-certbot-nginx
|
||||
Error: Unable to find a match: certbot python3-certbot-nginx
|
||||
✅ 所有软件安装完成
|
||||
|
||||
📥 步骤 2/8: 从Git仓库克隆项目...
|
||||
Pseudo-terminal will not be allocated because stdin is not a terminal.
|
||||
Last failed login: Sun Dec 28 18:19:18 CST 2025 from 102.88.137.80 on ssh:notty
|
||||
There were 179 failed login attempts since the last successful login.
|
||||
删除现有目录...
|
||||
正在从Git仓库克隆...
|
||||
Cloning into '/var/www/ai-chatbot'...
|
||||
✅ 项目代码已从Git仓库克隆
|
||||
|
||||
📤 步骤 3/8: 上传数据库备份...
|
||||
./migrate-to-new-server.sh: line 198: hpass: command not found
|
||||
355
migration-backup-complete/User.sql
Normal file
355
migration-backup-complete/User.sql
Normal file
@ -0,0 +1,355 @@
|
||||
--
|
||||
-- PostgreSQL database dump
|
||||
--
|
||||
|
||||
\restrict VnfPi1Vtu3a6RlT4Psht10ibtD0tvfcGimkmRoH8rdkluErTcgl0qVYmR6dZtql
|
||||
|
||||
-- Dumped from database version 16.11 (Ubuntu 16.11-0ubuntu0.24.04.1)
|
||||
-- Dumped by pg_dump version 16.11 (Ubuntu 16.11-0ubuntu0.24.04.1)
|
||||
|
||||
SET statement_timeout = 0;
|
||||
SET lock_timeout = 0;
|
||||
SET idle_in_transaction_session_timeout = 0;
|
||||
SET client_encoding = 'UTF8';
|
||||
SET standard_conforming_strings = on;
|
||||
SELECT pg_catalog.set_config('search_path', '', false);
|
||||
SET check_function_bodies = false;
|
||||
SET xmloption = content;
|
||||
SET client_min_messages = warning;
|
||||
SET row_security = off;
|
||||
|
||||
--
|
||||
-- Data for Name: User; Type: TABLE DATA; Schema: public; Owner: chatbot_user
|
||||
--
|
||||
|
||||
INSERT INTO public."User" VALUES ('df4f8faa-a342-457d-8c1b-4fc15a4307d8', 'dingtalk_O7wISr7ecjjE86u1WiPkaSQiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 09:38:26.89095', '2025-12-09 09:38:26.89095', '梧桐', NULL, '淘系组', '16266845873704112');
|
||||
INSERT INTO public."User" VALUES ('d41a62aa-12dc-4a38-b84c-631ae0ba1239', 'dingtalk_nmNpeNNENs42PQx77IcwWwiEiE@dingtalk.local', '', 'regular', true, '2025-12-19 16:28:33.99508', '2025-12-19 16:28:33.99508', '静月', NULL, '平面视觉组', '17512476822397076');
|
||||
INSERT INTO public."User" VALUES ('20cb4ce1-3b2a-4b3c-8733-51dd5fbcece4', 'dingtalk_BBP0uqvePgUh4GF7U5OFtwiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 10:34:51.84188', '2025-12-09 10:34:51.84188', '子宜', NULL, '淘系一组', '17083066191869685');
|
||||
INSERT INTO public."User" VALUES ('12f7ed23-afaf-48be-a015-d05cca5423aa', 'dingtalk_PhqmYiirM9D76wYRiSZu0dXgiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 17:35:10.684632', '2025-12-09 17:35:10.684632', '玄机', NULL, '运营二部', '17000126455004988');
|
||||
INSERT INTO public."User" VALUES ('4a7baa33-39a3-45df-aeb9-88b768e54ca1', 'dingtalk_EriSkgnH7UK87Rjv8laxe1QiEiE@dingtalk.local', '', 'regular', true, '2025-12-16 14:02:29.058187', '2025-12-16 14:02:29.058187', '金宝', NULL, 'ai视觉部', '17581592992805718');
|
||||
INSERT INTO public."User" VALUES ('f0b28f59-323b-4621-a23f-ba8bdb54d4d8', 'dingtalk_O37v4LfKZ6gii7wbHpPr5YQiEiE@dingtalk.local', '', 'regular', true, '2025-12-19 18:17:18.386629', '2025-12-19 18:17:18.386629', '云螭', NULL, '3D视觉组', '17569493868579475');
|
||||
INSERT INTO public."User" VALUES ('0380c175-bf2e-4447-b2de-e7150a706fc8', 'dingtalk_wDtFoA6a0MKWnzmaii9E6cAiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 10:38:35.195319', '2025-12-09 10:38:35.195319', '飞鸿', NULL, '平面视觉组', '17554817262178229');
|
||||
INSERT INTO public."User" VALUES ('6d734963-aec4-4680-b2a1-091986408044', 'dingtalk_4j5RvTZFAiiFNkyRwCrgDvQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:09:33.500299', '2025-12-08 10:09:33.500299', '灵飞', NULL, '品类六十八部', '17551352240137306');
|
||||
INSERT INTO public."User" VALUES ('fdb47c20-678b-42b0-b89f-a7ba8ab92185', 'dingtalk_6jHrAwq33ZiiqCD5lii4DcDAiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:16:13.829378', '2025-12-08 10:16:13.829378', '荷泽', NULL, '亿家达组', '17627382170849533');
|
||||
INSERT INTO public."User" VALUES ('107e50f3-a698-40a5-8b86-d38f26c75262', 'dingtalk_QEOn6KI09IhNkyRwCrgDvQiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 10:44:27.149711', '2025-12-09 10:44:27.149711', '高适', NULL, '淘系一组', '16861873465469986');
|
||||
INSERT INTO public."User" VALUES ('eb5ab6f0-5d64-4f0c-a853-5d45d1524c3b', 'dingtalk_gAiPexuhKiin9gv8wq0mZoiiwiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 11:23:10.731159', '2025-12-08 11:23:10.731159', '杜衡', NULL, '亿家达组', '16886061771618396');
|
||||
INSERT INTO public."User" VALUES ('efc100ab-a0ec-471d-abbf-2d893805ce37', 'dingtalk_mgS6Ct2SagcQ6zzGzsEKDQiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 11:05:01.28532', '2025-12-09 11:05:01.28532', '夙又', NULL, '京东一组', '17200568217088978');
|
||||
INSERT INTO public."User" VALUES ('d515d757-5d8c-48b2-946e-5afa9f9279cc', 'dingtalk_VkSfEbrZ2JUhtRRW6lan4AiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 11:35:13.972696', '2025-12-09 11:35:13.972696', '王勃', NULL, '京东一组', '17623926817755463');
|
||||
INSERT INTO public."User" VALUES ('32d0d542-d5bd-44ad-9bbf-315b24ae60d8', 'dingtalk_H9UGiSeYd1aOhiSuqnQFqvQQiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 13:03:22.451003', '2025-12-09 13:03:22.451003', '幽翠', NULL, '运营八部', '17621330632633009');
|
||||
INSERT INTO public."User" VALUES ('2cc970f2-b0fc-4a98-b8fb-20dd55e51dd4', 'dingtalk_NhQSvo083iSAUk9TTWiiD0lgiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 13:04:04.840836', '2025-12-09 13:04:04.840836', '风烈', NULL, '卓禾组', '1762997540564457');
|
||||
INSERT INTO public."User" VALUES ('31462843-0749-4ead-8ead-dd3123c718cf', 'dingtalk_IBQa6iiWdsXYUk9TTWiiD0lgiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 14:52:16.238413', '2025-12-09 14:52:16.238413', '苗人凤', NULL, '千之尚组', '090711333324243255');
|
||||
INSERT INTO public."User" VALUES ('4f8db1c9-de3b-4aab-9830-0d87254650ab', 'dingtalk_cgtTMAG3A6iiH8qaH8pAtIQiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 15:45:42.636704', '2025-12-09 15:45:42.636704', '文慧', NULL, '运营五部', '17587636641139232');
|
||||
INSERT INTO public."User" VALUES ('805e481f-d55f-40a7-849d-315a401723bc', 'dingtalk_iSZTX1OCYSWE6smPoTUeTFgiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 09:57:49.429644', '2025-12-10 09:57:49.429644', '李靖', NULL, '淘系二组', '6262265332679370');
|
||||
INSERT INTO public."User" VALUES ('bf27a527-4111-4e81-ab75-c5ed65fe4807', 'dingtalk_w3ktrX5coaJrDYrhJnPFlwiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 11:51:24.353596', '2025-12-10 11:51:24.353596', '劭昱', NULL, '京东二组', '17152179170674939');
|
||||
INSERT INTO public."User" VALUES ('3f6239ea-2a6c-445d-97a2-9de42843b1e2', 'dingtalk_Fx2CpUiixdca21zQuwgsVuQiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 10:58:00.054737', '2025-12-09 10:58:00.054737', '江流儿', NULL, '亿家达组', '275026000724189155');
|
||||
INSERT INTO public."User" VALUES ('817f5109-b4b1-4ece-b490-bba663ad9057', 'dingtalk_6pxmn8iSwiPCCJ2hHyahISqAiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 13:51:58.792217', '2025-12-09 13:51:58.792217', '辛夷', NULL, '淘系二组', '16650191458016885');
|
||||
INSERT INTO public."User" VALUES ('436e29cd-1d44-45dd-aec2-75e58b65dd1f', 'dingtalk_LkhfJkHo5gLJRlQ6TiSiPsuAiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 15:43:19.085307', '2025-12-09 15:43:19.085307', '山山', NULL, '运营三部', '17162567734539010');
|
||||
INSERT INTO public."User" VALUES ('cbf23523-f55f-498a-ae23-3c01bc560cdb', 'dingtalk_PZD2iijJSvYyJQVdC0DNtrwiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 17:11:09.645312', '2025-12-09 17:11:09.645312', '露水', NULL, '京东二组', '16916328866037067');
|
||||
INSERT INTO public."User" VALUES ('239eb813-7d8d-4ee1-819f-ab73b397e26b', 'dingtalk_j46SYjXCSe621zQuwgsVuQiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 17:35:32.481449', '2025-12-10 17:35:32.481449', '明珠', NULL, '品类二十五部', '17563455986538900');
|
||||
INSERT INTO public."User" VALUES ('c2d01dd7-9205-49a0-bba7-71ac9d9fc97c', 'dingtalk_ch4ueiPgfSh5h7ya8a7jhpQiEiE@dingtalk.local', '', 'regular', true, '2025-12-11 13:34:52.183688', '2025-12-11 13:34:52.183688', '语希', NULL, '亿家达组', '16801393689466298');
|
||||
INSERT INTO public."User" VALUES ('7f22a7dd-fb64-4113-96f1-a227b8363b7d', 'dingtalk_lpMfHqxIrKCC3h9EiPbucugiEiE@dingtalk.local', '', 'regular', true, '2025-12-11 13:52:54.678126', '2025-12-11 13:52:54.678126', '青鹧', NULL, '京东二组', '16441144334318706');
|
||||
INSERT INTO public."User" VALUES ('f2a6c5aa-87fb-409a-b580-7707aec7433f', 'dingtalk_iS83hrZlsFNBgv8wq0mZoiiwiEiE@dingtalk.local', '', 'regular', true, '2025-12-11 13:58:53.302327', '2025-12-11 13:58:53.302327', '九穗禾', NULL, '京东一组', '17028630393891503');
|
||||
INSERT INTO public."User" VALUES ('9691018a-1f2f-4247-872a-f80bc31737c6', 'dingtalk_1CNiSRnUzaVhNpZ6rxgc2hAiEiE@dingtalk.local', '', 'regular', true, '2025-12-12 15:44:25.163206', '2025-12-12 15:44:25.163206', '荷香', NULL, '京东二组', '17527168502097145');
|
||||
INSERT INTO public."User" VALUES ('63035147-9f70-4770-a0c6-93e661a0d917', 'dingtalk_cVse72XNA5iiWnzmaii9E6cAiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 11:33:20.420211', '2025-12-08 11:33:20.420211', '五柳', NULL, '品类四部', '15955542073721266');
|
||||
INSERT INTO public."User" VALUES ('0aced293-85f5-4b76-9266-4461a7f5347a', 'dingtalk_vEp3UgnIEZfoCUKHIMj12wiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 15:49:11.839751', '2025-12-08 15:49:11.839751', '万贞儿', NULL, '卓禾组', '17165139415745835');
|
||||
INSERT INTO public."User" VALUES ('4686827b-2a8d-4815-9895-3ea493d222cc', 'dingtalk_JEZ91bDLAA4iE@dingtalk.local', '', 'regular', true, '2025-12-10 13:56:26.896786', '2025-12-10 13:56:26.896786', '上生', NULL, '平面视觉组', '16097214752721039');
|
||||
INSERT INTO public."User" VALUES ('87ee2d6b-8622-4f92-9b09-edfa6b4bdae7', 'dingtalk_0wcmM2ucl8M3zRWYFt8QJwiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 15:04:15.973949', '2025-12-10 15:04:15.973949', '枭', NULL, '亿家达组', '625818641328758744');
|
||||
INSERT INTO public."User" VALUES ('00951592-f24c-4bf3-b5f0-0a5f8c5237ce', 'dingtalk_cgN0voiSj5kmQde4smonbewiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 15:10:12.782327', '2025-12-10 15:10:12.782327', '乐生', NULL, '运营一部', '17331034531105690');
|
||||
INSERT INTO public."User" VALUES ('7ec217ca-631c-43fa-a377-2861c16109cb', 'dingtalk_9B7uM5BOtdpJDKc6MvjLRwiEiE@dingtalk.local', '', 'regular', true, '2025-12-11 11:40:49.496531', '2025-12-11 11:40:49.496531', '芷露', NULL, '运营八部', '17458056019029513');
|
||||
INSERT INTO public."User" VALUES ('a8bffd5a-6154-4438-9801-ca3b10eaab60', 'dingtalk_Tm2JbtjVAzIP0fhsLdFTtQiEiE@dingtalk.local', '', 'regular', true, '2025-12-11 14:41:45.260919', '2025-12-11 14:41:45.260919', '可久', NULL, '淘系一组', '16889519729177684');
|
||||
INSERT INTO public."User" VALUES ('cbdc1c77-328d-426d-a941-5992b08855b5', 'dingtalk_LNDArXpHJBz6CcMLJ4b8HwiEiE@dingtalk.local', '', 'regular', true, '2025-12-11 16:35:14.86803', '2025-12-11 16:35:14.86803', '星桥', NULL, '淘系二组', '17513333089313806');
|
||||
INSERT INTO public."User" VALUES ('c1fc1b28-8f46-4438-a80d-8a8ad3e9acc7', 'dingtalk_lAFRrhD7RCqiSvStBMrhiSEgiEiE@dingtalk.local', '', 'regular', true, '2025-12-12 11:30:49.821517', '2025-12-12 11:30:49.821517', '伏龙鼎', NULL, '外贸部', '096203475039907687');
|
||||
INSERT INTO public."User" VALUES ('3897cb03-5fb2-429e-8115-9290e6beb7d2', 'dingtalk_XkElA0JXOLRXJFNPy95ypAiEiE@dingtalk.local', '', 'regular', true, '2025-12-12 15:21:40.656475', '2025-12-12 15:21:40.656475', '俊义', NULL, '品类十五部', '16641552187528504');
|
||||
INSERT INTO public."User" VALUES ('e84e0324-d021-4b15-bf3b-527544d7badb', 'dingtalk_2iP9N2odqDz0ii7wbHpPr5YQiEiE@dingtalk.local', '', 'regular', true, '2025-12-15 13:53:01.284303', '2025-12-15 13:53:01.284303', '平阳', NULL, '亿家达组', '16650191858302430');
|
||||
INSERT INTO public."User" VALUES ('74c3d0ed-e9ff-4907-8683-0639270bf648', 'dingtalk_guRQWZ41BiS5JDKc6MvjLRwiEiE@dingtalk.local', '', 'regular', true, '2025-12-16 09:38:36.37934', '2025-12-16 09:38:36.37934', '莞尔', NULL, '运营八部', '17433851697492723');
|
||||
INSERT INTO public."User" VALUES ('468ac0e7-646a-487c-b721-3bcb79cbf0e4', 'dingtalk_aHBvETQIiPM4wgo81Xg0XhQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 09:25:12.537225', '2025-12-08 09:25:12.537225', '青帝', NULL, '品类二十一部', '17502970641672903');
|
||||
INSERT INTO public."User" VALUES ('bd2e4bdf-f2f4-4680-ac86-a95c401e82d0', 'dingtalk_kQr8iiiPQX2Mo32giiOughUBQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 11:52:22.40146', '2025-12-08 11:52:22.40146', '霍青桐', NULL, '卓禾组', '17617875608616342');
|
||||
INSERT INTO public."User" VALUES ('6944b3ab-8681-4ff0-aa12-a834f4ecd85e', 'dingtalk_DYEYLk4O2HxZkXdudmgZwwiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 13:42:03.536435', '2025-12-08 13:42:03.536435', '宋文通', NULL, '品类二十一部', '17242895639322526');
|
||||
INSERT INTO public."User" VALUES ('f1f48049-c099-42cc-ab5a-b8aace61746c', 'dingtalk_GdPz5jii6FUwii7wbHpPr5YQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 15:05:12.885278', '2025-12-08 15:05:12.885278', '子美', NULL, '淘系组', '16559465701157896');
|
||||
INSERT INTO public."User" VALUES ('11c41962-e656-4a27-83ee-b54983ba40a5', 'dingtalk_1jqWUcdRWiiZdZHaWzl1pXAiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 09:57:49.450205', '2025-12-10 09:57:49.450205', '望云', NULL, '品类六部', '17651581202642488');
|
||||
INSERT INTO public."User" VALUES ('4eb9e518-4ffc-449f-9e4b-9897063ae5d5', 'dingtalk_7IcPtiiNdcXVSQrC3mqoewgiEiE@dingtalk.local', '', 'regular', true, '2025-12-19 16:28:59.175113', '2025-12-19 16:28:59.175113', '静颜', NULL, '策划', '17524579524462402');
|
||||
INSERT INTO public."User" VALUES ('db8edb0b-f87c-4b5f-9ea9-a91b38f81b83', 'dingtalk_Qiia04u3u1SHe3EDO6PzV2wiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 09:31:31.674678', '2025-12-09 09:31:31.674678', '青霄', NULL, '策划', '1755739960662638');
|
||||
INSERT INTO public."User" VALUES ('e159280f-3515-4760-b762-59ad42070e10', 'dingtalk_B8739pQ4QTkTsW4NiP5cwTgiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 11:47:23.294958', '2025-12-09 11:47:23.294958', '萧何', NULL, '品类二十一部', '1620608755175278');
|
||||
INSERT INTO public."User" VALUES ('5487e73b-61cf-4a1a-b2f3-0e0aa1f85a49', 'dingtalk_EF7z3msjBpiirutyJIniiPFgiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 15:11:54.414122', '2025-12-09 15:11:54.414122', '丹木', NULL, '卓禾组', '17095160157328101');
|
||||
INSERT INTO public."User" VALUES ('b8f7a28e-e5d4-4f3a-a179-5cae37272047', 'dingtalk_K3jg50mRGfLKQb32omPI1giEiE@dingtalk.local', '', 'regular', true, '2025-12-09 15:55:12.058222', '2025-12-09 15:55:12.058222', '幽兰', NULL, '无双组', '17575541380071464');
|
||||
INSERT INTO public."User" VALUES ('c378cb09-7ee0-4787-99fa-566773a1600c', 'dingtalk_KOEo8iSVs48uiSvStBMrhiSEgiEiE@dingtalk.local', '', 'regular', true, '2025-12-12 11:35:59.519616', '2025-12-12 11:35:59.519616', '揽胜', NULL, '平面视觉组', '17536693691141592');
|
||||
INSERT INTO public."User" VALUES ('b930d92f-9042-4fa6-b854-8333a8ff2e44', 'dingtalk_ynOx0jWeDuTA5ulPAiPcAogiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 17:18:51.239571', '2025-12-09 17:18:51.239571', '丹阳', NULL, '品类五十五部', '17448537025151530');
|
||||
INSERT INTO public."User" VALUES ('c79a52aa-cb1f-4c2b-8e50-143c55cb7560', 'dingtalk_K8LNzq3jQbEii7wbHpPr5YQiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 13:26:27.516958', '2025-12-10 13:26:27.516958', '虞姬', NULL, '品类三十七部', '220036443140293483');
|
||||
INSERT INTO public."User" VALUES ('9da5263c-484b-4238-8fb5-b3bf509569a9', 'dingtalk_YGKfBbU0tveWnzmaii9E6cAiEiE@dingtalk.local', '', 'regular', true, '2025-12-19 18:17:56.739577', '2025-12-19 18:17:56.739577', '瑶光', NULL, '平面视觉组', '0905364769804');
|
||||
INSERT INTO public."User" VALUES ('610e129d-6246-4d11-bcb9-373ff2dc0536', 'dingtalk_7AJl3iSrZol1NkyRwCrgDvQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:55:47.755978', '2025-12-08 10:55:47.755978', '听雨', NULL, '淘系三组', '17470137941662618');
|
||||
INSERT INTO public."User" VALUES ('39424b6a-674c-423b-a3c4-3d4b401c7191', 'dingtalk_EeGFachkbDMhtRRW6lan4AiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 14:32:36.938305', '2025-12-10 14:32:36.938305', '扶风', NULL, '运营一部', '17388060246048197');
|
||||
INSERT INTO public."User" VALUES ('f7c74b13-3370-4eee-9590-db4569f7f6aa', 'dingtalk_oKAEJoiiXeJ9h7ya8a7jhpQiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 15:05:09.307447', '2025-12-10 15:05:09.307447', '瑶池', NULL, '亿家达组', '17391512871494713');
|
||||
INSERT INTO public."User" VALUES ('c2f026e7-eca5-4941-b876-e9a1c2d353c4', 'dingtalk_7AOBfIj2wwBsg5xfGiSkzrAiEiE@dingtalk.local', '', 'regular', true, '2025-12-11 14:45:27.763187', '2025-12-11 14:45:27.763187', '周颖', NULL, '品类二十一部', '17654167785576487');
|
||||
INSERT INTO public."User" VALUES ('9748ba3a-6a96-4cd3-a686-87ac48ae2162', 'dingtalk_F3pd2oD6zs2JQVdC0DNtrwiEiE@dingtalk.local', '', 'regular', true, '2025-12-19 18:23:20.079485', '2025-12-19 18:23:20.079485', '句芒', NULL, '3D视觉组', '15888137890267453');
|
||||
INSERT INTO public."User" VALUES ('3b44406e-2bcf-4e4a-b615-5697cb23e6a9', 'dingtalk_6AaiSEcRSZ6sTsW4NiP5cwTgiEiE@dingtalk.local', '', 'regular', true, '2025-12-15 16:11:14.615983', '2025-12-15 16:11:14.615983', '蓬莱', NULL, '运营七部', '17391527722266571');
|
||||
INSERT INTO public."User" VALUES ('4c543ec4-2f24-4e16-980a-44481bec2e77', 'dingtalk_CPJkckdBVsoiSJHCrQzSn8giEiE@dingtalk.local', '', 'regular', true, '2025-12-24 18:24:55.530539', '2025-12-24 18:24:55.530539', '香茗', NULL, '运营一部', '17665443884393254');
|
||||
INSERT INTO public."User" VALUES ('3d20270a-8fdc-48b1-b630-511acc74f3a5', 'dingtalk_ypnviP2wL3Ry21zQuwgsVuQiEiE@dingtalk.local', '', 'regular', true, '2025-12-16 09:52:42.894051', '2025-12-16 09:52:42.894051', '九尾', NULL, '策划二部', '281234274720979690');
|
||||
INSERT INTO public."User" VALUES ('3841ea0e-595e-4e45-b59b-398dca1f5434', 'dingtalk_1FpIXvPzbZVgv8wq0mZoiiwiEiE@dingtalk.local', '', 'regular', true, '2025-12-16 15:31:49.950743', '2025-12-16 15:31:49.950743', '关雎', NULL, '淘系组', '143763672524084876');
|
||||
INSERT INTO public."User" VALUES ('d9240d02-3890-4dab-b3bc-dc168dd5db98', 'dingtalk_PRNaKNlSGs4Uk9TTWiiD0lgiEiE@dingtalk.local', '', 'regular', true, '2025-12-16 15:40:49.709662', '2025-12-16 15:40:49.709662', '忘忧', NULL, '支持组', '1709194833690971');
|
||||
INSERT INTO public."User" VALUES ('9ce1848b-de1d-4703-9d87-fa96a280bb9c', 'dingtalk_yyFq5JynMFKPgHxWlECmNQiEiE@dingtalk.local', '', 'regular', true, '2025-12-11 16:37:56.461849', '2025-12-11 16:37:56.461849', '吴嘉雯', NULL, NULL, NULL);
|
||||
INSERT INTO public."User" VALUES ('09f920e8-10ff-48a7-8849-d8524ff7ba0f', 'dingtalk_rVle6NcKiiBiSKQb32omPI1giEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:07:59.419559', '2025-12-08 10:07:59.419559', '琪瑛', NULL, '亿家达组', '17545311674568466');
|
||||
INSERT INTO public."User" VALUES ('ccebd943-bee4-432b-a7b4-c8c0135491e8', 'dingtalk_TWsPxiPiSdlxoUk9TTWiiD0lgiEiE@dingtalk.local', '', 'regular', true, '2025-12-23 15:13:06.993604', '2025-12-23 15:13:06.993604', '桃月', NULL, '淘系一组', '16861875295099110');
|
||||
INSERT INTO public."User" VALUES ('b4b38dc2-8932-48f8-9bdf-546d6825d0ff', 'dingtalk_oAYNVp6tz5Ngv8wq0mZoiiwiEiE@dingtalk.local', '', 'regular', true, '2025-12-23 10:42:54.866929', '2025-12-23 10:42:54.866929', '骆冰', NULL, '品类三十三部', '09052303155499');
|
||||
INSERT INTO public."User" VALUES ('afb18198-8f1e-4399-bfb0-eb08767aec31', 'dingtalk_CLZknP7THhK21zQuwgsVuQiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 09:26:21.586864', '2025-12-10 09:26:21.586864', '福星', NULL, '运营四部 / 摄影部', '05666237571059592');
|
||||
INSERT INTO public."User" VALUES ('4e955271-d26b-496c-a7a6-ebc4bddebcbd', 'dingtalk_Z8ii1dwFHNkiPhiSuqnQFqvQQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 13:55:27.934462', '2025-12-08 13:55:27.934462', '丽泽', NULL, '亿家达组', '17533208052621240');
|
||||
INSERT INTO public."User" VALUES ('16bc98b6-6657-449c-b1f7-d948e476aacc', 'dingtalk_o5wzdcFBqYITsW4NiP5cwTgiEiE@dingtalk.local', '', 'admin', true, '2025-12-08 00:48:15.857742', '2025-12-09 01:41:46.982', '于伟', NULL, '软件支持', '0443451422643665');
|
||||
INSERT INTO public."User" VALUES ('b93cbc5b-d40b-4dd1-ac5e-1a3fbbaf06af', 'dingtalk_JpMRBv8ECFaJ2hHyahISqAiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 09:13:39.58502', '2025-12-09 09:13:39.58502', '竹君', NULL, '运营五部', '17503830426415266');
|
||||
INSERT INTO public."User" VALUES ('392ee2b8-f802-4408-bf1e-83c6010cd043', 'dingtalk_06IqotEiiPr9XJFNPy95ypAiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 10:28:29.89318', '2025-12-09 10:28:29.89318', '刘令娴', NULL, '品类二十二部', '16768559653439991');
|
||||
INSERT INTO public."User" VALUES ('089a88dd-79f2-411f-81f4-09b549411162', 'dingtalk_bzX8pHFMUXlSQrC3mqoewgiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 10:59:40.384472', '2025-12-09 10:59:40.384472', '丹枫', NULL, '卓禾组', '17412265392903983');
|
||||
INSERT INTO public."User" VALUES ('3458c135-987e-4d93-bfd9-e57022af431f', 'dingtalk_PjB1iiUO7fRQii7wbHpPr5YQiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 11:41:48.970539', '2025-12-09 11:41:48.970539', '文若', NULL, '品类三十三部', '16777203071766487');
|
||||
INSERT INTO public."User" VALUES ('f9aa2045-1cc7-4976-bd1f-548311306fd7', 'dingtalk_qG3ZDiSu1UB621zQuwgsVuQiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 13:05:53.773692', '2025-12-09 13:05:53.773692', '無尘', NULL, '事业二部', '07085722474895');
|
||||
INSERT INTO public."User" VALUES ('8aafe025-efe4-4c93-a72e-98061275414d', 'dingtalk_gBnYlpwWJsVJDKc6MvjLRwiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 13:54:46.676737', '2025-12-09 13:54:46.676737', '谷望', NULL, '品类三十一部', '17563455325933868');
|
||||
INSERT INTO public."User" VALUES ('236e0962-b442-490a-96ea-ceb9b465a8df', 'dingtalk_KhqBc9cuJJkUk9TTWiiD0lgiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 09:28:47.590025', '2025-12-10 09:28:47.590025', '天音', NULL, '摄影中心', '17627383139051844');
|
||||
INSERT INTO public."User" VALUES ('6797f787-3a1e-493f-9e8d-65311217b8aa', 'dingtalk_BkhjZDx2FETA5ulPAiPcAogiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 14:32:56.186772', '2025-12-10 14:32:56.186772', '静芬', NULL, '淘系三组', '17633437934838539');
|
||||
INSERT INTO public."User" VALUES ('00965dbc-ac43-44d0-9865-400fc90c5b8b', 'dingtalk_64T8iikAzNROJQVdC0DNtrwiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 17:47:19.779836', '2025-12-10 17:47:19.779836', '冉遗', NULL, '亿家达组', '17113305608336566');
|
||||
INSERT INTO public."User" VALUES ('4f531caf-0a79-4ffd-99d2-c6d89fd1b61a', 'dingtalk_DGMFENdFy6vKQb32omPI1giEiE@dingtalk.local', '', 'regular', true, '2025-12-11 13:09:01.833475', '2025-12-11 13:09:01.833475', '张华', NULL, '运营五部', '1689211514251152');
|
||||
INSERT INTO public."User" VALUES ('e1a7b012-8ab4-47d8-a343-a1abd890bfe5', 'dingtalk_WRYs7Dja9fxrDYrhJnPFlwiEiE@dingtalk.local', '', 'regular', true, '2025-12-11 13:58:13.024402', '2025-12-11 13:58:13.024402', '羽涅', NULL, '天猫一组', '16970758302849973');
|
||||
INSERT INTO public."User" VALUES ('cb06223a-232d-4655-8cd5-43744b53e223', 'dingtalk_9y6bguPNPcAiE@dingtalk.local', '', 'regular', true, '2025-12-14 15:02:13.901292', '2025-12-14 15:02:13.901292', '苏适', NULL, '运营中心B', '16412638219551394');
|
||||
INSERT INTO public."User" VALUES ('1931332d-af74-490f-b6fc-7aae61799e2a', 'dingtalk_g0iSLqjHiivSl2Z68Y3lSAOwiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:15:24.760633', '2025-12-08 10:15:24.760633', '杨不悔', NULL, '天猫二组', '17587632230066583');
|
||||
INSERT INTO public."User" VALUES ('1a0c8f0f-1a48-4df0-a65c-35b34953e599', 'dingtalk_gqqOiisvU4IGxH6fEWxyYGAiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 16:55:14.506852', '2025-12-08 16:55:14.506852', '志远', NULL, '天猫一组', '17587632827222771');
|
||||
INSERT INTO public."User" VALUES ('b1d48c9a-e073-4543-bfb4-2c943e81526a', 'dingtalk_SvzO7JkfGDa21zQuwgsVuQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 13:23:22.188375', '2025-12-08 13:23:22.188375', '子远', NULL, '淘系组', '1613870671485190');
|
||||
INSERT INTO public."User" VALUES ('56ffd821-dd43-4822-bdd2-5dee6cbfef2e', 'dingtalk_u5EqTMjIiSW2rutyJIniiPFgiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 14:20:24.394957', '2025-12-08 14:20:24.394957', '紫陌', NULL, '欧意朗组', '17500380377494984');
|
||||
INSERT INTO public."User" VALUES ('a9aa9e02-eb33-4853-8e29-393a8c5cafc9', 'dingtalk_oy23t1ttBe6PgHxWlECmNQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 15:36:46.254511', '2025-12-08 15:36:46.254511', '雪川', NULL, '淘系二组', '17394105729911399');
|
||||
INSERT INTO public."User" VALUES ('b38d11cc-da8e-4031-930f-0d170934a778', 'dingtalk_OcsOSFO69XCH8qaH8pAtIQiEiE@dingtalk.local', '', 'regular', true, '2025-12-26 10:10:09.438541', '2025-12-26 10:10:09.438541', '伽罗', NULL, '3D视觉组', '16375459480503812');
|
||||
INSERT INTO public."User" VALUES ('fb2ed979-e46d-4e39-b0f8-1961c6547283', 'dingtalk_q9AxMziSN1KkUk9TTWiiD0lgiEiE@dingtalk.local', '', 'regular', true, '2025-12-20 15:46:41.654078', '2025-12-20 15:46:41.654078', '秋瑾', NULL, 'ai视觉部', '09062060032383');
|
||||
INSERT INTO public."User" VALUES ('93761bf2-a22a-48ff-96cb-34e16d9c3c7e', 'dingtalk_FmMcHbacQbiiQde4smonbewiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 09:47:50.276609', '2025-12-09 09:47:50.276609', '云梦', NULL, '亿家达组', '1739757429284399');
|
||||
INSERT INTO public."User" VALUES ('b31fd1ae-3cd6-4a71-b02f-bfa4875613e4', 'dingtalk_ztk3yvEkPBw3zRWYFt8QJwiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 13:34:18.25621', '2025-12-09 13:34:18.25621', '花影', NULL, '京东一组', '17560857920779552');
|
||||
INSERT INTO public."User" VALUES ('e4509a2b-e663-42fa-89e7-ef2d826ce189', 'dingtalk_e9aTlX5BeXK21zQuwgsVuQiEiE@dingtalk.local', '', 'regular', true, '2025-12-19 16:44:28.953933', '2025-12-19 16:44:28.953933', '流风', NULL, '策划', '17527162138181967');
|
||||
INSERT INTO public."User" VALUES ('79ce494b-cdd6-4687-8625-b2417ab47d8d', 'dingtalk_gvF09AHNkXe21zQuwgsVuQiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 14:08:28.397772', '2025-12-09 14:08:28.397772', '九千七', NULL, '京东一组', '1743312137847243');
|
||||
INSERT INTO public."User" VALUES ('e414a71c-7a11-432b-add4-4fb60ee4a09d', 'dingtalk_8hw2VbflzemiSvStBMrhiSEgiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 14:19:47.886075', '2025-12-09 14:19:47.886075', '蔺晨', NULL, '不凡组', '090656665036597568');
|
||||
INSERT INTO public."User" VALUES ('3987d881-c6e6-4f3b-b6b1-586354ab411c', 'dingtalk_O8WfqGiP2C6ADvQzSq8GiSUQiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 15:58:19.23332', '2025-12-09 15:58:19.23332', '葭葭', NULL, '运营五部', '17200573484495504');
|
||||
INSERT INTO public."User" VALUES ('845ab682-08de-4c75-bfee-7916f03785d9', 'dingtalk_YdxYnNy47t5gv8wq0mZoiiwiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 09:36:10.901019', '2025-12-10 09:36:10.901019', '芮冬星', NULL, '鸣飞家具', '103703420532823585');
|
||||
INSERT INTO public."User" VALUES ('45332762-3e4e-4925-b20e-b5e73ff57e9f', 'dingtalk_jT2J3dQjHNSWnzmaii9E6cAiEiE@dingtalk.local', '', 'regular', true, '2025-12-20 15:45:22.700444', '2025-12-20 15:45:22.700444', '乐游', NULL, '平面视觉组', '09061715497867');
|
||||
INSERT INTO public."User" VALUES ('f16303c2-9470-42f3-96b5-e0e2cdcf2080', 'dingtalk_IfPmdgUStKJh7ya8a7jhpQiEiE@dingtalk.local', '', 'regular', true, '2025-12-20 09:00:52.271015', '2025-12-20 09:00:52.271015', '黄精', NULL, '3D视觉', '17591095655513936');
|
||||
INSERT INTO public."User" VALUES ('b453c505-4980-4b88-9d36-cd46b4439e1c', 'dingtalk_G6zum39z4jBNkyRwCrgDvQiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 10:53:32.921025', '2025-12-10 10:53:32.921025', '天蓬', NULL, '品类三十八部', '215102384827883110');
|
||||
INSERT INTO public."User" VALUES ('fc29062f-1b78-4941-b0a9-debbcb6e59c5', 'dingtalk_x0AAIwhlzYghtRRW6lan4AiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 15:15:58.910108', '2025-12-10 15:15:58.910108', '清虹', NULL, '运营三部', '17554819418012405');
|
||||
INSERT INTO public."User" VALUES ('151202e1-1543-44bd-afc5-e3b32c44a897', 'dingtalk_D2JDy6WWC9SbswbCOUfkCgiEiE@dingtalk.local', '', 'regular', true, '2025-12-22 10:49:36.035795', '2025-12-22 10:49:36.035795', '史雨涵', NULL, 'ai视觉部', '1766367441840704');
|
||||
INSERT INTO public."User" VALUES ('f5aa2ae3-744e-43bf-acb9-a199fefd1211', 'dingtalk_CPTVnBllDbzLEHxmpHUvqwiEiE@dingtalk.local', '', 'regular', true, '2025-12-11 14:05:51.214112', '2025-12-11 14:05:51.214112', '南风', NULL, '卓禾组', '17115892594207192');
|
||||
INSERT INTO public."User" VALUES ('f3429464-832f-4dcb-8b9d-fc788285e084', 'dingtalk_zFxEii6WNhx2JQVdC0DNtrwiEiE@dingtalk.local', '', 'regular', true, '2025-12-11 16:03:06.425929', '2025-12-11 16:03:06.425929', '妙才', NULL, 'C组', '16825589875956984');
|
||||
INSERT INTO public."User" VALUES ('99a42008-c37d-4db8-958a-9aa8da6ed1dd', 'dingtalk_mSce1u7V8XeC3h9EiPbucugiEiE@dingtalk.local', '', 'regular', true, '2025-12-23 17:40:30.431799', '2025-12-23 17:40:30.431799', '静蔓', NULL, '运营二部', '17575540011489917');
|
||||
INSERT INTO public."User" VALUES ('575cfb2c-5f00-49a4-a511-24f33f2ca1ee', 'dingtalk_opPTmiSiSGiSCtt3HVRDkjsiiAiEiE@dingtalk.local', '', 'regular', true, '2025-12-11 16:11:59.722218', '2025-12-11 16:11:59.722218', '师青玄', NULL, '品类二十部', '1667784164438530');
|
||||
INSERT INTO public."User" VALUES ('12ffc0c9-8e11-45cc-8235-a871ffd6a0a2', 'dingtalk_Bd0wKl5penO21zQuwgsVuQiEiE@dingtalk.local', '', 'regular', true, '2025-12-11 17:24:13.164738', '2025-12-11 17:24:13.164738', '松节', NULL, '平面视觉组', '17651578924099451');
|
||||
INSERT INTO public."User" VALUES ('558ebb56-f02a-4822-a304-c1388e9c2382', 'dingtalk_8wyQtnfvlyoQ6zzGzsEKDQiEiE@dingtalk.local', '', 'regular', true, '2025-12-11 13:41:52.784573', '2025-12-11 13:41:52.784573', '风筝', NULL, NULL, NULL);
|
||||
INSERT INTO public."User" VALUES ('67c7ed6f-2f86-4da9-a921-2e92457a57d8', 'dingtalk_F16Pk5gjtCD92hBzZjblKAiEiE@dingtalk.local', '', 'regular', true, '2025-12-26 10:18:02.349945', '2025-12-26 10:18:02.349945', '梁山泊', NULL, '品类二十九部', '17585041389093611');
|
||||
INSERT INTO public."User" VALUES ('20948b28-62c1-43a2-88e8-22e415a7aa94', 'dingtalk_JgwGjJuzAQ3KQb32omPI1giEiE@dingtalk.local', '', 'regular', true, '2025-12-09 10:27:49.097973', '2025-12-09 10:27:49.097973', '清逸', NULL, '品类三十一部', '17566896586841111');
|
||||
INSERT INTO public."User" VALUES ('231474ad-3143-40aa-bf11-67fae1bd1673', 'dingtalk_HEpFKmvA2iiCJQVdC0DNtrwiEiE@dingtalk.local', '', 'regular', true, '2025-12-12 14:00:08.266296', '2025-12-12 14:00:08.266296', '宁采臣', NULL, '轩昂组', '1641053926848654');
|
||||
INSERT INTO public."User" VALUES ('6a6655a1-0770-49cf-8f5d-97dfbbb89d1a', 'dingtalk_PhkTw9bObGRh7ya8a7jhpQiEiE@dingtalk.local', '', 'regular', true, '2025-12-15 10:33:54.616054', '2025-12-15 10:33:54.616054', '灵汐', NULL, '架类组', '16532696236585175');
|
||||
INSERT INTO public."User" VALUES ('9c565787-097e-4bae-be71-08284170bd71', 'dingtalk_X25YcC3lhCcOaZn9OAVw5QiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 15:23:38.957936', '2025-12-09 15:23:38.957936', '相宜', NULL, '运营一部', '16572447080448715');
|
||||
INSERT INTO public."User" VALUES ('3397ad44-8b66-489d-9615-29fa5744efa7', 'dingtalk_1ttPYAPuef7LEHxmpHUvqwiEiE@dingtalk.local', '', 'regular', true, '2025-12-16 15:41:51.897788', '2025-12-16 15:41:51.897788', '范闲', NULL, '运营六部', '17089129530478604');
|
||||
INSERT INTO public."User" VALUES ('f977c86a-3c59-459b-93fa-937e5aaa5b0f', 'dingtalk_InK3miiMViPApbaiSNT9xrSZQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:04:55.816495', '2025-12-08 10:04:55.816495', '艳蕊', NULL, '运营四部', '17623925917566521');
|
||||
INSERT INTO public."User" VALUES ('87acad35-0848-4abc-ba6a-b8748a7d098d', 'dingtalk_dIVtVllNrW5BwiP7xnUP59QiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 09:21:18.472007', '2025-12-09 09:21:18.472007', '蓬莱仙子', NULL, '品类三十部', '17639484469263442');
|
||||
INSERT INTO public."User" VALUES ('f873308c-1d76-4bee-92d5-a15848506632', 'dingtalk_myViiNHdEXT14eaXPujstiiwiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 09:23:55.860708', '2025-12-09 09:23:55.860708', '碧落', NULL, '卓禾组', '17572954323241650');
|
||||
INSERT INTO public."User" VALUES ('f09a2d8b-7b13-4b1e-bcd1-9cbe17ac579d', 'dingtalk_Fam3XYPYXiigDvQzSq8GiSUQiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 10:48:28.04866', '2025-12-09 10:48:28.04866', '镜湖', NULL, '京东一组', '17430382889552488');
|
||||
INSERT INTO public."User" VALUES ('d685fa51-d8eb-42ea-b471-4a91269a7a90', 'dingtalk_sO5gokWc6H9dskXiPrBcKRQiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 10:54:15.194464', '2025-12-09 10:54:15.194464', '李绅', NULL, '卓禾组', '17095160230521913');
|
||||
INSERT INTO public."User" VALUES ('ed591444-889a-4917-afed-2493d3ca16d7', 'dingtalk_3EiicVh7V5ja21zQuwgsVuQiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 11:25:37.338443', '2025-12-09 11:25:37.338443', '奉先', NULL, '品类十二部', '243810623721380557');
|
||||
INSERT INTO public."User" VALUES ('40d2a02a-860e-4ae2-91f1-0a6f628bb4b8', 'dingtalk_1ZRRjthGGMkUk9TTWiiD0lgiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 11:45:41.636369', '2025-12-09 11:45:41.636369', '苏若兰', NULL, '品类六十八部', '13226527631200418');
|
||||
INSERT INTO public."User" VALUES ('9d3bf253-760c-4e03-9e68-63766bac562b', 'dingtalk_eDRwADiSiPHfVrDYrhJnPFlwiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 17:25:45.916885', '2025-12-09 17:25:45.916885', '刑天', NULL, '淘系三组', '1623718211552566');
|
||||
INSERT INTO public."User" VALUES ('a60772cf-c355-464e-a986-99abcc56633d', 'dingtalk_C6iStSskb0CsUk9TTWiiD0lgiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 13:31:02.701206', '2025-12-10 13:31:02.701206', '李逍遥', NULL, '品类十部', '15901944378911263');
|
||||
INSERT INTO public."User" VALUES ('4499eec8-9677-4fed-ac8a-8fe6668cf43b', 'dingtalk_V14GuONjVytNkyRwCrgDvQiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 14:33:12.825797', '2025-12-10 14:33:12.825797', '班超', NULL, '淘系一组', '16880890842004419');
|
||||
INSERT INTO public."User" VALUES ('12898266-fb91-4d97-8360-c795a0745240', 'dingtalk_1JScgKfTzx5NpZ6rxgc2hAiEiE@dingtalk.local', '', 'regular', true, '2025-12-11 10:27:32.588935', '2025-12-11 10:27:32.588935', '施泽', NULL, '京东二组', '17113303160282513');
|
||||
INSERT INTO public."User" VALUES ('14b31c35-23cd-435a-a022-845ebe156324', 'dingtalk_OkhiilB3c4nPLDIeWbwv8zwiEiE@dingtalk.local', '', 'regular', true, '2025-12-11 13:19:13.29331', '2025-12-11 13:19:13.29331', '晚翠', NULL, '摄影中心', '17639482453946077');
|
||||
INSERT INTO public."User" VALUES ('1e8be077-c24a-4e2a-a9ae-b4eeb81f8b5e', 'dingtalk_PQjfN4UflOITsW4NiP5cwTgiEiE@dingtalk.local', '', 'regular', true, '2025-12-11 14:37:38.608018', '2025-12-11 14:37:38.608018', '斗战胜佛', NULL, '淘系一组', '16577878064611841');
|
||||
INSERT INTO public."User" VALUES ('cca0752c-bf46-4cdb-b4dd-2b69611437cc', 'dingtalk_7yu99ljrVgBdZHaWzl1pXAiEiE@dingtalk.local', '', 'regular', true, '2025-12-12 14:00:49.810518', '2025-12-12 14:00:49.810518', '尧姜', NULL, '运营六部', '17043334026453115');
|
||||
INSERT INTO public."User" VALUES ('34551bf4-aa5c-4d72-b6cd-9b20a57a9504', 'dingtalk_wpdiPvImPkZNdskXiPrBcKRQiEiE@dingtalk.local', '', 'regular', true, '2025-12-15 16:21:38.426635', '2025-12-15 16:21:38.426635', '青松', NULL, '运营二部', '17542713018726880');
|
||||
INSERT INTO public."User" VALUES ('1846d3aa-1a2a-4c3b-a243-8e7a6cdd3f1e', 'dingtalk_UyLAHSpLOiPHLEHxmpHUvqwiEiE@dingtalk.local', '', 'regular', true, '2025-12-16 10:11:51.459782', '2025-12-16 10:11:51.459782', '雅琴', NULL, '品类十六部', '17452003895697433');
|
||||
INSERT INTO public."User" VALUES ('ee4da307-1749-4959-98cf-a993e0bd2819', 'dingtalk_ZRh7oiSBKciP1PXacxHb8SKQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:25:47.49305', '2025-12-08 10:25:47.49305', '龙葵', NULL, '品类五十六部', '16339148587495518');
|
||||
INSERT INTO public."User" VALUES ('27a54697-0c43-4c3d-8ba7-db71548cdea6', 'dingtalk_TlJppt0qIbWSVQiPMeFT0dwiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 14:59:49.99367', '2025-12-08 14:59:49.99367', '暮雪', NULL, '亿家达组', '17391512199229301');
|
||||
INSERT INTO public."User" VALUES ('64eb60fd-9429-480d-ad2f-0e85ba5aa1c3', 'dingtalk_tjZTA9H1YD8v4o8xEmfLhQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:17:00.495697', '2025-12-08 10:17:00.495697', '禹锡', NULL, '品类三十八部', '17623924033571200');
|
||||
INSERT INTO public."User" VALUES ('8a7ceef8-39b2-4723-9e9d-e359e86d2621', 'dingtalk_wz3wlGqViPBQ32giiOughUBQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 16:38:18.836163', '2025-12-08 16:38:18.836163', '清寒', NULL, '运营五部 / 运营三部', '17168597117165785');
|
||||
INSERT INTO public."User" VALUES ('0df6f4b7-5384-45b7-9f17-37a0ec476af2', 'dingtalk_vqGE7pkRHb8ii7wbHpPr5YQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 17:22:40.816573', '2025-12-08 17:22:40.816573', '白泽', NULL, '运营六部', '09061861519024');
|
||||
INSERT INTO public."User" VALUES ('f138bcb0-c43f-4886-b8eb-d037f932dd67', 'admin@example.com', '$2a$10$HDgWl7.1zW8IzVErVa22YeokKf3x9cQojUqMaWgPEDAbHK38GQg4K', 'admin', true, '2025-12-04 21:25:13.731088', '2025-12-04 21:25:13.731088', NULL, NULL, NULL, NULL);
|
||||
INSERT INTO public."User" VALUES ('2b84d217-db54-49f3-9b36-1f58f974d924', 'admin@example.com', '$2a$10$0IELO.iR07hTBbCbY4hbw.AlFUEkIEMN7kUZIc1C4CQdWGD5Op.B6', 'admin', false, '2025-12-04 19:50:53.38825', '2025-12-07 10:44:55.768', NULL, NULL, NULL, NULL);
|
||||
INSERT INTO public."User" VALUES ('e9c28557-def4-4120-b225-5ab77a37bfe6', 'dingtalk_CLyrHs2OwKnA5ulPAiPcAogiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 09:13:31.89219', '2025-12-08 09:13:31.89219', '旭尧', NULL, '淘系一组', '1763343849345899');
|
||||
INSERT INTO public."User" VALUES ('2234f22e-783e-4cc3-b533-c02982a7e66f', 'dingtalk_4y2eiicE1knf6wYRiSZu0dXgiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 09:13:51.316048', '2025-12-08 09:13:51.316048', '芳华', NULL, '品类二十一部', '17633438898945472');
|
||||
INSERT INTO public."User" VALUES ('22278321-4cd9-45c6-a4c6-fdb7b2647f70', 'dingtalk_swHSmIs7ZdITsW4NiP5cwTgiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 09:55:16.426883', '2025-12-08 09:55:16.426883', '王也', NULL, '品类九部', '1665021605078108');
|
||||
INSERT INTO public."User" VALUES ('ba823481-a455-43a6-be43-93f1ee6c3fb9', 'dingtalk_LiiCfnNjMORSiSvStBMrhiSEgiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 09:35:03.433776', '2025-12-08 09:35:03.433776', '独步', NULL, '淘系二组', '17591094184297384');
|
||||
INSERT INTO public."User" VALUES ('b0eb36d8-5ade-4b4d-a50d-5c76cf8c01cc', 'dingtalk_pmzP16opOFyH8qaH8pAtIQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:28:43.987786', '2025-12-08 10:28:43.987786', '悦画', NULL, '卓禾组', '17566898369198405');
|
||||
INSERT INTO public."User" VALUES ('a94ea07a-a45b-4959-a934-b05e0c5627d3', 'dingtalk_GxKFiibyvAmRT90WZTXWqBQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 09:46:34.127171', '2025-12-08 09:46:34.127171', '晴霞', NULL, '淘系组', '17633442133193193');
|
||||
INSERT INTO public."User" VALUES ('7e7a80d8-e3f3-4571-9ae8-39fceb5711d8', 'dingtalk_iSBULLHfcrfga48OHPC5ymwiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:01:51.314098', '2025-12-08 10:01:51.314098', '陈圆圆', NULL, '运营一部', '17488278053261454');
|
||||
INSERT INTO public."User" VALUES ('181c4c81-42d4-42dd-9985-157d0a16f2d1', 'dingtalk_zfdOC8LR1wID7oFXJeyKiSgiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:27:49.814627', '2025-12-08 10:27:49.814627', '钰岚', NULL, '运营一部', '17101207724815588');
|
||||
INSERT INTO public."User" VALUES ('d7ae8609-561e-49fd-909d-93234d2b86e5', 'dingtalk_VBXkWL0HtRZiiPYPVFI3fkgiEiE@dingtalk.local', '', 'regular', true, '2025-12-23 11:24:25.114594', '2025-12-23 11:24:25.114594', '轻尘', NULL, '运营二部', '17092594707145802');
|
||||
INSERT INTO public."User" VALUES ('9950fb7f-02b9-44ef-9dfc-1ab037ccaea8', 'dingtalk_MIHMFvDY8BMTsW4NiP5cwTgiEiE@dingtalk.local', '', 'regular', true, '2025-12-19 17:17:12.435232', '2025-12-19 17:17:12.435232', '苏蕙', NULL, '平面视觉二组', '1655082311725770');
|
||||
INSERT INTO public."User" VALUES ('90ec379a-a458-4b1e-9448-902a692c4b63', 'dingtalk_0c8wzpXHYPz9P0Utii7Af9QiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 11:24:23.022552', '2025-12-08 11:24:23.022552', '承枫', NULL, '品类一部', '17210929413438452');
|
||||
INSERT INTO public."User" VALUES ('2575bddb-a531-4e6e-9340-f4b3d6f33d48', 'dingtalk_2EmboLlZPP8v4o8xEmfLhQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 13:22:44.665586', '2025-12-08 13:22:44.665586', '落月', NULL, '品类八十八部', '1739755902239421');
|
||||
INSERT INTO public."User" VALUES ('6a0cbd3c-c991-4fe6-9d88-b0ced0b8310c', 'dingtalk_19d3eXNDc5ii21zQuwgsVuQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:02:51.325068', '2025-12-08 10:02:51.325068', '飘渺', NULL, '运营一部', '17452004035549070');
|
||||
INSERT INTO public."User" VALUES ('8ebf5b34-6d69-44e7-8fea-a9e89a23847a', 'dingtalk_YdTOYD0lKW0TsW4NiP5cwTgiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:03:08.448215', '2025-12-08 10:03:08.448215', '杜牧', NULL, '运营一部', '15894223763664134');
|
||||
INSERT INTO public."User" VALUES ('31038203-225c-4e3f-9e36-a8d8adfc5992', 'dingtalk_fu1cJquDWjOuriSr29VkWjAiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:03:11.984215', '2025-12-08 10:03:11.984215', '殷离', NULL, '运营一部', '17391511054476511');
|
||||
INSERT INTO public."User" VALUES ('f5f65389-4ecd-457b-b481-8d1c1ab361ce', 'dingtalk_ybUCVfmNSaJPXacxHb8SKQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:03:12.721535', '2025-12-08 10:03:12.721535', '相如', NULL, '运营六部', '17627384545801410');
|
||||
INSERT INTO public."User" VALUES ('a0d1add6-b88e-45cf-bf6f-c975468ee171', 'dingtalk_HBVAdjmtQxCMIgQVciPiSZGwiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:05:20.342521', '2025-12-08 10:05:20.342521', '落霞', NULL, '品类三十六部', '17609235997056226');
|
||||
INSERT INTO public."User" VALUES ('7b1a92e7-61a8-4572-9588-7e409096b7b1', 'dingtalk_gjE9wEcIWEJNkyRwCrgDvQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:06:19.298313', '2025-12-08 10:06:19.298313', '白浅', NULL, '策划', '184107156836731086');
|
||||
INSERT INTO public."User" VALUES ('254c5760-9155-4677-a6ea-59c73162685f', 'dingtalk_DLXG9s0zbRiPTZIVBhVRW4QiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:06:20.77468', '2025-12-08 10:06:20.77468', '伏月', NULL, '亿家达组', '17216117884661866');
|
||||
INSERT INTO public."User" VALUES ('a1335915-405d-4834-bebd-1c9be3b229c4', 'dingtalk_FDBYL5b1tiiU32giiOughUBQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:08:29.740658', '2025-12-08 10:08:29.740658', '谢危', NULL, '淘系一组', '15932239831171241');
|
||||
INSERT INTO public."User" VALUES ('910a0731-7982-40be-b4a6-4fe0b2ba7356', 'dingtalk_IKii4uxdNiiheiSvStBMrhiSEgiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:12:44.519604', '2025-12-08 10:12:44.519604', '步惊云', NULL, '视觉四部', '16187937724871702');
|
||||
INSERT INTO public."User" VALUES ('8b1532fa-c98f-4f55-8998-127b81748859', 'dingtalk_QQy3w4wWiiTiirutyJIniiPFgiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:27:29.300477', '2025-12-08 10:27:29.300477', '丹桂', NULL, '策划', '1755739741988945');
|
||||
INSERT INTO public."User" VALUES ('537171b5-004c-481a-b608-3399cbf925f9', 'dingtalk_pJNHUoS9ygwf2p58bsuZxgiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:32:16.71328', '2025-12-08 10:32:16.71328', '逸楼', NULL, '亿家达组', '17502969926044619');
|
||||
INSERT INTO public."User" VALUES ('84b04b95-cdf8-4324-989d-f2437d236e6b', 'dingtalk_7viiiPiivke6rvmtWCeR6B95giEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:32:44.884382', '2025-12-08 10:32:44.884382', '双全', NULL, '策划', '17560856302955195');
|
||||
INSERT INTO public."User" VALUES ('23d317ff-b3a6-4f94-9e53-efe65b5f1aa9', 'dingtalk_4eZDfqIv4EgTsW4NiP5cwTgiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:33:19.723933', '2025-12-08 10:33:19.723933', '风云', NULL, '亿家达组', '1678929594928642');
|
||||
INSERT INTO public."User" VALUES ('aaba5441-a779-4a4b-9c8c-26c712c02227', 'dingtalk_k8XiShwxYiPQmWnzmaii9E6cAiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:35:32.874278', '2025-12-08 10:35:32.874278', '扶苏', NULL, '品类八部', '172808584924365286');
|
||||
INSERT INTO public."User" VALUES ('646f6c35-1faa-454f-a3bc-02eddac9b94d', 'dingtalk_pM6xTiPyAWGpyjbv7eLzWhgiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:41:30.09905', '2025-12-08 10:41:30.09905', '何红药', NULL, '品类二十部', '17633435099363171');
|
||||
INSERT INTO public."User" VALUES ('0df99afd-a719-4968-942f-8123544c49bc', 'dingtalk_2cc8JcLeCL8htRRW6lan4AiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:46:14.128754', '2025-12-08 10:46:14.128754', '雨燕', NULL, '淘系组', '1762738570485650');
|
||||
INSERT INTO public."User" VALUES ('1f844cc6-9d0f-4639-b546-b23883597a87', 'dingtalk_xtZiSe4xsHiPVgv8wq0mZoiiwiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 09:55:24.232018', '2025-12-08 09:55:24.232018', '江澄', NULL, '品类六部', '1617610635671751');
|
||||
INSERT INTO public."User" VALUES ('3c14e7d0-8479-4e71-aceb-aa0219f96097', 'dingtalk_4chz4ii2TVW4Uk9TTWiiD0lgiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:06:55.294382', '2025-12-08 10:06:55.294382', '兰心', NULL, '卓禾组', '17542713660028975');
|
||||
INSERT INTO public."User" VALUES ('690dc462-8e96-4968-b43f-640b7a81cdda', 'dingtalk_DE6gxuOiSLhov4o8xEmfLhQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:07:10.844143', '2025-12-08 10:07:10.844143', '窦线娘', NULL, '品类六十八部', '17617875912483021');
|
||||
INSERT INTO public."User" VALUES ('65e2b443-a7ee-440e-8a31-bcae642c02e0', 'dingtalk_JiPRKL9HjTy4DvQzSq8GiSUQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:09:57.580899', '2025-12-08 10:09:57.580899', '阿朱', NULL, '品类八十八部', '17502956768312130');
|
||||
INSERT INTO public."User" VALUES ('ee751c4c-13cc-44b1-ada9-cc65cadb0ac9', 'dingtalk_ouWxW9xHCtVsg5xfGiSkzrAiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:10:57.636537', '2025-12-08 10:10:57.636537', '子萱', NULL, '品类八十八部', '17585909684505871');
|
||||
INSERT INTO public."User" VALUES ('2f3ac137-ebde-49a9-8b8d-b8933f5a6918', 'dingtalk_EVccbLfiSeJOhiSuqnQFqvQQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:15:24.387826', '2025-12-08 10:15:24.387826', '白鹤', NULL, '淘系三组', '17391515276131725');
|
||||
INSERT INTO public."User" VALUES ('3792ad4d-af8c-4b61-88fe-b59cea9afaa5', 'dingtalk_iSd6iPiiPhWs1ANpVAiP7Y6PHwiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:19:02.827868', '2025-12-08 10:19:02.827868', '李淳罡', NULL, '品类十八部', '16028130788134712');
|
||||
INSERT INTO public."User" VALUES ('ad6f5de9-6f96-4752-896c-2e9f0ccbe476', 'dingtalk_iPbzM298rke6Wnzmaii9E6cAiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:24:25.204675', '2025-12-08 10:24:25.204675', '华胥', NULL, '品类五十六部', '16384071457616164');
|
||||
INSERT INTO public."User" VALUES ('a2bb403b-fc55-47f0-a764-34bfc6f30ec3', 'dingtalk_eoJPNSHeJXIa48OHPC5ymwiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:25:46.533073', '2025-12-08 10:25:46.533073', '明朗', NULL, '品类五十六部', '17439896930928885');
|
||||
INSERT INTO public."User" VALUES ('a58d145c-37fb-434b-8eb5-1e150bbadb48', 'dingtalk_5F68m6PQy7CWnzmaii9E6cAiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:28:02.624809', '2025-12-08 10:28:02.624809', '银萍', NULL, '亿家达组', '1762738656737692');
|
||||
INSERT INTO public."User" VALUES ('b78fb16c-62d3-4be3-9276-39c9c5c73908', 'dingtalk_BerMP2eDudCJQVdC0DNtrwiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:32:55.597293', '2025-12-08 10:32:55.597293', '青舟', NULL, '京东二组', '17273139090628868');
|
||||
INSERT INTO public."User" VALUES ('6f1617ea-08e7-4f3c-a4d9-995bc8a9ce81', 'dingtalk_Hw8chcpwvv9dskXiPrBcKRQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:36:18.304176', '2025-12-08 10:36:18.304176', '朝花', NULL, '天猫一组', '17524565960729624');
|
||||
INSERT INTO public."User" VALUES ('d8ef2690-ad29-4ade-9762-b4a8724d7191', 'dingtalk_y2gBU9M8jzyQP6nMGLmYkAiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:52:45.271506', '2025-12-08 10:52:45.271506', '卓不凡', NULL, '品类八十八部', '17585911689674045');
|
||||
INSERT INTO public."User" VALUES ('eadc8c70-3d75-4b0e-9c9b-20a3ac3a04a8', 'dingtalk_2m0TeBPVR70UaX5uziPPGFQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 11:22:08.011779', '2025-12-08 11:22:08.011779', '风吟', NULL, '品类一部', '17551356277535712');
|
||||
INSERT INTO public."User" VALUES ('5218dfa3-8496-4ed1-b63b-f706e637ff1d', 'dingtalk_ItLV7ODmkBve3EDO6PzV2wiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 11:39:29.991448', '2025-12-08 11:39:29.991448', '白杨', NULL, '运营一部', '17470141268326787');
|
||||
INSERT INTO public."User" VALUES ('71068861-859e-44b9-aacc-c9b6d9d17bd6', 'dingtalk_02fM66WLaef9P0Utii7Af9QiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 11:46:30.513469', '2025-12-08 11:46:30.513469', '司琳琳', NULL, NULL, NULL);
|
||||
INSERT INTO public."User" VALUES ('80c0e2ff-dccf-46f0-b2b5-13a850da3fa0', 'dingtalk_HsPByro9ugiiiSvStBMrhiSEgiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 11:53:12.104205', '2025-12-08 11:53:12.104205', '精卫', NULL, '品类一部', '284333100037630818');
|
||||
INSERT INTO public."User" VALUES ('09fee040-4f42-4721-8f88-99e2fe26afce', 'dingtalk_uDSBUwt3JIsUk9TTWiiD0lgiEiE@dingtalk.local', '', 'regular', true, '2025-12-19 17:18:45.157222', '2025-12-19 17:18:45.157222', '昭平', NULL, '京东一组', '17107258318527549');
|
||||
INSERT INTO public."User" VALUES ('8342405f-a23b-4508-a796-e67e458a7b59', 'dingtalk_lb1uhlJybScP0fhsLdFTtQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 11:48:01.536408', '2025-12-08 11:48:01.536408', '黄蓉', NULL, '运营一部', '17575540183951711');
|
||||
INSERT INTO public."User" VALUES ('c2e4775b-177c-43c3-9964-2b20f6eb0ea6', 'dingtalk_xjzKtmLcMjCbswbCOUfkCgiEiE@dingtalk.local', '', 'regular', true, '2025-12-12 14:03:22.03614', '2025-12-12 14:03:22.03614', '浣溪', NULL, '运营一部', '17482261388004633');
|
||||
INSERT INTO public."User" VALUES ('e0888c17-5ea3-487d-93bc-592f2a220cd4', 'dingtalk_1K6B3H1ObRzoIfSz00zHawiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 09:22:43.631972', '2025-12-09 09:22:43.631972', '浮萍', NULL, '策划', '17554814045944276');
|
||||
INSERT INTO public."User" VALUES ('1ec8179f-b668-4f70-8df4-8fff29109f4a', 'dingtalk_XOvuUkj7fFJZkXdudmgZwwiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 10:02:43.415442', '2025-12-09 10:02:43.415442', '幽竹', NULL, '京东二组', '17536663230012593');
|
||||
INSERT INTO public."User" VALUES ('c482c440-36ae-413d-9e7c-71c574aa35df', 'dingtalk_rRMduUe1ORPLEHxmpHUvqwiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:32:47.926737', '2025-12-08 10:32:47.926737', '春雷', NULL, '亿家达组', '17406209073144316');
|
||||
INSERT INTO public."User" VALUES ('8ef74e4b-fa10-4553-8468-4b15ffe1d783', 'dingtalk_AoeuVsiPVHLXoIfSz00zHawiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 10:49:01.599098', '2025-12-09 10:49:01.599098', '琼霄', NULL, '品类二十部', '17152174804702140');
|
||||
INSERT INTO public."User" VALUES ('3464678e-0515-426a-a1a2-8e3f61bf8bf6', '441948087@qq.com', '$2a$10$SH.lmW7TXrNBTXOxIMlvZeE3bwCuAm1pn1bYmiQYr70mKK6yjew0S', 'regular', true, '2025-12-09 14:46:13.746867', '2025-12-09 14:46:13.746867', NULL, NULL, NULL, NULL);
|
||||
INSERT INTO public."User" VALUES ('970f5c2a-d568-4f42-8d58-31e0f42dfe4f', 'dingtalk_nYxA8NmMqXOJQVdC0DNtrwiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 11:32:33.417771', '2025-12-09 11:32:33.417771', '天鹿', NULL, 'A组', '09061603068429');
|
||||
INSERT INTO public."User" VALUES ('0767fe71-5c4c-4d84-871b-530d33b4a71c', 'dingtalk_R2QLoDviPiSrMiE@dingtalk.local', '', 'regular', true, '2025-12-20 16:23:25.213671', '2025-12-20 16:23:25.213671', '叶绍袁', NULL, '3D视觉组', '210508461144812');
|
||||
INSERT INTO public."User" VALUES ('897f286e-97e6-4f64-8bab-90875903d75a', 'dingtalk_kfRpQmD5P1lBwiP7xnUP59QiEiE@dingtalk.local', '', 'regular', true, '2025-12-26 10:37:01.428495', '2025-12-26 10:37:01.428495', '芸香', NULL, '策划', '17506430337927562');
|
||||
INSERT INTO public."User" VALUES ('896c022e-1294-439c-a89f-f3753220a808', 'dingtalk_4TOIU4NP7PHj5Pu2k0KutgiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 13:37:36.991859', '2025-12-09 13:37:36.991859', '周公', NULL, '卓禾组', '17083066327204215');
|
||||
INSERT INTO public."User" VALUES ('959c7464-41a9-4e92-b03b-78d09b321b54', 'dingtalk_YVxoxA0WiiZyJ2hHyahISqAiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 09:55:28.310963', '2025-12-10 09:55:28.310963', '春兰', NULL, NULL, NULL);
|
||||
INSERT INTO public."User" VALUES ('4e180794-3109-4a56-a2a6-18f137adbe11', 'dingtalk_VCJmjniPXKkaWnzmaii9E6cAiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 16:34:02.253392', '2025-12-09 16:34:02.253392', '庄姜', NULL, '卓禾组', '16559475123322150');
|
||||
INSERT INTO public."User" VALUES ('754735d8-3074-46d3-842f-5e4792650a2c', 'dingtalk_aAtZmeNq6LVDzxAhPPHbcQiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 16:43:07.308535', '2025-12-09 16:43:07.308535', '雨卉', NULL, '京东一组', '17513333602002300');
|
||||
INSERT INTO public."User" VALUES ('27028657-e9b7-42f0-9cf3-1aab903eaea0', 'dingtalk_XUI98xCCaxkii7wbHpPr5YQiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 10:07:36.127602', '2025-12-10 10:07:36.127602', '汤圆', NULL, '运营八部', '17108987270479832');
|
||||
INSERT INTO public."User" VALUES ('1bf1a8c4-9f18-4f2d-a575-6f427429a119', 'dingtalk_lbZWLf0QdHVJDKc6MvjLRwiEiE@dingtalk.local', '', 'regular', true, '2025-12-23 11:30:54.134692', '2025-12-23 11:30:54.134692', '沙鸥', NULL, '淘系一组', '1765763701508899');
|
||||
INSERT INTO public."User" VALUES ('90b9852e-2706-4a8b-9acd-8c934386151d', 'dingtalk_S2xwONrO2BxrDYrhJnPFlwiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 15:25:42.290499', '2025-12-10 15:25:42.290499', '鸿鹄', NULL, '品类十五部', '09053928548146');
|
||||
INSERT INTO public."User" VALUES ('b6a8e4f0-bc9d-44a9-b37e-7cd83201e18c', 'dingtalk_27ZU9C5YTt0ii7wbHpPr5YQiEiE@dingtalk.local', '', 'regular', true, '2025-12-11 11:23:59.873668', '2025-12-11 11:23:59.873668', '春蕾', NULL, '千之尚组', 'wanghuiqing');
|
||||
INSERT INTO public."User" VALUES ('e86be14b-3d16-41d5-9ea4-35ff6e9d5756', 'dingtalk_9cGEzlMii7pFT90WZTXWqBQiEiE@dingtalk.local', '', 'regular', true, '2025-12-11 17:40:23.490752', '2025-12-11 17:40:23.490752', '幻琪', NULL, '卓禾组', '17394105814419268');
|
||||
INSERT INTO public."User" VALUES ('be0ba2c3-cef0-452a-9a36-76f61b970a97', 'dingtalk_DiSiSUVCmfmqWWnzmaii9E6cAiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 13:56:08.296917', '2025-12-08 13:56:08.296917', '流云', NULL, '运营四部', '17518525470382664');
|
||||
INSERT INTO public."User" VALUES ('a82da25d-ce4f-4e0b-b850-abe55ef85777', 'dingtalk_GbdpZgfJrEebswbCOUfkCgiEiE@dingtalk.local', '', 'regular', true, '2025-12-15 10:46:45.826977', '2025-12-15 10:46:45.826977', '碧云', NULL, '品类二十一部', '17587638865097273');
|
||||
INSERT INTO public."User" VALUES ('a934a2d4-6838-4987-b47b-d50d50a1b20e', 'dingtalk_pFmNrEdg4t0ii7wbHpPr5YQiEiE@dingtalk.local', '', 'regular', true, '2025-12-20 10:38:03.656112', '2025-12-20 10:38:03.656112', '李邦鑫', NULL, '拼多多组', '342937506126600531');
|
||||
INSERT INTO public."User" VALUES ('a244cbcb-6779-4784-8a5f-c9ae68765387', 'dingtalk_o5hDqMiPiiK6IUk9TTWiiD0lgiEiE@dingtalk.local', '', 'regular', true, '2025-12-19 17:26:58.721662', '2025-12-19 17:26:58.721662', '若兰', NULL, '平面视觉六组', '1844085133937822');
|
||||
INSERT INTO public."User" VALUES ('e74b906d-a678-4ac1-8636-713968191e1f', 'dingtalk_WxjnVTndqBgii7wbHpPr5YQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 16:44:04.470307', '2025-12-08 16:44:04.470307', '清泉', NULL, '运营七部', '17448537276524279');
|
||||
INSERT INTO public."User" VALUES ('a7ed80da-ee9e-4e79-9971-77ba996cefe9', 'dingtalk_ygsAAv65cpyCm1q5KPOuegiEiE@dingtalk.local', '', 'regular', true, '2025-12-22 15:16:29.855433', '2025-12-22 15:16:29.855433', '陶然', NULL, '天猫二组', '17660216741673561');
|
||||
INSERT INTO public."User" VALUES ('e5bf8ffe-0d66-49d3-b353-4fbc0f9c8719', 'dingtalk_UyjBIiSTRGMOQde4smonbewiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:36:05.662547', '2025-12-08 10:36:05.662547', '荒', NULL, '卓禾组', '16153379105687702');
|
||||
INSERT INTO public."User" VALUES ('a58cdc8e-9ba1-4d3e-bce6-b545f1d4eae0', 'dingtalk_2G0Ak72JCEDe3EDO6PzV2wiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 11:55:15.57647', '2025-12-08 11:55:15.57647', '云曦', NULL, '京东二组', '17089130628073483');
|
||||
INSERT INTO public."User" VALUES ('483f7cf8-6942-4ab6-af28-a35e7dbba587', 'dingtalk_ZnYYRIgzgoEii7wbHpPr5YQiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 10:52:07.29648', '2025-12-09 10:52:07.29648', '霞姝', NULL, '品类十八部', '16792751152794308');
|
||||
INSERT INTO public."User" VALUES ('49213cb3-4515-45a1-ac9d-a763424e0252', 'dingtalk_A9tEVBQ2PqngTEJqfxZlgwiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 11:54:44.623843', '2025-12-09 11:54:44.623843', '仲夏', NULL, '亿家达组', '17158228526414580');
|
||||
INSERT INTO public."User" VALUES ('765c8d5d-0db5-4b39-82df-d297aa024208', 'dingtalk_CBaQAvUf1a9NkyRwCrgDvQiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 11:58:44.722895', '2025-12-09 11:58:44.722895', '玄女', NULL, '品类二部', '2032083218944376');
|
||||
INSERT INTO public."User" VALUES ('16fa8997-1f67-49ab-86ef-2d88025ff9a4', 'dingtalk_NlzQFBtP65lgv8wq0mZoiiwiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 13:52:27.077716', '2025-12-09 13:52:27.077716', '苏惠', NULL, '京东二组', '1664155211748976');
|
||||
INSERT INTO public."User" VALUES ('05097d61-4370-48eb-9779-12e1168e000f', 'dingtalk_iico26NwFpFkh4GF7U5OFtwiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 15:24:40.544675', '2025-12-09 15:24:40.544675', '夕雾', NULL, '运营一部', '16913722098879250');
|
||||
INSERT INTO public."User" VALUES ('cbcab2f2-f114-44ba-b45c-ca2aa6780e20', 'dingtalk_I47PfhxWZrD5m33kFjt8ZQiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 17:32:09.183949', '2025-12-09 17:32:09.183949', '兰舟', NULL, '运营二部', '17424384163468259');
|
||||
INSERT INTO public."User" VALUES ('9cba6d3b-cd93-4cce-b060-540b78cbbf91', 'dingtalk_NgMJWrY2iSJnLEHxmpHUvqwiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 11:00:22.383994', '2025-12-10 11:00:22.383994', '冰心', NULL, '亿家达组', '17331034440842193');
|
||||
INSERT INTO public."User" VALUES ('b59aa685-bfc8-44c8-be46-d323a277c64e', 'dingtalk_rzwGFiSE1nhngTEJqfxZlgwiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 14:37:02.053874', '2025-12-10 14:37:02.053874', '竹溪', NULL, '淘系三组', '17521112042497264');
|
||||
INSERT INTO public."User" VALUES ('43d5a2a0-1d55-4db8-acd4-313a2c47c96e', 'dingtalk_G4WXiiZPpNCXmroafZPJiPewiEiE@dingtalk.local', '', 'regular', true, '2025-12-11 13:20:50.771907', '2025-12-11 13:20:50.771907', '清扬', NULL, '运营二部', '17642060944605182');
|
||||
INSERT INTO public."User" VALUES ('10f4ebc5-6f57-4607-95e7-88884f900684', 'dingtalk_kglmHz8A2Psv4o8xEmfLhQiEiE@dingtalk.local', '', 'regular', true, '2025-12-11 14:34:49.112462', '2025-12-11 14:34:49.112462', '款冬', NULL, '京东二组', '1721611754979713');
|
||||
INSERT INTO public."User" VALUES ('28a8a843-7ef4-4cc0-a82d-6067a51d6d46', 'dingtalk_UBsj59BT2n2xH6fEWxyYGAiEiE@dingtalk.local', '', 'regular', true, '2025-12-11 16:03:20.826073', '2025-12-11 16:03:20.826073', '双双', NULL, '运营二部', '16568981013054110');
|
||||
INSERT INTO public."User" VALUES ('bd1fc8e2-c3ec-47e0-a92b-381129df9059', 'dingtalk_bSNOrKL4HSYhxdB3EFPsTgiEiE@dingtalk.local', '', 'regular', true, '2025-12-16 10:49:58.379012', '2025-12-16 10:49:58.379012', '王羲之', NULL, '品类三十部', '16468745451672937');
|
||||
INSERT INTO public."User" VALUES ('69941438-7e20-4117-9e0f-8b6b55bfc702', 'dingtalk_CtR7chdZeB8Uk9TTWiiD0lgiEiE@dingtalk.local', '', 'regular', true, '2025-12-16 11:07:38.010868', '2025-12-16 11:07:38.010868', '金桂', NULL, '京东组', '17518514239834');
|
||||
INSERT INTO public."User" VALUES ('2afcc99f-b585-4e00-ac92-770ff7b4e1c0', 'dingtalk_N5V0fgEsAJaiSvStBMrhiSEgiEiE@dingtalk.local', '', 'regular', true, '2025-12-17 13:24:41.31743', '2025-12-17 13:24:41.31743', '马麟', NULL, '淘系一组', '1689557916114590');
|
||||
INSERT INTO public."User" VALUES ('b2866ef7-d685-4433-b70c-841219db100a', 'dingtalk_bu27VAgmWgYwgo81Xg0XhQiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 13:33:19.734206', '2025-12-10 13:33:19.734206', '三红', NULL, '淘系二组', '16689945299736714');
|
||||
INSERT INTO public."User" VALUES ('0439446d-63cb-4fd1-ba16-7ab713ca24c0', 'dingtalk_CJMaTjpUpCGCm1q5KPOuegiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:03:03.947804', '2025-12-08 10:03:03.947804', '雁回', NULL, '运营一部', '17623925027142090');
|
||||
INSERT INTO public."User" VALUES ('2b587165-5516-49a1-a5e1-24650336b430', 'dingtalk_bsaxfPty246bswbCOUfkCgiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 13:20:11.768506', '2025-12-08 13:20:11.768506', '凌云', NULL, '淘系二组', '17490866092668289');
|
||||
INSERT INTO public."User" VALUES ('fee6ee46-2a30-4106-a3fd-f6c59b32bda6', 'dingtalk_rWnwMSWiPLclNkyRwCrgDvQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 12:06:46.371419', '2025-12-08 12:06:46.371419', '伯言', NULL, '视觉三部 / 视觉一部 / 策划六部', '09061617282237');
|
||||
INSERT INTO public."User" VALUES ('124f345e-0196-4687-adaa-f2588a378bcf', 'dingtalk_qnBrItk8diS8TsW4NiP5cwTgiEiE@dingtalk.local', '', 'regular', true, '2025-12-19 18:07:22.942903', '2025-12-19 18:07:22.942903', '张道陵', NULL, '品类五部', '10441557221218754');
|
||||
INSERT INTO public."User" VALUES ('3fb1dafa-08d1-4cec-9f5a-f5ed379665ec', 'dingtalk_d7KvYjKESVciSJHCrQzSn8giEiE@dingtalk.local', '', 'regular', true, '2025-12-08 17:15:20.366389', '2025-12-08 17:15:20.366389', '碧海', NULL, '淘系二组', '17617875649854991');
|
||||
INSERT INTO public."User" VALUES ('1deaebf0-7e35-4287-a03a-3b0f06a4f175', 'dingtalk_ml2M1LXq1zINpVAiP7Y6PHwiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 15:27:39.824317', '2025-12-08 15:27:39.824317', '陈芝豹', NULL, '品类十三部', '16266835558348369');
|
||||
INSERT INTO public."User" VALUES ('af6ade6c-6742-4129-a6e9-f833d65bcdea', 'dingtalk_9AyahOKVlQSWnzmaii9E6cAiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 13:34:23.828729', '2025-12-08 13:34:23.828729', '墨兮', NULL, '京东一组', '16950003962912569');
|
||||
INSERT INTO public."User" VALUES ('d293fbba-0550-434e-be18-1d62de0c8f79', 'dingtalk_ocT7UndcIXsTsW4NiP5cwTgiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 13:35:24.071403', '2025-12-08 13:35:24.071403', '时令', NULL, '无双组', '125652353237720459');
|
||||
INSERT INTO public."User" VALUES ('9c1660b8-c280-46b8-9049-fe75dd4be1bb', 'dingtalk_FdxZy88SL3vozGg2f9I27AiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 13:38:06.21934', '2025-12-08 13:38:06.21934', '容若', NULL, '京东二组', '15927926988082711');
|
||||
INSERT INTO public."User" VALUES ('e33116b7-f6b6-4de9-b6d8-7339a60c90cf', 'dingtalk_oHSRzxZ5klEP0fhsLdFTtQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 15:33:10.360965', '2025-12-08 15:33:10.360965', '式微', NULL, '运营一部', '17103809221412057');
|
||||
INSERT INTO public."User" VALUES ('d18a97c1-1ba2-4e6c-bb2e-ecb74a213976', 'dingtalk_xaHIKEtlm6iiQP6nMGLmYkAiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 16:21:44.547423', '2025-12-08 16:21:44.547423', '浅萍', NULL, '淘系一组', '17633437234099206');
|
||||
INSERT INTO public."User" VALUES ('dd3d036f-06c1-4b45-aeda-1ddb8fe6f423', 'dingtalk_QRawlIiPyFhtBwiP7xnUP59QiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 13:10:22.449689', '2025-12-08 13:10:22.449689', '李沅芷', NULL, '卓禾组', '1655687577649658');
|
||||
INSERT INTO public."User" VALUES ('f47b8cb8-9ecb-4bb3-8443-548dc4555d7e', 'dingtalk_dXk2C1DwJbdgv8wq0mZoiiwiEiE@dingtalk.local', '', 'regular', true, '2025-12-20 13:23:55.997585', '2025-12-20 13:23:55.997585', '翼德', NULL, '淘系二组', '16067903317641947');
|
||||
INSERT INTO public."User" VALUES ('54e922a6-a696-4fbd-a604-b532535b932d', 'dingtalk_XOVERTIYgexoFo9qJu1YlwiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 14:03:32.419388', '2025-12-08 14:03:32.419388', '镜清', NULL, '淘系一组', '17533216530826806');
|
||||
INSERT INTO public."User" VALUES ('3c43c0c6-ae83-408f-b50d-29aa60e901e4', 'dingtalk_FqCqY9dNFtKiSvStBMrhiSEgiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 14:07:53.036615', '2025-12-08 14:07:53.036615', '婴勺', NULL, '京东一组', '16925809593737910');
|
||||
INSERT INTO public."User" VALUES ('b591f961-1e99-4703-b2d7-e8868c9e368c', 'dingtalk_G8a0YHtSAFAQ6zzGzsEKDQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 14:15:16.23695', '2025-12-08 14:15:16.23695', '醉夏', NULL, '淘系组', '17482234405366158');
|
||||
INSERT INTO public."User" VALUES ('7ac48492-3fd8-43e7-a238-48193dab28d2', 'dingtalk_XmViSiSf11y6mTZIVBhVRW4QiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 14:37:53.070592', '2025-12-08 14:37:53.070592', '念念', NULL, '淘系组', '17403617016831487');
|
||||
INSERT INTO public."User" VALUES ('fcd09394-80d1-48cc-9c08-c78a0e2fb483', 'dingtalk_7dvmPVrNsTbLEHxmpHUvqwiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 14:47:57.527651', '2025-12-08 14:47:57.527651', '风骚', NULL, '淘系组', '17506424333714444');
|
||||
INSERT INTO public."User" VALUES ('cd06f126-90cd-4d0c-8d40-97bd415feda7', 'dingtalk_JAkBLoLFyvKh9U66iitTiSYgiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 15:10:56.362294', '2025-12-08 15:10:56.362294', '银汉', NULL, '运营三部', '1763344136213335');
|
||||
INSERT INTO public."User" VALUES ('d500949e-bc0c-406a-a0d0-b96d88e0a0a0', 'dingtalk_spmXYVZUbTXnFbtBGZqZ1wiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 14:07:41.771991', '2025-12-08 14:07:41.771991', '天殇', NULL, NULL, NULL);
|
||||
INSERT INTO public."User" VALUES ('eda4a64d-8df1-4d78-95a3-7203c7e2a3cb', 'dingtalk_QiSBmXZCZIM1yjbv7eLzWhgiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 14:53:54.940177', '2025-12-08 14:53:54.940177', '玥光', NULL, '品类二十部', '17496926595627973');
|
||||
INSERT INTO public."User" VALUES ('bc9db6d5-97c4-4808-9f21-a01536b5d180', 'dingtalk_cqj22Go7Az9NkyRwCrgDvQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 15:32:06.861475', '2025-12-08 15:32:06.861475', '阿珂', NULL, '品类二十一部', '1865650508684960');
|
||||
INSERT INTO public."User" VALUES ('6ff0568a-8a5e-4fc4-9732-ae67742d5776', 'dingtalk_NaGf1FTrQx8OO2sE3ciiXdQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 15:36:13.355929', '2025-12-08 15:36:13.355929', '紫遥', NULL, '运营五部', '17442488731912979');
|
||||
INSERT INTO public."User" VALUES ('5f66eb89-7cc1-424a-919a-e4ae15501ded', 'dingtalk_Mclb5RRU1iPRT90WZTXWqBQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 15:37:09.99406', '2025-12-08 15:37:09.99406', '星隅', NULL, '京东一组', '17083066976578870');
|
||||
INSERT INTO public."User" VALUES ('8a212068-c572-4f31-b127-adc75e9abcbd', 'dingtalk_k9yum9UxIHdh7ya8a7jhpQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 15:50:36.015316', '2025-12-08 15:50:36.015316', '弘文', NULL, '亿家达组', '17496921371624487');
|
||||
INSERT INTO public."User" VALUES ('54d99c0e-2723-41d9-a83a-ede03e334603', 'dingtalk_cAfFKsmXqUG21zQuwgsVuQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 16:29:27.810371', '2025-12-08 16:29:27.810371', '洛神', NULL, '策划五部', '123636246738744518');
|
||||
INSERT INTO public."User" VALUES ('6615d83d-2051-4755-bbf2-4a6fc94f81a4', 'dingtalk_x0TxiPumjDddrDYrhJnPFlwiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 16:41:45.748633', '2025-12-08 16:41:45.748633', '子芩', NULL, '运营七部', '19420011141221252');
|
||||
INSERT INTO public."User" VALUES ('4c4e8135-c986-4fc9-9829-59df73ffd5df', 'dingtalk_NBVliPwfEX4uWnzmaii9E6cAiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 16:42:54.525313', '2025-12-08 16:42:54.525313', '贾宝玉', NULL, 'B组', '1613956121582779');
|
||||
INSERT INTO public."User" VALUES ('c38773fb-ef54-4fa0-a169-e1be939ff111', 'dingtalk_XZcRKWAQv0eJQVdC0DNtrwiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 16:43:13.799496', '2025-12-08 16:43:13.799496', '九尾狐', NULL, '淘系组', '143965294623586931');
|
||||
INSERT INTO public."User" VALUES ('53110e48-a5fc-4199-932c-5ebede35312b', 'dingtalk_FZFOD1tqeVoUk9TTWiiD0lgiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 16:44:17.45231', '2025-12-08 16:44:17.45231', '君子', NULL, '运营七部', '17572943882276811');
|
||||
INSERT INTO public."User" VALUES ('9ee6d379-88c1-4349-a098-b3681f3ca734', 'dingtalk_r4ZIJfdwAlfIGrpkaYBlkwiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 17:09:26.720736', '2025-12-08 17:09:26.720736', '姜且', NULL, '品类十五部', '16928400407881062');
|
||||
INSERT INTO public."User" VALUES ('64eb81ac-986f-496a-90c5-614a741fe423', 'dingtalk_CNfTdqBEu8hNkyRwCrgDvQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 11:55:19.50435', '2025-12-08 11:55:19.50435', '诸葛孔明', NULL, '亿家达组', '296055386826252843');
|
||||
INSERT INTO public."User" VALUES ('988db6f2-684f-4b14-a309-0d5bb11f3be0', 'dingtalk_YTIZ208Z00UDvQzSq8GiSUQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 11:58:14.550764', '2025-12-08 11:58:14.550764', '凌波', NULL, '亿家达组', '17515064416289239');
|
||||
INSERT INTO public."User" VALUES ('2aab3ce9-4cde-4549-a72d-5613c511e4e0', 'dingtalk_c00pwUrOWoiiC3h9EiPbucugiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 13:31:53.27697', '2025-12-08 13:31:53.27697', '紫音', NULL, '品类一部', '17573817191377921');
|
||||
INSERT INTO public."User" VALUES ('41a706db-cf4b-4466-8080-c4a1dcc00e43', 'dingtalk_kRR65mDGtiPth7ya8a7jhpQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 13:47:50.361473', '2025-12-08 13:47:50.361473', '白寒枫', NULL, '品类三十九部', '16625997730245105');
|
||||
INSERT INTO public."User" VALUES ('ff73f670-c87c-4c1f-9247-fbb94719123e', 'dingtalk_5fZr6s4IiSF2JQVdC0DNtrwiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 13:57:29.737091', '2025-12-08 13:57:29.737091', '齐静春', NULL, '品类十四部', '215260585620154177');
|
||||
INSERT INTO public."User" VALUES ('5d9e8283-6d3c-4982-ad39-36b108ffae5f', 'dingtalk_AmKDP1LunqwQ6zzGzsEKDQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 14:13:29.407382', '2025-12-08 14:13:29.407382', '仓央嘉措', NULL, '运营六部', '17000124274795436');
|
||||
INSERT INTO public."User" VALUES ('e750c8c4-efb8-49b6-9575-dc44b359dfb1', 'dingtalk_0iSOTxa9ndIAa48OHPC5ymwiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 15:22:31.50313', '2025-12-08 15:22:31.50313', '兰芝', NULL, '品类一部', '17575543003961158');
|
||||
INSERT INTO public."User" VALUES ('47eb2ffe-35d6-4c32-8ca5-0152f286f7f6', 'dingtalk_3QVo1cEznZ2JQVdC0DNtrwiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 16:10:10.101224', '2025-12-08 16:10:10.101224', '风清扬', NULL, '品类二十三部', '16341755332761451');
|
||||
INSERT INTO public."User" VALUES ('2f02e5f1-9971-4a8c-99b2-2a6ea69feb1a', 'dingtalk_miP7SiS1n9cCFNkyRwCrgDvQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 16:12:39.021062', '2025-12-08 16:12:39.021062', '阿瞒', NULL, '品类二十三部', '28401745281219757');
|
||||
INSERT INTO public."User" VALUES ('08c8d274-a933-434e-a308-256a19d8918d', 'dingtalk_9MvRj1QaXzANpVAiP7Y6PHwiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 16:13:57.570403', '2025-12-08 16:13:57.570403', '宋甜儿', NULL, '亿家达组', '17415708764251544');
|
||||
INSERT INTO public."User" VALUES ('9910dabd-be1e-400c-924f-f16e8a5e4446', 'dingtalk_COiig3riP8MmX6wYRiSZu0dXgiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 17:19:13.803534', '2025-12-08 17:19:13.803534', '青荷', NULL, '运营四部', '17454581602992023');
|
||||
INSERT INTO public."User" VALUES ('19358e40-57e8-4151-a863-ad97a892be2f', 'dingtalk_5bbwSiikpwOzdyoOB2yWWeAiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 17:25:02.221293', '2025-12-08 17:25:02.221293', '飘梦', NULL, '运营三部', '17445941222429573');
|
||||
INSERT INTO public."User" VALUES ('a791c0a4-8c50-4e6d-a13e-753009559708', 'dingtalk_16ymryxX4iPiiQP6nMGLmYkAiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 17:34:13.104203', '2025-12-08 17:34:13.104203', '柳影', NULL, '京东一组', '17478775592231421');
|
||||
INSERT INTO public."User" VALUES ('a3437123-492b-42d7-b908-e77f64e60b3e', 'dingtalk_byoEwcmcuYsii7wbHpPr5YQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 17:24:30.808697', '2025-12-08 17:24:30.808697', '阿雨', NULL, '运营六部', '17224749853133112');
|
||||
INSERT INTO public."User" VALUES ('bcd5620f-8624-4caa-a8b8-bb299b64642d', 'dingtalk_oV7YmiSjOZOOuriSr29VkWjAiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 17:29:13.015051', '2025-12-08 17:29:13.015051', '无羡', NULL, '运营一部', '1722216806100384');
|
||||
INSERT INTO public."User" VALUES ('582b6e10-0fff-4447-b1a0-c02e38bc3c3c', 'dingtalk_04FHNiisiPQvcTsW4NiP5cwTgiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 10:17:12.298634', '2025-12-09 10:17:12.298634', '西门吹雪', NULL, '品类三部', '050504695225058236');
|
||||
INSERT INTO public."User" VALUES ('0d31a8b1-d687-491e-a010-2c6d8d35d520', 'dingtalk_SBdABVTN9FiP21zQuwgsVuQiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:44:38.588283', '2025-12-08 10:44:38.588283', '任盈盈', NULL, '运营四部', '16165532533916345');
|
||||
INSERT INTO public."User" VALUES ('cb231f70-1b48-4198-b557-70e0ba7d8800', 'dingtalk_QEAan84mLSiiJQVdC0DNtrwiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 17:35:45.246366', '2025-12-08 17:35:45.246366', '吕雉', NULL, '欧意朗组', '3128111246706337');
|
||||
INSERT INTO public."User" VALUES ('75555073-df45-44c1-9866-01388b7556e1', 'dingtalk_MiixtMK46XHsD7oFXJeyKiSgiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 09:37:05.073754', '2025-12-09 09:37:05.073754', '吴起', NULL, '淘系组', '1756345538060275');
|
||||
INSERT INTO public."User" VALUES ('05d5b048-35c8-4d0b-ad7d-5c358b00911a', 'dingtalk_lExkTJy2RdATsW4NiP5cwTgiEiE@dingtalk.local', '', 'regular', true, '2025-12-19 18:17:10.780439', '2025-12-19 18:17:10.780439', '玉麒麟', NULL, '3D视觉组', '090563040224133278');
|
||||
INSERT INTO public."User" VALUES ('50bc5eee-fede-4a91-be07-e7a1f412d555', 'dingtalk_39M5nUEVLEwiSJHCrQzSn8giEiE@dingtalk.local', '', 'regular', true, '2025-12-19 18:17:08.077601', '2025-12-19 18:17:08.077601', '柳随风', NULL, '3D视觉组', '17572941769733938');
|
||||
INSERT INTO public."User" VALUES ('df6a2747-3e19-4293-bb57-287cc123a96c', 'dingtalk_QwHe3OHOoaEUk9TTWiiD0lgiEiE@dingtalk.local', '', 'regular', true, '2025-12-20 13:38:46.410063', '2025-12-20 13:38:46.410063', '安乔', NULL, '3D视觉组', '16418683537507259');
|
||||
INSERT INTO public."User" VALUES ('1d1fe989-c480-4983-aaf3-d56e214ac587', 'dingtalk_ymDCt81dugUv4o8xEmfLhQiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 10:23:20.790985', '2025-12-09 10:23:20.790985', '陈琳', NULL, '京东二组', '17533216824172713');
|
||||
INSERT INTO public."User" VALUES ('9bea34e8-7521-4df7-a5c8-2196e72079b9', 'dingtalk_U7C3JU5Ok1eCm1q5KPOuegiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 13:40:56.727829', '2025-12-09 13:40:56.727829', '铁心兰', NULL, '品类二十部', '17627383966222835');
|
||||
INSERT INTO public."User" VALUES ('b43951e7-dc40-44c2-b70a-7018a6fa739f', 'dingtalk_bfvoQZ3j7RsD7oFXJeyKiSgiEiE@dingtalk.local', '', 'regular', true, '2025-12-23 13:51:45.186377', '2025-12-23 13:51:45.186377', '听风', NULL, '3D视觉五组', '17548833107994191');
|
||||
INSERT INTO public."User" VALUES ('2335750b-d402-45fd-b92c-c6faa30c4121', 'dingtalk_77p1wED7GV2Wnzmaii9E6cAiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 15:04:34.946583', '2025-12-09 15:04:34.946583', '东坡', NULL, 'B组', '16067855444588468');
|
||||
INSERT INTO public."User" VALUES ('7d04cdbe-7405-40bc-a29b-ddf5a776fcd8', 'dingtalk_P742978QUkFra7mTnhdKdAiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 11:40:37.108914', '2025-12-10 11:40:37.108914', '鹿眠', NULL, '品类十八部', '17058887769059909');
|
||||
INSERT INTO public."User" VALUES ('0dd542a1-8d16-427c-8f69-8f57480ba0b7', 'dingtalk_kiiu1sMt0ngoDvQzSq8GiSUQiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 09:56:37.121282', '2025-12-10 09:56:37.121282', '翠柏', NULL, '淘系组', '17615298470373206');
|
||||
INSERT INTO public."User" VALUES ('f72ebb88-a613-4195-a845-c37ed156df18', 'dingtalk_bFcGcKoPkJsii7wbHpPr5YQiEiE@dingtalk.local', '', 'regular', true, '2025-12-11 13:25:03.406773', '2025-12-11 13:25:03.406773', '陈芳', NULL, '视觉支持', '18484069111226091');
|
||||
INSERT INTO public."User" VALUES ('403a3f4d-1531-408b-8443-df1c63e1883d', 'dingtalk_qqeDnBAHKzWiSvStBMrhiSEgiEiE@dingtalk.local', '', 'regular', true, '2025-12-11 16:26:49.192364', '2025-12-11 16:26:49.192364', '凤年', NULL, '品类二十八部', '16340005661038461');
|
||||
INSERT INTO public."User" VALUES ('b2f2fe31-6338-4a15-91b0-589509a7fd72', 'dingtalk_A4wFwuo0wbxrDYrhJnPFlwiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 17:35:45.840902', '2025-12-08 17:35:45.840902', '武松', NULL, '运营三部', '2462142304780908');
|
||||
INSERT INTO public."User" VALUES ('203dc5a5-3e4c-422a-b3df-e9279223bfbf', 'dingtalk_J0iiNR4mV3yEUk9TTWiiD0lgiEiE@dingtalk.local', '', 'regular', true, '2025-12-15 11:39:37.646853', '2025-12-15 11:39:37.646853', '荀瑶', NULL, '淘系三组', '16024657445802860');
|
||||
INSERT INTO public."User" VALUES ('a10420a4-4bfa-4072-926b-0e1b2199ffcf', 'dingtalk_9uo0uqkHwfjozGg2f9I27AiEiE@dingtalk.local', '', 'regular', true, '2025-12-15 17:41:48.76216', '2025-12-15 17:41:48.76216', '明理', NULL, '运营八部', '17560856329866856');
|
||||
INSERT INTO public."User" VALUES ('cbadc4fe-9a05-484d-9e10-2777f2ab8521', 'dingtalk_ajddn2XLxz0Uk9TTWiiD0lgiEiE@dingtalk.local', '', 'regular', true, '2025-12-16 13:44:27.168591', '2025-12-16 13:44:27.168591', '月卿', NULL, '平面视觉组', '16568983892989658');
|
||||
INSERT INTO public."User" VALUES ('5119c031-d510-4959-af78-07d069ce9f2d', 'dingtalk_H0bqW468niir5m33kFjt8ZQiEiE@dingtalk.local', '', 'regular', true, '2025-12-12 11:25:47.711876', '2025-12-12 11:25:47.711876', '卫庄', NULL, '视频部', '16073030713017985');
|
||||
INSERT INTO public."User" VALUES ('70c725e5-a577-46ef-92f6-e2e29b0a9bdd', 'dingtalk_BcXrShbIQOcii7wbHpPr5YQiEiE@dingtalk.local', '', 'regular', true, '2025-12-22 09:21:14.925967', '2025-12-22 09:21:14.925967', '余笙', NULL, '平面视觉四组', '15966761211205531');
|
||||
INSERT INTO public."User" VALUES ('09b0e629-60b4-4b1c-9400-31012bbe1da2', 'dingtalk_glj1DY7lhPAnscJ5vJiS0YAiEiE@dingtalk.local', '', 'regular', true, '2025-12-24 17:56:48.335743', '2025-12-24 17:56:48.335743', '忆江', NULL, '3D视觉组', '17542711585739763');
|
||||
INSERT INTO public."User" VALUES ('0d8a3e84-7945-4f8a-8d2a-6155ec305817', 'dingtalk_tIuXkeCM0Qca48OHPC5ymwiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 11:55:44.392995', '2025-12-09 11:55:44.392995', '紫竹', NULL, '天猫二组', '17403624061967983');
|
||||
INSERT INTO public."User" VALUES ('77ec0cbb-c241-4add-a4ee-2759bc377d0d', 'dingtalk_w2H6jlsKaEJrDYrhJnPFlwiEiE@dingtalk.local', '', 'regular', true, '2025-12-26 10:01:58.464404', '2025-12-26 10:01:58.464404', '寒月', NULL, '不凡组', '17533215228739199');
|
||||
INSERT INTO public."User" VALUES ('6abbfeb4-281f-4b17-b06a-14c0abe83baa', 'dingtalk_kiSbP8QeOK7EOiPekmGKaOagiEiE@dingtalk.local', '', 'regular', true, '2025-12-26 10:32:54.910564', '2025-12-26 10:32:54.910564', '怀璧', NULL, '品类二十九部', '17566901051904338');
|
||||
INSERT INTO public."User" VALUES ('2a5d3a18-86ed-490f-9df8-39a9912bfc78', 'dingtalk_GNFDriSAyHTKWnzmaii9E6cAiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 10:06:18.443918', '2025-12-08 10:06:18.443918', '曳舞', NULL, '品类十八部', '17554806912862981');
|
||||
INSERT INTO public."User" VALUES ('4617d6fb-86c0-47da-8188-7f850b7f85b8', 'dingtalk_ii65BHmAiPe8Z5haPiPS8zHsAiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 11:17:11.464705', '2025-12-08 11:17:11.464705', '玉峰', NULL, '品类三十部', '17603188872032210');
|
||||
INSERT INTO public."User" VALUES ('109653d7-6445-4d20-a5a9-a6aa2e7b75bf', 'dingtalk_efeZII25jGNZkXdudmgZwwiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 13:31:05.750378', '2025-12-08 13:31:05.750378', '映月', NULL, '淘系二组', '17560854341923565');
|
||||
INSERT INTO public."User" VALUES ('c76f96b7-07b7-4b8e-9a3a-4e17c6e97dc0', 'dingtalk_Hjnfl4qzZiSt5haPiPS8zHsAiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 17:38:08.946456', '2025-12-08 17:38:08.946456', '吕后', NULL, '亿家达组', '17587635279661603');
|
||||
INSERT INTO public."User" VALUES ('c60f0ac2-01a4-4bd8-9a00-a4cd02eecf01', 'dingtalk_RjATK8sZ2ZGWnzmaii9E6cAiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 18:11:20.037478', '2025-12-08 18:11:20.037478', '幼薇', NULL, '品类十六部', '16556885865749054');
|
||||
INSERT INTO public."User" VALUES ('38ab92bb-2cb2-4242-9ee4-282e7be76888', 'dingtalk_84q2lriSIpjpgv8wq0mZoiiwiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 18:15:17.126949', '2025-12-08 18:15:17.126949', '鹏举', NULL, '品类二十四部', '16218204717384953');
|
||||
INSERT INTO public."User" VALUES ('e6bc4c50-faaa-4e4b-8804-8cdb8b60f384', 'dingtalk_EqZfVJ7rXjPoCUKHIMj12wiEiE@dingtalk.local', '', 'regular', true, '2025-12-08 18:36:30.294164', '2025-12-08 18:36:30.294164', '虹影', NULL, '品类二十五部', '1756346035160853');
|
||||
INSERT INTO public."User" VALUES ('e7db9f2b-44fd-4b57-a98d-4f5ae2557774', 'dingtalk_iS0BIRiicQJOWWnzmaii9E6cAiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 10:55:11.06324', '2025-12-09 10:55:11.06324', '虞子期', NULL, '京东一组', '17095156463308025');
|
||||
INSERT INTO public."User" VALUES ('519c3f25-2ee7-4a14-b6af-ce1e0b4a5a97', 'dingtalk_p0K8jKV6gAmiSvStBMrhiSEgiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 11:33:14.596457', '2025-12-09 11:33:14.596457', '丹参', NULL, '亿家达组', '17421752731324945');
|
||||
INSERT INTO public."User" VALUES ('4df0ab65-6e6b-4255-830a-60f5ca47c9ad', 'dingtalk_zu3iPUbDB1CZNkyRwCrgDvQiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 14:46:36.694113', '2025-12-09 14:46:36.694113', '天禄', NULL, '亿家达组', '16323602192662047');
|
||||
INSERT INTO public."User" VALUES ('0e228a90-64f9-42ae-bffd-294a2d2d3117', 'dingtalk_WkcBxbiP52q4Uk9TTWiiD0lgiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 15:25:23.330333', '2025-12-09 15:25:23.330333', '柳永', NULL, '运营一部', '17587653792844963');
|
||||
INSERT INTO public."User" VALUES ('0da6ee2d-6a92-49e5-8e9b-c4eb8088a4b1', 'dingtalk_DhbFUiSfpJxUii7wbHpPr5YQiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 17:10:12.552527', '2025-12-09 17:10:12.552527', '朵拉', NULL, '京东一组', '17234258917688627');
|
||||
INSERT INTO public."User" VALUES ('1fefddc2-b009-453e-bf59-eb5972eafe02', 'dingtalk_W9CkZGphZzdrDYrhJnPFlwiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 17:34:17.996951', '2025-12-09 17:34:17.996951', '独孤伽罗', NULL, '淘系一组', '16577916241113553');
|
||||
INSERT INTO public."User" VALUES ('7fbbdcee-1a57-488e-8c47-233386089768', 'dingtalk_wqiic8Ks9TBiiuriSr29VkWjAiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 13:56:22.920898', '2025-12-10 13:56:22.920898', '禹铸', NULL, '京东二组', '17639479036692854');
|
||||
INSERT INTO public."User" VALUES ('7ce60a91-00ed-4373-8dfa-34e916f71620', 'dingtalk_zwwgiShnq4qO21zQuwgsVuQiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 15:03:20.083504', '2025-12-10 15:03:20.083504', '小昭', NULL, '品类三十五部', '16568984136467784');
|
||||
INSERT INTO public."User" VALUES ('e470cd00-8ec4-449e-aa15-393a4b53bfed', 'dingtalk_iSGd4l2RqxFtoFo9qJu1YlwiEiE@dingtalk.local', '', 'regular', true, '2025-12-10 16:45:23.627358', '2025-12-10 16:45:23.627358', '陆凌', NULL, '亿家达组', '17161694127407306');
|
||||
INSERT INTO public."User" VALUES ('049ec8f7-eb49-4975-90ca-b3eecea43e74', 'dingtalk_wiiwdt3PIvH621zQuwgsVuQiEiE@dingtalk.local', '', 'regular', true, '2025-12-11 11:33:13.508645', '2025-12-11 11:33:13.508645', '息妫', NULL, '天猫二组', '16556877495906826');
|
||||
INSERT INTO public."User" VALUES ('c2a7037e-8c8f-41ef-9585-2098283204ad', 'dingtalk_I99UiiJ7uM7Mii7wbHpPr5YQiEiE@dingtalk.local', '', 'regular', true, '2025-12-11 13:57:00.419978', '2025-12-11 13:57:00.419978', '舒窈', NULL, '京东一组', '16496398995462014');
|
||||
INSERT INTO public."User" VALUES ('9b8aa2d5-bf11-481e-9220-8902a4df58ac', 'dingtalk_iSjKVymviPIZfmtWCeR6B95giEiE@dingtalk.local', '', 'regular', true, '2025-12-11 14:35:27.976644', '2025-12-11 14:35:27.976644', '玉泉', NULL, '京东二组', '17430385846558592');
|
||||
INSERT INTO public."User" VALUES ('9f40b6ff-3e99-49aa-8a50-67f283d0b09b', 'dingtalk_knOS3cfurg3LEHxmpHUvqwiEiE@dingtalk.local', '', 'regular', true, '2025-12-26 11:59:27.250778', '2025-12-26 11:59:27.250778', '玄霜', NULL, '3D视觉组', '1758158930543775');
|
||||
INSERT INTO public."User" VALUES ('2b508890-15c4-4e63-aada-fa10129819af', 'dingtalk_GLP5g4vOziS4UaX5uziPPGFQiEiE@dingtalk.local', '', 'regular', true, '2025-12-26 13:07:29.915281', '2025-12-26 13:07:29.915281', '疏桐', NULL, '淘系二组', '17663670943273198');
|
||||
INSERT INTO public."User" VALUES ('39abce09-ff46-4c9f-bd17-6dbe4f891f2d', 'dingtalk_iSl4EXy7SVx221zQuwgsVuQiEiE@dingtalk.local', '', 'regular', true, '2025-12-09 09:19:38.117319', '2025-12-09 09:19:38.117319', '辰景', NULL, '淘系一组', '16601812663756272');
|
||||
INSERT INTO public."User" VALUES ('c54f4acd-957e-42b8-8275-975d53b89171', 'dingtalk_eyv6B7siSwqr6CcMLJ4b8HwiEiE@dingtalk.local', '', 'regular', true, '2025-12-15 17:22:24.530842', '2025-12-15 17:22:24.530842', '翠玉', NULL, '淘系三组', '17633435503163170');
|
||||
INSERT INTO public."User" VALUES ('a7b59aa8-4a1e-4221-988d-65c29a454814', 'dingtalk_S0n6rtcJXdLmroafZPJiPewiEiE@dingtalk.local', '', 'regular', true, '2025-12-12 14:55:27.665015', '2025-12-12 14:55:27.665015', '白桦', NULL, '品类五十五部', '17654167659368415');
|
||||
INSERT INTO public."User" VALUES ('a5e599a5-bee8-4890-8a9c-c15144622f4a', 'dingtalk_NqtpzYEXg6Q3zRWYFt8QJwiEiE@dingtalk.local', '', 'regular', true, '2025-12-26 16:06:04.292319', '2025-12-26 16:06:04.292319', '观澜', NULL, '亿家达组', '17663670866694015');
|
||||
INSERT INTO public."User" VALUES ('d2c30e78-77a8-4c90-a957-cdb9ef56ac5c', 'dingtalk_LpxHSL2NUMRgv8wq0mZoiiwiEiE@dingtalk.local', '', 'admin', true, '2025-12-08 00:57:39.021873', '2025-12-08 21:42:44.762747', '陆南亭', NULL, '视觉中心 / 智管信息中心 / 品牌策划中心 / 摄影中心', '09061563251220435');
|
||||
INSERT INTO public."User" VALUES ('449abbd6-47b9-4a4b-9999-e800150bbae6', 'dingtalk_8DFXgIRSGLsii7wbHpPr5YQiEiE@dingtalk.local', '', 'regular', true, '2025-12-27 00:17:14.208662', '2025-12-27 00:17:14.208662', '飞天', NULL, '淘系三组', '1741830891876540');
|
||||
|
||||
|
||||
--
|
||||
-- PostgreSQL database dump complete
|
||||
--
|
||||
|
||||
\unrestrict VnfPi1Vtu3a6RlT4Psht10ibtD0tvfcGimkmRoH8rdkluErTcgl0qVYmR6dZtql
|
||||
|
||||
BIN
migration-backup-complete/config-copy.tar.gz
Normal file
BIN
migration-backup-complete/config-copy.tar.gz
Normal file
Binary file not shown.
10
migration-backup-complete/config-copy/AiModel.csv
Normal file
10
migration-backup-complete/config-copy/AiModel.csv
Normal file
@ -0,0 +1,10 @@
|
||||
id,providerId,modelId,displayName,description,supportsVision,supportsImageGen,isEnabled,isDefault,sortOrder,createdAt,updatedAt,capabilities,defaultParams,is_sub_model,parent_model_id,fallbackModelId1,fallbackModelId2
|
||||
ffb5bc96-75f5-4fe4-a99f-608864b795bc,8a968383-f506-4452-9422-b34726505430,volcano-video-master,VIDEO「视频模型」,支持文生视频、图生视频等多种模式,自动选择最佳模型,t,f,t,f,0,2025-12-09 18:30:53.653026,2025-12-09 18:30:53.653026,"{""supportSeed"": true, ""durationRange"": {""max"": 12, ""min"": 2}, ""supportedModes"": [""text-to-video"", ""first-frame"", ""first-last-frame"", ""reference-images""], ""supportedRatios"": [""16:9"", ""4:3"", ""1:1"", ""3:4"", ""9:16"", ""21:9"", ""adaptive""], ""supportWatermark"": true, ""maxReferenceImages"": 4, ""supportCameraFixed"": true, ""supportedResolutions"": [""480p"", ""720p"", ""1080p""], ""supportReturnLastFrame"": true}","{""ratio"": ""16:9"", ""duration"": 5, ""watermark"": true, ""resolution"": ""720p"", ""cameraFixed"": false}",f,,,
|
||||
3dc9c26e-7410-40d6-b6d3-2fa4fec9d396,8a968383-f506-4452-9422-b34726505430,doubao-seedance-1-0-pro-250528,SeedancePro,全功能专业版,支持文生视频、图生视频(首帧/首尾帧),最高支持1080p,t,f,t,f,10,2025-12-09 18:30:53.665138,2025-12-09 18:30:53.665138,"{""supportSeed"": true, ""durationRange"": {""max"": 12, ""min"": 2}, ""supportedModes"": [""text-to-video"", ""first-frame"", ""first-last-frame""], ""supportedRatios"": [""16:9"", ""4:3"", ""1:1"", ""3:4"", ""9:16"", ""21:9""], ""supportWatermark"": true, ""supportCameraFixed"": true, ""supportedResolutions"": [""480p"", ""720p"", ""1080p""], ""supportReturnLastFrame"": true}","{""ratio"": ""16:9"", ""duration"": 5, ""watermark"": true, ""resolution"": ""720p"", ""cameraFixed"": false}",t,ffb5bc96-75f5-4fe4-a99f-608864b795bc,,
|
||||
4fe34457-a3eb-4563-afbe-9fd093251426,8a968383-f506-4452-9422-b34726505430,doubao-seedance-1-0-pro-fast-251015,SeedanceProFast,快速生成版本,支持文生视频、图生视频(首帧),生成速度更快,t,f,t,f,20,2025-12-09 18:30:53.683021,2025-12-09 18:30:53.683021,"{""supportSeed"": false, ""durationRange"": {""max"": 12, ""min"": 2}, ""supportedModes"": [""text-to-video"", ""first-frame""], ""supportedRatios"": [""16:9"", ""4:3"", ""1:1"", ""3:4"", ""9:16"", ""21:9""], ""supportWatermark"": true, ""supportCameraFixed"": false, ""supportedResolutions"": [""480p"", ""720p"", ""1080p""], ""supportReturnLastFrame"": true}","{""ratio"": ""16:9"", ""duration"": 5, ""watermark"": true, ""resolution"": ""720p"", ""cameraFixed"": false}",t,ffb5bc96-75f5-4fe4-a99f-608864b795bc,,
|
||||
e8805ca6-4741-4eda-b800-b2c0d513299f,8a968383-f506-4452-9422-b34726505430,doubao-seedance-1-0-lite-i2v-250428,SeedanceLiteI2V,图生视频轻量版,支持首帧、首尾帧、参考图(1-4张)模式,t,f,t,f,30,2025-12-09 18:30:53.689929,2025-12-09 18:30:53.689929,"{""supportSeed"": true, ""durationRange"": {""max"": 12, ""min"": 2}, ""supportedModes"": [""first-frame"", ""first-last-frame"", ""reference-images""], ""supportedRatios"": [""16:9"", ""4:3"", ""1:1"", ""3:4"", ""9:16"", ""21:9"", ""adaptive""], ""supportWatermark"": true, ""maxReferenceImages"": 4, ""supportCameraFixed"": true, ""supportedResolutions"": [""480p"", ""720p""], ""supportReturnLastFrame"": false}","{""ratio"": ""16:9"", ""duration"": 5, ""watermark"": true, ""resolution"": ""720p"", ""cameraFixed"": false}",t,ffb5bc96-75f5-4fe4-a99f-608864b795bc,,
|
||||
b5b6f9fd-4299-4345-af51-79354bd504eb,8a968383-f506-4452-9422-b34726505430,doubao-seedance-1-0-lite-t2v-250428,SeedanceLiteT2V,文生视频轻量版,专注于文本转视频,成本更低,f,f,t,f,40,2025-12-09 18:30:53.695034,2025-12-09 18:30:53.695034,"{""supportSeed"": true, ""durationRange"": {""max"": 12, ""min"": 2}, ""supportedModes"": [""text-to-video""], ""supportedRatios"": [""16:9"", ""4:3"", ""1:1"", ""3:4"", ""9:16"", ""21:9""], ""supportWatermark"": true, ""supportCameraFixed"": true, ""supportedResolutions"": [""480p"", ""720p"", ""1080p""], ""supportReturnLastFrame"": false}","{""ratio"": ""16:9"", ""duration"": 5, ""watermark"": true, ""resolution"": ""720p"", ""cameraFixed"": false}",t,ffb5bc96-75f5-4fe4-a99f-608864b795bc,,
|
||||
27420787-1851-4cd2-bb53-162592bd345e,7bce5924-bfd2-4e31-9f1d-825bd9d9f8b1,qwen3-vl-plus,千问3「对话模型」,"",f,f,t,t,0,2025-12-05 16:34:19.456083,2025-12-08 10:56:20.592,,,f,,,
|
||||
1b652fc6-02a7-4a78-b7e4-3406232a47f6,259d8c41-8f93-4ee6-bd3d-5ad4301123e3,gpt-5-nano,GTP-5「对话模型」,"",f,f,t,f,0,2025-12-08 18:50:38.600951,2025-12-08 10:56:57.283,,,f,,,
|
||||
138a63c0-f990-406c-a5d2-6b4f6d522120,ee9d756b-1ff5-436c-b1c9-466d8c0ba730,doubao-seedream-4-5-251128,既梦4.5「生图模型」,"",f,t,t,f,0,2025-12-08 17:49:54.015232,2025-12-08 10:56:40.026,,,f,,,
|
||||
6ed69d9f-db86-4012-a1e6-126420aca9e4,adb28b37-f7e1-44e6-832a-66eedc6aa764,nano-banana-pro,香蕉PRO「生图模型」,"",t,t,t,f,0,2025-12-06 20:29:09.746812,2025-12-19 07:12:59.737,,,f,,nano-banana-pro-vt,nano-banana-fast
|
||||
|
8
migration-backup-complete/config-copy/AiProvider.csv
Normal file
8
migration-backup-complete/config-copy/AiProvider.csv
Normal file
@ -0,0 +1,8 @@
|
||||
id,name,type,baseUrl,apiKey,isEnabled,createdAt,updatedAt,updatedBy
|
||||
7bce5924-bfd2-4e31-9f1d-825bd9d9f8b1,阿里云,alibaba,https://dashscope.aliyuncs.com/compatible-mode/v1,sk-6f600183ff504629863fdbdc61d26546,t,2025-12-05 16:33:20.2402,2025-12-05 16:33:20.2402,f138bcb0-c43f-4886-b8eb-d037f932dd67
|
||||
5f933999-a078-437f-80f7-695889f44311,千问本地模型,local,http://192.168.150.22:8001,qwen25_vl_api_key_2024,t,2025-12-06 10:31:32.064657,2025-12-06 10:31:32.064657,2b84d217-db54-49f3-9b36-1f58f974d924
|
||||
259d8c41-8f93-4ee6-bd3d-5ad4301123e3,环科API,openai,https://api.huandutech.com/v1,sk-tMFqWBeV4H4UIoGG1LFAn8wJHUQPnbcujNXL13Q5I7TJ9pY4,t,2025-12-05 16:50:45.04327,2025-12-06 13:05:51.164,2b84d217-db54-49f3-9b36-1f58f974d924
|
||||
0356b492-f34d-4990-8979-eda5238a3737,千问视频,qianwen-video,https://dashscope.aliyuncs.com/api/v1,sk-6f600183ff504629863fdbdc61d26546 ,t,2025-12-07 14:29:31.287175,2025-12-07 14:29:31.287175,2b84d217-db54-49f3-9b36-1f58f974d924
|
||||
ee9d756b-1ff5-436c-b1c9-466d8c0ba730,既梦模型,volcano-vision,https://ark.cn-beijing.volces.com,e72d5f7e-e1d9-4d9b-af9b-01766d93c313,t,2025-12-08 17:47:19.650839,2025-12-08 17:47:19.650839,f138bcb0-c43f-4886-b8eb-d037f932dd67
|
||||
8a968383-f506-4452-9422-b34726505430,火山引擎视频,volcano-video,https://ark.cn-beijing.volces.com/api/v3,e72d5f7e-e1d9-4d9b-af9b-01766d93c313,t,2025-12-09 12:02:51.304599,2025-12-09 12:02:51.304599,d2c30e78-77a8-4c90-a957-cdb9ef56ac5c
|
||||
adb28b37-f7e1-44e6-832a-66eedc6aa764,Gemini中转,gemini,https://grsai.dakka.com.cn,sk-79771fbb57de4f7eb7e2d0bb5b42af54,t,2025-12-06 22:32:46.461097,2025-12-16 11:21:05.813,d2c30e78-77a8-4c90-a957-cdb9ef56ac5c
|
||||
|
2
migration-backup-complete/config-copy/AuthSettings.csv
Normal file
2
migration-backup-complete/config-copy/AuthSettings.csv
Normal file
@ -0,0 +1,2 @@
|
||||
id,dingTalkAppKey,dingTalkAppSecret,isDingTalkEnabled,updatedAt,updatedBy,isRegistrationEnabled,dingTalkOrganizations
|
||||
a191e963-6fa3-42da-a720-afda03242b33,ding1bs1gxwrcfu16x0f,qUmj_gBDzpPEYR3RA3hRqKzwu11a986O-wKfP8V5lDHXn7XJrXxW79KIeP5G-mcY,t,2025-12-09 06:46:33.088,d2c30e78-77a8-4c90-a957-cdb9ef56ac5c,f,[]
|
||||
|
10
migration-backup-complete/config-copy/NavLinks.csv
Normal file
10
migration-backup-complete/config-copy/NavLinks.csv
Normal file
@ -0,0 +1,10 @@
|
||||
id,name,url,order,isEnabled,createdAt,updatedAt,createdBy
|
||||
b4b4d6cd-1703-407f-a721-42b6e89997a4,背景去除,https://yydd.ai/remove_bg.html,0,t,2025-12-07 20:02:42.408499,2025-12-07 20:02:42.408499,f138bcb0-c43f-4886-b8eb-d037f932dd67
|
||||
7374f2df-8c57-4f76-8ae5-622c808bd406,去除水印,https://yydd.ai/watermark-remover.html,0,t,2025-12-07 20:42:15.14062,2025-12-07 20:42:15.14062,f138bcb0-c43f-4886-b8eb-d037f932dd67
|
||||
bba77113-fff6-46b7-b81f-7bc1fb8cc931,视频魔方,https://yydd.ai/video-generator.html,0,t,2025-12-07 20:43:09.74764,2025-12-07 20:43:09.74764,f138bcb0-c43f-4886-b8eb-d037f932dd67
|
||||
ba080487-554a-4365-8ccc-305c7ff234af,商品策划,https://yydd.ai/keyword-analyzer.html,0,t,2025-12-07 20:45:00.005798,2025-12-07 20:45:00.005798,f138bcb0-c43f-4886-b8eb-d037f932dd67
|
||||
a0fe06cc-34a2-4d9c-b816-a269660acfbc,市场数据,https://hq.yucekj.com/,0,t,2025-12-07 20:46:09.209665,2025-12-07 20:46:09.209665,f138bcb0-c43f-4886-b8eb-d037f932dd67
|
||||
2ede3a36-8ba7-490e-88a5-6c34326602c7,数据魔方,http://218.93.9.141:8088,0,t,2025-12-07 20:51:14.825638,2025-12-07 20:51:14.825638,f138bcb0-c43f-4886-b8eb-d037f932dd67
|
||||
418391e8-6d43-41d5-9934-c5bf1cbb6cec,神奇替换,https://yydd.ai/magic-replace-v2.html,0,t,2025-12-07 20:43:47.201898,2025-12-08 03:20:44.512,f138bcb0-c43f-4886-b8eb-d037f932dd67
|
||||
f784ca3b-dc1a-4558-9064-3b5c60b9da43,清晰拓展,https://yydd.ai/home.html,0,t,2025-12-07 21:51:23.775479,2025-12-09 06:20:39.326,f138bcb0-c43f-4886-b8eb-d037f932dd67
|
||||
970cab86-f7a6-4cc8-82b9-0ddb8d38b945,品牌「素材库」,https://3d.yydd.ai,0,t,2025-12-24 09:51:05.848847,2025-12-24 01:51:47.765,d2c30e78-77a8-4c90-a957-cdb9ef56ac5c
|
||||
|
3
migration-backup-complete/config-copy/SiteSettings.csv
Normal file
3
migration-backup-complete/config-copy/SiteSettings.csv
Normal file
@ -0,0 +1,3 @@
|
||||
id,siteName,siteLogo,siteLogoDark,favicon,updatedAt,updatedBy,showAutoModel,usageTimeEnabled,usageTimeStart,usageTimeEnd,usageTimeMessage
|
||||
b0cab85c-6a75-47b9-84e4-2af02ef03072,由壹点AI,"","","",2025-12-27 03:06:25.843,d2c30e78-77a8-4c90-a957-cdb9ef56ac5c,f,t,17:30,23:30,正在升级服务器
|
||||
53b02fe7-190d-4881-a98f-4ba90751342a,由壹点AI,https://s3.1080p.hk/shuzhou/2025/05/18/8ebadf0a7cc34eaea00e8619b8efb827.png,https://s3.1080p.hk/shuzhou/2025/05/18/f6f20d120a4e45aeaae3411fe0000b6a.png,https://s3.1080p.hk/shuzhou/2025/05/18/8ebadf0a7cc34eaea00e8619b8efb827.png,2025-12-26 09:52:29.427,d2c30e78-77a8-4c90-a957-cdb9ef56ac5c,f,f,19:00,23:00,修复生图图片不显示的问题中
|
||||
|
2
migration-backup-complete/config-copy/StorageConfig.csv
Normal file
2
migration-backup-complete/config-copy/StorageConfig.csv
Normal file
@ -0,0 +1,2 @@
|
||||
id,name,type,endpoint,region,bucket,accessKeyId,secretAccessKey,publicUrl,isDefault,isEnabled,createdAt,updatedAt,updatedBy
|
||||
65db07c7-9c3d-427b-99b6-177a7e69b20b,MinIO S3 存储,s3,https://s3.1080p.hk,us-east-1,jsxiangche,AEvT1p0wSNjow3Asu9NV,u8nzFl1S6dNoT5PQaQhkHz8Du6iX0hVnPswtvHhs,https://s3.1080p.hk/jsxiangche,t,t,2025-12-05 21:45:28.908925,2025-12-05 13:45:57.284,2b84d217-db54-49f3-9b36-1f58f974d924
|
||||
|
8
migration-backup-complete/config-copy/SystemSettings.csv
Normal file
8
migration-backup-complete/config-copy/SystemSettings.csv
Normal file
@ -0,0 +1,8 @@
|
||||
id,key,value,updatedAt,updatedBy
|
||||
cb34112b-f528-40b9-bdb4-84e99f0c7518,siteName,"""由壹点AI""",2025-12-07 08:38:27.742,2b84d217-db54-49f3-9b36-1f58f974d924
|
||||
91e39afc-6373-48a9-94e7-40d9200b0377,siteLogo,"""https://s3.1080p.hk/shuzhou/2025/05/18/8ebadf0a7cc34eaea00e8619b8efb827.png""",2025-12-07 08:38:28.093,2b84d217-db54-49f3-9b36-1f58f974d924
|
||||
6ceee557-d7c1-4761-9ec7-aa41bdf20824,favicon,"""https://s3.1080p.hk/shuzhou/2025/05/18/8ebadf0a7cc34eaea00e8619b8efb827.png""",2025-12-07 08:38:28.424,2b84d217-db54-49f3-9b36-1f58f974d924
|
||||
da7fc4df-57eb-4d68-8bbb-fbaf5645977c,logoDark,"""https://s3.1080p.hk/shuzhou/2025/05/18/f6f20d120a4e45aeaae3411fe0000b6a.png""",2025-12-07 08:38:28.738,2b84d217-db54-49f3-9b36-1f58f974d924
|
||||
98fa2563-8f24-4b95-b247-1d44745fa938,logoLight,"""https://s3.1080p.hk/shuzhou/2025/05/18/8ebadf0a7cc34eaea00e8619b8efb827.png""",2025-12-07 08:38:29.072,2b84d217-db54-49f3-9b36-1f58f974d924
|
||||
10a9e655-5260-46ec-af3e-762b2217f8d5,starter_questions,"[""帮我把这张商品图背景换成纯白,突出产品。"", ""给这张图加个促销标签:‘限时折扣5折’"", ""分析最近30天竞品的销量趋势,给我一个简报"", ""为这款新品写一句吸引人的广告语""]",2025-12-07 14:14:51.474,f138bcb0-c43f-4886-b8eb-d037f932dd67
|
||||
ff7cb982-0a01-4e21-8bed-ed4ca606e9c5,login_notification,"{""title"": ""4.0系统更新维护公告"", ""content"": ""系统全面结构优化升级更新,将支持对话记录数据永久保存,支持多模型自由选择。预计维护完成时间约12月8日下午。"", ""enabled"": true}",2025-12-07 18:21:57.858,f138bcb0-c43f-4886-b8eb-d037f932dd67
|
||||
|
324
migration-backup-complete/config-copy/User.csv
Normal file
324
migration-backup-complete/config-copy/User.csv
Normal file
@ -0,0 +1,324 @@
|
||||
id,email,password,role,isActive,createdAt,updatedAt,name,monthlyImageLimit,department,dingtalkUserId
|
||||
df4f8faa-a342-457d-8c1b-4fc15a4307d8,dingtalk_O7wISr7ecjjE86u1WiPkaSQiEiE@dingtalk.local,"",regular,t,2025-12-09 09:38:26.89095,2025-12-09 09:38:26.89095,梧桐,,淘系组,16266845873704112
|
||||
d41a62aa-12dc-4a38-b84c-631ae0ba1239,dingtalk_nmNpeNNENs42PQx77IcwWwiEiE@dingtalk.local,"",regular,t,2025-12-19 16:28:33.99508,2025-12-19 16:28:33.99508,静月,,平面视觉组,17512476822397076
|
||||
20cb4ce1-3b2a-4b3c-8733-51dd5fbcece4,dingtalk_BBP0uqvePgUh4GF7U5OFtwiEiE@dingtalk.local,"",regular,t,2025-12-09 10:34:51.84188,2025-12-09 10:34:51.84188,子宜,,淘系一组,17083066191869685
|
||||
12f7ed23-afaf-48be-a015-d05cca5423aa,dingtalk_PhqmYiirM9D76wYRiSZu0dXgiEiE@dingtalk.local,"",regular,t,2025-12-09 17:35:10.684632,2025-12-09 17:35:10.684632,玄机,,运营二部,17000126455004988
|
||||
4a7baa33-39a3-45df-aeb9-88b768e54ca1,dingtalk_EriSkgnH7UK87Rjv8laxe1QiEiE@dingtalk.local,"",regular,t,2025-12-16 14:02:29.058187,2025-12-16 14:02:29.058187,金宝,,ai视觉部,17581592992805718
|
||||
f0b28f59-323b-4621-a23f-ba8bdb54d4d8,dingtalk_O37v4LfKZ6gii7wbHpPr5YQiEiE@dingtalk.local,"",regular,t,2025-12-19 18:17:18.386629,2025-12-19 18:17:18.386629,云螭,,3D视觉组,17569493868579475
|
||||
0380c175-bf2e-4447-b2de-e7150a706fc8,dingtalk_wDtFoA6a0MKWnzmaii9E6cAiEiE@dingtalk.local,"",regular,t,2025-12-09 10:38:35.195319,2025-12-09 10:38:35.195319,飞鸿,,平面视觉组,17554817262178229
|
||||
6d734963-aec4-4680-b2a1-091986408044,dingtalk_4j5RvTZFAiiFNkyRwCrgDvQiEiE@dingtalk.local,"",regular,t,2025-12-08 10:09:33.500299,2025-12-08 10:09:33.500299,灵飞,,品类六十八部,17551352240137306
|
||||
fdb47c20-678b-42b0-b89f-a7ba8ab92185,dingtalk_6jHrAwq33ZiiqCD5lii4DcDAiEiE@dingtalk.local,"",regular,t,2025-12-08 10:16:13.829378,2025-12-08 10:16:13.829378,荷泽,,亿家达组,17627382170849533
|
||||
107e50f3-a698-40a5-8b86-d38f26c75262,dingtalk_QEOn6KI09IhNkyRwCrgDvQiEiE@dingtalk.local,"",regular,t,2025-12-09 10:44:27.149711,2025-12-09 10:44:27.149711,高适,,淘系一组,16861873465469986
|
||||
eb5ab6f0-5d64-4f0c-a853-5d45d1524c3b,dingtalk_gAiPexuhKiin9gv8wq0mZoiiwiEiE@dingtalk.local,"",regular,t,2025-12-08 11:23:10.731159,2025-12-08 11:23:10.731159,杜衡,,亿家达组,16886061771618396
|
||||
efc100ab-a0ec-471d-abbf-2d893805ce37,dingtalk_mgS6Ct2SagcQ6zzGzsEKDQiEiE@dingtalk.local,"",regular,t,2025-12-09 11:05:01.28532,2025-12-09 11:05:01.28532,夙又,,京东一组,17200568217088978
|
||||
d515d757-5d8c-48b2-946e-5afa9f9279cc,dingtalk_VkSfEbrZ2JUhtRRW6lan4AiEiE@dingtalk.local,"",regular,t,2025-12-09 11:35:13.972696,2025-12-09 11:35:13.972696,王勃,,京东一组,17623926817755463
|
||||
32d0d542-d5bd-44ad-9bbf-315b24ae60d8,dingtalk_H9UGiSeYd1aOhiSuqnQFqvQQiEiE@dingtalk.local,"",regular,t,2025-12-09 13:03:22.451003,2025-12-09 13:03:22.451003,幽翠,,运营八部,17621330632633009
|
||||
2cc970f2-b0fc-4a98-b8fb-20dd55e51dd4,dingtalk_NhQSvo083iSAUk9TTWiiD0lgiEiE@dingtalk.local,"",regular,t,2025-12-09 13:04:04.840836,2025-12-09 13:04:04.840836,风烈,,卓禾组,1762997540564457
|
||||
31462843-0749-4ead-8ead-dd3123c718cf,dingtalk_IBQa6iiWdsXYUk9TTWiiD0lgiEiE@dingtalk.local,"",regular,t,2025-12-09 14:52:16.238413,2025-12-09 14:52:16.238413,苗人凤,,千之尚组,090711333324243255
|
||||
4f8db1c9-de3b-4aab-9830-0d87254650ab,dingtalk_cgtTMAG3A6iiH8qaH8pAtIQiEiE@dingtalk.local,"",regular,t,2025-12-09 15:45:42.636704,2025-12-09 15:45:42.636704,文慧,,运营五部,17587636641139232
|
||||
805e481f-d55f-40a7-849d-315a401723bc,dingtalk_iSZTX1OCYSWE6smPoTUeTFgiEiE@dingtalk.local,"",regular,t,2025-12-10 09:57:49.429644,2025-12-10 09:57:49.429644,李靖,,淘系二组,6262265332679370
|
||||
bf27a527-4111-4e81-ab75-c5ed65fe4807,dingtalk_w3ktrX5coaJrDYrhJnPFlwiEiE@dingtalk.local,"",regular,t,2025-12-10 11:51:24.353596,2025-12-10 11:51:24.353596,劭昱,,京东二组,17152179170674939
|
||||
3f6239ea-2a6c-445d-97a2-9de42843b1e2,dingtalk_Fx2CpUiixdca21zQuwgsVuQiEiE@dingtalk.local,"",regular,t,2025-12-09 10:58:00.054737,2025-12-09 10:58:00.054737,江流儿,,亿家达组,275026000724189155
|
||||
817f5109-b4b1-4ece-b490-bba663ad9057,dingtalk_6pxmn8iSwiPCCJ2hHyahISqAiEiE@dingtalk.local,"",regular,t,2025-12-09 13:51:58.792217,2025-12-09 13:51:58.792217,辛夷,,淘系二组,16650191458016885
|
||||
436e29cd-1d44-45dd-aec2-75e58b65dd1f,dingtalk_LkhfJkHo5gLJRlQ6TiSiPsuAiEiE@dingtalk.local,"",regular,t,2025-12-09 15:43:19.085307,2025-12-09 15:43:19.085307,山山,,运营三部,17162567734539010
|
||||
cbf23523-f55f-498a-ae23-3c01bc560cdb,dingtalk_PZD2iijJSvYyJQVdC0DNtrwiEiE@dingtalk.local,"",regular,t,2025-12-09 17:11:09.645312,2025-12-09 17:11:09.645312,露水,,京东二组,16916328866037067
|
||||
239eb813-7d8d-4ee1-819f-ab73b397e26b,dingtalk_j46SYjXCSe621zQuwgsVuQiEiE@dingtalk.local,"",regular,t,2025-12-10 17:35:32.481449,2025-12-10 17:35:32.481449,明珠,,品类二十五部,17563455986538900
|
||||
c2d01dd7-9205-49a0-bba7-71ac9d9fc97c,dingtalk_ch4ueiPgfSh5h7ya8a7jhpQiEiE@dingtalk.local,"",regular,t,2025-12-11 13:34:52.183688,2025-12-11 13:34:52.183688,语希,,亿家达组,16801393689466298
|
||||
7f22a7dd-fb64-4113-96f1-a227b8363b7d,dingtalk_lpMfHqxIrKCC3h9EiPbucugiEiE@dingtalk.local,"",regular,t,2025-12-11 13:52:54.678126,2025-12-11 13:52:54.678126,青鹧,,京东二组,16441144334318706
|
||||
f2a6c5aa-87fb-409a-b580-7707aec7433f,dingtalk_iS83hrZlsFNBgv8wq0mZoiiwiEiE@dingtalk.local,"",regular,t,2025-12-11 13:58:53.302327,2025-12-11 13:58:53.302327,九穗禾,,京东一组,17028630393891503
|
||||
9691018a-1f2f-4247-872a-f80bc31737c6,dingtalk_1CNiSRnUzaVhNpZ6rxgc2hAiEiE@dingtalk.local,"",regular,t,2025-12-12 15:44:25.163206,2025-12-12 15:44:25.163206,荷香,,京东二组,17527168502097145
|
||||
63035147-9f70-4770-a0c6-93e661a0d917,dingtalk_cVse72XNA5iiWnzmaii9E6cAiEiE@dingtalk.local,"",regular,t,2025-12-08 11:33:20.420211,2025-12-08 11:33:20.420211,五柳,,品类四部,15955542073721266
|
||||
0aced293-85f5-4b76-9266-4461a7f5347a,dingtalk_vEp3UgnIEZfoCUKHIMj12wiEiE@dingtalk.local,"",regular,t,2025-12-08 15:49:11.839751,2025-12-08 15:49:11.839751,万贞儿,,卓禾组,17165139415745835
|
||||
4686827b-2a8d-4815-9895-3ea493d222cc,dingtalk_JEZ91bDLAA4iE@dingtalk.local,"",regular,t,2025-12-10 13:56:26.896786,2025-12-10 13:56:26.896786,上生,,平面视觉组,16097214752721039
|
||||
87ee2d6b-8622-4f92-9b09-edfa6b4bdae7,dingtalk_0wcmM2ucl8M3zRWYFt8QJwiEiE@dingtalk.local,"",regular,t,2025-12-10 15:04:15.973949,2025-12-10 15:04:15.973949,枭,,亿家达组,625818641328758744
|
||||
00951592-f24c-4bf3-b5f0-0a5f8c5237ce,dingtalk_cgN0voiSj5kmQde4smonbewiEiE@dingtalk.local,"",regular,t,2025-12-10 15:10:12.782327,2025-12-10 15:10:12.782327,乐生,,运营一部,17331034531105690
|
||||
7ec217ca-631c-43fa-a377-2861c16109cb,dingtalk_9B7uM5BOtdpJDKc6MvjLRwiEiE@dingtalk.local,"",regular,t,2025-12-11 11:40:49.496531,2025-12-11 11:40:49.496531,芷露,,运营八部,17458056019029513
|
||||
a8bffd5a-6154-4438-9801-ca3b10eaab60,dingtalk_Tm2JbtjVAzIP0fhsLdFTtQiEiE@dingtalk.local,"",regular,t,2025-12-11 14:41:45.260919,2025-12-11 14:41:45.260919,可久,,淘系一组,16889519729177684
|
||||
cbdc1c77-328d-426d-a941-5992b08855b5,dingtalk_LNDArXpHJBz6CcMLJ4b8HwiEiE@dingtalk.local,"",regular,t,2025-12-11 16:35:14.86803,2025-12-11 16:35:14.86803,星桥,,淘系二组,17513333089313806
|
||||
c1fc1b28-8f46-4438-a80d-8a8ad3e9acc7,dingtalk_lAFRrhD7RCqiSvStBMrhiSEgiEiE@dingtalk.local,"",regular,t,2025-12-12 11:30:49.821517,2025-12-12 11:30:49.821517,伏龙鼎,,外贸部,096203475039907687
|
||||
3897cb03-5fb2-429e-8115-9290e6beb7d2,dingtalk_XkElA0JXOLRXJFNPy95ypAiEiE@dingtalk.local,"",regular,t,2025-12-12 15:21:40.656475,2025-12-12 15:21:40.656475,俊义,,品类十五部,16641552187528504
|
||||
e84e0324-d021-4b15-bf3b-527544d7badb,dingtalk_2iP9N2odqDz0ii7wbHpPr5YQiEiE@dingtalk.local,"",regular,t,2025-12-15 13:53:01.284303,2025-12-15 13:53:01.284303,平阳,,亿家达组,16650191858302430
|
||||
74c3d0ed-e9ff-4907-8683-0639270bf648,dingtalk_guRQWZ41BiS5JDKc6MvjLRwiEiE@dingtalk.local,"",regular,t,2025-12-16 09:38:36.37934,2025-12-16 09:38:36.37934,莞尔,,运营八部,17433851697492723
|
||||
468ac0e7-646a-487c-b721-3bcb79cbf0e4,dingtalk_aHBvETQIiPM4wgo81Xg0XhQiEiE@dingtalk.local,"",regular,t,2025-12-08 09:25:12.537225,2025-12-08 09:25:12.537225,青帝,,品类二十一部,17502970641672903
|
||||
bd2e4bdf-f2f4-4680-ac86-a95c401e82d0,dingtalk_kQr8iiiPQX2Mo32giiOughUBQiEiE@dingtalk.local,"",regular,t,2025-12-08 11:52:22.40146,2025-12-08 11:52:22.40146,霍青桐,,卓禾组,17617875608616342
|
||||
6944b3ab-8681-4ff0-aa12-a834f4ecd85e,dingtalk_DYEYLk4O2HxZkXdudmgZwwiEiE@dingtalk.local,"",regular,t,2025-12-08 13:42:03.536435,2025-12-08 13:42:03.536435,宋文通,,品类二十一部,17242895639322526
|
||||
f1f48049-c099-42cc-ab5a-b8aace61746c,dingtalk_GdPz5jii6FUwii7wbHpPr5YQiEiE@dingtalk.local,"",regular,t,2025-12-08 15:05:12.885278,2025-12-08 15:05:12.885278,子美,,淘系组,16559465701157896
|
||||
11c41962-e656-4a27-83ee-b54983ba40a5,dingtalk_1jqWUcdRWiiZdZHaWzl1pXAiEiE@dingtalk.local,"",regular,t,2025-12-10 09:57:49.450205,2025-12-10 09:57:49.450205,望云,,品类六部,17651581202642488
|
||||
4eb9e518-4ffc-449f-9e4b-9897063ae5d5,dingtalk_7IcPtiiNdcXVSQrC3mqoewgiEiE@dingtalk.local,"",regular,t,2025-12-19 16:28:59.175113,2025-12-19 16:28:59.175113,静颜,,策划,17524579524462402
|
||||
db8edb0b-f87c-4b5f-9ea9-a91b38f81b83,dingtalk_Qiia04u3u1SHe3EDO6PzV2wiEiE@dingtalk.local,"",regular,t,2025-12-09 09:31:31.674678,2025-12-09 09:31:31.674678,青霄,,策划,1755739960662638
|
||||
e159280f-3515-4760-b762-59ad42070e10,dingtalk_B8739pQ4QTkTsW4NiP5cwTgiEiE@dingtalk.local,"",regular,t,2025-12-09 11:47:23.294958,2025-12-09 11:47:23.294958,萧何,,品类二十一部,1620608755175278
|
||||
5487e73b-61cf-4a1a-b2f3-0e0aa1f85a49,dingtalk_EF7z3msjBpiirutyJIniiPFgiEiE@dingtalk.local,"",regular,t,2025-12-09 15:11:54.414122,2025-12-09 15:11:54.414122,丹木,,卓禾组,17095160157328101
|
||||
b8f7a28e-e5d4-4f3a-a179-5cae37272047,dingtalk_K3jg50mRGfLKQb32omPI1giEiE@dingtalk.local,"",regular,t,2025-12-09 15:55:12.058222,2025-12-09 15:55:12.058222,幽兰,,无双组,17575541380071464
|
||||
c378cb09-7ee0-4787-99fa-566773a1600c,dingtalk_KOEo8iSVs48uiSvStBMrhiSEgiEiE@dingtalk.local,"",regular,t,2025-12-12 11:35:59.519616,2025-12-12 11:35:59.519616,揽胜,,平面视觉组,17536693691141592
|
||||
b930d92f-9042-4fa6-b854-8333a8ff2e44,dingtalk_ynOx0jWeDuTA5ulPAiPcAogiEiE@dingtalk.local,"",regular,t,2025-12-09 17:18:51.239571,2025-12-09 17:18:51.239571,丹阳,,品类五十五部,17448537025151530
|
||||
c79a52aa-cb1f-4c2b-8e50-143c55cb7560,dingtalk_K8LNzq3jQbEii7wbHpPr5YQiEiE@dingtalk.local,"",regular,t,2025-12-10 13:26:27.516958,2025-12-10 13:26:27.516958,虞姬,,品类三十七部,220036443140293483
|
||||
9da5263c-484b-4238-8fb5-b3bf509569a9,dingtalk_YGKfBbU0tveWnzmaii9E6cAiEiE@dingtalk.local,"",regular,t,2025-12-19 18:17:56.739577,2025-12-19 18:17:56.739577,瑶光,,平面视觉组,0905364769804
|
||||
610e129d-6246-4d11-bcb9-373ff2dc0536,dingtalk_7AJl3iSrZol1NkyRwCrgDvQiEiE@dingtalk.local,"",regular,t,2025-12-08 10:55:47.755978,2025-12-08 10:55:47.755978,听雨,,淘系三组,17470137941662618
|
||||
39424b6a-674c-423b-a3c4-3d4b401c7191,dingtalk_EeGFachkbDMhtRRW6lan4AiEiE@dingtalk.local,"",regular,t,2025-12-10 14:32:36.938305,2025-12-10 14:32:36.938305,扶风,,运营一部,17388060246048197
|
||||
f7c74b13-3370-4eee-9590-db4569f7f6aa,dingtalk_oKAEJoiiXeJ9h7ya8a7jhpQiEiE@dingtalk.local,"",regular,t,2025-12-10 15:05:09.307447,2025-12-10 15:05:09.307447,瑶池,,亿家达组,17391512871494713
|
||||
c2f026e7-eca5-4941-b876-e9a1c2d353c4,dingtalk_7AOBfIj2wwBsg5xfGiSkzrAiEiE@dingtalk.local,"",regular,t,2025-12-11 14:45:27.763187,2025-12-11 14:45:27.763187,周颖,,品类二十一部,17654167785576487
|
||||
9748ba3a-6a96-4cd3-a686-87ac48ae2162,dingtalk_F3pd2oD6zs2JQVdC0DNtrwiEiE@dingtalk.local,"",regular,t,2025-12-19 18:23:20.079485,2025-12-19 18:23:20.079485,句芒,,3D视觉组,15888137890267453
|
||||
3b44406e-2bcf-4e4a-b615-5697cb23e6a9,dingtalk_6AaiSEcRSZ6sTsW4NiP5cwTgiEiE@dingtalk.local,"",regular,t,2025-12-15 16:11:14.615983,2025-12-15 16:11:14.615983,蓬莱,,运营七部,17391527722266571
|
||||
4c543ec4-2f24-4e16-980a-44481bec2e77,dingtalk_CPJkckdBVsoiSJHCrQzSn8giEiE@dingtalk.local,"",regular,t,2025-12-24 18:24:55.530539,2025-12-24 18:24:55.530539,香茗,,运营一部,17665443884393254
|
||||
3d20270a-8fdc-48b1-b630-511acc74f3a5,dingtalk_ypnviP2wL3Ry21zQuwgsVuQiEiE@dingtalk.local,"",regular,t,2025-12-16 09:52:42.894051,2025-12-16 09:52:42.894051,九尾,,策划二部,281234274720979690
|
||||
3841ea0e-595e-4e45-b59b-398dca1f5434,dingtalk_1FpIXvPzbZVgv8wq0mZoiiwiEiE@dingtalk.local,"",regular,t,2025-12-16 15:31:49.950743,2025-12-16 15:31:49.950743,关雎,,淘系组,143763672524084876
|
||||
d9240d02-3890-4dab-b3bc-dc168dd5db98,dingtalk_PRNaKNlSGs4Uk9TTWiiD0lgiEiE@dingtalk.local,"",regular,t,2025-12-16 15:40:49.709662,2025-12-16 15:40:49.709662,忘忧,,支持组,1709194833690971
|
||||
9ce1848b-de1d-4703-9d87-fa96a280bb9c,dingtalk_yyFq5JynMFKPgHxWlECmNQiEiE@dingtalk.local,"",regular,t,2025-12-11 16:37:56.461849,2025-12-11 16:37:56.461849,吴嘉雯,,,
|
||||
09f920e8-10ff-48a7-8849-d8524ff7ba0f,dingtalk_rVle6NcKiiBiSKQb32omPI1giEiE@dingtalk.local,"",regular,t,2025-12-08 10:07:59.419559,2025-12-08 10:07:59.419559,琪瑛,,亿家达组,17545311674568466
|
||||
ccebd943-bee4-432b-a7b4-c8c0135491e8,dingtalk_TWsPxiPiSdlxoUk9TTWiiD0lgiEiE@dingtalk.local,"",regular,t,2025-12-23 15:13:06.993604,2025-12-23 15:13:06.993604,桃月,,淘系一组,16861875295099110
|
||||
b4b38dc2-8932-48f8-9bdf-546d6825d0ff,dingtalk_oAYNVp6tz5Ngv8wq0mZoiiwiEiE@dingtalk.local,"",regular,t,2025-12-23 10:42:54.866929,2025-12-23 10:42:54.866929,骆冰,,品类三十三部,09052303155499
|
||||
afb18198-8f1e-4399-bfb0-eb08767aec31,dingtalk_CLZknP7THhK21zQuwgsVuQiEiE@dingtalk.local,"",regular,t,2025-12-10 09:26:21.586864,2025-12-10 09:26:21.586864,福星,,运营四部 / 摄影部,05666237571059592
|
||||
4e955271-d26b-496c-a7a6-ebc4bddebcbd,dingtalk_Z8ii1dwFHNkiPhiSuqnQFqvQQiEiE@dingtalk.local,"",regular,t,2025-12-08 13:55:27.934462,2025-12-08 13:55:27.934462,丽泽,,亿家达组,17533208052621240
|
||||
16bc98b6-6657-449c-b1f7-d948e476aacc,dingtalk_o5wzdcFBqYITsW4NiP5cwTgiEiE@dingtalk.local,"",admin,t,2025-12-08 00:48:15.857742,2025-12-09 01:41:46.982,于伟,,软件支持,0443451422643665
|
||||
b93cbc5b-d40b-4dd1-ac5e-1a3fbbaf06af,dingtalk_JpMRBv8ECFaJ2hHyahISqAiEiE@dingtalk.local,"",regular,t,2025-12-09 09:13:39.58502,2025-12-09 09:13:39.58502,竹君,,运营五部,17503830426415266
|
||||
392ee2b8-f802-4408-bf1e-83c6010cd043,dingtalk_06IqotEiiPr9XJFNPy95ypAiEiE@dingtalk.local,"",regular,t,2025-12-09 10:28:29.89318,2025-12-09 10:28:29.89318,刘令娴,,品类二十二部,16768559653439991
|
||||
089a88dd-79f2-411f-81f4-09b549411162,dingtalk_bzX8pHFMUXlSQrC3mqoewgiEiE@dingtalk.local,"",regular,t,2025-12-09 10:59:40.384472,2025-12-09 10:59:40.384472,丹枫,,卓禾组,17412265392903983
|
||||
3458c135-987e-4d93-bfd9-e57022af431f,dingtalk_PjB1iiUO7fRQii7wbHpPr5YQiEiE@dingtalk.local,"",regular,t,2025-12-09 11:41:48.970539,2025-12-09 11:41:48.970539,文若,,品类三十三部,16777203071766487
|
||||
f9aa2045-1cc7-4976-bd1f-548311306fd7,dingtalk_qG3ZDiSu1UB621zQuwgsVuQiEiE@dingtalk.local,"",regular,t,2025-12-09 13:05:53.773692,2025-12-09 13:05:53.773692,無尘,,事业二部,07085722474895
|
||||
8aafe025-efe4-4c93-a72e-98061275414d,dingtalk_gBnYlpwWJsVJDKc6MvjLRwiEiE@dingtalk.local,"",regular,t,2025-12-09 13:54:46.676737,2025-12-09 13:54:46.676737,谷望,,品类三十一部,17563455325933868
|
||||
236e0962-b442-490a-96ea-ceb9b465a8df,dingtalk_KhqBc9cuJJkUk9TTWiiD0lgiEiE@dingtalk.local,"",regular,t,2025-12-10 09:28:47.590025,2025-12-10 09:28:47.590025,天音,,摄影中心,17627383139051844
|
||||
6797f787-3a1e-493f-9e8d-65311217b8aa,dingtalk_BkhjZDx2FETA5ulPAiPcAogiEiE@dingtalk.local,"",regular,t,2025-12-10 14:32:56.186772,2025-12-10 14:32:56.186772,静芬,,淘系三组,17633437934838539
|
||||
00965dbc-ac43-44d0-9865-400fc90c5b8b,dingtalk_64T8iikAzNROJQVdC0DNtrwiEiE@dingtalk.local,"",regular,t,2025-12-10 17:47:19.779836,2025-12-10 17:47:19.779836,冉遗,,亿家达组,17113305608336566
|
||||
4f531caf-0a79-4ffd-99d2-c6d89fd1b61a,dingtalk_DGMFENdFy6vKQb32omPI1giEiE@dingtalk.local,"",regular,t,2025-12-11 13:09:01.833475,2025-12-11 13:09:01.833475,张华,,运营五部,1689211514251152
|
||||
e1a7b012-8ab4-47d8-a343-a1abd890bfe5,dingtalk_WRYs7Dja9fxrDYrhJnPFlwiEiE@dingtalk.local,"",regular,t,2025-12-11 13:58:13.024402,2025-12-11 13:58:13.024402,羽涅,,天猫一组,16970758302849973
|
||||
cb06223a-232d-4655-8cd5-43744b53e223,dingtalk_9y6bguPNPcAiE@dingtalk.local,"",regular,t,2025-12-14 15:02:13.901292,2025-12-14 15:02:13.901292,苏适,,运营中心B,16412638219551394
|
||||
1931332d-af74-490f-b6fc-7aae61799e2a,dingtalk_g0iSLqjHiivSl2Z68Y3lSAOwiEiE@dingtalk.local,"",regular,t,2025-12-08 10:15:24.760633,2025-12-08 10:15:24.760633,杨不悔,,天猫二组,17587632230066583
|
||||
1a0c8f0f-1a48-4df0-a65c-35b34953e599,dingtalk_gqqOiisvU4IGxH6fEWxyYGAiEiE@dingtalk.local,"",regular,t,2025-12-08 16:55:14.506852,2025-12-08 16:55:14.506852,志远,,天猫一组,17587632827222771
|
||||
b1d48c9a-e073-4543-bfb4-2c943e81526a,dingtalk_SvzO7JkfGDa21zQuwgsVuQiEiE@dingtalk.local,"",regular,t,2025-12-08 13:23:22.188375,2025-12-08 13:23:22.188375,子远,,淘系组,1613870671485190
|
||||
56ffd821-dd43-4822-bdd2-5dee6cbfef2e,dingtalk_u5EqTMjIiSW2rutyJIniiPFgiEiE@dingtalk.local,"",regular,t,2025-12-08 14:20:24.394957,2025-12-08 14:20:24.394957,紫陌,,欧意朗组,17500380377494984
|
||||
a9aa9e02-eb33-4853-8e29-393a8c5cafc9,dingtalk_oy23t1ttBe6PgHxWlECmNQiEiE@dingtalk.local,"",regular,t,2025-12-08 15:36:46.254511,2025-12-08 15:36:46.254511,雪川,,淘系二组,17394105729911399
|
||||
b38d11cc-da8e-4031-930f-0d170934a778,dingtalk_OcsOSFO69XCH8qaH8pAtIQiEiE@dingtalk.local,"",regular,t,2025-12-26 10:10:09.438541,2025-12-26 10:10:09.438541,伽罗,,3D视觉组,16375459480503812
|
||||
fb2ed979-e46d-4e39-b0f8-1961c6547283,dingtalk_q9AxMziSN1KkUk9TTWiiD0lgiEiE@dingtalk.local,"",regular,t,2025-12-20 15:46:41.654078,2025-12-20 15:46:41.654078,秋瑾,,ai视觉部,09062060032383
|
||||
93761bf2-a22a-48ff-96cb-34e16d9c3c7e,dingtalk_FmMcHbacQbiiQde4smonbewiEiE@dingtalk.local,"",regular,t,2025-12-09 09:47:50.276609,2025-12-09 09:47:50.276609,云梦,,亿家达组,1739757429284399
|
||||
b31fd1ae-3cd6-4a71-b02f-bfa4875613e4,dingtalk_ztk3yvEkPBw3zRWYFt8QJwiEiE@dingtalk.local,"",regular,t,2025-12-09 13:34:18.25621,2025-12-09 13:34:18.25621,花影,,京东一组,17560857920779552
|
||||
e4509a2b-e663-42fa-89e7-ef2d826ce189,dingtalk_e9aTlX5BeXK21zQuwgsVuQiEiE@dingtalk.local,"",regular,t,2025-12-19 16:44:28.953933,2025-12-19 16:44:28.953933,流风,,策划,17527162138181967
|
||||
79ce494b-cdd6-4687-8625-b2417ab47d8d,dingtalk_gvF09AHNkXe21zQuwgsVuQiEiE@dingtalk.local,"",regular,t,2025-12-09 14:08:28.397772,2025-12-09 14:08:28.397772,九千七,,京东一组,1743312137847243
|
||||
e414a71c-7a11-432b-add4-4fb60ee4a09d,dingtalk_8hw2VbflzemiSvStBMrhiSEgiEiE@dingtalk.local,"",regular,t,2025-12-09 14:19:47.886075,2025-12-09 14:19:47.886075,蔺晨,,不凡组,090656665036597568
|
||||
3987d881-c6e6-4f3b-b6b1-586354ab411c,dingtalk_O8WfqGiP2C6ADvQzSq8GiSUQiEiE@dingtalk.local,"",regular,t,2025-12-09 15:58:19.23332,2025-12-09 15:58:19.23332,葭葭,,运营五部,17200573484495504
|
||||
845ab682-08de-4c75-bfee-7916f03785d9,dingtalk_YdxYnNy47t5gv8wq0mZoiiwiEiE@dingtalk.local,"",regular,t,2025-12-10 09:36:10.901019,2025-12-10 09:36:10.901019,芮冬星,,鸣飞家具,103703420532823585
|
||||
45332762-3e4e-4925-b20e-b5e73ff57e9f,dingtalk_jT2J3dQjHNSWnzmaii9E6cAiEiE@dingtalk.local,"",regular,t,2025-12-20 15:45:22.700444,2025-12-20 15:45:22.700444,乐游,,平面视觉组,09061715497867
|
||||
f16303c2-9470-42f3-96b5-e0e2cdcf2080,dingtalk_IfPmdgUStKJh7ya8a7jhpQiEiE@dingtalk.local,"",regular,t,2025-12-20 09:00:52.271015,2025-12-20 09:00:52.271015,黄精,,3D视觉,17591095655513936
|
||||
b453c505-4980-4b88-9d36-cd46b4439e1c,dingtalk_G6zum39z4jBNkyRwCrgDvQiEiE@dingtalk.local,"",regular,t,2025-12-10 10:53:32.921025,2025-12-10 10:53:32.921025,天蓬,,品类三十八部,215102384827883110
|
||||
fc29062f-1b78-4941-b0a9-debbcb6e59c5,dingtalk_x0AAIwhlzYghtRRW6lan4AiEiE@dingtalk.local,"",regular,t,2025-12-10 15:15:58.910108,2025-12-10 15:15:58.910108,清虹,,运营三部,17554819418012405
|
||||
151202e1-1543-44bd-afc5-e3b32c44a897,dingtalk_D2JDy6WWC9SbswbCOUfkCgiEiE@dingtalk.local,"",regular,t,2025-12-22 10:49:36.035795,2025-12-22 10:49:36.035795,史雨涵,,ai视觉部,1766367441840704
|
||||
f5aa2ae3-744e-43bf-acb9-a199fefd1211,dingtalk_CPTVnBllDbzLEHxmpHUvqwiEiE@dingtalk.local,"",regular,t,2025-12-11 14:05:51.214112,2025-12-11 14:05:51.214112,南风,,卓禾组,17115892594207192
|
||||
f3429464-832f-4dcb-8b9d-fc788285e084,dingtalk_zFxEii6WNhx2JQVdC0DNtrwiEiE@dingtalk.local,"",regular,t,2025-12-11 16:03:06.425929,2025-12-11 16:03:06.425929,妙才,,C组,16825589875956984
|
||||
99a42008-c37d-4db8-958a-9aa8da6ed1dd,dingtalk_mSce1u7V8XeC3h9EiPbucugiEiE@dingtalk.local,"",regular,t,2025-12-23 17:40:30.431799,2025-12-23 17:40:30.431799,静蔓,,运营二部,17575540011489917
|
||||
575cfb2c-5f00-49a4-a511-24f33f2ca1ee,dingtalk_opPTmiSiSGiSCtt3HVRDkjsiiAiEiE@dingtalk.local,"",regular,t,2025-12-11 16:11:59.722218,2025-12-11 16:11:59.722218,师青玄,,品类二十部,1667784164438530
|
||||
12ffc0c9-8e11-45cc-8235-a871ffd6a0a2,dingtalk_Bd0wKl5penO21zQuwgsVuQiEiE@dingtalk.local,"",regular,t,2025-12-11 17:24:13.164738,2025-12-11 17:24:13.164738,松节,,平面视觉组,17651578924099451
|
||||
558ebb56-f02a-4822-a304-c1388e9c2382,dingtalk_8wyQtnfvlyoQ6zzGzsEKDQiEiE@dingtalk.local,"",regular,t,2025-12-11 13:41:52.784573,2025-12-11 13:41:52.784573,风筝,,,
|
||||
67c7ed6f-2f86-4da9-a921-2e92457a57d8,dingtalk_F16Pk5gjtCD92hBzZjblKAiEiE@dingtalk.local,"",regular,t,2025-12-26 10:18:02.349945,2025-12-26 10:18:02.349945,梁山泊,,品类二十九部,17585041389093611
|
||||
20948b28-62c1-43a2-88e8-22e415a7aa94,dingtalk_JgwGjJuzAQ3KQb32omPI1giEiE@dingtalk.local,"",regular,t,2025-12-09 10:27:49.097973,2025-12-09 10:27:49.097973,清逸,,品类三十一部,17566896586841111
|
||||
231474ad-3143-40aa-bf11-67fae1bd1673,dingtalk_HEpFKmvA2iiCJQVdC0DNtrwiEiE@dingtalk.local,"",regular,t,2025-12-12 14:00:08.266296,2025-12-12 14:00:08.266296,宁采臣,,轩昂组,1641053926848654
|
||||
6a6655a1-0770-49cf-8f5d-97dfbbb89d1a,dingtalk_PhkTw9bObGRh7ya8a7jhpQiEiE@dingtalk.local,"",regular,t,2025-12-15 10:33:54.616054,2025-12-15 10:33:54.616054,灵汐,,架类组,16532696236585175
|
||||
9c565787-097e-4bae-be71-08284170bd71,dingtalk_X25YcC3lhCcOaZn9OAVw5QiEiE@dingtalk.local,"",regular,t,2025-12-09 15:23:38.957936,2025-12-09 15:23:38.957936,相宜,,运营一部,16572447080448715
|
||||
3397ad44-8b66-489d-9615-29fa5744efa7,dingtalk_1ttPYAPuef7LEHxmpHUvqwiEiE@dingtalk.local,"",regular,t,2025-12-16 15:41:51.897788,2025-12-16 15:41:51.897788,范闲,,运营六部,17089129530478604
|
||||
f977c86a-3c59-459b-93fa-937e5aaa5b0f,dingtalk_InK3miiMViPApbaiSNT9xrSZQiEiE@dingtalk.local,"",regular,t,2025-12-08 10:04:55.816495,2025-12-08 10:04:55.816495,艳蕊,,运营四部,17623925917566521
|
||||
87acad35-0848-4abc-ba6a-b8748a7d098d,dingtalk_dIVtVllNrW5BwiP7xnUP59QiEiE@dingtalk.local,"",regular,t,2025-12-09 09:21:18.472007,2025-12-09 09:21:18.472007,蓬莱仙子,,品类三十部,17639484469263442
|
||||
f873308c-1d76-4bee-92d5-a15848506632,dingtalk_myViiNHdEXT14eaXPujstiiwiEiE@dingtalk.local,"",regular,t,2025-12-09 09:23:55.860708,2025-12-09 09:23:55.860708,碧落,,卓禾组,17572954323241650
|
||||
f09a2d8b-7b13-4b1e-bcd1-9cbe17ac579d,dingtalk_Fam3XYPYXiigDvQzSq8GiSUQiEiE@dingtalk.local,"",regular,t,2025-12-09 10:48:28.04866,2025-12-09 10:48:28.04866,镜湖,,京东一组,17430382889552488
|
||||
d685fa51-d8eb-42ea-b471-4a91269a7a90,dingtalk_sO5gokWc6H9dskXiPrBcKRQiEiE@dingtalk.local,"",regular,t,2025-12-09 10:54:15.194464,2025-12-09 10:54:15.194464,李绅,,卓禾组,17095160230521913
|
||||
ed591444-889a-4917-afed-2493d3ca16d7,dingtalk_3EiicVh7V5ja21zQuwgsVuQiEiE@dingtalk.local,"",regular,t,2025-12-09 11:25:37.338443,2025-12-09 11:25:37.338443,奉先,,品类十二部,243810623721380557
|
||||
40d2a02a-860e-4ae2-91f1-0a6f628bb4b8,dingtalk_1ZRRjthGGMkUk9TTWiiD0lgiEiE@dingtalk.local,"",regular,t,2025-12-09 11:45:41.636369,2025-12-09 11:45:41.636369,苏若兰,,品类六十八部,13226527631200418
|
||||
9d3bf253-760c-4e03-9e68-63766bac562b,dingtalk_eDRwADiSiPHfVrDYrhJnPFlwiEiE@dingtalk.local,"",regular,t,2025-12-09 17:25:45.916885,2025-12-09 17:25:45.916885,刑天,,淘系三组,1623718211552566
|
||||
a60772cf-c355-464e-a986-99abcc56633d,dingtalk_C6iStSskb0CsUk9TTWiiD0lgiEiE@dingtalk.local,"",regular,t,2025-12-10 13:31:02.701206,2025-12-10 13:31:02.701206,李逍遥,,品类十部,15901944378911263
|
||||
4499eec8-9677-4fed-ac8a-8fe6668cf43b,dingtalk_V14GuONjVytNkyRwCrgDvQiEiE@dingtalk.local,"",regular,t,2025-12-10 14:33:12.825797,2025-12-10 14:33:12.825797,班超,,淘系一组,16880890842004419
|
||||
12898266-fb91-4d97-8360-c795a0745240,dingtalk_1JScgKfTzx5NpZ6rxgc2hAiEiE@dingtalk.local,"",regular,t,2025-12-11 10:27:32.588935,2025-12-11 10:27:32.588935,施泽,,京东二组,17113303160282513
|
||||
14b31c35-23cd-435a-a022-845ebe156324,dingtalk_OkhiilB3c4nPLDIeWbwv8zwiEiE@dingtalk.local,"",regular,t,2025-12-11 13:19:13.29331,2025-12-11 13:19:13.29331,晚翠,,摄影中心,17639482453946077
|
||||
1e8be077-c24a-4e2a-a9ae-b4eeb81f8b5e,dingtalk_PQjfN4UflOITsW4NiP5cwTgiEiE@dingtalk.local,"",regular,t,2025-12-11 14:37:38.608018,2025-12-11 14:37:38.608018,斗战胜佛,,淘系一组,16577878064611841
|
||||
cca0752c-bf46-4cdb-b4dd-2b69611437cc,dingtalk_7yu99ljrVgBdZHaWzl1pXAiEiE@dingtalk.local,"",regular,t,2025-12-12 14:00:49.810518,2025-12-12 14:00:49.810518,尧姜,,运营六部,17043334026453115
|
||||
34551bf4-aa5c-4d72-b6cd-9b20a57a9504,dingtalk_wpdiPvImPkZNdskXiPrBcKRQiEiE@dingtalk.local,"",regular,t,2025-12-15 16:21:38.426635,2025-12-15 16:21:38.426635,青松,,运营二部,17542713018726880
|
||||
1846d3aa-1a2a-4c3b-a243-8e7a6cdd3f1e,dingtalk_UyLAHSpLOiPHLEHxmpHUvqwiEiE@dingtalk.local,"",regular,t,2025-12-16 10:11:51.459782,2025-12-16 10:11:51.459782,雅琴,,品类十六部,17452003895697433
|
||||
ee4da307-1749-4959-98cf-a993e0bd2819,dingtalk_ZRh7oiSBKciP1PXacxHb8SKQiEiE@dingtalk.local,"",regular,t,2025-12-08 10:25:47.49305,2025-12-08 10:25:47.49305,龙葵,,品类五十六部,16339148587495518
|
||||
27a54697-0c43-4c3d-8ba7-db71548cdea6,dingtalk_TlJppt0qIbWSVQiPMeFT0dwiEiE@dingtalk.local,"",regular,t,2025-12-08 14:59:49.99367,2025-12-08 14:59:49.99367,暮雪,,亿家达组,17391512199229301
|
||||
64eb60fd-9429-480d-ad2f-0e85ba5aa1c3,dingtalk_tjZTA9H1YD8v4o8xEmfLhQiEiE@dingtalk.local,"",regular,t,2025-12-08 10:17:00.495697,2025-12-08 10:17:00.495697,禹锡,,品类三十八部,17623924033571200
|
||||
8a7ceef8-39b2-4723-9e9d-e359e86d2621,dingtalk_wz3wlGqViPBQ32giiOughUBQiEiE@dingtalk.local,"",regular,t,2025-12-08 16:38:18.836163,2025-12-08 16:38:18.836163,清寒,,运营五部 / 运营三部,17168597117165785
|
||||
0df6f4b7-5384-45b7-9f17-37a0ec476af2,dingtalk_vqGE7pkRHb8ii7wbHpPr5YQiEiE@dingtalk.local,"",regular,t,2025-12-08 17:22:40.816573,2025-12-08 17:22:40.816573,白泽,,运营六部,09061861519024
|
||||
f138bcb0-c43f-4886-b8eb-d037f932dd67,admin@example.com,$2a$10$HDgWl7.1zW8IzVErVa22YeokKf3x9cQojUqMaWgPEDAbHK38GQg4K,admin,t,2025-12-04 21:25:13.731088,2025-12-04 21:25:13.731088,,,,
|
||||
2b84d217-db54-49f3-9b36-1f58f974d924,admin@example.com,$2a$10$0IELO.iR07hTBbCbY4hbw.AlFUEkIEMN7kUZIc1C4CQdWGD5Op.B6,admin,f,2025-12-04 19:50:53.38825,2025-12-07 10:44:55.768,,,,
|
||||
e9c28557-def4-4120-b225-5ab77a37bfe6,dingtalk_CLyrHs2OwKnA5ulPAiPcAogiEiE@dingtalk.local,"",regular,t,2025-12-08 09:13:31.89219,2025-12-08 09:13:31.89219,旭尧,,淘系一组,1763343849345899
|
||||
2234f22e-783e-4cc3-b533-c02982a7e66f,dingtalk_4y2eiicE1knf6wYRiSZu0dXgiEiE@dingtalk.local,"",regular,t,2025-12-08 09:13:51.316048,2025-12-08 09:13:51.316048,芳华,,品类二十一部,17633438898945472
|
||||
22278321-4cd9-45c6-a4c6-fdb7b2647f70,dingtalk_swHSmIs7ZdITsW4NiP5cwTgiEiE@dingtalk.local,"",regular,t,2025-12-08 09:55:16.426883,2025-12-08 09:55:16.426883,王也,,品类九部,1665021605078108
|
||||
ba823481-a455-43a6-be43-93f1ee6c3fb9,dingtalk_LiiCfnNjMORSiSvStBMrhiSEgiEiE@dingtalk.local,"",regular,t,2025-12-08 09:35:03.433776,2025-12-08 09:35:03.433776,独步,,淘系二组,17591094184297384
|
||||
b0eb36d8-5ade-4b4d-a50d-5c76cf8c01cc,dingtalk_pmzP16opOFyH8qaH8pAtIQiEiE@dingtalk.local,"",regular,t,2025-12-08 10:28:43.987786,2025-12-08 10:28:43.987786,悦画,,卓禾组,17566898369198405
|
||||
a94ea07a-a45b-4959-a934-b05e0c5627d3,dingtalk_GxKFiibyvAmRT90WZTXWqBQiEiE@dingtalk.local,"",regular,t,2025-12-08 09:46:34.127171,2025-12-08 09:46:34.127171,晴霞,,淘系组,17633442133193193
|
||||
7e7a80d8-e3f3-4571-9ae8-39fceb5711d8,dingtalk_iSBULLHfcrfga48OHPC5ymwiEiE@dingtalk.local,"",regular,t,2025-12-08 10:01:51.314098,2025-12-08 10:01:51.314098,陈圆圆,,运营一部,17488278053261454
|
||||
181c4c81-42d4-42dd-9985-157d0a16f2d1,dingtalk_zfdOC8LR1wID7oFXJeyKiSgiEiE@dingtalk.local,"",regular,t,2025-12-08 10:27:49.814627,2025-12-08 10:27:49.814627,钰岚,,运营一部,17101207724815588
|
||||
d7ae8609-561e-49fd-909d-93234d2b86e5,dingtalk_VBXkWL0HtRZiiPYPVFI3fkgiEiE@dingtalk.local,"",regular,t,2025-12-23 11:24:25.114594,2025-12-23 11:24:25.114594,轻尘,,运营二部,17092594707145802
|
||||
9950fb7f-02b9-44ef-9dfc-1ab037ccaea8,dingtalk_MIHMFvDY8BMTsW4NiP5cwTgiEiE@dingtalk.local,"",regular,t,2025-12-19 17:17:12.435232,2025-12-19 17:17:12.435232,苏蕙,,平面视觉二组,1655082311725770
|
||||
90ec379a-a458-4b1e-9448-902a692c4b63,dingtalk_0c8wzpXHYPz9P0Utii7Af9QiEiE@dingtalk.local,"",regular,t,2025-12-08 11:24:23.022552,2025-12-08 11:24:23.022552,承枫,,品类一部,17210929413438452
|
||||
2575bddb-a531-4e6e-9340-f4b3d6f33d48,dingtalk_2EmboLlZPP8v4o8xEmfLhQiEiE@dingtalk.local,"",regular,t,2025-12-08 13:22:44.665586,2025-12-08 13:22:44.665586,落月,,品类八十八部,1739755902239421
|
||||
6a0cbd3c-c991-4fe6-9d88-b0ced0b8310c,dingtalk_19d3eXNDc5ii21zQuwgsVuQiEiE@dingtalk.local,"",regular,t,2025-12-08 10:02:51.325068,2025-12-08 10:02:51.325068,飘渺,,运营一部,17452004035549070
|
||||
8ebf5b34-6d69-44e7-8fea-a9e89a23847a,dingtalk_YdTOYD0lKW0TsW4NiP5cwTgiEiE@dingtalk.local,"",regular,t,2025-12-08 10:03:08.448215,2025-12-08 10:03:08.448215,杜牧,,运营一部,15894223763664134
|
||||
31038203-225c-4e3f-9e36-a8d8adfc5992,dingtalk_fu1cJquDWjOuriSr29VkWjAiEiE@dingtalk.local,"",regular,t,2025-12-08 10:03:11.984215,2025-12-08 10:03:11.984215,殷离,,运营一部,17391511054476511
|
||||
f5f65389-4ecd-457b-b481-8d1c1ab361ce,dingtalk_ybUCVfmNSaJPXacxHb8SKQiEiE@dingtalk.local,"",regular,t,2025-12-08 10:03:12.721535,2025-12-08 10:03:12.721535,相如,,运营六部,17627384545801410
|
||||
a0d1add6-b88e-45cf-bf6f-c975468ee171,dingtalk_HBVAdjmtQxCMIgQVciPiSZGwiEiE@dingtalk.local,"",regular,t,2025-12-08 10:05:20.342521,2025-12-08 10:05:20.342521,落霞,,品类三十六部,17609235997056226
|
||||
7b1a92e7-61a8-4572-9588-7e409096b7b1,dingtalk_gjE9wEcIWEJNkyRwCrgDvQiEiE@dingtalk.local,"",regular,t,2025-12-08 10:06:19.298313,2025-12-08 10:06:19.298313,白浅,,策划,184107156836731086
|
||||
254c5760-9155-4677-a6ea-59c73162685f,dingtalk_DLXG9s0zbRiPTZIVBhVRW4QiEiE@dingtalk.local,"",regular,t,2025-12-08 10:06:20.77468,2025-12-08 10:06:20.77468,伏月,,亿家达组,17216117884661866
|
||||
a1335915-405d-4834-bebd-1c9be3b229c4,dingtalk_FDBYL5b1tiiU32giiOughUBQiEiE@dingtalk.local,"",regular,t,2025-12-08 10:08:29.740658,2025-12-08 10:08:29.740658,谢危,,淘系一组,15932239831171241
|
||||
910a0731-7982-40be-b4a6-4fe0b2ba7356,dingtalk_IKii4uxdNiiheiSvStBMrhiSEgiEiE@dingtalk.local,"",regular,t,2025-12-08 10:12:44.519604,2025-12-08 10:12:44.519604,步惊云,,视觉四部,16187937724871702
|
||||
8b1532fa-c98f-4f55-8998-127b81748859,dingtalk_QQy3w4wWiiTiirutyJIniiPFgiEiE@dingtalk.local,"",regular,t,2025-12-08 10:27:29.300477,2025-12-08 10:27:29.300477,丹桂,,策划,1755739741988945
|
||||
537171b5-004c-481a-b608-3399cbf925f9,dingtalk_pJNHUoS9ygwf2p58bsuZxgiEiE@dingtalk.local,"",regular,t,2025-12-08 10:32:16.71328,2025-12-08 10:32:16.71328,逸楼,,亿家达组,17502969926044619
|
||||
84b04b95-cdf8-4324-989d-f2437d236e6b,dingtalk_7viiiPiivke6rvmtWCeR6B95giEiE@dingtalk.local,"",regular,t,2025-12-08 10:32:44.884382,2025-12-08 10:32:44.884382,双全,,策划,17560856302955195
|
||||
23d317ff-b3a6-4f94-9e53-efe65b5f1aa9,dingtalk_4eZDfqIv4EgTsW4NiP5cwTgiEiE@dingtalk.local,"",regular,t,2025-12-08 10:33:19.723933,2025-12-08 10:33:19.723933,风云,,亿家达组,1678929594928642
|
||||
aaba5441-a779-4a4b-9c8c-26c712c02227,dingtalk_k8XiShwxYiPQmWnzmaii9E6cAiEiE@dingtalk.local,"",regular,t,2025-12-08 10:35:32.874278,2025-12-08 10:35:32.874278,扶苏,,品类八部,172808584924365286
|
||||
646f6c35-1faa-454f-a3bc-02eddac9b94d,dingtalk_pM6xTiPyAWGpyjbv7eLzWhgiEiE@dingtalk.local,"",regular,t,2025-12-08 10:41:30.09905,2025-12-08 10:41:30.09905,何红药,,品类二十部,17633435099363171
|
||||
0df99afd-a719-4968-942f-8123544c49bc,dingtalk_2cc8JcLeCL8htRRW6lan4AiEiE@dingtalk.local,"",regular,t,2025-12-08 10:46:14.128754,2025-12-08 10:46:14.128754,雨燕,,淘系组,1762738570485650
|
||||
1f844cc6-9d0f-4639-b546-b23883597a87,dingtalk_xtZiSe4xsHiPVgv8wq0mZoiiwiEiE@dingtalk.local,"",regular,t,2025-12-08 09:55:24.232018,2025-12-08 09:55:24.232018,江澄,,品类六部,1617610635671751
|
||||
3c14e7d0-8479-4e71-aceb-aa0219f96097,dingtalk_4chz4ii2TVW4Uk9TTWiiD0lgiEiE@dingtalk.local,"",regular,t,2025-12-08 10:06:55.294382,2025-12-08 10:06:55.294382,兰心,,卓禾组,17542713660028975
|
||||
690dc462-8e96-4968-b43f-640b7a81cdda,dingtalk_DE6gxuOiSLhov4o8xEmfLhQiEiE@dingtalk.local,"",regular,t,2025-12-08 10:07:10.844143,2025-12-08 10:07:10.844143,窦线娘,,品类六十八部,17617875912483021
|
||||
65e2b443-a7ee-440e-8a31-bcae642c02e0,dingtalk_JiPRKL9HjTy4DvQzSq8GiSUQiEiE@dingtalk.local,"",regular,t,2025-12-08 10:09:57.580899,2025-12-08 10:09:57.580899,阿朱,,品类八十八部,17502956768312130
|
||||
ee751c4c-13cc-44b1-ada9-cc65cadb0ac9,dingtalk_ouWxW9xHCtVsg5xfGiSkzrAiEiE@dingtalk.local,"",regular,t,2025-12-08 10:10:57.636537,2025-12-08 10:10:57.636537,子萱,,品类八十八部,17585909684505871
|
||||
2f3ac137-ebde-49a9-8b8d-b8933f5a6918,dingtalk_EVccbLfiSeJOhiSuqnQFqvQQiEiE@dingtalk.local,"",regular,t,2025-12-08 10:15:24.387826,2025-12-08 10:15:24.387826,白鹤,,淘系三组,17391515276131725
|
||||
3792ad4d-af8c-4b61-88fe-b59cea9afaa5,dingtalk_iSd6iPiiPhWs1ANpVAiP7Y6PHwiEiE@dingtalk.local,"",regular,t,2025-12-08 10:19:02.827868,2025-12-08 10:19:02.827868,李淳罡,,品类十八部,16028130788134712
|
||||
ad6f5de9-6f96-4752-896c-2e9f0ccbe476,dingtalk_iPbzM298rke6Wnzmaii9E6cAiEiE@dingtalk.local,"",regular,t,2025-12-08 10:24:25.204675,2025-12-08 10:24:25.204675,华胥,,品类五十六部,16384071457616164
|
||||
a2bb403b-fc55-47f0-a764-34bfc6f30ec3,dingtalk_eoJPNSHeJXIa48OHPC5ymwiEiE@dingtalk.local,"",regular,t,2025-12-08 10:25:46.533073,2025-12-08 10:25:46.533073,明朗,,品类五十六部,17439896930928885
|
||||
a58d145c-37fb-434b-8eb5-1e150bbadb48,dingtalk_5F68m6PQy7CWnzmaii9E6cAiEiE@dingtalk.local,"",regular,t,2025-12-08 10:28:02.624809,2025-12-08 10:28:02.624809,银萍,,亿家达组,1762738656737692
|
||||
b78fb16c-62d3-4be3-9276-39c9c5c73908,dingtalk_BerMP2eDudCJQVdC0DNtrwiEiE@dingtalk.local,"",regular,t,2025-12-08 10:32:55.597293,2025-12-08 10:32:55.597293,青舟,,京东二组,17273139090628868
|
||||
6f1617ea-08e7-4f3c-a4d9-995bc8a9ce81,dingtalk_Hw8chcpwvv9dskXiPrBcKRQiEiE@dingtalk.local,"",regular,t,2025-12-08 10:36:18.304176,2025-12-08 10:36:18.304176,朝花,,天猫一组,17524565960729624
|
||||
d8ef2690-ad29-4ade-9762-b4a8724d7191,dingtalk_y2gBU9M8jzyQP6nMGLmYkAiEiE@dingtalk.local,"",regular,t,2025-12-08 10:52:45.271506,2025-12-08 10:52:45.271506,卓不凡,,品类八十八部,17585911689674045
|
||||
eadc8c70-3d75-4b0e-9c9b-20a3ac3a04a8,dingtalk_2m0TeBPVR70UaX5uziPPGFQiEiE@dingtalk.local,"",regular,t,2025-12-08 11:22:08.011779,2025-12-08 11:22:08.011779,风吟,,品类一部,17551356277535712
|
||||
5218dfa3-8496-4ed1-b63b-f706e637ff1d,dingtalk_ItLV7ODmkBve3EDO6PzV2wiEiE@dingtalk.local,"",regular,t,2025-12-08 11:39:29.991448,2025-12-08 11:39:29.991448,白杨,,运营一部,17470141268326787
|
||||
71068861-859e-44b9-aacc-c9b6d9d17bd6,dingtalk_02fM66WLaef9P0Utii7Af9QiEiE@dingtalk.local,"",regular,t,2025-12-08 11:46:30.513469,2025-12-08 11:46:30.513469,司琳琳,,,
|
||||
80c0e2ff-dccf-46f0-b2b5-13a850da3fa0,dingtalk_HsPByro9ugiiiSvStBMrhiSEgiEiE@dingtalk.local,"",regular,t,2025-12-08 11:53:12.104205,2025-12-08 11:53:12.104205,精卫,,品类一部,284333100037630818
|
||||
09fee040-4f42-4721-8f88-99e2fe26afce,dingtalk_uDSBUwt3JIsUk9TTWiiD0lgiEiE@dingtalk.local,"",regular,t,2025-12-19 17:18:45.157222,2025-12-19 17:18:45.157222,昭平,,京东一组,17107258318527549
|
||||
8342405f-a23b-4508-a796-e67e458a7b59,dingtalk_lb1uhlJybScP0fhsLdFTtQiEiE@dingtalk.local,"",regular,t,2025-12-08 11:48:01.536408,2025-12-08 11:48:01.536408,黄蓉,,运营一部,17575540183951711
|
||||
c2e4775b-177c-43c3-9964-2b20f6eb0ea6,dingtalk_xjzKtmLcMjCbswbCOUfkCgiEiE@dingtalk.local,"",regular,t,2025-12-12 14:03:22.03614,2025-12-12 14:03:22.03614,浣溪,,运营一部,17482261388004633
|
||||
e0888c17-5ea3-487d-93bc-592f2a220cd4,dingtalk_1K6B3H1ObRzoIfSz00zHawiEiE@dingtalk.local,"",regular,t,2025-12-09 09:22:43.631972,2025-12-09 09:22:43.631972,浮萍,,策划,17554814045944276
|
||||
1ec8179f-b668-4f70-8df4-8fff29109f4a,dingtalk_XOvuUkj7fFJZkXdudmgZwwiEiE@dingtalk.local,"",regular,t,2025-12-09 10:02:43.415442,2025-12-09 10:02:43.415442,幽竹,,京东二组,17536663230012593
|
||||
c482c440-36ae-413d-9e7c-71c574aa35df,dingtalk_rRMduUe1ORPLEHxmpHUvqwiEiE@dingtalk.local,"",regular,t,2025-12-08 10:32:47.926737,2025-12-08 10:32:47.926737,春雷,,亿家达组,17406209073144316
|
||||
8ef74e4b-fa10-4553-8468-4b15ffe1d783,dingtalk_AoeuVsiPVHLXoIfSz00zHawiEiE@dingtalk.local,"",regular,t,2025-12-09 10:49:01.599098,2025-12-09 10:49:01.599098,琼霄,,品类二十部,17152174804702140
|
||||
3464678e-0515-426a-a1a2-8e3f61bf8bf6,441948087@qq.com,$2a$10$SH.lmW7TXrNBTXOxIMlvZeE3bwCuAm1pn1bYmiQYr70mKK6yjew0S,regular,t,2025-12-09 14:46:13.746867,2025-12-09 14:46:13.746867,,,,
|
||||
970f5c2a-d568-4f42-8d58-31e0f42dfe4f,dingtalk_nYxA8NmMqXOJQVdC0DNtrwiEiE@dingtalk.local,"",regular,t,2025-12-09 11:32:33.417771,2025-12-09 11:32:33.417771,天鹿,,A组,09061603068429
|
||||
0767fe71-5c4c-4d84-871b-530d33b4a71c,dingtalk_R2QLoDviPiSrMiE@dingtalk.local,"",regular,t,2025-12-20 16:23:25.213671,2025-12-20 16:23:25.213671,叶绍袁,,3D视觉组,210508461144812
|
||||
897f286e-97e6-4f64-8bab-90875903d75a,dingtalk_kfRpQmD5P1lBwiP7xnUP59QiEiE@dingtalk.local,"",regular,t,2025-12-26 10:37:01.428495,2025-12-26 10:37:01.428495,芸香,,策划,17506430337927562
|
||||
896c022e-1294-439c-a89f-f3753220a808,dingtalk_4TOIU4NP7PHj5Pu2k0KutgiEiE@dingtalk.local,"",regular,t,2025-12-09 13:37:36.991859,2025-12-09 13:37:36.991859,周公,,卓禾组,17083066327204215
|
||||
959c7464-41a9-4e92-b03b-78d09b321b54,dingtalk_YVxoxA0WiiZyJ2hHyahISqAiEiE@dingtalk.local,"",regular,t,2025-12-10 09:55:28.310963,2025-12-10 09:55:28.310963,春兰,,,
|
||||
4e180794-3109-4a56-a2a6-18f137adbe11,dingtalk_VCJmjniPXKkaWnzmaii9E6cAiEiE@dingtalk.local,"",regular,t,2025-12-09 16:34:02.253392,2025-12-09 16:34:02.253392,庄姜,,卓禾组,16559475123322150
|
||||
754735d8-3074-46d3-842f-5e4792650a2c,dingtalk_aAtZmeNq6LVDzxAhPPHbcQiEiE@dingtalk.local,"",regular,t,2025-12-09 16:43:07.308535,2025-12-09 16:43:07.308535,雨卉,,京东一组,17513333602002300
|
||||
27028657-e9b7-42f0-9cf3-1aab903eaea0,dingtalk_XUI98xCCaxkii7wbHpPr5YQiEiE@dingtalk.local,"",regular,t,2025-12-10 10:07:36.127602,2025-12-10 10:07:36.127602,汤圆,,运营八部,17108987270479832
|
||||
1bf1a8c4-9f18-4f2d-a575-6f427429a119,dingtalk_lbZWLf0QdHVJDKc6MvjLRwiEiE@dingtalk.local,"",regular,t,2025-12-23 11:30:54.134692,2025-12-23 11:30:54.134692,沙鸥,,淘系一组,1765763701508899
|
||||
90b9852e-2706-4a8b-9acd-8c934386151d,dingtalk_S2xwONrO2BxrDYrhJnPFlwiEiE@dingtalk.local,"",regular,t,2025-12-10 15:25:42.290499,2025-12-10 15:25:42.290499,鸿鹄,,品类十五部,09053928548146
|
||||
b6a8e4f0-bc9d-44a9-b37e-7cd83201e18c,dingtalk_27ZU9C5YTt0ii7wbHpPr5YQiEiE@dingtalk.local,"",regular,t,2025-12-11 11:23:59.873668,2025-12-11 11:23:59.873668,春蕾,,千之尚组,wanghuiqing
|
||||
e86be14b-3d16-41d5-9ea4-35ff6e9d5756,dingtalk_9cGEzlMii7pFT90WZTXWqBQiEiE@dingtalk.local,"",regular,t,2025-12-11 17:40:23.490752,2025-12-11 17:40:23.490752,幻琪,,卓禾组,17394105814419268
|
||||
be0ba2c3-cef0-452a-9a36-76f61b970a97,dingtalk_DiSiSUVCmfmqWWnzmaii9E6cAiEiE@dingtalk.local,"",regular,t,2025-12-08 13:56:08.296917,2025-12-08 13:56:08.296917,流云,,运营四部,17518525470382664
|
||||
a82da25d-ce4f-4e0b-b850-abe55ef85777,dingtalk_GbdpZgfJrEebswbCOUfkCgiEiE@dingtalk.local,"",regular,t,2025-12-15 10:46:45.826977,2025-12-15 10:46:45.826977,碧云,,品类二十一部,17587638865097273
|
||||
a934a2d4-6838-4987-b47b-d50d50a1b20e,dingtalk_pFmNrEdg4t0ii7wbHpPr5YQiEiE@dingtalk.local,"",regular,t,2025-12-20 10:38:03.656112,2025-12-20 10:38:03.656112,李邦鑫,,拼多多组,342937506126600531
|
||||
a244cbcb-6779-4784-8a5f-c9ae68765387,dingtalk_o5hDqMiPiiK6IUk9TTWiiD0lgiEiE@dingtalk.local,"",regular,t,2025-12-19 17:26:58.721662,2025-12-19 17:26:58.721662,若兰,,平面视觉六组,1844085133937822
|
||||
e74b906d-a678-4ac1-8636-713968191e1f,dingtalk_WxjnVTndqBgii7wbHpPr5YQiEiE@dingtalk.local,"",regular,t,2025-12-08 16:44:04.470307,2025-12-08 16:44:04.470307,清泉,,运营七部,17448537276524279
|
||||
a7ed80da-ee9e-4e79-9971-77ba996cefe9,dingtalk_ygsAAv65cpyCm1q5KPOuegiEiE@dingtalk.local,"",regular,t,2025-12-22 15:16:29.855433,2025-12-22 15:16:29.855433,陶然,,天猫二组,17660216741673561
|
||||
e5bf8ffe-0d66-49d3-b353-4fbc0f9c8719,dingtalk_UyjBIiSTRGMOQde4smonbewiEiE@dingtalk.local,"",regular,t,2025-12-08 10:36:05.662547,2025-12-08 10:36:05.662547,荒,,卓禾组,16153379105687702
|
||||
a58cdc8e-9ba1-4d3e-bce6-b545f1d4eae0,dingtalk_2G0Ak72JCEDe3EDO6PzV2wiEiE@dingtalk.local,"",regular,t,2025-12-08 11:55:15.57647,2025-12-08 11:55:15.57647,云曦,,京东二组,17089130628073483
|
||||
483f7cf8-6942-4ab6-af28-a35e7dbba587,dingtalk_ZnYYRIgzgoEii7wbHpPr5YQiEiE@dingtalk.local,"",regular,t,2025-12-09 10:52:07.29648,2025-12-09 10:52:07.29648,霞姝,,品类十八部,16792751152794308
|
||||
49213cb3-4515-45a1-ac9d-a763424e0252,dingtalk_A9tEVBQ2PqngTEJqfxZlgwiEiE@dingtalk.local,"",regular,t,2025-12-09 11:54:44.623843,2025-12-09 11:54:44.623843,仲夏,,亿家达组,17158228526414580
|
||||
765c8d5d-0db5-4b39-82df-d297aa024208,dingtalk_CBaQAvUf1a9NkyRwCrgDvQiEiE@dingtalk.local,"",regular,t,2025-12-09 11:58:44.722895,2025-12-09 11:58:44.722895,玄女,,品类二部,2032083218944376
|
||||
16fa8997-1f67-49ab-86ef-2d88025ff9a4,dingtalk_NlzQFBtP65lgv8wq0mZoiiwiEiE@dingtalk.local,"",regular,t,2025-12-09 13:52:27.077716,2025-12-09 13:52:27.077716,苏惠,,京东二组,1664155211748976
|
||||
05097d61-4370-48eb-9779-12e1168e000f,dingtalk_iico26NwFpFkh4GF7U5OFtwiEiE@dingtalk.local,"",regular,t,2025-12-09 15:24:40.544675,2025-12-09 15:24:40.544675,夕雾,,运营一部,16913722098879250
|
||||
cbcab2f2-f114-44ba-b45c-ca2aa6780e20,dingtalk_I47PfhxWZrD5m33kFjt8ZQiEiE@dingtalk.local,"",regular,t,2025-12-09 17:32:09.183949,2025-12-09 17:32:09.183949,兰舟,,运营二部,17424384163468259
|
||||
9cba6d3b-cd93-4cce-b060-540b78cbbf91,dingtalk_NgMJWrY2iSJnLEHxmpHUvqwiEiE@dingtalk.local,"",regular,t,2025-12-10 11:00:22.383994,2025-12-10 11:00:22.383994,冰心,,亿家达组,17331034440842193
|
||||
b59aa685-bfc8-44c8-be46-d323a277c64e,dingtalk_rzwGFiSE1nhngTEJqfxZlgwiEiE@dingtalk.local,"",regular,t,2025-12-10 14:37:02.053874,2025-12-10 14:37:02.053874,竹溪,,淘系三组,17521112042497264
|
||||
43d5a2a0-1d55-4db8-acd4-313a2c47c96e,dingtalk_G4WXiiZPpNCXmroafZPJiPewiEiE@dingtalk.local,"",regular,t,2025-12-11 13:20:50.771907,2025-12-11 13:20:50.771907,清扬,,运营二部,17642060944605182
|
||||
10f4ebc5-6f57-4607-95e7-88884f900684,dingtalk_kglmHz8A2Psv4o8xEmfLhQiEiE@dingtalk.local,"",regular,t,2025-12-11 14:34:49.112462,2025-12-11 14:34:49.112462,款冬,,京东二组,1721611754979713
|
||||
28a8a843-7ef4-4cc0-a82d-6067a51d6d46,dingtalk_UBsj59BT2n2xH6fEWxyYGAiEiE@dingtalk.local,"",regular,t,2025-12-11 16:03:20.826073,2025-12-11 16:03:20.826073,双双,,运营二部,16568981013054110
|
||||
bd1fc8e2-c3ec-47e0-a92b-381129df9059,dingtalk_bSNOrKL4HSYhxdB3EFPsTgiEiE@dingtalk.local,"",regular,t,2025-12-16 10:49:58.379012,2025-12-16 10:49:58.379012,王羲之,,品类三十部,16468745451672937
|
||||
69941438-7e20-4117-9e0f-8b6b55bfc702,dingtalk_CtR7chdZeB8Uk9TTWiiD0lgiEiE@dingtalk.local,"",regular,t,2025-12-16 11:07:38.010868,2025-12-16 11:07:38.010868,金桂,,京东组,17518514239834
|
||||
2afcc99f-b585-4e00-ac92-770ff7b4e1c0,dingtalk_N5V0fgEsAJaiSvStBMrhiSEgiEiE@dingtalk.local,"",regular,t,2025-12-17 13:24:41.31743,2025-12-17 13:24:41.31743,马麟,,淘系一组,1689557916114590
|
||||
b2866ef7-d685-4433-b70c-841219db100a,dingtalk_bu27VAgmWgYwgo81Xg0XhQiEiE@dingtalk.local,"",regular,t,2025-12-10 13:33:19.734206,2025-12-10 13:33:19.734206,三红,,淘系二组,16689945299736714
|
||||
0439446d-63cb-4fd1-ba16-7ab713ca24c0,dingtalk_CJMaTjpUpCGCm1q5KPOuegiEiE@dingtalk.local,"",regular,t,2025-12-08 10:03:03.947804,2025-12-08 10:03:03.947804,雁回,,运营一部,17623925027142090
|
||||
2b587165-5516-49a1-a5e1-24650336b430,dingtalk_bsaxfPty246bswbCOUfkCgiEiE@dingtalk.local,"",regular,t,2025-12-08 13:20:11.768506,2025-12-08 13:20:11.768506,凌云,,淘系二组,17490866092668289
|
||||
fee6ee46-2a30-4106-a3fd-f6c59b32bda6,dingtalk_rWnwMSWiPLclNkyRwCrgDvQiEiE@dingtalk.local,"",regular,t,2025-12-08 12:06:46.371419,2025-12-08 12:06:46.371419,伯言,,视觉三部 / 视觉一部 / 策划六部,09061617282237
|
||||
124f345e-0196-4687-adaa-f2588a378bcf,dingtalk_qnBrItk8diS8TsW4NiP5cwTgiEiE@dingtalk.local,"",regular,t,2025-12-19 18:07:22.942903,2025-12-19 18:07:22.942903,张道陵,,品类五部,10441557221218754
|
||||
3fb1dafa-08d1-4cec-9f5a-f5ed379665ec,dingtalk_d7KvYjKESVciSJHCrQzSn8giEiE@dingtalk.local,"",regular,t,2025-12-08 17:15:20.366389,2025-12-08 17:15:20.366389,碧海,,淘系二组,17617875649854991
|
||||
1deaebf0-7e35-4287-a03a-3b0f06a4f175,dingtalk_ml2M1LXq1zINpVAiP7Y6PHwiEiE@dingtalk.local,"",regular,t,2025-12-08 15:27:39.824317,2025-12-08 15:27:39.824317,陈芝豹,,品类十三部,16266835558348369
|
||||
af6ade6c-6742-4129-a6e9-f833d65bcdea,dingtalk_9AyahOKVlQSWnzmaii9E6cAiEiE@dingtalk.local,"",regular,t,2025-12-08 13:34:23.828729,2025-12-08 13:34:23.828729,墨兮,,京东一组,16950003962912569
|
||||
d293fbba-0550-434e-be18-1d62de0c8f79,dingtalk_ocT7UndcIXsTsW4NiP5cwTgiEiE@dingtalk.local,"",regular,t,2025-12-08 13:35:24.071403,2025-12-08 13:35:24.071403,时令,,无双组,125652353237720459
|
||||
9c1660b8-c280-46b8-9049-fe75dd4be1bb,dingtalk_FdxZy88SL3vozGg2f9I27AiEiE@dingtalk.local,"",regular,t,2025-12-08 13:38:06.21934,2025-12-08 13:38:06.21934,容若,,京东二组,15927926988082711
|
||||
e33116b7-f6b6-4de9-b6d8-7339a60c90cf,dingtalk_oHSRzxZ5klEP0fhsLdFTtQiEiE@dingtalk.local,"",regular,t,2025-12-08 15:33:10.360965,2025-12-08 15:33:10.360965,式微,,运营一部,17103809221412057
|
||||
d18a97c1-1ba2-4e6c-bb2e-ecb74a213976,dingtalk_xaHIKEtlm6iiQP6nMGLmYkAiEiE@dingtalk.local,"",regular,t,2025-12-08 16:21:44.547423,2025-12-08 16:21:44.547423,浅萍,,淘系一组,17633437234099206
|
||||
dd3d036f-06c1-4b45-aeda-1ddb8fe6f423,dingtalk_QRawlIiPyFhtBwiP7xnUP59QiEiE@dingtalk.local,"",regular,t,2025-12-08 13:10:22.449689,2025-12-08 13:10:22.449689,李沅芷,,卓禾组,1655687577649658
|
||||
f47b8cb8-9ecb-4bb3-8443-548dc4555d7e,dingtalk_dXk2C1DwJbdgv8wq0mZoiiwiEiE@dingtalk.local,"",regular,t,2025-12-20 13:23:55.997585,2025-12-20 13:23:55.997585,翼德,,淘系二组,16067903317641947
|
||||
54e922a6-a696-4fbd-a604-b532535b932d,dingtalk_XOVERTIYgexoFo9qJu1YlwiEiE@dingtalk.local,"",regular,t,2025-12-08 14:03:32.419388,2025-12-08 14:03:32.419388,镜清,,淘系一组,17533216530826806
|
||||
3c43c0c6-ae83-408f-b50d-29aa60e901e4,dingtalk_FqCqY9dNFtKiSvStBMrhiSEgiEiE@dingtalk.local,"",regular,t,2025-12-08 14:07:53.036615,2025-12-08 14:07:53.036615,婴勺,,京东一组,16925809593737910
|
||||
b591f961-1e99-4703-b2d7-e8868c9e368c,dingtalk_G8a0YHtSAFAQ6zzGzsEKDQiEiE@dingtalk.local,"",regular,t,2025-12-08 14:15:16.23695,2025-12-08 14:15:16.23695,醉夏,,淘系组,17482234405366158
|
||||
7ac48492-3fd8-43e7-a238-48193dab28d2,dingtalk_XmViSiSf11y6mTZIVBhVRW4QiEiE@dingtalk.local,"",regular,t,2025-12-08 14:37:53.070592,2025-12-08 14:37:53.070592,念念,,淘系组,17403617016831487
|
||||
fcd09394-80d1-48cc-9c08-c78a0e2fb483,dingtalk_7dvmPVrNsTbLEHxmpHUvqwiEiE@dingtalk.local,"",regular,t,2025-12-08 14:47:57.527651,2025-12-08 14:47:57.527651,风骚,,淘系组,17506424333714444
|
||||
cd06f126-90cd-4d0c-8d40-97bd415feda7,dingtalk_JAkBLoLFyvKh9U66iitTiSYgiEiE@dingtalk.local,"",regular,t,2025-12-08 15:10:56.362294,2025-12-08 15:10:56.362294,银汉,,运营三部,1763344136213335
|
||||
d500949e-bc0c-406a-a0d0-b96d88e0a0a0,dingtalk_spmXYVZUbTXnFbtBGZqZ1wiEiE@dingtalk.local,"",regular,t,2025-12-08 14:07:41.771991,2025-12-08 14:07:41.771991,天殇,,,
|
||||
eda4a64d-8df1-4d78-95a3-7203c7e2a3cb,dingtalk_QiSBmXZCZIM1yjbv7eLzWhgiEiE@dingtalk.local,"",regular,t,2025-12-08 14:53:54.940177,2025-12-08 14:53:54.940177,玥光,,品类二十部,17496926595627973
|
||||
bc9db6d5-97c4-4808-9f21-a01536b5d180,dingtalk_cqj22Go7Az9NkyRwCrgDvQiEiE@dingtalk.local,"",regular,t,2025-12-08 15:32:06.861475,2025-12-08 15:32:06.861475,阿珂,,品类二十一部,1865650508684960
|
||||
6ff0568a-8a5e-4fc4-9732-ae67742d5776,dingtalk_NaGf1FTrQx8OO2sE3ciiXdQiEiE@dingtalk.local,"",regular,t,2025-12-08 15:36:13.355929,2025-12-08 15:36:13.355929,紫遥,,运营五部,17442488731912979
|
||||
5f66eb89-7cc1-424a-919a-e4ae15501ded,dingtalk_Mclb5RRU1iPRT90WZTXWqBQiEiE@dingtalk.local,"",regular,t,2025-12-08 15:37:09.99406,2025-12-08 15:37:09.99406,星隅,,京东一组,17083066976578870
|
||||
8a212068-c572-4f31-b127-adc75e9abcbd,dingtalk_k9yum9UxIHdh7ya8a7jhpQiEiE@dingtalk.local,"",regular,t,2025-12-08 15:50:36.015316,2025-12-08 15:50:36.015316,弘文,,亿家达组,17496921371624487
|
||||
54d99c0e-2723-41d9-a83a-ede03e334603,dingtalk_cAfFKsmXqUG21zQuwgsVuQiEiE@dingtalk.local,"",regular,t,2025-12-08 16:29:27.810371,2025-12-08 16:29:27.810371,洛神,,策划五部,123636246738744518
|
||||
6615d83d-2051-4755-bbf2-4a6fc94f81a4,dingtalk_x0TxiPumjDddrDYrhJnPFlwiEiE@dingtalk.local,"",regular,t,2025-12-08 16:41:45.748633,2025-12-08 16:41:45.748633,子芩,,运营七部,19420011141221252
|
||||
4c4e8135-c986-4fc9-9829-59df73ffd5df,dingtalk_NBVliPwfEX4uWnzmaii9E6cAiEiE@dingtalk.local,"",regular,t,2025-12-08 16:42:54.525313,2025-12-08 16:42:54.525313,贾宝玉,,B组,1613956121582779
|
||||
c38773fb-ef54-4fa0-a169-e1be939ff111,dingtalk_XZcRKWAQv0eJQVdC0DNtrwiEiE@dingtalk.local,"",regular,t,2025-12-08 16:43:13.799496,2025-12-08 16:43:13.799496,九尾狐,,淘系组,143965294623586931
|
||||
53110e48-a5fc-4199-932c-5ebede35312b,dingtalk_FZFOD1tqeVoUk9TTWiiD0lgiEiE@dingtalk.local,"",regular,t,2025-12-08 16:44:17.45231,2025-12-08 16:44:17.45231,君子,,运营七部,17572943882276811
|
||||
9ee6d379-88c1-4349-a098-b3681f3ca734,dingtalk_r4ZIJfdwAlfIGrpkaYBlkwiEiE@dingtalk.local,"",regular,t,2025-12-08 17:09:26.720736,2025-12-08 17:09:26.720736,姜且,,品类十五部,16928400407881062
|
||||
64eb81ac-986f-496a-90c5-614a741fe423,dingtalk_CNfTdqBEu8hNkyRwCrgDvQiEiE@dingtalk.local,"",regular,t,2025-12-08 11:55:19.50435,2025-12-08 11:55:19.50435,诸葛孔明,,亿家达组,296055386826252843
|
||||
988db6f2-684f-4b14-a309-0d5bb11f3be0,dingtalk_YTIZ208Z00UDvQzSq8GiSUQiEiE@dingtalk.local,"",regular,t,2025-12-08 11:58:14.550764,2025-12-08 11:58:14.550764,凌波,,亿家达组,17515064416289239
|
||||
2aab3ce9-4cde-4549-a72d-5613c511e4e0,dingtalk_c00pwUrOWoiiC3h9EiPbucugiEiE@dingtalk.local,"",regular,t,2025-12-08 13:31:53.27697,2025-12-08 13:31:53.27697,紫音,,品类一部,17573817191377921
|
||||
41a706db-cf4b-4466-8080-c4a1dcc00e43,dingtalk_kRR65mDGtiPth7ya8a7jhpQiEiE@dingtalk.local,"",regular,t,2025-12-08 13:47:50.361473,2025-12-08 13:47:50.361473,白寒枫,,品类三十九部,16625997730245105
|
||||
ff73f670-c87c-4c1f-9247-fbb94719123e,dingtalk_5fZr6s4IiSF2JQVdC0DNtrwiEiE@dingtalk.local,"",regular,t,2025-12-08 13:57:29.737091,2025-12-08 13:57:29.737091,齐静春,,品类十四部,215260585620154177
|
||||
5d9e8283-6d3c-4982-ad39-36b108ffae5f,dingtalk_AmKDP1LunqwQ6zzGzsEKDQiEiE@dingtalk.local,"",regular,t,2025-12-08 14:13:29.407382,2025-12-08 14:13:29.407382,仓央嘉措,,运营六部,17000124274795436
|
||||
e750c8c4-efb8-49b6-9575-dc44b359dfb1,dingtalk_0iSOTxa9ndIAa48OHPC5ymwiEiE@dingtalk.local,"",regular,t,2025-12-08 15:22:31.50313,2025-12-08 15:22:31.50313,兰芝,,品类一部,17575543003961158
|
||||
47eb2ffe-35d6-4c32-8ca5-0152f286f7f6,dingtalk_3QVo1cEznZ2JQVdC0DNtrwiEiE@dingtalk.local,"",regular,t,2025-12-08 16:10:10.101224,2025-12-08 16:10:10.101224,风清扬,,品类二十三部,16341755332761451
|
||||
2f02e5f1-9971-4a8c-99b2-2a6ea69feb1a,dingtalk_miP7SiS1n9cCFNkyRwCrgDvQiEiE@dingtalk.local,"",regular,t,2025-12-08 16:12:39.021062,2025-12-08 16:12:39.021062,阿瞒,,品类二十三部,28401745281219757
|
||||
08c8d274-a933-434e-a308-256a19d8918d,dingtalk_9MvRj1QaXzANpVAiP7Y6PHwiEiE@dingtalk.local,"",regular,t,2025-12-08 16:13:57.570403,2025-12-08 16:13:57.570403,宋甜儿,,亿家达组,17415708764251544
|
||||
9910dabd-be1e-400c-924f-f16e8a5e4446,dingtalk_COiig3riP8MmX6wYRiSZu0dXgiEiE@dingtalk.local,"",regular,t,2025-12-08 17:19:13.803534,2025-12-08 17:19:13.803534,青荷,,运营四部,17454581602992023
|
||||
19358e40-57e8-4151-a863-ad97a892be2f,dingtalk_5bbwSiikpwOzdyoOB2yWWeAiEiE@dingtalk.local,"",regular,t,2025-12-08 17:25:02.221293,2025-12-08 17:25:02.221293,飘梦,,运营三部,17445941222429573
|
||||
a791c0a4-8c50-4e6d-a13e-753009559708,dingtalk_16ymryxX4iPiiQP6nMGLmYkAiEiE@dingtalk.local,"",regular,t,2025-12-08 17:34:13.104203,2025-12-08 17:34:13.104203,柳影,,京东一组,17478775592231421
|
||||
a3437123-492b-42d7-b908-e77f64e60b3e,dingtalk_byoEwcmcuYsii7wbHpPr5YQiEiE@dingtalk.local,"",regular,t,2025-12-08 17:24:30.808697,2025-12-08 17:24:30.808697,阿雨,,运营六部,17224749853133112
|
||||
bcd5620f-8624-4caa-a8b8-bb299b64642d,dingtalk_oV7YmiSjOZOOuriSr29VkWjAiEiE@dingtalk.local,"",regular,t,2025-12-08 17:29:13.015051,2025-12-08 17:29:13.015051,无羡,,运营一部,1722216806100384
|
||||
582b6e10-0fff-4447-b1a0-c02e38bc3c3c,dingtalk_04FHNiisiPQvcTsW4NiP5cwTgiEiE@dingtalk.local,"",regular,t,2025-12-09 10:17:12.298634,2025-12-09 10:17:12.298634,西门吹雪,,品类三部,050504695225058236
|
||||
0d31a8b1-d687-491e-a010-2c6d8d35d520,dingtalk_SBdABVTN9FiP21zQuwgsVuQiEiE@dingtalk.local,"",regular,t,2025-12-08 10:44:38.588283,2025-12-08 10:44:38.588283,任盈盈,,运营四部,16165532533916345
|
||||
cb231f70-1b48-4198-b557-70e0ba7d8800,dingtalk_QEAan84mLSiiJQVdC0DNtrwiEiE@dingtalk.local,"",regular,t,2025-12-08 17:35:45.246366,2025-12-08 17:35:45.246366,吕雉,,欧意朗组,3128111246706337
|
||||
75555073-df45-44c1-9866-01388b7556e1,dingtalk_MiixtMK46XHsD7oFXJeyKiSgiEiE@dingtalk.local,"",regular,t,2025-12-09 09:37:05.073754,2025-12-09 09:37:05.073754,吴起,,淘系组,1756345538060275
|
||||
05d5b048-35c8-4d0b-ad7d-5c358b00911a,dingtalk_lExkTJy2RdATsW4NiP5cwTgiEiE@dingtalk.local,"",regular,t,2025-12-19 18:17:10.780439,2025-12-19 18:17:10.780439,玉麒麟,,3D视觉组,090563040224133278
|
||||
50bc5eee-fede-4a91-be07-e7a1f412d555,dingtalk_39M5nUEVLEwiSJHCrQzSn8giEiE@dingtalk.local,"",regular,t,2025-12-19 18:17:08.077601,2025-12-19 18:17:08.077601,柳随风,,3D视觉组,17572941769733938
|
||||
df6a2747-3e19-4293-bb57-287cc123a96c,dingtalk_QwHe3OHOoaEUk9TTWiiD0lgiEiE@dingtalk.local,"",regular,t,2025-12-20 13:38:46.410063,2025-12-20 13:38:46.410063,安乔,,3D视觉组,16418683537507259
|
||||
1d1fe989-c480-4983-aaf3-d56e214ac587,dingtalk_ymDCt81dugUv4o8xEmfLhQiEiE@dingtalk.local,"",regular,t,2025-12-09 10:23:20.790985,2025-12-09 10:23:20.790985,陈琳,,京东二组,17533216824172713
|
||||
9bea34e8-7521-4df7-a5c8-2196e72079b9,dingtalk_U7C3JU5Ok1eCm1q5KPOuegiEiE@dingtalk.local,"",regular,t,2025-12-09 13:40:56.727829,2025-12-09 13:40:56.727829,铁心兰,,品类二十部,17627383966222835
|
||||
b43951e7-dc40-44c2-b70a-7018a6fa739f,dingtalk_bfvoQZ3j7RsD7oFXJeyKiSgiEiE@dingtalk.local,"",regular,t,2025-12-23 13:51:45.186377,2025-12-23 13:51:45.186377,听风,,3D视觉五组,17548833107994191
|
||||
2335750b-d402-45fd-b92c-c6faa30c4121,dingtalk_77p1wED7GV2Wnzmaii9E6cAiEiE@dingtalk.local,"",regular,t,2025-12-09 15:04:34.946583,2025-12-09 15:04:34.946583,东坡,,B组,16067855444588468
|
||||
7d04cdbe-7405-40bc-a29b-ddf5a776fcd8,dingtalk_P742978QUkFra7mTnhdKdAiEiE@dingtalk.local,"",regular,t,2025-12-10 11:40:37.108914,2025-12-10 11:40:37.108914,鹿眠,,品类十八部,17058887769059909
|
||||
0dd542a1-8d16-427c-8f69-8f57480ba0b7,dingtalk_kiiu1sMt0ngoDvQzSq8GiSUQiEiE@dingtalk.local,"",regular,t,2025-12-10 09:56:37.121282,2025-12-10 09:56:37.121282,翠柏,,淘系组,17615298470373206
|
||||
f72ebb88-a613-4195-a845-c37ed156df18,dingtalk_bFcGcKoPkJsii7wbHpPr5YQiEiE@dingtalk.local,"",regular,t,2025-12-11 13:25:03.406773,2025-12-11 13:25:03.406773,陈芳,,视觉支持,18484069111226091
|
||||
403a3f4d-1531-408b-8443-df1c63e1883d,dingtalk_qqeDnBAHKzWiSvStBMrhiSEgiEiE@dingtalk.local,"",regular,t,2025-12-11 16:26:49.192364,2025-12-11 16:26:49.192364,凤年,,品类二十八部,16340005661038461
|
||||
b2f2fe31-6338-4a15-91b0-589509a7fd72,dingtalk_A4wFwuo0wbxrDYrhJnPFlwiEiE@dingtalk.local,"",regular,t,2025-12-08 17:35:45.840902,2025-12-08 17:35:45.840902,武松,,运营三部,2462142304780908
|
||||
203dc5a5-3e4c-422a-b3df-e9279223bfbf,dingtalk_J0iiNR4mV3yEUk9TTWiiD0lgiEiE@dingtalk.local,"",regular,t,2025-12-15 11:39:37.646853,2025-12-15 11:39:37.646853,荀瑶,,淘系三组,16024657445802860
|
||||
a10420a4-4bfa-4072-926b-0e1b2199ffcf,dingtalk_9uo0uqkHwfjozGg2f9I27AiEiE@dingtalk.local,"",regular,t,2025-12-15 17:41:48.76216,2025-12-15 17:41:48.76216,明理,,运营八部,17560856329866856
|
||||
cbadc4fe-9a05-484d-9e10-2777f2ab8521,dingtalk_ajddn2XLxz0Uk9TTWiiD0lgiEiE@dingtalk.local,"",regular,t,2025-12-16 13:44:27.168591,2025-12-16 13:44:27.168591,月卿,,平面视觉组,16568983892989658
|
||||
5119c031-d510-4959-af78-07d069ce9f2d,dingtalk_H0bqW468niir5m33kFjt8ZQiEiE@dingtalk.local,"",regular,t,2025-12-12 11:25:47.711876,2025-12-12 11:25:47.711876,卫庄,,视频部,16073030713017985
|
||||
70c725e5-a577-46ef-92f6-e2e29b0a9bdd,dingtalk_BcXrShbIQOcii7wbHpPr5YQiEiE@dingtalk.local,"",regular,t,2025-12-22 09:21:14.925967,2025-12-22 09:21:14.925967,余笙,,平面视觉四组,15966761211205531
|
||||
09b0e629-60b4-4b1c-9400-31012bbe1da2,dingtalk_glj1DY7lhPAnscJ5vJiS0YAiEiE@dingtalk.local,"",regular,t,2025-12-24 17:56:48.335743,2025-12-24 17:56:48.335743,忆江,,3D视觉组,17542711585739763
|
||||
0d8a3e84-7945-4f8a-8d2a-6155ec305817,dingtalk_tIuXkeCM0Qca48OHPC5ymwiEiE@dingtalk.local,"",regular,t,2025-12-09 11:55:44.392995,2025-12-09 11:55:44.392995,紫竹,,天猫二组,17403624061967983
|
||||
77ec0cbb-c241-4add-a4ee-2759bc377d0d,dingtalk_w2H6jlsKaEJrDYrhJnPFlwiEiE@dingtalk.local,"",regular,t,2025-12-26 10:01:58.464404,2025-12-26 10:01:58.464404,寒月,,不凡组,17533215228739199
|
||||
6abbfeb4-281f-4b17-b06a-14c0abe83baa,dingtalk_kiSbP8QeOK7EOiPekmGKaOagiEiE@dingtalk.local,"",regular,t,2025-12-26 10:32:54.910564,2025-12-26 10:32:54.910564,怀璧,,品类二十九部,17566901051904338
|
||||
2a5d3a18-86ed-490f-9df8-39a9912bfc78,dingtalk_GNFDriSAyHTKWnzmaii9E6cAiEiE@dingtalk.local,"",regular,t,2025-12-08 10:06:18.443918,2025-12-08 10:06:18.443918,曳舞,,品类十八部,17554806912862981
|
||||
4617d6fb-86c0-47da-8188-7f850b7f85b8,dingtalk_ii65BHmAiPe8Z5haPiPS8zHsAiEiE@dingtalk.local,"",regular,t,2025-12-08 11:17:11.464705,2025-12-08 11:17:11.464705,玉峰,,品类三十部,17603188872032210
|
||||
109653d7-6445-4d20-a5a9-a6aa2e7b75bf,dingtalk_efeZII25jGNZkXdudmgZwwiEiE@dingtalk.local,"",regular,t,2025-12-08 13:31:05.750378,2025-12-08 13:31:05.750378,映月,,淘系二组,17560854341923565
|
||||
c76f96b7-07b7-4b8e-9a3a-4e17c6e97dc0,dingtalk_Hjnfl4qzZiSt5haPiPS8zHsAiEiE@dingtalk.local,"",regular,t,2025-12-08 17:38:08.946456,2025-12-08 17:38:08.946456,吕后,,亿家达组,17587635279661603
|
||||
c60f0ac2-01a4-4bd8-9a00-a4cd02eecf01,dingtalk_RjATK8sZ2ZGWnzmaii9E6cAiEiE@dingtalk.local,"",regular,t,2025-12-08 18:11:20.037478,2025-12-08 18:11:20.037478,幼薇,,品类十六部,16556885865749054
|
||||
38ab92bb-2cb2-4242-9ee4-282e7be76888,dingtalk_84q2lriSIpjpgv8wq0mZoiiwiEiE@dingtalk.local,"",regular,t,2025-12-08 18:15:17.126949,2025-12-08 18:15:17.126949,鹏举,,品类二十四部,16218204717384953
|
||||
e6bc4c50-faaa-4e4b-8804-8cdb8b60f384,dingtalk_EqZfVJ7rXjPoCUKHIMj12wiEiE@dingtalk.local,"",regular,t,2025-12-08 18:36:30.294164,2025-12-08 18:36:30.294164,虹影,,品类二十五部,1756346035160853
|
||||
e7db9f2b-44fd-4b57-a98d-4f5ae2557774,dingtalk_iS0BIRiicQJOWWnzmaii9E6cAiEiE@dingtalk.local,"",regular,t,2025-12-09 10:55:11.06324,2025-12-09 10:55:11.06324,虞子期,,京东一组,17095156463308025
|
||||
519c3f25-2ee7-4a14-b6af-ce1e0b4a5a97,dingtalk_p0K8jKV6gAmiSvStBMrhiSEgiEiE@dingtalk.local,"",regular,t,2025-12-09 11:33:14.596457,2025-12-09 11:33:14.596457,丹参,,亿家达组,17421752731324945
|
||||
4df0ab65-6e6b-4255-830a-60f5ca47c9ad,dingtalk_zu3iPUbDB1CZNkyRwCrgDvQiEiE@dingtalk.local,"",regular,t,2025-12-09 14:46:36.694113,2025-12-09 14:46:36.694113,天禄,,亿家达组,16323602192662047
|
||||
0e228a90-64f9-42ae-bffd-294a2d2d3117,dingtalk_WkcBxbiP52q4Uk9TTWiiD0lgiEiE@dingtalk.local,"",regular,t,2025-12-09 15:25:23.330333,2025-12-09 15:25:23.330333,柳永,,运营一部,17587653792844963
|
||||
0da6ee2d-6a92-49e5-8e9b-c4eb8088a4b1,dingtalk_DhbFUiSfpJxUii7wbHpPr5YQiEiE@dingtalk.local,"",regular,t,2025-12-09 17:10:12.552527,2025-12-09 17:10:12.552527,朵拉,,京东一组,17234258917688627
|
||||
1fefddc2-b009-453e-bf59-eb5972eafe02,dingtalk_W9CkZGphZzdrDYrhJnPFlwiEiE@dingtalk.local,"",regular,t,2025-12-09 17:34:17.996951,2025-12-09 17:34:17.996951,独孤伽罗,,淘系一组,16577916241113553
|
||||
7fbbdcee-1a57-488e-8c47-233386089768,dingtalk_wqiic8Ks9TBiiuriSr29VkWjAiEiE@dingtalk.local,"",regular,t,2025-12-10 13:56:22.920898,2025-12-10 13:56:22.920898,禹铸,,京东二组,17639479036692854
|
||||
7ce60a91-00ed-4373-8dfa-34e916f71620,dingtalk_zwwgiShnq4qO21zQuwgsVuQiEiE@dingtalk.local,"",regular,t,2025-12-10 15:03:20.083504,2025-12-10 15:03:20.083504,小昭,,品类三十五部,16568984136467784
|
||||
e470cd00-8ec4-449e-aa15-393a4b53bfed,dingtalk_iSGd4l2RqxFtoFo9qJu1YlwiEiE@dingtalk.local,"",regular,t,2025-12-10 16:45:23.627358,2025-12-10 16:45:23.627358,陆凌,,亿家达组,17161694127407306
|
||||
049ec8f7-eb49-4975-90ca-b3eecea43e74,dingtalk_wiiwdt3PIvH621zQuwgsVuQiEiE@dingtalk.local,"",regular,t,2025-12-11 11:33:13.508645,2025-12-11 11:33:13.508645,息妫,,天猫二组,16556877495906826
|
||||
c2a7037e-8c8f-41ef-9585-2098283204ad,dingtalk_I99UiiJ7uM7Mii7wbHpPr5YQiEiE@dingtalk.local,"",regular,t,2025-12-11 13:57:00.419978,2025-12-11 13:57:00.419978,舒窈,,京东一组,16496398995462014
|
||||
9b8aa2d5-bf11-481e-9220-8902a4df58ac,dingtalk_iSjKVymviPIZfmtWCeR6B95giEiE@dingtalk.local,"",regular,t,2025-12-11 14:35:27.976644,2025-12-11 14:35:27.976644,玉泉,,京东二组,17430385846558592
|
||||
9f40b6ff-3e99-49aa-8a50-67f283d0b09b,dingtalk_knOS3cfurg3LEHxmpHUvqwiEiE@dingtalk.local,"",regular,t,2025-12-26 11:59:27.250778,2025-12-26 11:59:27.250778,玄霜,,3D视觉组,1758158930543775
|
||||
2b508890-15c4-4e63-aada-fa10129819af,dingtalk_GLP5g4vOziS4UaX5uziPPGFQiEiE@dingtalk.local,"",regular,t,2025-12-26 13:07:29.915281,2025-12-26 13:07:29.915281,疏桐,,淘系二组,17663670943273198
|
||||
39abce09-ff46-4c9f-bd17-6dbe4f891f2d,dingtalk_iSl4EXy7SVx221zQuwgsVuQiEiE@dingtalk.local,"",regular,t,2025-12-09 09:19:38.117319,2025-12-09 09:19:38.117319,辰景,,淘系一组,16601812663756272
|
||||
c54f4acd-957e-42b8-8275-975d53b89171,dingtalk_eyv6B7siSwqr6CcMLJ4b8HwiEiE@dingtalk.local,"",regular,t,2025-12-15 17:22:24.530842,2025-12-15 17:22:24.530842,翠玉,,淘系三组,17633435503163170
|
||||
a7b59aa8-4a1e-4221-988d-65c29a454814,dingtalk_S0n6rtcJXdLmroafZPJiPewiEiE@dingtalk.local,"",regular,t,2025-12-12 14:55:27.665015,2025-12-12 14:55:27.665015,白桦,,品类五十五部,17654167659368415
|
||||
a5e599a5-bee8-4890-8a9c-c15144622f4a,dingtalk_NqtpzYEXg6Q3zRWYFt8QJwiEiE@dingtalk.local,"",regular,t,2025-12-26 16:06:04.292319,2025-12-26 16:06:04.292319,观澜,,亿家达组,17663670866694015
|
||||
d2c30e78-77a8-4c90-a957-cdb9ef56ac5c,dingtalk_LpxHSL2NUMRgv8wq0mZoiiwiEiE@dingtalk.local,"",admin,t,2025-12-08 00:57:39.021873,2025-12-08 21:42:44.762747,陆南亭,,视觉中心 / 智管信息中心 / 品牌策划中心 / 摄影中心,09061563251220435
|
||||
449abbd6-47b9-4a4b-9999-e800150bbae6,dingtalk_8DFXgIRSGLsii7wbHpPr5YQiEiE@dingtalk.local,"",regular,t,2025-12-27 00:17:14.208662,2025-12-27 00:17:14.208662,飞天,,淘系三组,1741830891876540
|
||||
|
BIN
migration-backup-complete/config-inserts.tar.gz
Normal file
BIN
migration-backup-complete/config-inserts.tar.gz
Normal file
Binary file not shown.
9
migration-backup-complete/config-inserts/AiModel.sql
Normal file
9
migration-backup-complete/config-inserts/AiModel.sql
Normal file
@ -0,0 +1,9 @@
|
||||
INSERT INTO "AiModel" VALUES (ffb5bc96-75f5-4fe4-a99f-608864b795bc,8a968383-f506-4452-9422-b34726505430,volcano-video-master,VIDEO「视频模型」,支持文生视频、图生视频等多种模式,自动选择最佳模型,t,f,t,f,0,2025-12-09 18:30:53.653026,2025-12-09 18:30:53.653026,{"supportSeed": true, "durationRange": {"max": 12, "min": 2}, "supportedModes": ["text-to-video", "first-frame", "first-last-frame", "reference-images"], "supportedRatios": ["16:9", "4:3", "1:1", "3:4", "9:16", "21:9", "adaptive"], "supportWatermark": true, "maxReferenceImages": 4, "supportCameraFixed": true, "supportedResolutions": ["480p", "720p", "1080p"], "supportReturnLastFrame": true},{"ratio": "16:9", "duration": 5, "watermark": true, "resolution": "720p", "cameraFixed": false},f,,,);
|
||||
INSERT INTO "AiModel" VALUES (3dc9c26e-7410-40d6-b6d3-2fa4fec9d396,8a968383-f506-4452-9422-b34726505430,doubao-seedance-1-0-pro-250528,SeedancePro,全功能专业版,支持文生视频、图生视频(首帧/首尾帧),最高支持1080p,t,f,t,f,10,2025-12-09 18:30:53.665138,2025-12-09 18:30:53.665138,{"supportSeed": true, "durationRange": {"max": 12, "min": 2}, "supportedModes": ["text-to-video", "first-frame", "first-last-frame"], "supportedRatios": ["16:9", "4:3", "1:1", "3:4", "9:16", "21:9"], "supportWatermark": true, "supportCameraFixed": true, "supportedResolutions": ["480p", "720p", "1080p"], "supportReturnLastFrame": true},{"ratio": "16:9", "duration": 5, "watermark": true, "resolution": "720p", "cameraFixed": false},t,ffb5bc96-75f5-4fe4-a99f-608864b795bc,,);
|
||||
INSERT INTO "AiModel" VALUES (4fe34457-a3eb-4563-afbe-9fd093251426,8a968383-f506-4452-9422-b34726505430,doubao-seedance-1-0-pro-fast-251015,SeedanceProFast,快速生成版本,支持文生视频、图生视频(首帧),生成速度更快,t,f,t,f,20,2025-12-09 18:30:53.683021,2025-12-09 18:30:53.683021,{"supportSeed": false, "durationRange": {"max": 12, "min": 2}, "supportedModes": ["text-to-video", "first-frame"], "supportedRatios": ["16:9", "4:3", "1:1", "3:4", "9:16", "21:9"], "supportWatermark": true, "supportCameraFixed": false, "supportedResolutions": ["480p", "720p", "1080p"], "supportReturnLastFrame": true},{"ratio": "16:9", "duration": 5, "watermark": true, "resolution": "720p", "cameraFixed": false},t,ffb5bc96-75f5-4fe4-a99f-608864b795bc,,);
|
||||
INSERT INTO "AiModel" VALUES (e8805ca6-4741-4eda-b800-b2c0d513299f,8a968383-f506-4452-9422-b34726505430,doubao-seedance-1-0-lite-i2v-250428,SeedanceLiteI2V,图生视频轻量版,支持首帧、首尾帧、参考图(1-4张)模式,t,f,t,f,30,2025-12-09 18:30:53.689929,2025-12-09 18:30:53.689929,{"supportSeed": true, "durationRange": {"max": 12, "min": 2}, "supportedModes": ["first-frame", "first-last-frame", "reference-images"], "supportedRatios": ["16:9", "4:3", "1:1", "3:4", "9:16", "21:9", "adaptive"], "supportWatermark": true, "maxReferenceImages": 4, "supportCameraFixed": true, "supportedResolutions": ["480p", "720p"], "supportReturnLastFrame": false},{"ratio": "16:9", "duration": 5, "watermark": true, "resolution": "720p", "cameraFixed": false},t,ffb5bc96-75f5-4fe4-a99f-608864b795bc,,);
|
||||
INSERT INTO "AiModel" VALUES (b5b6f9fd-4299-4345-af51-79354bd504eb,8a968383-f506-4452-9422-b34726505430,doubao-seedance-1-0-lite-t2v-250428,SeedanceLiteT2V,文生视频轻量版,专注于文本转视频,成本更低,f,f,t,f,40,2025-12-09 18:30:53.695034,2025-12-09 18:30:53.695034,{"supportSeed": true, "durationRange": {"max": 12, "min": 2}, "supportedModes": ["text-to-video"], "supportedRatios": ["16:9", "4:3", "1:1", "3:4", "9:16", "21:9"], "supportWatermark": true, "supportCameraFixed": true, "supportedResolutions": ["480p", "720p", "1080p"], "supportReturnLastFrame": false},{"ratio": "16:9", "duration": 5, "watermark": true, "resolution": "720p", "cameraFixed": false},t,ffb5bc96-75f5-4fe4-a99f-608864b795bc,,);
|
||||
INSERT INTO "AiModel" VALUES (27420787-1851-4cd2-bb53-162592bd345e,7bce5924-bfd2-4e31-9f1d-825bd9d9f8b1,qwen3-vl-plus,千问3「对话模型」,,f,f,t,t,0,2025-12-05 16:34:19.456083,2025-12-08 10:56:20.592,,,f,,,);
|
||||
INSERT INTO "AiModel" VALUES (1b652fc6-02a7-4a78-b7e4-3406232a47f6,259d8c41-8f93-4ee6-bd3d-5ad4301123e3,gpt-5-nano,GTP-5「对话模型」,,f,f,t,f,0,2025-12-08 18:50:38.600951,2025-12-08 10:56:57.283,,,f,,,);
|
||||
INSERT INTO "AiModel" VALUES (138a63c0-f990-406c-a5d2-6b4f6d522120,ee9d756b-1ff5-436c-b1c9-466d8c0ba730,doubao-seedream-4-5-251128,既梦4.5「生图模型」,,f,t,t,f,0,2025-12-08 17:49:54.015232,2025-12-08 10:56:40.026,,,f,,,);
|
||||
INSERT INTO "AiModel" VALUES (6ed69d9f-db86-4012-a1e6-126420aca9e4,adb28b37-f7e1-44e6-832a-66eedc6aa764,nano-banana-pro,香蕉PRO「生图模型」,,t,t,t,f,0,2025-12-06 20:29:09.746812,2025-12-19 07:12:59.737,,,f,,nano-banana-pro-vt,nano-banana-fast);
|
||||
7
migration-backup-complete/config-inserts/AiProvider.sql
Normal file
7
migration-backup-complete/config-inserts/AiProvider.sql
Normal file
@ -0,0 +1,7 @@
|
||||
INSERT INTO "AiProvider" VALUES (7bce5924-bfd2-4e31-9f1d-825bd9d9f8b1,阿里云,alibaba,https://dashscope.aliyuncs.com/compatible-mode/v1,sk-6f600183ff504629863fdbdc61d26546,t,2025-12-05 16:33:20.2402,2025-12-05 16:33:20.2402,f138bcb0-c43f-4886-b8eb-d037f932dd67);
|
||||
INSERT INTO "AiProvider" VALUES (5f933999-a078-437f-80f7-695889f44311,千问本地模型,local,http://192.168.150.22:8001,qwen25_vl_api_key_2024,t,2025-12-06 10:31:32.064657,2025-12-06 10:31:32.064657,2b84d217-db54-49f3-9b36-1f58f974d924);
|
||||
INSERT INTO "AiProvider" VALUES (259d8c41-8f93-4ee6-bd3d-5ad4301123e3,环科API,openai,https://api.huandutech.com/v1,sk-tMFqWBeV4H4UIoGG1LFAn8wJHUQPnbcujNXL13Q5I7TJ9pY4,t,2025-12-05 16:50:45.04327,2025-12-06 13:05:51.164,2b84d217-db54-49f3-9b36-1f58f974d924);
|
||||
INSERT INTO "AiProvider" VALUES (0356b492-f34d-4990-8979-eda5238a3737,千问视频,qianwen-video,https://dashscope.aliyuncs.com/api/v1,sk-6f600183ff504629863fdbdc61d26546 ,t,2025-12-07 14:29:31.287175,2025-12-07 14:29:31.287175,2b84d217-db54-49f3-9b36-1f58f974d924);
|
||||
INSERT INTO "AiProvider" VALUES (ee9d756b-1ff5-436c-b1c9-466d8c0ba730,既梦模型,volcano-vision,https://ark.cn-beijing.volces.com,e72d5f7e-e1d9-4d9b-af9b-01766d93c313,t,2025-12-08 17:47:19.650839,2025-12-08 17:47:19.650839,f138bcb0-c43f-4886-b8eb-d037f932dd67);
|
||||
INSERT INTO "AiProvider" VALUES (8a968383-f506-4452-9422-b34726505430,火山引擎视频,volcano-video,https://ark.cn-beijing.volces.com/api/v3,e72d5f7e-e1d9-4d9b-af9b-01766d93c313,t,2025-12-09 12:02:51.304599,2025-12-09 12:02:51.304599,d2c30e78-77a8-4c90-a957-cdb9ef56ac5c);
|
||||
INSERT INTO "AiProvider" VALUES (adb28b37-f7e1-44e6-832a-66eedc6aa764,Gemini中转,gemini,https://grsai.dakka.com.cn,sk-79771fbb57de4f7eb7e2d0bb5b42af54,t,2025-12-06 22:32:46.461097,2025-12-16 11:21:05.813,d2c30e78-77a8-4c90-a957-cdb9ef56ac5c);
|
||||
@ -0,0 +1 @@
|
||||
INSERT INTO "AuthSettings" VALUES (a191e963-6fa3-42da-a720-afda03242b33,ding1bs1gxwrcfu16x0f,qUmj_gBDzpPEYR3RA3hRqKzwu11a986O-wKfP8V5lDHXn7XJrXxW79KIeP5G-mcY,t,2025-12-09 06:46:33.088,d2c30e78-77a8-4c90-a957-cdb9ef56ac5c,f,[]);
|
||||
9
migration-backup-complete/config-inserts/NavLinks.sql
Normal file
9
migration-backup-complete/config-inserts/NavLinks.sql
Normal file
@ -0,0 +1,9 @@
|
||||
INSERT INTO "NavLinks" VALUES (b4b4d6cd-1703-407f-a721-42b6e89997a4,背景去除,https://yydd.ai/remove_bg.html,0,t,2025-12-07 20:02:42.408499,2025-12-07 20:02:42.408499,f138bcb0-c43f-4886-b8eb-d037f932dd67);
|
||||
INSERT INTO "NavLinks" VALUES (7374f2df-8c57-4f76-8ae5-622c808bd406,去除水印,https://yydd.ai/watermark-remover.html,0,t,2025-12-07 20:42:15.14062,2025-12-07 20:42:15.14062,f138bcb0-c43f-4886-b8eb-d037f932dd67);
|
||||
INSERT INTO "NavLinks" VALUES (bba77113-fff6-46b7-b81f-7bc1fb8cc931,视频魔方,https://yydd.ai/video-generator.html,0,t,2025-12-07 20:43:09.74764,2025-12-07 20:43:09.74764,f138bcb0-c43f-4886-b8eb-d037f932dd67);
|
||||
INSERT INTO "NavLinks" VALUES (ba080487-554a-4365-8ccc-305c7ff234af,商品策划,https://yydd.ai/keyword-analyzer.html,0,t,2025-12-07 20:45:00.005798,2025-12-07 20:45:00.005798,f138bcb0-c43f-4886-b8eb-d037f932dd67);
|
||||
INSERT INTO "NavLinks" VALUES (a0fe06cc-34a2-4d9c-b816-a269660acfbc,市场数据,https://hq.yucekj.com/,0,t,2025-12-07 20:46:09.209665,2025-12-07 20:46:09.209665,f138bcb0-c43f-4886-b8eb-d037f932dd67);
|
||||
INSERT INTO "NavLinks" VALUES (2ede3a36-8ba7-490e-88a5-6c34326602c7,数据魔方,http://218.93.9.141:8088,0,t,2025-12-07 20:51:14.825638,2025-12-07 20:51:14.825638,f138bcb0-c43f-4886-b8eb-d037f932dd67);
|
||||
INSERT INTO "NavLinks" VALUES (418391e8-6d43-41d5-9934-c5bf1cbb6cec,神奇替换,https://yydd.ai/magic-replace-v2.html,0,t,2025-12-07 20:43:47.201898,2025-12-08 03:20:44.512,f138bcb0-c43f-4886-b8eb-d037f932dd67);
|
||||
INSERT INTO "NavLinks" VALUES (f784ca3b-dc1a-4558-9064-3b5c60b9da43,清晰拓展,https://yydd.ai/home.html,0,t,2025-12-07 21:51:23.775479,2025-12-09 06:20:39.326,f138bcb0-c43f-4886-b8eb-d037f932dd67);
|
||||
INSERT INTO "NavLinks" VALUES (970cab86-f7a6-4cc8-82b9-0ddb8d38b945,品牌「素材库」,https://3d.yydd.ai,0,t,2025-12-24 09:51:05.848847,2025-12-24 01:51:47.765,d2c30e78-77a8-4c90-a957-cdb9ef56ac5c);
|
||||
@ -0,0 +1,2 @@
|
||||
INSERT INTO "SiteSettings" VALUES (b0cab85c-6a75-47b9-84e4-2af02ef03072,由壹点AI,,,,2025-12-27 03:06:25.843,d2c30e78-77a8-4c90-a957-cdb9ef56ac5c,f,t,17:30,23:30,正在升级服务器);
|
||||
INSERT INTO "SiteSettings" VALUES (53b02fe7-190d-4881-a98f-4ba90751342a,由壹点AI,https://s3.1080p.hk/shuzhou/2025/05/18/8ebadf0a7cc34eaea00e8619b8efb827.png,https://s3.1080p.hk/shuzhou/2025/05/18/f6f20d120a4e45aeaae3411fe0000b6a.png,https://s3.1080p.hk/shuzhou/2025/05/18/8ebadf0a7cc34eaea00e8619b8efb827.png,2025-12-26 09:52:29.427,d2c30e78-77a8-4c90-a957-cdb9ef56ac5c,f,f,19:00,23:00,修复生图图片不显示的问题中);
|
||||
@ -0,0 +1 @@
|
||||
INSERT INTO "StorageConfig" VALUES (65db07c7-9c3d-427b-99b6-177a7e69b20b,MinIO S3 存储,s3,https://s3.1080p.hk,us-east-1,jsxiangche,AEvT1p0wSNjow3Asu9NV,u8nzFl1S6dNoT5PQaQhkHz8Du6iX0hVnPswtvHhs,https://s3.1080p.hk/jsxiangche,t,t,2025-12-05 21:45:28.908925,2025-12-05 13:45:57.284,2b84d217-db54-49f3-9b36-1f58f974d924);
|
||||
@ -0,0 +1,7 @@
|
||||
INSERT INTO "SystemSettings" VALUES (cb34112b-f528-40b9-bdb4-84e99f0c7518,siteName,"由壹点AI",2025-12-07 08:38:27.742,2b84d217-db54-49f3-9b36-1f58f974d924);
|
||||
INSERT INTO "SystemSettings" VALUES (91e39afc-6373-48a9-94e7-40d9200b0377,siteLogo,"https://s3.1080p.hk/shuzhou/2025/05/18/8ebadf0a7cc34eaea00e8619b8efb827.png",2025-12-07 08:38:28.093,2b84d217-db54-49f3-9b36-1f58f974d924);
|
||||
INSERT INTO "SystemSettings" VALUES (6ceee557-d7c1-4761-9ec7-aa41bdf20824,favicon,"https://s3.1080p.hk/shuzhou/2025/05/18/8ebadf0a7cc34eaea00e8619b8efb827.png",2025-12-07 08:38:28.424,2b84d217-db54-49f3-9b36-1f58f974d924);
|
||||
INSERT INTO "SystemSettings" VALUES (da7fc4df-57eb-4d68-8bbb-fbaf5645977c,logoDark,"https://s3.1080p.hk/shuzhou/2025/05/18/f6f20d120a4e45aeaae3411fe0000b6a.png",2025-12-07 08:38:28.738,2b84d217-db54-49f3-9b36-1f58f974d924);
|
||||
INSERT INTO "SystemSettings" VALUES (98fa2563-8f24-4b95-b247-1d44745fa938,logoLight,"https://s3.1080p.hk/shuzhou/2025/05/18/8ebadf0a7cc34eaea00e8619b8efb827.png",2025-12-07 08:38:29.072,2b84d217-db54-49f3-9b36-1f58f974d924);
|
||||
INSERT INTO "SystemSettings" VALUES (10a9e655-5260-46ec-af3e-762b2217f8d5,starter_questions,["帮我把这张商品图背景换成纯白,突出产品。", "给这张图加个促销标签:‘限时折扣5折’", "分析最近30天竞品的销量趋势,给我一个简报", "为这款新品写一句吸引人的广告语"],2025-12-07 14:14:51.474,f138bcb0-c43f-4886-b8eb-d037f932dd67);
|
||||
INSERT INTO "SystemSettings" VALUES (ff7cb982-0a01-4e21-8bed-ed4ca606e9c5,login_notification,{"title": "4.0系统更新维护公告", "content": "系统全面结构优化升级更新,将支持对话记录数据永久保存,支持多模型自由选择。预计维护完成时间约12月8日下午。", "enabled": true},2025-12-07 18:21:57.858,f138bcb0-c43f-4886-b8eb-d037f932dd67);
|
||||
BIN
migration-backup-complete/config-sql.tar.gz
Normal file
BIN
migration-backup-complete/config-sql.tar.gz
Normal file
Binary file not shown.
41
migration-backup-complete/config-sql/AiModel.sql
Normal file
41
migration-backup-complete/config-sql/AiModel.sql
Normal file
@ -0,0 +1,41 @@
|
||||
--
|
||||
-- PostgreSQL database dump
|
||||
--
|
||||
|
||||
\restrict yo9d1gVMUGQpG6orsdd0cTI4j7PaQyvMaLpgxrvYvJ1GZKQTsBgm6jf79eMvpz3
|
||||
|
||||
-- Dumped from database version 16.11 (Ubuntu 16.11-0ubuntu0.24.04.1)
|
||||
-- Dumped by pg_dump version 16.11 (Ubuntu 16.11-0ubuntu0.24.04.1)
|
||||
|
||||
SET statement_timeout = 0;
|
||||
SET lock_timeout = 0;
|
||||
SET idle_in_transaction_session_timeout = 0;
|
||||
SET client_encoding = 'UTF8';
|
||||
SET standard_conforming_strings = on;
|
||||
SELECT pg_catalog.set_config('search_path', '', false);
|
||||
SET check_function_bodies = false;
|
||||
SET xmloption = content;
|
||||
SET client_min_messages = warning;
|
||||
SET row_security = off;
|
||||
|
||||
--
|
||||
-- Data for Name: AiModel; Type: TABLE DATA; Schema: public; Owner: ai_chatbot_user
|
||||
--
|
||||
|
||||
INSERT INTO public."AiModel" VALUES ('ffb5bc96-75f5-4fe4-a99f-608864b795bc', '8a968383-f506-4452-9422-b34726505430', 'volcano-video-master', 'VIDEO「视频模型」', '支持文生视频、图生视频等多种模式,自动选择最佳模型', true, false, true, false, 0, '2025-12-09 18:30:53.653026', '2025-12-09 18:30:53.653026', '{"supportSeed": true, "durationRange": {"max": 12, "min": 2}, "supportedModes": ["text-to-video", "first-frame", "first-last-frame", "reference-images"], "supportedRatios": ["16:9", "4:3", "1:1", "3:4", "9:16", "21:9", "adaptive"], "supportWatermark": true, "maxReferenceImages": 4, "supportCameraFixed": true, "supportedResolutions": ["480p", "720p", "1080p"], "supportReturnLastFrame": true}', '{"ratio": "16:9", "duration": 5, "watermark": true, "resolution": "720p", "cameraFixed": false}', false, NULL, NULL, NULL);
|
||||
INSERT INTO public."AiModel" VALUES ('3dc9c26e-7410-40d6-b6d3-2fa4fec9d396', '8a968383-f506-4452-9422-b34726505430', 'doubao-seedance-1-0-pro-250528', 'SeedancePro', '全功能专业版,支持文生视频、图生视频(首帧/首尾帧),最高支持1080p', true, false, true, false, 10, '2025-12-09 18:30:53.665138', '2025-12-09 18:30:53.665138', '{"supportSeed": true, "durationRange": {"max": 12, "min": 2}, "supportedModes": ["text-to-video", "first-frame", "first-last-frame"], "supportedRatios": ["16:9", "4:3", "1:1", "3:4", "9:16", "21:9"], "supportWatermark": true, "supportCameraFixed": true, "supportedResolutions": ["480p", "720p", "1080p"], "supportReturnLastFrame": true}', '{"ratio": "16:9", "duration": 5, "watermark": true, "resolution": "720p", "cameraFixed": false}', true, 'ffb5bc96-75f5-4fe4-a99f-608864b795bc', NULL, NULL);
|
||||
INSERT INTO public."AiModel" VALUES ('4fe34457-a3eb-4563-afbe-9fd093251426', '8a968383-f506-4452-9422-b34726505430', 'doubao-seedance-1-0-pro-fast-251015', 'SeedanceProFast', '快速生成版本,支持文生视频、图生视频(首帧),生成速度更快', true, false, true, false, 20, '2025-12-09 18:30:53.683021', '2025-12-09 18:30:53.683021', '{"supportSeed": false, "durationRange": {"max": 12, "min": 2}, "supportedModes": ["text-to-video", "first-frame"], "supportedRatios": ["16:9", "4:3", "1:1", "3:4", "9:16", "21:9"], "supportWatermark": true, "supportCameraFixed": false, "supportedResolutions": ["480p", "720p", "1080p"], "supportReturnLastFrame": true}', '{"ratio": "16:9", "duration": 5, "watermark": true, "resolution": "720p", "cameraFixed": false}', true, 'ffb5bc96-75f5-4fe4-a99f-608864b795bc', NULL, NULL);
|
||||
INSERT INTO public."AiModel" VALUES ('e8805ca6-4741-4eda-b800-b2c0d513299f', '8a968383-f506-4452-9422-b34726505430', 'doubao-seedance-1-0-lite-i2v-250428', 'SeedanceLiteI2V', '图生视频轻量版,支持首帧、首尾帧、参考图(1-4张)模式', true, false, true, false, 30, '2025-12-09 18:30:53.689929', '2025-12-09 18:30:53.689929', '{"supportSeed": true, "durationRange": {"max": 12, "min": 2}, "supportedModes": ["first-frame", "first-last-frame", "reference-images"], "supportedRatios": ["16:9", "4:3", "1:1", "3:4", "9:16", "21:9", "adaptive"], "supportWatermark": true, "maxReferenceImages": 4, "supportCameraFixed": true, "supportedResolutions": ["480p", "720p"], "supportReturnLastFrame": false}', '{"ratio": "16:9", "duration": 5, "watermark": true, "resolution": "720p", "cameraFixed": false}', true, 'ffb5bc96-75f5-4fe4-a99f-608864b795bc', NULL, NULL);
|
||||
INSERT INTO public."AiModel" VALUES ('b5b6f9fd-4299-4345-af51-79354bd504eb', '8a968383-f506-4452-9422-b34726505430', 'doubao-seedance-1-0-lite-t2v-250428', 'SeedanceLiteT2V', '文生视频轻量版,专注于文本转视频,成本更低', false, false, true, false, 40, '2025-12-09 18:30:53.695034', '2025-12-09 18:30:53.695034', '{"supportSeed": true, "durationRange": {"max": 12, "min": 2}, "supportedModes": ["text-to-video"], "supportedRatios": ["16:9", "4:3", "1:1", "3:4", "9:16", "21:9"], "supportWatermark": true, "supportCameraFixed": true, "supportedResolutions": ["480p", "720p", "1080p"], "supportReturnLastFrame": false}', '{"ratio": "16:9", "duration": 5, "watermark": true, "resolution": "720p", "cameraFixed": false}', true, 'ffb5bc96-75f5-4fe4-a99f-608864b795bc', NULL, NULL);
|
||||
INSERT INTO public."AiModel" VALUES ('27420787-1851-4cd2-bb53-162592bd345e', '7bce5924-bfd2-4e31-9f1d-825bd9d9f8b1', 'qwen3-vl-plus', '千问3「对话模型」', '', false, false, true, true, 0, '2025-12-05 16:34:19.456083', '2025-12-08 10:56:20.592', NULL, NULL, false, NULL, NULL, NULL);
|
||||
INSERT INTO public."AiModel" VALUES ('1b652fc6-02a7-4a78-b7e4-3406232a47f6', '259d8c41-8f93-4ee6-bd3d-5ad4301123e3', 'gpt-5-nano', 'GTP-5「对话模型」', '', false, false, true, false, 0, '2025-12-08 18:50:38.600951', '2025-12-08 10:56:57.283', NULL, NULL, false, NULL, NULL, NULL);
|
||||
INSERT INTO public."AiModel" VALUES ('138a63c0-f990-406c-a5d2-6b4f6d522120', 'ee9d756b-1ff5-436c-b1c9-466d8c0ba730', 'doubao-seedream-4-5-251128', '既梦4.5「生图模型」', '', false, true, true, false, 0, '2025-12-08 17:49:54.015232', '2025-12-08 10:56:40.026', NULL, NULL, false, NULL, NULL, NULL);
|
||||
INSERT INTO public."AiModel" VALUES ('6ed69d9f-db86-4012-a1e6-126420aca9e4', 'adb28b37-f7e1-44e6-832a-66eedc6aa764', 'nano-banana-pro', '香蕉PRO「生图模型」', '', true, true, true, false, 0, '2025-12-06 20:29:09.746812', '2025-12-19 07:12:59.737', NULL, NULL, false, NULL, 'nano-banana-pro-vt', 'nano-banana-fast');
|
||||
|
||||
|
||||
--
|
||||
-- PostgreSQL database dump complete
|
||||
--
|
||||
|
||||
\unrestrict yo9d1gVMUGQpG6orsdd0cTI4j7PaQyvMaLpgxrvYvJ1GZKQTsBgm6jf79eMvpz3
|
||||
|
||||
39
migration-backup-complete/config-sql/AiProvider.sql
Normal file
39
migration-backup-complete/config-sql/AiProvider.sql
Normal file
@ -0,0 +1,39 @@
|
||||
--
|
||||
-- PostgreSQL database dump
|
||||
--
|
||||
|
||||
\restrict olDhjp7DjIHGykTF7aCyYo5qIRMBWkr0ee80YmRMQTKHYykS0AligW7jDgabw8U
|
||||
|
||||
-- Dumped from database version 16.11 (Ubuntu 16.11-0ubuntu0.24.04.1)
|
||||
-- Dumped by pg_dump version 16.11 (Ubuntu 16.11-0ubuntu0.24.04.1)
|
||||
|
||||
SET statement_timeout = 0;
|
||||
SET lock_timeout = 0;
|
||||
SET idle_in_transaction_session_timeout = 0;
|
||||
SET client_encoding = 'UTF8';
|
||||
SET standard_conforming_strings = on;
|
||||
SELECT pg_catalog.set_config('search_path', '', false);
|
||||
SET check_function_bodies = false;
|
||||
SET xmloption = content;
|
||||
SET client_min_messages = warning;
|
||||
SET row_security = off;
|
||||
|
||||
--
|
||||
-- Data for Name: AiProvider; Type: TABLE DATA; Schema: public; Owner: ai_chatbot_user
|
||||
--
|
||||
|
||||
INSERT INTO public."AiProvider" VALUES ('7bce5924-bfd2-4e31-9f1d-825bd9d9f8b1', '阿里云', 'alibaba', 'https://dashscope.aliyuncs.com/compatible-mode/v1', 'sk-6f600183ff504629863fdbdc61d26546', true, '2025-12-05 16:33:20.2402', '2025-12-05 16:33:20.2402', 'f138bcb0-c43f-4886-b8eb-d037f932dd67');
|
||||
INSERT INTO public."AiProvider" VALUES ('5f933999-a078-437f-80f7-695889f44311', '千问本地模型', 'local', 'http://192.168.150.22:8001', 'qwen25_vl_api_key_2024', true, '2025-12-06 10:31:32.064657', '2025-12-06 10:31:32.064657', '2b84d217-db54-49f3-9b36-1f58f974d924');
|
||||
INSERT INTO public."AiProvider" VALUES ('259d8c41-8f93-4ee6-bd3d-5ad4301123e3', '环科API', 'openai', 'https://api.huandutech.com/v1', 'sk-tMFqWBeV4H4UIoGG1LFAn8wJHUQPnbcujNXL13Q5I7TJ9pY4', true, '2025-12-05 16:50:45.04327', '2025-12-06 13:05:51.164', '2b84d217-db54-49f3-9b36-1f58f974d924');
|
||||
INSERT INTO public."AiProvider" VALUES ('0356b492-f34d-4990-8979-eda5238a3737', '千问视频', 'qianwen-video', 'https://dashscope.aliyuncs.com/api/v1', 'sk-6f600183ff504629863fdbdc61d26546 ', true, '2025-12-07 14:29:31.287175', '2025-12-07 14:29:31.287175', '2b84d217-db54-49f3-9b36-1f58f974d924');
|
||||
INSERT INTO public."AiProvider" VALUES ('ee9d756b-1ff5-436c-b1c9-466d8c0ba730', '既梦模型', 'volcano-vision', 'https://ark.cn-beijing.volces.com', 'e72d5f7e-e1d9-4d9b-af9b-01766d93c313', true, '2025-12-08 17:47:19.650839', '2025-12-08 17:47:19.650839', 'f138bcb0-c43f-4886-b8eb-d037f932dd67');
|
||||
INSERT INTO public."AiProvider" VALUES ('8a968383-f506-4452-9422-b34726505430', '火山引擎视频', 'volcano-video', 'https://ark.cn-beijing.volces.com/api/v3', 'e72d5f7e-e1d9-4d9b-af9b-01766d93c313', true, '2025-12-09 12:02:51.304599', '2025-12-09 12:02:51.304599', 'd2c30e78-77a8-4c90-a957-cdb9ef56ac5c');
|
||||
INSERT INTO public."AiProvider" VALUES ('adb28b37-f7e1-44e6-832a-66eedc6aa764', 'Gemini中转', 'gemini', 'https://grsai.dakka.com.cn', 'sk-79771fbb57de4f7eb7e2d0bb5b42af54', true, '2025-12-06 22:32:46.461097', '2025-12-16 11:21:05.813', 'd2c30e78-77a8-4c90-a957-cdb9ef56ac5c');
|
||||
|
||||
|
||||
--
|
||||
-- PostgreSQL database dump complete
|
||||
--
|
||||
|
||||
\unrestrict olDhjp7DjIHGykTF7aCyYo5qIRMBWkr0ee80YmRMQTKHYykS0AligW7jDgabw8U
|
||||
|
||||
33
migration-backup-complete/config-sql/AuthSettings.sql
Normal file
33
migration-backup-complete/config-sql/AuthSettings.sql
Normal file
@ -0,0 +1,33 @@
|
||||
--
|
||||
-- PostgreSQL database dump
|
||||
--
|
||||
|
||||
\restrict iZuzha7TPbhyjYu0tkd7E9HwJDbxZTamA3W04WbnpgYsd6aufmpf5CfdddJA6jf
|
||||
|
||||
-- Dumped from database version 16.11 (Ubuntu 16.11-0ubuntu0.24.04.1)
|
||||
-- Dumped by pg_dump version 16.11 (Ubuntu 16.11-0ubuntu0.24.04.1)
|
||||
|
||||
SET statement_timeout = 0;
|
||||
SET lock_timeout = 0;
|
||||
SET idle_in_transaction_session_timeout = 0;
|
||||
SET client_encoding = 'UTF8';
|
||||
SET standard_conforming_strings = on;
|
||||
SELECT pg_catalog.set_config('search_path', '', false);
|
||||
SET check_function_bodies = false;
|
||||
SET xmloption = content;
|
||||
SET client_min_messages = warning;
|
||||
SET row_security = off;
|
||||
|
||||
--
|
||||
-- Data for Name: AuthSettings; Type: TABLE DATA; Schema: public; Owner: ai_chatbot_user
|
||||
--
|
||||
|
||||
INSERT INTO public."AuthSettings" VALUES ('a191e963-6fa3-42da-a720-afda03242b33', 'ding1bs1gxwrcfu16x0f', 'qUmj_gBDzpPEYR3RA3hRqKzwu11a986O-wKfP8V5lDHXn7XJrXxW79KIeP5G-mcY', true, '2025-12-09 06:46:33.088', 'd2c30e78-77a8-4c90-a957-cdb9ef56ac5c', false, '[]');
|
||||
|
||||
|
||||
--
|
||||
-- PostgreSQL database dump complete
|
||||
--
|
||||
|
||||
\unrestrict iZuzha7TPbhyjYu0tkd7E9HwJDbxZTamA3W04WbnpgYsd6aufmpf5CfdddJA6jf
|
||||
|
||||
41
migration-backup-complete/config-sql/NavLinks.sql
Normal file
41
migration-backup-complete/config-sql/NavLinks.sql
Normal file
@ -0,0 +1,41 @@
|
||||
--
|
||||
-- PostgreSQL database dump
|
||||
--
|
||||
|
||||
\restrict 4sAOvDr0uiD0wviqNtBcPksg9bV0vTbRcmusWyUTdbQk833WLbUCdVanxoZA7JP
|
||||
|
||||
-- Dumped from database version 16.11 (Ubuntu 16.11-0ubuntu0.24.04.1)
|
||||
-- Dumped by pg_dump version 16.11 (Ubuntu 16.11-0ubuntu0.24.04.1)
|
||||
|
||||
SET statement_timeout = 0;
|
||||
SET lock_timeout = 0;
|
||||
SET idle_in_transaction_session_timeout = 0;
|
||||
SET client_encoding = 'UTF8';
|
||||
SET standard_conforming_strings = on;
|
||||
SELECT pg_catalog.set_config('search_path', '', false);
|
||||
SET check_function_bodies = false;
|
||||
SET xmloption = content;
|
||||
SET client_min_messages = warning;
|
||||
SET row_security = off;
|
||||
|
||||
--
|
||||
-- Data for Name: NavLinks; Type: TABLE DATA; Schema: public; Owner: ai_chatbot_user
|
||||
--
|
||||
|
||||
INSERT INTO public."NavLinks" VALUES ('b4b4d6cd-1703-407f-a721-42b6e89997a4', '背景去除', 'https://yydd.ai/remove_bg.html', 0, true, '2025-12-07 20:02:42.408499', '2025-12-07 20:02:42.408499', 'f138bcb0-c43f-4886-b8eb-d037f932dd67');
|
||||
INSERT INTO public."NavLinks" VALUES ('7374f2df-8c57-4f76-8ae5-622c808bd406', '去除水印', 'https://yydd.ai/watermark-remover.html', 0, true, '2025-12-07 20:42:15.14062', '2025-12-07 20:42:15.14062', 'f138bcb0-c43f-4886-b8eb-d037f932dd67');
|
||||
INSERT INTO public."NavLinks" VALUES ('bba77113-fff6-46b7-b81f-7bc1fb8cc931', '视频魔方', 'https://yydd.ai/video-generator.html', 0, true, '2025-12-07 20:43:09.74764', '2025-12-07 20:43:09.74764', 'f138bcb0-c43f-4886-b8eb-d037f932dd67');
|
||||
INSERT INTO public."NavLinks" VALUES ('ba080487-554a-4365-8ccc-305c7ff234af', '商品策划', 'https://yydd.ai/keyword-analyzer.html', 0, true, '2025-12-07 20:45:00.005798', '2025-12-07 20:45:00.005798', 'f138bcb0-c43f-4886-b8eb-d037f932dd67');
|
||||
INSERT INTO public."NavLinks" VALUES ('a0fe06cc-34a2-4d9c-b816-a269660acfbc', '市场数据', 'https://hq.yucekj.com/', 0, true, '2025-12-07 20:46:09.209665', '2025-12-07 20:46:09.209665', 'f138bcb0-c43f-4886-b8eb-d037f932dd67');
|
||||
INSERT INTO public."NavLinks" VALUES ('2ede3a36-8ba7-490e-88a5-6c34326602c7', '数据魔方', 'http://218.93.9.141:8088', 0, true, '2025-12-07 20:51:14.825638', '2025-12-07 20:51:14.825638', 'f138bcb0-c43f-4886-b8eb-d037f932dd67');
|
||||
INSERT INTO public."NavLinks" VALUES ('418391e8-6d43-41d5-9934-c5bf1cbb6cec', '神奇替换', 'https://yydd.ai/magic-replace-v2.html', 0, true, '2025-12-07 20:43:47.201898', '2025-12-08 03:20:44.512', 'f138bcb0-c43f-4886-b8eb-d037f932dd67');
|
||||
INSERT INTO public."NavLinks" VALUES ('f784ca3b-dc1a-4558-9064-3b5c60b9da43', '清晰拓展', 'https://yydd.ai/home.html', 0, true, '2025-12-07 21:51:23.775479', '2025-12-09 06:20:39.326', 'f138bcb0-c43f-4886-b8eb-d037f932dd67');
|
||||
INSERT INTO public."NavLinks" VALUES ('970cab86-f7a6-4cc8-82b9-0ddb8d38b945', '品牌「素材库」', 'https://3d.yydd.ai', 0, true, '2025-12-24 09:51:05.848847', '2025-12-24 01:51:47.765', 'd2c30e78-77a8-4c90-a957-cdb9ef56ac5c');
|
||||
|
||||
|
||||
--
|
||||
-- PostgreSQL database dump complete
|
||||
--
|
||||
|
||||
\unrestrict 4sAOvDr0uiD0wviqNtBcPksg9bV0vTbRcmusWyUTdbQk833WLbUCdVanxoZA7JP
|
||||
|
||||
34
migration-backup-complete/config-sql/SiteSettings.sql
Normal file
34
migration-backup-complete/config-sql/SiteSettings.sql
Normal file
@ -0,0 +1,34 @@
|
||||
--
|
||||
-- PostgreSQL database dump
|
||||
--
|
||||
|
||||
\restrict VSLrzgHyxH4g9VVHhcyZHj0NP1wpZBIRSOc58uHsbnvtfG301Qr0Hz24PVaLWEJ
|
||||
|
||||
-- Dumped from database version 16.11 (Ubuntu 16.11-0ubuntu0.24.04.1)
|
||||
-- Dumped by pg_dump version 16.11 (Ubuntu 16.11-0ubuntu0.24.04.1)
|
||||
|
||||
SET statement_timeout = 0;
|
||||
SET lock_timeout = 0;
|
||||
SET idle_in_transaction_session_timeout = 0;
|
||||
SET client_encoding = 'UTF8';
|
||||
SET standard_conforming_strings = on;
|
||||
SELECT pg_catalog.set_config('search_path', '', false);
|
||||
SET check_function_bodies = false;
|
||||
SET xmloption = content;
|
||||
SET client_min_messages = warning;
|
||||
SET row_security = off;
|
||||
|
||||
--
|
||||
-- Data for Name: SiteSettings; Type: TABLE DATA; Schema: public; Owner: ai_chatbot_user
|
||||
--
|
||||
|
||||
INSERT INTO public."SiteSettings" VALUES ('b0cab85c-6a75-47b9-84e4-2af02ef03072', '由壹点AI', '', '', '', '2025-12-27 03:06:25.843', 'd2c30e78-77a8-4c90-a957-cdb9ef56ac5c', false, true, '17:30', '23:30', '正在升级服务器');
|
||||
INSERT INTO public."SiteSettings" VALUES ('53b02fe7-190d-4881-a98f-4ba90751342a', '由壹点AI', 'https://s3.1080p.hk/shuzhou/2025/05/18/8ebadf0a7cc34eaea00e8619b8efb827.png', 'https://s3.1080p.hk/shuzhou/2025/05/18/f6f20d120a4e45aeaae3411fe0000b6a.png', 'https://s3.1080p.hk/shuzhou/2025/05/18/8ebadf0a7cc34eaea00e8619b8efb827.png', '2025-12-26 09:52:29.427', 'd2c30e78-77a8-4c90-a957-cdb9ef56ac5c', false, false, '19:00', '23:00', '修复生图图片不显示的问题中');
|
||||
|
||||
|
||||
--
|
||||
-- PostgreSQL database dump complete
|
||||
--
|
||||
|
||||
\unrestrict VSLrzgHyxH4g9VVHhcyZHj0NP1wpZBIRSOc58uHsbnvtfG301Qr0Hz24PVaLWEJ
|
||||
|
||||
33
migration-backup-complete/config-sql/StorageConfig.sql
Normal file
33
migration-backup-complete/config-sql/StorageConfig.sql
Normal file
@ -0,0 +1,33 @@
|
||||
--
|
||||
-- PostgreSQL database dump
|
||||
--
|
||||
|
||||
\restrict NrsBFp2o3YEIQijB86L5aCo3ZqyhpWL9kqe4OnksvoL3K8sTTueNgQAXP5yyjM9
|
||||
|
||||
-- Dumped from database version 16.11 (Ubuntu 16.11-0ubuntu0.24.04.1)
|
||||
-- Dumped by pg_dump version 16.11 (Ubuntu 16.11-0ubuntu0.24.04.1)
|
||||
|
||||
SET statement_timeout = 0;
|
||||
SET lock_timeout = 0;
|
||||
SET idle_in_transaction_session_timeout = 0;
|
||||
SET client_encoding = 'UTF8';
|
||||
SET standard_conforming_strings = on;
|
||||
SELECT pg_catalog.set_config('search_path', '', false);
|
||||
SET check_function_bodies = false;
|
||||
SET xmloption = content;
|
||||
SET client_min_messages = warning;
|
||||
SET row_security = off;
|
||||
|
||||
--
|
||||
-- Data for Name: StorageConfig; Type: TABLE DATA; Schema: public; Owner: ai_chatbot_user
|
||||
--
|
||||
|
||||
INSERT INTO public."StorageConfig" VALUES ('65db07c7-9c3d-427b-99b6-177a7e69b20b', 'MinIO S3 存储', 's3', 'https://s3.1080p.hk', 'us-east-1', 'jsxiangche', 'AEvT1p0wSNjow3Asu9NV', 'u8nzFl1S6dNoT5PQaQhkHz8Du6iX0hVnPswtvHhs', 'https://s3.1080p.hk/jsxiangche', true, true, '2025-12-05 21:45:28.908925', '2025-12-05 13:45:57.284', '2b84d217-db54-49f3-9b36-1f58f974d924');
|
||||
|
||||
|
||||
--
|
||||
-- PostgreSQL database dump complete
|
||||
--
|
||||
|
||||
\unrestrict NrsBFp2o3YEIQijB86L5aCo3ZqyhpWL9kqe4OnksvoL3K8sTTueNgQAXP5yyjM9
|
||||
|
||||
39
migration-backup-complete/config-sql/SystemSettings.sql
Normal file
39
migration-backup-complete/config-sql/SystemSettings.sql
Normal file
@ -0,0 +1,39 @@
|
||||
--
|
||||
-- PostgreSQL database dump
|
||||
--
|
||||
|
||||
\restrict 7hQOq1KtWqgyGRIKpOISfpqB19WSFBfG3MLkmzeG26BTeNEzsd8WQyqxqc9ZpPC
|
||||
|
||||
-- Dumped from database version 16.11 (Ubuntu 16.11-0ubuntu0.24.04.1)
|
||||
-- Dumped by pg_dump version 16.11 (Ubuntu 16.11-0ubuntu0.24.04.1)
|
||||
|
||||
SET statement_timeout = 0;
|
||||
SET lock_timeout = 0;
|
||||
SET idle_in_transaction_session_timeout = 0;
|
||||
SET client_encoding = 'UTF8';
|
||||
SET standard_conforming_strings = on;
|
||||
SELECT pg_catalog.set_config('search_path', '', false);
|
||||
SET check_function_bodies = false;
|
||||
SET xmloption = content;
|
||||
SET client_min_messages = warning;
|
||||
SET row_security = off;
|
||||
|
||||
--
|
||||
-- Data for Name: SystemSettings; Type: TABLE DATA; Schema: public; Owner: ai_chatbot_user
|
||||
--
|
||||
|
||||
INSERT INTO public."SystemSettings" VALUES ('cb34112b-f528-40b9-bdb4-84e99f0c7518', 'siteName', '"由壹点AI"', '2025-12-07 08:38:27.742', '2b84d217-db54-49f3-9b36-1f58f974d924');
|
||||
INSERT INTO public."SystemSettings" VALUES ('91e39afc-6373-48a9-94e7-40d9200b0377', 'siteLogo', '"https://s3.1080p.hk/shuzhou/2025/05/18/8ebadf0a7cc34eaea00e8619b8efb827.png"', '2025-12-07 08:38:28.093', '2b84d217-db54-49f3-9b36-1f58f974d924');
|
||||
INSERT INTO public."SystemSettings" VALUES ('6ceee557-d7c1-4761-9ec7-aa41bdf20824', 'favicon', '"https://s3.1080p.hk/shuzhou/2025/05/18/8ebadf0a7cc34eaea00e8619b8efb827.png"', '2025-12-07 08:38:28.424', '2b84d217-db54-49f3-9b36-1f58f974d924');
|
||||
INSERT INTO public."SystemSettings" VALUES ('da7fc4df-57eb-4d68-8bbb-fbaf5645977c', 'logoDark', '"https://s3.1080p.hk/shuzhou/2025/05/18/f6f20d120a4e45aeaae3411fe0000b6a.png"', '2025-12-07 08:38:28.738', '2b84d217-db54-49f3-9b36-1f58f974d924');
|
||||
INSERT INTO public."SystemSettings" VALUES ('98fa2563-8f24-4b95-b247-1d44745fa938', 'logoLight', '"https://s3.1080p.hk/shuzhou/2025/05/18/8ebadf0a7cc34eaea00e8619b8efb827.png"', '2025-12-07 08:38:29.072', '2b84d217-db54-49f3-9b36-1f58f974d924');
|
||||
INSERT INTO public."SystemSettings" VALUES ('10a9e655-5260-46ec-af3e-762b2217f8d5', 'starter_questions', '["帮我把这张商品图背景换成纯白,突出产品。", "给这张图加个促销标签:‘限时折扣5折’", "分析最近30天竞品的销量趋势,给我一个简报", "为这款新品写一句吸引人的广告语"]', '2025-12-07 14:14:51.474', 'f138bcb0-c43f-4886-b8eb-d037f932dd67');
|
||||
INSERT INTO public."SystemSettings" VALUES ('ff7cb982-0a01-4e21-8bed-ed4ca606e9c5', 'login_notification', '{"title": "4.0系统更新维护公告", "content": "系统全面结构优化升级更新,将支持对话记录数据永久保存,支持多模型自由选择。预计维护完成时间约12月8日下午。", "enabled": true}', '2025-12-07 18:21:57.858', 'f138bcb0-c43f-4886-b8eb-d037f932dd67');
|
||||
|
||||
|
||||
--
|
||||
-- PostgreSQL database dump complete
|
||||
--
|
||||
|
||||
\unrestrict 7hQOq1KtWqgyGRIKpOISfpqB19WSFBfG3MLkmzeG26BTeNEzsd8WQyqxqc9ZpPC
|
||||
|
||||
65
migration-latest.log
Normal file
65
migration-latest.log
Normal file
@ -0,0 +1,65 @@
|
||||
==========================================
|
||||
AI Chatbot 服务器迁移脚本
|
||||
==========================================
|
||||
新服务器: root@45.192.99.48:22
|
||||
域名: ai.yydd.ai
|
||||
应用端口: 3125
|
||||
从Git仓库拉取源码和备份数据库
|
||||
时间: Sun Dec 28 18:18:16 CST 2025
|
||||
==========================================
|
||||
|
||||
✅ 找到数据库备份文件: /Users/lanmu/Desktop/ai-chatbot-main/migration-backup-complete/database_complete.dump (144M)
|
||||
✅ Git仓库: http://git.1080p.hk/chenpei/ai-chatbot.git
|
||||
|
||||
🔍 测试新服务器连接...
|
||||
✅ 新服务器连接正常
|
||||
|
||||
📦 步骤 1/8: 在新服务器上安装必要软件...
|
||||
Pseudo-terminal will not be allocated because stdin is not a terminal.
|
||||
Last failed login: Sun Dec 28 18:18:18 CST 2025 from 14.103.112.116 on ssh:notty
|
||||
There were 167 failed login attempts since the last successful login.
|
||||
检测系统类型...
|
||||
检测到CentOS/RHEL系统,使用dnf包管理器
|
||||
跳过系统更新,直接安装所需软件...
|
||||
安装基础工具...
|
||||
Dependencies resolved.
|
||||
Nothing to do.
|
||||
Complete!
|
||||
安装PostgreSQL...
|
||||
安装Node.js 20.x...
|
||||
使用NodeSource安装Node.js 20...
|
||||
[38;5;79m2025-12-28 18:18:20 - Cleaning up old repositories...[0m
|
||||
[38;5;79m2025-12-28 18:18:20 - Old repositories removed[0m
|
||||
[38;5;79m2025-12-28 18:18:20 - Supported architecture: x86_64[0m
|
||||
[38;5;79m2025-12-28 18:18:20 - Added N|Solid repository for LTS version: 20.x[0m
|
||||
[38;5;79m2025-12-28 18:18:20 - dnf available, updating...[0m
|
||||
Node.js Packages for Linux RPM based distros - 57 kB/s | 3.0 kB 00:00
|
||||
Metadata cache created.
|
||||
N|Solid Packages for Linux RPM based distros - 58 kB/s | 3.0 kB 00:00
|
||||
Metadata cache created.
|
||||
[38;5;79m2025-12-28 18:18:22 - Repository is configured and updated.[0m
|
||||
[38;5;79m2025-12-28 18:18:22 - You can use N|solid Runtime as a node.js alternative[0m
|
||||
[1;32m2025-12-28 18:18:22 - To install N|solid Runtime, run: dnf install nsolid -y[0m
|
||||
[38;5;79m2025-12-28 18:18:22 - Run 'dnf install nodejs -y' to complete the installation.[0m
|
||||
Dependencies resolved.
|
||||
Nothing to do.
|
||||
Complete!
|
||||
Node.js安装完成
|
||||
安装PM2和pnpm...
|
||||
安装Nginx...
|
||||
安装Certbot (Let's Encrypt)...
|
||||
No match for argument: certbot
|
||||
No match for argument: python3-certbot-nginx
|
||||
Error: Unable to find a match: certbot python3-certbot-nginx
|
||||
✅ 所有软件安装完成
|
||||
|
||||
📥 步骤 2/8: 从Git仓库克隆项目...
|
||||
Pseudo-terminal will not be allocated because stdin is not a terminal.
|
||||
Last failed login: Sun Dec 28 18:18:23 CST 2025 from 92.191.96.115 on ssh:notty
|
||||
There were 169 failed login attempts since the last successful login.
|
||||
删除现有目录...
|
||||
正在从Git仓库克隆...
|
||||
Cloning into '/var/www/ai-chatbot'...
|
||||
✅ 项目代码已从Git仓库克隆
|
||||
|
||||
📤 步骤 3/8: 上传数据库备份...
|
||||
1186
migration-log.txt
Normal file
1186
migration-log.txt
Normal file
File diff suppressed because it is too large
Load Diff
22
migration-run.log
Normal file
22
migration-run.log
Normal file
@ -0,0 +1,22 @@
|
||||
==========================================
|
||||
AI Chatbot 服务器迁移脚本
|
||||
==========================================
|
||||
新服务器: root@45.192.99.48:22
|
||||
域名: ai.yydd.ai
|
||||
应用端口: 3125
|
||||
从Git仓库拉取源码和备份数据库
|
||||
时间: Sun Dec 28 18:07:53 CST 2025
|
||||
==========================================
|
||||
|
||||
✅ 找到数据库备份文件: /Users/lanmu/Desktop/ai-chatbot-main/migration-backup-complete/database_complete.dump (144M)
|
||||
✅ Git仓库: http://git.1080p.hk/chenpei/ai-chatbot.git
|
||||
|
||||
🔍 测试新服务器连接...
|
||||
✅ 新服务器连接正常
|
||||
|
||||
📦 步骤 1/8: 在新服务器上安装必要软件...
|
||||
Pseudo-terminal will not be allocated because stdin is not a terminal.
|
||||
Last failed login: Sun Dec 28 18:07:47 CST 2025 from 68.183.46.135 on ssh:notty
|
||||
There were 37 failed login attempts since the last successful login.
|
||||
检测系统类型...
|
||||
-bash: line 26: syntax error near unexpected token `('
|
||||
23
migration.log
Normal file
23
migration.log
Normal file
@ -0,0 +1,23 @@
|
||||
==========================================
|
||||
AI Chatbot 服务器迁移脚本
|
||||
==========================================
|
||||
新服务器: root@45.192.99.48:22
|
||||
域名: ai.yydd.ai
|
||||
应用端口: 3125
|
||||
从Git仓库拉取源码和备份数据库
|
||||
时间: Sun Dec 28 18:02:13 CST 2025
|
||||
==========================================
|
||||
|
||||
✅ 找到数据库备份文件: /Users/lanmu/Desktop/ai-chatbot-main/migration-backup-complete/database_complete.dump (144M)
|
||||
✅ Git仓库: http://git.1080p.hk/chenpei/ai-chatbot.git
|
||||
|
||||
🔍 测试新服务器连接...
|
||||
✅ 新服务器连接正常
|
||||
|
||||
📦 步骤 1/8: 在新服务器上安装必要软件...
|
||||
Pseudo-terminal will not be allocated because stdin is not a terminal.
|
||||
Last failed login: Sun Dec 28 18:02:07 CST 2025 from 185.213.165.65 on ssh:notty
|
||||
There were 5 failed login attempts since the last successful login.
|
||||
检测系统类型...
|
||||
检测到CentOS/RHEL系统,使用dnf包管理器
|
||||
更新系统包(跳过GPG检查)...
|
||||
82
scripts/fix-high-cpu.sh
Executable file
82
scripts/fix-high-cpu.sh
Executable file
@ -0,0 +1,82 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 系统性能优化脚本 - 修复高CPU占用和发热问题
|
||||
# 使用前请仔细阅读说明
|
||||
|
||||
set -e
|
||||
|
||||
echo "🔍 系统性能诊断工具"
|
||||
echo "===================="
|
||||
echo ""
|
||||
|
||||
# 颜色定义
|
||||
RED='\033[0;31m'
|
||||
YELLOW='\033[1;33m'
|
||||
GREEN='\033[0;32m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# 检查高CPU进程
|
||||
echo "📊 检查高CPU占用进程(>30%)..."
|
||||
echo ""
|
||||
high_cpu_processes=$(ps aux | awk 'NR>1 && $3 > 30 {print $2, $3, $4, $11, $12}' | head -10)
|
||||
|
||||
if [ -z "$high_cpu_processes" ]; then
|
||||
echo -e "${GREEN}✓ 未发现高CPU占用进程${NC}"
|
||||
else
|
||||
echo -e "${YELLOW}发现以下高CPU占用进程:${NC}"
|
||||
echo "PID %CPU %MEM 进程名"
|
||||
echo "$high_cpu_processes" | while read line; do
|
||||
echo "$line"
|
||||
done
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "💾 检查高内存占用进程(>5%)..."
|
||||
echo ""
|
||||
high_mem_processes=$(ps aux | awk 'NR>1 && $4 > 5 {print $2, $3, $4, $11, $12}' | head -10)
|
||||
|
||||
if [ -z "$high_mem_processes" ]; then
|
||||
echo -e "${GREEN}✓ 未发现高内存占用进程${NC}"
|
||||
else
|
||||
echo -e "${YELLOW}发现以下高内存占用进程:${NC}"
|
||||
echo "PID %CPU %MEM 进程名"
|
||||
echo "$high_mem_processes" | while read line; do
|
||||
echo "$line"
|
||||
done
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "⚡ 系统负载状态..."
|
||||
uptime
|
||||
|
||||
echo ""
|
||||
echo "🔋 电源设置..."
|
||||
pmset -g | grep -E "sleep|displaysleep|disksleep"
|
||||
|
||||
echo ""
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo "📋 建议操作:"
|
||||
echo ""
|
||||
echo "1. 如果发现 Cursor Helper (Renderer) 占用高CPU:"
|
||||
echo " → 打开活动监视器,找到该进程并强制退出"
|
||||
echo " → 或重启 Cursor 应用"
|
||||
echo ""
|
||||
echo "2. 如果发现 Adobe Illustrator 占用高CPU:"
|
||||
echo " → 检查是否有后台任务在运行"
|
||||
echo " → 如果不需要,完全退出 Adobe Illustrator"
|
||||
echo ""
|
||||
echo "3. 如果显示器睡眠被阻止:"
|
||||
echo " → 关闭阻止睡眠的应用(通常是 Adobe 相关进程)"
|
||||
echo ""
|
||||
echo "4. 查看详细诊断报告:"
|
||||
echo " → 打开 '系统性能诊断与解决方案.md' 文件"
|
||||
echo ""
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo ""
|
||||
echo "⚠️ 如需终止特定进程,请使用活动监视器或手动执行:"
|
||||
echo " kill -9 <PID> # 请谨慎使用,可能导致数据丢失"
|
||||
echo ""
|
||||
|
||||
|
||||
|
||||
|
||||
168
scripts/install-crowdsec.sh
Executable file
168
scripts/install-crowdsec.sh
Executable file
@ -0,0 +1,168 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 安装和配置CrowdSec脚本
|
||||
# 用于提供现代化的安全防护和威胁情报
|
||||
|
||||
set -e
|
||||
|
||||
echo "=================================================================================="
|
||||
echo "🛡️ 安装和配置 CrowdSec - 现代化安全引擎"
|
||||
echo "=================================================================================="
|
||||
|
||||
# 检测操作系统
|
||||
if [ -f /etc/redhat-release ]; then
|
||||
OS="centos"
|
||||
PKG_MANAGER="dnf"
|
||||
elif [ -f /etc/debian_version ]; then
|
||||
OS="debian"
|
||||
PKG_MANAGER="apt-get"
|
||||
else
|
||||
echo "❌ 不支持的操作系统"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "检测到操作系统: $OS"
|
||||
|
||||
# 安装CrowdSec
|
||||
echo ""
|
||||
echo "📦 安装 CrowdSec..."
|
||||
|
||||
if [ "$OS" = "centos" ]; then
|
||||
# CentOS/RHEL安装
|
||||
echo "添加CrowdSec仓库..."
|
||||
curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.rpm.sh | bash
|
||||
|
||||
echo "安装CrowdSec..."
|
||||
dnf install -y crowdsec
|
||||
|
||||
elif [ "$OS" = "debian" ]; then
|
||||
# Debian/Ubuntu安装
|
||||
echo "添加CrowdSec仓库..."
|
||||
curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | bash
|
||||
|
||||
echo "安装CrowdSec..."
|
||||
apt-get update
|
||||
apt-get install -y crowdsec
|
||||
fi
|
||||
|
||||
# 安装CrowdSec bouncer(用于实际封禁)
|
||||
echo ""
|
||||
echo "📦 安装 CrowdSec Firewall Bouncer..."
|
||||
if [ "$OS" = "centos" ]; then
|
||||
dnf install -y crowdsec-firewall-bouncer
|
||||
elif [ "$OS" = "debian" ]; then
|
||||
apt-get install -y crowdsec-firewall-bouncer
|
||||
fi
|
||||
|
||||
# 配置CrowdSec
|
||||
echo ""
|
||||
echo "⚙️ 配置 CrowdSec..."
|
||||
|
||||
# 初始化CrowdSec(如果需要)
|
||||
if [ ! -f /etc/crowdsec/config.yaml ]; then
|
||||
echo "初始化CrowdSec配置..."
|
||||
cscli hub update
|
||||
fi
|
||||
|
||||
# 安装常用的解析器和场景
|
||||
echo ""
|
||||
echo "📥 安装常用解析器和场景..."
|
||||
cscli hub update
|
||||
|
||||
# 安装SSH解析器
|
||||
cscli parsers install crowdsecurity/sshd-logs || echo "SSH解析器可能已安装"
|
||||
|
||||
# 安装HTTP解析器(用于Web应用保护)
|
||||
cscli parsers install crowdsecurity/httpd-logs || echo "HTTP解析器可能已安装"
|
||||
|
||||
# 安装常见攻击场景
|
||||
cscli scenarios install crowdsecurity/http-probing || echo "HTTP探测场景可能已安装"
|
||||
cscli scenarios install crowdsecurity/http-bad-user-agent || echo "Bad User-Agent场景可能已安装"
|
||||
cscli scenarios install crowdsecurity/http-crawl-non_statics || echo "爬虫场景可能已安装"
|
||||
cscli scenarios install crowdsecurity/http-sensitive-files || echo "敏感文件访问场景可能已安装"
|
||||
|
||||
# 配置本地API
|
||||
echo ""
|
||||
echo "🔧 配置本地API..."
|
||||
if [ ! -f /etc/crowdsec/local_api_credentials.yaml ]; then
|
||||
cscli machines add --auto
|
||||
fi
|
||||
|
||||
# 配置bouncer
|
||||
echo ""
|
||||
echo "🔧 配置 Firewall Bouncer..."
|
||||
if [ -f /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml ]; then
|
||||
# 备份原配置
|
||||
cp /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml.bak.$(date +%Y%m%d_%H%M%S) 2>/dev/null || true
|
||||
|
||||
# 确保使用iptables
|
||||
sed -i 's/mode: nftables/mode: iptables/' /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml 2>/dev/null || true
|
||||
sed -i 's/mode: ipset/mode: iptables/' /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# 启动服务
|
||||
echo ""
|
||||
echo "🚀 启动 CrowdSec 服务..."
|
||||
systemctl enable crowdsec
|
||||
systemctl restart crowdsec
|
||||
|
||||
# 启动bouncer
|
||||
echo ""
|
||||
echo "🚀 启动 Firewall Bouncer..."
|
||||
systemctl enable crowdsec-firewall-bouncer
|
||||
systemctl restart crowdsec-firewall-bouncer
|
||||
|
||||
# 等待服务启动
|
||||
sleep 3
|
||||
|
||||
# 检查服务状态
|
||||
echo ""
|
||||
echo "📊 检查服务状态..."
|
||||
if systemctl is-active --quiet crowdsec; then
|
||||
echo "✅ CrowdSec 服务已启动"
|
||||
else
|
||||
echo "❌ CrowdSec 服务启动失败"
|
||||
systemctl status crowdsec --no-pager | head -10
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if systemctl is-active --quiet crowdsec-firewall-bouncer; then
|
||||
echo "✅ Firewall Bouncer 服务已启动"
|
||||
else
|
||||
echo "⚠️ Firewall Bouncer 服务启动失败(可能不影响基本功能)"
|
||||
fi
|
||||
|
||||
# 显示状态
|
||||
echo ""
|
||||
echo "📊 CrowdSec 状态:"
|
||||
cscli hub list
|
||||
|
||||
echo ""
|
||||
echo "📊 已安装的场景:"
|
||||
cscli scenarios list
|
||||
|
||||
echo ""
|
||||
echo "📊 机器列表:"
|
||||
cscli machines list
|
||||
|
||||
echo ""
|
||||
echo "=================================================================================="
|
||||
echo "✅ CrowdSec 安装和配置完成!"
|
||||
echo "=================================================================================="
|
||||
echo ""
|
||||
echo "📋 常用命令:"
|
||||
echo " - 查看状态: cscli hub list"
|
||||
echo " - 查看场景: cscli scenarios list"
|
||||
echo " - 查看决策: cscli decisions list"
|
||||
echo " - 查看指标: cscli metrics"
|
||||
echo " - 手动封禁: cscli decisions add --ip <IP地址> --duration 1h --reason 'Manual ban'"
|
||||
echo " - 手动解封: cscli decisions delete --ip <IP地址>"
|
||||
echo " - 查看日志: journalctl -u crowdsec -f"
|
||||
echo ""
|
||||
echo "🔄 与fail2ban的关系:"
|
||||
echo " - CrowdSec和fail2ban可以共存"
|
||||
echo " - CrowdSec提供威胁情报和更智能的检测"
|
||||
echo " - fail2ban继续保护SSH服务"
|
||||
echo ""
|
||||
echo "=================================================================================="
|
||||
|
||||
208
scripts/protect-ssh.sh
Executable file
208
scripts/protect-ssh.sh
Executable file
@ -0,0 +1,208 @@
|
||||
#!/bin/bash
|
||||
|
||||
# SSH配置保护脚本
|
||||
# 用于防止恶意程序修改或阻止SSH连接
|
||||
|
||||
set -e
|
||||
|
||||
echo "=================================================================================="
|
||||
echo "🛡️ SSH配置保护脚本"
|
||||
echo "=================================================================================="
|
||||
|
||||
# 1. 设置SSH配置文件为不可变(immutable)
|
||||
echo ""
|
||||
echo "1. 设置SSH配置文件为不可变..."
|
||||
if command -v chattr >/dev/null 2>&1; then
|
||||
# 移除现有的不可变标志(如果存在)
|
||||
chattr -i /etc/ssh/sshd_config 2>/dev/null || true
|
||||
|
||||
# 设置不可变标志
|
||||
chattr +i /etc/ssh/sshd_config
|
||||
echo " ✅ SSH配置文件已设置为不可变(immutable)"
|
||||
|
||||
# 验证设置
|
||||
if lsattr /etc/ssh/sshd_config | grep -q 'i'; then
|
||||
echo " ✅ 验证成功:文件已设置为不可变"
|
||||
else
|
||||
echo " ⚠️ 警告:无法验证不可变标志"
|
||||
fi
|
||||
else
|
||||
echo " ⚠️ chattr命令不可用,跳过不可变标志设置"
|
||||
fi
|
||||
|
||||
# 2. 设置SSH目录权限
|
||||
echo ""
|
||||
echo "2. 设置SSH目录权限..."
|
||||
chmod 755 /etc/ssh
|
||||
chmod 600 /etc/ssh/sshd_config
|
||||
chown root:root /etc/ssh/sshd_config
|
||||
echo " ✅ SSH目录和文件权限已设置"
|
||||
|
||||
# 3. 创建SSH配置备份
|
||||
echo ""
|
||||
echo "3. 创建SSH配置备份..."
|
||||
BACKUP_DIR="/root/ssh_backups"
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
cp /etc/ssh/sshd_config "$BACKUP_DIR/sshd_config.$(date +%Y%m%d_%H%M%S)"
|
||||
# 只保留最近10个备份
|
||||
ls -t "$BACKUP_DIR"/sshd_config.* 2>/dev/null | tail -n +11 | xargs rm -f 2>/dev/null || true
|
||||
echo " ✅ SSH配置已备份到 $BACKUP_DIR"
|
||||
|
||||
# 4. 创建SSH配置监控脚本
|
||||
echo ""
|
||||
echo "4. 创建SSH配置监控脚本..."
|
||||
cat > /usr/local/bin/monitor-ssh-config.sh << 'MONITOREOF'
|
||||
#!/bin/bash
|
||||
# SSH配置监控脚本
|
||||
# 检测SSH配置文件是否被修改
|
||||
|
||||
SSH_CONFIG="/etc/ssh/sshd_config"
|
||||
BACKUP_DIR="/root/ssh_backups"
|
||||
LOG_FILE="/var/log/ssh-config-monitor.log"
|
||||
|
||||
# 创建日志文件(如果不存在)
|
||||
touch "$LOG_FILE"
|
||||
|
||||
# 获取当前配置文件的MD5值
|
||||
CURRENT_MD5=$(md5sum "$SSH_CONFIG" 2>/dev/null | awk '{print $1}')
|
||||
|
||||
# 获取最新备份的MD5值
|
||||
LATEST_BACKUP=$(ls -t "$BACKUP_DIR"/sshd_config.* 2>/dev/null | head -1)
|
||||
if [ -n "$LATEST_BACKUP" ]; then
|
||||
BACKUP_MD5=$(md5sum "$LATEST_BACKUP" | awk '{print $1}')
|
||||
|
||||
# 如果MD5不匹配,说明文件被修改
|
||||
if [ "$CURRENT_MD5" != "$BACKUP_MD5" ]; then
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ⚠️ 警告:SSH配置文件被修改!" >> "$LOG_FILE"
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] 当前MD5: $CURRENT_MD5" >> "$LOG_FILE"
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] 备份MD5: $BACKUP_MD5" >> "$LOG_FILE"
|
||||
|
||||
# 尝试恢复配置文件
|
||||
if [ -f "$LATEST_BACKUP" ]; then
|
||||
# 临时移除不可变标志
|
||||
chattr -i "$SSH_CONFIG" 2>/dev/null || true
|
||||
cp "$LATEST_BACKUP" "$SSH_CONFIG"
|
||||
chmod 600 "$SSH_CONFIG"
|
||||
chown root:root "$SSH_CONFIG"
|
||||
chattr +i "$SSH_CONFIG" 2>/dev/null || true
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ✅ 已恢复SSH配置文件" >> "$LOG_FILE"
|
||||
|
||||
# 重启SSH服务
|
||||
systemctl restart sshd 2>/dev/null || service sshd restart 2>/dev/null || true
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# 检查SSH服务是否运行
|
||||
if ! systemctl is-active --quiet sshd && ! service sshd status >/dev/null 2>&1; then
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ⚠️ 警告:SSH服务未运行!" >> "$LOG_FILE"
|
||||
# 尝试启动SSH服务
|
||||
systemctl start sshd 2>/dev/null || service sshd start 2>/dev/null || true
|
||||
fi
|
||||
MONITOREOF
|
||||
|
||||
chmod +x /usr/local/bin/monitor-ssh-config.sh
|
||||
echo " ✅ SSH配置监控脚本已创建"
|
||||
|
||||
# 5. 设置定时监控任务
|
||||
echo ""
|
||||
echo "5. 设置定时监控任务..."
|
||||
# 移除现有的监控任务(如果存在)
|
||||
crontab -l 2>/dev/null | grep -v "monitor-ssh-config" | crontab - 2>/dev/null || true
|
||||
|
||||
# 添加新的监控任务(每5分钟检查一次)
|
||||
(crontab -l 2>/dev/null; echo "*/5 * * * * /usr/local/bin/monitor-ssh-config.sh") | crontab -
|
||||
echo " ✅ 定时监控任务已设置(每5分钟检查一次)"
|
||||
|
||||
# 6. 创建SSH服务保护脚本
|
||||
echo ""
|
||||
echo "6. 创建SSH服务保护脚本..."
|
||||
cat > /usr/local/bin/protect-ssh-service.sh << 'PROTECTEOF'
|
||||
#!/bin/bash
|
||||
# SSH服务保护脚本
|
||||
# 确保SSH服务始终运行
|
||||
|
||||
SSH_SERVICE="sshd"
|
||||
|
||||
# 检查SSH服务状态
|
||||
if ! systemctl is-active --quiet "$SSH_SERVICE" && ! service "$SSH_SERVICE" status >/dev/null 2>&1; then
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ⚠️ 警告:SSH服务未运行,正在启动..." | tee -a /var/log/ssh-service-protect.log
|
||||
|
||||
# 尝试启动SSH服务
|
||||
systemctl start "$SSH_SERVICE" 2>/dev/null || service "$SSH_SERVICE" start 2>/dev/null || true
|
||||
|
||||
# 等待服务启动
|
||||
sleep 2
|
||||
|
||||
# 再次检查
|
||||
if systemctl is-active --quiet "$SSH_SERVICE" || service "$SSH_SERVICE" status >/dev/null 2>&1; then
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ✅ SSH服务已启动" | tee -a /var/log/ssh-service-protect.log
|
||||
else
|
||||
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ❌ SSH服务启动失败!" | tee -a /var/log/ssh-service-protect.log
|
||||
fi
|
||||
fi
|
||||
PROTECTEOF
|
||||
|
||||
chmod +x /usr/local/bin/protect-ssh-service.sh
|
||||
echo " ✅ SSH服务保护脚本已创建"
|
||||
|
||||
# 7. 设置SSH服务保护定时任务
|
||||
echo ""
|
||||
echo "7. 设置SSH服务保护定时任务..."
|
||||
# 移除现有的保护任务(如果存在)
|
||||
crontab -l 2>/dev/null | grep -v "protect-ssh-service" | crontab - 2>/dev/null || true
|
||||
|
||||
# 添加新的保护任务(每2分钟检查一次)
|
||||
(crontab -l 2>/dev/null; echo "*/2 * * * * /usr/local/bin/protect-ssh-service.sh") | crontab -
|
||||
echo " ✅ SSH服务保护定时任务已设置(每2分钟检查一次)"
|
||||
|
||||
# 8. 配置SSH服务自动启动
|
||||
echo ""
|
||||
echo "8. 配置SSH服务自动启动..."
|
||||
systemctl enable sshd 2>/dev/null || chkconfig sshd on 2>/dev/null || true
|
||||
echo " ✅ SSH服务已设置为开机自启"
|
||||
|
||||
# 9. 验证SSH配置
|
||||
echo ""
|
||||
echo "9. 验证SSH配置..."
|
||||
if sshd -t 2>/dev/null; then
|
||||
echo " ✅ SSH配置语法正确"
|
||||
else
|
||||
echo " ⚠️ 警告:SSH配置语法可能有误"
|
||||
fi
|
||||
|
||||
# 10. 重启SSH服务(应用配置)
|
||||
echo ""
|
||||
echo "10. 重启SSH服务..."
|
||||
systemctl restart sshd 2>/dev/null || service sshd restart 2>/dev/null || true
|
||||
sleep 2
|
||||
|
||||
if systemctl is-active --quiet sshd || service sshd status >/dev/null 2>&1; then
|
||||
echo " ✅ SSH服务已重启并运行正常"
|
||||
else
|
||||
echo " ⚠️ 警告:SSH服务重启后状态异常"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "=================================================================================="
|
||||
echo "✅ SSH配置保护已完成!"
|
||||
echo "=================================================================================="
|
||||
echo ""
|
||||
echo "📋 保护措施总结:"
|
||||
echo " 1. ✅ SSH配置文件已设置为不可变(immutable)"
|
||||
echo " 2. ✅ SSH目录和文件权限已设置"
|
||||
echo " 3. ✅ SSH配置已备份"
|
||||
echo " 4. ✅ SSH配置监控脚本已创建(每5分钟检查)"
|
||||
echo " 5. ✅ SSH服务保护脚本已创建(每2分钟检查)"
|
||||
echo " 6. ✅ SSH服务已设置为开机自启"
|
||||
echo ""
|
||||
echo "📝 查看监控日志:"
|
||||
echo " - SSH配置监控: tail -f /var/log/ssh-config-monitor.log"
|
||||
echo " - SSH服务保护: tail -f /var/log/ssh-service-protect.log"
|
||||
echo ""
|
||||
echo "⚠️ 重要提示:"
|
||||
echo " - 如果需要修改SSH配置,请先运行: chattr -i /etc/ssh/sshd_config"
|
||||
echo " - 修改完成后,请运行: chattr +i /etc/ssh/sshd_config"
|
||||
echo " - 配置文件备份位置: /root/ssh_backups/"
|
||||
echo ""
|
||||
|
||||
@ -15,15 +15,36 @@ apt update && apt upgrade -y
|
||||
echo "安装基础工具..."
|
||||
apt install -y curl wget git build-essential
|
||||
|
||||
# 安全检查函数:检查 .bashrc 是否被感染
|
||||
check_bashrc_security() {
|
||||
local bashrc_file="$HOME/.bashrc"
|
||||
if [ -f "$bashrc_file" ]; then
|
||||
# 检查是否包含恶意代码模式
|
||||
if grep -qE '\.update|/usr/bin/\.update|while.*true.*do.*\.update' "$bashrc_file" 2>/dev/null; then
|
||||
echo "⚠️ 警告: 检测到 .bashrc 可能包含恶意代码!"
|
||||
echo " 建议检查并清理 .bashrc 文件"
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
# 安装 Node.js (使用 nvm)
|
||||
echo "安装 Node.js..."
|
||||
if [ ! -d "$HOME/.nvm" ]; then
|
||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
|
||||
export NVM_DIR="$HOME/.nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
||||
fi
|
||||
|
||||
source ~/.bashrc
|
||||
# 直接加载 nvm,不通过 .bashrc(更安全)
|
||||
export NVM_DIR="$HOME/.nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
||||
|
||||
# 执行安全检查
|
||||
if ! check_bashrc_security; then
|
||||
echo "⚠️ 继续执行,但请注意安全风险"
|
||||
fi
|
||||
|
||||
# 安装和使用 Node.js
|
||||
nvm install 20
|
||||
nvm use 20
|
||||
nvm alias default 20
|
||||
|
||||
0
图片变清晰api.md
Normal file
0
图片变清晰api.md
Normal file
0
安全工具使用指南.md
Normal file
0
安全工具使用指南.md
Normal file
239
手动迁移步骤.md
Normal file
239
手动迁移步骤.md
Normal file
@ -0,0 +1,239 @@
|
||||
# 服务器迁移手动步骤指南
|
||||
|
||||
由于新服务器 (114.66.31.51) 目前无法通过SSH连接,请按照以下步骤进行迁移:
|
||||
|
||||
## 前置条件检查
|
||||
|
||||
### 1. 检查新服务器SSH配置
|
||||
|
||||
在新服务器的控制台或通过其他方式登录后,运行:
|
||||
|
||||
```bash
|
||||
# 上传并运行检查脚本
|
||||
chmod +x check-server-ssh.sh
|
||||
./check-server-ssh.sh
|
||||
```
|
||||
|
||||
### 2. 配置服务器允许SSH连接
|
||||
|
||||
#### 如果使用云服务器(阿里云/腾讯云等):
|
||||
1. 登录云控制台
|
||||
2. 找到安全组设置
|
||||
3. 添加入站规则:
|
||||
- 协议:TCP
|
||||
- 端口:22
|
||||
- 源:0.0.0.0/0(或你的IP地址)
|
||||
- 动作:允许
|
||||
|
||||
#### 如果服务器有防火墙:
|
||||
```bash
|
||||
# Ubuntu/Debian (UFW)
|
||||
sudo ufw allow 22/tcp
|
||||
sudo ufw reload
|
||||
|
||||
# CentOS/RHEL (firewalld)
|
||||
sudo firewall-cmd --permanent --add-service=ssh
|
||||
sudo firewall-cmd --reload
|
||||
|
||||
# 或使用iptables
|
||||
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
|
||||
sudo iptables-save
|
||||
```
|
||||
|
||||
#### 确保SSH服务运行:
|
||||
```bash
|
||||
# 检查SSH服务状态
|
||||
sudo systemctl status sshd # 或 systemctl status ssh
|
||||
|
||||
# 如果未运行,启动服务
|
||||
sudo systemctl start sshd
|
||||
sudo systemctl enable sshd
|
||||
```
|
||||
|
||||
## 迁移步骤
|
||||
|
||||
### 步骤1: 准备备份文件
|
||||
|
||||
备份文件已保存在本地:
|
||||
- 数据库备份:`./migration-backup-20251227_102258/database.dump` (624MB)
|
||||
- 项目文件:`./migration-backup-20251227_102258/project.tar.gz` (11MB)
|
||||
- 环境变量:`./migration-backup-20251227_102258/.env.local`
|
||||
|
||||
### 步骤2: 在新服务器上初始化环境
|
||||
|
||||
一旦SSH连接成功,运行迁移脚本:
|
||||
|
||||
```bash
|
||||
# 在本地执行
|
||||
cd /Users/lanmu/Desktop/ai-chatbot-main
|
||||
./migrate-server.sh
|
||||
```
|
||||
|
||||
或者手动执行以下步骤:
|
||||
|
||||
#### 2.1 在新服务器上安装必要软件
|
||||
|
||||
```bash
|
||||
# 更新系统
|
||||
apt-get update
|
||||
|
||||
# 安装基础工具
|
||||
apt-get install -y curl wget git build-essential postgresql-client postgresql nginx
|
||||
|
||||
# 安装Node.js 20.x
|
||||
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
|
||||
apt-get install -y nodejs
|
||||
|
||||
# 安装PM2和pnpm
|
||||
npm install -g pm2 pnpm
|
||||
```
|
||||
|
||||
#### 2.2 创建数据库
|
||||
|
||||
```bash
|
||||
# 启动PostgreSQL
|
||||
systemctl start postgresql
|
||||
systemctl enable postgresql
|
||||
|
||||
# 创建数据库和用户
|
||||
sudo -u postgres psql << 'EOF'
|
||||
CREATE DATABASE ai_chatbot;
|
||||
CREATE USER chatbot_user WITH PASSWORD 'your_secure_password_here';
|
||||
GRANT ALL PRIVILEGES ON DATABASE ai_chatbot TO chatbot_user;
|
||||
ALTER DATABASE ai_chatbot OWNER TO chatbot_user;
|
||||
\q
|
||||
EOF
|
||||
```
|
||||
|
||||
#### 2.3 上传备份文件
|
||||
|
||||
```bash
|
||||
# 在本地执行,上传备份文件到新服务器
|
||||
cd /Users/lanmu/Desktop/ai-chatbot-main
|
||||
scp -P 22 ./migration-backup-20251227_102258/database.dump root@114.66.31.51:/tmp/
|
||||
scp -P 22 ./migration-backup-20251227_102258/project.tar.gz root@114.66.31.51:/tmp/
|
||||
scp -P 22 ./migration-backup-20251227_102258/.env.local root@114.66.31.51:/tmp/
|
||||
```
|
||||
|
||||
#### 2.4 在新服务器上解压和配置
|
||||
|
||||
```bash
|
||||
# 在新服务器上执行
|
||||
mkdir -p /var/www/ai-chatbot
|
||||
cd /var/www/ai-chatbot
|
||||
tar -xzf /tmp/project.tar.gz
|
||||
|
||||
# 配置环境变量
|
||||
cp /tmp/.env.local .env.local
|
||||
# 编辑 .env.local,更新数据库连接信息
|
||||
nano .env.local
|
||||
# 修改 POSTGRES_URL 为新服务器的数据库连接
|
||||
# POSTGRES_URL=postgresql://chatbot_user:your_secure_password_here@localhost:5432/ai_chatbot
|
||||
# AUTH_URL=http://114.66.31.51
|
||||
```
|
||||
|
||||
#### 2.5 导入数据库
|
||||
|
||||
```bash
|
||||
# 在新服务器上执行
|
||||
export PGPASSWORD="your_secure_password_here"
|
||||
pg_restore -h localhost -p 5432 -U chatbot_user -d ai_chatbot -c --no-owner --no-privileges /tmp/database.dump
|
||||
```
|
||||
|
||||
#### 2.6 安装依赖和构建
|
||||
|
||||
```bash
|
||||
# 在新服务器上执行
|
||||
cd /var/www/ai-chatbot
|
||||
pnpm install --frozen-lockfile
|
||||
pnpm db:migrate
|
||||
pnpm build
|
||||
```
|
||||
|
||||
#### 2.7 配置PM2
|
||||
|
||||
```bash
|
||||
# 在新服务器上执行
|
||||
cd /var/www/ai-chatbot
|
||||
cat > ecosystem.config.js << 'EOF'
|
||||
module.exports = {
|
||||
apps: [{
|
||||
name: 'ai-chatbot',
|
||||
script: 'node_modules/next/dist/bin/next',
|
||||
args: 'start',
|
||||
cwd: '/var/www/ai-chatbot',
|
||||
instances: 1,
|
||||
exec_mode: 'fork',
|
||||
env: {
|
||||
NODE_ENV: 'production',
|
||||
PORT: 3000
|
||||
},
|
||||
error_file: '/var/log/pm2/ai-chatbot-error.log',
|
||||
out_file: '/var/log/pm2/ai-chatbot-out.log',
|
||||
log_date_format: 'YYYY-MM-DD HH:mm:ss Z',
|
||||
merge_logs: true,
|
||||
autorestart: true,
|
||||
max_memory_restart: '1G'
|
||||
}]
|
||||
};
|
||||
EOF
|
||||
|
||||
pm2 start ecosystem.config.js
|
||||
pm2 save
|
||||
pm2 startup
|
||||
```
|
||||
|
||||
#### 2.8 配置Nginx
|
||||
|
||||
```bash
|
||||
# 在新服务器上执行
|
||||
cat > /etc/nginx/sites-available/ai-chatbot << 'EOF'
|
||||
server {
|
||||
listen 80;
|
||||
server_name 114.66.31.51;
|
||||
|
||||
location / {
|
||||
proxy_pass http://localhost:3000;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection 'upgrade';
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_cache_bypass $http_upgrade;
|
||||
proxy_read_timeout 300s;
|
||||
proxy_connect_timeout 75s;
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
ln -sf /etc/nginx/sites-available/ai-chatbot /etc/nginx/sites-enabled/
|
||||
rm -f /etc/nginx/sites-enabled/default
|
||||
nginx -t && systemctl reload nginx
|
||||
```
|
||||
|
||||
## 验证迁移
|
||||
|
||||
1. 检查PM2状态:`pm2 status`
|
||||
2. 检查日志:`pm2 logs ai-chatbot`
|
||||
3. 访问网站:http://114.66.31.51
|
||||
4. 测试登录和基本功能
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **数据库密码**:请使用强密码替换 `your_secure_password_here`
|
||||
2. **环境变量**:检查 `.env.local` 中的所有配置是否正确
|
||||
3. **防火墙**:确保开放80和443端口(如果使用HTTPS)
|
||||
4. **域名**:如果使用域名,更新 `AUTH_URL` 和Nginx配置
|
||||
|
||||
## 如果SSH连接成功
|
||||
|
||||
直接运行自动化迁移脚本:
|
||||
|
||||
```bash
|
||||
./migrate-server.sh
|
||||
```
|
||||
|
||||
脚本会自动完成所有步骤。
|
||||
|
||||
38
本地备份数据总结.txt
Normal file
38
本地备份数据总结.txt
Normal file
@ -0,0 +1,38 @@
|
||||
本地备份数据总结
|
||||
================
|
||||
|
||||
✅ 发现的备份数据:
|
||||
|
||||
1. SQL文件(可以直接导入,在 migration-backup-complete/config-inserts/):
|
||||
- NavLinks.sql ✅
|
||||
- SiteSettings.sql ✅
|
||||
- StorageConfig.sql ✅
|
||||
- SystemSettings.sql ✅
|
||||
- AiModel.sql (已有数据,可选)
|
||||
- AiProvider.sql (已有数据,可选)
|
||||
- AuthSettings.sql (已有数据,可选)
|
||||
|
||||
2. Dump文件中的表(需要从dump提取):
|
||||
- Message ✅ (在 database_complete.dump 中)
|
||||
- Message_v2 ✅ (在 database_complete.dump 中)
|
||||
- Stream ✅ (在 database_complete.dump 中)
|
||||
- Suggestion ✅ (在 database_complete.dump 中)
|
||||
- ToolConfig ✅ (在 database_complete.dump 中)
|
||||
- Vote ✅ (在 database_complete.dump 中)
|
||||
- Vote_v2 ✅ (在 database_complete.dump 中)
|
||||
|
||||
3. 其他备份文件:
|
||||
- database_complete.dump (128M) - 完整备份
|
||||
- database_clone.dump (94M) - 克隆备份
|
||||
- migration-backup-20251227_102258/database.dump (624M) - 另一个备份
|
||||
|
||||
迁移方案:
|
||||
==========
|
||||
|
||||
方案1:先导入SQL文件(快速)
|
||||
./import-missing-tables-from-sql.sh
|
||||
|
||||
方案2:从dump文件导入剩余表
|
||||
./migrate-missing-tables-remote.sh
|
||||
|
||||
或者组合使用两个脚本。
|
||||
135
系统性能诊断与解决方案.md
Normal file
135
系统性能诊断与解决方案.md
Normal file
@ -0,0 +1,135 @@
|
||||
# 系统性能诊断与解决方案
|
||||
|
||||
## 📊 诊断结果
|
||||
|
||||
### 主要问题进程
|
||||
|
||||
1. **Cursor Helper (Renderer) - PID 19375** ⚠️ **严重**
|
||||
- CPU使用率:41.9% - 134.8%(波动异常)
|
||||
- 内存占用:12.0% (约3.2GB)
|
||||
- 运行时间:已运行4小时+
|
||||
- **问题**:渲染进程CPU占用异常高,可能是某个标签页或扩展导致
|
||||
|
||||
2. **Adobe Illustrator - PID 70308** ⚠️ **严重**
|
||||
- CPU使用率:70.8%
|
||||
- 内存占用:1.1%
|
||||
- 运行时间:已运行13天+
|
||||
- **问题**:长时间运行且持续占用高CPU,可能正在执行后台任务
|
||||
|
||||
3. **WindowServer - PID 157** ⚠️ **中等**
|
||||
- CPU使用率:60.5%
|
||||
- 内存占用:2.9%
|
||||
- **问题**:图形服务器CPU占用偏高,通常与多个应用窗口有关
|
||||
|
||||
4. **CEPHtmlEngine(Adobe组件)** ⚠️
|
||||
- **问题**:阻止显示器自动睡眠,增加耗电
|
||||
|
||||
### 系统状态
|
||||
- **系统负载**:4.11-4.24(10核CPU,负载适中但持续)
|
||||
- **CPU核心数**:10核
|
||||
- **睡眠状态**:显示器睡眠被阻止
|
||||
|
||||
## 🔧 解决方案
|
||||
|
||||
### 立即措施(推荐按顺序执行)
|
||||
|
||||
#### 1. 重启Cursor的异常渲染进程
|
||||
|
||||
```bash
|
||||
# 方法1:通过活动监视器
|
||||
# 打开"活动监视器" -> 找到 "Cursor Helper (Renderer)" -> 强制退出
|
||||
|
||||
# 方法2:通过终端(谨慎使用)
|
||||
kill -9 19375
|
||||
```
|
||||
|
||||
**注意**:这会关闭Cursor的一个渲染进程,可能导致当前打开的标签页关闭,但不会影响整个Cursor应用。
|
||||
|
||||
#### 2. 关闭或重启Adobe Illustrator
|
||||
|
||||
```bash
|
||||
# 检查Adobe Illustrator是否真的在使用
|
||||
# 如果不需要,建议关闭它
|
||||
# 通过活动监视器或Dock关闭Adobe Illustrator
|
||||
```
|
||||
|
||||
#### 3. 允许显示器自动睡眠
|
||||
|
||||
CEPHtmlEngine(Adobe的进程)正在阻止显示器睡眠。如果不需要Adobe相关功能,建议关闭Adobe应用。
|
||||
|
||||
### 长期优化建议
|
||||
|
||||
#### 1. 检查Cursor扩展和标签页
|
||||
- 打开Cursor设置,检查已安装的扩展
|
||||
- 关闭不必要的标签页
|
||||
- 特别是浏览器扩展或占用资源的扩展
|
||||
|
||||
#### 2. 优化电源设置
|
||||
|
||||
```bash
|
||||
# 查看当前电源设置
|
||||
pmset -g
|
||||
|
||||
# 如果需要,可以调整显示器睡眠时间(需要管理员权限)
|
||||
# sudo pmset -a displaysleep 5 # 5分钟后显示器睡眠
|
||||
```
|
||||
|
||||
#### 3. 定期重启长时间运行的应用
|
||||
- Adobe Illustrator已运行13天+,建议定期重启
|
||||
- 长时间运行的应用可能会累积内存泄漏或资源占用
|
||||
|
||||
#### 4. 使用活动监视器监控
|
||||
- 定期检查"活动监视器"中的CPU和能耗标签
|
||||
- 识别持续高占用的应用
|
||||
|
||||
#### 5. 清理后台进程
|
||||
- 关闭不必要的应用
|
||||
- 检查登录项(系统设置 -> 通用 -> 登录项)
|
||||
- 禁用不需要的开机自启应用
|
||||
|
||||
## 🎯 快速操作步骤
|
||||
|
||||
### 步骤1:立即降低CPU使用率
|
||||
|
||||
1. **打开"活动监视器"**(Command + Space,输入"活动监视器")
|
||||
2. 点击"CPU"标签,按CPU使用率排序
|
||||
3. 找到以下进程并操作:
|
||||
- **Cursor Helper (Renderer)** (PID 19375) - 选中并点击"强制退出"
|
||||
- **Adobe Illustrator** (PID 70308) - 如果不需要,选择"退出"
|
||||
|
||||
### 步骤2:检查Cursor中的问题
|
||||
|
||||
1. 在Cursor中关闭所有不必要的标签页
|
||||
2. 检查是否有大量文件的文件夹被打开
|
||||
3. 尝试重启Cursor(Cursor -> 退出Cursor,然后重新打开)
|
||||
|
||||
### 步骤3:优化Adobe Illustrator
|
||||
|
||||
1. 如果Adobe Illustrator不在使用,完全退出应用
|
||||
2. 如果正在使用,保存工作后重启应用以清理累积的资源占用
|
||||
|
||||
## 📈 预期效果
|
||||
|
||||
执行上述操作后,您应该看到:
|
||||
- CPU使用率显著降低(从当前平均40%+降至20%以下)
|
||||
- 系统温度下降
|
||||
- 电池续航改善
|
||||
- 系统响应速度提升
|
||||
|
||||
## 🔍 后续监控
|
||||
|
||||
如果问题持续存在,请检查:
|
||||
1. Cursor中是否有特定文件或扩展导致问题
|
||||
2. Adobe Illustrator是否有特定的插件或功能导致高CPU
|
||||
3. 是否有其他隐藏的后台进程(使用 `top` 或 `htop` 命令查看)
|
||||
|
||||
## 💡 预防措施
|
||||
|
||||
1. **定期重启应用**:长时间运行的应用(超过1周)建议重启
|
||||
2. **监控资源使用**:使用活动监视器的"能耗"标签识别耗电应用
|
||||
3. **关闭不用的应用**:不在使用中的应用应该完全退出,而不是只是关闭窗口
|
||||
4. **检查扩展**:定期审查安装的浏览器扩展和编辑器扩展
|
||||
|
||||
|
||||
|
||||
|
||||
30
迁移说明.txt
Normal file
30
迁移说明.txt
Normal file
@ -0,0 +1,30 @@
|
||||
数据库迁移状态总结
|
||||
==================
|
||||
|
||||
✅ 已成功迁移的表(8个,共约23,721条记录):
|
||||
1. AiModel: 9条
|
||||
2. AiProvider: 7条
|
||||
3. AuthSettings: 1条
|
||||
4. Chat: 6,010条
|
||||
5. Document: 42条
|
||||
6. GeneratedImage: 17,627条
|
||||
7. LoginToken: 29条
|
||||
8. User: 1条
|
||||
|
||||
❌ 缺失数据的表(11个,需要迁移):
|
||||
1. Message: 0条 ⚠️ 重要 - 聊天消息数据
|
||||
2. Message_v2: 0条 ⚠️ 重要 - 新版本消息数据
|
||||
3. NavLinks: 0条 - 导航链接
|
||||
4. SiteSettings: 0条 ⚠️ 重要 - 网站设置
|
||||
5. StorageConfig: 0条 - 存储配置
|
||||
6. Stream: 0条 - 流式数据
|
||||
7. Suggestion: 0条 - 建议数据
|
||||
8. SystemSettings: 0条 ⚠️ 重要 - 系统设置
|
||||
9. ToolConfig: 0条 - 工具配置
|
||||
10. Vote: 0条 - 投票数据
|
||||
11. Vote_v2: 0条 - 新版本投票数据
|
||||
|
||||
迁移步骤:
|
||||
1. 上传备份文件到新服务器: scp migration-backup-complete/database_complete.dump root@70.39.205.74:/tmp/
|
||||
2. 上传迁移脚本: scp migrate-missing-tables-remote.sh root@70.39.205.74:/root/
|
||||
3. 在新服务器上执行: ssh root@70.39.205.74 "chmod +x /root/migrate-missing-tables-remote.sh && /root/migrate-missing-tables-remote.sh"
|
||||
0
配置安全组指南.md
Normal file
0
配置安全组指南.md
Normal file
Loading…
x
Reference in New Issue
Block a user