Files
2021-11-30 16:09:04 +08:00

103 lines
2.8 KiB
Go

package api
import (
"SciencesServer/app/api/enterprise/controller/manage"
"SciencesServer/app/basic/api"
"SciencesServer/app/session"
"github.com/gin-gonic/gin"
)
type Manage struct{}
type (
// enterpriseForm 企业信息
enterpriseForm struct {
Mode int `json:"mode" form:"mode" binding:"required"`
Title string `json:"title" form:"title" binding:"required"`
Name string `json:"name" form:"name"`
Mobile string `json:"mobile" form:"mobile"`
Content string `json:"content" form:"content"`
Papers []string `json:"papers" form:"papers"`
Patents []string `json:"patents" form:"patents"`
}
)
func (a *enterpriseForm) paperInfo() []uint64 {
out := make([]uint64, 0)
obj := new(api.IDStringForm)
for _, v := range a.Papers {
obj.ID = v
out = append(out, obj.Convert())
}
return out
}
func (a *enterpriseForm) PatentInfo() []uint64 {
out := make([]uint64, 0)
obj := new(api.IDStringForm)
for _, v := range a.Patents {
obj.ID = v
out = append(out, obj.Convert())
}
return out
}
func (*Manage) Enterprise(c *gin.Context) {
form := &struct {
Mode int `json:"mode" form:"mode" binding:"required"`
Title string `json:"title" form:"title"`
api.PageForm
}{}
if err := api.Bind(form)(c); err != nil {
api.APIFailure(err.(error))(c)
return
}
data, err := manage.NewEnterprise()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
List(form.Mode, form.Title, form.Page, form.PageSize)
api.APIResponse(err, data)(c)
}
func (*Manage) EnterpriseAdd(c *gin.Context) {
form := new(enterpriseForm)
if err := api.Bind(form)(c); err != nil {
api.APIFailure(err.(error))(c)
return
}
err := manage.NewEnterprise()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
Form(&manage.EnterpriseParams{Mode: form.Mode, Title: form.Title, Name: form.Name, Mobile: form.Mobile,
Papers: form.paperInfo(), Patents: form.PatentInfo(), Content: form.Content,
})
api.APIResponse(err)(c)
}
func (*Manage) EnterpriseEdit(c *gin.Context) {
form := &struct {
api.IDStringForm
enterpriseForm
}{}
if err := api.Bind(form)(c); err != nil {
api.APIFailure(err.(error))(c)
return
}
err := manage.NewEnterprise()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
Form(&manage.EnterpriseParams{ID: form.Convert(), Mode: form.Mode, Title: form.Title, Name: form.Name,
Mobile: form.Mobile, Papers: form.paperInfo(), Patents: form.PatentInfo(), Content: form.Content,
})
api.APIResponse(err)(c)
}
func (*Manage) EnterpriseDelete(c *gin.Context) {
form := new(api.IDStringForm)
if err := api.Bind(form)(c); err != nil {
api.APIFailure(err.(error))(c)
return
}
err := manage.NewEnterprise()(api.GetSession()(c).(*session.Enterprise), api.GetLocal()(c).(string)).
Delete(form.Convert())
api.APIResponse(err)(c)
}