From 740b271a0f1871288cbd8dc07f4c95d1488c6e71 Mon Sep 17 00:00:00 2001 From: liujiandao <274878379@qq.com> Date: 星期四, 26 十月 2023 17:56:37 +0800 Subject: [PATCH] opa添加 --- controllers/operation.go | 19 +++++++++++++++++-- 1 files changed, 17 insertions(+), 2 deletions(-) diff --git a/controllers/operation.go b/controllers/operation.go index c53ead6..5e3a174 100644 --- a/controllers/operation.go +++ b/controllers/operation.go @@ -1,11 +1,13 @@ package controllers import ( + "encoding/json" "errors" "fmt" "github.com/gin-gonic/gin" "github.com/shopspring/decimal" "gorm.io/gorm" + "os" "sort" "strconv" "time" @@ -13,6 +15,7 @@ "wms/extend/code" "wms/extend/util" "wms/models" + "wms/opa" "wms/pkg/logx" "wms/pkg/structx" "wms/request" @@ -448,8 +451,20 @@ if !ok { return errors.New("浜у搧绉嶇被寮傚父") } - if v.Amount.LessThan(value) { - return errors.New(fmt.Sprintf("浜у搧锛�%v,搴撳瓨锛�%v,鍑哄簱锛�%v,鏁伴噺涓嶅锛屾棤娉曞畬鎴愬嚭搴撴搷浣�", v.Name, v.Amount.String(), value.String())) + //todo 婕旂ず娴嬭瘯鏁版嵁 + data, err := os.ReadFile("conf/input.json") + if err != nil { + return errors.New("鏂囦欢璇诲彇澶辫触") + } + m := make(map[string]interface{}) + err = json.Unmarshal(data, &m) + if err != nil { + return errors.New("鏍煎紡杞崲澶辫触") + } + if opa.OpaCheck(c, m, "operation") { + if v.Amount.LessThan(value) { + return errors.New(fmt.Sprintf("浜у搧锛�%v,搴撳瓨锛�%v,鍑哄簱锛�%v,鏁伴噺涓嶅锛屾棤娉曞畬鎴愬嚭搴撴搷浣�", v.Name, v.Amount.String(), value.String())) + } } listProdt[k].Amount = listProdt[k].Amount.Sub(value) if err := tx.Save(listProdt[k]).Error; err != nil { -- Gitblit v1.8.0