update order
This commit is contained in:
parent
f98200f76b
commit
93ddfdaecc
@ -30,6 +30,10 @@ type Order struct {
|
|||||||
InProgressOrderID int64
|
InProgressOrderID int64
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (o *Order) IsMemberOrder() bool {
|
||||||
|
return o.CustomerID != nil && *o.CustomerID > 0
|
||||||
|
}
|
||||||
|
|
||||||
type OrderDB struct {
|
type OrderDB struct {
|
||||||
Order
|
Order
|
||||||
}
|
}
|
||||||
|
|||||||
@ -160,35 +160,35 @@ func (h *Handler) GetOrderHistory(c *gin.Context) {
|
|||||||
startDateStr := c.Query("start_date")
|
startDateStr := c.Query("start_date")
|
||||||
endDateStr := c.Query("end_date")
|
endDateStr := c.Query("end_date")
|
||||||
|
|
||||||
// Build search request
|
|
||||||
searchReq := entity.SearchRequest{}
|
searchReq := entity.SearchRequest{}
|
||||||
|
|
||||||
// Set status if provided
|
|
||||||
if status != "" {
|
if status != "" {
|
||||||
searchReq.Status = status
|
searchReq.Status = status
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse and set limit
|
limit := 20
|
||||||
limit := 10
|
|
||||||
if limitStr != "" {
|
if limitStr != "" {
|
||||||
parsedLimit, err := strconv.Atoi(limitStr)
|
parsedLimit, err := strconv.Atoi(limitStr)
|
||||||
if err == nil && parsedLimit > 0 {
|
if err == nil && parsedLimit > 0 {
|
||||||
limit = parsedLimit
|
limit = parsedLimit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if limit > 20 {
|
|
||||||
limit = 20
|
if limit > 100 {
|
||||||
|
limit = 100
|
||||||
}
|
}
|
||||||
|
|
||||||
searchReq.Limit = limit
|
searchReq.Limit = limit
|
||||||
|
|
||||||
// Parse and set offset
|
|
||||||
offset := 0
|
offset := 0
|
||||||
|
|
||||||
if offsetStr != "" {
|
if offsetStr != "" {
|
||||||
parsedOffset, err := strconv.Atoi(offsetStr)
|
parsedOffset, err := strconv.Atoi(offsetStr)
|
||||||
if err == nil && parsedOffset >= 0 {
|
if err == nil && parsedOffset >= 0 {
|
||||||
offset = parsedOffset
|
offset = parsedOffset
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
searchReq.Offset = offset
|
searchReq.Offset = offset
|
||||||
|
|
||||||
if startDateStr != "" {
|
if startDateStr != "" {
|
||||||
@ -228,6 +228,8 @@ func (h *Handler) GetOrderHistory(c *gin.Context) {
|
|||||||
responseData = append(responseData, response.OrderHistoryResponse{
|
responseData = append(responseData, response.OrderHistoryResponse{
|
||||||
ID: order.ID,
|
ID: order.ID,
|
||||||
CustomerName: order.CustomerName,
|
CustomerName: order.CustomerName,
|
||||||
|
CustomerID: order.CustomerID,
|
||||||
|
IsMember: order.IsMemberOrder(),
|
||||||
Status: order.Status,
|
Status: order.Status,
|
||||||
Amount: order.Amount,
|
Amount: order.Amount,
|
||||||
Total: order.Total,
|
Total: order.Total,
|
||||||
|
|||||||
@ -190,6 +190,8 @@ type OrderDetailItem struct {
|
|||||||
|
|
||||||
type OrderHistoryResponse struct {
|
type OrderHistoryResponse struct {
|
||||||
ID int64 `json:"id"`
|
ID int64 `json:"id"`
|
||||||
|
IsMember bool `json:"is_member"`
|
||||||
|
CustomerID *int64 `json:"customer_id"`
|
||||||
CustomerName string `json:"customer_name"`
|
CustomerName string `json:"customer_name"`
|
||||||
Status string `json:"status"`
|
Status string `json:"status"`
|
||||||
Amount float64 `json:"amount"`
|
Amount float64 `json:"amount"`
|
||||||
|
|||||||
@ -102,14 +102,9 @@ func MapToOrderResponse(result *entity.OrderResponse) OrderResponse {
|
|||||||
func MapToOrderItemResponses(items []entity.OrderItem) []OrderItemResponse {
|
func MapToOrderItemResponses(items []entity.OrderItem) []OrderItemResponse {
|
||||||
result := make([]OrderItemResponse, 0, len(items))
|
result := make([]OrderItemResponse, 0, len(items))
|
||||||
for _, item := range items {
|
for _, item := range items {
|
||||||
productName := ""
|
|
||||||
if item.Product != nil {
|
|
||||||
productName = item.Product.Name
|
|
||||||
}
|
|
||||||
|
|
||||||
result = append(result, OrderItemResponse{
|
result = append(result, OrderItemResponse{
|
||||||
ProductID: item.ItemID,
|
ProductID: item.ItemID,
|
||||||
ProductName: productName,
|
ProductName: item.ItemName,
|
||||||
Price: item.Price,
|
Price: item.Price,
|
||||||
Quantity: item.Quantity,
|
Quantity: item.Quantity,
|
||||||
Subtotal: item.Price * float64(item.Quantity),
|
Subtotal: item.Price * float64(item.Quantity),
|
||||||
|
|||||||
@ -100,7 +100,6 @@ func (r *orderRepository) Create(ctx mycontext.Context, order *entity.Order) (*e
|
|||||||
item.ID = itemDB.ID
|
item.ID = itemDB.ID
|
||||||
}
|
}
|
||||||
|
|
||||||
// Commit the transaction
|
|
||||||
if err := tx.Commit().Error; err != nil {
|
if err := tx.Commit().Error; err != nil {
|
||||||
return nil, errors.Wrap(err, "failed to commit transaction")
|
return nil, errors.Wrap(err, "failed to commit transaction")
|
||||||
}
|
}
|
||||||
@ -254,6 +253,20 @@ func (r *orderRepository) toOrderDBModel(order *entity.Order) models.OrderDB {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (r *orderRepository) toDomainOrderModel(dbModel *models.OrderDB) *entity.Order {
|
func (r *orderRepository) toDomainOrderModel(dbModel *models.OrderDB) *entity.Order {
|
||||||
|
|
||||||
|
orderItems := make([]entity.OrderItem, 0, len(dbModel.OrderItems))
|
||||||
|
for _, itemDB := range dbModel.OrderItems {
|
||||||
|
orderItems = append(orderItems, entity.OrderItem{
|
||||||
|
ItemID: itemDB.ItemID,
|
||||||
|
ItemType: itemDB.ItemType,
|
||||||
|
ItemName: itemDB.ItemName,
|
||||||
|
Price: itemDB.Price,
|
||||||
|
Quantity: itemDB.Quantity,
|
||||||
|
CreatedBy: itemDB.CreatedBy,
|
||||||
|
CreatedAt: itemDB.CreatedAt,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
return &entity.Order{
|
return &entity.Order{
|
||||||
ID: dbModel.ID,
|
ID: dbModel.ID,
|
||||||
PartnerID: dbModel.PartnerID,
|
PartnerID: dbModel.PartnerID,
|
||||||
@ -268,7 +281,7 @@ func (r *orderRepository) toDomainOrderModel(dbModel *models.OrderDB) *entity.Or
|
|||||||
CreatedBy: dbModel.CreatedBy,
|
CreatedBy: dbModel.CreatedBy,
|
||||||
CreatedAt: dbModel.CreatedAt,
|
CreatedAt: dbModel.CreatedAt,
|
||||||
UpdatedAt: dbModel.UpdatedAt,
|
UpdatedAt: dbModel.UpdatedAt,
|
||||||
OrderItems: []entity.OrderItem{},
|
OrderItems: orderItems,
|
||||||
CustomerName: dbModel.CustomerName,
|
CustomerName: dbModel.CustomerName,
|
||||||
TableNumber: dbModel.TableNumber,
|
TableNumber: dbModel.TableNumber,
|
||||||
OrderType: dbModel.OrderType,
|
OrderType: dbModel.OrderType,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user