更新短信功能

This commit is contained in:
2026-04-01 15:15:21 +08:00
parent 1314e18142
commit 5ed24a8003
24 changed files with 2267 additions and 93 deletions
+2 -3
View File
@@ -2,7 +2,7 @@ package models
import "time"
// AdminRole 平台角色表 yz_admin_role
// AdminRole 平台角色表 yz_system_admin_role
type AdminRole struct {
ID uint64 `orm:"column(id);pk;auto" json:"id"`
Cid uint8 `orm:"column(cid);default(1)" json:"cid"` // 1平台角色 2租户角色
@@ -15,6 +15,5 @@ type AdminRole struct {
}
func (m *AdminRole) TableName() string {
return "yz_admin_role"
return "yz_system_admin_role"
}
+4 -5
View File
@@ -7,7 +7,7 @@ import (
"time"
)
// AdminUser 平台管理员信息表 yz_admin_user
// AdminUser 平台管理员信息表 yz_system_admin_user
type AdminUser struct {
ID uint64 `orm:"column(id);pk;auto" json:"id"`
Account string `orm:"column(account);size(64)" json:"account"`
@@ -18,7 +18,7 @@ type AdminUser struct {
Qq *string `orm:"column(qq);size(16);null" json:"qq"`
Sex uint8 `orm:"column(sex);default(0)" json:"sex"`
Avatar *string `orm:"column(avatar);size(255);null" json:"avatar"`
RoleID uint64 `orm:"column(role_id)" json:"group_id"`
RoleID uint64 `orm:"column(role_id)" json:"rid"`
LoginCount uint64 `orm:"column(login_count);default(0)" json:"login_count"`
LastLoginIP *string `orm:"column(last_login_ip);size(255);null" json:"last_login_ip"`
Status uint8 `orm:"column(status);default(1)" json:"status"`
@@ -28,7 +28,7 @@ type AdminUser struct {
}
func (m *AdminUser) TableName() string {
return "yz_admin_user"
return "yz_system_admin_user"
}
func md5Hex(s string) string {
@@ -43,7 +43,7 @@ func NormalizeAccount(s string) string {
// CreateAdminUser 创建平台管理员用户(password 会被 md5
func CreateAdminUser(account, password string, name, phone, email, qq, avatar *string, sex uint8, roleID uint64, status uint8) (uint64, error) {
u := &AdminUser{
Account: NormalizeAccount(account),
Account: NormalizeAccount(account),
Password: md5Hex(strings.TrimSpace(password)),
Name: name,
Phone: phone,
@@ -93,4 +93,3 @@ func ListAdminUsers() ([]AdminUser, int64, error) {
_, err = Orm.QueryTable(new(AdminUser)).OrderBy("-id").All(&rows)
return rows, total, err
}
+6 -2
View File
@@ -3,8 +3,8 @@ package models
import (
"fmt"
beego "github.com/beego/beego/v2/server/web"
"github.com/beego/beego/v2/client/orm"
beego "github.com/beego/beego/v2/server/web"
_ "github.com/go-sql-driver/mysql"
)
@@ -38,9 +38,13 @@ func Init(_ string) {
new(SystemMenu),
new(AdminUser),
new(AdminRole),
new(SystemFile),
new(SystemFilesCategory),
new(SystemEmail),
new(SystemSMS),
new(SystemSMSTask),
)
// 创建全局 Ormer
Orm = orm.NewOrm()
}
+23
View File
@@ -0,0 +1,23 @@
package models
import "time"
// SystemEmail 系统邮箱配置表 yz_system_email
type SystemEmail struct {
ID uint `orm:"column(id);pk;auto" json:"id"`
FromAddress string `orm:"column(from_address);size(191)" json:"from_address"`
FromName *string `orm:"column(from_name);size(191);null" json:"from_name"`
Host string `orm:"column(host);size(191)" json:"host"`
Port uint `orm:"column(port);default(465)" json:"port"`
Password string `orm:"column(password);size(255)" json:"password"`
Encryption string `orm:"column(encryption);size(8)" json:"encryption"` // ssl / tls / none
Timeout uint `orm:"column(timeout);default(30)" json:"timeout"`
Status int8 `orm:"column(status);default(1)" json:"status"`
Remark *string `orm:"column(remark);size(255);null" json:"remark"`
CreateTime time.Time `orm:"column(create_time);type(datetime);auto_now_add;null" json:"create_time"`
UpdateTime time.Time `orm:"column(update_time);type(datetime);auto_now;null" json:"update_time"`
}
func (m *SystemEmail) TableName() string {
return "yz_system_email"
}
+25
View File
@@ -0,0 +1,25 @@
package models
import "time"
// SystemFile 附件表 yz_system_files
type SystemFile struct {
ID uint64 `orm:"column(id);pk;auto" json:"id"`
Tid uint64 `orm:"column(tid)" json:"tid"`
Uid *uint64 `orm:"column(uid);null" json:"uid"`
Tuid *uint64 `orm:"column(tuid);null" json:"tuid"`
Name string `orm:"column(name);size(255)" json:"name"`
Type uint8 `orm:"column(type);default(2)" json:"type"`
Cate uint64 `orm:"column(cate);default(0)" json:"cate"`
Size uint64 `orm:"column(size);default(0)" json:"size"`
Src string `orm:"column(src);size(512)" json:"src"`
Uploader uint64 `orm:"column(uploader);default(0)" json:"uploader"`
Md5 string `orm:"column(md5);size(32)" json:"md5"`
CreateTime time.Time `orm:"column(create_time);type(datetime);auto_now_add" json:"create_time"`
UpdateTime *time.Time `orm:"column(update_time);type(datetime);null;auto_now" json:"update_time"`
DeleteTime *time.Time `orm:"column(delete_time);type(datetime);null" json:"delete_time"`
}
func (m *SystemFile) TableName() string {
return "yz_system_files"
}
+19
View File
@@ -0,0 +1,19 @@
package models
import "time"
// SystemFilesCategory 文件分类表 yz_system_files_category
type SystemFilesCategory struct {
ID uint64 `orm:"column(id);pk;auto" json:"id"`
Tid uint64 `orm:"column(tid)" json:"tid"`
Uid *uint64 `orm:"column(uid);null" json:"uid"`
Tuid *uint64 `orm:"column(tuid);null" json:"tuid"`
Name string `orm:"column(name);size(128)" json:"name"`
CreateTime time.Time `orm:"column(create_time);type(datetime);auto_now_add" json:"create_time"`
UpdateTime *time.Time `orm:"column(update_time);type(datetime);null;auto_now" json:"update_time"`
DeleteTime *time.Time `orm:"column(delete_time);type(datetime);null" json:"delete_time"`
}
func (m *SystemFilesCategory) TableName() string {
return "yz_system_files_category"
}
+32
View File
@@ -0,0 +1,32 @@
package models
import "time"
// SystemSMS 短信配置表 yz_system_sms
type SystemSMS struct {
ID uint64 `orm:"column(id);pk;auto" json:"id"`
ConfigCode string `orm:"column(config_code);size(64)" json:"config_code"`
ConfigName string `orm:"column(config_name);size(128)" json:"config_name"`
ChannelType int8 `orm:"column(channel_type);default(1)" json:"channel_type"`
ApiURL string `orm:"column(api_url);size(512);default('')" json:"api_url"`
ApiKey string `orm:"column(api_key);size(256);default('')" json:"api_key"`
ApiSecret string `orm:"column(api_secret);size(256);default('')" json:"api_secret"`
SignName string `orm:"column(sign_name);size(128);default('')" json:"sign_name"`
TemplateID string `orm:"column(template_id);size(128);default('')" json:"template_id"`
ExtraParams *string `orm:"column(extra_params);type(json);null" json:"extra_params"`
TestPhone string `orm:"column(test_phone);size(64);default('')" json:"test_phone"`
Weight int `orm:"column(weight);default(10)" json:"weight"`
IsDefault int8 `orm:"column(is_default);default(0)" json:"is_default"`
Status int8 `orm:"column(status);default(1)" json:"status"`
Remark string `orm:"column(remark);size(512);default('')" json:"remark"`
CreateTime time.Time `orm:"column(create_time);type(datetime);auto_now_add" json:"create_time"`
UpdateTime time.Time `orm:"column(update_time);type(datetime);auto_now" json:"update_time"`
}
func (m *SystemSMS) TableName() string {
return "yz_system_sms"
}
+22
View File
@@ -0,0 +1,22 @@
package models
import "time"
// SystemSMSTask 短信任务表 yz_system_sms_tasks
type SystemSMSTask struct {
ID uint64 `orm:"column(id);pk;auto" json:"id"`
Tid *uint64 `orm:"column(tid);null" json:"tid"` // 测试允许为空
ApiKey string `orm:"column(api_key);size(255)" json:"api_key"`
Phone string `orm:"column(phone);size(50)" json:"phone"`
Content *string `orm:"column(content);type(text);null" json:"content"`
Status int `orm:"column(status);default(0)" json:"status"`
Code string `orm:"column(code);size(20);default('')" json:"code"`
ReportRaw *string `orm:"column(report_raw);type(text);null" json:"report_raw"`
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"`
DeleteTime *time.Time `orm:"column(delete_time);type(datetime);null" json:"delete_time"`
}
func (m *SystemSMSTask) TableName() string {
return "yz_system_sms_tasks"
}
+15 -16
View File
@@ -2,25 +2,24 @@ package models
import "time"
// Tenant 租户表 yz_tenant
// Tenant 租户表 yz_system_tenant
type Tenant struct {
ID uint64 `orm:"column(id);pk;auto" json:"id"` // 租户唯一标识(主键)
TenantCode string `orm:"column(tenant_code);size(32);unique" json:"tenantCode"` // 租户编码
TenantName string `orm:"column(tenant_name);size(128)" json:"tenantName"` // 租户名称
ContactPerson string `orm:"column(contact_person);size(64);null" json:"contactPerson"` // 联系人
ContactPhone string `orm:"column(contact_phone);size(20);null" json:"contactPhone"` // 联系电话
ContactEmail string `orm:"column(contact_email);size(128);null" json:"contactEmail"` // 联系邮箱
Address string `orm:"column(address);size(255);null" json:"address"` // 租户地址
Worktime string `orm:"column(worktime);size(255);null" json:"worktime"` // 工作时间
Status int8 `orm:"column(status);default(1)" json:"status"` // 租户状态:1-正常,2-停用,0-删除
Remark string `orm:"column(remark);size(512);null" json:"remark"` // 备注信息
CreateTime time.Time `orm:"column(create_time);auto_now_add;type(datetime)" json:"createTime"` // 创建时间
UpdateTime time.Time `orm:"column(update_time);auto_now;type(datetime);null" json:"updateTime"` // 更新时间
DeleteTime *time.Time `orm:"column(delete_time);type(datetime);null" json:"deleteTime"` // 删除时间
ID uint64 `orm:"column(id);pk;auto" json:"id"` // 租户唯一标识(主键)
TenantCode string `orm:"column(tenant_code);size(32);unique" json:"tenantCode"` // 租户编码
TenantName string `orm:"column(tenant_name);size(128)" json:"tenantName"` // 租户名称
ContactPerson string `orm:"column(contact_person);size(64);null" json:"contactPerson"` // 联系人
ContactPhone string `orm:"column(contact_phone);size(20);null" json:"contactPhone"` // 联系电话
ContactEmail string `orm:"column(contact_email);size(128);null" json:"contactEmail"` // 联系邮箱
Address string `orm:"column(address);size(255);null" json:"address"` // 租户地址
Worktime string `orm:"column(worktime);size(255);null" json:"worktime"` // 工作时间
Status int8 `orm:"column(status);default(1)" json:"status"` // 租户状态:1-正常,2-停用,0-删除
Remark string `orm:"column(remark);size(512);null" json:"remark"` // 备注信息
CreateTime time.Time `orm:"column(create_time);auto_now_add;type(datetime)" json:"createTime"` // 创建时间
UpdateTime time.Time `orm:"column(update_time);auto_now;type(datetime);null" json:"updateTime"` // 更新时间
DeleteTime *time.Time `orm:"column(delete_time);type(datetime);null" json:"deleteTime"` // 删除时间
}
// TableName 自定义表名
func (t *Tenant) TableName() string {
return "yz_tenant"
return "yz_system_tenant"
}
+14 -15
View File
@@ -2,27 +2,27 @@ package models
import "time"
// TenantUser 租户用户绑定关系表 yz_tenant_user
// TenantUser 租户用户绑定关系表 yz_system_tenant_user
type TenantUser struct {
ID uint64 `orm:"column(id);pk;auto" json:"id"`
Tid uint64 `orm:"column(tid)" json:"tid"` // 租户ID
Uid uint64 `orm:"column(uid)" json:"uid"` // 用户ID
Account *string `orm:"column(account);size(64);null" json:"account"` // 用户账号(冗余)
Name *string `orm:"column(name);size(64);null" json:"name"` // 用户名称(冗余)
Phone *string `orm:"column(phone);size(20);null" json:"phone"` // 手机号(冗余)
Email *string `orm:"column(email);size(128);null" json:"email"` // 邮箱(冗余)
Password *string `orm:"column(password);size(255);null" json:"password"` // 密码(冗余/可选)
IsDefault int8 `orm:"column(is_default);default(0)" json:"is_default"` // 是否默认租户
Status int8 `orm:"column(status);default(1)" json:"status"` // 状态:1启用,0禁用
Remark *string `orm:"column(remark);size(255);null" json:"remark"`
CreateTime time.Time `orm:"column(create_time);auto_now_add;type(datetime)" json:"create_time"`
ID uint64 `orm:"column(id);pk;auto" json:"id"`
Tid uint64 `orm:"column(tid)" json:"tid"` // 租户ID
Uid uint64 `orm:"column(uid)" json:"uid"` // 用户ID
Account *string `orm:"column(account);size(64);null" json:"account"` // 用户账号(冗余)
Name *string `orm:"column(name);size(64);null" json:"name"` // 用户名称(冗余)
Phone *string `orm:"column(phone);size(20);null" json:"phone"` // 手机号(冗余)
Email *string `orm:"column(email);size(128);null" json:"email"` // 邮箱(冗余)
Password *string `orm:"column(password);size(255);null" json:"password"` // 密码(冗余/可选)
IsDefault int8 `orm:"column(is_default);default(0)" json:"is_default"` // 是否默认租户
Status int8 `orm:"column(status);default(1)" json:"status"` // 状态:1启用,0禁用
Remark *string `orm:"column(remark);size(255);null" json:"remark"`
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);null" json:"update_time"`
DeleteTime *time.Time `orm:"column(delete_time);type(datetime);null" json:"delete_time"`
}
// TableName 自定义表名
func (m *TenantUser) TableName() string {
return "yz_tenant_user"
return "yz_system_tenant_user"
}
// BindTenantUser 绑定用户到租户(若已存在则更新状态/默认值)
@@ -103,4 +103,3 @@ func SetDefaultTenant(uid, tid uint64) error {
Update(map[string]interface{}{"is_default": 1})
return err
}