feat:完善信息,增加需求指派功能
This commit is contained in:
@ -5,10 +5,8 @@ import (
|
||||
"SciencesServer/app/basic/controller"
|
||||
model2 "SciencesServer/app/common/model"
|
||||
"SciencesServer/app/session"
|
||||
"SciencesServer/serve/orm"
|
||||
"SciencesServer/utils"
|
||||
"errors"
|
||||
"gorm.io/gorm"
|
||||
"time"
|
||||
)
|
||||
|
||||
@ -179,65 +177,6 @@ func (c *Demand) Delete(id uint64) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Progress 进度信息
|
||||
func (c *Demand) Progress(demandID uint64) {
|
||||
mTechnologyDemandService := model.NewTechnologyDemandService()
|
||||
|
||||
model2.FirstWhere(mTechnologyDemandService.TechnologyDemandService,
|
||||
model2.NewWhere("demand_id", demandID))
|
||||
}
|
||||
|
||||
// ProgressLaunch 进度发起
|
||||
func (c *Demand) ProgressLaunch(demandID uint64, status int, config string) error {
|
||||
// TODO:缺少发起判断
|
||||
// 查询当前进度
|
||||
mTechnologyDemandService := model.NewTechnologyDemandService()
|
||||
|
||||
isExist, err := model2.FirstWhere(mTechnologyDemandService.TechnologyDemandService,
|
||||
model2.NewWhere("demand_id", demandID))
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
} else if !isExist {
|
||||
return orm.GetDB().Transaction(func(tx *gorm.DB) error {
|
||||
mTechnologyDemandService.UID = c.UID
|
||||
mTechnologyDemandService.DemandID = demandID
|
||||
mTechnologyDemandService.Progress = model2.TechnologyDemandServiceProgressKindForMemorandum
|
||||
|
||||
if err = model2.Create(mTechnologyDemandService.TechnologyDemandService, tx); err != nil {
|
||||
return err
|
||||
}
|
||||
mTechnologyDemandServiceProgress := model.NewTechnologyDemandServiceProgress()
|
||||
mTechnologyDemandServiceProgress.ServiceID = mTechnologyDemandService.ID
|
||||
mTechnologyDemandServiceProgress.Progress = model2.TechnologyDemandServiceProgressKindForMemorandum
|
||||
mTechnologyDemandServiceProgress.Config = config
|
||||
return model2.Create(mTechnologyDemandServiceProgress.TechnologyDemandServiceProgress, tx)
|
||||
})
|
||||
}
|
||||
if mTechnologyDemandService.Status != model2.TechnologyDemandServiceStatusForOngoing {
|
||||
return errors.New("操作错误,当前状态不可处理")
|
||||
}
|
||||
return orm.GetDB().Transaction(func(tx *gorm.DB) error {
|
||||
// 下一流程
|
||||
mTechnologyDemandService.Progress = mTechnologyDemandService.NextProgress()
|
||||
|
||||
if mTechnologyDemandService.Progress == model2.TechnologyDemandServiceProgressKindForComplete {
|
||||
if status <= 0 {
|
||||
return errors.New("操作错误,请确认结题状态")
|
||||
}
|
||||
mTechnologyDemandService.Status = model2.TechnologyDemandServiceStatus(status)
|
||||
}
|
||||
if err = model2.Updates(mTechnologyDemandService.TechnologyDemandService, tx); err != nil {
|
||||
return err
|
||||
}
|
||||
mTechnologyDemandServiceProgress := model.NewTechnologyDemandServiceProgress()
|
||||
mTechnologyDemandServiceProgress.ServiceID = mTechnologyDemandService.ID
|
||||
mTechnologyDemandServiceProgress.Progress = mTechnologyDemandService.Progress
|
||||
mTechnologyDemandServiceProgress.Config = config
|
||||
return model2.Create(mTechnologyDemandServiceProgress.TechnologyDemandServiceProgress, tx)
|
||||
})
|
||||
}
|
||||
|
||||
func NewDemand() DemandHandle {
|
||||
return func(session *session.Enterprise, tenantID uint64) *Demand {
|
||||
return &Demand{Enterprise: session, tenantID: tenantID}
|
||||
|
@ -41,18 +41,28 @@ type (
|
||||
|
||||
// Instance 首页信息
|
||||
func (c *DemandService) Instance(title string, page, pageSize int) (*controller.ReturnPages, error) {
|
||||
mUserAgent := model.NewUserAgent()
|
||||
|
||||
isExist, err := model2.FirstField(mUserAgent.UserAgent, []string{"id", "agent_id"}, model2.NewWhere("uid", c.UID))
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
} else if !isExist {
|
||||
return nil, errors.New("操作错误,未知的身份信息")
|
||||
}
|
||||
// 查询用户经纪人身份信息
|
||||
mTechnologyDemandService := model.NewTechnologyDemandService()
|
||||
|
||||
where := make([]*model2.ModelWhere, 0)
|
||||
where := []*model2.ModelWhere{model2.NewWhere("d.agent_id", mUserAgent.AgentID)}
|
||||
|
||||
if title != "" {
|
||||
where = append(where, model2.NewWhereLike("d.title", title))
|
||||
}
|
||||
var count int64
|
||||
|
||||
out, err := mTechnologyDemandService.Services(page, pageSize, &count)
|
||||
out := make([]*model.TechnologyDemandServiceInfo, 0)
|
||||
|
||||
if err != nil {
|
||||
if out, err = mTechnologyDemandService.Services(page, pageSize, &count); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
list := make([]*DemandServiceInstance, 0)
|
||||
@ -76,7 +86,7 @@ func (c *DemandService) Detail(id uint64) (*DemandServiceDetail, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
} else if !isExist {
|
||||
return nil, errors.New("操作错误,需求服务信息不存在")
|
||||
return nil, errors.New("操作错误,需求服务信息不存在或已被删除")
|
||||
}
|
||||
mTechnologyDemandServiceProgress := model.NewTechnologyDemandServiceProgress()
|
||||
|
||||
@ -118,9 +128,15 @@ func (c *DemandService) Handle(id uint64, status int, config string) error {
|
||||
if err != nil {
|
||||
return err
|
||||
} else if !isExist {
|
||||
return errors.New("操作错误,需求服务信息不存在")
|
||||
return errors.New("操作错误,需求服务信息不存在或已被删除")
|
||||
}
|
||||
if mTechnologyDemandService.UID != c.UID {
|
||||
mUserAgent := model.NewUserAgent()
|
||||
|
||||
if isExist, err = model2.FirstField(mUserAgent.UserAgent, []string{"id", "agent_id"}, model2.NewWhere("uid", c.UID)); err != nil {
|
||||
return err
|
||||
} else if !isExist {
|
||||
return errors.New("操作错误,未知的身份信息")
|
||||
} else if mUserAgent.AgentID != mTechnologyDemandService.AgentID {
|
||||
return errors.New("操作错误,无权限操作")
|
||||
}
|
||||
if mTechnologyDemandService.Status != model2.TechnologyDemandServiceStatusForOngoing {
|
||||
@ -140,6 +156,7 @@ func (c *DemandService) Handle(id uint64, status int, config string) error {
|
||||
return err
|
||||
}
|
||||
mTechnologyDemandServiceProgress := model.NewTechnologyDemandServiceProgress()
|
||||
mTechnologyDemandServiceProgress.UID = c.UID
|
||||
mTechnologyDemandServiceProgress.ServiceID = mTechnologyDemandService.ID
|
||||
mTechnologyDemandServiceProgress.Progress = mTechnologyDemandService.Progress
|
||||
mTechnologyDemandServiceProgress.Config = config
|
||||
@ -147,6 +164,21 @@ func (c *DemandService) Handle(id uint64, status int, config string) error {
|
||||
})
|
||||
}
|
||||
|
||||
// Delete 删除操作
|
||||
func (c *DemandService) Delete(id uint64) error {
|
||||
mTechnologyDemandService := model.NewTechnologyDemandService()
|
||||
mTechnologyDemandService.ID = id
|
||||
|
||||
isExist, err := model2.First(mTechnologyDemandService.TechnologyDemandService)
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
} else if !isExist {
|
||||
return errors.New("操作错误,需求服务信息不存在或已被删除")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func NewDemandService() DemandServiceHandle {
|
||||
return func(session *session.Enterprise) *DemandService {
|
||||
return &DemandService{session}
|
||||
|
Reference in New Issue
Block a user