@@ -0,0 +1,84 @@
|
||||
package daichongctrl
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
"91porn-server/common"
|
||||
"91porn-server/common/constant"
|
||||
"91porn-server/common/daichong"
|
||||
"91porn-server/common/log"
|
||||
"91porn-server/common/stderr"
|
||||
"91porn-server/models/l/operatorlgmod"
|
||||
"91porn-server/models/v/rchgordmod"
|
||||
"91porn-server/web/service/daichongser"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// 代充 doc
|
||||
// @Summary 手动回调代充订单结果
|
||||
// @Description 手动回调代充订单结果
|
||||
// @Tags 代充-订单
|
||||
// @Accept mpfd,json
|
||||
// @Produce json,html
|
||||
// @Param oid formData string true "订单ID"
|
||||
// @Success 200 {string} json "{"msg": "操作成功"}"
|
||||
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
||||
// @Router /daichong/order/handScore [post]
|
||||
func HandAddScore(c *gin.Context) {
|
||||
manager, err := common.GetAdminAct(c)
|
||||
if err != nil {
|
||||
common.ServeJSON(c, stderr.AdminIDErr, err.Error())
|
||||
return
|
||||
}
|
||||
var arg struct {
|
||||
OID string `form:"oid" json:"oid" binding:"required"`
|
||||
}
|
||||
if err := c.ShouldBind(&arg); err != nil {
|
||||
common.ServeJSON(c, stderr.ErrParamError, err)
|
||||
return
|
||||
}
|
||||
order, _ := rchgordmod.FindRechargeOrderByThirdOrderId(arg.OID)
|
||||
if order.NotifyStatus == rchgordmod.Notify_SUCCESS {
|
||||
c.JSON(http.StatusOK, gin.H{"code": stderr.Failure, "msg": "不可重复手动通知,已经成功通知的订单"})
|
||||
return
|
||||
}
|
||||
var orderStatus int
|
||||
switch order.Status {
|
||||
case rchgordmod.SUCCESS:
|
||||
orderStatus = daichong.Success
|
||||
case rchgordmod.FAILURE:
|
||||
orderStatus = daichong.Failed
|
||||
}
|
||||
if orderStatus != daichong.Success && orderStatus != daichong.Failed {
|
||||
c.JSON(http.StatusOK, gin.H{"code": stderr.Failure, "msg": "订单状态不是成功或失败状态,无法手动通知"})
|
||||
return
|
||||
}
|
||||
resp, code := daichongser.OrderCallBack(c, daichong.OrderCallSign{
|
||||
OrderId: arg.OID,
|
||||
Time: order.NotifyTime,
|
||||
Status: orderStatus,
|
||||
})
|
||||
selector := rchgordmod.ReplaceEditSelector{}
|
||||
if code == http.StatusOK {
|
||||
notifySuccess := rchgordmod.Notify_SUCCESS
|
||||
selector.NotifyStatus = ¬ifySuccess
|
||||
log.InfoX(c, "daichong order call back send http request successfully",
|
||||
log.Any("msg", resp.Msg),
|
||||
log.Any("orderStatus", orderStatus),
|
||||
log.Any("orderId", arg.OID),
|
||||
log.Any("time", time.Now().Format(time.RFC3339)))
|
||||
} else {
|
||||
notifySuccess := rchgordmod.Notify_SUCCESS
|
||||
selector.NotifyStatus = ¬ifySuccess
|
||||
log.WarnX(c, "daichong order call back send http request failed", log.Any("responseCode", code),
|
||||
log.Any("msg", resp.Msg))
|
||||
}
|
||||
_ = rchgordmod.UpdateBaseOnOidAndStatus(nil, arg.OID, order.Status, selector)
|
||||
logFiled, _ := json.Marshal(&arg)
|
||||
_ = operatorlgmod.RecordOperation(manager, constant.TradeManageRechargeOrder, constant.Modify, string(logFiled),
|
||||
c.Request.URL.RequestURI())
|
||||
c.JSON(http.StatusOK, resp)
|
||||
}
|
||||
Reference in New Issue
Block a user