com.snow.auto_monitor/app/http/controllers/transfersys/transfersys.go

104 lines
2.3 KiB
Go
Raw Normal View History

2024-07-12 18:11:21 +08:00
package orders
import (
2024-07-26 10:52:53 +08:00
"strconv"
2024-07-12 18:11:21 +08:00
"time"
common "com.snow.auto_monitor/app/http/controllers"
transEnt "com.snow.auto_monitor/app/http/entities/transfersys"
orderMod "com.snow.auto_monitor/app/models/orders"
2024-07-17 17:04:25 +08:00
proServ "com.snow.auto_monitor/app/services/product"
transServ "com.snow.auto_monitor/app/services/transfersys"
2024-07-12 18:11:21 +08:00
"github.com/gin-gonic/gin"
)
func GetOrder(c *gin.Context) {
2024-07-17 17:04:25 +08:00
item, err := transServ.ReadGroup()
2024-07-12 18:11:21 +08:00
if err != nil {
common.Error(c, 400, err.Error())
return
}
2024-07-26 15:09:57 +08:00
err = orderMod.GetInstance().OrderOutQueue(item.Id)
if err != nil {
common.Error(c, 400, err.Error())
return
}
2024-07-12 18:11:21 +08:00
var response *transEnt.GetOrderResp = nil
2024-07-17 17:04:25 +08:00
product, err := proServ.GetById(item.ProductId)
if err != nil {
common.Error(c, 400, "产品不存在")
return
}
2024-07-12 18:11:21 +08:00
if item != nil {
response = &transEnt.GetOrderResp{
Id: item.Id,
OrderNo: item.OrderNo,
MerchantId: item.MerchantId,
ProductId: item.ProductId,
2024-07-17 17:04:25 +08:00
ProductUrl: product.ProductUrl,
2024-07-12 18:11:21 +08:00
OutTradeNo: item.OutTradeNo,
RechargeAccount: item.RechargeAccount,
AccountType: item.AccountType,
Number: item.Number,
NotifyUrl: item.NotifyUrl,
ExtendParameter: item.ExtendParameter,
Status: item.Status,
TransferStatus: item.TransferStatus,
2024-07-22 10:16:48 +08:00
FailReason: item.FailReason,
2024-07-12 18:11:21 +08:00
CreatedAt: item.CreatedAt.Format(time.RFC3339),
}
} else {
c.JSON(500, gin.H{
"code": 500,
"message": "no data",
})
return
}
common.Success(c, response)
}
func FinishOrder(c *gin.Context) {
request := new(transEnt.FinishOrderReq)
err := common.GenRequest(c, request)
if err != nil {
common.Error(c, 400, err.Error())
return
}
status := 5
if request.Result == "success" {
status = 1
} else if request.Result == "fail" {
status = 4
}
orders := &orderMod.Orders{
Id: request.Id,
ProductId: request.ProductId,
MerchantId: request.MerchantId,
TransferStatus: int64(status),
2024-07-22 10:16:48 +08:00
FailReason: request.FailReason,
2024-07-12 18:11:21 +08:00
}
2024-07-17 17:04:25 +08:00
affected, err := transServ.FinishOrder(orders)
2024-07-12 18:11:21 +08:00
if err != nil || affected == 0 {
2024-07-26 15:09:57 +08:00
common.Error(c, 400, "完成订单失败")
2024-07-12 18:11:21 +08:00
return
}
2024-07-26 10:52:53 +08:00
err = transServ.AddCallback(strconv.Itoa(int(orders.Id)))
if err != nil {
common.Error(c, 400, "添加回调失败")
return
}
2024-07-12 18:11:21 +08:00
response := &transEnt.FinishOrderResp{
Id: orders.Id,
}
common.Success(c, response)
}