feat:优化项目结构

This commit is contained in:
henry
2021-11-24 10:50:09 +08:00
parent f007168919
commit 0862142ef0
25 changed files with 306 additions and 203 deletions

View File

@ -4,14 +4,15 @@ import (
model3 "SciencesServer/app/api/manage/model"
"SciencesServer/app/handle"
"SciencesServer/app/service"
"SciencesServer/app/session"
"SciencesServer/config"
"SciencesServer/utils"
"errors"
)
type Account struct{ *Platform }
type Account struct{ *session.Manage }
type AccountHandle func(session *service.Session) *Account
type AccountHandle func(session *session.Manage) *Account
type (
AccountLoginResponse struct {
@ -39,32 +40,32 @@ func (c *Account) Login(account, password, captchaKey, captchaValue, equipment,
if !mSysUser.ValidatePassword(password) {
return nil, errors.New("密码错误")
}
session := service.NewSession()
session.UID = mSysUser.UUID
session.Name = mSysUser.Name
session.Mobile = mSysUser.Mobile
session.IsAdmin = mSysUser.IsAdminUser()
_session := service.NewSession()
_session.UID = mSysUser.UUID
_session.Name = mSysUser.Name
_session.Mobile = mSysUser.Mobile
_session.IsAdmin = mSysUser.IsAdminUser()
uid := mSysUser.UUIDString()
session.Token = utils.JWTEncrypt(config.SettingInfo.TokenEffectTime, map[string]interface{}{config.TokenForUID: uid})
_session.Token = utils.JWTEncrypt(config.SettingInfo.TokenEffectTime, map[string]interface{}{config.TokenForUID: uid})
service.Publish(config.EventForRedisHashProduce, config.RedisKeyForAccount, uid, session)
service.Publish(config.EventForAccountLoginProduce, session.TenantID, session.UID, equipment, ip)
service.Publish(config.EventForRedisHashProduce, config.RedisKeyForAccount, uid, _session)
service.Publish(config.EventForAccountLoginProduce, _session.TenantID, _session.UID, equipment, ip)
return &AccountLoginResponse{Token: session.Token, EffectTime: config.SettingInfo.TokenEffectTime}, nil
return &AccountLoginResponse{Token: _session.Token, EffectTime: config.SettingInfo.TokenEffectTime}, nil
}
// Logout 退出请求
func (c *Account) Logout() error {
if c.Session != nil && c.UID > 0 {
if c.Manage != nil && c.UID > 0 {
service.Publish(config.EventForRedisHashDestroy, config.RedisKeyForAccount, utils.UintToString(c.UID))
}
return nil
}
func NewAccount() AccountHandle {
return func(session *service.Session) *Account {
return &Account{Platform: &Platform{Session: session}}
return func(session *session.Manage) *Account {
return &Account{Manage: session}
}
}