Merge branch 'master' of https://git.yunzer.cn/yunzerwebsite/yunzerwebsiteallinone
This commit is contained in:
+10
-3
@@ -43,14 +43,11 @@ func Init(_ string) {
|
||||
new(AdminRole),
|
||||
new(SystemFile),
|
||||
new(SystemFilesCategory),
|
||||
new(SystemEmail),
|
||||
new(SystemSMS),
|
||||
new(SystemSMSTask),
|
||||
new(SystemOperationLog),
|
||||
new(SystemDomainPool),
|
||||
new(SystemTenantDomain),
|
||||
new(SystemModules),
|
||||
new(PlatformLoginVerify),
|
||||
new(StorageConfig),
|
||||
new(TenantSiteSetting),
|
||||
new(ComplaintCategory),
|
||||
@@ -67,6 +64,16 @@ func Init(_ string) {
|
||||
|
||||
new(CmsArticleCategory),
|
||||
new(CmsArticle),
|
||||
|
||||
new(SystemReminderList),
|
||||
|
||||
new(SystemNormalSetting),
|
||||
new(PlatformNormalSetting),
|
||||
new(BackendNormalSetting),
|
||||
|
||||
new(PlatformSchedule),
|
||||
new(PlatformScheduleReminder),
|
||||
new(PlatformScheduleReminderSendLog),
|
||||
)
|
||||
|
||||
// 创建全局 Ormer
|
||||
|
||||
@@ -75,6 +75,7 @@ type PlatformAccountPoolCursor struct {
|
||||
IsUsed *int8 `orm:"column(is_used);null" json:"is_used"` // 0=用完/不可用 1=可用 NULL=未探测
|
||||
ExtractedTime *time.Time `orm:"column(extracted_time);type(datetime);null" json:"extracted_time"`
|
||||
ExtractedPlatform *string `orm:"column(extracted_platform);size(32);null" json:"extracted_platform"`
|
||||
MachineCode string `orm:"column(machine_code);size(128);default('')" json:"machine_code"`
|
||||
CreateTime time.Time `orm:"column(create_time);auto_now_add;type(datetime)" json:"create_time"`
|
||||
UpdateTime *time.Time `orm:"column(update_time);type(datetime);null" json:"update_time"`
|
||||
DeleteTime *time.Time `orm:"column(delete_time);type(datetime);null" json:"delete_time"`
|
||||
|
||||
@@ -15,20 +15,118 @@ type PlatformLoginVerify struct {
|
||||
UpdateTime *time.Time `orm:"column(update_time);type(datetime);auto_now;null" json:"update_time"`
|
||||
}
|
||||
|
||||
func (m *PlatformLoginVerify) TableName() string {
|
||||
return "yz_system_login_verify"
|
||||
}
|
||||
|
||||
func GetPlatformLoginVerify() (*PlatformLoginVerify, error) {
|
||||
var cfg PlatformLoginVerify
|
||||
err := Orm.QueryTable(new(PlatformLoginVerify)).OrderBy("-id").One(&cfg)
|
||||
if err != nil {
|
||||
// 默认配置:验证码
|
||||
return &PlatformLoginVerify{OpenVerifyEnabled: 1, VerifyType: "captcha"}, nil
|
||||
// 从 yz_platform_normal_setting 表中按 code 获取各个配置
|
||||
enabledStr := GetPlatformSettingValue("login_verify_enabled", "1")
|
||||
verifyType := GetPlatformSettingValue("login_verify_type", "captcha")
|
||||
geetest3ID := GetPlatformSettingValue("login_verify_geetest3_id", "")
|
||||
geetest3Key := GetPlatformSettingValue("login_verify_geetest3_key", "")
|
||||
geetest4ID := GetPlatformSettingValue("login_verify_geetest4_id", "")
|
||||
geetest4Key := GetPlatformSettingValue("login_verify_geetest4_key", "")
|
||||
|
||||
openVerifyEnabled := int8(1)
|
||||
if enabledStr == "0" {
|
||||
openVerifyEnabled = 0
|
||||
}
|
||||
if cfg.VerifyType == "" {
|
||||
cfg.VerifyType = "captcha"
|
||||
|
||||
cfg := &PlatformLoginVerify{
|
||||
OpenVerifyEnabled: openVerifyEnabled,
|
||||
VerifyType: verifyType,
|
||||
}
|
||||
return &cfg, nil
|
||||
if geetest3ID != "" {
|
||||
cfg.Geetest3ID = &geetest3ID
|
||||
}
|
||||
if geetest3Key != "" {
|
||||
cfg.Geetest3Key = &geetest3Key
|
||||
}
|
||||
if geetest4ID != "" {
|
||||
cfg.Geetest4ID = &geetest4ID
|
||||
}
|
||||
if geetest4Key != "" {
|
||||
cfg.Geetest4Key = &geetest4Key
|
||||
}
|
||||
|
||||
return cfg, nil
|
||||
}
|
||||
|
||||
func GetPlatformSettingValue(code string, defaultVal string) string {
|
||||
var setting PlatformNormalSetting
|
||||
err := Orm.QueryTable(new(PlatformNormalSetting)).
|
||||
Filter("code", code).
|
||||
Filter("delete_time__isnull", true).
|
||||
One(&setting)
|
||||
if err != nil {
|
||||
return defaultVal
|
||||
}
|
||||
return setting.Value
|
||||
}
|
||||
|
||||
func SavePlatformLoginVerify(cfg *PlatformLoginVerify) error {
|
||||
openVerifyEnabledStr := "1"
|
||||
if cfg.OpenVerifyEnabled == 0 {
|
||||
openVerifyEnabledStr = "0"
|
||||
}
|
||||
geetest3ID := ""
|
||||
if cfg.Geetest3ID != nil {
|
||||
geetest3ID = *cfg.Geetest3ID
|
||||
}
|
||||
geetest3Key := ""
|
||||
if cfg.Geetest3Key != nil {
|
||||
geetest3Key = *cfg.Geetest3Key
|
||||
}
|
||||
geetest4ID := ""
|
||||
if cfg.Geetest4ID != nil {
|
||||
geetest4ID = *cfg.Geetest4ID
|
||||
}
|
||||
geetest4Key := ""
|
||||
if cfg.Geetest4Key != nil {
|
||||
geetest4Key = *cfg.Geetest4Key
|
||||
}
|
||||
|
||||
settings := []struct {
|
||||
code string
|
||||
name string
|
||||
value string
|
||||
remark string
|
||||
}{
|
||||
{"login_verify_enabled", "登录验证开启状态", openVerifyEnabledStr, "0为关闭,1为开启"},
|
||||
{"login_verify_type", "登录验证类型", cfg.VerifyType, "支持 captcha/sms/geetest/email"},
|
||||
{"login_verify_geetest3_id", "极验3 ID", geetest3ID, ""},
|
||||
{"login_verify_geetest3_key", "极验3 Key", geetest3Key, ""},
|
||||
{"login_verify_geetest4_id", "极验4 ID", geetest4ID, ""},
|
||||
{"login_verify_geetest4_key", "极验4 Key", geetest4Key, ""},
|
||||
}
|
||||
|
||||
for _, item := range settings {
|
||||
var setting PlatformNormalSetting
|
||||
err := Orm.QueryTable(new(PlatformNormalSetting)).
|
||||
Filter("code", item.code).
|
||||
Filter("delete_time__isnull", true).
|
||||
One(&setting)
|
||||
if err == nil {
|
||||
setting.Value = item.value
|
||||
setting.Name = item.name
|
||||
setting.Remark = item.remark
|
||||
now := time.Now()
|
||||
setting.UpdateTime = &now
|
||||
_, err = Orm.Update(&setting, "Value", "Name", "Remark", "UpdateTime")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
newSetting := PlatformNormalSetting{
|
||||
Name: item.name,
|
||||
Code: item.code,
|
||||
Value: item.value,
|
||||
Remark: item.remark,
|
||||
CreateTime: time.Now(),
|
||||
}
|
||||
_, err = Orm.Insert(&newSetting)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
package models
|
||||
|
||||
import "time"
|
||||
|
||||
// PlatformSchedule 日程主表: yz_platform_schedule
|
||||
type PlatformSchedule struct {
|
||||
ID uint64 `orm:"column(id);pk;auto" json:"id"`
|
||||
Title string `orm:"column(title);size(255)" json:"title"`
|
||||
Content string `orm:"column(content);type(text)" json:"content"`
|
||||
ScheduleTime time.Time `orm:"column(schedule_time);type(datetime)" json:"schedule_time"`
|
||||
UserID uint64 `orm:"column(user_id)" json:"user_id"`
|
||||
}
|
||||
|
||||
func (m *PlatformSchedule) TableName() string {
|
||||
return "yz_platform_schedule"
|
||||
}
|
||||
|
||||
// PlatformScheduleReminder 日程提醒主表: yz_platform_schedule_reminder
|
||||
type PlatformScheduleReminder struct {
|
||||
ID uint64 `orm:"column(id);pk;auto" json:"id"`
|
||||
ScheduleID uint64 `orm:"column(schedule_id)" json:"schedule_id"`
|
||||
RemindChannel string `orm:"column(remind_channel);size(20)" json:"remind_channel"` // SMS/EMAIL/BARK/SITE_MSG
|
||||
AdvanceMinutes int `orm:"column(advance_minutes);default(0)" json:"advance_minutes"`
|
||||
RepeatIntervalMinutes int `orm:"column(repeat_interval_minutes);default(0)" json:"repeat_interval_minutes"`
|
||||
NextRemindTime time.Time `orm:"column(next_remind_time);type(datetime)" json:"next_remind_time"`
|
||||
SendCount int `orm:"column(send_count);default(0)" json:"send_count"`
|
||||
MaxSendCount int `orm:"column(max_send_count);default(1)" json:"max_send_count"`
|
||||
AckToken *string `orm:"column(ack_token);size(64);null" json:"ack_token"`
|
||||
AckStatus int8 `orm:"column(ack_status);default(0)" json:"ack_status"` // 0-未确认 1-已确认
|
||||
AckTime *time.Time `orm:"column(ack_time);type(datetime);null" json:"ack_time"`
|
||||
ReceiverUserID uint64 `orm:"column(receiver_user_id)" json:"receiver_user_id"`
|
||||
ReceiverTarget *string `orm:"column(receiver_target);size(255);null" json:"receiver_target"`
|
||||
RemindStatus int8 `orm:"column(remind_status);default(0)" json:"remind_status"` // 0-待提醒 1-提醒中 2-已结束
|
||||
ScanLock string `orm:"column(scan_lock);size(64);default('')" json:"scan_lock"`
|
||||
IsDeleted int8 `orm:"column(is_deleted);default(0)" json:"is_deleted"`
|
||||
CreateTime time.Time `orm:"column(create_time);auto_now_add;type(datetime)" json:"create_time"`
|
||||
UpdateTime time.Time `orm:"column(update_time);auto_now;type(datetime)" json:"update_time"`
|
||||
}
|
||||
|
||||
func (m *PlatformScheduleReminder) TableName() string {
|
||||
return "yz_platform_schedule_reminder"
|
||||
}
|
||||
|
||||
// PlatformScheduleReminderSendLog 提醒实际发送流水: yz_platform_schedule_reminder_send_log
|
||||
type PlatformScheduleReminderSendLog struct {
|
||||
ID uint64 `orm:"column(id);pk;auto" json:"id"`
|
||||
ReminderID uint64 `orm:"column(reminder_id)" json:"reminder_id"`
|
||||
SendTime time.Time `orm:"column(send_time);type(datetime)" json:"send_time"`
|
||||
SendResult int8 `orm:"column(send_result)" json:"send_result"` // 0-失败 1-成功
|
||||
FailReason *string `orm:"column(fail_reason);size(255);null" json:"fail_reason"`
|
||||
}
|
||||
|
||||
func (m *PlatformScheduleReminderSendLog) TableName() string {
|
||||
return "yz_platform_schedule_reminder_send_log"
|
||||
}
|
||||
@@ -18,6 +18,4 @@ type SystemEmail struct {
|
||||
UpdateTime time.Time `orm:"column(update_time);type(datetime);auto_now;null" json:"update_time"`
|
||||
}
|
||||
|
||||
func (m *SystemEmail) TableName() string {
|
||||
return "yz_system_email"
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
package models
|
||||
|
||||
import "time"
|
||||
|
||||
// SystemNormalSetting 系统通用配置表: yz_system_normal_setting
|
||||
type SystemNormalSetting struct {
|
||||
ID uint64 `orm:"column(id);pk;auto" json:"id"`
|
||||
Name string `orm:"column(name);size(128);default('')" json:"name"`
|
||||
Value string `orm:"column(value);type(text);null" json:"value"`
|
||||
Code string `orm:"column(code);size(64);default('')" json:"code"`
|
||||
Remark string `orm:"column(remark);size(255);default('')" json:"remark"`
|
||||
CreateTime time.Time `orm:"column(create_time);auto_now_add;type(datetime)" json:"create_time"`
|
||||
UpdateTime *time.Time `orm:"column(update_time);type(datetime);null" json:"update_time"`
|
||||
DeleteTime *time.Time `orm:"column(delete_time);type(datetime);null" json:"delete_time"`
|
||||
}
|
||||
|
||||
func (m *SystemNormalSetting) TableName() string {
|
||||
return "yz_system_normal_setting"
|
||||
}
|
||||
|
||||
// PlatformNormalSetting 平台通用配置表: yz_platform_normal_setting
|
||||
type PlatformNormalSetting struct {
|
||||
ID uint64 `orm:"column(id);pk;auto" json:"id"`
|
||||
Name string `orm:"column(name);size(128);default('')" json:"name"`
|
||||
Value string `orm:"column(value);type(text);null" json:"value"`
|
||||
Code string `orm:"column(code);size(64);default('')" json:"code"`
|
||||
Remark string `orm:"column(remark);size(255);default('')" json:"remark"`
|
||||
CreateTime time.Time `orm:"column(create_time);auto_now_add;type(datetime)" json:"create_time"`
|
||||
UpdateTime *time.Time `orm:"column(update_time);type(datetime);null" json:"update_time"`
|
||||
DeleteTime *time.Time `orm:"column(delete_time);type(datetime);null" json:"delete_time"`
|
||||
}
|
||||
|
||||
func (m *PlatformNormalSetting) TableName() string {
|
||||
return "yz_platform_normal_setting"
|
||||
}
|
||||
|
||||
// BackendNormalSetting 管理端通用配置表: yz_backend_normal_setting
|
||||
type BackendNormalSetting struct {
|
||||
ID uint64 `orm:"column(id);pk;auto" json:"id"`
|
||||
Name string `orm:"column(name);size(128);default('')" json:"name"`
|
||||
Value string `orm:"column(value);type(text);null" json:"value"`
|
||||
Code string `orm:"column(code);size(64);default('')" json:"code"`
|
||||
Remark string `orm:"column(remark);size(255);default('')" json:"remark"`
|
||||
CreateTime time.Time `orm:"column(create_time);auto_now_add;type(datetime)" json:"create_time"`
|
||||
UpdateTime *time.Time `orm:"column(update_time);type(datetime);null" json:"update_time"`
|
||||
DeleteTime *time.Time `orm:"column(delete_time);type(datetime);null" json:"delete_time"`
|
||||
}
|
||||
|
||||
func (m *BackendNormalSetting) TableName() string {
|
||||
return "yz_backend_normal_setting"
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package models
|
||||
|
||||
import "time"
|
||||
|
||||
// SystemReminderList 站内信消息列表表 yz_system_reminderlist
|
||||
type SystemReminderList struct {
|
||||
ID uint64 `orm:"column(id);pk;auto" json:"id"`
|
||||
Title string `orm:"column(title);size(255)" json:"title"`
|
||||
Content string `orm:"column(content);type(text)" json:"content"`
|
||||
SenderID uint64 `orm:"column(sender_id);default(0)" json:"sender_id"`
|
||||
SenderType string `orm:"column(sender_type);size(32);default('system')" json:"sender_type"` // system, platform, tenant
|
||||
ReceiverID uint64 `orm:"column(receiver_id)" json:"receiver_id"`
|
||||
ReceiverType string `orm:"column(receiver_type);size(32)" json:"receiver_type"` // platform, tenant
|
||||
IsRead int8 `orm:"column(is_read);default(0)" json:"is_read"` // 0-未读, 1-已读
|
||||
ReadTime *time.Time `orm:"column(read_time);type(datetime);null" json:"read_time"`
|
||||
CreateTime *time.Time `orm:"column(create_time);type(datetime);null" json:"create_time"`
|
||||
DeleteTime *time.Time `orm:"column(delete_time);type(datetime);null" json:"delete_time"`
|
||||
BatchID string `orm:"column(batch_id);size(64);default('')" json:"batch_id"`
|
||||
TargetType string `orm:"column(target_type);size(32);default('')" json:"target_type"`
|
||||
TargetRoleID uint64 `orm:"column(target_role_id);default(0)" json:"target_role_id"`
|
||||
TargetTenantID uint64 `orm:"column(target_tenant_id);default(0)" json:"target_tenant_id"`
|
||||
}
|
||||
|
||||
func (m *SystemReminderList) TableName() string {
|
||||
return "yz_system_reminderlist"
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package models
|
||||
|
||||
import "time"
|
||||
|
||||
// SystemSiteReminder 站内信配置表 yz_system_sitereminder
|
||||
type SystemSiteReminder struct {
|
||||
ID uint64 `orm:"column(id);pk;auto" json:"id"`
|
||||
RetentionDays int `orm:"column(retention_days);default(30)" json:"retention_days"`
|
||||
AutoRead int8 `orm:"column(auto_read);default(0)" json:"auto_read"`
|
||||
CreateTime *time.Time `orm:"column(create_time);type(datetime);null" json:"create_time"`
|
||||
UpdateTime *time.Time `orm:"column(update_time);type(datetime);null" json:"update_time"`
|
||||
}
|
||||
|
||||
|
||||
@@ -27,6 +27,4 @@ type SystemSMS struct {
|
||||
UpdateTime time.Time `orm:"column(update_time);type(datetime);auto_now" json:"update_time"`
|
||||
}
|
||||
|
||||
func (m *SystemSMS) TableName() string {
|
||||
return "yz_system_sms"
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user