Files
wechat_ipad_pro/api/controller/payController.go
2026-02-17 13:06:23 +08:00

154 lines
4.5 KiB
Go

package controller
import (
"net/http"
"strings"
"xiawan/wx/api/req"
"xiawan/wx/api/service"
"xiawan/wx/api/vo"
"xiawan/wx/clientsdk/baseinfo"
"github.com/gin-gonic/gin"
)
// GetBandCardListApi 获取银行卡信息
func GetBandCardListApi(ctx *gin.Context) {
queryKey, isExist := ctx.GetQuery("key")
if !isExist || strings.Trim(queryKey, "") == "" || strings.Trim(queryKey, "") == "null" {
//确保每次都有Key
ctx.JSON(http.StatusOK, vo.NewFailUUId(""))
return
}
result := service.GetBandCardListService(queryKey)
ctx.JSON(http.StatusOK, result)
}
// GeneratePayQCodeApi 生成自定义收款二维码
func GeneratePayQCodeApi(ctx *gin.Context) {
reqModel := new(req.GeneratePayQCodeModel)
queryKey, isExist := ctx.GetQuery("key")
if !isExist || strings.Trim(queryKey, "") == "" || strings.Trim(queryKey, "") == "null" {
//确保每次都有Key
ctx.JSON(http.StatusOK, vo.NewFailUUId(""))
return
}
if !validateData(ctx, &reqModel) {
return
}
result := service.GeneratePayQCodeService(queryKey, *reqModel)
ctx.JSON(http.StatusOK, result)
}
// CollectMoneyApi 确定收款
func CollectMoneyApi(ctx *gin.Context) {
reqModel := new(req.CollectmoneyModel)
queryKey, isExist := ctx.GetQuery("key")
if !isExist || strings.Trim(queryKey, "") == "" || strings.Trim(queryKey, "") == "null" {
//确保每次都有Key
ctx.JSON(http.StatusOK, vo.NewFailUUId(""))
return
}
if !validateData(ctx, &reqModel) {
return
}
result := service.CollectMoneyService(queryKey, *reqModel)
ctx.JSON(http.StatusOK, result)
}
// WXCreateRedPacketApi 创建红包
func WXCreateRedPacketApi(ctx *gin.Context) {
reqModel := new(baseinfo.RedPacket)
queryKey, isExist := ctx.GetQuery("key")
if !isExist || strings.Trim(queryKey, "") == "" || strings.Trim(queryKey, "") == "null" {
//确保每次都有Key
ctx.JSON(http.StatusOK, vo.NewFailUUId(""))
return
}
if !validateData(ctx, &reqModel) {
return
}
result := service.WXCreateRedPacketService(queryKey, *reqModel)
ctx.JSON(http.StatusOK, result)
}
// OpenRedEnvelopesApi 拆红包
func OpenRedEnvelopesApi(ctx *gin.Context) {
reqModel := new(baseinfo.HongBaoItem)
queryKey, isExist := ctx.GetQuery("key")
if !isExist || strings.Trim(queryKey, "") == "" || strings.Trim(queryKey, "") == "null" {
//确保每次都有Key
ctx.JSON(http.StatusOK, vo.NewFailUUId(""))
return
}
if !validateData(ctx, &reqModel) {
return
}
result := service.OpenRedEnvelopesService(queryKey, *reqModel)
ctx.JSON(http.StatusOK, result)
}
// QueryRedEnvelopesDetailApi 查看红包详情
func QueryRedEnvelopesDetailApi(ctx *gin.Context) {
reqModel := new(baseinfo.HongBaoItem)
queryKey, isExist := ctx.GetQuery("key")
if !isExist || strings.Trim(queryKey, "") == "" || strings.Trim(queryKey, "") == "null" {
//确保每次都有Key
ctx.JSON(http.StatusOK, vo.NewFailUUId(""))
return
}
if !validateData(ctx, &reqModel) {
return
}
result := service.QueryRedEnvelopesDetailService(queryKey, *reqModel)
ctx.JSON(http.StatusOK, result)
}
// GetRedPacketListApi 查看红包领取列表
func GetRedPacketListApi(ctx *gin.Context) {
reqModel := new(baseinfo.GetRedPacketList)
queryKey, isExist := ctx.GetQuery("key")
if !isExist || strings.Trim(queryKey, "") == "" || strings.Trim(queryKey, "") == "null" {
//确保每次都有Key
ctx.JSON(http.StatusOK, vo.NewFailUUId(""))
return
}
if !validateData(ctx, &reqModel) {
return
}
result := service.GetRedPacketListService(queryKey, *reqModel)
ctx.JSON(http.StatusOK, result)
}
// CreatePreTransferApi 创建转账
func CreatePreTransferApi(ctx *gin.Context) {
reqModel := new(req.CreatePreTransfer)
queryKey, isExist := ctx.GetQuery("key")
if !isExist || strings.Trim(queryKey, "") == "" || strings.Trim(queryKey, "") == "null" {
//确保每次都有Key
ctx.JSON(http.StatusOK, vo.NewFailUUId(""))
return
}
if !validateData(ctx, &reqModel) {
return
}
result := service.CreatePreTransferService(queryKey, reqModel)
ctx.JSON(http.StatusOK, result)
}
// ConfirmPreTransferApi 确认转账(客户端版本过低会无法转账)
func ConfirmPreTransferApi(ctx *gin.Context) {
reqModel := new(req.ConfirmPreTransfer)
queryKey, isExist := ctx.GetQuery("key")
if !isExist || strings.Trim(queryKey, "") == "" || strings.Trim(queryKey, "") == "null" {
//确保每次都有Key
ctx.JSON(http.StatusOK, vo.NewFailUUId(""))
return
}
if !validateData(ctx, &reqModel) {
return
}
result := service.ConfirmPreTransferService(queryKey, reqModel)
ctx.JSON(http.StatusOK, result)
}