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

@ -1,8 +1,11 @@
package api package api
import ( import (
account2 "SciencesServer/app/api/enterprise/controller/account" "SciencesServer/app/api/enterprise/controller/account"
"SciencesServer/app/basic/api" "SciencesServer/app/basic/api"
"SciencesServer/app/service"
"SciencesServer/app/session"
"SciencesServer/config"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
@ -32,7 +35,7 @@ func (a *Account) Login(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
data, err := account2.NewLogin()(api.GetLocal()(c).(string)).Launch(account2.LoginMode(form.Mode), &account2.LoginParams{ data, err := account.NewLogin()(api.GetLocal()(c).(string)).Launch(account.LoginMode(form.Mode), &account.LoginParams{
Captcha: struct { Captcha: struct {
Mobile string Mobile string
Captcha string Captcha string
@ -52,7 +55,7 @@ func (a *Account) Register(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
data, err := account2.NewRegister()(api.GetLocal()(c).(string)).Launch(&account2.RegisterParams{ data, err := account.NewRegister()(api.GetLocal()(c).(string)).Launch(&account.RegisterParams{
Name: form.Name, Mobile: form.Mobile, Captcha: form.Captcha, Name: form.Name, Mobile: form.Mobile, Captcha: form.Captcha,
Password: form.Password, RepeatPass: form.RepeatPass, Identity: form.Identity, Password: form.Password, RepeatPass: form.RepeatPass, Identity: form.Identity,
}) })
@ -63,16 +66,14 @@ func (*Account) Authorize(c *gin.Context) {
} }
func (*Account) BindMobile(c *gin.Context) {
//account.NewOther()().BindMobile()
}
func (*Account) Logout(c *gin.Context) { func (*Account) Logout(c *gin.Context) {
// 因跳过中间键故只能自己去获取token用户信息 // 因跳过中间键故只能自己去获取token用户信息
//token := c.GetHeader(config.APIRequestToken) token := c.GetHeader(config.APIRequestToken)
//session, _ := service.NewAuthToken(token).Auth() _session := session.NewEnterprise()
err := account2.NewLogout()(nil).Launch() _ = service.NewAuthToken(token).Auth(_session)
err := account.NewLogout()(_session).Launch()
api.APIResponse(err)(c) api.APIResponse(err)(c)
} }

View File

@ -3,7 +3,7 @@ package api
import ( import (
"SciencesServer/app/api/enterprise/controller/identity" "SciencesServer/app/api/enterprise/controller/identity"
"SciencesServer/app/basic/api" "SciencesServer/app/basic/api"
"SciencesServer/app/service" "SciencesServer/app/session"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
@ -19,7 +19,7 @@ func (*Identity) Expert(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
data, err := identity.NewInstance()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). data, err := identity.NewInstance()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
Expert(form.Name, form.Mobile, form.Page, form.PageSize) Expert(form.Name, form.Mobile, form.Page, form.PageSize)
api.APIResponse(err, data)(c) api.APIResponse(err, data)(c)
} }

View File

@ -4,7 +4,7 @@ import (
technology2 "SciencesServer/app/api/enterprise/controller/technology" technology2 "SciencesServer/app/api/enterprise/controller/technology"
"SciencesServer/app/basic/api" "SciencesServer/app/basic/api"
"SciencesServer/app/basic/config" "SciencesServer/app/basic/config"
"SciencesServer/app/service" "SciencesServer/app/session"
config2 "SciencesServer/config" config2 "SciencesServer/config"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"strings" "strings"
@ -110,7 +110,7 @@ func (a *Technology) Instance(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
data, err := technology2.NewInstance()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). data, err := technology2.NewInstance()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
List(form.Status, form.Page, form.PageSize) List(form.Status, form.Page, form.PageSize)
api.APIResponse(err, data)(c) api.APIResponse(err, data)(c)
} }
@ -122,7 +122,7 @@ func (a *Technology) InstanceAdd(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
err := technology2.NewInstance()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). err := technology2.NewInstance()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
Form(&technology2.InstanceParams{ Form(&technology2.InstanceParams{
PatentID: form.PatentID, Territory: form.Territory, Title: form.Title, Company: form.Company, PatentID: form.PatentID, Territory: form.Territory, Title: form.Title, Company: form.Company,
Images: form.FilterImageURL(), ProveImages: form.FilterProveImages(), Introduce: form.Introduce, Purpose: form.Purpose, Images: form.FilterImageURL(), ProveImages: form.FilterProveImages(), Introduce: form.Introduce, Purpose: form.Purpose,
@ -141,7 +141,7 @@ func (a *Technology) InstanceEdit(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
err := technology2.NewInstance()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). err := technology2.NewInstance()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
Form(&technology2.InstanceParams{ Form(&technology2.InstanceParams{
ID: form.Convert(), ID: form.Convert(),
PatentID: form.PatentID, Territory: form.Territory, Title: form.Title, Company: form.Company, PatentID: form.PatentID, Territory: form.Territory, Title: form.Title, Company: form.Company,
@ -161,7 +161,7 @@ func (a *Technology) InstanceShelf(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
err := technology2.NewInstance()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). err := technology2.NewInstance()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
Shelf(form.Convert(), form.Status) Shelf(form.Convert(), form.Status)
api.APIResponse(err)(c) api.APIResponse(err)(c)
} }
@ -173,7 +173,7 @@ func (a *Technology) InstanceDelete(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
err := technology2.NewInstance()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). err := technology2.NewInstance()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
Delete(form.Convert()) Delete(form.Convert())
api.APIResponse(err)(c) api.APIResponse(err)(c)
} }
@ -187,7 +187,7 @@ func (a *Technology) Paper(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
data, err := technology2.NewPaper()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). data, err := technology2.NewPaper()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
List(form.Title, form.Page, form.PageSize) List(form.Title, form.Page, form.PageSize)
api.APIResponse(err, data)(c) api.APIResponse(err, data)(c)
} }
@ -199,7 +199,7 @@ func (a *Technology) PaperAdd(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
err := technology2.NewPaper()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). err := technology2.NewPaper()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
Form(&technology2.PaperParams{ Form(&technology2.PaperParams{
Title: form.Title, Ext: form.Ext, Author: form.Author, PublishAt: form.PublishAt, Title: form.Title, Ext: form.Ext, Author: form.Author, PublishAt: form.PublishAt,
Keyword: form.Keyword, Tags: form.Tags, Remark: form.Remark, Keyword: form.Keyword, Tags: form.Tags, Remark: form.Remark,
@ -216,7 +216,7 @@ func (a *Technology) PaperEdit(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
err := technology2.NewPaper()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). err := technology2.NewPaper()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
Form(&technology2.PaperParams{ Form(&technology2.PaperParams{
ID: form.Convert(), Title: form.Title, Ext: form.Ext, Author: form.Author, PublishAt: form.PublishAt, ID: form.Convert(), Title: form.Title, Ext: form.Ext, Author: form.Author, PublishAt: form.PublishAt,
Keyword: form.Keyword, Tags: form.Tags, Remark: form.Remark, Keyword: form.Keyword, Tags: form.Tags, Remark: form.Remark,
@ -231,7 +231,7 @@ func (a *Technology) PaperDelete(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
err := technology2.NewPaper()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). err := technology2.NewPaper()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
Delete(form.Convert()) Delete(form.Convert())
api.APIResponse(err)(c) api.APIResponse(err)(c)
} }
@ -245,7 +245,7 @@ func (a *Technology) Patent(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
data, err := technology2.NewPatent()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). data, err := technology2.NewPatent()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
List(form.Title, form.Page, form.PageSize) List(form.Title, form.Page, form.PageSize)
api.APIResponse(err, data)(c) api.APIResponse(err, data)(c)
} }
@ -257,7 +257,7 @@ func (a *Technology) PatentDetail(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
data, err := technology2.NewPatent()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). data, err := technology2.NewPatent()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
Detail(form.Convert()) Detail(form.Convert())
api.APIResponse(err, data)(c) api.APIResponse(err, data)(c)
} }
@ -269,7 +269,7 @@ func (a *Technology) PatentAdd(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
err := technology2.NewPatent()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). err := technology2.NewPatent()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
Form(&technology2.PatentParams{ Form(&technology2.PatentParams{
Title: form.Title, IPCCode: form.IPCCode, CPCCode: form.CPCCode, ApplyCode: form.ApplyCode, Title: form.Title, IPCCode: form.IPCCode, CPCCode: form.CPCCode, ApplyCode: form.ApplyCode,
ApplyName: form.ApplyName, ApplyAddress: form.ApplyAddress, ApplyZipCode: form.ApplyZipCode, ApplyName: form.ApplyName, ApplyAddress: form.ApplyAddress, ApplyZipCode: form.ApplyZipCode,
@ -288,7 +288,7 @@ func (a *Technology) PatentEdit(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
err := technology2.NewPatent()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). err := technology2.NewPatent()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
Form(&technology2.PatentParams{ Form(&technology2.PatentParams{
ID: form.Convert(), Title: form.Title, IPCCode: form.IPCCode, CPCCode: form.CPCCode, ID: form.Convert(), Title: form.Title, IPCCode: form.IPCCode, CPCCode: form.CPCCode,
ApplyCode: form.ApplyCode, ApplyName: form.ApplyName, ApplyAddress: form.ApplyAddress, ApplyCode: form.ApplyCode, ApplyName: form.ApplyName, ApplyAddress: form.ApplyAddress,
@ -305,7 +305,7 @@ func (a *Technology) PatentDelete(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
err := technology2.NewPatent()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). err := technology2.NewPatent()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
Delete(form.Convert()) Delete(form.Convert())
api.APIResponse(err)(c) api.APIResponse(err)(c)
} }
@ -319,7 +319,7 @@ func (a *Technology) Demand(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
data, err := technology2.NewDemand()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). data, err := technology2.NewDemand()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
List(form.Status, form.Page, form.PageSize) List(form.Status, form.Page, form.PageSize)
api.APIResponse(err, data)(c) api.APIResponse(err, data)(c)
} }
@ -331,7 +331,7 @@ func (a *Technology) DemandDetail(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
data, err := technology2.NewDemand()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). data, err := technology2.NewDemand()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
Detail(form.Convert()) Detail(form.Convert())
api.APIResponse(err, data)(c) api.APIResponse(err, data)(c)
} }
@ -343,7 +343,7 @@ func (a *Technology) DemandAdd(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
err := technology2.NewDemand()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). err := technology2.NewDemand()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
Form(&technology2.DemandParams{ Form(&technology2.DemandParams{
Title: form.Title, Introduce: form.Introduce, Name: form.Name, Mobile: form.Mobile, Deadline: form.Deadline, Title: form.Title, Introduce: form.Introduce, Name: form.Name, Mobile: form.Mobile, Deadline: form.Deadline,
Industry: form.Industry, Kinds: form.Kinds, Area: form.Area, Budget: form.Budget, BudgetMode: form.BudgetMode, Industry: form.Industry, Kinds: form.Kinds, Area: form.Area, Budget: form.Budget, BudgetMode: form.BudgetMode,
@ -365,7 +365,7 @@ func (a *Technology) DemandEdit(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
err := technology2.NewDemand()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). err := technology2.NewDemand()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
Form(&technology2.DemandParams{ Form(&technology2.DemandParams{
ID: form.Convert(), Title: form.Title, Introduce: form.Introduce, Name: form.Name, Mobile: form.Mobile, Deadline: form.Deadline, ID: form.Convert(), Title: form.Title, Introduce: form.Introduce, Name: form.Name, Mobile: form.Mobile, Deadline: form.Deadline,
Industry: form.Industry, Kinds: form.Kinds, Area: form.Area, Budget: form.Budget, BudgetMode: form.BudgetMode, Industry: form.Industry, Kinds: form.Kinds, Area: form.Area, Budget: form.Budget, BudgetMode: form.BudgetMode,
@ -385,7 +385,7 @@ func (a *Technology) DemandDelete(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
err := technology2.NewDemand()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). err := technology2.NewDemand()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
Delete(form.Convert()) Delete(form.Convert())
api.APIResponse(err)(c) api.APIResponse(err)(c)
} }
@ -399,7 +399,7 @@ func (a *Technology) Topic(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
data, err := technology2.NewTopic()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). data, err := technology2.NewTopic()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
List(form.Status, form.Page, form.PageSize) List(form.Status, form.Page, form.PageSize)
api.APIResponse(err, data)(c) api.APIResponse(err, data)(c)
} }
@ -411,7 +411,7 @@ func (a *Technology) TopicDetail(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
data, err := technology2.NewTopic()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). data, err := technology2.NewTopic()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
Detail(form.Convert()) Detail(form.Convert())
api.APIResponse(err, data)(c) api.APIResponse(err, data)(c)
} }
@ -423,7 +423,7 @@ func (a *Technology) TopicAdd(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
err := technology2.NewTopic()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). err := technology2.NewTopic()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
Form(&technology2.TopicParams{Title: form.Title, Emcee: form.Emcee, Mechanism: form.Mechanism, Code: form.Code, Form(&technology2.TopicParams{Title: form.Title, Emcee: form.Emcee, Mechanism: form.Mechanism, Code: form.Code,
BeginAt: form.BeginAt, FinishAt: form.FinishAt, Amount: form.Amount, Source: form.Source, Kind: form.Kind, BeginAt: form.BeginAt, FinishAt: form.FinishAt, Amount: form.Amount, Source: form.Source, Kind: form.Kind,
Keywords: form.Keywords}) Keywords: form.Keywords})
@ -439,7 +439,7 @@ func (a *Technology) TopicEdit(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
err := technology2.NewTopic()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). err := technology2.NewTopic()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
Form(&technology2.TopicParams{ID: form.Convert(), Title: form.Title, Emcee: form.Emcee, Mechanism: form.Mechanism, Form(&technology2.TopicParams{ID: form.Convert(), Title: form.Title, Emcee: form.Emcee, Mechanism: form.Mechanism,
Code: form.Code, BeginAt: form.BeginAt, FinishAt: form.FinishAt, Amount: form.Amount, Source: form.Source, Code: form.Code, BeginAt: form.BeginAt, FinishAt: form.FinishAt, Amount: form.Amount, Source: form.Source,
Kind: form.Kind, Keywords: form.Keywords}) Kind: form.Kind, Keywords: form.Keywords})
@ -453,7 +453,7 @@ func (a *Technology) TopicDelete(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
err := technology2.NewTopic()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). err := technology2.NewTopic()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
Delete(form.Convert()) Delete(form.Convert())
api.APIResponse(err)(c) api.APIResponse(err)(c)
} }
@ -467,7 +467,7 @@ func (a *Technology) Equipment(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
data, err := technology2.NewEquipment()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). data, err := technology2.NewEquipment()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
List(form.Title, form.Page, form.PageSize) List(form.Title, form.Page, form.PageSize)
api.APIResponse(err, data)(c) api.APIResponse(err, data)(c)
} }
@ -479,7 +479,7 @@ func (a *Technology) EquipmentAdd(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
err := technology2.NewEquipment()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). err := technology2.NewEquipment()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
Form(&technology2.EquipmentParams{Title: form.Title, Research: form.Research, Describe: form.Describe}) Form(&technology2.EquipmentParams{Title: form.Title, Research: form.Research, Describe: form.Describe})
api.APIResponse(err)(c) api.APIResponse(err)(c)
} }
@ -493,7 +493,7 @@ func (a *Technology) EquipmentEdit(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
err := technology2.NewEquipment()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). err := technology2.NewEquipment()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
Form(&technology2.EquipmentParams{ID: form.Convert(), Title: form.Title, Research: form.Research, Describe: form.Describe}) Form(&technology2.EquipmentParams{ID: form.Convert(), Title: form.Title, Research: form.Research, Describe: form.Describe})
api.APIResponse(err)(c) api.APIResponse(err)(c)
} }
@ -505,7 +505,7 @@ func (a *Technology) EquipmentDelete(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
err := technology2.NewEquipment()(api.GetSession()(c).(*service.SessionEnterprise), api.GetLocal()(c).(string)). err := technology2.NewEquipment()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
Delete(form.Convert()) Delete(form.Convert())
api.APIResponse(err)(c) api.APIResponse(err)(c)
} }

View File

@ -1,10 +1,10 @@
package api package api
import ( import (
user2 "SciencesServer/app/api/enterprise/controller/user" "SciencesServer/app/api/enterprise/controller/user"
"SciencesServer/app/basic/api" "SciencesServer/app/basic/api"
"SciencesServer/app/basic/config" "SciencesServer/app/basic/config"
"SciencesServer/app/service" "SciencesServer/app/session"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
@ -32,17 +32,30 @@ type (
} }
) )
func (a *User) Info(c *gin.Context) { func (*User) Info(c *gin.Context) {
data := user2.NewInstance()(api.GetSession()(c).(*service.SessionEnterprise)).Info() data := user.NewInstance()(api.GetSession()(c).(*session.Enterprise)).Info()
api.APISuccess(data) api.APISuccess(data)
} }
func (a *User) Detail(c *gin.Context) { func (*User) Detail(c *gin.Context) {
data, err := user2.NewInstance()(api.GetSession()(c).(*service.SessionEnterprise)).Detail() data, err := user.NewInstance()(api.GetSession()(c).(*session.Enterprise)).Detail()
api.APIResponse(err, data)(c) api.APIResponse(err, data)(c)
} }
func (a *User) SettledCompany(c *gin.Context) { func (*User) BindMobile(c *gin.Context) {
form := &struct {
Mobile string `json:"mobile" form:"mobile" binding:"required"`
Captcha string `json:"captcha" form:"captcha" binding:"required"`
}{}
if err := api.Bind(form)(c); err != nil {
api.APIFailure(err.(error))(c)
return
}
err := user.NewInstance()(api.GetSession()(c).(*session.Enterprise)).BindMobile(form.Mobile, form.Captcha)
api.APIResponse(err)(c)
}
func (*User) SettledCompany(c *gin.Context) {
form := &struct { form := &struct {
userSettledForm userSettledForm
}{} }{}
@ -50,14 +63,14 @@ func (a *User) SettledCompany(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
err := user2.NewSettled()(api.GetSession()(c).(*service.SessionEnterprise)).Company(&user2.SettledParams{ err := user.NewSettled()(api.GetSession()(c).(*session.Enterprise)).Company(&user.SettledParams{
ID: form.Convert(), Image: form.FilterImageURL(), Name: form.Name, Code: form.Code, ID: form.Convert(), Image: form.FilterImageURL(), Name: form.Name, Code: form.Code,
Area: form.Area, Introduce: form.Introduce, Industry: form.Industry, Keywords: form.Keywords, Area: form.Area, Introduce: form.Introduce, Industry: form.Industry, Keywords: form.Keywords,
}, nil) }, nil)
api.APIResponse(err)(c) api.APIResponse(err)(c)
} }
func (a *User) SettledExpert(c *gin.Context) { func (*User) SettledExpert(c *gin.Context) {
form := &struct { form := &struct {
userSettledForm userSettledForm
config.IdentityForExpert config.IdentityForExpert
@ -66,14 +79,14 @@ func (a *User) SettledExpert(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
err := user2.NewSettled()(api.GetSession()(c).(*service.SessionEnterprise)).Expert(&user2.SettledParams{ err := user.NewSettled()(api.GetSession()(c).(*session.Enterprise)).Expert(&user.SettledParams{
ID: form.Convert(), Area: form.Area, Introduce: form.Introduce, Industry: form.Industry, ID: form.Convert(), Area: form.Area, Introduce: form.Introduce, Industry: form.Industry,
Keywords: form.Keywords, Keywords: form.Keywords,
}, &form.IdentityForExpert) }, &form.IdentityForExpert)
api.APIResponse(err)(c) api.APIResponse(err)(c)
} }
func (a *User) SettledResearch(c *gin.Context) { func (*User) SettledResearch(c *gin.Context) {
form := &struct { form := &struct {
userSettledForm userSettledForm
config.IdentityForResearch config.IdentityForResearch
@ -82,14 +95,14 @@ func (a *User) SettledResearch(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
err := user2.NewSettled()(api.GetSession()(c).(*service.SessionEnterprise)).Research(&user2.SettledParams{ err := user.NewSettled()(api.GetSession()(c).(*session.Enterprise)).Research(&user.SettledParams{
ID: form.Convert(), Image: form.FilterImageURL(), Name: form.Name, Code: form.Code, ID: form.Convert(), Image: form.FilterImageURL(), Name: form.Name, Code: form.Code,
Area: form.Area, Introduce: form.Introduce, Industry: form.Industry, Keywords: form.Keywords, Area: form.Area, Introduce: form.Introduce, Industry: form.Industry, Keywords: form.Keywords,
}, &form.IdentityForResearch) }, &form.IdentityForResearch)
api.APIResponse(err)(c) api.APIResponse(err)(c)
} }
func (a *User) SettledLaboratory(c *gin.Context) { func (*User) SettledLaboratory(c *gin.Context) {
form := &struct { form := &struct {
userSettledForm userSettledForm
config.IdentityForLaboratory config.IdentityForLaboratory
@ -98,14 +111,14 @@ func (a *User) SettledLaboratory(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
err := user2.NewSettled()(api.GetSession()(c).(*service.SessionEnterprise)).Laboratory(&user2.SettledParams{ err := user.NewSettled()(api.GetSession()(c).(*session.Enterprise)).Laboratory(&user.SettledParams{
ID: form.Convert(), Image: form.FilterImageURL(), Name: form.Name, Code: form.Code, ID: form.Convert(), Image: form.FilterImageURL(), Name: form.Name, Code: form.Code,
Area: form.Area, Introduce: form.Introduce, Industry: form.Industry, Keywords: form.Keywords, Area: form.Area, Introduce: form.Introduce, Industry: form.Industry, Keywords: form.Keywords,
}, &form.IdentityForLaboratory) }, &form.IdentityForLaboratory)
api.APIResponse(err)(c) api.APIResponse(err)(c)
} }
func (a *User) SwitchIdentity(c *gin.Context) { func (*User) SwitchIdentity(c *gin.Context) {
form := &struct { form := &struct {
Identity int `json:"identity" form:"identity" binding:"required"` Identity int `json:"identity" form:"identity" binding:"required"`
}{} }{}
@ -113,38 +126,35 @@ func (a *User) SwitchIdentity(c *gin.Context) {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
err := user2.NewInstance()(api.GetSession()(c).(*service.SessionEnterprise)).SwitchIdentity(form.Identity) err := user.NewInstance()(api.GetSession()(c).(*session.Enterprise)).SwitchIdentity(form.Identity)
api.APIResponse(err)(c) api.APIResponse(err)(c)
} }
func (a *User) Back(c *gin.Context) { func (*User) Back(c *gin.Context) {
data, err := user2.NewBank()(api.GetSession()(c).(*service.SessionEnterprise)).List() data, err := user.NewBank()(api.GetSession()(c).(*session.Enterprise)).List()
api.APIResponse(err, data) api.APIResponse(err, data)
} }
func (a *User) BackBind(c *gin.Context) { func (*User) BackBind(c *gin.Context) {
form := new(userBankForm) form := new(userBankForm)
if err := api.Bind(form)(c); err != nil { if err := api.Bind(form)(c); err != nil {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
err := user2.NewBank()(api.GetSession()(c).(*service.SessionEnterprise)).Bind(&user2.BankParams{ err := user.NewBank()(api.GetSession()(c).(*session.Enterprise)).Bind(&user.BankParams{
Name: form.Name, Name: form.Name, IDCard: form.IDCard, BankCard: form.BackCard, BankName: form.BackName,
IDCard: form.IDCard,
BankCard: form.BackCard,
BankName: form.BackName,
}, form.Captcha) }, form.Captcha)
api.APIResponse(err) api.APIResponse(err)
} }
func (a *User) BackUnbind(c *gin.Context) { func (*User) BackUnbind(c *gin.Context) {
form := new(api.IDStringForm) form := new(api.IDStringForm)
if err := api.Bind(form)(c); err != nil { if err := api.Bind(form)(c); err != nil {
api.APIFailure(err.(error))(c) api.APIFailure(err.(error))(c)
return return
} }
err := user2.NewBank()(api.GetSession()(c).(*service.SessionEnterprise)).Unbind(form.Convert()) err := user.NewBank()(api.GetSession()(c).(*session.Enterprise)).Unbind(form.Convert())
api.APIResponse(err) api.APIResponse(err)
} }

View File

@ -2,25 +2,26 @@ package account
import ( import (
"SciencesServer/app/service" "SciencesServer/app/service"
"SciencesServer/app/session"
"SciencesServer/config" "SciencesServer/config"
"SciencesServer/utils" "SciencesServer/utils"
) )
type Logout struct { type Logout struct {
*service.SessionEnterprise *session.Enterprise
} }
type LogoutHandle func(enterprise *service.SessionEnterprise) *Logout type LogoutHandle func(session *session.Enterprise) *Logout
func (c *Logout) Launch() error { func (c *Logout) Launch() error {
if c.SessionEnterprise != nil && c.UID > 0 { if c.Enterprise != nil && c.UID > 0 {
service.Publish(config.EventForRedisHashDestroy, config.RedisKeyForAccount, utils.UintToString(c.UID)) service.Publish(config.EventForRedisHashDestroy, config.RedisKeyForAccount, utils.UintToString(c.UID))
} }
return nil return nil
} }
func NewLogout() LogoutHandle { func NewLogout() LogoutHandle {
return func(enterprise *service.SessionEnterprise) *Logout { return func(session *session.Enterprise) *Logout {
return &Logout{enterprise} return &Logout{Enterprise: session}
} }
} }

View File

@ -1,33 +0,0 @@
package account
import (
"SciencesServer/app/handle"
"SciencesServer/utils"
"errors"
)
type Other struct{}
type OtherHandle func() *Other
// BindMobile 绑定手机号码
func (c *Other) BindMobile(token, mobile, captcha string) (interface{}, error) {
if !utils.ValidateMobile(mobile) {
return nil, errors.New("手机号码格式异常")
}
pass, err := handle.NewCaptcha().Validate(&handle.CaptchaSms{
Mobile: mobile, Captcha: captcha,
})
if err != nil {
return nil, err
} else if !pass {
return nil, errors.New("验证码错误或已过期")
}
return nil, nil
}
func NewOther() OtherHandle {
return func() *Other {
return &Other{}
}
}

View File

@ -5,16 +5,16 @@ import (
"SciencesServer/app/api/manage/controller" "SciencesServer/app/api/manage/controller"
"SciencesServer/app/basic/config" "SciencesServer/app/basic/config"
model2 "SciencesServer/app/common/model" model2 "SciencesServer/app/common/model"
"SciencesServer/app/service" "SciencesServer/app/session"
"strings" "strings"
) )
type Instance struct { type Instance struct {
*service.SessionEnterprise *session.Enterprise
local string local string
} }
type InstanceHandle func(enterprise *service.SessionEnterprise, local string) *Instance type InstanceHandle func(session *session.Enterprise, local string) *Instance
type ( type (
// InstanceForExpert 专家信息 // InstanceForExpert 专家信息
@ -64,10 +64,10 @@ func (c *Instance) Expert(name, mobile string, page, pageSize int) (*controller.
} }
func NewInstance() InstanceHandle { func NewInstance() InstanceHandle {
return func(enterprise *service.SessionEnterprise, local string) *Instance { return func(session *session.Enterprise, local string) *Instance {
return &Instance{ return &Instance{
SessionEnterprise: enterprise, Enterprise: session,
local: local, local: local,
} }
} }
} }

View File

@ -5,7 +5,7 @@ import (
"SciencesServer/app/api/manage/controller" "SciencesServer/app/api/manage/controller"
"SciencesServer/app/basic/config" "SciencesServer/app/basic/config"
model2 "SciencesServer/app/common/model" model2 "SciencesServer/app/common/model"
"SciencesServer/app/service" "SciencesServer/app/session"
"SciencesServer/utils" "SciencesServer/utils"
"errors" "errors"
"time" "time"
@ -13,11 +13,11 @@ import (
// Demand 技术需求管理 // Demand 技术需求管理
type Demand struct { type Demand struct {
*service.SessionEnterprise *session.Enterprise
local string local string
} }
type DemandHandle func(enterprise *service.SessionEnterprise, local string) *Demand type DemandHandle func(session *session.Enterprise, local string) *Demand
type ( type (
// DemandInfo 需求信息 // DemandInfo 需求信息
@ -182,7 +182,7 @@ func (c *Demand) Delete(id uint64) error {
} }
func NewDemand() DemandHandle { func NewDemand() DemandHandle {
return func(enterprise *service.SessionEnterprise, local string) *Demand { return func(session *session.Enterprise, local string) *Demand {
return &Demand{SessionEnterprise: enterprise, local: local} return &Demand{Enterprise: session, local: local}
} }
} }

View File

@ -4,16 +4,16 @@ import (
"SciencesServer/app/api/enterprise/model" "SciencesServer/app/api/enterprise/model"
"SciencesServer/app/api/manage/controller" "SciencesServer/app/api/manage/controller"
model2 "SciencesServer/app/common/model" model2 "SciencesServer/app/common/model"
"SciencesServer/app/service" "SciencesServer/app/session"
"errors" "errors"
) )
type Equipment struct { type Equipment struct {
*service.SessionEnterprise *session.Enterprise
local string local string
} }
type EquipmentHandle func(enterprise *service.SessionEnterprise, local string) *Equipment type EquipmentHandle func(session *session.Enterprise, local string) *Equipment
type EquipmentParams struct { type EquipmentParams struct {
ID uint64 ID uint64
@ -102,10 +102,10 @@ func (c *Equipment) Delete(id uint64) error {
} }
func NewEquipment() EquipmentHandle { func NewEquipment() EquipmentHandle {
return func(enterprise *service.SessionEnterprise, local string) *Equipment { return func(session *session.Enterprise, local string) *Equipment {
return &Equipment{ return &Equipment{
SessionEnterprise: enterprise, Enterprise: session,
local: local, local: local,
} }
} }
} }

View File

@ -4,18 +4,18 @@ import (
"SciencesServer/app/api/enterprise/model" "SciencesServer/app/api/enterprise/model"
"SciencesServer/app/api/manage/controller" "SciencesServer/app/api/manage/controller"
model2 "SciencesServer/app/common/model" model2 "SciencesServer/app/common/model"
"SciencesServer/app/service" "SciencesServer/app/session"
"errors" "errors"
"time" "time"
) )
// Instance 技术管理 // Instance 技术管理
type Instance struct { type Instance struct {
*service.SessionEnterprise *session.Enterprise
local string local string
} }
type InstanceHandle func(enterprise *service.SessionEnterprise, local string) *Instance type InstanceHandle func(session *session.Enterprise, local string) *Instance
type ( type (
// InstanceInfo 详细信息 // InstanceInfo 详细信息
@ -157,7 +157,7 @@ func (c *Instance) Delete(id uint64) error {
} }
func NewInstance() InstanceHandle { func NewInstance() InstanceHandle {
return func(enterprise *service.SessionEnterprise, local string) *Instance { return func(session *session.Enterprise, local string) *Instance {
return &Instance{SessionEnterprise: enterprise, local: local} return &Instance{Enterprise: session, local: local}
} }
} }

View File

@ -4,7 +4,7 @@ import (
"SciencesServer/app/api/enterprise/model" "SciencesServer/app/api/enterprise/model"
"SciencesServer/app/api/manage/controller" "SciencesServer/app/api/manage/controller"
model2 "SciencesServer/app/common/model" model2 "SciencesServer/app/common/model"
"SciencesServer/app/service" "SciencesServer/app/session"
"SciencesServer/utils" "SciencesServer/utils"
"errors" "errors"
"time" "time"
@ -12,11 +12,11 @@ import (
// Paper 论文管理 // Paper 论文管理
type Paper struct { type Paper struct {
*service.SessionEnterprise *session.Enterprise
local string local string
} }
type PaperHandle func(enterprise *service.SessionEnterprise, local string) *Paper type PaperHandle func(session *session.Enterprise, local string) *Paper
type ( type (
PaperInfo struct { PaperInfo struct {
@ -113,7 +113,7 @@ func (c *Paper) Delete(id uint64) error {
} }
func NewPaper() PaperHandle { func NewPaper() PaperHandle {
return func(enterprise *service.SessionEnterprise, local string) *Paper { return func(session *session.Enterprise, local string) *Paper {
return &Paper{SessionEnterprise: enterprise, local: local} return &Paper{Enterprise: session, local: local}
} }
} }

View File

@ -4,7 +4,7 @@ import (
"SciencesServer/app/api/enterprise/model" "SciencesServer/app/api/enterprise/model"
"SciencesServer/app/api/manage/controller" "SciencesServer/app/api/manage/controller"
model2 "SciencesServer/app/common/model" model2 "SciencesServer/app/common/model"
"SciencesServer/app/service" "SciencesServer/app/session"
"SciencesServer/utils" "SciencesServer/utils"
"errors" "errors"
"time" "time"
@ -12,11 +12,11 @@ import (
// Patent 专利管理 // Patent 专利管理
type Patent struct { type Patent struct {
*service.SessionEnterprise *session.Enterprise
local string local string
} }
type PatentHandle func(enterprise *service.SessionEnterprise, local string) *Patent type PatentHandle func(session *session.Enterprise, local string) *Patent
type ( type (
// PatentInfo 专利信息 // PatentInfo 专利信息
@ -148,7 +148,7 @@ func (c *Patent) Delete(id uint64) error {
} }
func NewPatent() PatentHandle { func NewPatent() PatentHandle {
return func(enterprise *service.SessionEnterprise, local string) *Patent { return func(session *session.Enterprise, local string) *Patent {
return &Patent{SessionEnterprise: enterprise, local: local} return &Patent{Enterprise: session, local: local}
} }
} }

View File

@ -4,18 +4,18 @@ import (
"SciencesServer/app/api/enterprise/model" "SciencesServer/app/api/enterprise/model"
"SciencesServer/app/api/manage/controller" "SciencesServer/app/api/manage/controller"
model2 "SciencesServer/app/common/model" model2 "SciencesServer/app/common/model"
"SciencesServer/app/service" "SciencesServer/app/session"
"SciencesServer/utils" "SciencesServer/utils"
"errors" "errors"
"time" "time"
) )
type Topic struct { type Topic struct {
*service.SessionEnterprise *session.Enterprise
local string local string
} }
type TopicHandle func(enterprise *service.SessionEnterprise, local string) *Topic type TopicHandle func(session *session.Enterprise, local string) *Topic
type ( type (
// TopicInfo 课题信息 // TopicInfo 课题信息
@ -146,10 +146,10 @@ func (c *Topic) Delete(id uint64) error {
} }
func NewTopic() TopicHandle { func NewTopic() TopicHandle {
return func(enterprise *service.SessionEnterprise, local string) *Topic { return func(session *session.Enterprise, local string) *Topic {
return &Topic{ return &Topic{
SessionEnterprise: enterprise, Enterprise: session,
local: local, local: local,
} }
} }
} }

View File

@ -4,16 +4,16 @@ import (
"SciencesServer/app/api/enterprise/model" "SciencesServer/app/api/enterprise/model"
model2 "SciencesServer/app/common/model" model2 "SciencesServer/app/common/model"
"SciencesServer/app/handle" "SciencesServer/app/handle"
"SciencesServer/app/service" "SciencesServer/app/session"
"SciencesServer/utils" "SciencesServer/utils"
"errors" "errors"
) )
type Bank struct { type Bank struct {
*service.SessionEnterprise *session.Enterprise
} }
type BankHandle func(enterprise *service.SessionEnterprise) *Bank type BankHandle func(session *session.Enterprise) *Bank
type ( type (
// BankInfo 银行卡信息 // BankInfo 银行卡信息
@ -116,7 +116,7 @@ func (c *Bank) Unbind(id uint64) error {
} }
func NewBank() BankHandle { func NewBank() BankHandle {
return func(enterprise *service.SessionEnterprise) *Bank { return func(session *session.Enterprise) *Bank {
return &Bank{enterprise} return &Bank{Enterprise: session}
} }
} }

View File

@ -4,17 +4,20 @@ import (
"SciencesServer/app/api/enterprise/model" "SciencesServer/app/api/enterprise/model"
"SciencesServer/app/basic/config" "SciencesServer/app/basic/config"
model2 "SciencesServer/app/common/model" model2 "SciencesServer/app/common/model"
"SciencesServer/app/handle"
"SciencesServer/app/service" "SciencesServer/app/service"
"SciencesServer/app/session"
config2 "SciencesServer/config" config2 "SciencesServer/config"
"SciencesServer/serve/orm" "SciencesServer/serve/orm"
"SciencesServer/utils"
"errors" "errors"
"gorm.io/gorm" "gorm.io/gorm"
"time" "time"
) )
type Instance struct{ *service.SessionEnterprise } type Instance struct{ *session.Enterprise }
type InstanceHandle func(enterprise *service.SessionEnterprise) *Instance type InstanceHandle func(session *session.Enterprise) *Instance
type ( type (
// InstanceInfo 基本信息 // InstanceInfo 基本信息
@ -58,6 +61,36 @@ func (c *Instance) Detail() (*InstanceDetailInfo, error) {
return resp, nil return resp, nil
} }
// BindMobile 绑定手机号码
func (c *Instance) BindMobile(mobile, captcha string) error {
if !utils.ValidateMobile(mobile) {
return errors.New("操作错误,手机号码格式异常")
}
// 查询用户手机号码是否绑定
mUserInstance := model.NewUserInstance()
if _, err := model2.FirstField(mUserInstance.UserInstance, []string{"id", "uuid", "mobile"}, model2.NewWhere("uuid", c.UID)); err != nil {
return err
}
if mUserInstance.Mobile == mobile {
return nil
}
pass, err := handle.NewCaptcha().Validate(&handle.CaptchaSms{
Mobile: mobile, Captcha: captcha,
})
if err != nil {
return err
} else if !pass {
return errors.New("操作错误,验证码错误或已过期")
}
if err := model2.Updates(mUserInstance.UserInstance, map[string]interface{}{
"mobile": mobile, "updated_at": time.Now(),
}); err != nil {
return err
}
return nil
}
// SwitchIdentity 切换身份 // SwitchIdentity 切换身份
func (c *Instance) SwitchIdentity(identity int) error { func (c *Instance) SwitchIdentity(identity int) error {
if _, has := config.TenantUserIdentityData[identity]; !has { if _, has := config.TenantUserIdentityData[identity]; !has {
@ -96,12 +129,12 @@ func (c *Instance) SwitchIdentity(identity int) error {
c.ManageUID = mUserManage.UUID c.ManageUID = mUserManage.UUID
} }
c.SelectIdentity = identity c.SelectIdentity = identity
service.Publish(config2.EventForAccountLoginProduce, config2.RedisKeyForAccount, c.UIDToString(), c.SessionEnterprise) service.Publish(config2.EventForAccountLoginProduce, config2.RedisKeyForAccount, c.UIDToString(), c.Enterprise)
return nil return nil
} }
func NewInstance() InstanceHandle { func NewInstance() InstanceHandle {
return func(enterprise *service.SessionEnterprise) *Instance { return func(session *session.Enterprise) *Instance {
return &Instance{SessionEnterprise: enterprise} return &Instance{Enterprise: session}
} }
} }

View File

@ -4,15 +4,15 @@ import (
model3 "SciencesServer/app/api/enterprise/model" model3 "SciencesServer/app/api/enterprise/model"
"SciencesServer/app/basic/config" "SciencesServer/app/basic/config"
model2 "SciencesServer/app/common/model" model2 "SciencesServer/app/common/model"
"SciencesServer/app/service" "SciencesServer/app/session"
"SciencesServer/utils" "SciencesServer/utils"
"errors" "errors"
) )
// Settled 入驻 // Settled 入驻
type Settled struct{ *service.SessionEnterprise } type Settled struct{ *session.Enterprise }
type SettledHandle func(enterprise *service.SessionEnterprise) *Settled type SettledHandle func(session *session.Enterprise) *Settled
type SettledParams struct { type SettledParams struct {
ID uint64 ID uint64
@ -185,7 +185,7 @@ func (c *Settled) Agent() {
} }
func NewSettled() SettledHandle { func NewSettled() SettledHandle {
return func(enterprise *service.SessionEnterprise) *Settled { return func(session *session.Enterprise) *Settled {
return &Settled{enterprise} return &Settled{Enterprise: session}
} }
} }

View File

@ -3,6 +3,7 @@ package api
import ( import (
"SciencesServer/app/api/manage/controller" "SciencesServer/app/api/manage/controller"
"SciencesServer/app/service" "SciencesServer/app/service"
session "SciencesServer/app/session"
"SciencesServer/config" "SciencesServer/config"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
@ -81,8 +82,10 @@ func (a *Account) Logout(c *gin.Context) {
// 因跳过中间键故只能自己去获取token用户信息 // 因跳过中间键故只能自己去获取token用户信息
token := c.GetHeader(config.APIRequestToken) token := c.GetHeader(config.APIRequestToken)
session, _ := service.NewAuthToken(token).Auth() _session := session.NewManage()
err := controller.NewAccount()(session).Logout() _ = service.NewAuthToken(token).Auth(_session)
err := controller.NewAccount()(_session).Logout()
APIResponse(err)(c) APIResponse(err)(c)
} }

View File

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

View File

@ -11,7 +11,7 @@ import (
type Platform struct{ *service.Session } type Platform struct{ *service.Session }
func (c *Platform) Format() string { func (c *Platform) Format() string {
return c.TenantKey return ""
} }
// ReturnPages 分页数据 // ReturnPages 分页数据

View File

@ -4,8 +4,6 @@ import (
"SciencesServer/app/api/manage/controller" "SciencesServer/app/api/manage/controller"
model3 "SciencesServer/app/api/manage/model" model3 "SciencesServer/app/api/manage/model"
model2 "SciencesServer/app/common/model" model2 "SciencesServer/app/common/model"
"SciencesServer/serve/logger"
"SciencesServer/app/service" "SciencesServer/app/service"
"SciencesServer/serve/orm" "SciencesServer/serve/orm"
"SciencesServer/utils" "SciencesServer/utils"
@ -59,16 +57,16 @@ func (c *Role) Bind(uid uint64, roleIDs []uint64) error {
return err return err
} }
go utils.TryCatch(func() { go utils.TryCatch(func() {
permission := service.NewPermission(obj)(c.TenantKey, utils.UintToString(uid)) //permission := service.NewPermission(obj)(c.TenantKey, utils.UintToString(uid))
//
if _, err = permission.DeleteRolesForUser(false); err != nil { //if _, err = permission.DeleteRolesForUser(false); err != nil {
logger.ErrorF("删除用户【%d】角色权限错误%v", uid, err) // logger.ErrorF("删除用户【%d】角色权限错误%v", uid, err)
return // return
} //}
if _, err = permission.AddRoleForUser(); err != nil { //if _, err = permission.AddRoleForUser(); err != nil {
logger.ErrorF("添加用户【%d】角色权限错误%v", uid, err) // logger.ErrorF("添加用户【%d】角色权限错误%v", uid, err)
return // return
} //}
}) })
return nil return nil
}) })

9
app/logic/isession.go Normal file
View File

@ -0,0 +1,9 @@
package logic
type ISession interface {
SetToken(key string)
GetToken() string
MarshalBinary() ([]byte, error)
UnmarshalBinary(data []byte) error
}

View File

@ -1,9 +1,11 @@
package service package service
import ( import (
"SciencesServer/app/logic"
"SciencesServer/config" "SciencesServer/config"
cache2 "SciencesServer/serve/cache" cache2 "SciencesServer/serve/cache"
"SciencesServer/utils" "SciencesServer/utils"
"encoding/json"
"errors" "errors"
"fmt" "fmt"
"time" "time"
@ -13,31 +15,32 @@ type AuthToken struct {
Token string `json:"token"` Token string `json:"token"`
} }
func (this *AuthToken) Auth() (*Session, error) { func (this *AuthToken) Auth(session logic.ISession) error {
tokenInfo := utils.JWTDecrypt(this.Token) tokenInfo := utils.JWTDecrypt(this.Token)
if tokenInfo == nil || len(tokenInfo) <= 0 { if tokenInfo == nil || len(tokenInfo) <= 0 {
return nil, errors.New("Token无效") return errors.New("登陆错误,Token无效")
} }
expTimestamp := utils.StringToInt64(fmt.Sprintf("%v", tokenInfo["exp"])) expTimestamp := utils.StringToInt64(fmt.Sprintf("%v", tokenInfo["exp"]))
expTime := time.Unix(expTimestamp, 0) expTime := time.Unix(expTimestamp, 0)
ok := expTime.After(time.Now()) ok := expTime.After(time.Now())
if !ok { if !ok {
return nil, errors.New("Token过期") return errors.New("登陆错误,Token过期")
} }
cache, _ := cache2.Cache.HGet(config.RedisKeyForAccount, fmt.Sprintf("%v", tokenInfo[config.TokenForUID])) cache, _ := cache2.Cache.HGet(config.RedisKeyForAccount, fmt.Sprintf("%v", tokenInfo[config.TokenForUID]))
if cache == "" { if cache == "" {
return nil, errors.New("用户未登录或已退出") return errors.New("登陆错误,用户未登录或已退出")
} }
session := new(Session)
_ = session.UnmarshalBinary([]byte(cache))
if !config.SettingInfo.MultipleLogin && session.Token != this.Token { if err := json.Unmarshal([]byte(cache), session); err != nil {
return nil, errors.New("登录失效,已在其他地方登录!") return err
} }
return session, nil if !config.SettingInfo.MultipleLogin && session.GetToken() != this.Token {
return errors.New("登陆错误,已在其他地方登录!")
}
return nil
} }
func NewAuthToken(token string) *AuthToken { func NewAuthToken(token string) *AuthToken {

View File

@ -6,13 +6,12 @@ import (
) )
type Session struct { type Session struct {
UID uint64 `json:"uid"` // 唯一标识ID Token string `json:"token"` // token
Token string `json:"token"` // token UID uint64 `json:"uid"` // 唯一标识ID
Name string `json:"name"` // 名称 TenantID uint64 `json:"tenant_id"` // 租户ID
Mobile string `json:"mobile"` // 手机号码 Name string `json:"name"` // 名称
IsAdmin bool `json:"is_admin"` // 是否超管 Mobile string `json:"mobile"` // 手机号码
TenantID uint64 `json:"tenant_id"` // 租户ID IsAdmin bool `json:"is_admin"` // 是否超管
TenantKey string `json:"tenant_key"` // 租户标识,用来区别分库管理
} }
func (this *Session) MarshalBinary() ([]byte, error) { func (this *Session) MarshalBinary() ([]byte, error) {

42
app/session/enterprise.go Normal file
View File

@ -0,0 +1,42 @@
package session
import (
"SciencesServer/utils"
"encoding/json"
)
// Enterprise 企业用户
type Enterprise struct {
Token string `json:"token"` // token
UID uint64 `json:"uid"` // 唯一标识ID
TenantID uint64 `json:"tenant_id"` // 租户ID
ManageUID uint64 `json:"manage_uid"` // 管理平台用户唯一ID
Name string `json:"name"` // 名称
Mobile string `json:"mobile"` // 手机号码
Identity int `json:"identity"` // 总身份信息
SelectIdentity int `json:"select_identity"` // 选中身份信息
}
func (this *Enterprise) SetToken(token string) {
this.Token = token
}
func (this *Enterprise) GetToken() string {
return this.GetToken()
}
func (this *Enterprise) UIDToString() string {
return utils.UintToString(this.UID)
}
func (this *Enterprise) MarshalBinary() ([]byte, error) {
return json.Marshal(this)
}
func (this *Enterprise) UnmarshalBinary(data []byte) error {
return utils.FromJSONBytes(data, this)
}
func NewEnterprise() *Enterprise {
return &Enterprise{}
}

36
app/session/manage.go Normal file
View File

@ -0,0 +1,36 @@
package session
import (
"SciencesServer/utils"
"encoding/json"
)
type Manage struct {
UID uint64 `json:"uid"` // 唯一标识ID
Token string `json:"token"` // token
Name string `json:"name"` // 名称
Mobile string `json:"mobile"` // 手机号码
IsAdmin bool `json:"is_admin"` // 是否超管
TenantID uint64 `json:"tenant_id"` // 租户ID
TenantKey string `json:"tenant_key"` // 租户标识,用来区别分库管理
}
func (this *Manage) SetToken(token string) {
this.Token = token
}
func (this *Manage) GetToken() string {
return this.GetToken()
}
func (this *Manage) MarshalBinary() ([]byte, error) {
return json.Marshal(this)
}
func (this *Manage) UnmarshalBinary(data []byte) error {
return utils.FromJSONBytes(data, this)
}
func NewManage() *Manage {
return &Manage{}
}