feat: 完成PHP到NestJS的100%功能迁移

- 迁移25个模块,包含95个控制器和160个服务
- 新增验证码管理、登录配置、云编译等模块
- 完善认证授权、会员管理、支付系统等核心功能
- 实现完整的队列系统、配置管理、监控体系
- 确保100%功能对齐和命名一致性
- 支持生产环境部署
This commit is contained in:
万物街
2025-09-10 08:04:28 +08:00
parent a2d6a47601
commit 7a20a0c50a
551 changed files with 35628 additions and 2025 deletions

46
temp/entities/diy_form.ts Normal file
View File

@@ -0,0 +1,46 @@
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity('diy_form')
export class DiyForm {
@PrimaryGeneratedColumn({ type: 'int' })
id: number;
@Column({ name: 'site_id', type: 'int', default: 0 })
siteId: any;
@Column({ name: 'page_title', type: 'varchar', length: 255, default: '' })
pageTitle: any;
@Column({ name: 'title', type: 'varchar', length: 255, default: '' })
title: any;
@Column({ name: 'type', type: 'varchar', length: 255, default: '' })
type: any;
@Column({ name: 'status', type: 'int', default: 0 })
status: any;
@Column({ name: 'template', type: 'varchar', length: 255, default: '' })
template: any;
@Column({ name: 'value', type: 'text' })
value: any;
@Column({ name: 'addon', type: 'varchar', length: 255, default: '' })
addon: any;
@Column({ name: 'share', type: 'varchar', length: 1000, default: '' })
share: any;
@Column({ name: 'write_num', type: 'int', default: 0 })
writeNum: any;
@Column({ name: 'remark', type: 'varchar', length: 255, default: '' })
remark: any;
@Column({ name: 'create_time', type: 'int', default: 0 })
createTime: any;
@Column({ name: 'update_time', type: 'int', default: 0 })
updateTime: any;
}

View File

@@ -0,0 +1,49 @@
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity('diy_form_fields')
export class DiyFormFields {
@PrimaryGeneratedColumn({ type: 'int' })
id: number;
@Column({ name: 'site_id', type: 'int', default: 0 })
siteId: any;
@Column({ name: 'form_id', type: 'int', default: 0 })
formId: any;
@Column({ name: 'field_key', type: 'varchar', length: 255, default: '' })
fieldKey: any;
@Column({ name: 'field_type', type: 'varchar', length: 255, default: '' })
fieldType: any;
@Column({ name: 'field_name', type: 'varchar', length: 255, default: '' })
fieldName: any;
@Column({ name: 'field_remark', type: 'varchar', length: 255, default: '' })
fieldRemark: any;
@Column({ name: 'field_default', type: 'text' })
fieldDefault: any;
@Column({ name: 'write_num', type: 'int', default: 0 })
writeNum: any;
@Column({ name: 'field_required', type: 'int', default: 0 })
fieldRequired: any;
@Column({ name: 'field_hidden', type: 'int', default: 0 })
fieldHidden: any;
@Column({ name: 'field_unique', type: 'int', default: 0 })
fieldUnique: any;
@Column({ name: 'privacy_protection', type: 'int', default: 0 })
privacyProtection: any;
@Column({ name: 'create_time', type: 'int', default: 0 })
createTime: any;
@Column({ name: 'update_time', type: 'int', default: 0 })
updateTime: any;
}

View File

@@ -0,0 +1,25 @@
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity('diy_form_records')
export class DiyFormRecords {
@PrimaryGeneratedColumn({ type: 'int' })
id: number;
@Column({ name: 'site_id', type: 'int', default: 0 })
siteId: any;
@Column({ name: 'form_id', type: 'int', default: 0 })
formId: any;
@Column({ name: 'value', type: 'text' })
value: any;
@Column({ name: 'member_id', type: 'int', default: 0 })
memberId: any;
@Column({ name: 'relate_id', type: 'int', default: 0 })
relateId: any;
@Column({ name: 'create_time', type: 'int', default: 0 })
createTime: any;
}

View File

@@ -0,0 +1,55 @@
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity('diy_form_records_fields')
export class DiyFormRecordsFields {
@PrimaryGeneratedColumn({ type: 'int' })
id: number;
@Column({ name: 'site_id', type: 'int', default: 0 })
siteId: any;
@Column({ name: 'form_id', type: 'int', default: 0 })
formId: any;
@Column({ name: 'form_field_id', type: 'int', default: 0 })
formFieldId: any;
@Column({ name: 'record_id', type: 'int', default: 0 })
recordId: any;
@Column({ name: 'member_id', type: 'int', default: 0 })
memberId: any;
@Column({ name: 'field_key', type: 'varchar', length: 255, default: '' })
fieldKey: any;
@Column({ name: 'field_type', type: 'varchar', length: 255, default: '' })
fieldType: any;
@Column({ name: 'field_name', type: 'varchar', length: 255, default: '' })
fieldName: any;
@Column({ name: 'field_value', type: 'text' })
fieldValue: any;
@Column({ name: 'field_required', type: 'int', default: 0 })
fieldRequired: any;
@Column({ name: 'field_hidden', type: 'int', default: 0 })
fieldHidden: any;
@Column({ name: 'field_unique', type: 'int', default: 0 })
fieldUnique: any;
@Column({ name: 'privacy_protection', type: 'int', default: 0 })
privacyProtection: any;
@Column({ name: 'update_num', type: 'int', default: 0 })
updateNum: any;
@Column({ name: 'create_time', type: 'int', default: 0 })
createTime: any;
@Column({ name: 'update_time', type: 'int', default: 0 })
updateTime: any;
}

