From 5ca473ffc1e3d8bf3402b464c0c15b3179d9a251 Mon Sep 17 00:00:00 2001 From: Sinh Date: Fri, 26 Aug 2022 10:28:49 +0700 Subject: [PATCH 1/6] define model --- model/warehouse_request.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/model/warehouse_request.go b/model/warehouse_request.go index 5612532..51bc667 100644 --- a/model/warehouse_request.go +++ b/model/warehouse_request.go @@ -12,6 +12,19 @@ type OutboundRequestPayload struct { TPLCode string `json:"tplCode"` Customer CustomerInfo `json:"customer"` Items []OutboundRequestItem `json:"items"` + Insurance *InsuranceOpts +} + +// InsuranceOpts ... +type InsuranceOpts struct { + VehicleTypeID string `json:"vehicleTypeId"` + VehicleTypeName string `json:"vehicleTypeName"` + InsuranceTypeID string `json:"insuranceTypeId"` + YearsOfInsurance int `json:"yearsOfInsurance"` + License string `json:"license"` + Chassis string `json:"chassis"` + Engine string `json:"engine"` + BeginDate string `json:"beginDate"` } // OutboundRequestItem ... @@ -25,6 +38,7 @@ type OutboundRequestItem struct { type CustomerInfo struct { Name string `json:"name"` PhoneNumber string `json:"phoneNumber"` + Email string `json:"email"` Address AddressDetail `json:"address"` } -- 2.34.1 From 43aa67fa2e6ccd6dbb3a8f4ea9631d21c78bc568 Mon Sep 17 00:00:00 2001 From: Sinh Date: Mon, 29 Aug 2022 15:55:17 +0700 Subject: [PATCH 2/6] update GC --- model/order_request.go | 9 +++++---- model/warehouse_request.go | 6 ++++++ model/warehouse_response.go | 8 ++++++++ subject/communication.go | 12 ++++-------- subject/order.go | 6 ++---- subject/warehouse.go | 6 ++++++ 6 files changed, 31 insertions(+), 16 deletions(-) diff --git a/model/order_request.go b/model/order_request.go index da9d4fe..f8dfde0 100644 --- a/model/order_request.go +++ b/model/order_request.go @@ -2,10 +2,11 @@ package model // OrderUpdateORStatus ... type OrderUpdateORStatus struct { - OrderCode string `json:"orderCode"` - ORCode string `json:"orCode"` - Status string `json:"status"` - Reason string `json:"reason"` + OrderCode string `json:"orderCode"` + ORCode string `json:"orCode"` + Status string `json:"status"` + DeliveryStatus string `json:"deliveryStatus"` + Reason string `json:"reason"` } // OrderCancelDelivery ... diff --git a/model/warehouse_request.go b/model/warehouse_request.go index 51bc667..f63b135 100644 --- a/model/warehouse_request.go +++ b/model/warehouse_request.go @@ -63,3 +63,9 @@ type CancelOutboundRequest struct { ORCode string `json:"orCode"` Note string `json:"note"` } + +// SyncORStatusRequest ... +type SyncORStatusRequest struct { + ORCode string `json:"orCode"` + OrderCode string `json:"orderCode"` +} diff --git a/model/warehouse_response.go b/model/warehouse_response.go index 493a921..cb78ae0 100644 --- a/model/warehouse_response.go +++ b/model/warehouse_response.go @@ -59,3 +59,11 @@ type WarehousePartner struct { Enabled bool `json:"enabled"` Authentication string `json:"authentication"` } + +// SyncORStatusResponse ... +type SyncORStatusResponse struct { + ORCode string `json:"orCode"` + OrderCode string `json:"orderCode"` + Status string `json:"status"` + DeliveryStatus string `json:"deliveryStatus"` +} diff --git a/subject/communication.go b/subject/communication.go index bcbbe31..80926f2 100644 --- a/subject/communication.go +++ b/subject/communication.go @@ -7,13 +7,9 @@ func getCommunicationValue(val string) string { } var Communication = struct { - RequestHTTP string - ResponseHTTP string - WebhookTNC string - WebhookGlobalCare string + RequestHTTP string + ResponseHTTP string }{ - RequestHTTP: getCommunicationValue("request_http"), - ResponseHTTP: getCommunicationValue("response_http"), - WebhookTNC: getCommunicationValue("webhook_tnc"), - WebhookGlobalCare: getCommunicationValue("webhook_global_care"), + RequestHTTP: getCommunicationValue("request_http"), + ResponseHTTP: getCommunicationValue("response_http"), } diff --git a/subject/order.go b/subject/order.go index 846cee5..309f76f 100644 --- a/subject/order.go +++ b/subject/order.go @@ -7,10 +7,8 @@ func getOrderValue(val string) string { } var Order = struct { - UpdateORStatus string - CancelDelivery string - WebhookTNC string - WebhookGlobalCare string + UpdateORStatus string + CancelDelivery string }{ UpdateORStatus: getOrderValue("update_outbound_request_status"), CancelDelivery: getOrderValue("cancel_delivery"), diff --git a/subject/warehouse.go b/subject/warehouse.go index b0801b9..b6e5878 100644 --- a/subject/warehouse.go +++ b/subject/warehouse.go @@ -11,9 +11,15 @@ var Warehouse = struct { UpdateOutboundRequestLogistic string CancelOutboundRequest string GetConfiguration string + SyncORStatus string + WebhookTNC string + WebhookGlobalCare string }{ CreateOutboundRequest: getWarehouseValue("create_outbound_request"), UpdateOutboundRequestLogistic: getWarehouseValue("update_outbound_request_logistic_info"), CancelOutboundRequest: getWarehouseValue("cancel_outbound_request"), GetConfiguration: getWarehouseValue("get_configuration"), + SyncORStatus: getWarehouseValue("sync_or_status"), + WebhookTNC: getWarehouseValue("webhook_tnc"), + WebhookGlobalCare: getWarehouseValue("webhook_global_care"), } -- 2.34.1 From 01c28e1ee3f1b0e17e282d6bcc2210b6c6ba7be1 Mon Sep 17 00:00:00 2001 From: Sinh Date: Tue, 30 Aug 2022 15:55:20 +0700 Subject: [PATCH 3/6] add err log --- server_reqres.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/server_reqres.go b/server_reqres.go index 841f9ef..8979ab0 100644 --- a/server_reqres.go +++ b/server_reqres.go @@ -18,7 +18,11 @@ func (sv Server) Request(subject string, payload []byte) (*nats.Msg, error) { if sv.Config.RequestTimeout > 0 { timeout = sv.Config.RequestTimeout } - return sv.instance.Request(subject, payload, timeout) + msg, err := sv.instance.Request(subject, payload, timeout) + if errors.Is(err, nats.ErrNoResponders) { + log.Printf("[NATS SERVER]: request - no responders for subject: %s", subject) + } + return msg, err } // Reply ... -- 2.34.1 From 12afbd81fe117b9ca644544f205402f0dc8e944e Mon Sep 17 00:00:00 2001 From: Sinh Date: Wed, 31 Aug 2022 10:53:51 +0700 Subject: [PATCH 4/6] add order func --- client/order.go | 16 ++++++++++++++++ model/common_request.go | 5 +++++ model/order_request.go | 7 +++++++ subject/order.go | 10 ++++++---- 4 files changed, 34 insertions(+), 4 deletions(-) diff --git a/client/order.go b/client/order.go index 4379747..5400f52 100644 --- a/client/order.go +++ b/client/order.go @@ -50,3 +50,19 @@ func (o Order) CancelDelivery(p model.OrderCancelDelivery) error { } return nil } + +// ChangeDeliveryStatus ... +func (o Order) ChangeDeliveryStatus(p model.OrderChangeDeliveryStatus) error { + msg, err := natsio.GetServer().Request(subject.Order.ChangeDeliveryStatus, toBytes(p)) + if err != nil { + return err + } + var r model.CommonResponseData + if err = json.Unmarshal(msg.Data, &r); err != nil { + return err + } + if r.Error != "" { + return errors.New(r.Error) + } + return nil +} diff --git a/model/common_request.go b/model/common_request.go index 4d6a719..0ce5163 100644 --- a/model/common_request.go +++ b/model/common_request.go @@ -15,3 +15,8 @@ type DistinctWithField struct { Conditions interface{} `json:"conditions"` Filed string `json:"filed"` } + +type ActionBy struct { + ID string `json:"id"` + Name string `json:"name"` +} diff --git a/model/order_request.go b/model/order_request.go index f8dfde0..553d870 100644 --- a/model/order_request.go +++ b/model/order_request.go @@ -13,3 +13,10 @@ type OrderUpdateORStatus struct { type OrderCancelDelivery struct { OrderID string `json:"orderId"` } + +// OrderChangeDeliveryStatus ... +type OrderChangeDeliveryStatus struct { + OrderID string `json:"orderId"` + DeliveryStatus string `json:"deliveryStatus"` + ActionBy ActionBy `json:"actionBy"` +} diff --git a/subject/order.go b/subject/order.go index 309f76f..7ba7886 100644 --- a/subject/order.go +++ b/subject/order.go @@ -7,9 +7,11 @@ func getOrderValue(val string) string { } var Order = struct { - UpdateORStatus string - CancelDelivery string + UpdateORStatus string + CancelDelivery string + ChangeDeliveryStatus string }{ - UpdateORStatus: getOrderValue("update_outbound_request_status"), - CancelDelivery: getOrderValue("cancel_delivery"), + UpdateORStatus: getOrderValue("update_outbound_request_status"), + CancelDelivery: getOrderValue("cancel_delivery"), + ChangeDeliveryStatus: getOrderValue("change_delivery_status"), } -- 2.34.1 From 9295a8e13f9181cc4546151114f7e1edb387d4e1 Mon Sep 17 00:00:00 2001 From: nguyenphamquangtue <44862367+nguyenphamquangtue@users.noreply.github.com> Date: Wed, 31 Aug 2022 14:48:24 +0700 Subject: [PATCH 5/6] Intergrate model for supplier (#15) * build nats supplier * build nats supplier * build nats supplier * build nats supplier --- client/supplier.go | 21 +++++++++++++++++++++ model/supplier_request.go | 10 ++++++++++ model/supplier_response.go | 14 ++++++++++++++ subject/supplier.go | 2 ++ 4 files changed, 47 insertions(+) diff --git a/client/supplier.go b/client/supplier.go index 5b4881a..700d714 100644 --- a/client/supplier.go +++ b/client/supplier.go @@ -58,3 +58,24 @@ func (s Supplier) GetSupplierContractBySupplierID(p model.GetSupplierContractReq return r.Data, nil } + +func (s Supplier) FindAll(supplierID model.SupplierRequestPayload) (*model.SupplierAll, error) { + msg, err := natsio.GetServer().Request(subject.Supplier.FindAll, toBytes(supplierID)) + if err != nil { + return nil, err + } + + var r struct { + Data *model.SupplierAll `json:"data"` + Error string `json:"error"` + } + + if err = json.Unmarshal(msg.Data, &r); err != nil { + return nil, err + } + if r.Error != "" { + return nil, errors.New(r.Error) + } + + return r.Data, nil +} diff --git a/model/supplier_request.go b/model/supplier_request.go index 8372569..04d15d5 100644 --- a/model/supplier_request.go +++ b/model/supplier_request.go @@ -12,3 +12,13 @@ type GetSupplierRequest struct { type GetSupplierContractRequest struct { SupplierID primitive.ObjectID `json:"supplierID"` } + +// SupplierRequestPayload ... +type SupplierRequestPayload struct { + Limit int + Page int + Keyword string + Status string + PIC string + ContractStatus string +} diff --git a/model/supplier_response.go b/model/supplier_response.go index da33a9f..a87a29e 100644 --- a/model/supplier_response.go +++ b/model/supplier_response.go @@ -13,3 +13,17 @@ type ResponseSupplierContract struct { Name string `json:"name"` Status string `json:"status"` } + +// SupplierBrief ... +type SupplierBrief struct { + ID string `json:"_id"` + Name string `json:"name"` + Status string `json:"status"` + CreatedAt string `json:"createdAt"` + UpdatedAt string `json:"updatedAt"` +} + +type SupplierAll struct { + Suppliers []SupplierBrief `json:"suppliers"` + Total int64 `json:"total"` +} diff --git a/subject/supplier.go b/subject/supplier.go index b2505cf..17ca8d0 100644 --- a/subject/supplier.go +++ b/subject/supplier.go @@ -9,7 +9,9 @@ func getSupplierValue(val string) string { var Supplier = struct { GetListSupplierInfo string GetSupplierContractBySupplierID string + FindAll string }{ GetListSupplierInfo: getSupplierValue("get_list_supplier_info"), GetSupplierContractBySupplierID: getSupplierValue("get_supplier_contract_by_supplier_id"), + FindAll: getSupplierValue("find_all"), } -- 2.34.1 From e0a4a508a65643b7d859ee4f288608693e64018e Mon Sep 17 00:00:00 2001 From: trunglt251292 Date: Wed, 31 Aug 2022 16:51:13 +0700 Subject: [PATCH 6/6] [Update] Action create + update warehouse --- client/warehouse.go | 36 ++++++++++++++++++++++++++++++++++++ subject/warehouse.go | 4 ++++ 2 files changed, 40 insertions(+) diff --git a/client/warehouse.go b/client/warehouse.go index ed19faf..6c04925 100644 --- a/client/warehouse.go +++ b/client/warehouse.go @@ -17,6 +17,42 @@ func GetWarehouse() Warehouse { return Warehouse{} } +// AfterCreateWarehouse ... +func (w Warehouse) AfterCreateWarehouse(p model.WarehouseNatsResponse) error { + msg, err := natsio.GetServer().Request(subject.Warehouse.AfterCreateWarehouse, toBytes(p)) + if err != nil { + return err + } + var r struct { + Error string `json:"error"` + } + if err = json.Unmarshal(msg.Data, &r); err != nil { + return err + } + if r.Error != "" { + return errors.New(r.Error) + } + return nil +} + +// AfterUpdateWarehouse ... +func (w Warehouse) AfterUpdateWarehouse(p model.WarehouseNatsResponse) error { + msg, err := natsio.GetServer().Request(subject.Warehouse.AfterUpdateWarehouse, toBytes(p)) + if err != nil { + return err + } + var r struct { + Error string `json:"error"` + } + if err = json.Unmarshal(msg.Data, &r); err != nil { + return err + } + if r.Error != "" { + return errors.New(r.Error) + } + return nil +} + // CreateOutboundRequest ... func (w Warehouse) CreateOutboundRequest(p model.OutboundRequestPayload) (*model.OutboundRequestResponse, error) { msg, err := natsio.GetServer().Request(subject.Warehouse.CreateOutboundRequest, toBytes(p)) diff --git a/subject/warehouse.go b/subject/warehouse.go index d4f8c53..73c5334 100644 --- a/subject/warehouse.go +++ b/subject/warehouse.go @@ -15,7 +15,11 @@ var Warehouse = struct { FindByCondition string Distinct string Count string + AfterUpdateWarehouse string + AfterCreateWarehouse string }{ + AfterCreateWarehouse: getWarehouseValue("after_create_warehouse"), + AfterUpdateWarehouse: getWarehouseValue("after_update_warehouse"), CreateOutboundRequest: getWarehouseValue("create_outbound_request"), UpdateOutboundRequestLogistic: getWarehouseValue("update_outbound_request_logistic_info"), CancelOutboundRequest: getWarehouseValue("cancel_outbound_request"), -- 2.34.1