From f106c22c3890bf56b1e1276565ac12656ab22585 Mon Sep 17 00:00:00 2001 From: dengbiao Date: Fri, 16 Aug 2024 23:02:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BA=E6=89=93=E5=8C=85=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/db/dao/admin_dao.go | 44 ---- app/db/dao/admin_role_dao.go | 25 --- app/db/dao/permission_dao.go | 5 - app/db/dao/permission_group_dao.go | 8 - app/db/dao/permission_group_permission_dao.go | 5 - app/db/dao/role_dao.go | 25 --- app/db/dao/role_permission_group_dao.go | 11 - app/db/dao/sys_cfg_dao.go | 14 ++ app/db/db.go | 112 ---------- app/db/db_sys_cfg.go | 82 -------- app/db/dbs.go | 104 ---------- app/db/dbs_map.go | 194 ------------------ app/db/implement/admin_implement.go | 115 ----------- app/db/implement/admin_role_implement.go | 77 ------- .../implement/permission_group_implement.go | 33 --- .../permission_group_permission_implement.go | 14 -- app/db/implement/permission_implement.go | 14 -- app/db/implement/role_implement.go | 73 ------- .../role_permission_group_implement.go | 32 --- app/db/implement/sys_cfg_implement.go | 124 +++++++++++ app/db/model/admin.go | 14 -- app/db/model/admin_role.go | 10 - app/db/model/db_mapping.go | 14 -- app/db/model/permission.go | 10 - app/db/model/permission_group.go | 11 - app/db/model/permission_group_permission.go | 9 - app/db/model/role.go | 10 - app/db/model/role_permission_group.go | 9 - app/db/super/dao/medium_list_dao.go | 5 - .../super/implement/medium_list_implement.go | 14 -- app/db/super/model/medium_list.go | 25 --- app/hdl/hdl_login.go | 10 +- app/hdl/hdl_role.go | 39 ++-- app/md/md_api_response.go | 7 + app/md/md_login.go | 5 +- app/md/md_role.go | 16 +- app/mw/mw_db.go | 2 +- app/router/router.go | 7 + app/svc/svc_admin.go | 12 +- app/svc/svc_auth.go | 22 +- app/svc/svc_db.go | 2 +- app/svc/svc_login.go | 6 +- app/svc/svc_role.go | 32 +-- app/svc/svc_sys_cfg_get.go | 2 +- go.mod | 64 +++--- k8s/container.yaml | 79 +++++++ ...deployment_prd.yaml => container_prd.yaml} | 0 k8s/mall-task-prd.yaml | 56 ----- k8s/mall-task.yaml | 56 ----- main.go | 23 ++- 50 files changed, 358 insertions(+), 1324 deletions(-) delete mode 100644 app/db/dao/admin_dao.go delete mode 100644 app/db/dao/admin_role_dao.go delete mode 100644 app/db/dao/permission_dao.go delete mode 100644 app/db/dao/permission_group_dao.go delete mode 100644 app/db/dao/permission_group_permission_dao.go delete mode 100644 app/db/dao/role_dao.go delete mode 100644 app/db/dao/role_permission_group_dao.go create mode 100644 app/db/dao/sys_cfg_dao.go delete mode 100644 app/db/db.go delete mode 100644 app/db/db_sys_cfg.go delete mode 100644 app/db/dbs.go delete mode 100644 app/db/dbs_map.go delete mode 100644 app/db/implement/admin_implement.go delete mode 100644 app/db/implement/admin_role_implement.go delete mode 100644 app/db/implement/permission_group_implement.go delete mode 100644 app/db/implement/permission_group_permission_implement.go delete mode 100644 app/db/implement/permission_implement.go delete mode 100644 app/db/implement/role_implement.go delete mode 100644 app/db/implement/role_permission_group_implement.go create mode 100644 app/db/implement/sys_cfg_implement.go delete mode 100644 app/db/model/admin.go delete mode 100644 app/db/model/admin_role.go delete mode 100644 app/db/model/db_mapping.go delete mode 100644 app/db/model/permission.go delete mode 100644 app/db/model/permission_group.go delete mode 100644 app/db/model/permission_group_permission.go delete mode 100644 app/db/model/role.go delete mode 100644 app/db/model/role_permission_group.go delete mode 100644 app/db/super/dao/medium_list_dao.go delete mode 100644 app/db/super/implement/medium_list_implement.go delete mode 100644 app/db/super/model/medium_list.go create mode 100644 app/md/md_api_response.go create mode 100644 k8s/container.yaml rename k8s/{zyos-mall-deployment_prd.yaml => container_prd.yaml} (100%) delete mode 100644 k8s/mall-task-prd.yaml delete mode 100644 k8s/mall-task.yaml diff --git a/app/db/dao/admin_dao.go b/app/db/dao/admin_dao.go deleted file mode 100644 index 742fdd4..0000000 --- a/app/db/dao/admin_dao.go +++ /dev/null @@ -1,44 +0,0 @@ -package dao - -import ( - "applet/app/db/model" - "xorm.io/xorm" -) - -type AdminDao interface { - CreateAdminId() (admId int, err error) - AdminDeleteBySession(session *xorm.Session, admId interface{}) (int64, error) - GetAdmin(id int) (m *model.Admin, err error) - GetAdminByUserName(userName string) (m *model.Admin, err error) - GetAdminRolePermission(admId int) (list []*AdminRolePermission, total int64, err error) - FindAdmin(username string, state, page, limit int) (list []model.Admin, total int64, err error) - UpdateAdmin(m *model.Admin, columns ...string) (int64, error) - AdminInsert(m *model.Admin) (int64, error) - FindAdminRolePermissionGroup(admId int) (list []*AdminRolePermissionGroup, total int64, err error) -} - -type AdminRolePermissionGroup struct { - model.Admin `xorm:"extends"` - model.AdminRole `xorm:"extends"` - model.Role `xorm:"extends"` - model.RolePermissionGroup `xorm:"extends"` - model.PermissionGroup `xorm:"extends"` -} - -func (AdminRolePermissionGroup) TableName() string { - return "admin" -} - -type AdminRolePermission struct { - model.Admin `xorm:"extends"` - model.AdminRole `xorm:"extends"` - model.Role `xorm:"extends"` - model.RolePermissionGroup `xorm:"extends"` - model.PermissionGroup `xorm:"extends"` - model.PermissionGroupPermission `xorm:"extends"` - model.Permission `xorm:"extends"` -} - -func (AdminRolePermission) TableName() string { - return "admin" -} diff --git a/app/db/dao/admin_role_dao.go b/app/db/dao/admin_role_dao.go deleted file mode 100644 index d1ce742..0000000 --- a/app/db/dao/admin_role_dao.go +++ /dev/null @@ -1,25 +0,0 @@ -package dao - -import ( - "applet/app/db/model" - "xorm.io/xorm" -) - -type AdminRoleDao interface { - FindAdminRole(id int) (*[]model.AdminRole, error) - FindAdminRoleByRoleId(id int) (*[]model.AdminRole, error) - AdminDeleteBySessionForAdmId(session *xorm.Session, admId interface{}) (int64, error) - GetAdminRoleByRole(id int) (m *model.AdminRole, err error) - AdminRoleDeleteForRoleBySession(session *xorm.Session, roleId interface{}) (int64, error) - AdminRoleDeleteBySession(session *xorm.Session, id interface{}) (int64, error) - BatchAddAdminRoleBySession(session *xorm.Session, mm []*model.AdminRole) (int64, error) -} - -type AdminRole struct { - model.Admin `xorm:"extends"` - model.AdminRole `xorm:"extends"` -} - -func (AdminRole) TableName() string { - return "admin_role" -} diff --git a/app/db/dao/permission_dao.go b/app/db/dao/permission_dao.go deleted file mode 100644 index e94d561..0000000 --- a/app/db/dao/permission_dao.go +++ /dev/null @@ -1,5 +0,0 @@ -package dao - -type PermissionDao interface { - //TODO:: You can add specific method definitions here -} diff --git a/app/db/dao/permission_group_dao.go b/app/db/dao/permission_group_dao.go deleted file mode 100644 index bcec860..0000000 --- a/app/db/dao/permission_group_dao.go +++ /dev/null @@ -1,8 +0,0 @@ -package dao - -import "applet/app/db/model" - -type PermissionGroupDao interface { - FindPermissionGroup() (*[]model.PermissionGroup, error) - FindPermissionGroupV2() (*[]model.PermissionGroup, error) -} diff --git a/app/db/dao/permission_group_permission_dao.go b/app/db/dao/permission_group_permission_dao.go deleted file mode 100644 index 3f32ce3..0000000 --- a/app/db/dao/permission_group_permission_dao.go +++ /dev/null @@ -1,5 +0,0 @@ -package dao - -type PermissionGroupPermissionDao interface { - //TODO:: You can add specific method definitions here -} diff --git a/app/db/dao/role_dao.go b/app/db/dao/role_dao.go deleted file mode 100644 index 0a65841..0000000 --- a/app/db/dao/role_dao.go +++ /dev/null @@ -1,25 +0,0 @@ -package dao - -import ( - "applet/app/db/model" - "xorm.io/xorm" -) - -type RoleDao interface { - FindRole() (*[]model.Role, error) - GetRole() (m *model.Role, err error) - UpdateRole(m *model.Role, columns ...string) (int64, error) - RoleDeleteBySession(session *xorm.Session, id interface{}) (int64, error) - RoleInsert(m *model.Role) (int, error) - FindPermissionGroupByRole(roleId int) (list []*RolePermissionGroup, total int64, err error) -} - -type RolePermissionGroup struct { - model.Role `xorm:"extends"` - model.RolePermissionGroup `xorm:"extends"` - model.PermissionGroup `xorm:"extends"` -} - -func (RolePermissionGroup) TableName() string { - return "role" -} diff --git a/app/db/dao/role_permission_group_dao.go b/app/db/dao/role_permission_group_dao.go deleted file mode 100644 index 2c2000d..0000000 --- a/app/db/dao/role_permission_group_dao.go +++ /dev/null @@ -1,11 +0,0 @@ -package dao - -import ( - "applet/app/db/model" - "xorm.io/xorm" -) - -type RolePermissionGroupDao interface { - RolePermissionGroupDeleteForRoleBySession(session *xorm.Session, roleId interface{}) (int64, error) - BatchAddRolePermissionGroupBySession(session *xorm.Session, mm []*model.RolePermissionGroup) (int64, error) -} diff --git a/app/db/dao/sys_cfg_dao.go b/app/db/dao/sys_cfg_dao.go new file mode 100644 index 0000000..d66f4f3 --- /dev/null +++ b/app/db/dao/sys_cfg_dao.go @@ -0,0 +1,14 @@ +package dao + +import "applet/app/db/model" + +type SysCfgDao interface { + SysCfgGetAll() (*[]model.SysCfg, error) + SysCfgGetOneNoDataNoErr(key string) (*model.SysCfg, error) + SysCfgGetOne(key string) (*model.SysCfg, error) + SysCfgInsert(key, val, memo string) bool + SysCfgUpdate(key, val string) bool + SysCfgGetWithDb(HKey string) string + SysCfgDel(HKey string) error + SysCfgFindWithDb(keys ...string) map[string]string +} diff --git a/app/db/db.go b/app/db/db.go deleted file mode 100644 index 00630e8..0000000 --- a/app/db/db.go +++ /dev/null @@ -1,112 +0,0 @@ -package db - -import ( - "database/sql" - "fmt" - "os" - "time" - - _ "github.com/go-sql-driver/mysql" //必须导入mysql驱动,否则会panic - "xorm.io/xorm" - "xorm.io/xorm/log" - - "applet/app/cfg" - "applet/app/utils/logx" -) - -var Db *xorm.Engine - -//根据DB配置文件初始化数据库 -func InitDB(c *cfg.DBCfg) error { - var ( - err error - f *os.File - ) - //创建Orm引擎 - if Db, err = xorm.NewEngine("mysql", fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4", c.User, c.Psw, c.Host, c.Name)); err != nil { - return err - } - Db.SetConnMaxLifetime(c.MaxLifetime * time.Second) //设置最长连接时间 - Db.SetMaxOpenConns(c.MaxOpenConns) //设置最大打开连接数 - Db.SetMaxIdleConns(c.MaxIdleConns) //设置连接池的空闲数大小 - if err = Db.Ping(); err != nil { //尝试ping数据库 - return err - } - if c.ShowLog { //根据配置文件设置日志 - Db.ShowSQL(true) //设置是否打印sql - Db.Logger().SetLevel(0) //设置日志等级 - //修改日志文件存放路径文件名是%s.log - path := fmt.Sprintf(c.Path, c.Name) - f, err = os.OpenFile(path, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0777) - if err != nil { - os.RemoveAll(c.Path) - if f, err = os.OpenFile(c.Path, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0777); err != nil { - return err - } - } - logger := log.NewSimpleLogger(f) - logger.ShowSQL(true) - Db.SetLogger(logger) - } - return nil -} - -/********************************************* 公用方法 *********************************************/ - -// 数据批量插入 -func DbInsertBatch(Db *xorm.Engine, m ...interface{}) error { - if len(m) == 0 { - return nil - } - id, err := Db.Insert(m...) - if id == 0 || err != nil { - return logx.Warn("cannot insert data :", err) - } - return nil -} - -// QueryNativeString 查询原生sql -func QueryNativeString(Db *xorm.Engine, sql string, args ...interface{}) ([]map[string]string, error) { - results, err := Db.SQL(sql, args...).QueryString() - return results, err -} - -// UpdateComm common update -func UpdateComm(Db *xorm.Engine, id interface{}, model interface{}) (int64, error) { - row, err := Db.ID(id).Update(model) - return row, err -} - -// InsertComm common insert -func InsertComm(Db *xorm.Engine, model interface{}) (int64, error) { - row, err := Db.InsertOne(model) - return row, err -} - -// ExecuteOriginalSql 执行原生sql -func ExecuteOriginalSql(session *xorm.Session, sql string) (sql.Result, error) { - result, err := session.Exec(sql) - if err != nil { - _ = logx.Warn(err) - return nil, err - } - return result, nil -} - -// GetComm -// payload *model -// return *model,has,err -func GetComm(Db *xorm.Engine, model interface{}) (interface{}, bool, error) { - has, err := Db.Get(model) - if err != nil { - _ = logx.Warn(err) - return nil, false, err - } - return model, has, nil -} - -// InsertCommWithSession common insert -func InsertCommWithSession(session *xorm.Session, model interface{}) (int64, error) { - row, err := session.InsertOne(model) - return row, err -} diff --git a/app/db/db_sys_cfg.go b/app/db/db_sys_cfg.go deleted file mode 100644 index 6f49814..0000000 --- a/app/db/db_sys_cfg.go +++ /dev/null @@ -1,82 +0,0 @@ -package db - -import ( - "applet/app/db/model" - "applet/app/md" - "applet/app/utils/cache" - "applet/app/utils/logx" - "fmt" - "xorm.io/xorm" -) - -// 系统配置get -func SysCfgGetAll(Db *xorm.Engine) (*[]model.SysCfg, error) { - var cfgList []model.SysCfg - if err := Db.Cols("key,val,memo").Find(&cfgList); err != nil { - return nil, logx.Error(err) - } - return &cfgList, nil -} - -// 获取一条记录 -func SysCfgGetOne(Db *xorm.Engine, key string) (*model.SysCfg, error) { - var cfgList model.SysCfg - if has, err := Db.Where("`key`=?", key).Get(&cfgList); err != nil || has == false { - return nil, logx.Error(err) - } - return &cfgList, nil -} - -// 返回最后插入id -func SysCfgInsert(Db *xorm.Engine, key, val, memo string) bool { - cfg := model.SysCfg{Key: key, Val: val, Memo: memo} - _, err := Db.InsertOne(&cfg) - if err != nil { - logx.Error(err) - return false - } - return true -} - -func SysCfgUpdate(Db *xorm.Engine, key, val, memo string) bool { - cfg := model.SysCfg{Key: key, Val: val, Memo: memo} - _, err := Db.Where("`key`=?", key).Cols("val,memo").Update(&cfg) - if err != nil { - logx.Error(err) - return false - } - return true -} -func SysCfgGetWithDb(eg *xorm.Engine, masterId string, HKey string) string { - cacheKey := fmt.Sprintf(md.AppCfgCacheKey, masterId) + HKey - get, err := cache.GetString(cacheKey) - if err != nil || get == "" { - cfg, err := SysCfgGetOne(eg, HKey) - if err != nil || cfg == nil { - _ = logx.Error(err) - return "" - } - - // key是否存在 - cacheKeyExist := false - if cache.Exists(cacheKey) { - cacheKeyExist = true - } - - // 设置缓存 - _, err = cache.SetEx(cacheKey, cfg.Val, 30) - if err != nil { - _ = logx.Error(err) - return "" - } - if !cacheKeyExist { // 如果是首次设置 设置过期时间 - _, err := cache.Expire(cacheKey, md.CfgCacheTime) - if err != nil { - _ = logx.Error(err) - return "" - } - } - return cfg.Val - } - return get -} diff --git a/app/db/dbs.go b/app/db/dbs.go deleted file mode 100644 index 9f02c9f..0000000 --- a/app/db/dbs.go +++ /dev/null @@ -1,104 +0,0 @@ -package db - -import ( - "fmt" - "os" - "time" - - "xorm.io/xorm" - "xorm.io/xorm/log" - - "applet/app/cfg" - "applet/app/db/model" - "applet/app/utils/logx" -) - -var DBs map[string]*xorm.Engine - -// 每个站长都要有自己的syscfg 缓存, 键是站长id,值是缓存名 -// var SysCfgMapKey map[string]string - -func NewDB(c *cfg.DBCfg) (*xorm.Engine, error) { - db, err := xorm.NewEngine("mysql", fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4", c.User, c.Psw, c.Host, c.Name)) - if err != nil { - return nil, err - } - db.SetConnMaxLifetime(c.MaxLifetime * time.Second) - db.SetMaxOpenConns(c.MaxOpenConns) - db.SetMaxIdleConns(c.MaxIdleConns) - err = db.Ping() - if err != nil { - return nil, err - } - if c.ShowLog { - db.ShowSQL(true) - db.Logger().SetLevel(log.LOG_DEBUG) - f, err := os.OpenFile(c.Path, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0777) - if err != nil { - os.RemoveAll(c.Path) - if f, err = os.OpenFile(c.Path, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0777); err != nil { - return nil, err - } - } - logger := log.NewSimpleLogger(f) - logger.ShowSQL(true) - db.SetLogger(logger) - } - return db, nil -} - -// InitDBs is 初始化多数据库 -func InitDBs(ch chan int) { - // 初始化多数据库 - var tables *[]model.DbMapping - InitMapDbs(cfg.DB, cfg.Prd) - ch <- 1 - // 每10s 查询一次模板数据库的db mapping 表,如果有新增数据库记录,则添加到 DBs中 - ticker := time.NewTicker(time.Duration(time.Second * 120)) - for range ticker.C { - if cfg.Prd { - tables = GetAllDatabasePrd() //默认获取全部 - } else { - tables = GetAllDatabaseDev() //默认获取全部 - } - if tables == nil { - logx.Warn("no database tables data") - continue - } - for _, item := range *tables { - _, ok := DBs[item.DbMasterId] - if !ok { - // 不在db.DBs 则添加进去 - dbCfg := cfg.DBCfg{ - Name: item.DbName, - ShowLog: cfg.DB.ShowLog, - MaxLifetime: cfg.DB.MaxLifetime, - MaxOpenConns: cfg.DB.MaxOpenConns, - MaxIdleConns: cfg.DB.MaxIdleConns, - Path: fmt.Sprintf(cfg.DB.Path, item.DbName), - } - if item.DbHost != "" && item.DbUsername != "" && item.DbPassword != "" { - dbCfg.Host = item.DbHost - dbCfg.User = item.DbUsername - dbCfg.Psw = item.DbPassword - } else { - dbCfg.Host = cfg.DB.Host - dbCfg.User = cfg.DB.User - dbCfg.Psw = cfg.DB.Psw - } - e, err := NewDB(&dbCfg) - if err != nil || e == nil { - logx.Warnf("db engine can't create, please check config, params[host:%s, user:%s, psw: %s, name: %s], err: %v", dbCfg.Host, dbCfg.User, dbCfg.Psw, dbCfg.Name, err) - } else { - DBs[item.DbMasterId] = e - } - } - // 如果 被禁用则删除 - if item.DeletedAt == 1 { - logx.Infof("%s have been removed", item.DbMasterId) - delete(DBs, item.DbMasterId) - } - } - } - -} diff --git a/app/db/dbs_map.go b/app/db/dbs_map.go deleted file mode 100644 index 6a8e453..0000000 --- a/app/db/dbs_map.go +++ /dev/null @@ -1,194 +0,0 @@ -package db - -import ( - "errors" - "fmt" - - "xorm.io/xorm" - - "applet/app/cfg" - "applet/app/db/model" - "applet/app/utils/logx" -) - -func MapBaseExists() (bool, error) { - return Db.IsTableExist("db_mapping") -} - -func InitMapDbs(c *cfg.DBCfg, prd bool) { - var tables *[]model.DbMapping - exists, err := MapBaseExists() - if !exists || err != nil { - logx.Fatalf("db_mapping not exists : %v", err) - } - // tables := MapAllDatabases(debug) - if prd { - tables = GetAllDatabasePrd() //debug 获取生产 - } else { - tables = GetAllDatabaseDev() //debug 获取开发 - } - - if tables == nil { - logx.Fatal("no database tables data") - } - var e *xorm.Engine - DBs = map[string]*xorm.Engine{} - for _, v := range *tables { - if v.DbName != "" && v.DeletedAt == 0 && v.DbName != c.Name { - dbCfg := cfg.DBCfg{ - Name: v.DbName, - ShowLog: c.ShowLog, - MaxLifetime: c.MaxLifetime, - MaxOpenConns: c.MaxOpenConns, - MaxIdleConns: c.MaxIdleConns, - Path: fmt.Sprintf(c.Path, v.DbName), - } - if v.DbHost != "" && v.DbUsername != "" && v.DbPassword != "" { - dbCfg.Host = v.DbHost - dbCfg.User = v.DbUsername - dbCfg.Psw = v.DbPassword - } else { - dbCfg.Host = c.Host - dbCfg.User = c.User - dbCfg.Psw = c.Psw - } - e, err = NewDB(&dbCfg) - if err != nil || e == nil { - logx.Warnf("db engine can't create, please check config, params[host:%s, user:%s, psw: %s, name: %s], err: %v", dbCfg.Host, dbCfg.User, dbCfg.Psw, dbCfg.Name, err) - } else { - DBs[v.DbMasterId] = e - } - } - } -} - -func MapAllDatabases(debug bool) *[]model.DbMapping { - sql := "`db_name` != ?" - if debug { - sql = "`db_name` = ?" - } - var m []model.DbMapping - if err := Db.Where(sql, cfg.DB.Name).Find(&m); err != nil || len(m) == 0 { - logx.Warn(err) - return nil - } - return &m -} - -// GetAllDatabasePrd is 获取生成库 所有db 除了 deleted_at = 1 的 -func GetAllDatabasePrd() *[]model.DbMapping { - var m []model.DbMapping - if err := Db.Where("deleted_at != ? AND is_dev = '0' ", 1).Find(&m); err != nil || len(m) == 0 { - logx.Warn(err) - return nil - } - return &m -} - -// GetAllDatabaseDev is 获取开发库 所有db 除了 deleted_at = 1 的 -func GetAllDatabaseDev() *[]model.DbMapping { - var m []model.DbMapping - var err error - fmt.Println("cfg.Local is: ", cfg.Local) - if cfg.Local { // 本地调试 加快速度 - fmt.Println("notice:LOCAL TEST, only masterId:** 123456 ** available!") - err = Db.Where("deleted_at != ? AND is_dev = '1' AND db_master_id=?", 1, 123456).Find(&m) - } else { - err = Db.Where("deleted_at != ? AND is_dev = '1' ", 1).Find(&m) - } - - //err := Db.Where("deleted_at != ? AND is_dev = '1' and db_master_id='123456'", 1).Find(&m) - if err != nil || len(m) == 0 { - logx.Warn(err) - return nil - } - return &m -} - -//GetDatabaseByMasterID is 根据站长id 获取对应的的数据库信息 -func GetDatabaseByMasterID(Db *xorm.Engine, id string) (*model.DbMapping, error) { - var m model.DbMapping - has, err := Db.Where("db_master_id=?", id).Get(&m) - if !has { - return nil, errors.New("Not Found DB data by " + id) - } - if err != nil { - return nil, err - } - if m.DbHost == "" { - m.DbHost = cfg.DB.Host - m.DbUsername = cfg.DB.User - m.DbPassword = cfg.DB.Psw - } - return &m, nil -} - -//SessionGetDatabaseByMasterID is 根据站长id 获取对应的的数据库信息 -func SessionGetDatabaseByMasterID(Db *xorm.Session, id string) (*model.DbMapping, error) { - var m model.DbMapping - has, err := Db.Where("db_master_id=?", id).Get(&m) - if !has { - return nil, errors.New("Not Found DB data by " + id) - } - if err != nil { - return nil, err - } - if m.DbHost == "" { - m.DbHost = cfg.DB.Host - m.DbName = cfg.DB.Name - m.DbUsername = cfg.DB.User - m.DbPassword = cfg.DB.Psw - } - return &m, nil -} - -// 获取自动任务队列 -func MapCrontabCfg(eg *xorm.Engine) *[]model.SysCfg { - var c []model.SysCfg - // 数据库查询如果有下划线会认为是一个任意字符 - if err := eg.Where("`key` LIKE 'mall_cron\\_%' AND val != ''").Cols("`key`,`val`").Find(&c); err != nil || len(c) == 0 { - logx.Warn(err) - return nil - } - return &c -} - -// 获取官方域名 -func GetOfficialDomainInfoByType(Db *xorm.Engine, masterId, key string) (string, error) { - type SysCfg struct { - K string - V string - Memo string - } - var domainBase SysCfg - - has, err := Db.Where("k=?", "domain_base").Get(&domainBase) - if err != nil { - return "", err - } - if has == false { - return "", errors.New("can not find key by : domain_base") - } - - if key == "wap" { - return "h5." + masterId + "." + domainBase.V, nil - } - - if key == "api" { - var apiDomain SysCfg - has, err = Db.Where("k=?", "domain_api_base").Get(&apiDomain) - if err != nil { - return "", err - } - if has == false { - return "", errors.New("can not find key by : domain_api_base") - } - return apiDomain.V, nil - } - - if key == "admin" { - return "admin." + masterId + "." + domainBase.V, nil - } - // 默认返回H5的 - return "h5." + masterId + "." + domainBase.V, nil -} diff --git a/app/db/implement/admin_implement.go b/app/db/implement/admin_implement.go deleted file mode 100644 index b6eaca1..0000000 --- a/app/db/implement/admin_implement.go +++ /dev/null @@ -1,115 +0,0 @@ -package implement - -import ( - "applet/app/db/dao" - "applet/app/db/model" - "applet/app/utils/logx" - "reflect" - "xorm.io/xorm" -) - -func NewAdminDb(engine *xorm.Engine) dao.AdminDao { - return &AdminDb{Db: engine} -} - -type AdminDb struct { - Db *xorm.Engine -} - -func (a AdminDb) CreateAdminId() (admId int, err error) { - m := new(model.Admin) - has, err := a.Db.Desc("adm_id").Get(m) - if err != nil { - return 0, logx.Error(err) - } - if has == false { - return 0, nil - } - admId = m.AdmId + 1 - return admId, nil -} - -func (a AdminDb) AdminDeleteBySession(session *xorm.Session, admId interface{}) (int64, error) { - if reflect.TypeOf(admId).Kind() == reflect.Slice { - return session.In("adm_id", admId).Delete(model.Admin{}) - } else { - return session.Where("id = ?", admId).Delete(model.Admin{}) - } -} - -func (a AdminDb) GetAdmin(id int) (m *model.Admin, err error) { - m = new(model.Admin) - has, err := a.Db.Where("adm_id =?", id).Get(m) - if err != nil { - return nil, logx.Error(err) - } - if has == false { - return nil, nil - } - return m, nil -} - -func (a AdminDb) GetAdminByUserName(userName string) (m *model.Admin, err error) { - m = new(model.Admin) - has, err := a.Db.Where("username =?", userName).Get(m) - if err != nil { - return nil, logx.Error(err) - } - if has == false { - return nil, nil - } - return m, nil -} - -func (a AdminDb) GetAdminRolePermission(admId int) (list []*dao.AdminRolePermission, total int64, err error) { - total, err = a.Db.Where("admin.adm_id =?", admId). - Join("LEFT", "admin_role", "admin.adm_id = admin_role.adm_id"). - Join("LEFT", "role", "admin_role.role_id = role.id"). - Join("LEFT", "role_permission_group", "role.id = role_permission_group.role_id"). - Join("LEFT", "permission_group", "role_permission_group.group_id = permission_group.id"). - Join("LEFT", "permission_group_permission", "permission_group.id = permission_group_permission.group_id"). - Join("LEFT", "permission", "permission_group_permission.permission_id = permission.id"). - FindAndCount(&list) - return -} - -func (a AdminDb) FindAdmin(username string, state, page, limit int) (list []model.Admin, total int64, err error) { - sess := a.Db.Desc("adm_id").Limit(limit, (page-1)*limit) - if username != "" { - sess.And("username like ?", "%"+username+"%") - } - if state != 0 { - sess.And("state = ?", state) - } - total, err = sess.FindAndCount(&list) - if err != nil { - return nil, 0, err - } - return -} - -func (a AdminDb) UpdateAdmin(m *model.Admin, columns ...string) (int64, error) { - affected, err := a.Db.Where("adm_id =?", m.AdmId).Cols(columns...).Update(m) - if err != nil { - return 0, err - } - return affected, nil -} - -func (a AdminDb) AdminInsert(m *model.Admin) (int64, error) { - insertAffected, err := a.Db.InsertOne(m) - if err != nil { - return 0, err - } - return insertAffected, nil -} - -func (a AdminDb) FindAdminRolePermissionGroup(admId int) (list []*dao.AdminRolePermissionGroup, total int64, err error) { - total, err = a.Db.Where("admin.adm_id =?", admId). - Join("LEFT", "admin_role", "admin.adm_id = admin_role.adm_id"). - Join("LEFT", "role", "admin_role.role_id = role.id"). - //Join("LEFT", "role_permission_group", "role.id = role_permission_group.role_id"). - //Join("LEFT", "permission_group", "role_permission_group.group_id = permission_group.id"). - FindAndCount(&list) - return -} diff --git a/app/db/implement/admin_role_implement.go b/app/db/implement/admin_role_implement.go deleted file mode 100644 index d3964f7..0000000 --- a/app/db/implement/admin_role_implement.go +++ /dev/null @@ -1,77 +0,0 @@ -package implement - -import ( - "applet/app/db/dao" - "applet/app/db/model" - "applet/app/utils/logx" - "reflect" - "xorm.io/xorm" -) - -func NewAdminRoleDb(engine *xorm.Engine) dao.AdminRoleDao { - return &AdminRoleDb{Db: engine} -} - -type AdminRoleDb struct { - Db *xorm.Engine -} - -func (a AdminRoleDb) FindAdminRole(id int) (*[]model.AdminRole, error) { - var m []model.AdminRole - if err := a.Db.Where("adm_id =?", id).Find(&m); err != nil { - return nil, logx.Error(err) - } - return &m, nil -} - -func (a AdminRoleDb) FindAdminRoleByRoleId(id int) (*[]model.AdminRole, error) { - var m []model.AdminRole - if err := a.Db.Where("role_id =?", id).Find(&m); err != nil { - return nil, logx.Error(err) - } - return &m, nil -} - -func (a AdminRoleDb) AdminDeleteBySessionForAdmId(session *xorm.Session, admId interface{}) (int64, error) { - if reflect.TypeOf(admId).Kind() == reflect.Slice { - return session.In("adm_id", admId).Delete(model.AdminRole{}) - } else { - return session.Where("adm_id = ?", admId).Delete(model.AdminRole{}) - } -} - -func (a AdminRoleDb) GetAdminRoleByRole(id int) (m *model.AdminRole, err error) { - m = new(model.AdminRole) - has, err := a.Db.Where("role_id =?", id).Get(m) - if err != nil { - return nil, logx.Error(err) - } - if has == false { - return nil, nil - } - return m, nil -} - -func (a AdminRoleDb) AdminRoleDeleteForRoleBySession(session *xorm.Session, roleId interface{}) (int64, error) { - if reflect.TypeOf(roleId).Kind() == reflect.Slice { - return session.In("role_id", roleId).Delete(model.AdminRole{}) - } else { - return session.Where("role_id = ?", roleId).Delete(model.AdminRole{}) - } -} - -func (a AdminRoleDb) AdminRoleDeleteBySession(session *xorm.Session, id interface{}) (int64, error) { - if reflect.TypeOf(id).Kind() == reflect.Slice { - return session.In("id", id).Delete(model.AdminRole{}) - } else { - return session.Where("adm_id = ?", id).Delete(model.AdminRole{}) - } -} - -func (a AdminRoleDb) BatchAddAdminRoleBySession(session *xorm.Session, mm []*model.AdminRole) (int64, error) { - affected, err := session.Insert(mm) - if err != nil { - return 0, err - } - return affected, nil -} diff --git a/app/db/implement/permission_group_implement.go b/app/db/implement/permission_group_implement.go deleted file mode 100644 index b1126d1..0000000 --- a/app/db/implement/permission_group_implement.go +++ /dev/null @@ -1,33 +0,0 @@ -package implement - -import ( - "applet/app/db/dao" - "applet/app/db/model" - "applet/app/enum" - "applet/app/utils/logx" - "xorm.io/xorm" -) - -func NewPermissionGroupDb(engine *xorm.Engine) dao.PermissionGroupDao { - return &PermissionGroupDb{Db: engine} -} - -type PermissionGroupDb struct { - Db *xorm.Engine -} - -func (p PermissionGroupDb) FindPermissionGroup() (*[]model.PermissionGroup, error) { - var m []model.PermissionGroup - if err := p.Db.Where("state = ?", enum.PermissionGroupStateForNormal).Asc("id").Find(&m); err != nil { - return nil, logx.Error(err) - } - return &m, nil -} - -func (p PermissionGroupDb) FindPermissionGroupV2() (*[]model.PermissionGroup, error) { - var m []model.PermissionGroup - if err := p.Db.Asc("id").Find(&m); err != nil { - return nil, logx.Error(err) - } - return &m, nil -} diff --git a/app/db/implement/permission_group_permission_implement.go b/app/db/implement/permission_group_permission_implement.go deleted file mode 100644 index 1bd1f48..0000000 --- a/app/db/implement/permission_group_permission_implement.go +++ /dev/null @@ -1,14 +0,0 @@ -package implement - -import ( - "applet/app/db/dao" - "xorm.io/xorm" -) - -type PermissionGroupPermissionDb struct { - Db *xorm.Engine -} - -func NewPermissionGroupPermissionDb(engine *xorm.Engine) dao.PermissionGroupPermissionDao { - return &PermissionGroupPermissionDb{Db: engine} -} diff --git a/app/db/implement/permission_implement.go b/app/db/implement/permission_implement.go deleted file mode 100644 index 0cfad56..0000000 --- a/app/db/implement/permission_implement.go +++ /dev/null @@ -1,14 +0,0 @@ -package implement - -import ( - "applet/app/db/dao" - "xorm.io/xorm" -) - -type PermissionDb struct { - Db *xorm.Engine -} - -func NewPermissionDb(engine *xorm.Engine) dao.PermissionDao { - return &PermissionDb{Db: engine} -} diff --git a/app/db/implement/role_implement.go b/app/db/implement/role_implement.go deleted file mode 100644 index 8dd9020..0000000 --- a/app/db/implement/role_implement.go +++ /dev/null @@ -1,73 +0,0 @@ -package implement - -import ( - "applet/app/db/dao" - "applet/app/db/model" - "applet/app/utils/logx" - "reflect" - "xorm.io/xorm" -) - -func NewRoleDb(engine *xorm.Engine, id int) dao.RoleDao { - return &RoleDb{ - Db: engine, - Id: id, - } -} - -type RoleDb struct { - Db *xorm.Engine - Id int `json:"id"` -} - -func (r RoleDb) FindRole() (*[]model.Role, error) { - var m []model.Role - if err := r.Db.Desc("id").Find(&m); err != nil { - return nil, logx.Error(err) - } - return &m, nil -} - -func (r RoleDb) GetRole() (m *model.Role, err error) { - m = new(model.Role) - has, err := r.Db.Where("id = ?", r.Id).Get(m) - if err != nil { - return nil, logx.Error(err) - } - if has == false { - return nil, nil - } - return m, nil -} - -func (r RoleDb) UpdateRole(m *model.Role, columns ...string) (int64, error) { - affected, err := r.Db.Where("id =?", m.Id).Cols(columns...).Update(m) - if err != nil { - return 0, err - } - return affected, nil -} - -func (r RoleDb) RoleDeleteBySession(session *xorm.Session, id interface{}) (int64, error) { - if reflect.TypeOf(id).Kind() == reflect.Slice { - return session.In("id", id).Delete(model.Role{}) - } else { - return session.Where("id = ?", id).Delete(model.Role{}) - } -} - -func (r RoleDb) RoleInsert(m *model.Role) (int, error) { - _, err := r.Db.InsertOne(m) - if err != nil { - return 0, err - } - return m.Id, nil -} - -func (r RoleDb) FindPermissionGroupByRole(roleId int) (list []*dao.RolePermissionGroup, total int64, err error) { - total, err = r.Db.Where("role.id =?", roleId). - Join("LEFT", "role_permission_group", "role_permission_group.role_id = role.id"). - Join("LEFT", "permission_group", "permission_group.id = role_permission_group.group_id"). - FindAndCount(&list) - return -} diff --git a/app/db/implement/role_permission_group_implement.go b/app/db/implement/role_permission_group_implement.go deleted file mode 100644 index b9aeb70..0000000 --- a/app/db/implement/role_permission_group_implement.go +++ /dev/null @@ -1,32 +0,0 @@ -package implement - -import ( - "applet/app/db/dao" - "applet/app/db/model" - "reflect" - "xorm.io/xorm" -) - -func NewRolePermissionGroupDb(engine *xorm.Engine) dao.RolePermissionGroupDao { - return &RolePermissionGroupDb{Db: engine} -} - -type RolePermissionGroupDb struct { - Db *xorm.Engine -} - -func (r RolePermissionGroupDb) RolePermissionGroupDeleteForRoleBySession(session *xorm.Session, roleId interface{}) (int64, error) { - if reflect.TypeOf(roleId).Kind() == reflect.Slice { - return session.In("role_id", roleId).Delete(model.RolePermissionGroup{}) - } else { - return session.Where("role_id = ?", roleId).Delete(model.RolePermissionGroup{}) - } -} - -func (r RolePermissionGroupDb) BatchAddRolePermissionGroupBySession(session *xorm.Session, mm []*model.RolePermissionGroup) (int64, error) { - affected, err := session.Insert(mm) - if err != nil { - return 0, err - } - return affected, nil -} diff --git a/app/db/implement/sys_cfg_implement.go b/app/db/implement/sys_cfg_implement.go new file mode 100644 index 0000000..b9d9f90 --- /dev/null +++ b/app/db/implement/sys_cfg_implement.go @@ -0,0 +1,124 @@ +package implement + +import ( + "applet/app/db/dao" + "applet/app/db/model" + "applet/app/md" + "applet/app/utils/cache" + "applet/app/utils/logx" + "fmt" + "xorm.io/xorm" +) + +func NewSysCfgDb(engine *xorm.Engine, masterId string) dao.SysCfgDao { + return &SysCfgDb{ + Db: engine, + MasterId: masterId, + } +} + +type SysCfgDb struct { + Db *xorm.Engine + MasterId string +} + +func (s SysCfgDb) SysCfgGetAll() (*[]model.SysCfg, error) { + var cfgList []model.SysCfg + if err := s.Db.Cols("key,val,memo").Find(&cfgList); err != nil { + return nil, logx.Error(err) + } + return &cfgList, nil +} + +func (s SysCfgDb) SysCfgGetOneNoDataNoErr(key string) (*model.SysCfg, error) { + var cfgList model.SysCfg + has, err := s.Db.Where("`key`=?", key).Get(&cfgList) + if err != nil { + return nil, logx.Error(err) + } + if !has { + return nil, nil + } + return &cfgList, nil +} + +func (s SysCfgDb) SysCfgGetOne(key string) (*model.SysCfg, error) { + var cfgList model.SysCfg + if has, err := s.Db.Where("`key`=?", key).Get(&cfgList); err != nil || has == false { + return nil, logx.Error(err) + } + return &cfgList, nil +} + +func (s SysCfgDb) SysCfgInsert(key, val, memo string) bool { + cfg := model.SysCfg{Key: key, Val: val, Memo: memo} + _, err := s.Db.InsertOne(&cfg) + if err != nil { + logx.Error(err) + return false + } + return true +} + +func (s SysCfgDb) SysCfgUpdate(key, val string) bool { + cfg := model.SysCfg{Key: key, Val: val} + _, err := s.Db.Where("`key`=?", key).Cols("val").Update(&cfg) + if err != nil { + logx.Error(err) + return false + } + s.SysCfgDel(key) + return true +} + +func (s SysCfgDb) SysCfgGetWithDb(HKey string) string { + cacheKey := fmt.Sprintf(md.AppCfgCacheKey, s.MasterId, HKey[0:1]) + get, err := cache.HGetString(cacheKey, HKey) + if err != nil || get == "" { + cfg, err := s.SysCfgGetOne(HKey) + if err != nil || cfg == nil { + _ = logx.Error(err) + return "" + } + + // key是否存在 + cacheKeyExist := false + if cache.Exists(cacheKey) { + cacheKeyExist = true + } + + // 设置缓存 + _, err = cache.HSet(cacheKey, HKey, cfg.Val) + if err != nil { + _ = logx.Error(err) + return "" + } + if !cacheKeyExist { // 如果是首次设置 设置过期时间 + _, err := cache.Expire(cacheKey, md.CfgCacheTime) + if err != nil { + _ = logx.Error(err) + return "" + } + } + return cfg.Val + } + return get +} + +func (s SysCfgDb) SysCfgDel(HKey string) error { + cacheKey := fmt.Sprintf(md.AppCfgCacheKey, s.MasterId, HKey[0:1]) + _, err := cache.HDel(cacheKey, HKey) + if err != nil { + return err + } + return nil +} + +func (s SysCfgDb) SysCfgFindWithDb(keys ...string) map[string]string { + res := map[string]string{} + for _, v := range keys { + val := s.SysCfgGetWithDb(v) + res[v] = val + } + return res +} diff --git a/app/db/model/admin.go b/app/db/model/admin.go deleted file mode 100644 index c5f78da..0000000 --- a/app/db/model/admin.go +++ /dev/null @@ -1,14 +0,0 @@ -package model - -type Admin struct { - AdmId int `json:"adm_id" xorm:"not null comment('管理员id') INT(11)"` - Username string `json:"username" xorm:"not null default '' comment('用户名') VARCHAR(255)"` - Password string `json:"password" xorm:"not null default '' comment('密码') VARCHAR(255)"` - State int `json:"state" xorm:"not null default 1 comment('状态(1:正常 2:冻结)') TINYINT(1)"` - IsSuperAdministrator int `json:"is_super_administrator" xorm:"not null default 0 comment('是否为超级管理员(0:否 1:是)') TINYINT(1)"` - Memo string `json:"memo" xorm:"not null default '' comment('备注信息') VARCHAR(244)"` - CreateAt string `json:"create_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` - UpdateAt string `json:"update_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` - OpenId string `json:"open_id" xorm:"not null default '' comment('微信openid') VARCHAR(255)"` - UnionId string `json:"union_id" xorm:"not null default '' comment('微信用户id') VARCHAR(255)"` -} diff --git a/app/db/model/admin_role.go b/app/db/model/admin_role.go deleted file mode 100644 index 5a35baa..0000000 --- a/app/db/model/admin_role.go +++ /dev/null @@ -1,10 +0,0 @@ -package model - -type AdminRole struct { - Id int `json:"id" xorm:"not null pk autoincr INT(11)"` - AdmId int `json:"adm_id" xorm:"not null default 0 comment('管理员id') INT(11)"` - RoleId int `json:"role_id" xorm:"not null default 0 comment('角色id') INT(11)"` - State int `json:"state" xorm:"not null default 1 comment('状态(1:正常 2:冻结)') TINYINT(1)"` - CreateAt string `json:"create_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` - UpdateAt string `json:"update_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` -} diff --git a/app/db/model/db_mapping.go b/app/db/model/db_mapping.go deleted file mode 100644 index 2e0abaa..0000000 --- a/app/db/model/db_mapping.go +++ /dev/null @@ -1,14 +0,0 @@ -package model - -type DbMapping struct { - DbMasterId string `json:"db_master_id" xorm:"not null pk comment('站长id') VARCHAR(16)"` - DbHost string `json:"db_host" xorm:"not null default '' comment('数据库连接(带port)') VARCHAR(255)"` - DbUsername string `json:"db_username" xorm:"not null default '' comment('数据库用户名') VARCHAR(255)"` - DbPassword string `json:"db_password" xorm:"not null default '' comment('数据库用户名密码') VARCHAR(255)"` - DbName string `json:"db_name" xorm:"not null comment('数据库名') VARCHAR(255)"` - ExternalMysql string `json:"external_mysql" xorm:"not null default '0' comment('是否外部mysql(0是内部,1是外部)') VARCHAR(255)"` - IsDev int `json:"is_dev" xorm:"not null default 0 comment('开发库是1,0是生产库') TINYINT(1)"` - CreatedAt string `json:"created_at" xorm:"not null default 'CURRENT_TIMESTAMP' comment('创建时间') TIMESTAMP"` - UpdatedAt string `json:"updated_at" xorm:"not null default 'CURRENT_TIMESTAMP' comment('更新时间') TIMESTAMP"` - DeletedAt int `json:"deleted_at" xorm:"not null default 0 comment('是否已删除') TINYINT(1)"` -} diff --git a/app/db/model/permission.go b/app/db/model/permission.go deleted file mode 100644 index 82e00e2..0000000 --- a/app/db/model/permission.go +++ /dev/null @@ -1,10 +0,0 @@ -package model - -type Permission struct { - Id int `json:"id" xorm:"not null pk autoincr INT(11)"` - Name string `json:"name" xorm:"not null default '' comment('名称') VARCHAR(255)"` - Action string `json:"action" xorm:"not null default '' comment('路由') unique VARCHAR(255)"` - State int `json:"state" xorm:"not null default 1 comment('状态(1:正常 2:废弃)') TINYINT(1)"` - CreateAt string `json:"create_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` - UpdateAt string `json:"update_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` -} diff --git a/app/db/model/permission_group.go b/app/db/model/permission_group.go deleted file mode 100644 index ac927e3..0000000 --- a/app/db/model/permission_group.go +++ /dev/null @@ -1,11 +0,0 @@ -package model - -type PermissionGroup struct { - Id int `json:"id" xorm:"not null pk autoincr INT(11)"` - ParentId int `json:"parent_id" xorm:"not null default 0 comment('父级id') INT(11)"` - Key string `json:"key" xorm:"not null default '' VARCHAR(255)"` - Name string `json:"name" xorm:"not null default '' comment('名称') VARCHAR(255)"` - State int `json:"state" xorm:"not null default 1 comment('状态(1:正常 2:废弃)') TINYINT(1)"` - CreateAt string `json:"create_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` - UpdateAt string `json:"update_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` -} diff --git a/app/db/model/permission_group_permission.go b/app/db/model/permission_group_permission.go deleted file mode 100644 index 7d1bad7..0000000 --- a/app/db/model/permission_group_permission.go +++ /dev/null @@ -1,9 +0,0 @@ -package model - -type PermissionGroupPermission struct { - Id int `json:"id" xorm:"not null pk autoincr INT(11)"` - GroupId int `json:"group_id" xorm:"not null default 0 comment('权限组id') INT(11)"` - PermissionId int `json:"permission_id" xorm:"not null default 0 comment('权限id') INT(11)"` - CreateAt string `json:"create_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` - UpdateAt string `json:"update_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` -} diff --git a/app/db/model/role.go b/app/db/model/role.go deleted file mode 100644 index 4b46b20..0000000 --- a/app/db/model/role.go +++ /dev/null @@ -1,10 +0,0 @@ -package model - -type Role struct { - Id int `json:"id" xorm:"not null pk autoincr INT(11)"` - Name string `json:"name" xorm:"not null default '' comment('名称') VARCHAR(255)"` - State int `json:"state" xorm:"not null default 1 comment('状态(1:正常 2:冻结)') TINYINT(1)"` - Memo string `json:"memo" xorm:"not null default '' comment('备注') VARCHAR(255)"` - CreateAt string `json:"create_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` - UpdateAt string `json:"update_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` -} diff --git a/app/db/model/role_permission_group.go b/app/db/model/role_permission_group.go deleted file mode 100644 index b9d04a1..0000000 --- a/app/db/model/role_permission_group.go +++ /dev/null @@ -1,9 +0,0 @@ -package model - -type RolePermissionGroup struct { - Id int `json:"id" xorm:"not null pk autoincr INT(11)"` - RoleId int `json:"role_id" xorm:"not null default 0 comment('角色id') INT(11)"` - GroupId int `json:"group_id" xorm:"not null default 0 comment('权限组id') INT(11)"` - CreateAt string `json:"create_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` - UpdateAt string `json:"update_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` -} diff --git a/app/db/super/dao/medium_list_dao.go b/app/db/super/dao/medium_list_dao.go deleted file mode 100644 index 0cd3bf2..0000000 --- a/app/db/super/dao/medium_list_dao.go +++ /dev/null @@ -1,5 +0,0 @@ -package dao - -type MediumListDao interface { - //TODO:: You can add specific method definitions here -} diff --git a/app/db/super/implement/medium_list_implement.go b/app/db/super/implement/medium_list_implement.go deleted file mode 100644 index b9eab0d..0000000 --- a/app/db/super/implement/medium_list_implement.go +++ /dev/null @@ -1,14 +0,0 @@ -package implement - -import ( - "applet/app/db/super/dao" - "xorm.io/xorm" -) - -func NewMediumListDb(engine *xorm.Engine) dao.MediumListDao { - return &MediumListDb{Db: engine} -} - -type MediumListDb struct { - Db *xorm.Engine -} diff --git a/app/db/super/model/medium_list.go b/app/db/super/model/medium_list.go deleted file mode 100644 index 7cdba50..0000000 --- a/app/db/super/model/medium_list.go +++ /dev/null @@ -1,25 +0,0 @@ -package model - -type MediumList struct { - Id int `json:"id" xorm:"not null pk autoincr INT(11)"` - Uuid int `json:"uuid" xorm:"not null comment('站长id') index unique(IDX_UUID_TYPE) INT(11)"` - MediumId int `json:"medium_id" xorm:"not null comment('媒体id') unique(IDX_UUID_TYPE) INT(11)"` - Kind int `json:"kind" xorm:"not null default 1 comment('类型(1:企业 2:个人)') TINYINT(1)"` - CompanyName string `json:"company_name" xorm:"not null default '' comment('公司名称') VARCHAR(255)"` - CompanyAbbreviation string `json:"company_abbreviation" xorm:"not null default '' comment('公司简称') VARCHAR(255)"` - UnifiedSocialCreditCode string `json:"unified_social_credit_code" xorm:"not null default '' comment('统一社会信用代码') VARCHAR(255)"` - CertificateType int `json:"certificate_type" xorm:"not null default 1 comment('证件类型') TINYINT(1)"` - BusinessLicenseImgUrl string `json:"business_license_img_url" xorm:"not null default '' comment('营业执照照片') VARCHAR(255)"` - LegalRepresentative string `json:"legal_representative" xorm:"not null default '' comment('法定代表人') CHAR(50)"` - CountryRegionId int `json:"country_region_id" xorm:"not null default 1 comment('国家地区id') TINYINT(3)"` - CountryRegion string `json:"country_region" xorm:"not null default '' comment('国家地区') CHAR(50)"` - RegisteredAddressProvinceId int `json:"registered_address_province_id" xorm:"not null default 0 comment('注册地址-省份id') INT(11)"` - RegisteredAddressCityId int `json:"registered_address_city_id" xorm:"not null default 0 comment('注册地址-市id') INT(11)"` - RegisteredAddressCountyId int `json:"registered_address_county_id" xorm:"not null default 0 comment('注册地址-县/区id') INT(11)"` - RegisteredAddress string `json:"registered_address" xorm:"not null default '' comment('注册地址') VARCHAR(255)"` - BusinessLicenseAddress string `json:"business_license_address" xorm:"not null default '' comment('营业执照地址') VARCHAR(255)"` - CertificateValidity string `json:"certificate_validity" xorm:"not null default '0000-00-00' comment('证件有效期') CHAR(50)"` - State int `json:"state" xorm:"not null default 0 comment('状态(0:待审核 1:审核通过 2:审核拒绝)') TINYINT(1)"` - CreateAt string `json:"create_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` - UpdateAt string `json:"update_at" xorm:"not null default 'CURRENT_TIMESTAMP' DATETIME"` -} diff --git a/app/hdl/hdl_login.go b/app/hdl/hdl_login.go index cd33878..2768897 100644 --- a/app/hdl/hdl_login.go +++ b/app/hdl/hdl_login.go @@ -1,13 +1,13 @@ package hdl import ( - "applet/app/db" - "applet/app/db/implement" "applet/app/e" "applet/app/lib/validate" "applet/app/md" "applet/app/svc" "applet/app/utils" + db "code.fnuoos.com/zhimeng/model.git/src" + "code.fnuoos.com/zhimeng/model.git/src/implement" "fmt" "github.com/gin-gonic/gin" ) @@ -32,8 +32,8 @@ func Login(c *gin.Context) { return } engine := db.DBs[svc.GetMasterId(c)] - adminDb := implement.NewAdminDb(engine) - admin, err := adminDb.GetAdminByUserName(req.UserName) + adminDb := implement.NewMediumDb(engine) + admin, err := adminDb.GetMediumByUsername(req.UserName) if err != nil { e.OutErr(c, e.ERR_DB_ORM, err) return @@ -47,7 +47,7 @@ func Login(c *gin.Context) { return } ip := utils.GetIP(c.Request) - key := fmt.Sprintf(md.JwtTokenKey, ip, utils.AnyToString(admin.AdmId)) + key := fmt.Sprintf(md.JwtTokenKey, ip, utils.AnyToString(admin.Id)) token, err := svc.HandleLoginToken(key, admin) if err != nil { e.OutErr(c, e.ERR, err.Error()) diff --git a/app/hdl/hdl_role.go b/app/hdl/hdl_role.go index 2dc9add..060b4cb 100644 --- a/app/hdl/hdl_role.go +++ b/app/hdl/hdl_role.go @@ -1,15 +1,15 @@ package hdl import ( - "applet/app/db" - "applet/app/db/implement" - "applet/app/db/model" "applet/app/e" "applet/app/enum" "applet/app/lib/validate" "applet/app/md" "applet/app/svc" "applet/app/utils" + db "code.fnuoos.com/zhimeng/model.git/src" + "code.fnuoos.com/zhimeng/model.git/src/implement" + "code.fnuoos.com/zhimeng/model.git/src/model" "github.com/gin-gonic/gin" "time" ) @@ -28,8 +28,8 @@ import ( func PermissionGroupList(c *gin.Context) { roleId := c.DefaultQuery("role_id", "") engine := db.DBs[svc.GetMasterId(c)] - qrcodeWithBatchRecordsDb := implement.NewPermissionGroupDb(engine) - groupList, err := qrcodeWithBatchRecordsDb.FindPermissionGroup() + qrcodeWithBatchRecordsDb := implement.NewMediumPermissionGroupDb(engine) + groupList, err := qrcodeWithBatchRecordsDb.FindMediumPermissionGroup() if err != nil { e.OutErr(c, e.ERR_DB_ORM, err.Error()) return @@ -111,26 +111,26 @@ func PermissionGroupList(c *gin.Context) { // @Router /admin/role/roleList [GET] func RoleList(c *gin.Context) { engine := db.DBs[svc.GetMasterId(c)] - roleDb := implement.NewRoleDb(engine, 0) - roleList, err := roleDb.FindRole() + roleDb := implement.NewMediumRoleDb(engine) + roleList, err := roleDb.FindMediumRole() if err != nil { e.OutErr(c, e.ERR_DB_ORM, err.Error()) return } - adminRoleDb := implement.NewAdminRoleDb(engine) - adminDb := implement.NewAdminDb(engine) + adminRoleDb := implement.NewMediumWithRoleDb(engine) + adminDb := implement.NewMediumDb(engine) var result []*md.RoleListResp for _, v := range *roleList { var temp md.RoleListResp temp.Data = v - adminRoles, err1 := adminRoleDb.FindAdminRoleByRoleId(v.Id) + adminRoles, err1 := adminRoleDb.FindMediumWithRoleByRoleId(v.Id) if err1 != nil { e.OutErr(c, e.ERR_DB_ORM, err1.Error()) return } for _, adminRole := range *adminRoles { - admin, err2 := adminDb.GetAdmin(adminRole.AdmId) + admin, err2 := adminDb.GetMedium(adminRole.Id) if err2 != nil { e.OutErr(c, e.ERR_DB_ORM, err2.Error()) return @@ -180,9 +180,10 @@ func AddRole(c *gin.Context) { return } engine := db.DBs[svc.GetMasterId(c)] - roleDb := implement.NewRoleDb(engine, 0) + roleDb := implement.NewMediumRoleDb(engine) now := time.Now() - _, err = roleDb.RoleInsert(&model.Role{ + + _, err = roleDb.MediumRoleInsert(&model.MediumRole{ Name: req.Name, State: enum.RoleStateForNormal, Memo: req.Memo, @@ -219,8 +220,8 @@ func UpdateRole(c *gin.Context) { return } engine := db.DBs[svc.GetMasterId(c)] - roleDb := implement.NewRoleDb(engine, req.RoleId) - role, err := roleDb.GetRole() + roleDb := implement.NewMediumRoleDb(engine) + role, err := roleDb.GetMediumRole(req.RoleId) if err != nil { e.OutErr(c, e.ERR_DB_ORM, err.Error()) return @@ -231,7 +232,7 @@ func UpdateRole(c *gin.Context) { } role.Name = req.Name role.Memo = req.Memo - _, err = roleDb.UpdateRole(role, "name", "memo") + _, err = roleDb.UpdateMediumRole(role, "name", "memo") if err != nil { e.OutErr(c, e.ERR_DB_ORM, err.Error()) return @@ -392,7 +393,7 @@ func AdminList(c *gin.Context) { } result = append(result, md.AdminListResp{ - AdmId: v.AdmId, + Id: v.AdmId, Username: v.Username, State: v.State, IsSuperAdministrator: v.IsSuperAdministrator, @@ -443,7 +444,7 @@ func UpdateAdminState(c *gin.Context) { engine := db.DBs[svc.GetMasterId(c)] admDb := implement.NewAdminDb(engine) - admin, err := admDb.GetAdmin(req.AdmId) + admin, err := admDb.GetAdmin(req.Id) if err != nil { e.OutErr(c, e.ERR_DB_ORM, err.Error()) return @@ -484,7 +485,7 @@ func UpdateAdmin(c *gin.Context) { } engine := db.DBs[svc.GetMasterId(c)] admDb := implement.NewAdminDb(engine) - admin, err := admDb.GetAdmin(req.AdmId) + admin, err := admDb.GetAdmin(req.Id) if err != nil { e.OutErr(c, e.ERR_DB_ORM, err.Error()) return diff --git a/app/md/md_api_response.go b/app/md/md_api_response.go new file mode 100644 index 0000000..9460e3b --- /dev/null +++ b/app/md/md_api_response.go @@ -0,0 +1,7 @@ +package md + +type Response struct { + Code string `json:"code" example:"响应码"` + Data interface{} `json:"data" ` //内容 + Msg string `json:"msg" example:"具体错误原因"` +} diff --git a/app/md/md_login.go b/app/md/md_login.go index 16b0897..271a126 100644 --- a/app/md/md_login.go +++ b/app/md/md_login.go @@ -1,8 +1,9 @@ package md type LoginReq struct { - UserName string `json:"username" binding:"required" label:"登录账号"` - PassWord string `json:"password" binding:"required" label:"登录密码"` + UserName string `json:"username" binding:"required" example:"登录账号"` + PassWord string `json:"password" binding:"required" example:"登录密码"` + Code string `json:"code" example:"验证码"` } type LoginResponse struct { diff --git a/app/md/md_role.go b/app/md/md_role.go index 9515e1b..d7e4488 100644 --- a/app/md/md_role.go +++ b/app/md/md_role.go @@ -1,11 +1,11 @@ package md import ( - "applet/app/db/model" + "code.fnuoos.com/zhimeng/model.git/src/model" ) type RoleListResp struct { - Data model.Role `json:"data"` + Data model.MediumRole `json:"data"` AdminList []struct { Name string `json:"name"` } `json:"admin_list"` @@ -52,7 +52,7 @@ type AdminListReq struct { } type AdminListResp struct { - AdmId int `json:"adm_id"` + Id int `json:"id"` Username string `json:"username"` State int `json:"state"` IsSuperAdministrator int `json:"is_super_administrator"` @@ -63,7 +63,7 @@ type AdminListResp struct { } type UpdateAdminStateReq struct { - AdmId int `json:"adm_id" binding:"required" label:"管理员id"` + Id int `json:"id" binding:"required" label:"管理员id"` State int `json:"state" binding:"required" label:"状态"` } @@ -74,18 +74,18 @@ type AddAdminReq struct { } type UpdateAdminReq struct { - AdmId int `json:"adm_id" binding:"required" label:"管理员id"` + Id int `json:"id" binding:"required" label:"管理员id"` Username string `json:"username" binding:"required" label:"名称"` Password string `json:"password" binding:"required" label:"密码"` Memo string `json:"memo" label:"备注"` } type BindAdminRoleReq struct { - AdmId int `json:"adm_id" binding:"required" label:"管理员id"` + Id int `json:"id" binding:"required" label:"管理员id"` RoleIds []int `json:"role_ids" label:"角色id"` } type BindAdminWithEnterpriseReq struct { - AdmId int `json:"adm_id" binding:"required" label:"管理员id"` - Ids []int `json:"ids" label:"记录id"` + Id int `json:"id" binding:"required" label:"管理员id"` + Ids []int `json:"ids" label:"记录id"` } diff --git a/app/mw/mw_db.go b/app/mw/mw_db.go index fa89c70..11e474d 100644 --- a/app/mw/mw_db.go +++ b/app/mw/mw_db.go @@ -1,9 +1,9 @@ package mw import ( - "applet/app/db" "applet/app/e" "applet/app/svc" + db "code.fnuoos.com/zhimeng/model.git/src" "errors" "fmt" "github.com/gin-gonic/gin" diff --git a/app/router/router.go b/app/router/router.go index 34ea96c..e3c7689 100644 --- a/app/router/router.go +++ b/app/router/router.go @@ -6,6 +6,8 @@ import ( "applet/app/mw" _ "applet/docs" "github.com/gin-gonic/gin" + swaggerFiles "github.com/swaggo/files" + ginSwagger "github.com/swaggo/gin-swagger" ) // 初始化路由 @@ -18,6 +20,11 @@ func Init() *gin.Engine { gin.SetMode(mode) //创建一个新的启动器 r := gin.New() + r.GET("/api/swagger/*any", func(c *gin.Context) { + //r.Use(mw.SwagAuth()) + ginSwagger.DisablingWrapHandler(swaggerFiles.Handler, "SWAGGER")(c) + }) + r.Use(mw.ChangeHeader) // 是否打印访问日志, 在非正式环境都打印 diff --git a/app/svc/svc_admin.go b/app/svc/svc_admin.go index c773be0..b42def7 100644 --- a/app/svc/svc_admin.go +++ b/app/svc/svc_admin.go @@ -1,8 +1,8 @@ package svc import ( - "applet/app/db" - "applet/app/db/implement" + db "code.fnuoos.com/zhimeng/model.git/src" + "code.fnuoos.com/zhimeng/model.git/src/implement" "github.com/gin-gonic/gin" ) @@ -12,16 +12,16 @@ func AdminDelete(c *gin.Context, admIds []int) (err error) { defer session.Close() session.Begin() //1、删除 `admin` - adminDb := implement.NewAdminDb(engine) - _, err = adminDb.AdminDeleteBySession(session, admIds) + adminDb := implement.NewMediumDb(engine) + _, err = adminDb.MediumDeleteBySession(session, admIds) if err != nil { _ = session.Rollback() return } //2、删除 `admin_role` - adminRoleDb := implement.NewAdminRoleDb(engine) - _, err = adminRoleDb.AdminDeleteBySessionForAdmId(session, admIds) + adminRoleDb := implement.NewMediumWithRoleDb(engine) + _, err = adminRoleDb.MediumDeleteBySessionForAdmId(session, admIds) if err != nil { _ = session.Rollback() return diff --git a/app/svc/svc_auth.go b/app/svc/svc_auth.go index ac7b4e8..8e0ff59 100644 --- a/app/svc/svc_auth.go +++ b/app/svc/svc_auth.go @@ -1,20 +1,20 @@ package svc import ( - "applet/app/db" - "applet/app/db/implement" - "applet/app/db/model" "applet/app/lib/auth" + db "code.fnuoos.com/zhimeng/model.git/src" + "code.fnuoos.com/zhimeng/model.git/src/implement" + "code.fnuoos.com/zhimeng/model.git/src/model" "errors" "github.com/gin-gonic/gin" "strings" ) -func GetUser(c *gin.Context) *model.Admin { +func GetUser(c *gin.Context) *model.Medium { user, _ := c.Get("admin") if user == nil { - return &model.Admin{ - AdmId: 0, + return &model.Medium{ + Id: 0, Username: "", Password: "", State: 0, @@ -22,14 +22,12 @@ func GetUser(c *gin.Context) *model.Admin { Memo: "", CreateAt: "", UpdateAt: "", - OpenId: "", - UnionId: "", } } - return user.(*model.Admin) + return user.(*model.Medium) } -func CheckUser(c *gin.Context) (*model.Admin, error) { +func CheckUser(c *gin.Context) (*model.Medium, error) { token := c.GetHeader("Authorization") if token == "" { return nil, errors.New("token not exist") @@ -46,8 +44,8 @@ func CheckUser(c *gin.Context) (*model.Admin, error) { } // 获取admin - adminDb := implement.NewAdminDb(db.DBs[GetMasterId(c)]) - admin, err := adminDb.GetAdmin(mc.AdmId) + adminDb := implement.NewMediumDb(db.DBs[GetMasterId(c)]) + admin, err := adminDb.GetMedium(mc.AdmId) if err != nil { return nil, err } diff --git a/app/svc/svc_db.go b/app/svc/svc_db.go index 99b1e0d..77c2143 100644 --- a/app/svc/svc_db.go +++ b/app/svc/svc_db.go @@ -1,7 +1,7 @@ package svc import ( - "applet/app/db" + db "code.fnuoos.com/zhimeng/model.git/src" "github.com/gin-gonic/gin" "xorm.io/xorm" ) diff --git a/app/svc/svc_login.go b/app/svc/svc_login.go index c4a44da..7811b5a 100644 --- a/app/svc/svc_login.go +++ b/app/svc/svc_login.go @@ -1,14 +1,14 @@ package svc import ( - "applet/app/db/model" "applet/app/lib/auth" "applet/app/md" "applet/app/utils/cache" "applet/app/utils/logx" + "code.fnuoos.com/zhimeng/model.git/src/model" ) -func HandleLoginToken(cacheKey string, admin *model.Admin) (string, error) { +func HandleLoginToken(cacheKey string, admin *model.Medium) (string, error) { // 获取之前生成的token token, err := cache.GetString(cacheKey) if err != nil { @@ -17,7 +17,7 @@ func HandleLoginToken(cacheKey string, admin *model.Admin) (string, error) { // 没有获取到 if err != nil || token == "" { // 生成token - token, err = auth.GenToken(admin.AdmId, admin.Username) + token, err = auth.GenToken(admin.Id, admin.Username) if err != nil { return "", err } diff --git a/app/svc/svc_role.go b/app/svc/svc_role.go index 0a9b9da..b532b0b 100644 --- a/app/svc/svc_role.go +++ b/app/svc/svc_role.go @@ -1,12 +1,12 @@ package svc import ( - "applet/app/db" - "applet/app/db/implement" - "applet/app/db/model" "applet/app/md" "applet/app/utils" "applet/app/utils/cache" + db "code.fnuoos.com/zhimeng/model.git/src" + "code.fnuoos.com/zhimeng/model.git/src/implement" + "code.fnuoos.com/zhimeng/model.git/src/model" "encoding/json" "errors" "github.com/gin-gonic/gin" @@ -113,25 +113,25 @@ func RoleBindPermissionGroup(c *gin.Context, req md.RoleBindPermissionGroupReq) } //1、删除 `role_permission_group` - rolePermissionGroupDb := implement.NewRolePermissionGroupDb(db.DBs[GetMasterId(c)]) - _, err = rolePermissionGroupDb.RolePermissionGroupDeleteForRoleBySession(session, req.RoleId) + rolePermissionGroupDb := implement.NewMediumRolePermissionGroupDb(db.DBs[GetMasterId(c)]) + _, err = rolePermissionGroupDb.MediumRolePermissionGroupDeleteForRoleBySession(session, req.RoleId) if err != nil { _ = session.Rollback() return } //2、新增 `role_permission_group`` - var mm []*model.RolePermissionGroup + var mm []*model.MediumRolePermissionGroup now := time.Now() for _, v := range req.PermissionIds { - mm = append(mm, &model.RolePermissionGroup{ + mm = append(mm, &model.MediumRolePermissionGroup{ RoleId: role.Id, GroupId: v, CreateAt: now.Format("2006-01-02 15:04:05"), UpdateAt: now.Format("2006-01-02 15:04:05"), }) } - _, err = rolePermissionGroupDb.BatchAddRolePermissionGroupBySession(session, mm) + _, err = rolePermissionGroupDb.BatchAddMediumRolePermissionGroupBySession(session, mm) if err != nil { _ = session.Rollback() return @@ -145,8 +145,8 @@ func BindAdminRole(c *gin.Context, req md.BindAdminRoleReq) (err error) { defer session.Close() session.Begin() //1、查询 `role` - adminDb := implement.NewAdminDb(db.DBs[GetMasterId(c)]) - role, err := adminDb.GetAdmin(req.AdmId) + adminDb := implement.NewMediumDb(db.DBs[GetMasterId(c)]) + role, err := adminDb.GetMedium(req.Id) if err != nil { return } @@ -155,26 +155,26 @@ func BindAdminRole(c *gin.Context, req md.BindAdminRoleReq) (err error) { } //1、删除 `admin_role` - adminRoleDb := implement.NewAdminRoleDb(db.DBs[GetMasterId(c)]) - _, err = adminRoleDb.AdminRoleDeleteBySession(session, req.AdmId) + adminRoleDb := implement.NewMediumWithRoleDb(db.DBs[GetMasterId(c)]) + _, err = adminRoleDb.MediumWithRoleDeleteBySession(session, req.Id) if err != nil { _ = session.Rollback() return } //2、新增 `删除 `admin_role`` - var mm []*model.AdminRole + var mm []*model.MediumWithRole now := time.Now() for _, v := range req.RoleIds { - mm = append(mm, &model.AdminRole{ - AdmId: req.AdmId, + mm = append(mm, &model.MediumWithRole{ + MediumId: req.Id, RoleId: v, State: 1, CreateAt: now.Format("2006-01-02 15:04:05"), UpdateAt: now.Format("2006-01-02 15:04:05"), }) } - _, err = adminRoleDb.BatchAddAdminRoleBySession(session, mm) + _, err = adminRoleDb.BatchAddMediumWithRoleBySession(session, mm) if err != nil { _ = session.Rollback() return diff --git a/app/svc/svc_sys_cfg_get.go b/app/svc/svc_sys_cfg_get.go index e4a928a..bb99785 100644 --- a/app/svc/svc_sys_cfg_get.go +++ b/app/svc/svc_sys_cfg_get.go @@ -1,10 +1,10 @@ package svc import ( + db "code.fnuoos.com/zhimeng/model.git/src" "github.com/gin-gonic/gin" "xorm.io/xorm" - "applet/app/db" "applet/app/md" "applet/app/utils/cache" ) diff --git a/go.mod b/go.mod index ae20d24..67e36ab 100644 --- a/go.mod +++ b/go.mod @@ -2,7 +2,10 @@ module applet go 1.18 +replace code.fnuoos.com/zhimeng/model.git => E:/company/ad/models + require ( + code.fnuoos.com/zhimeng/model.git v0.0.2 github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5 github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 github.com/boombuler/barcode v1.0.1 @@ -10,12 +13,11 @@ require ( github.com/dgrijalva/jwt-go v3.2.0+incompatible github.com/forgoer/openssl v0.0.0-20201023062029-c3112b0c8700 github.com/gin-contrib/sessions v0.0.3 - github.com/gin-gonic/gin v1.6.3 - github.com/go-playground/locales v0.13.0 - github.com/go-playground/universal-translator v0.17.0 - github.com/go-playground/validator/v10 v10.4.2 + github.com/gin-gonic/gin v1.9.0 + github.com/go-playground/locales v0.14.1 + github.com/go-playground/universal-translator v0.18.1 + github.com/go-playground/validator/v10 v10.11.2 github.com/go-redis/redis v6.15.9+incompatible - github.com/go-sql-driver/mysql v1.6.0 github.com/gocolly/colly v1.2.0 github.com/gomodule/redigo v2.0.0+incompatible github.com/iGoogle-ink/gopay v1.5.36 @@ -23,16 +25,19 @@ require ( github.com/qiniu/api.v7/v7 v7.8.2 github.com/robfig/cron/v3 v3.0.1 github.com/sony/sonyflake v1.0.0 - github.com/swaggo/swag v1.7.0 - github.com/syyongx/php2go v0.9.4 + github.com/swaggo/files v1.0.1 + github.com/swaggo/gin-swagger v1.6.0 + github.com/swaggo/swag v1.8.12 + github.com/syyongx/php2go v0.9.8 github.com/tidwall/gjson v1.7.4 go.uber.org/zap v1.16.0 - gopkg.in/natefinch/lumberjack.v2 v2.0.0 + gopkg.in/natefinch/lumberjack.v2 v2.2.1 gopkg.in/yaml.v2 v2.4.0 - xorm.io/xorm v1.0.7 + xorm.io/xorm v1.3.1 ) require ( + filippo.io/edwards25519 v1.1.0 // indirect github.com/KyleBanks/depth v1.2.1 // indirect github.com/PuerkitoBio/goquery v1.5.1 // indirect github.com/PuerkitoBio/purell v1.1.1 // indirect @@ -41,50 +46,57 @@ require ( github.com/antchfx/htmlquery v1.3.2 // indirect github.com/antchfx/xmlquery v1.4.1 // indirect github.com/antchfx/xpath v1.3.1 // indirect + github.com/bytedance/sonic v1.8.0 // indirect + github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect github.com/gin-contrib/sse v0.1.0 // indirect github.com/go-openapi/jsonpointer v0.19.5 // indirect - github.com/go-openapi/jsonreference v0.19.5 // indirect - github.com/go-openapi/spec v0.20.3 // indirect + github.com/go-openapi/jsonreference v0.19.6 // indirect + github.com/go-openapi/spec v0.20.4 // indirect github.com/go-openapi/swag v0.19.15 // indirect + github.com/go-sql-driver/mysql v1.8.1 // indirect github.com/gobwas/glob v0.2.3 // indirect + github.com/goccy/go-json v0.10.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.2 // indirect - github.com/golang/snappy v0.0.3 // indirect + github.com/golang/snappy v0.0.4 // indirect github.com/gookit/color v1.3.8 // indirect github.com/gorilla/context v1.1.1 // indirect github.com/gorilla/securecookie v1.1.1 // indirect github.com/gorilla/sessions v1.2.1 // indirect github.com/josharian/intern v1.0.0 // indirect - github.com/json-iterator/go v1.1.10 // indirect + github.com/json-iterator/go v1.1.12 // indirect github.com/kennygrant/sanitize v1.2.4 // indirect + github.com/klauspost/cpuid/v2 v2.0.9 // indirect github.com/leodido/go-urn v1.2.1 // indirect github.com/mailru/easyjson v0.7.7 // indirect - github.com/mattn/go-isatty v0.0.12 // indirect + github.com/mattn/go-isatty v0.0.19 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.1 // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect github.com/onsi/ginkgo v1.15.0 // indirect github.com/onsi/gomega v1.10.5 // indirect + github.com/pelletier/go-toml/v2 v2.0.6 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/saintfish/chardet v0.0.0-20230101081208-5e3ef4b5456d // indirect - github.com/smartystreets/goconvey v1.6.4 // indirect - github.com/stretchr/testify v1.7.0 // indirect github.com/syndtr/goleveldb v1.0.0 // indirect github.com/temoto/robotstxt v1.1.2 // indirect github.com/tidwall/match v1.0.3 // indirect github.com/tidwall/pretty v1.1.0 // indirect - github.com/ugorji/go/codec v1.2.5 // indirect + github.com/twitchyliquid64/golang-asm v0.15.1 // indirect + github.com/ugorji/go/codec v1.2.9 // indirect go.uber.org/atomic v1.7.0 // indirect go.uber.org/multierr v1.6.0 // indirect - golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 // indirect + golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect + golang.org/x/crypto v0.5.0 // indirect golang.org/x/lint v0.0.0-20200302205851-738671d3881b // indirect - golang.org/x/net v0.7.0 // indirect - golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect - golang.org/x/sys v0.5.0 // indirect - golang.org/x/text v0.7.0 // indirect - golang.org/x/tools v0.1.12 // indirect + golang.org/x/net v0.10.0 // indirect + golang.org/x/sync v0.1.0 // indirect + golang.org/x/sys v0.8.0 // indirect + golang.org/x/text v0.9.0 // indirect + golang.org/x/tools v0.7.0 // indirect golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect google.golang.org/appengine v1.6.1 // indirect - google.golang.org/protobuf v1.26.0 // indirect + google.golang.org/protobuf v1.28.1 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect honnef.co/go/tools v0.0.1-2020.1.4 // indirect - xorm.io/builder v0.3.9 // indirect + xorm.io/builder v0.3.11-0.20220531020008-1bd24a7dc978 // indirect ) diff --git a/k8s/container.yaml b/k8s/container.yaml new file mode 100644 index 0000000..fa9a2f3 --- /dev/null +++ b/k8s/container.yaml @@ -0,0 +1,79 @@ +kind: Deployment +apiVersion: apps/v1 +# 元数据 +metadata: + name: advertisement-medium + namespace: advertisement + labels: + app: advertisement-medium + annotations: + kubesphere.io/creator: dengbiao + kubesphere.io/description: advertisement-medium +# deployment主要部分 +spec: + replicas: 1 + selector: + matchLabels: + # 名称与上面的labels对应 + app: advertisement-medium + template: + metadata: + labels: + # 名称与上面的matchLabels对应 + app: advertisement-medium + spec: + # 声明挂载卷(将外部已存在的pvc、config等挂载进来) + volumes: + # 用于时区校正 + - name: host-time + hostPath: + path: /etc/localtime + type: '' + # 将前面创建的configMap也挂载进来 + - name: advertisement-medium-cfg + configMap: + # 这里的名字就是前面创建的configMap的名字 + name: advertisement-medium-cfg + defaultMode: 420 + containers: + # 主容器 + - name: advertisement-medium-container + # 镜像地址(提前打包好并推送的镜像仓库) + image: 'registry.cn-shenzhen.aliyuncs.com/fnuoos-prd/advertisement-medium:0.0.1' + ports: + - name: advertisement-tcp-1004 + # 容器端口号(注意与golang web server启动的端口一致) + containerPort: 1004 + protocol: TCP + # 将前面volume声明的需要用到的pvc、config挂载上来 + volumeMounts: + - name: host-time + readOnly: true + mountPath: /etc/localtime + - name: advertisement-medium-cfg # 该名字对应前面volumes声明的名字 + readOnly: true + # 挂载到容器的哪个路径 + mountPath: /var/zyos + imagePullPolicy: Always + # Nginx 容器 + - name: 'registry.cn-shenzhen.aliyuncs.com/fnuoos-prd/nginx:latest' + image: nginx + ports: + - name: http-80 + containerPort: 80 + protocol: TCP + volumeMounts: + # 时区校正 + - name: host-time + readOnly: true + mountPath: /etc/localtime + # 存储卷 用于存放前端代码 + - name: advertisement-medium-pvc # 前面volumes声明的名称 + mountPath: /usr/share/nginx/html + - name: advertisement-medium-nginx # Nginx 配置 + readOnly: true + mountPath: /etc/nginx/conf.d/default.conf + subPath: default.conf + restartPolicy: Always + terminationGracePeriodSeconds: 30 + dnsPolicy: ClusterFirst \ No newline at end of file diff --git a/k8s/zyos-mall-deployment_prd.yaml b/k8s/container_prd.yaml similarity index 100% rename from k8s/zyos-mall-deployment_prd.yaml rename to k8s/container_prd.yaml diff --git a/k8s/mall-task-prd.yaml b/k8s/mall-task-prd.yaml deleted file mode 100644 index 1e592eb..0000000 --- a/k8s/mall-task-prd.yaml +++ /dev/null @@ -1,56 +0,0 @@ -kind: Deployment -apiVersion: apps/v1 -metadata: - name: mall-task - namespace: zhios - labels: - app: mall-task - annotations: - kubesphere.io/creator: wuhanqin - kubesphere.io/description: 自营商城go定时任务 -spec: - replicas: 1 - selector: - matchLabels: - app: mall-task - template: - metadata: - labels: - app: mall-task - spec: - volumes: - - name: host-time - hostPath: - path: /etc/localtime - type: '' - - name: mall-task-cfg1 - configMap: - name: zhios-mall-task - items: - - key: task.yml - path: task.yml - defaultMode: 420 - containers: - - name: container-mall-task - image: 'registry.cn-shenzhen.aliyuncs.com/fnuoos-prd/zyos-mall-task:0.3' - resources: - limits: - cpu: '1' - memory: 1000Mi - requests: - cpu: 200m - memory: 1000Mi - volumeMounts: - - name: host-time - readOnly: true - mountPath: /etc/localtime - - name: mall-task-cfg1 - readOnly: true - mountPath: /var/zyos/task.yml - subPath: task.yml - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - imagePullPolicy: Always - restartPolicy: Always - terminationGracePeriodSeconds: 30 - dnsPolicy: ClusterFirst diff --git a/k8s/mall-task.yaml b/k8s/mall-task.yaml deleted file mode 100644 index 534392a..0000000 --- a/k8s/mall-task.yaml +++ /dev/null @@ -1,56 +0,0 @@ -kind: Deployment -apiVersion: apps/v1 -metadata: - name: mall-task - namespace: dev - labels: - app: mall-task - annotations: - kubesphere.io/creator: wuhanqin - kubesphere.io/description: 自营商城go定时任务 -spec: - replicas: 1 - selector: - matchLabels: - app: mall-task - template: - metadata: - labels: - app: mall-task - spec: - volumes: - - name: host-time - hostPath: - path: /etc/localtime - type: '' - - name: mall-task-cfg1 - configMap: - name: mall-task-cfg - items: - - key: task.yml - path: task.yml - defaultMode: 420 - containers: - - name: container-mall-task - image: 'registry.cn-shenzhen.aliyuncs.com/fnuoos-prd/zyos-mall-task:0.1' - resources: - limits: - cpu: '1' - memory: 1000Mi - requests: - cpu: 200m - memory: 1000Mi - volumeMounts: - - name: host-time - readOnly: true - mountPath: /etc/localtime - - name: mall-task-cfg1 - readOnly: true - mountPath: /var/zyos/task.yml - subPath: task.yml - terminationMessagePath: /dev/termination-log - terminationMessagePolicy: File - imagePullPolicy: Always - restartPolicy: Always - terminationGracePeriodSeconds: 30 - dnsPolicy: ClusterFirst diff --git a/main.go b/main.go index 0974be1..54fefed 100644 --- a/main.go +++ b/main.go @@ -1,6 +1,7 @@ package main import ( + db "code.fnuoos.com/zhimeng/model.git/src" "context" "fmt" "log" @@ -11,12 +12,11 @@ import ( "time" "applet/app/cfg" - "applet/app/db" "applet/app/router" "applet/app/utils" ) -//系统初始化 +// 系统初始化 func init() { cfg.InitCfg() //配置初始化 cfg.InitLog() //日志初始化 @@ -33,16 +33,23 @@ func init() { } -// @title 智莺生活移动端接口 +// @title 广告联盟-媒体平台 // @version 1.0 -// @description 移动端接口 -// @termsOfService 智莺生活后端组 -// @contact.name sherlockwhite -// @host localhost:5000 +// @description 媒体后台接口 +// @termsOfService http://swagger.io/terms/ + +// @contact.name dengbiao +// @contact.url http://www.swagger.io/support +// @contact.email 1239118001@qq.com + +// @license.name Apache 2.0 +// @license.url http://www.apache.org/licenses/LICENSE-2.0.html + +// @host localhost:1004 or xxxxx.medium.dengbiao.top // @securityDefinitions.apikey MasterID // @in header // @name MasterID -// @BasePath / +// @BasePath /api func main() { // 启动获取所有品牌 //go taoke.GetAllBrand()