ai_scheduler/internal/biz/advice_advicer.go

77 lines
2.1 KiB
Go

package biz
import (
"ai_scheduler/internal/data/impl"
"ai_scheduler/internal/data/model"
"ai_scheduler/internal/entitys"
"time"
"context"
"xorm.io/builder"
)
type AdviceAdvicerBiz struct {
advicerImpl *impl.AdviceAdvicerImpl
adviceAdvicerVersionImpl *impl.AdviceAdvicerVersionImpl
}
func NewAdviceAdvicerBiz(
advicerImpl *impl.AdviceAdvicerImpl,
adviceAdvicerVersionImpl *impl.AdviceAdvicerVersionImpl,
) *AdviceAdvicerBiz {
return &AdviceAdvicerBiz{
advicerImpl: advicerImpl,
adviceAdvicerVersionImpl: adviceAdvicerVersionImpl,
}
}
func (a *AdviceAdvicerBiz) Update(ctx context.Context, data *entitys.AdvicerInitReq) error {
birth, err := time.Parse("2006-01-02", data.Birth)
if err != nil {
return err
}
param := &model.AiAdviceAdvicer{
AdvicerID: data.AdvicerID,
Name: data.Name,
Birth: birth,
Gender: data.Gender,
WorkingYears: data.WorkingYears,
}
if param.AdvicerID == 0 {
_, err = a.advicerImpl.Add(param)
} else {
cond := builder.NewCond()
cond = cond.And(builder.Eq{"advicer_id": param.AdvicerID})
err = a.advicerImpl.UpdateByCond(&cond, param)
}
return err
}
func (a *AdviceAdvicerBiz) List(ctx context.Context, data *entitys.AdvicerListReq) ([]map[string]interface{}, error) {
cond := builder.NewCond()
cond = cond.And(builder.Eq{"project_id": data.ProjectId})
list, err := a.advicerImpl.GetRange(&cond)
return list, err
}
func (a *AdviceAdvicerBiz) VersionUpdate(ctx context.Context, param *entitys.AdvicerVersionInitReq) (err error) {
if param.VersionID == 0 {
_, err = a.adviceAdvicerVersionImpl.Add(param)
} else {
cond := builder.NewCond()
cond = cond.And(builder.Eq{"version_id": param.VersionID})
err = a.adviceAdvicerVersionImpl.UpdateByCond(&cond, param)
}
return err
}
func (a *AdviceAdvicerBiz) VersionList(ctx context.Context, data *entitys.AdvicerVersionListReq) ([]map[string]interface{}, error) {
cond := builder.NewCond()
cond = cond.And(builder.Eq{"advicer_id": data.AdvicerID})
list, err := a.adviceAdvicerVersionImpl.GetRange(&cond)
return list, err
}