View File

@@ -0,0 +1,40 @@
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity('diy_form_submit_config')
export class DiyFormSubmitConfig {
@PrimaryGeneratedColumn({ type: 'int' })
id: number;
@Column({ name: 'site_id', type: 'int', default: 0 })
siteId: any;
@Column({ name: 'form_id', type: 'int', default: 0 })
formId: any;
@Column({ name: 'submit_after_action', type: 'varchar', length: 255, default: '' })
submitAfterAction: any;
@Column({ name: 'tips_type', type: 'varchar', length: 255, default: '' })
tipsType: any;
@Column({ name: 'tips_text', type: 'varchar', length: 255, default: '' })
tipsText: any;
@Column({ name: 'time_limit_type', type: 'varchar', length: 255, default: 0 })
timeLimitType: any;
@Column({ name: 'time_limit_rule', type: 'text' })
timeLimitRule: any;
@Column({ name: 'voucher_content_rule', type: 'text' })
voucherContentRule: any;
@Column({ name: 'success_after_action', type: 'text' })
successAfterAction: any;
@Column({ name: 'create_time', type: 'int', default: 0 })
createTime: any;
@Column({ name: 'update_time', type: 'int', default: 0 })
updateTime: any;
}

View File

@@ -0,0 +1,55 @@
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity('diy_form_write_config')
export class DiyFormWriteConfig {
@PrimaryGeneratedColumn({ type: 'int' })
id: number;
@Column({ name: 'site_id', type: 'int', default: 0 })
siteId: any;
@Column({ name: 'form_id', type: 'int', default: 0 })
formId: any;
@Column({ name: 'write_way', type: 'varchar', length: 255 })
writeWay: any;
@Column({ name: 'join_member_type', type: 'varchar', length: 255, default: 'all_member' })
joinMemberType: any;
@Column({ name: 'level_ids', type: 'text' })
levelIds: any;
@Column({ name: 'label_ids', type: 'text' })
labelIds: any;
@Column({ name: 'member_write_type', type: 'varchar', length: 255 })
memberWriteType: any;
@Column({ name: 'member_write_rule', type: 'text' })
memberWriteRule: any;
@Column({ name: 'form_write_type', type: 'varchar', length: 255 })
formWriteType: any;
@Column({ name: 'form_write_rule', type: 'text' })
formWriteRule: any;
@Column({ name: 'time_limit_type', type: 'varchar', length: 255, default: 0 })
timeLimitType: any;
@Column({ name: 'time_limit_rule', type: 'text' })
timeLimitRule: any;
@Column({ name: 'is_allow_update_content', type: 'int', default: 0 })
isAllowUpdateContent: any;
@Column({ name: 'write_instruction', type: 'text' })
writeInstruction: any;
@Column({ name: 'create_time', type: 'int', default: 0 })
createTime: any;
@Column({ name: 'update_time', type: 'int', default: 0 })
updateTime: any;
}

View File

@@ -0,0 +1,43 @@
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity('diy_theme')
export class DiyTheme {
@PrimaryGeneratedColumn({ type: 'int' })
id: number;
@Column({ name: 'site_id', type: 'int', default: 0 })
siteId: any;
@Column({ name: 'title', type: 'varchar', length: 255, default: '' })
title: any;
@Column({ name: 'type', type: 'varchar', length: 255, default: '' })
type: any;
@Column({ name: 'addon', type: 'varchar', length: 255, default: '' })
addon: any;
@Column({ name: 'mode', type: 'varchar', length: 255, default: '' })
mode: any;
@Column({ name: 'theme_type', type: 'varchar', length: 255, default: '' })
themeType: any;
@Column({ name: 'default_theme', type: 'text' })
defaultTheme: any;
@Column({ name: 'theme', type: 'text' })
theme: any;
@Column({ name: 'new_theme', type: 'text' })
newTheme: any;
@Column({ name: 'is_selected', type: 'int', default: 0 })
isSelected: any;
@Column({ name: 'create_time', type: 'int', default: 0 })
createTime: any;
@Column({ name: 'update_time', type: 'int', default: 0 })
updateTime: any;
}

61
temp/entities/events.ts Normal file
View File

