Browse Source

为打包使用

master
dengbiao 3 months ago
parent
commit
f106c22c38
50 changed files with 358 additions and 1324 deletions
  1. +0
    -44
      app/db/dao/admin_dao.go
  2. +0
    -25
      app/db/dao/admin_role_dao.go
  3. +0
    -5
      app/db/dao/permission_dao.go
  4. +0
    -8
      app/db/dao/permission_group_dao.go
  5. +0
    -5
      app/db/dao/permission_group_permission_dao.go
  6. +0
    -25
      app/db/dao/role_dao.go
  7. +0
    -11
      app/db/dao/role_permission_group_dao.go
  8. +14
    -0
      app/db/dao/sys_cfg_dao.go
  9. +0
    -112
      app/db/db.go
  10. +0
    -82
      app/db/db_sys_cfg.go
  11. +0
    -104
      app/db/dbs.go
  12. +0
    -194
      app/db/dbs_map.go
  13. +0
    -115
      app/db/implement/admin_implement.go
  14. +0
    -77
      app/db/implement/admin_role_implement.go
  15. +0
    -33
      app/db/implement/permission_group_implement.go
  16. +0
    -14
      app/db/implement/permission_group_permission_implement.go
  17. +0
    -14
      app/db/implement/permission_implement.go
  18. +0
    -73
      app/db/implement/role_implement.go
  19. +0
    -32
      app/db/implement/role_permission_group_implement.go
  20. +124
    -0
      app/db/implement/sys_cfg_implement.go
  21. +0
    -14
      app/db/model/admin.go
  22. +0
    -10
      app/db/model/admin_role.go
  23. +0
    -14
      app/db/model/db_mapping.go
  24. +0
    -10
      app/db/model/permission.go
  25. +0
    -11
      app/db/model/permission_group.go
  26. +0
    -9
      app/db/model/permission_group_permission.go
  27. +0
    -10
      app/db/model/role.go
  28. +0
    -9
      app/db/model/role_permission_group.go
  29. +0
    -5
      app/db/super/dao/medium_list_dao.go
  30. +0
    -14
      app/db/super/implement/medium_list_implement.go
  31. +0
    -25
      app/db/super/model/medium_list.go
  32. +5
    -5
      app/hdl/hdl_login.go
  33. +20
    -19
      app/hdl/hdl_role.go
  34. +7
    -0
      app/md/md_api_response.go
  35. +3
    -2
      app/md/md_login.go
  36. +8
    -8
      app/md/md_role.go
  37. +1
    -1
      app/mw/mw_db.go
  38. +7
    -0
      app/router/router.go
  39. +6
    -6
      app/svc/svc_admin.go
  40. +10
    -12
      app/svc/svc_auth.go
  41. +1
    -1
      app/svc/svc_db.go
  42. +3
    -3
      app/svc/svc_login.go
  43. +16
    -16
      app/svc/svc_role.go
  44. +1
    -1
      app/svc/svc_sys_cfg_get.go
  45. +38
    -26
      go.mod
  46. +79
    -0
      k8s/container.yaml
  47. +0
    -0
      k8s/container_prd.yaml
  48. +0
    -56
      k8s/mall-task-prd.yaml
  49. +0
    -56
      k8s/mall-task.yaml
  50. +15
    -8
      main.go

+ 0
- 44
app/db/dao/admin_dao.go View File

@@ -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"
}

+ 0
- 25
app/db/dao/admin_role_dao.go View File

@@ -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"
}

+ 0
- 5
app/db/dao/permission_dao.go View File

@@ -1,5 +0,0 @@
package dao

type PermissionDao interface {
//TODO:: You can add specific method definitions here
}

+ 0
- 8
app/db/dao/permission_group_dao.go View File

@@ -1,8 +0,0 @@
package dao

import "applet/app/db/model"

type PermissionGroupDao interface {
FindPermissionGroup() (*[]model.PermissionGroup, error)
FindPermissionGroupV2() (*[]model.PermissionGroup, error)
}

+ 0
- 5
app/db/dao/permission_group_permission_dao.go View File

@@ -1,5 +0,0 @@
package dao

type PermissionGroupPermissionDao interface {
//TODO:: You can add specific method definitions here
}

