1234567891011121314151617181920212223242526272829303132333435363738394041 |
- package payment
- import (
- "eta/eta_mini_ht_api/common/component/cache"
- logger "eta/eta_mini_ht_api/common/component/log"
- "eta/eta_mini_ht_api/common/exception"
- "eta/eta_mini_ht_api/common/utils/redis"
- orderService "eta/eta_mini_ht_api/domian/order"
- )
- var (
- redisUtils = cache.GetInstance()
- )
- func CreatePaymentOrder(userId, templateUserId int, OrderNo string, tradeNo string) (err error) {
- //先获取当前商品订单的支付记录
- tradeOrderList, err := orderService.GetUnFailedTradeFlowByProductOrder(OrderNo)
- if len(tradeOrderList) > 0 {
- for _, tradeOrder := range tradeOrderList {
- if tradeOrder.PaymentStatus == "done" {
- logger.Error("当前商品订单已支付,无法再次发起支付")
- return exception.New(exception.PaymentDoneError)
- }
- if tradeOrder.PaymentStatus == "pending" {
- logger.Error("当前商品订单正在支付,无法再次发起支付")
- return exception.New(exception.PaymentProcessingError)
- }
- }
- }
- merchantId := redisUtils.GetString(redis.GenerateMerchantKey())
- if merchantId == "" {
- logger.Error("商户配置信息不存在,无法创建支付订单")
- err = exception.New(exception.MerchantInfoNotConfig)
- return
- }
- return orderService.CreateTradeOrder(userId, templateUserId, OrderNo, tradeNo, merchantId)
- }
- func GenerateProductOrderNo() string {
- return orderService.GenerateTradeOrderNo()
- }
|