优化启动程序时初始化数据的代码逻辑
This commit is contained in:
parent
970db9277e
commit
b5f70e6992
3
main.go
3
main.go
@ -34,9 +34,10 @@ func Run() error {
|
|||||||
// 为了兼容之前调用global包的代码 后期预期会改为调用pgk/config
|
// 为了兼容之前调用global包的代码 后期预期会改为调用pgk/config
|
||||||
global.Config = config.GlobalCfg
|
global.Config = config.GlobalCfg
|
||||||
|
|
||||||
|
global.Cache = api.SetupCache()
|
||||||
db := api.SetupDB()
|
db := api.SetupDB()
|
||||||
e := api.SetupRoutes(db)
|
e := api.SetupRoutes(db)
|
||||||
global.Cache = api.SetupCache()
|
|
||||||
if global.Config.ResetPassword != "" {
|
if global.Config.ResetPassword != "" {
|
||||||
return api.ResetPassword()
|
return api.ResetPassword()
|
||||||
}
|
}
|
||||||
|
@ -260,7 +260,7 @@ func (r JobService) ExecJobById(id string) (err error) {
|
|||||||
|
|
||||||
func (r JobService) InitJob() error {
|
func (r JobService) InitJob() error {
|
||||||
jobs, _ := r.jobRepository.FindByFunc(constant.FuncCheckAssetStatusJob)
|
jobs, _ := r.jobRepository.FindByFunc(constant.FuncCheckAssetStatusJob)
|
||||||
if jobs == nil {
|
if len(jobs) == 0 {
|
||||||
job := model.Job{
|
job := model.Job{
|
||||||
ID: utils.UUID(),
|
ID: utils.UUID(),
|
||||||
Name: "资产状态检测",
|
Name: "资产状态检测",
|
||||||
|
31
pkg/service/num.go
Normal file
31
pkg/service/num.go
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
package service
|
||||||
|
|
||||||
|
import (
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
"next-terminal/server/model"
|
||||||
|
"next-terminal/server/repository"
|
||||||
|
)
|
||||||
|
|
||||||
|
type NumService struct {
|
||||||
|
numRepository *repository.NumRepository
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewNumService(numRepository *repository.NumRepository) *NumService {
|
||||||
|
return &NumService{numRepository: numRepository}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r NumService) InitNums() error {
|
||||||
|
nums, err := r.numRepository.FindAll()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if len(nums) == 0 {
|
||||||
|
for i := 0; i <= 30; i++ {
|
||||||
|
if err := r.numRepository.Create(&model.Num{I: strconv.Itoa(i)}); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
@ -15,18 +15,21 @@ func NewSessionService(sessionRepository *repository.SessionRepository) *Session
|
|||||||
return &SessionService{sessionRepository: sessionRepository}
|
return &SessionService{sessionRepository: sessionRepository}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r SessionService) Fix() {
|
func (r SessionService) FixSessionState() error {
|
||||||
sessions, _ := r.sessionRepository.FindByStatus(constant.Connected)
|
sessions, err := r.sessionRepository.FindByStatus(constant.Connected)
|
||||||
if sessions == nil {
|
if err != nil {
|
||||||
return
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
for i := range sessions {
|
if len(sessions) > 0 {
|
||||||
session := model.Session{
|
for i := range sessions {
|
||||||
Status: constant.Disconnected,
|
session := model.Session{
|
||||||
DisconnectedTime: utils.NowJsonTime(),
|
Status: constant.Disconnected,
|
||||||
|
DisconnectedTime: utils.NowJsonTime(),
|
||||||
|
}
|
||||||
|
|
||||||
|
_ = r.sessionRepository.UpdateById(&session, sessions[i].ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
_ = r.sessionRepository.UpdateById(&session, sessions[i].ID)
|
|
||||||
}
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -58,21 +58,23 @@ func (r UserService) InitUser() (err error) {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r UserService) FixedOnlineState() error {
|
func (r UserService) FixedUserOnlineState() error {
|
||||||
// 修正用户登录状态
|
// 修正用户登录状态
|
||||||
onlineUsers, err := r.userRepository.FindOnlineUsers()
|
onlineUsers, err := r.userRepository.FindOnlineUsers()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
for i := range onlineUsers {
|
if len(onlineUsers) > 0 {
|
||||||
logs, err := r.loginLogRepository.FindAliveLoginLogsByUserId(onlineUsers[i].ID)
|
for i := range onlineUsers {
|
||||||
if err != nil {
|
logs, err := r.loginLogRepository.FindAliveLoginLogsByUserId(onlineUsers[i].ID)
|
||||||
return err
|
if err != nil {
|
||||||
}
|
|
||||||
if len(logs) == 0 {
|
|
||||||
if err := r.userRepository.UpdateOnline(onlineUsers[i].ID, false); err != nil {
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if len(logs) == 0 {
|
||||||
|
if err := r.userRepository.UpdateOnline(onlineUsers[i].ID, false); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@ -3,7 +3,6 @@ package api
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
"strconv"
|
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -45,6 +44,7 @@ var (
|
|||||||
userService *service.UserService
|
userService *service.UserService
|
||||||
sessionService *service.SessionService
|
sessionService *service.SessionService
|
||||||
mailService *service.MailService
|
mailService *service.MailService
|
||||||
|
numService *service.NumService
|
||||||
)
|
)
|
||||||
|
|
||||||
func SetupRoutes(db *gorm.DB) *echo.Echo {
|
func SetupRoutes(db *gorm.DB) *echo.Echo {
|
||||||
@ -56,6 +56,10 @@ func SetupRoutes(db *gorm.DB) *echo.Echo {
|
|||||||
log.WithError(err).Error("初始化数据异常")
|
log.WithError(err).Error("初始化数据异常")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := ReloadData(); err != nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
e := echo.New()
|
e := echo.New()
|
||||||
e.HideBanner = true
|
e.HideBanner = true
|
||||||
//e.Logger = log.GetEchoLogger()
|
//e.Logger = log.GetEchoLogger()
|
||||||
@ -213,6 +217,17 @@ func SetupRoutes(db *gorm.DB) *echo.Echo {
|
|||||||
return e
|
return e
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ReloadData() error {
|
||||||
|
if err := ReloadAccessSecurity(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := ReloadToken(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func InitRepository(db *gorm.DB) {
|
func InitRepository(db *gorm.DB) {
|
||||||
userRepository = repository.NewUserRepository(db)
|
userRepository = repository.NewUserRepository(db)
|
||||||
userGroupRepository = repository.NewUserGroupRepository(db)
|
userGroupRepository = repository.NewUserGroupRepository(db)
|
||||||
@ -235,33 +250,27 @@ func InitService() {
|
|||||||
userService = service.NewUserService(userRepository, loginLogRepository)
|
userService = service.NewUserService(userRepository, loginLogRepository)
|
||||||
sessionService = service.NewSessionService(sessionRepository)
|
sessionService = service.NewSessionService(sessionRepository)
|
||||||
mailService = service.NewMailService(propertyRepository)
|
mailService = service.NewMailService(propertyRepository)
|
||||||
|
numService = service.NewNumService(numRepository)
|
||||||
}
|
}
|
||||||
|
|
||||||
func InitDBData() (err error) {
|
func InitDBData() (err error) {
|
||||||
if err := propertyService.InitProperties(); err != nil {
|
if err := propertyService.InitProperties(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := userService.InitUser(); err != nil {
|
if err := numService.InitNums(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := userService.FixedOnlineState(); err != nil {
|
if err := userService.InitUser(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := jobService.InitJob(); err != nil {
|
if err := jobService.InitJob(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err := userService.FixedUserOnlineState(); err != nil {
|
||||||
sessionService.Fix()
|
|
||||||
if err := ReloadAccessSecurity(); err != nil {
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
nums, _ := numRepository.FindAll()
|
if err := sessionService.FixSessionState(); err != nil {
|
||||||
if nums == nil {
|
return err
|
||||||
for i := 0; i <= 30; i++ {
|
|
||||||
if err := numRepository.Create(&model.Num{I: strconv.Itoa(i)}); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user