zhangqian
2024-02-04 a540cf74963886f5cb28a67b274b803fb605ec2e
api/v1/salesDetails.go
@@ -1,7 +1,6 @@
package v1
import (
   "aps_crm/conf"
   "aps_crm/constvar"
   "aps_crm/model"
   "aps_crm/model/grpc_init"
@@ -16,9 +15,8 @@
   "aps_crm/utils"
   "github.com/gin-gonic/gin"
   "github.com/shopspring/decimal"
   "google.golang.org/grpc"
   "google.golang.org/grpc/credentials/insecure"
   "strconv"
   "strings"
)
type SalesDetailsApi struct{}
@@ -239,25 +237,6 @@
   ctx.Ok()
}
var (
   ProductInventoryServiceConn *grpc.ClientConn
)
func InitProductInventoryServiceConn() {
   var err error
   ProductInventoryServiceConn, err = grpc.Dial(conf.Conf.GrpcServiceAddr.WMS, grpc.WithTransportCredentials(insecure.NewCredentials()))
   if err != nil {
      logx.Errorf("grpc dial product service error: %v", err.Error())
      return
   }
}
func CloseProductInventoryServiceConn() {
   if ProductInventoryServiceConn != nil {
      ProductInventoryServiceConn.Close()
   }
}
// GetProductInventoryInfo
//
// @Tags      SalesDetails
@@ -273,9 +252,13 @@
      return
   }
   number := c.Param("number")
   client := product_inventory.NewProductInventoryServiceClient(ProductInventoryServiceConn)
   client := product_inventory.NewProductInventoryServiceClient(grpc_init.ProductInventoryServiceConn)
   info, err := client.GetInventoryProductInfo(ctx.GetCtx(), &product_inventory.GetInventoryProductInfoRequest{Number: number})
   if err != nil {
      if strings.Contains(err.Error(), "record not found") {
         ctx.Ok()
         return
      }
      logx.Errorf("GetProductInfo err: %v", err.Error())
      ctx.FailWithMsg(ecode.UnknownErr, "grpc调用错误")
      return
@@ -305,7 +288,8 @@
   client := crm_aps.NewCrmAndApsGrpcServiceClient(grpc_init.CrmApsGrpcServiceConn)
   projectList, err := client.GetApsProjectList(c, &crm_aps.GetApsProjectListRequest{})
   if err != nil {
      ctx.FailWithMsg(ecode.UnknownErr, "grpc调用错误: "+err.Error())
      logx.Errorf("grpc GetApsProjectList err: %v", err.Error())
      ctx.FailWithMsg(ecode.UnknownErr, "获取aps项目列表失败")
      return
   }
   ctx.OkWithDetailed(projectList.List)
@@ -326,8 +310,18 @@
   if !ok {
      return
   }
   clientName := ""
   if params.ClientId > 0 {
      first, err := model.NewClientSearch(nil).SetId(params.ClientId).First()
      if err != nil {
         ctx.FailWithMsg(ecode.UnknownErr, "客户信息查询失败")
         return
      }
      clientName = first.Name
   }
   m := make(map[string]interface{})
   m["status"] = params.Status
   m["project_id"] = params.ProjectId
   err := model.NewSalesDetailsSearch().SetNumber(params.Number).UpdateByMap(m)
   if err != nil {
      ctx.FailWithMsg(ecode.UnknownErr, "状态更新失败")
@@ -342,17 +336,20 @@
      p.Amount = product.Amount.String()
      wmsProducts = append(wmsProducts, &p)
   }
   clientWms := product_inventory.NewProductInventoryServiceClient(ProductInventoryServiceConn)
   clientWms := product_inventory.NewProductInventoryServiceClient(grpc_init.ProductInventoryServiceConn)
   _, err = clientWms.CreateOperation(ctx.GetCtx(), &product_inventory.CreateOperationRequest{
      Number:      params.Number,
      Addressee:   params.Addressee,
      Address:     params.Address,
      Phone:       params.Phone,
      DeliverType: int32(params.DeliverType),
      Source:      "CRM",
      ClientId:    int64(params.ClientId),
      ClientName:  clientName,
      ProductList: wmsProducts,
   })
   if err != nil {
      logx.Errorf("CreateOperation err: %v", err.Error())
      logx.Errorf("grpc CreateOperation err: %v", err.Error())
   }
   //推送到aps
@@ -382,7 +379,8 @@
      //状态还原
      m["status"] = constvar.WaitConfirmed
      _ = model.NewSalesDetailsSearch().SetNumber(params.Number).UpdateByMap(m)
      ctx.FailWithMsg(ecode.UnknownErr, "grpc调用错误: "+err.Error())
      logx.Errorf("grpc SendSalesDetailsToApsProject err: %v", err.Error())
      ctx.FailWithMsg(ecode.UnknownErr, "推送失败,请检查参数是否正确")
      return
   }
   ctx.Ok()