From cd6940f07750c1e2cd3a5c0eeafa6cc0309ef2f6 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期二, 29 八月 2023 14:35:26 +0800 Subject: [PATCH] 新增和查询采购类型 --- api/v1/purchase/purchase.go | 82 ++++++++++++++++++++++++++++++++++++++--- 1 files changed, 76 insertions(+), 6 deletions(-) diff --git a/api/v1/purchase/purchase.go b/api/v1/purchase/purchase.go index c2b7c52..1d220d6 100644 --- a/api/v1/purchase/purchase.go +++ b/api/v1/purchase/purchase.go @@ -2,12 +2,16 @@ import ( "github.com/gin-gonic/gin" + "github.com/mitchellh/mapstructure" "go.uber.org/zap" + "gorm.io/gorm" "srm/global" "srm/model/common/request" "srm/model/common/response" + "srm/model/purchase" purchaserequest "srm/model/purchase/request" "strconv" + "strings" //"srm/model/purchase" @@ -35,8 +39,21 @@ response.FailWithMessage(err.Error(), c) return } - err = service.NewPurchaseService().CreatePurchase(params) + + var purchaseRecord purchase.Purchase + if err := mapstructure.Decode(params.Purchase, &purchaseRecord); err != nil { + response.FailWithMessage(err.Error(), c) + return + } + + purchaseRecord.ID = 0 + err = service.NewPurchaseService().CreatePurchase(&purchaseRecord, params.ProductList) + if err != nil { + if err == gorm.ErrDuplicatedKey || strings.Contains(err.Error(), "Duplicate entry") { + response.FailWithMessage("缂栧彿閲嶅", c) + return + } global.GVA_LOG.Error("鍒涘缓澶辫触!", zap.Error(err)) response.FailWithMessage("鍒涘缓澶辫触", c) return @@ -74,22 +91,24 @@ // @Security ApiKeyAuth // @accept application/json // @Produce application/json -// @Param data body purchaserequest.AddPurchase true "閲囪喘鍗旾D, 閲囪喘鍗曚俊鎭�" +// @Param data body purchaserequest.UpdatePurchase true "閲囪喘鍗旾D, 閲囪喘鍗曚俊鎭�" // @Success 200 {object} response.Response{msg=string} "鏇存柊閲囪喘鍗曚俊鎭�" // @Router /purchase/purchase [put] func (e *PurchaseApi) UpdatePurchase(c *gin.Context) { - var params purchaserequest.AddPurchase + var params purchaserequest.UpdatePurchase err := c.ShouldBindJSON(¶ms) if err != nil { response.FailWithMessage(err.Error(), c) return } - err = utils.Verify(params.Purchase.GVA_MODEL, utils.IdVerify) - if err != nil { + + var purchaseRecord purchase.Purchase + if err := mapstructure.Decode(params.Purchase, &purchaseRecord); err != nil { response.FailWithMessage(err.Error(), c) return } - err = service.NewPurchaseService().UpdatePurchase(¶ms) + + err = service.NewPurchaseService().UpdatePurchase(&purchaseRecord, params.ProductList) if err != nil { global.GVA_LOG.Error("鏇存柊澶辫触!", zap.Error(err)) response.FailWithMessage("鏇存柊澶辫触", c) @@ -186,3 +205,54 @@ } response.OkWithMessage("鏇存柊鎴愬姛", c) } + +// SavePurchaseType +// @Tags Purchase +// @Summary 鍒涘缓閲囪喘绫诲瀷 +// @Security ApiKeyAuth +// @accept application/json +// @Produce application/json +// @Param data body []purchaserequest.PurchaseType true "閲囪喘绫诲瀷list" +// @Success 200 {object} response.Response{msg=string} "鍒涘缓閲囪喘绫诲瀷" +// @Router /purchase/purchaseType [post] +func (e *PurchaseApi) SavePurchaseType(c *gin.Context) { + var params []*purchaserequest.PurchaseType + err := c.ShouldBindJSON(¶ms) + if err != nil { + response.FailWithMessage(err.Error(), c) + return + } + + purchaseTypeList := make([]*purchase.PurchaseType, 0, len(params)) + if err := mapstructure.Decode(params, &purchaseTypeList); err != nil { + response.FailWithMessage(err.Error(), c) + return + } + + err = service.NewPurchaseService().SavePurchaseType(purchaseTypeList) + + if err != nil { + global.GVA_LOG.Error("鍒涘缓澶辫触!", zap.Error(err)) + response.FailWithMessage("鍒涘缓澶辫触", c) + return + } + response.OkWithMessage("鍒涘缓鎴愬姛", c) +} + +// GetPurchaseTypeList +// @Tags Purchase +// @Summary 鑾峰彇閲囪喘绫诲瀷鍒楄〃 +// @Security ApiKeyAuth +// @accept application/json +// @Produce application/json +// @Success 200 {object} response.Response{data=[]purchase.PurchaseType,msg=string} "鑾峰彇閲囪喘绫诲瀷鍒楄〃" +// @Router /purchase/purchaseTypeList [get] +func (e *PurchaseApi) GetPurchaseTypeList(c *gin.Context) { + list, err := service.NewPurchaseService().GetPurchaseTypeList() + if err != nil { + global.GVA_LOG.Error("鑾峰彇澶辫触!", zap.Error(err)) + response.FailWithMessage("鑾峰彇澶辫触"+err.Error(), c) + return + } + response.OkWithDetailed(list, "鑾峰彇鎴愬姛", c) +} -- Gitblit v1.8.0