216 lines
6.5 KiB
Go
216 lines
6.5 KiB
Go
package txnactctr
|
|
|
|
import (
|
|
"91porn-server/common"
|
|
"91porn-server/common/stderr"
|
|
"91porn-server/models/v/txnactmod"
|
|
"91porn-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)
|
|
}
|
|
|
|
// EditTransactionAct doc
|
|
// @Summary 修改提现账户
|
|
// @Description 修改提现账户
|
|
// @Tags 钱包
|
|
// @Accept mpfd,json
|
|
// @Produce json,html
|
|
// @Param id body string true "id"
|
|
// @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/update [post]
|
|
func EditTransactionAct(ctx *gin.Context) {
|
|
uid, err := common.GetUID(ctx)
|
|
if err != nil {
|
|
common.ServeJSON(ctx, stderr.ErrNoToken, err.Error())
|
|
return
|
|
}
|
|
var p struct {
|
|
ID primitive.ObjectID `json:"id"`
|
|
txnactmod.TransactionActSelector
|
|
}
|
|
if err = ctx.ShouldBind(&p); err != nil {
|
|
common.ServeJSON(ctx, stderr.ErrParamError, err.Error())
|
|
return
|
|
}
|
|
if p.ActName != nil {
|
|
var txa txnactmod.TransactionAct
|
|
txa, err = txnactmod.FindOneByID(p.ID)
|
|
if err != nil {
|
|
common.ServeJSON(ctx, stderr.ErrNetWorkBusy, err.Error())
|
|
return
|
|
}
|
|
if txa.AType == txnactmod.Bank {
|
|
user, err := usermod.FindUserByUID(uid)
|
|
if err != nil {
|
|
common.ServeJSON(ctx, stderr.ErrNetWorkBusy, err.Error())
|
|
return
|
|
}
|
|
if user.BankActName != "" && user.BankActName != *p.ActName {
|
|
common.ServeJSON(ctx, stderr.DifferentBankActName, "")
|
|
return
|
|
}
|
|
}
|
|
}
|
|
if _, err = txnactmod.Update(p.ID, &p.TransactionActSelector); err != nil {
|
|
common.ServeJSON(ctx, stderr.ErrDbInsertError, err.Error())
|
|
return
|
|
}
|
|
common.ServeJSON(ctx, stderr.Success, nil)
|
|
}
|
|
|
|
// GetAlipays doc
|
|
// @Summary 获取支付宝列表
|
|
// @Description 银行卡绑定
|
|
// @Tags 钱包
|
|
// @Accept mpfd,json
|
|
// @Produce json,html
|
|
// @Success 200 {string} json "{"msg": "操作成功"}"
|
|
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
|
// @Router /mine/txnact/alipays [get]
|
|
func GetAlipays(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.Alipay)
|
|
if err != nil {
|
|
common.ServeJSON(ctx, stderr.ErrServerUnavailable, err.Error())
|
|
return
|
|
}
|
|
common.ServeJSON(ctx, stderr.Success, gin.H{
|
|
"list": data,
|
|
})
|
|
}
|
|
|
|
// AddAliPay doc
|
|
// @Summary 绑定支付宝
|
|
// @Description 绑定支付宝
|
|
// @Tags 钱包
|
|
// @Accept mpfd,json
|
|
// @Produce json,html
|
|
// @Param actName body string true "账户姓名"
|
|
// @Param act body string true "账户号"
|
|
// @Success 200 {string} json "{"msg": "操作成功"}"
|
|
// @Failure 400 {string} json "{"msg": "操作失败"}"
|
|
// @Router /mine/txnact/alipay [post]
|
|
func AddAliPay(ctx *gin.Context) {
|
|
uid, err := common.GetUID(ctx)
|
|
if err != nil {
|
|
common.ServeJSON(ctx, stderr.ErrNoToken, err.Error())
|
|
return
|
|
}
|
|
t := txnactmod.TransactionAct{AType: txnactmod.Alipay}
|
|
if err = ctx.ShouldBind(&t); err != nil {
|
|
common.ServeJSON(ctx, stderr.ErrParamError, err.Error())
|
|
return
|
|
}
|
|
t.UID = uid
|
|
if err = txnactmod.Insert(&t); err != nil {
|
|
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)
|
|
}
|