feat:完善信息,增加需求指派功能

This commit is contained in:
henry
2022-01-24 15:35:43 +08:00
parent 295ca23dcc
commit 1c0d9dfb6b
12 changed files with 184 additions and 68 deletions

View File

@ -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}

View File

@ -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}