feat:完善项目信息
This commit is contained in:
@ -45,6 +45,7 @@ func (*Activity) Form(c *gin.Context) {
|
|||||||
api.TenantIDStringForm
|
api.TenantIDStringForm
|
||||||
api.ImageForm
|
api.ImageForm
|
||||||
Title string `json:"title" form:"title" binding:"required"`
|
Title string `json:"title" form:"title" binding:"required"`
|
||||||
|
Description string `json:"description" form:"description" binding:"required"`
|
||||||
Content string `json:"content" form:"content" binding:"required"`
|
Content string `json:"content" form:"content" binding:"required"`
|
||||||
Contact string `json:"contact" form:"contact" binding:"required"`
|
Contact string `json:"contact" form:"contact" binding:"required"`
|
||||||
ContactMobile string `json:"contact_mobile" form:"contact_mobile"`
|
ContactMobile string `json:"contact_mobile" form:"contact_mobile"`
|
||||||
@ -67,7 +68,7 @@ func (*Activity) Form(c *gin.Context) {
|
|||||||
err := activity.NewInstance()(api.GetSession()(c).(*session.Admin)).Form(&activity.InstanceParams{
|
err := activity.NewInstance()(api.GetSession()(c).(*session.Admin)).Form(&activity.InstanceParams{
|
||||||
ID: form.IDStringForm.Convert(), ApplyID: (&api.IDStringForm{ID: form.ApplyID}).Convert(),
|
ID: form.IDStringForm.Convert(), ApplyID: (&api.IDStringForm{ID: form.ApplyID}).Convert(),
|
||||||
TenantID: form.TenantIDStringForm.Convert(), Title: form.Title, Contact: form.Contact, ContactMobile: form.ContactMobile,
|
TenantID: form.TenantIDStringForm.Convert(), Title: form.Title, Contact: form.Contact, ContactMobile: form.ContactMobile,
|
||||||
Image: form.FilterImageURL(), Content: form.Content, BeginAt: form.BeginAt, FinishAt: form.FinishAt,
|
Image: form.FilterImageURL(), Description: form.Description, Content: form.Content, BeginAt: form.BeginAt, FinishAt: form.FinishAt,
|
||||||
JoinDeadline: form.JoinDeadline, Area: form.Area, Industrys: form.Industrys, Amount: form.Amount,
|
JoinDeadline: form.JoinDeadline, Area: form.Area, Industrys: form.Industrys, Amount: form.Amount,
|
||||||
MaxNumber: form.MaxNumber, NotifyCrowd: form.NotifyCrowd, IsHome: form.IsHome, Sort: form.Sort, Status: form.Status,
|
MaxNumber: form.MaxNumber, NotifyCrowd: form.NotifyCrowd, IsHome: form.IsHome, Sort: form.Sort, Status: form.Status,
|
||||||
})
|
})
|
||||||
|
@ -25,7 +25,31 @@ func (a *manageExamineForm) handle(session *session.Admin, params map[string]int
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (*Manage) Company(c *gin.Context) {
|
func (*Manage) Company(c *gin.Context) {
|
||||||
|
form := &struct {
|
||||||
|
api.TenantIDStringForm
|
||||||
|
Name string `json:"name" form:"name"`
|
||||||
|
ExamineStatus int `json:"examine_status" form:"examine_status"`
|
||||||
|
api.PageForm
|
||||||
|
}{}
|
||||||
|
if err := api.Bind(form)(c); err != nil {
|
||||||
|
api.APIFailure(err.(error))(c)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
data, err := manage.NewInstance()(api.GetSession()(c).(*session.Admin), api.GetTenantID()(c).(uint64)).
|
||||||
|
Company(form.Convert(), form.Name, form.ExamineStatus, form.Page, form.PageSize)
|
||||||
|
api.APIResponse(err, data)(c)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*Manage) CompanyDetail(c *gin.Context) {
|
||||||
|
form := new(api.IDStringForm)
|
||||||
|
|
||||||
|
if err := api.Bind(form)(c); err != nil {
|
||||||
|
api.APIFailure(err.(error))(c)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
data, err := manage.NewInstance()(api.GetSession()(c).(*session.Admin), api.GetTenantID()(c).(uint64)).
|
||||||
|
CompanyDetail(form.Convert())
|
||||||
|
api.APIResponse(err, data)(c)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*Manage) CompanyExamine(c *gin.Context) {
|
func (*Manage) CompanyExamine(c *gin.Context) {
|
||||||
@ -38,16 +62,15 @@ func (*Manage) CompanyExamine(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
form.Identity = config.TenantUserIdentityForCompany
|
form.Identity = config.TenantUserIdentityForCompany
|
||||||
err := form.handle(api.GetSession()(c).(*session.Admin), map[string]interface{}{
|
err := form.handle(api.GetSession()(c).(*session.Admin), map[string]interface{}{"kind": form.Kind})
|
||||||
"kind": form.Kind,
|
api.APIResponse(err)(c)
|
||||||
})
|
|
||||||
api.APIResponse(err)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*Manage) Expert(c *gin.Context) {
|
func (*Manage) Expert(c *gin.Context) {
|
||||||
form := &struct {
|
form := &struct {
|
||||||
|
api.TenantIDStringForm
|
||||||
Name string `json:"name" form:"name"`
|
Name string `json:"name" form:"name"`
|
||||||
Status int `json:"status" form:"status"`
|
ExamineStatus int `json:"examine_status" form:"examine_status"`
|
||||||
api.PageForm
|
api.PageForm
|
||||||
}{}
|
}{}
|
||||||
if err := api.Bind(form)(c); err != nil {
|
if err := api.Bind(form)(c); err != nil {
|
||||||
@ -55,8 +78,20 @@ func (*Manage) Expert(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
data, err := manage.NewInstance()(api.GetSession()(c).(*session.Admin), api.GetTenantID()(c).(uint64)).
|
data, err := manage.NewInstance()(api.GetSession()(c).(*session.Admin), api.GetTenantID()(c).(uint64)).
|
||||||
Expert(form.Name, form.Status, form.Page, form.PageSize)
|
Expert(form.Convert(), form.Name, form.ExamineStatus, form.Page, form.PageSize)
|
||||||
api.APIResponse(err, data)
|
api.APIResponse(err, data)(c)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*Manage) ExpertDetail(c *gin.Context) {
|
||||||
|
form := new(api.IDStringForm)
|
||||||
|
|
||||||
|
if err := api.Bind(form)(c); err != nil {
|
||||||
|
api.APIFailure(err.(error))(c)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
data, err := manage.NewInstance()(api.GetSession()(c).(*session.Admin), api.GetTenantID()(c).(uint64)).
|
||||||
|
ExpertDetail(form.Convert())
|
||||||
|
api.APIResponse(err, data)(c)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*Manage) ExpertExamine(c *gin.Context) {
|
func (*Manage) ExpertExamine(c *gin.Context) {
|
||||||
@ -68,7 +103,7 @@ func (*Manage) ExpertExamine(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
form.Identity = config.TenantUserIdentityForExpert
|
form.Identity = config.TenantUserIdentityForExpert
|
||||||
err := form.handle(api.GetSession()(c).(*session.Admin), nil)
|
err := form.handle(api.GetSession()(c).(*session.Admin), nil)
|
||||||
api.APIResponse(err)
|
api.APIResponse(err)(c)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*Manage) Laboratory(c *gin.Context) {
|
func (*Manage) Laboratory(c *gin.Context) {
|
||||||
@ -84,7 +119,7 @@ func (*Manage) LaboratoryExamine(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
form.Identity = config.TenantUserIdentityForLaboratory
|
form.Identity = config.TenantUserIdentityForLaboratory
|
||||||
err := form.handle(api.GetSession()(c).(*session.Admin), nil)
|
err := form.handle(api.GetSession()(c).(*session.Admin), nil)
|
||||||
api.APIResponse(err)
|
api.APIResponse(err)(c)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*Manage) Research(c *gin.Context) {
|
func (*Manage) Research(c *gin.Context) {
|
||||||
@ -100,7 +135,7 @@ func (*Manage) ResearchExamine(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
form.Identity = config.TenantUserIdentityForResearch
|
form.Identity = config.TenantUserIdentityForResearch
|
||||||
err := form.handle(api.GetSession()(c).(*session.Admin), nil)
|
err := form.handle(api.GetSession()(c).(*session.Admin), nil)
|
||||||
api.APIResponse(err)
|
api.APIResponse(err)(c)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*Manage) Agent(c *gin.Context) {
|
func (*Manage) Agent(c *gin.Context) {
|
||||||
@ -116,5 +151,5 @@ func (*Manage) AgentExamine(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
form.Identity = config.TenantUserIdentityForAgent
|
form.Identity = config.TenantUserIdentityForAgent
|
||||||
err := form.handle(api.GetSession()(c).(*session.Admin), nil)
|
err := form.handle(api.GetSession()(c).(*session.Admin), nil)
|
||||||
api.APIResponse(err)
|
api.APIResponse(err)(c)
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ type (
|
|||||||
// InstanceParams 活动参数信息
|
// InstanceParams 活动参数信息
|
||||||
InstanceParams struct {
|
InstanceParams struct {
|
||||||
ID, ApplyID, TenantID uint64
|
ID, ApplyID, TenantID uint64
|
||||||
Title, Contact, ContactMobile, Image, Content string
|
Title, Contact, ContactMobile, Image, Description, Content string
|
||||||
BeginAt, FinishAt, JoinDeadline string
|
BeginAt, FinishAt, JoinDeadline string
|
||||||
config.Area
|
config.Area
|
||||||
Industrys []string
|
Industrys []string
|
||||||
@ -157,6 +157,7 @@ func (c *Instance) Form(params *InstanceParams) error {
|
|||||||
mActivityInstance.NotifyCrowd = params.NotifyCrowd
|
mActivityInstance.NotifyCrowd = params.NotifyCrowd
|
||||||
mActivityInstance.IsHome = params.IsHome
|
mActivityInstance.IsHome = params.IsHome
|
||||||
mActivityInstance.Sort = params.Sort
|
mActivityInstance.Sort = params.Sort
|
||||||
|
mActivityInstance.Description = params.Description
|
||||||
mActivityInstance.Content = params.Content
|
mActivityInstance.Content = params.Content
|
||||||
mActivityInstance.Status = model2.ActivityInstanceStatus(params.Status)
|
mActivityInstance.Status = model2.ActivityInstanceStatus(params.Status)
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ import (
|
|||||||
"SciencesServer/app/basic/controller"
|
"SciencesServer/app/basic/controller"
|
||||||
model2 "SciencesServer/app/common/model"
|
model2 "SciencesServer/app/common/model"
|
||||||
"SciencesServer/app/session"
|
"SciencesServer/app/session"
|
||||||
|
"errors"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
@ -20,40 +21,120 @@ type Instance struct {
|
|||||||
type InstanceHandle func(session *session.Admin, tenantID uint64) *Instance
|
type InstanceHandle func(session *session.Admin, tenantID uint64) *Instance
|
||||||
|
|
||||||
type (
|
type (
|
||||||
|
// InstanceForCompany 公司企业信息
|
||||||
|
InstanceForCompany struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
*model.ManageCompanyInfo
|
||||||
|
Industrys []string `json:"industrys"`
|
||||||
|
Area string `json:"area"`
|
||||||
|
}
|
||||||
|
// InstanceForCompanyDetail 公司企业详细信息
|
||||||
|
InstanceForCompanyDetail struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
*model2.ManageCompany
|
||||||
|
Industrys []string `json:"industrys"`
|
||||||
|
Keywords []string `json:"keywords"`
|
||||||
|
Directions []string `json:"directions"`
|
||||||
|
Area string `json:"area"`
|
||||||
|
}
|
||||||
// InstanceForExpert 专家信息
|
// InstanceForExpert 专家信息
|
||||||
InstanceForExpert struct {
|
InstanceForExpert struct {
|
||||||
ID string `json:"id"`
|
ID string `json:"id"`
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Industry []string `json:"industry"`
|
Industrys []string `json:"industrys"`
|
||||||
ResearchName string `json:"research_name"`
|
ResearchName string `json:"research_name"`
|
||||||
LaboratoryName string `json:"laboratory_name"`
|
LaboratoryName string `json:"laboratory_name"`
|
||||||
Address string `json:"address"`
|
Address string `json:"address"`
|
||||||
|
ExamineStatus model2.ExamineStatusKind `json:"examine_status"`
|
||||||
CreatedAt time.Time `json:"created_at"`
|
CreatedAt time.Time `json:"created_at"`
|
||||||
|
Area string `json:"area"`
|
||||||
|
}
|
||||||
|
// InstanceForExpertDetail 专家详细信息
|
||||||
|
InstanceForExpertDetail struct {
|
||||||
|
ID string `json:"id"`
|
||||||
|
*model2.ManageExpert
|
||||||
|
Industrys []string `json:"industrys"`
|
||||||
|
Keywords []string `json:"keywords"`
|
||||||
|
Researchs []string `json:"researchs"`
|
||||||
|
Area string `json:"area"`
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
func (c *Instance) Company(name string, status int, page, pageSize int) {
|
// Company 公司企业信息
|
||||||
|
func (c *Instance) Company(tenantID uint64, name string, status int, page, pageSize int) (*controller.ReturnPages, error) {
|
||||||
mManageCompany := model.NewManageCompany()
|
mManageCompany := model.NewManageCompany()
|
||||||
|
|
||||||
where := make([]*model2.ModelWhere, 0)
|
where := make([]*model2.ModelWhere, 0)
|
||||||
|
|
||||||
if name != "" {
|
if c.TenantID > 0 {
|
||||||
where = append(where, model2.NewWhereLike("name", name))
|
where = append(where, model2.NewWhere("c.tenant_id", c.TenantID))
|
||||||
|
}
|
||||||
|
if tenantID > 0 {
|
||||||
|
where = append(where, model2.NewWhere("c.tenant_id", tenantID))
|
||||||
|
}
|
||||||
|
if name != "" {
|
||||||
|
where = append(where, model2.NewWhereLike("c.name", name))
|
||||||
|
}
|
||||||
|
if status > 0 {
|
||||||
|
where = append(where, model2.NewWhere("c.examine_status", status))
|
||||||
}
|
}
|
||||||
|
|
||||||
var count int64
|
var count int64
|
||||||
|
|
||||||
mManageCompany.Companys(page, pageSize, &count)
|
out, err := mManageCompany.Companys(page, pageSize, &count)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
list := make([]*InstanceForCompany, 0)
|
||||||
|
|
||||||
|
for _, v := range out {
|
||||||
|
mManageCompany.Industry = v.Industry
|
||||||
|
|
||||||
|
list = append(list, &InstanceForCompany{
|
||||||
|
ID: v.GetEncodeID(), ManageCompanyInfo: v, Industrys: mManageCompany.GetIndustryAttribute(), Area: v.FormatBasic(),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return &controller.ReturnPages{Data: list, Count: count}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// CompanyDetail 公司企业详细信息
|
||||||
|
func (c *Instance) CompanyDetail(id uint64) (*InstanceForCompanyDetail, error) {
|
||||||
|
mManageCompany := model.NewManageCompany()
|
||||||
|
|
||||||
|
out, err := mManageCompany.Company(id)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
} else if out.ManageCompany == nil {
|
||||||
|
return nil, errors.New("操作错误,公司企业信息不存在或已被删除")
|
||||||
|
}
|
||||||
|
return &InstanceForCompanyDetail{
|
||||||
|
ID: out.GetEncodeID(),
|
||||||
|
ManageCompany: out.ManageCompany,
|
||||||
|
Industrys: out.GetIndustryAttribute(),
|
||||||
|
Keywords: out.GetKeywordAttribute(),
|
||||||
|
Area: out.FormatBasic(),
|
||||||
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Expert 专家信息
|
// Expert 专家信息
|
||||||
func (c *Instance) Expert(name string, status int, page, pageSize int) (*controller.ReturnPages, error) {
|
func (c *Instance) Expert(tenantID uint64, name string, examineStatus int, page, pageSize int) (*controller.ReturnPages, error) {
|
||||||
mManageExpert := model.NewManageExpert()
|
mManageExpert := model.NewManageExpert()
|
||||||
|
|
||||||
where := make([]*model2.ModelWhere, 0)
|
where := make([]*model2.ModelWhere, 0)
|
||||||
|
|
||||||
|
if c.TenantID > 0 {
|
||||||
|
where = append(where, model2.NewWhere("e.tenant_id", c.TenantID))
|
||||||
|
}
|
||||||
|
if tenantID > 0 {
|
||||||
|
where = append(where, model2.NewWhere("e.tenant_id", tenantID))
|
||||||
|
}
|
||||||
if name != "" {
|
if name != "" {
|
||||||
where = append(where, model2.NewWhereLike("name", name))
|
where = append(where, model2.NewWhereLike("e.name", name))
|
||||||
|
}
|
||||||
|
if examineStatus > 0 {
|
||||||
|
where = append(where, model2.NewWhere("e.examine_status", examineStatus))
|
||||||
}
|
}
|
||||||
var count int64
|
var count int64
|
||||||
|
|
||||||
@ -65,27 +146,41 @@ func (c *Instance) Expert(name string, status int, page, pageSize int) (*control
|
|||||||
list := make([]*InstanceForExpert, 0)
|
list := make([]*InstanceForExpert, 0)
|
||||||
|
|
||||||
for _, v := range out {
|
for _, v := range out {
|
||||||
industry := make([]string, 0)
|
_industrys := make([]string, 0)
|
||||||
|
|
||||||
for _, v := range strings.Split(v.Industry, ";") {
|
for _, v := range strings.Split(v.Industry, ";") {
|
||||||
industry = append(industry, config.GetIndustryInfo(v, "-", "/"))
|
_industrys = append(_industrys, config.GetIndustryInfo(v, "-", "/"))
|
||||||
}
|
}
|
||||||
// 研究机构,实验室
|
// 研究机构,实验室
|
||||||
researchName := v.LaboratoryName
|
list = append(list, &InstanceForExpert{ID: v.GetEncodeID(), Name: v.Name, Industrys: _industrys,
|
||||||
laboratoryName := ""
|
ResearchName: v.ResearchName, LaboratoryName: v.LaboratoryName, ExamineStatus: v.ExamineStatus,
|
||||||
|
Address: v.FormatBasic(), CreatedAt: v.CreatedAt, Area: v.FormatBasic(),
|
||||||
if v.LaboratoryName != "" {
|
|
||||||
researchName = v.ResearchName
|
|
||||||
laboratoryName = v.LaboratoryName
|
|
||||||
}
|
|
||||||
list = append(list, &InstanceForExpert{ID: v.GetEncodeID(), Name: v.Name, Industry: industry,
|
|
||||||
ResearchName: researchName, LaboratoryName: laboratoryName,
|
|
||||||
Address: v.FormatBasic(), CreatedAt: v.CreatedAt,
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
return &controller.ReturnPages{Data: list, Count: count}, nil
|
return &controller.ReturnPages{Data: list, Count: count}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ExpertDetail 专家详细信息
|
||||||
|
func (*Instance) ExpertDetail(id uint64) (*InstanceForExpertDetail, error) {
|
||||||
|
mManageExpert := model.NewManageExpert()
|
||||||
|
|
||||||
|
out, err := mManageExpert.Expert(id)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
} else if out.ManageExpert == nil {
|
||||||
|
return nil, errors.New("操作错误,专家信息不存在或已被删除")
|
||||||
|
}
|
||||||
|
return &InstanceForExpertDetail{
|
||||||
|
ID: out.GetEncodeID(),
|
||||||
|
ManageExpert: out.ManageExpert,
|
||||||
|
Industrys: out.GetIndustryAttribute(),
|
||||||
|
Keywords: out.GetKeywordAttribute(),
|
||||||
|
Researchs: out.GetResearchAttribute(),
|
||||||
|
Area: out.FormatBasic(),
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
func NewInstance() InstanceHandle {
|
func NewInstance() InstanceHandle {
|
||||||
return func(session *session.Admin, tenantID uint64) *Instance {
|
return func(session *session.Admin, tenantID uint64) *Instance {
|
||||||
return &Instance{
|
return &Instance{
|
||||||
|
@ -2,16 +2,72 @@ package model
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"SciencesServer/app/common/model"
|
"SciencesServer/app/common/model"
|
||||||
|
"SciencesServer/serve/orm"
|
||||||
|
"fmt"
|
||||||
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ManageCompany struct {
|
type ManageCompany struct {
|
||||||
*model.ManageCompany
|
*model.ManageCompany
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *ManageCompany) Companys(page, pageSize int, count *int64, where ...*model.ModelWhere) {
|
type (
|
||||||
|
// ManageCompanyBasic 公司企业基本信息
|
||||||
|
ManageCompanyBasic struct {
|
||||||
|
*model.ManageCompany
|
||||||
|
model.Area
|
||||||
|
}
|
||||||
|
// ManageCompanyInfo 公司企业信息
|
||||||
|
ManageCompanyInfo struct {
|
||||||
|
model.Model
|
||||||
|
Kind model.ManageCompanyKind `json:"kind"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
Code string `json:"code"`
|
||||||
|
Industry string `json:"industry"`
|
||||||
|
Address string `json:"address"`
|
||||||
|
*model.Examine
|
||||||
|
CreatedAt time.Time `json:"created_at"`
|
||||||
|
model.Area
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// Company 公司企业信息
|
||||||
|
func (m *ManageCompany) Company(id uint64) (*ManageCompanyBasic, error) {
|
||||||
|
db := orm.GetDB().Table(m.TableName()+" AS c").
|
||||||
|
Select("c.*", "t.province", "t.city").
|
||||||
|
Joins(fmt.Sprintf("LEFT JOIN %s AS t ON c.tenant_id = t.id", model.NewSysTenant().TableName())).
|
||||||
|
Where("c.id = ?", id)
|
||||||
|
|
||||||
|
out := new(ManageCompanyBasic)
|
||||||
|
|
||||||
|
err := db.Scan(out).Error
|
||||||
|
|
||||||
|
return out, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *ManageCompany) Companys(page, pageSize int, count *int64, where ...*model.ModelWhere) ([]*ManageCompanyInfo, error) {
|
||||||
|
db := orm.GetDB().Table(m.TableName()+" AS c").
|
||||||
|
Select("c.id", "c.kind", "c.name", "c.code", "c.industry", "c.address", "c.examine_status", "c.created_at",
|
||||||
|
"t.province", "t.city").
|
||||||
|
Joins(fmt.Sprintf("LEFT JOIN %s AS t ON c.tenant_id = t.id", model.NewSysTenant().TableName())).
|
||||||
|
Where("c.is_deleted = ?", model.DeleteStatusForNot)
|
||||||
|
|
||||||
|
if len(where) > 0 {
|
||||||
|
for _, v := range where {
|
||||||
|
db = db.Where(v.Condition, v.Value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
out := make([]*ManageCompanyInfo, 0)
|
||||||
|
|
||||||
|
if err := db.Count(count).Error; err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if err := db.Order("c.id " + model.OrderModeToDesc).Offset((page - 1) * pageSize).Limit(pageSize).Scan(&out).Error; err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return out, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewManageCompany() *ManageCompany {
|
func NewManageCompany() *ManageCompany {
|
||||||
return &ManageCompany{}
|
return &ManageCompany{model.NewManageCompany()}
|
||||||
}
|
}
|
||||||
|
@ -10,24 +10,45 @@ type ManageExpert struct {
|
|||||||
*model.ManageExpert
|
*model.ManageExpert
|
||||||
}
|
}
|
||||||
|
|
||||||
type ManageExpertInfo struct {
|
type (
|
||||||
|
// ManageExpertBasic 专家基本信息
|
||||||
|
ManageExpertBasic struct {
|
||||||
|
*model.ManageExpert
|
||||||
|
model.Area
|
||||||
|
}
|
||||||
|
// ManageExpertInfo 专家信息
|
||||||
|
ManageExpertInfo struct {
|
||||||
*model.ManageExpert
|
*model.ManageExpert
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
ResearchName string `json:"research_name"`
|
ResearchName string `json:"research_name"`
|
||||||
LaboratoryName string `json:"laboratory_name"`
|
LaboratoryName string `json:"laboratory_name"`
|
||||||
|
model.Area
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// Expert 专家信息
|
||||||
|
func (m *ManageExpert) Expert(id uint64) (*ManageExpertBasic, error) {
|
||||||
|
db := orm.GetDB().Table(m.TableName()+" AS e").
|
||||||
|
Select("e.*", "t.province", "t.city").
|
||||||
|
Joins(fmt.Sprintf("LEFT JOIN %s AS t ON e.tenant_id = t.id", model.NewSysTenant().TableName())).
|
||||||
|
Where("e.id = ?", id)
|
||||||
|
|
||||||
|
out := new(ManageExpertBasic)
|
||||||
|
|
||||||
|
err := db.Scan(out).Error
|
||||||
|
|
||||||
|
return out, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Experts 专家信息
|
// Experts 专家信息
|
||||||
func (m *ManageExpert) Experts(page, pageSize int, count *int64, where ...*model.ModelWhere) ([]*ManageExpertInfo, error) {
|
func (m *ManageExpert) Experts(page, pageSize int, count *int64, where ...*model.ModelWhere) ([]*ManageExpertInfo, error) {
|
||||||
mUserInstance := model.NewUserInstance()
|
|
||||||
mSysTenant := model.NewSysTenant()
|
|
||||||
|
|
||||||
db := orm.GetDB().Table(m.TableName()+" AS e").
|
db := orm.GetDB().Table(m.TableName()+" AS e").
|
||||||
Select("e.*", "u.name", "l.name AS laboratory_name", "r.name AS research_name").
|
Select("e.id", "e.name", "e.industry", "r.name AS research_name", "l.name AS laboratory_name",
|
||||||
Joins(fmt.Sprintf("LEFT JOIN %s AS u ON e.uid = u.uuid", mUserInstance.TableName())).
|
"t.province", "t.city", "e.address", "e.created_at").
|
||||||
Joins(fmt.Sprintf("LEFT JOIN %s AS l ON e.tenant_id = l.id", mSysTenant.TableName())).
|
Joins(fmt.Sprintf("LEFT JOIN %s AS r ON e.research_id = r.id", model.NewManageResearch().TableName())).
|
||||||
Joins(fmt.Sprintf("LEFT JOIN %s AS r ON l.parent_id = r.id", mSysTenant.TableName())).
|
Joins(fmt.Sprintf("LEFT JOIN %s AS l ON e.laboratory_id = l.id", model.NewManageLaboratory().TableName())).
|
||||||
Where("")
|
Joins(fmt.Sprintf("LEFT JOIN %s AS t ON e.tenant_id = t.id", model.NewSysTenant().TableName())).
|
||||||
|
Where("e.is_deleted = ?", model.DeleteStatusForNot)
|
||||||
|
|
||||||
if len(where) > 0 {
|
if len(where) > 0 {
|
||||||
for _, v := range where {
|
for _, v := range where {
|
||||||
@ -39,6 +60,7 @@ func (m *ManageExpert) Experts(page, pageSize int, count *int64, where ...*model
|
|||||||
if err := db.Count(count).Error; err != nil {
|
if err := db.Count(count).Error; err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := db.Order("e.id " + model.OrderModeToDesc).Offset((page - 1) * pageSize).Limit(pageSize).Scan(&out).Error; err != nil {
|
if err := db.Order("e.id " + model.OrderModeToDesc).Offset((page - 1) * pageSize).Limit(pageSize).Scan(&out).Error; err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -85,7 +85,7 @@ const (
|
|||||||
|
|
||||||
// Examine 审核状态
|
// Examine 审核状态
|
||||||
type Examine struct {
|
type Examine struct {
|
||||||
ExamineStatus ExamineStatusKind `gorm:"column:examine_status;type:tinyint(1);default:0;comment:审核状态(0:审核中,1:审核通过,2:审核拒绝)" json:"examine_status"`
|
ExamineStatus ExamineStatusKind `gorm:"column:examine_status;type:tinyint(1);default:0;comment:审核状态(1:审核中,2:审核通过,3:审核拒绝)" json:"examine_status"`
|
||||||
ExamineRemark string `gorm:"column:examine_remark;type:varchar(255);default:'';comment:审核备注" json:"examine_remark"`
|
ExamineRemark string `gorm:"column:examine_remark;type:varchar(255);default:'';comment:审核备注" json:"examine_remark"`
|
||||||
ExamineAt time.Time `gorm:"column:examine_at;type:datetime;default:null;comment:审核时间" json:"examine_at"`
|
ExamineAt time.Time `gorm:"column:examine_at;type:datetime;default:null;comment:审核时间" json:"examine_at"`
|
||||||
}
|
}
|
||||||
@ -95,7 +95,7 @@ type ExamineStatusKind int
|
|||||||
|
|
||||||
const (
|
const (
|
||||||
// ExamineStatusForOngoing 审核中
|
// ExamineStatusForOngoing 审核中
|
||||||
ExamineStatusForOngoing ExamineStatusKind = iota
|
ExamineStatusForOngoing ExamineStatusKind = iota + 1
|
||||||
// ExamineStatusForAgree 审核通过
|
// ExamineStatusForAgree 审核通过
|
||||||
ExamineStatusForAgree
|
ExamineStatusForAgree
|
||||||
// ExamineStatusForRefuse 审核拒绝
|
// ExamineStatusForRefuse 审核拒绝
|
||||||
|
@ -9,7 +9,7 @@ type SysNavigation struct {
|
|||||||
Link string `gorm:"column:link;type:varchar(255);default:'';comment:访问地址" json:"link"`
|
Link string `gorm:"column:link;type:varchar(255);default:'';comment:访问地址" json:"link"`
|
||||||
IsTarget int `gorm:"column:is_target;type:tinyint(1);default:0;comment:是否新窗口打开(0:否,1:是)" json:"is_target"`
|
IsTarget int `gorm:"column:is_target;type:tinyint(1);default:0;comment:是否新窗口打开(0:否,1:是)" json:"is_target"`
|
||||||
Sort int `gorm:"column:sort;type:tinyint(3);default:0;comment:排序,从小到小" json:"-"`
|
Sort int `gorm:"column:sort;type:tinyint(3);default:0;comment:排序,从小到小" json:"-"`
|
||||||
Status SysNavigationStatus `gorm:"column:status;type:tinyint(1);default:1;comment:状态" json:"-"`
|
Status SysNavigationStatus `gorm:"column:status;type:tinyint(1);default:1;comment:状态" json:"status"`
|
||||||
ModelDeleted
|
ModelDeleted
|
||||||
ModelAt
|
ModelAt
|
||||||
}
|
}
|
||||||
|
@ -281,6 +281,17 @@ func registerAdminAPI(app *gin.Engine) {
|
|||||||
role.POST("/auth", _api.Auth)
|
role.POST("/auth", _api.Auth)
|
||||||
role.POST("/auth/bind", _api.AuthBind)
|
role.POST("/auth/bind", _api.AuthBind)
|
||||||
}
|
}
|
||||||
|
// Manage 项目管理
|
||||||
|
manage := v1.Group("/manage")
|
||||||
|
{
|
||||||
|
_api := new(api1.Manage)
|
||||||
|
manage.POST("/company", _api.Company)
|
||||||
|
manage.POST("/company/detail", _api.CompanyDetail)
|
||||||
|
manage.POST("/company/examine", _api.CompanyExamine)
|
||||||
|
manage.POST("/expert", _api.Expert)
|
||||||
|
manage.POST("/expert/detail", _api.ExpertDetail)
|
||||||
|
manage.POST("/expert/examine", _api.ExpertExamine)
|
||||||
|
}
|
||||||
// Service 服务管理
|
// Service 服务管理
|
||||||
service := v1.Group("/service")
|
service := v1.Group("/service")
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user