49 lines
1.5 KiB
Go
49 lines
1.5 KiB
Go
package walletctrl
|
|
|
|
import (
|
|
"91porn-server/app/service/ai_undress_server"
|
|
"91porn-server/app/service/aiser"
|
|
"91porn-server/common"
|
|
"91porn-server/common/log"
|
|
"91porn-server/common/stderr"
|
|
"91porn-server/models/v/walletmod"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// GetWalletAmount doc
|
|
// @Summary 获取钱包信息
|
|
// @Description 获取钱包信息
|
|
// @Tags 钱包
|
|
// @Accept mpfd,json
|
|
// @Produce json,html
|
|
// @Success 200 {object} walletmod.Wallet "{"msg": "操作成功"}"
|
|
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
|
// @Router /mine/wallet [get]
|
|
func GetWalletAmount(ctx *gin.Context) {
|
|
uid, err := common.GetUID(ctx)
|
|
if err != nil {
|
|
common.ServeJSON(ctx, stderr.ErrNoToken, err.Error())
|
|
return
|
|
}
|
|
// 从AI女友页面返回后,钱包查询会先尝试把第三方剩余余额下分回主钱包。
|
|
// 下分失败只记录告警,钱包接口仍返回当前本地余额。
|
|
if err = aiser.TrySettleDown(ctx.Request.Context(), uid); err != nil {
|
|
log.Warn("wallet AI girlfriend settlement failed", log.Any("uid", uid), log.E(err))
|
|
}
|
|
w, err := walletmod.GetWallet(uid)
|
|
if err != nil {
|
|
common.ServeJSON(ctx, stderr.ErrServerUnavailable, err.Error())
|
|
return
|
|
}
|
|
resp := &walletmod.WalletResp{}
|
|
|
|
// 当日剩余ai免费脱衣次数
|
|
if w != nil {
|
|
resp.Wallet = *w
|
|
resp.TodayAiFreeTimes = ai_undress_server.GetTodayRemainingAiFreeUndressTimes(*w)
|
|
}
|
|
|
|
common.ServeJSON(ctx, stderr.Success, resp)
|
|
}
|