fix:购物车下单
This commit is contained in:
@@ -1,19 +1,77 @@
|
||||
package order
|
||||
|
||||
type AmountCurrency struct {
|
||||
ExchangeRate float64 `json:"exchange_rate"` // 换算汇率
|
||||
CurrentAmount float64 `json:"current_amount"` // 当前金额
|
||||
OriginalAmount float64 `json:"original_amount"` // 原始金额
|
||||
CurrentCurrency string `json:"current_currency"` // 当前货币
|
||||
OriginalCurrency string `json:"original_currency"` // 原始货币
|
||||
import (
|
||||
"fusenapi/model/gmodel"
|
||||
)
|
||||
|
||||
type AmountCurrencyReq struct {
|
||||
ExchangeRate int64 `json:"exchange_rate"` // 换算汇率
|
||||
CurrentAmount int64 `json:"current_amount"` // 当前金额
|
||||
OriginalAmount int64 `json:"original_amount"` // 原始金额
|
||||
CurrentCurrency string `json:"current_currency"` // 当前货币
|
||||
OriginalCurrency string `json:"original_currency"` // 原始货币
|
||||
}
|
||||
|
||||
// 汇率换算
|
||||
func GetAmountCurrency(req *AmountCurrency) error {
|
||||
if req.CurrentCurrency == req.OriginalCurrency {
|
||||
req.CurrentAmount = req.OriginalAmount
|
||||
} else {
|
||||
req.CurrentAmount = req.OriginalAmount * req.ExchangeRate
|
||||
func GetAmountCurrency(req *AmountCurrencyReq) gmodel.AmountCurrency {
|
||||
if req.CurrentAmount != 0 {
|
||||
if req.CurrentCurrency == req.OriginalCurrency {
|
||||
req.CurrentAmount = req.OriginalAmount
|
||||
} else {
|
||||
req.CurrentAmount = req.OriginalAmount * req.ExchangeRate
|
||||
}
|
||||
}
|
||||
|
||||
return gmodel.AmountCurrency{
|
||||
ExchangeRate: req.ExchangeRate,
|
||||
CurrentAmount: req.CurrentAmount,
|
||||
OriginalAmount: req.OriginalAmount,
|
||||
CurrentCurrency: req.CurrentCurrency,
|
||||
OriginalCurrency: req.OriginalCurrency,
|
||||
}
|
||||
}
|
||||
|
||||
type GetAmountInfoReq struct {
|
||||
ExchangeRate int64
|
||||
Initiate int64
|
||||
Current int64
|
||||
Change int64
|
||||
ChangeRemark string
|
||||
Metadata map[string]interface{}
|
||||
CurrentCurrency string
|
||||
OriginalCurrency string
|
||||
}
|
||||
|
||||
// Change AmountCurrency `json:"change,omitempty"` // 变动金额
|
||||
// ChangeRemark string `json:"change_remark,omitempty"` // 变动备注
|
||||
// Current AmountCurrency `json:"current"` // 当前金额
|
||||
// Initiate AmountCurrency `json:"initiate"` // 初始金额
|
||||
// Metadata map[string]interface{} `json:"metadata"` // 额外明细
|
||||
|
||||
func GetAmountInfo(req GetAmountInfoReq) gmodel.AmountInfo {
|
||||
return gmodel.AmountInfo{
|
||||
Change: GetAmountCurrency(&AmountCurrencyReq{
|
||||
ExchangeRate: req.ExchangeRate,
|
||||
CurrentAmount: req.Change,
|
||||
OriginalAmount: req.Change,
|
||||
CurrentCurrency: req.OriginalCurrency,
|
||||
OriginalCurrency: req.OriginalCurrency,
|
||||
}),
|
||||
ChangeRemark: req.ChangeRemark,
|
||||
Current: GetAmountCurrency(&AmountCurrencyReq{
|
||||
ExchangeRate: req.ExchangeRate,
|
||||
CurrentAmount: req.Current,
|
||||
OriginalAmount: req.Current,
|
||||
CurrentCurrency: req.OriginalCurrency,
|
||||
OriginalCurrency: req.OriginalCurrency,
|
||||
}),
|
||||
Initiate: GetAmountCurrency(&AmountCurrencyReq{
|
||||
ExchangeRate: req.ExchangeRate,
|
||||
CurrentAmount: req.Initiate,
|
||||
OriginalAmount: req.Initiate,
|
||||
CurrentCurrency: req.OriginalCurrency,
|
||||
OriginalCurrency: req.OriginalCurrency,
|
||||
}),
|
||||
Metadata: req.Metadata,
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user