From 2f1e7be34c66123cff0857b1f37aeed3bbe1e29d Mon Sep 17 00:00:00 2001 From: chenyifan01 Date: Thu, 18 Aug 2022 10:44:59 +0800 Subject: [PATCH] #2624 fix bug --- models/resource_specification.go | 10 +++++++--- routers/admin/resources.go | 4 ++-- .../resource/resource_specification.go | 16 ++++++---------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/models/resource_specification.go b/models/resource_specification.go index 40bf1f818..2bf604045 100644 --- a/models/resource_specification.go +++ b/models/resource_specification.go @@ -148,6 +148,10 @@ func InsertResourceSpecification(r ResourceSpecification) (int64, error) { func UpdateResourceSpecificationById(queueId int64, spec ResourceSpecification) (int64, error) { return x.ID(queueId).Update(&spec) } +func UpdateSpecUnitPriceById(id int64, unitPrice int) error { + _, err := x.Exec("update resource_specification set unit_price = ? where id = ?", unitPrice, id) + return err +} func SearchResourceSpecification(opts SearchResourceSpecificationOptions) (int64, []ResourceSpecAndQueue, error) { var cond = builder.NewCond() @@ -193,9 +197,9 @@ func GetSpecScenes(specId int64) ([]ResourceSceneBriefRes, error) { return r, nil } -func ResourceSpecOnShelf(id int64, spec ResourceSpecification) (int64, error) { - spec.Status = SpecOnShelf - return x.Where("id = ? and status in (?,?)", id, SpecOffShelf, SpecNotVerified).Update(&spec) +func ResourceSpecOnShelf(id int64, unitPrice int) error { + _, err := x.Exec("update resource_specification set unit_price = ?,status = ? where id = ?", unitPrice, SpecOnShelf, id) + return err } func ResourceSpecOffShelf(id int64) (int64, error) { diff --git a/routers/admin/resources.go b/routers/admin/resources.go index 41a167b2c..7d267c19c 100644 --- a/routers/admin/resources.go +++ b/routers/admin/resources.go @@ -169,9 +169,9 @@ func UpdateResourceSpecification(ctx *context.Context, req models.ResourceSpecif return } //only UnitPrice and permitted to change - err = resource.UpdateResourceSpecification(ctx.User.ID, id, req) + err = resource.UpdateSpecUnitPrice(ctx.User.ID, id, req.UnitPrice) case "on-shelf": - err = resource.ResourceSpecOnShelf(ctx.User.ID, id, req) + err = resource.ResourceSpecOnShelf(ctx.User.ID, id, req.UnitPrice) case "off-shelf": err = resource.ResourceSpecOffShelf(ctx.User.ID, id) } diff --git a/services/cloudbrain/resource/resource_specification.go b/services/cloudbrain/resource/resource_specification.go index d95e58517..2037fc2c2 100644 --- a/services/cloudbrain/resource/resource_specification.go +++ b/services/cloudbrain/resource/resource_specification.go @@ -22,7 +22,7 @@ func AddResourceSpecification(doerId int64, req models.ResourceSpecificationReq) return nil } -func UpdateResourceSpecification(doerId int64, specId int64, req models.ResourceSpecificationReq) *response.BizError { +func UpdateSpecUnitPrice(doerId int64, specId int64, unitPrice int) *response.BizError { oldSpec, err := models.GetResourceSpecification(&models.ResourceSpecification{ID: specId}) if err != nil { return response.NewBizError(err) @@ -30,14 +30,12 @@ func UpdateResourceSpecification(doerId int64, specId int64, req models.Resource if oldSpec == nil { return response.SPECIFICATION_NOT_EXIST } - n, err := models.UpdateResourceSpecificationById(specId, models.ResourceSpecification{ - UnitPrice: req.UnitPrice, - }) + err = models.UpdateSpecUnitPriceById(specId, unitPrice) if err != nil { return response.NewBizError(err) } - if n > 0 { + if oldSpec.UnitPrice != unitPrice { newSpec, _ := models.GetResourceSpecification(&models.ResourceSpecification{ID: specId}) AddSpecOperateLog(doerId, "edit", newSpec, oldSpec, fmt.Sprintf("修改单价从%d积分到%d积分", oldSpec.UnitPrice, newSpec.UnitPrice)) } @@ -134,7 +132,7 @@ func GetResourceSpecificationScenes(specId int64) ([]models.ResourceSceneBriefRe return r, nil } -func ResourceSpecOnShelf(doerId int64, id int64, req models.ResourceSpecificationReq) *response.BizError { +func ResourceSpecOnShelf(doerId int64, id int64, unitPrice int) *response.BizError { spec, err := models.GetResourceSpecification(&models.ResourceSpecification{ID: id}) if err != nil { return response.NewBizError(err) @@ -146,13 +144,11 @@ func ResourceSpecOnShelf(doerId int64, id int64, req models.ResourceSpecificatio return response.RESOURCE_QUEUE_NOT_AVAILABLE } - n, err := models.ResourceSpecOnShelf(id, models.ResourceSpecification{ - UnitPrice: req.UnitPrice, - }) + err = models.ResourceSpecOnShelf(id, unitPrice) if err != nil { return response.NewBizError(err) } - if n > 0 { + if spec.UnitPrice != unitPrice { newSpec, _ := models.GetResourceSpecification(&models.ResourceSpecification{ID: id}) AddSpecOperateLog(doerId, "on-shelf", newSpec, spec, fmt.Sprintf("修改单价从%d积分到%d积分", spec.UnitPrice, newSpec.UnitPrice)) }