Files
hjsq_server/app/api/txnactctr/txnactctr.go
T
2026-10-08 16:50:13 +08:00

107 lines
3.1 KiB
Go

package txnactctr
import (
"91jd-server/common"
"91jd-server/common/stderr"
"91jd-server/models/v/txnactmod"
"91jd-server/models/v/usermod"
"github.com/gin-gonic/gin"
"go.mongodb.org/mongo-driver/bson/primitive"
)
// GetBanks doc
// @Summary 获取绑定的银行卡列表
// @Description 银行卡绑定
// @Tags 钱包
// @Accept mpfd,json
// @Produce json,html
// @Success 200 {string} json "{"msg": "操作成功"}"
// @Failure 400 {string} json "{"msg": "操作失败"}"
// @Router /mine/txnact/banks [get]
func GetBanks(ctx *gin.Context) {
uid, err := common.GetUID(ctx)
if err != nil {
common.ServeJSON(ctx, stderr.ErrNoToken, err.Error())
return
}
data, err := txnactmod.FindManyByActType(uid, txnactmod.Bank)
if err != nil {
common.ServeJSON(ctx, stderr.ErrServerUnavailable, err.Error())
return
}
common.ServeJSON(ctx, stderr.Success, gin.H{
"list": data,
})
}
// AddBank doc
// @Summary 绑定银行卡
// @Description 银行卡绑定
// @Tags 钱包
// @Accept mpfd,json
// @Produce json,html
// @Param actName body string true "账户姓名"
// @Param act body string true "账户号"
// @Param bankCode body string true "银行代号"
// @Param cardType body string true "卡类型"
// @Success 200 {string} json "{"msg": "操作成功"}"
// @Failure 400 {string} json "{"msg": "操作失败"}"
// @Router /mine/txnact/bank [post]
func AddBank(ctx *gin.Context) {
uid, err := common.GetUID(ctx)
if err != nil {
common.ServeJSON(ctx, stderr.ErrNoToken, err.Error())
return
}
t := txnactmod.TransactionAct{AType: txnactmod.Bank}
if err = ctx.ShouldBind(&t); err != nil {
common.ServeJSON(ctx, stderr.ErrParamError, err.Error())
return
}
t.UID = uid
user, err := usermod.FindUserByUID(uid)
if err != nil {
common.ServeJSON(ctx, stderr.ErrNetWorkBusy, err.Error())
return
}
if user.BankActName != "" && user.BankActName != t.ActName {
common.ServeJSON(ctx, stderr.DifferentBankActName, "")
return
}
if err = txnactmod.Insert(&t); err != nil {
if stderr.IsEqual(err, stderr.InsertExistError) {
common.ServeJSON(ctx, stderr.ErrWithDrawAccountHasBind, err.Error())
return
}
common.ServeJSON(ctx, stderr.ErrDbInsertError, err.Error())
return
}
common.ServeJSON(ctx, stderr.Success, nil)
}
// DelAlipay doc
// @Summary 删除除提现账户
// @Description 删除除提现账户
// @Tags 钱包
// @Accept mpfd,json
// @Produce json,html
// @Param id body string true "id"
// @Success 200 {string} json "{"msg": "操作成功"}"
// @Failure 400 {string} json "{"msg": "操作失败"}"
// @Router /mine/txnact/del [delete]
func DelTxAccount(ctx *gin.Context) {
var p struct {
ID primitive.ObjectID `json:"id"`
}
if err := ctx.ShouldBind(&p); err != nil {
common.ServeJSON(ctx, stderr.ErrParamError, err.Error())
return
}
if _, err := txnactmod.DeleteByID(p.ID); err != nil {
common.ServeJSON(ctx, stderr.ErrDbDeleteError, err.Error())
return
}
common.ServeJSON(ctx, stderr.Success, nil)
}