Update template email

This commit is contained in:
aditya.siregar
2025-03-08 00:35:23 +07:00
parent 3c80b710af
commit 18003313dd
54 changed files with 2309 additions and 199 deletions
+10 -74
View File
@@ -76,11 +76,9 @@ func (s *OrderService) CreateOrder(ctx mycontext.Context, req *entity.OrderReque
return nil, err
}
var siteID int64
productMap := make(map[int64]*entity.ProductDB)
for _, product := range products {
productMap[product.ID] = product
siteID = product.SiteID
}
totalAmount := 0.0
@@ -93,32 +91,16 @@ func (s *OrderService) CreateOrder(ctx mycontext.Context, req *entity.OrderReque
totalAmount += product.Price * float64(item.Quantity)
}
parsedTime, err := time.Parse("2006-01-02", req.VisitDate)
if err != nil {
fmt.Println("Error parsing date:", err)
return nil, errors.New("visit date not defined")
}
metadata, err := json.Marshal(map[string]string{
"bank_code": req.BankCode,
"bank_name": req.BankName,
})
order := &entity.Order{
PartnerID: req.PartnerID,
RefID: generator.GenerateUUID(),
Status: order2.New.String(),
Amount: totalAmount,
Total: totalAmount + s.cfg.GetOrderFee(req.Source),
Fee: s.cfg.GetOrderFee(req.Source),
PaymentType: req.PaymentMethod,
SiteID: &siteID,
CreatedBy: req.CreatedBy,
OrderItems: []entity.OrderItem{},
Source: req.Source,
VisitDate: parsedTime,
TicketStatus: "UNUSED",
Metadata: metadata,
PartnerID: req.PartnerID,
Status: order2.New.String(),
Amount: totalAmount,
Total: totalAmount + s.cfg.GetOrderFee(req.Source),
Fee: s.cfg.GetOrderFee(req.Source),
PaymentType: req.PaymentMethod,
CreatedBy: req.CreatedBy,
OrderItems: []entity.OrderItem{},
Source: req.Source,
}
for _, item := range req.OrderItems {
@@ -126,7 +108,7 @@ func (s *OrderService) CreateOrder(ctx mycontext.Context, req *entity.OrderReque
ItemID: item.ProductID,
ItemType: productMap[item.ProductID].Type,
Price: productMap[item.ProductID].Price,
Quantity: item.Quantity,
Quantity: int(item.Quantity),
CreatedBy: req.CreatedBy,
Product: productMap[item.ProductID].ToProduct(),
})
@@ -138,12 +120,6 @@ func (s *OrderService) CreateOrder(ctx mycontext.Context, req *entity.OrderReque
return nil, err
}
token, err := s.crypt.GenerateJWTOrder(order)
if err != nil {
logger.ContextLogger(ctx).Error("error when create token", zap.Error(err))
return nil, err
}
order, err = s.repo.FindByID(ctx, order.ID)
if err != nil {
logger.ContextLogger(ctx).Error("error when creating order", zap.Error(err))
@@ -152,7 +128,6 @@ func (s *OrderService) CreateOrder(ctx mycontext.Context, req *entity.OrderReque
return &entity.OrderResponse{
Order: order,
Token: token,
}, nil
}
@@ -187,26 +162,6 @@ func (s *OrderService) CheckInInquiry(ctx mycontext.Context, qrCode string, part
return nil, errors2.ErrorInvalidRequest
}
location, _ := time.LoadLocation("Asia/Jakarta")
today := time.Now().In(location).Format("2006-01-02")
visitDate := time.Date(
order.VisitDate.Year(),
order.VisitDate.Month(),
order.VisitDate.Day(),
0, 0, 0, 0,
location,
).Format("2006-01-02")
if order.TicketStatus == "USED" || visitDate < today {
return nil, errors2.NewErrorMessage(errors2.ErrorTicketInvalidOrAlreadyUsed,
"Maaf! Tiket ini tidak valid karena sudah terpakai atau sudah kadaluwarsa")
}
if visitDate != today {
return nil, errors2.NewErrorMessage(errors2.ErrorTicketInvalidOrAlreadyUsed,
"Maaf Tiket ini tidak valid karena tidak sesuai dengan tanggal tiket")
}
token, err := s.crypt.GenerateJWTOrder(order)
if err != nil {
logger.ContextLogger(ctx).Error("error when generate checkin token", zap.Error(err))
@@ -242,17 +197,6 @@ func (s *OrderService) CheckInExecute(ctx mycontext.Context,
Order: order,
}
if order.TicketStatus != "UNUSED" {
return resp, nil
}
order.TicketStatus = "USED"
order, err = s.repo.Update(ctx, order)
if err != nil {
logger.ContextLogger(ctx).Error("error when updating order status", zap.Error(err))
return nil, err
}
return resp, nil
}
@@ -446,11 +390,6 @@ func (s *OrderService) processQRPayment(ctx mycontext.Context, order *entity.Ord
}
func (s *OrderService) processVAPayment(ctx mycontext.Context, order *entity.Order, partnerID, createdBy int64) (*entity.PaymentResponse, error) {
metadata := map[string]string{}
if err := json.Unmarshal(order.Metadata, &metadata); err != nil {
return nil, err
}
paymentRequest := entity.PaymentRequest{
PaymentReferenceID: generator.GenerateUUIDV4(),
TotalAmount: int64(order.Total),
@@ -458,7 +397,6 @@ func (s *OrderService) processVAPayment(ctx mycontext.Context, order *entity.Ord
CustomerID: strconv.FormatInt(order.User.ID, 10),
CustomerName: order.User.Name,
CustomerEmail: order.User.Email,
BankCode: metadata["bank_code"],
}
paymentResponse, err := s.pg.CreatePaymentVA(paymentRequest)
@@ -544,13 +482,11 @@ func (s *OrderService) processPayment(ctx context.Context, tx *gorm.DB, req *ent
transaction := &entity.Transaction{
PartnerID: existingPayment.PartnerID,
TransactionType: "PAYMENT_RECEIVED",
ReferenceID: existingPayment.ReferenceID,
Status: "SUCCESS",
CreatedBy: 0,
Amount: existingPayment.Amount,
Fee: order.Fee,
Total: order.Total,
SiteID: order.SiteID,
}
if _, err = s.transaction.Create(ctx, tx, transaction); err != nil {
return fmt.Errorf("failed to update transaction: %w", err)