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) }