relynolli-server/services/order.go

132 lines
3.8 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package services
//func GetTotal(fuserId int) float64 {
// rdb := internal.InitRedis()
// keys, _ := rdb.Keys(context.Background(), fmt.Sprintf("api.api_cart.%d.*", fuserId)).Result()
//
// result := []models.CatalogWithQuantityWeb{}
//
// for _, key := range keys {
// str, _ := rdb.Get(context.Background(), key).Result()
// item := models.CatalogWithQuantityWeb{}
//
// json.Unmarshal([]byte(str), &item)
// result = append(result, item)
// }
//
// sum := float64(0)
//
// for _, catalogItem := range result {
// sum = sum + catalogItem.Price["BASE"].(float64)*float64(catalogItem.Quantity)
// }
//
// return sum
//}
//
//type addProductsToOrderReq struct {
// ProductId int `db:"product_id"`
// PriceTypeId int `db:"price_type_id"`
// Quantity int `db:"quantity"`
// Price float64 `db:"price"`
//}
//
//func addProductsToOrder(api bitrix.Bitrix, fuserId int, orderId int) error {
// //Получаем данные из корзины
//
// cartItems := GetCartItems(fuserId)
//
// rdb := internal.InitRedis()
// rdb.Keys(context.Background(), "")
//
// for _, product := range cartItems {
// err := api.AddProductToOrder(orderId, product.Id, product.Price["BASE"].(float64), product.Quantity)
// if err != nil {
// return err
// }
// }
// return nil
//
//}
//
//func MakeOrder(fuserId int, email string, fullName string, phone string) (map[string]interface{}, error) {
//
// // Инициализируем api
//
// api := bitrix.Initialize()
//
// // 1. Создаем анонимного пользователя
//
// userId, _ := api.CreateAnonymousUser()
//
// // 2. Создаем заказ
// orderId, _ := api.CreateOrder(userId)
//
// // --- обновляем контакт пользователя
// order, orderErr := api.GetOrderInfo(orderId)
// if orderErr != nil {
// return nil, orderErr
// }
// clientId, _ := strconv.Atoi(order.Clients[0].EntityId)
// api.UpdateContact(clientId, email, fullName, phone)
//
// // 3. Добавляем элементы в корзину
// addProductErr := addProductsToOrder(api, fuserId, orderId)
// if addProductErr != nil {
// return nil, addProductErr
// }
//
// // 4. Получаем обновленный ресурс заказа
// order, _ = api.GetOrderInfo(orderId)
//
// // 5. Добавляем способ оплаты товара
// createPaymentError := api.CreatePayment(orderId, order.Price)
//
// if createPaymentError != nil {
// return nil, createPaymentError
// }
//
// // 6. Получаем ресурс оплаты и url для нее
// paymentData, _ := kassa.CreatePayment(orderId, order.Price, fullName, email, phone, getItemsForPayment(order))
//
// insPaymentDataStmt := fmt.Sprintf(`
// insert into api_youkassa_payment (payment_id, order_id, link, status)
// values ('%s',
// '%s',
// '%s',
// '%s');
// `, paymentData["id"].(string),
// orderId,
// paymentData["confirmation"].(map[string]interface{})["confirmation_url"].(string),
// paymentData["status"].(string),
// )
//
// db := internal.InitDatabase()
//
// db.Execute(insPaymentDataStmt)
//
// return paymentData, nil
//}
//
//func getItemsForPayment(order *bitrix.OrderResource) []kassa.KassaReceiptItems {
// result := []kassa.KassaReceiptItems{}
//
// for _, basketItem := range order.BasketItems {
// quantity, _ := strconv.Atoi(strings.Split(basketItem.Quantity, ".")[0])
// item := kassa.KassaReceiptItems{
// Description: basketItem.Name,
// Amount: kassa.KassaAmount{
// Value: fmt.Sprintf("%f", basketItem.Price),
// Currency: "RUB",
// },
// VatCode: VatCodes.NDS_20,
// Quantity: fmt.Sprintf("%d", quantity),
// Measure: Measure.PIECE,
// PaymentSubject: PaymentSubject.COMMODITY,
// PaymentMode: PaymentMode.FULL_PAYMENT,
// }
// result = append(result, item)
// }
//
// return result
//}