From 90ebefc0ce4306bdc96f34ea9503ca986a59bbe7 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期三, 31 一月 2024 14:12:00 +0800 Subject: [PATCH] 客户列表grpc接口 --- proto/crm_aps/server.go | 68 ++++++++++++++++++++++++++++++++++ 1 files changed, 68 insertions(+), 0 deletions(-) diff --git a/proto/crm_aps/server.go b/proto/crm_aps/server.go index fd51bc1..d199c7b 100644 --- a/proto/crm_aps/server.go +++ b/proto/crm_aps/server.go @@ -4,7 +4,12 @@ "aps_crm/constvar" "aps_crm/model" "aps_crm/model/grpc_init" + "aps_crm/pkg/ecode" + "aps_crm/proto/product_inventory" + "aps_crm/service" "context" + "errors" + "fmt" "github.com/shopspring/decimal" ) @@ -70,6 +75,41 @@ return nil, err } + //鎺ㄩ�佸埌wms + clientName := "" + if detail.ClientId > 0 { + first, err := model.NewClientSearch(nil).SetId(detail.ClientId).First() + if err == nil { + clientName = first.Name + } + } + wmsProducts := make([]*product_inventory.InventoryProduct, 0) + for _, product := range detail.Products { + var p product_inventory.InventoryProduct + p.Id = product.Number + p.Amount = product.Amount.String() + wmsProducts = append(wmsProducts, &p) + } + clientWms := product_inventory.NewProductInventoryServiceClient(grpc_init.ProductInventoryServiceConn) + _, err = clientWms.CreateOperation(ctx, &product_inventory.CreateOperationRequest{ + Number: detail.Number, + Addressee: detail.Addressee, + Address: detail.Address, + Phone: detail.Phone, + DeliverType: int32(detail.DeliverType), + Source: "CRM", + ClientId: int64(detail.ClientId), + ClientName: clientName, + ProductList: wmsProducts, + }) + if err != nil { + //鐘舵�佽繕鍘� + m["status"] = constvar.WaitConfirmed + _ = model.NewSalesDetailsSearch().SetNumber(detail.Number).UpdateByMap(m) + return nil, err + } + + //鎺ㄩ�佸埌aps products := make([]*SalesDetailsProduct, 0) var total decimal.Decimal for _, product := range detail.Products { @@ -93,8 +133,36 @@ Products: products, }) if err != nil { + //鐘舵�佽繕鍘� + m["status"] = constvar.WaitConfirmed + _ = model.NewSalesDetailsSearch().SetNumber(detail.Number).UpdateByMap(m) return nil, err } } return new(SendSalesDetailsAndProjectToCrmResponse), nil } + +func (s *Server) GetClientList(ctx context.Context, req *GetClientListRequest) (*GetClientListResponse, error) { + if req.Page <= 0 || req.PageSize == 0 { + return nil, errors.New("鍙傛暟閿欒") + } + clientService := new(service.ClientService) + params := map[string]interface{}{} + if req.Keyword != "" { + params["name"] = req.Keyword + } + clients, total, errCode := clientService.GetClientList(int(req.Page), int(req.PageSize), params) + if errCode != ecode.OK { + return nil, errors.New(fmt.Sprintf("鍐呴儴閿欒, code:%v", errCode)) + } + resp := new(GetClientListResponse) + resp.Total = total + resp.List = make([]*Client, 0, len(clients)) + for _, client := range clients { + resp.List = append(resp.List, &Client{ + Number: client.Number, + Name: client.Name, + }) + } + return resp, nil +} -- Gitblit v1.8.0