zhangqian
2023-08-29 e5c9327d1b659cd6bf9c3adc3ae81146630511a0
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,22 @@
      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
   purchaseRecord.Status = purchase.OrderStatusConfirmed
   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 +92,24 @@
// @Security  ApiKeyAuth
// @accept    application/json
// @Produce   application/json
// @Param     data  body      purchaserequest.AddPurchase            true  "采购单ID, 采购单信息"
// @Param     data  body      purchaserequest.UpdatePurchase            true  "采购单ID, 采购单信息"
// @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(&params)
   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(&params)
   err = service.NewPurchaseService().UpdatePurchase(&purchaseRecord, params.ProductList)
   if err != nil {
      global.GVA_LOG.Error("更新失败!", zap.Error(err))
      response.FailWithMessage("更新失败", c)
@@ -173,18 +193,12 @@
// @Success   200   {object}  response.Response{msg=string}  "提交采购单"
// @Router    /purchase/submit/{id} [post]
func (e *PurchaseApi) Submit(c *gin.Context) {
   var params purchaserequest.AddPurchase
   err := c.ShouldBindJSON(&params)
   if err != nil {
      response.FailWithMessage(err.Error(), c)
   id, _ := strconv.Atoi(c.Param("id"))
   if id == 0 {
      response.FailWithMessage("参数缺失", c)
      return
   }
   err = utils.Verify(params.Purchase.GVA_MODEL, utils.IdVerify)
   if err != nil {
      response.FailWithMessage(err.Error(), c)
      return
   }
   err = service.NewPurchaseService().UpdatePurchase(&params)
   err := service.NewPurchaseService().Submit(uint(id))
   if err != nil {
      global.GVA_LOG.Error("更新失败!", zap.Error(err))
      response.FailWithMessage("更新失败", c)
@@ -192,3 +206,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(&params)
   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)
}