85 lines
2.7 KiB
Go
85 lines
2.7 KiB
Go
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)
|
|
}
|