integrate-onpoint #54

Merged
sinhluu merged 15 commits from integrate-onpoint into master 2022-10-31 09:33:39 +00:00
7 changed files with 153 additions and 46 deletions

View File

@ -98,3 +98,24 @@ func (o Order) ORNotUpdateStatus(p model.OrderORsNotUpdateStatus) error {
} }
return nil return nil
} }
// GetSupplierOrders ...
func (o Order) GetSupplierOrders(p model.OrderSupplierQuery) (*model.SupplierOrderList, error) {
msg, err := natsio.GetServer().Request(subject.Order.GetSupplierOrders, toBytes(p))
if err != nil {
return nil, err
}
var (
r struct {
Data model.SupplierOrderList `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
}

View File

@ -3,6 +3,7 @@ package client
import ( import (
"encoding/json" "encoding/json"
"errors" "errors"
"fmt"
"git.selly.red/Selly-Modules/natsio" "git.selly.red/Selly-Modules/natsio"
"git.selly.red/Selly-Modules/natsio/model" "git.selly.red/Selly-Modules/natsio/model"
@ -163,3 +164,21 @@ func (w Warehouse) GetWarehouses(p model.GetWarehousesRequest) (*model.GetWareho
} }
return r.Data, nil return r.Data, nil
} }
// UpdateORDeliveryStatus ...
func (w Warehouse) UpdateORDeliveryStatus(p model.WarehouseORUpdateDeliveryStatus) error {
msg, err := natsio.GetServer().Request(subject.Warehouse.GetWarehouses, toBytes(p))
if err != nil {
return err
}
var r struct {
Error string `json:"error"`
}
if err = json.Unmarshal(msg.Data, &r); err != nil {
return fmt.Errorf("nats: update_or_delivery_status %v", err)
}
if r.Error != "" {
return errors.New(r.Error)
}
return nil
}

View File

@ -2,6 +2,7 @@ package model
// OrderUpdateORStatus ... // OrderUpdateORStatus ...
type OrderUpdateORStatus struct { type OrderUpdateORStatus struct {
ID string `json:"id"`
OrderCode string `json:"orderCode"` OrderCode string `json:"orderCode"`
ORCode string `json:"orCode"` ORCode string `json:"orCode"`
Status string `json:"status"` Status string `json:"status"`
@ -38,3 +39,13 @@ type OrderUpdateLogisticInfoFailed struct {
type OrderORsNotUpdateStatus struct { type OrderORsNotUpdateStatus struct {
ORCodes []string `json:"orCodes"` ORCodes []string `json:"orCodes"`
} }
// OrderSupplierQuery ...
type OrderSupplierQuery struct {
Limit int64 `json:"limit"`
Page int64 `json:"page"`
FromDate string `json:"fromDate"`
ToDate string `json:"toDate"`
SupplierID string `json:"supplierId"`
WarehouseIDs []string `json:"warehouseIDs"`
}

35
model/order_response.go Normal file
View File

@ -0,0 +1,35 @@
package model
import "time"
// SupplierOrderList ...
type SupplierOrderList struct {
List []SupplierOrder `json:"list"`
Total int64 `json:"total" example:"100"`
Limit int64 `json:"limit" example:"20"`
}
// SupplierOrder ...
type SupplierOrder struct {
ID string `json:"_id"`
Code string `json:"code"`
CreatedAt time.Time `json:"createdAt"`
Status string `json:"status"`
WarehouseStatus string `json:"warehouseStatus"`
Items []SupplierOrderItem `json:"items"`
Delivery SupplierOrderDelivery `json:"delivery"`
}
// SupplierOrderItem ...
type SupplierOrderItem struct {
ID string `json:"_id" example:"1231"`
SupplierSKU string `json:"supplierSku" example:"SUPPLIER_SKU"`
Quantity int64 `json:"quantity" example:"2"`
}
// SupplierOrderDelivery ...
type SupplierOrderDelivery struct {
Code string `json:"code" example:"123187287"`
Status string `json:"status" enums:"waiting_to_confirm,waiting_to_pick,picking,picked,delay_pickup,pickup_failed,delivering,delay_delivery,delivered,cancelled,delivery_failed,waiting_to_return,returning,delay_return,compensation,returned"`
TPLCode string `json:"tplCode" enums:"SLY,GHTK,GHN,SSC,SPY,VTP,SE,NTL,BEST"`
}

View File

@ -2,17 +2,18 @@ package model
// OutboundRequestPayload ... // OutboundRequestPayload ...
type OutboundRequestPayload struct { type OutboundRequestPayload struct {
OrderID string `json:"orderId"` OrderID string `json:"orderId"`
OrderCode string `json:"orderCode"` OrderCode string `json:"orderCode"`
TrackingCode string `json:"trackingCode"` TrackingCode string `json:"trackingCode"`
WarehouseID string `json:"warehouseId"` WarehouseID string `json:"warehouseId"`
SupplierID string `json:"supplierId"` SupplierID string `json:"supplierId"`
Note string `json:"note"` Note string `json:"note"`
CODAmount float64 `json:"codAmount"` CODAmount float64 `json:"codAmount"`
TPLCode string `json:"tplCode"` TPLCode string `json:"tplCode"`
Customer CustomerInfo `json:"customer"` Customer CustomerInfo `json:"customer"`
Items []OutboundRequestItem `json:"items"` Items []OutboundRequestItem `json:"items"`
Insurance *InsuranceOpts `json:"insurance"` Insurance *InsuranceOpts `json:"insurance"`
PaymentMethod string `json:"paymentMethod"`
} }
// InsuranceOpts ... // InsuranceOpts ...
@ -36,9 +37,11 @@ type InsuranceOpts struct {
// OutboundRequestItem ... // OutboundRequestItem ...
type OutboundRequestItem struct { type OutboundRequestItem struct {
SupplierSKU string `json:"supplierSKU"` SupplierSKU string `json:"supplierSKU"`
Quantity int64 `json:"quantity"` Quantity int64 `json:"quantity"`
UnitCode string `json:"unitCode"` UnitCode string `json:"unitCode"`
Price float64 `json:"price"`
Name string `json:"name"`
} }
// CustomerInfo ... // CustomerInfo ...
@ -63,18 +66,22 @@ type UpdateOutboundRequestLogisticInfoPayload struct {
ShippingLabel string `json:"shippingLabel"` ShippingLabel string `json:"shippingLabel"`
TrackingCode string `json:"trackingCode"` TrackingCode string `json:"trackingCode"`
ORCode string `json:"orCode"` ORCode string `json:"orCode"`
TPLCode string `json:"tplCode"`
OrderID string `json:"orderId"`
} }
// CancelOutboundRequest ... // CancelOutboundRequest ...
type CancelOutboundRequest struct { type CancelOutboundRequest struct {
ORCode string `json:"orCode"` ORCode string `json:"orCode"`
Note string `json:"note"` OrderID string `json:"orderId"`
Note string `json:"note"`
} }
// SyncORStatusRequest ... // SyncORStatusRequest ...
type SyncORStatusRequest struct { type SyncORStatusRequest struct {
ORCode string `json:"orCode"` ORCode string `json:"orCode"`
OrderCode string `json:"orderCode"` OrderCode string `json:"orderCode"`
OrderID string `json:"orderId"`
} }
// UpdateSupplierIsClosedRequest ... // UpdateSupplierIsClosedRequest ...
@ -98,3 +105,11 @@ type GetWarehousesRequest struct {
Page int64 `json:"page"` Page int64 `json:"page"`
Limit int64 `json:"limit"` Limit int64 `json:"limit"`
} }
// WarehouseORUpdateDeliveryStatus ...
type WarehouseORUpdateDeliveryStatus struct {
ORCode string `json:"orCode"`
OrderCode string `json:"orderCode"`
OrderID string `json:"orderId"`
DeliveryStatus string `json:"deliveryStatus"`
}

View File

@ -12,10 +12,12 @@ var Order = struct {
ChangeDeliveryStatus string ChangeDeliveryStatus string
UpdateLogisticInfoFailed string UpdateLogisticInfoFailed string
ORNotUpdateStatus string ORNotUpdateStatus string
GetSupplierOrders string
}{ }{
UpdateORStatus: getOrderValue("update_outbound_request_status"), UpdateORStatus: getOrderValue("update_outbound_request_status"),
CancelDelivery: getOrderValue("cancel_delivery"), CancelDelivery: getOrderValue("cancel_delivery"),
ChangeDeliveryStatus: getOrderValue("change_delivery_status"), ChangeDeliveryStatus: getOrderValue("change_delivery_status"),
UpdateLogisticInfoFailed: getOrderValue("update_logistic_info_failed"), UpdateLogisticInfoFailed: getOrderValue("update_logistic_info_failed"),
ORNotUpdateStatus: getOrderValue("outbound_request_not_update_status"), ORNotUpdateStatus: getOrderValue("outbound_request_not_update_status"),
GetSupplierOrders: getOrderValue("get_supplier_orders"),
} }

View File

@ -9,37 +9,41 @@ func getWarehouseValue(val string) string {
var Warehouse = struct { var Warehouse = struct {
CreateWarehouseIntoServiceSupplier string CreateWarehouseIntoServiceSupplier string
UpdateWarehouseIntoServiceSupplier string UpdateWarehouseIntoServiceSupplier string
CreateOutboundRequest string CreateOutboundRequest string
UpdateOutboundRequestLogistic string UpdateOutboundRequestLogistic string
CancelOutboundRequest string CancelOutboundRequest string
GetConfiguration string GetConfiguration string
SyncORStatus string SyncORStatus string
WebhookTNC string WebhookTNC string
WebhookGlobalCare string WebhookGlobalCare string
FindOne string WebhookOnPoint string
FindByCondition string FindOne string
Distinct string FindByCondition string
Count string Distinct string
AfterUpdateWarehouse string Count string
AfterCreateWarehouse string AfterUpdateWarehouse string
UpdateIsClosedSupplier string AfterCreateWarehouse string
GetWarehouses string UpdateIsClosedSupplier string
GetWarehouses string
UpdateORDeliveryStatus string
}{ }{
CreateWarehouseIntoServiceSupplier: getWarehouseValue("create_warehouse_into_service_supplier"), CreateWarehouseIntoServiceSupplier: getWarehouseValue("create_warehouse_into_service_supplier"),
UpdateWarehouseIntoServiceSupplier: getWarehouseValue("update_warehouse_into_service_supplier"), UpdateWarehouseIntoServiceSupplier: getWarehouseValue("update_warehouse_into_service_supplier"),
AfterCreateWarehouse: getWarehouseValue("after_create_warehouse"), AfterCreateWarehouse: getWarehouseValue("after_create_warehouse"),
AfterUpdateWarehouse: getWarehouseValue("after_update_warehouse"), AfterUpdateWarehouse: getWarehouseValue("after_update_warehouse"),
CreateOutboundRequest: getWarehouseValue("create_outbound_request"), CreateOutboundRequest: getWarehouseValue("create_outbound_request"),
UpdateOutboundRequestLogistic: getWarehouseValue("update_outbound_request_logistic_info"), UpdateOutboundRequestLogistic: getWarehouseValue("update_outbound_request_logistic_info"),
CancelOutboundRequest: getWarehouseValue("cancel_outbound_request"), CancelOutboundRequest: getWarehouseValue("cancel_outbound_request"),
GetConfiguration: getWarehouseValue("get_configuration"), GetConfiguration: getWarehouseValue("get_configuration"),
SyncORStatus: getWarehouseValue("sync_or_status"), SyncORStatus: getWarehouseValue("sync_or_status"),
WebhookTNC: getWarehouseValue("webhook_tnc"), WebhookTNC: getWarehouseValue("webhook_tnc"),
WebhookGlobalCare: getWarehouseValue("webhook_global_care"), WebhookGlobalCare: getWarehouseValue("webhook_global_care"),
FindOne: getWarehouseValue("find_one"), WebhookOnPoint: getWarehouseValue("webhook_on_point"),
FindByCondition: getWarehouseValue("find_all_by_condition"), FindOne: getWarehouseValue("find_one"),
Distinct: getWarehouseValue("distinct"), FindByCondition: getWarehouseValue("find_all_by_condition"),
Count: getWarehouseValue("count"), Distinct: getWarehouseValue("distinct"),
UpdateIsClosedSupplier: getWarehouseValue("update_is_closed_supplier"), Count: getWarehouseValue("count"),
GetWarehouses: getWarehouseValue("get_warehouses"), UpdateIsClosedSupplier: getWarehouseValue("update_is_closed_supplier"),
GetWarehouses: getWarehouseValue("get_warehouses"),
UpdateORDeliveryStatus: getWarehouseValue("update_or_delivery_status"),
} }