feat:完善网站信息
This commit is contained in:
121
app/api/website/controller/manage/search.go
Normal file
121
app/api/website/controller/manage/search.go
Normal file
@ -0,0 +1,121 @@
|
||||
package manage
|
||||
|
||||
import (
|
||||
"SciencesServer/app/api/website/model"
|
||||
"SciencesServer/app/basic/config"
|
||||
model2 "SciencesServer/app/common/model"
|
||||
"SciencesServer/app/service"
|
||||
"errors"
|
||||
)
|
||||
|
||||
type Search struct{}
|
||||
|
||||
type SearchHandle func() *Search
|
||||
|
||||
type (
|
||||
// SearchParams 搜索参数
|
||||
SearchParams struct {
|
||||
}
|
||||
)
|
||||
|
||||
// searchIdentityHandle 搜索信息处理
|
||||
var searchIdentityHandle = map[int]func(ids []uint64) (interface{}, error){
|
||||
config.TenantUserIdentityForCompany: company,
|
||||
config.TenantUserIdentityForExpert: company,
|
||||
config.TenantUserIdentityForResearch: company,
|
||||
config.TenantUserIdentityForLaboratory: company,
|
||||
config.TenantUserIdentityForAgent: company,
|
||||
}
|
||||
|
||||
func company(ids []uint64) (interface{}, error) {
|
||||
mManageCompany := model.NewManageCompany()
|
||||
out := make([]*model2.ManageCompany, 0)
|
||||
|
||||
if err := model2.ScanFields(mManageCompany.ManageCompany, &out, []string{}, &model2.ModelWhereOrder{
|
||||
Where: model2.NewWhereIn("id", ids),
|
||||
Order: model2.NewOrder("id", model2.OrderModeToDesc),
|
||||
}, &model2.ModelWhereOrder{
|
||||
Where: model2.NewWhere("examine_status", model2.ExamineStatusForAgree),
|
||||
}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func expert(ids []uint64) (interface{}, error) {
|
||||
mManageCompany := model.NewManageCompany()
|
||||
out := make([]*model2.ManageCompany, 0)
|
||||
|
||||
if err := model2.ScanFields(mManageCompany.ManageCompany, &out, []string{}, &model2.ModelWhereOrder{
|
||||
Where: model2.NewWhereIn("id", ids),
|
||||
Order: model2.NewOrder("id", model2.OrderModeToDesc),
|
||||
}, &model2.ModelWhereOrder{
|
||||
Where: model2.NewWhere("examine_status", model2.ExamineStatusForAgree),
|
||||
}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func research(ids []uint64) (interface{}, error) {
|
||||
mManageCompany := model.NewManageCompany()
|
||||
out := make([]*model2.ManageCompany, 0)
|
||||
|
||||
if err := model2.ScanFields(mManageCompany.ManageCompany, &out, []string{}, &model2.ModelWhereOrder{
|
||||
Where: model2.NewWhereIn("id", ids),
|
||||
Order: model2.NewOrder("id", model2.OrderModeToDesc),
|
||||
}, &model2.ModelWhereOrder{
|
||||
Where: model2.NewWhere("examine_status", model2.ExamineStatusForAgree),
|
||||
}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func laboratory(ids []uint64) (interface{}, error) {
|
||||
mManageCompany := model.NewManageCompany()
|
||||
out := make([]*model2.ManageCompany, 0)
|
||||
|
||||
if err := model2.ScanFields(mManageCompany.ManageCompany, &out, []string{}, &model2.ModelWhereOrder{
|
||||
Where: model2.NewWhereIn("id", ids),
|
||||
Order: model2.NewOrder("id", model2.OrderModeToDesc),
|
||||
}, &model2.ModelWhereOrder{
|
||||
Where: model2.NewWhere("examine_status", model2.ExamineStatusForAgree),
|
||||
}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *Search) Launch(identity int, params string) (interface{}, error) {
|
||||
manage := service.NewManage()
|
||||
|
||||
_params := map[string]interface{}{
|
||||
"title": params, "keyword": params, "research": params,
|
||||
}
|
||||
data, err := manage.Search(_params)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
ids := make([]uint64, 0)
|
||||
|
||||
for _, v := range data.([]*service.Manage) {
|
||||
if v.Identity != identity {
|
||||
continue
|
||||
}
|
||||
ids = append(ids, v.ID)
|
||||
}
|
||||
handle, has := searchIdentityHandle[identity]
|
||||
|
||||
if !has {
|
||||
return nil, errors.New("操作错误,未知的身份信息")
|
||||
}
|
||||
return handle(ids)
|
||||
}
|
||||
|
||||
func NewSearch() SearchHandle {
|
||||
return func() *Search {
|
||||
return &Search{}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user