+ 0
- 25
app/db/dao/role_dao.go View File

@@ -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"
}

+ 0
- 11
app/db/dao/role_permission_group_dao.go View File

@@ -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)
}

+ 14
- 0
app/db/dao/sys_cfg_dao.go View File

@@ -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
}

+ 0
- 112
app/db/db.go View File

@@ -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
}

+ 0
- 82
app/db/db_sys_cfg.go View File

@@ -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
}

+ 0
- 104
app/db/dbs.go View File

@@ -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)
}
}
}

}

+ 0
- 194
app/db/dbs_map.go View File

@@ -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
}

+ 0
- 115
app/db/implement/admin_implement.go View File

@@ -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
}

+ 0
- 77
app/db/implement/admin_role_implement.go View File

@@ -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
}

+ 0
- 33
app/db/implement/permission_group_implement.go View File

@@ -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
}

+ 0
- 14
app/db/implement/permission_group_permission_implement.go View File

@@ -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}
}

+ 0
- 14
app/db/implement/permission_implement.go View File

@@ -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}
}

+ 0
- 73
app/db/implement/role_implement.go View File

@@ -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
}

+ 0
- 32
app/db/implement/role_permission_group_implement.go View File

@@ -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
}

+ 124
- 0
app/db/implement/sys_cfg_implement.go View File

@@ -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
}

+ 0
- 14
app/db/model/admin.go View File

@@ -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)"`
}

+ 0
- 10
app/db/model/admin_role.go View File

@@ -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"`
}

+ 0
- 14
app/db/model/db_mapping.go View File

@@ -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)"`
}

+ 0
- 10
app/db/model/permission.go View File

@@ -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"`
}

+ 0
- 11
app/db/model/permission_group.go View File

@@ -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"`
}

+ 0
- 9
app/db/model/permission_group_permission.go View File

@@ -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"`
}

+ 0
- 10
app/db/model/role.go View File

@@ -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"`
}

+ 0
- 9
app/db/model/role_permission_group.go View File

@@ -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"`
}

+ 0
- 5
app/db/super/dao/medium_list_dao.go View File

@@ -1,5 +0,0 @@
package dao

type MediumListDao interface {
//TODO:: You can add specific method definitions here
}

+ 0
- 14
app/db/super/implement/medium_list_implement.go View File

@@ -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
}

+ 0
- 25
app/db/super/model/medium_list.go View File

@@ -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"`
}

+ 5
- 5
app/hdl/hdl_login.go View File

@@ -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())


+ 20
- 19
app/hdl/hdl_role.go View File

@@ -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


+ 7
- 0
app/md/md_api_response.go View File

@@ -0,0 +1,7 @@
package md

type Response struct {
Code string `json:"code" example:"响应码"`
Data interface{} `json:"data" ` //内容
Msg string `json:"msg" example:"具体错误原因"`
}

+ 3
- 2
app/md/md_login.go View File

@@ -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 {


+ 8
- 8
app/md/md_role.go View File

@@ -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"`
}

+ 1
- 1
app/mw/mw_db.go View File

@@ -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"


+ 7
- 0
app/router/router.go View File

@@ -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)

// 是否打印访问日志, 在非正式环境都打印


+ 6
- 6
app/svc/svc_admin.go View File

@@ -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


+ 10
- 12
app/svc/svc_auth.go View File

@@ -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
}


+ 1
- 1
app/svc/svc_db.go View File

@@ -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"
)


+ 3
- 3
app/svc/svc_login.go View File

@@ -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
}


+ 16
- 16
app/svc/svc_role.go View File

@@ -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


+ 1
- 1
app/svc/svc_sys_cfg_get.go View File

@@ -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"
)


+ 38
- 26
go.mod View File

@@ -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
)

+ 79
- 0
k8s/container.yaml View File

@@ -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

k8s/zyos-mall-deployment_prd.yaml → k8s/container_prd.yaml View File


+ 0
- 56
k8s/mall-task-prd.yaml View File

@@ -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

+ 0
- 56
k8s/mall-task.yaml View File

@@ -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

+ 15
- 8
main.go View File

@@ -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()


Loading…
Cancel
Save