feat:完善项目

This commit is contained in:
henry
2021-11-16 11:46:44 +08:00
parent 78128277ff
commit 978918e5aa
14 changed files with 193 additions and 19 deletions

View File

@ -163,7 +163,7 @@ func (c *Repair) Evaluate(id uint64, score float64) error {
mWorkRepair := model.NewWorkRepair()
mWorkRepair.ID = id
isExist, err := model2.FirstField(mWorkRepair.WorkRepair, []string{"id", "status", "is_evaluate"})
isExist, err := model2.FirstField(mWorkRepair.WorkRepair, []string{"id", "work_id", "status", "is_evaluate"})
if err != nil {
return err
@ -176,12 +176,65 @@ func (c *Repair) Evaluate(id uint64, score float64) error {
if mWorkRepair.IsEvaluate != model2.WorkRepairStatusEvaluateForNot {
return errors.New("操作错误,当前工单已评价,不可重复评价")
}
if err = model2.Updates(mWorkRepair.WorkRepair, map[string]interface{}{
"is_evaluate": model2.WorkRepairStatusEvaluateForYes, "evaluate_score": score, "updated_at": time.Now(),
}); err != nil {
// 查询工单下使用的器材供应商信息
mWorkMaterial := model.NewWorkMaterial()
supplierIDs := make([]uint64, 0)
if err = model2.Pluck(mWorkMaterial.WorkMaterial, "material_supplier_id", &supplierIDs,
model2.NewWhere("work_id", mWorkRepair.WorkID)); err != nil {
return err
}
return nil
_supplierIDs := utils.ArrayUnique(supplierIDs)
return orm.GetDB().Transaction(func(tx *gorm.DB) error {
if err = model2.Updates(mWorkRepair.WorkRepair, map[string]interface{}{
"is_evaluate": model2.WorkRepairStatusEvaluateForYes, "evaluate_score": score, "updated_at": time.Now(),
}, tx); err != nil {
return err
}
updates := map[string]interface{}{
"updated_at": time.Now(),
}
if score == 1 {
updates["praise"] = gorm.Expr("praise + ?", 1)
} else if score == 2 {
updates["middle"] = gorm.Expr("middle + ?", 1)
} else {
updates["negative"] = gorm.Expr("negative + ?", 1)
}
mManageSupplierEvaluate := model.NewManageSupplierEvaluate()
supplierEvaluates := make([]*model2.ManageSupplierEvaluate, 0)
for _, v := range _supplierIDs {
// 查询是否存在
if isExist, err = model2.FirstField(mManageSupplierEvaluate.ManageSupplierEvaluate, []string{"id"},
model2.NewWhere("id", v)); err != nil {
return err
} else if !isExist {
if err = model2.Updates(mManageSupplierEvaluate.ManageSupplierEvaluate, updates, tx); err != nil {
return err
}
continue
}
data := &model2.ManageSupplierEvaluate{SupplierID: v.(uint64)}
if score == 1 {
data.Praise = 1
} else if score == 2 {
data.Middle = 2
} else {
data.Negative = 1
}
supplierEvaluates = append(supplierEvaluates, data)
}
if len(supplierEvaluates) > 0 {
if err = model2.Creates(mManageSupplierEvaluate.ManageSupplierEvaluate, supplierEvaluates, tx); err != nil {
return err
}
}
return nil
})
}
func NewRepair() RepairHandle {