@@ -0,0 +1,61 @@
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity('events')
export class Events {
@PrimaryGeneratedColumn({ type: 'int' })
id: number;
@Column({ name: 'event_id', type: 'varchar', length: 36 })
eventId: any;
@Column({ name: 'event_type', type: 'varchar', length: 255 })
eventType: any;
@Column({ name: 'aggregate_id', type: 'varchar', length: 255 })
aggregateId: any;
@Column({ name: 'aggregate_type', type: 'varchar', length: 255 })
aggregateType: any;
@Column({ name: 'site_id', type: 'int', default: 0 })
siteId: any;
@Column({ name: 'trace_id', type: 'varchar', length: 128 })
traceId: any;
@Column({ name: 'event_data', type: 'text' })
eventData: any;
@Column({ name: 'event_version', type: 'int', default: 1 })
eventVersion: any;
@Column({ name: 'occurred_at', type: 'int' })
occurredAt: any;
@Column({ name: 'processed_at', type: 'int', default: 0 })
processedAt: any;
@Column({ name: 'headers', type: 'text' })
headers: any;
@Column({ name: 'retry_count', type: 'int', default: 0 })
retryCount: any;
@Column({ name: 'last_error', type: 'text' })
lastError: any;
@Column({ name: 'next_retry_at', type: 'int', default: 0 })
nextRetryAt: any;
@Column({ name: 'create_time', type: 'int' })
createTime: any;
@Column({ name: 'update_time', type: 'int' })
updateTime: any;
@Column({ name: 'is_del', type: 'int', default: 0 })
isDel: any;
@Column({ name: 'delete_time', type: 'int', default: 0 })
deleteTime: any;
}

View File

@@ -0,0 +1,49 @@
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity('niu_sms_template')
export class NiuSmsTemplate {
@PrimaryGeneratedColumn({ type: 'int' })
id: number;
@Column({ name: 'site_id', type: 'int', default: 0 })
siteId: any;
@Column({ name: 'sms_type', type: 'varchar', length: 255, default: '' })
smsType: any;
@Column({ name: 'username', type: 'varchar', length: 255, default: '' })
username: any;
@Column({ name: 'template_key', type: 'varchar', length: 255, default: '' })
templateKey: any;
@Column({ name: 'template_id', type: 'varchar', length: 255, default: '' })
templateId: any;
@Column({ name: 'template_type', type: 'varchar', length: 255, default: '' })
templateType: any;
@Column({ name: 'template_content', type: 'varchar', length: 255, default: '' })
templateContent: any;
@Column({ name: 'param_json', type: 'varchar', length: 255, default: '' })
paramJson: any;
@Column({ name: 'status', type: 'varchar', length: 255, default: '' })
status: any;
@Column({ name: 'audit_status', type: 'varchar', length: 255, default: '' })
auditStatus: any;
@Column({ name: 'audit_msg', type: 'varchar', length: 255, default: '' })
auditMsg: any;
@Column({ name: 'report_info', type: 'text' })
reportInfo: any;
@Column({ name: 'create_time', type: 'int', default: 0 })
createTime: any;
@Column({ name: 'update_time', type: 'int', default: 0 })
updateTime: any;
}

View File

@@ -0,0 +1,31 @@
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity('sys_backup_records')
export class SysBackupRecords {
@PrimaryGeneratedColumn({ type: 'int' })
id: number;
@Column({ name: 'version', type: 'varchar', length: 255, default: '' })
version: any;
@Column({ name: 'backup_key', type: 'varchar', length: 255, default: '' })
backupKey: any;
@Column({ name: 'content', type: 'text' })
content: any;
@Column({ name: 'status', type: 'varchar', length: 255, default: '' })
status: any;
@Column({ name: 'fail_reason', type: 'text' })
failReason: any;
@Column({ name: 'remark', type: 'varchar', length: 500, default: '' })
remark: any;
@Column({ name: 'create_time', type: 'int', default: 0 })
createTime: any;
@Column({ name: 'complete_time', type: 'int', default: 0 })
completeTime: any;
}

View File

@@ -0,0 +1,37 @@
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity('sys_upgrade_records')
export class SysUpgradeRecords {
@PrimaryGeneratedColumn({ type: 'int' })
id: number;
@Column({ name: 'upgrade_key', type: 'varchar', length: 255, default: '' })
upgradeKey: any;
@Column({ name: 'app_key', type: 'varchar', length: 255, default: '' })
appKey: any;
@Column({ name: 'name', type: 'varchar', length: 255, default: '' })
name: any;
@Column({ name: 'content', type: 'text' })
content: any;
@Column({ name: 'prev_version', type: 'varchar', length: 255, default: '' })
prevVersion: any;
@Column({ name: 'current_version', type: 'varchar', length: 255, default: '' })
currentVersion: any;
@Column({ name: 'status', type: 'varchar', length: 255, default: '' })
status: any;
@Column({ name: 'fail_reason', type: 'text' })
failReason: any;
@Column({ name: 'create_time', type: 'int', default: 0 })
createTime: any;
@Column({ name: 'complete_time', type: 'int', default: 0 })
completeTime: any;
}