Files
mayfly-go/server/internal/flow/api/procdef.go

62 lines
1.7 KiB
Go

package api
import (
"mayfly-go/internal/flow/api/form"
"mayfly-go/internal/flow/api/vo"
"mayfly-go/internal/flow/application"
"mayfly-go/internal/flow/domain/entity"
tagapp "mayfly-go/internal/tag/application"
tagentity "mayfly-go/internal/tag/domain/entity"
"mayfly-go/pkg/biz"
"mayfly-go/pkg/req"
"mayfly-go/pkg/utils/collx"
"strconv"
"strings"
)
type Procdef struct {
ProcdefApp application.Procdef `inject:""`
TagTreeRelateApp tagapp.TagTreeRelate `inject:"TagTreeRelateApp"`
}
func (p *Procdef) GetProcdefPage(rc *req.Ctx) {
cond, page := req.BindQueryAndPage(rc, new(entity.Procdef))
var procdefs []*vo.Procdef
res, err := p.ProcdefApp.GetPageList(cond, page, &procdefs)
biz.ErrIsNil(err)
p.TagTreeRelateApp.FillTagInfo(tagentity.TagRelateTypeFlowDef, collx.ArrayMap(procdefs, func(mvo *vo.Procdef) tagentity.IRelateTag {
return mvo
})...)
rc.ResData = res
}
func (p *Procdef) GetProcdef(rc *req.Ctx) {
resourceType := rc.PathParamInt("resourceType")
resourceCode := rc.PathParam("resourceCode")
rc.ResData = p.ProcdefApp.GetProcdefByResource(rc.MetaCtx, int8(resourceType), resourceCode)
}
func (a *Procdef) Save(rc *req.Ctx) {
form := &form.Procdef{}
procdef := req.BindJsonAndCopyTo(rc, form, new(entity.Procdef))
rc.ReqParam = form
biz.ErrIsNil(a.ProcdefApp.SaveProcdef(rc.MetaCtx, &application.SaveProcdefParam{
Procdef: procdef,
CodePaths: form.CodePaths,
}))
}
func (p *Procdef) Delete(rc *req.Ctx) {
idsStr := rc.PathParam("id")
rc.ReqParam = idsStr
ids := strings.Split(idsStr, ",")
for _, v := range ids {
value, err := strconv.Atoi(v)
biz.ErrIsNilAppendErr(err, "string类型转换为int异常: %s")
biz.ErrIsNilAppendErr(p.ProcdefApp.DeleteProcdef(rc.MetaCtx, uint64(value)), "删除失败:%s")
}
}