77 lines
2.1 KiB
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
|
|
}
|