package service import ( "errors" "github.com/gin-gonic/gin" "shop-api/global" "shop-api/model" "shop-api/model/request" "shop-api/utils" ) func GetUserWalletDetail(userID string) (err error, userInfo *model.Wallet) { var user model.Wallet err = global.MG_DB.Model(&model.Wallet{}).Where("user_id=?", userID).Find(&user).Error if err != nil { return errors.New("获取用户失败"), nil } return nil, &user } func GetUserAccountList(userID string) (err error, userInfo *model.Account) { var user model.Account err = global.MG_DB.Model(&model.Account{}).Where("user_id=?", userID).Find(&user).Error if err != nil { return errors.New("获取用户账户失败"), nil } return nil, &user } func AddUserAccount(userID string, data *request.AddAccount) error { var ( err error accountZ model.Account ) code := RedisGet("msg_code" + data.Phone) if global.MG_CONFIG.System.Env == "develop" && data.Code == "888888" { } else if code != data.Code { return errors.New("验证码验证失败") } err = global.MG_DB.Model(&model.Account{}).Where("user_id=?", userID).Find(&accountZ).Error if err != nil || accountZ.ID != 0 { return errors.New("已存在绑定账户,不可再次绑定") } var account model.Account account.UserID = userID account.AccountName = data.AccountName account.IDCard = data.IDCard account.Phone = data.Phone account.PayPalName = data.PayPalName err = global.MG_DB.Model(&model.Account{}).Create(&account).Error if err != nil { return errors.New("绑定用户账户失败") } return nil } func DeleteUserAccount(userID string, data *request.DeleteAccount) error { var err error code := RedisGet("msg_code" + data.Phone) if global.MG_CONFIG.System.Env == "develop" && data.Code == "888888" { } else if code != data.Code { return errors.New("验证码验证失败") } err = global.MG_DB.Model(&model.Account{}).Where("user_id=? and id=?", userID, data.ID).Delete(&model.Account{}).Error if err != nil { return errors.New("删除账户失败") } return nil } func GetUserCommissionList(userID string, info *request.SearchCommission) (error, interface{}, int64) { var ( err error data []model.Bill limit int offset int total int64 ) limit = info.PageSize offset = info.PageSize * (info.Page - 1) db := global.MG_DB.Model(&model.Bill{}) if info.Receipt != 0 { db = db.Where("receipt=?", info.Receipt) } err = db.Count(&total).Error if err != nil { return errors.New("获取总数失败"), data, total } err = db.Where("user_id=? and type=1", userID).Offset(offset).Limit(limit).Find(&data).Error if err != nil { return errors.New("获取用户账单失败"), data, total } return nil, data, total } func GetUserWithdrawalList(userID string, info *request.SearchWithdrawal) (error, interface{}, int64) { var ( err error data []model.Bill limit int offset int total int64 ) limit = info.PageSize offset = info.PageSize * (info.Page - 1) db := global.MG_DB.Model(&model.Bill{}) if info.Status != 0 { db = db.Where("receipt=?", info.Status) } err = db.Count(&total).Error if err != nil { return errors.New("获取总数失败"), data, total } err = db.Where("user_id=? and type=3", userID).Offset(offset).Limit(limit).Find(&data).Error if err != nil { return errors.New("获取用户账单失败"), data, total } return nil, data, total } func getWallet(platform, userId string) (error, model.Wallet) { var ( err error result model.Wallet ) err = global.MG_DB.Model(&model.Wallet{}).Where("`platform` = ? AND user_id = ?", platform, userId).First(&result).Error return err, result } var ( methods = map[string][]model.PaymentMethod{ "GLOBAL": { model.PaymentMethod{Logo: "https://gw.alipay.com/antom/icon/medium/default/AlipayPlus.svg", Name: "Alipay+", Value: "CONNECT_WALLET", Type: "AlipayPlus"}, }, "MY": { model.PaymentMethod{Logo: "https://gw.alipay.com/icon/medium/default/BOOST.svg", Name: "Boost", Value: "BOOST", Type: "AlipayPlus"}, model.PaymentMethod{Logo: "https://gw.alipay.com/icon/medium/default/TNG.svg", Name: "Touch 'n Go eWallet", Value: "TNG", Type: "AlipayPlus"}, model.PaymentMethod{Logo: "https://resource.alipayplus.com/storage/ipaymentmngfd5e514400714344/2023/07/31/778f4988-2f73-4417-9d41-caaabaf006d0.png", Name: "Shopeepay", Value: "SHOPEEPAY_MY", Type: "Wallet"}, model.PaymentMethod{Logo: "https://gw.alipay.com/antom/icon/medium/default/GrabPay.png", Name: "GrabPay", Value: "GRABPAY_MY", Type: "Wallet"}, model.PaymentMethod{Logo: "https://gw.alipay.com/antom/icon/medium/default/FPX.svg", Name: "FPX", Value: "ONLINEBANKING_FPX", Type: "OnlineBanking"}, }, "TH": { model.PaymentMethod{Logo: "https://gw.alipay.com/antom/icon/medium/default/BangkokBank.svg", Name: "Bangkok Bank", Value: "BANKTRANSFER_BANGKOKBANK", Type: "BankTransfer"}, model.PaymentMethod{Logo: "https://gw.alipay.com/antom/icon/medium/default/KrungThaiBank.svg", Name: "Krung Thai Bank Online Banking", Value: "ONLINEBANKING_KRUNGTHAIBANK", Type: "OnlineBanking"}, model.PaymentMethod{Logo: "https://gw.alipay.com/antom/icon/medium/default/BangkokBank.svg", Name: "Bangkok Bank Online Banking", Value: "ONLINEBANKING_BANGKOKBANK", Type: "OnlineBanking"}, model.PaymentMethod{Logo: "https://gw.alipay.com/antom/icon/medium/default/KasikornBank.svg", Name: "Kasikorn Bank Online Banking", Value: "ONLINEBANKING_KASIKORNBANK", Type: "OnlineBanking"}, model.PaymentMethod{Logo: "https://gw.alipay.com/antom/icon/medium/default/SiamCommercialBank.svg", Name: "Siam Commerical Bank Online Banking", Value: "ONLINEBANKING_SIAMCOMMERICALBANK", Type: "OnlineBanking"}, model.PaymentMethod{Logo: "https://gw.alipay.com/antom/icon/medium/default/KrungThaiBank.svg", Name: "Krung Thai Bank", Value: "BANKTRANSFER_KRUNGTHAIBANK", Type: "OnlineBanking"}, model.PaymentMethod{Logo: "https://gw.alipay.com/antom/icon/medium/default/BankofAyutthaya.svg", Name: "Bank of Ayudhya Online Banking", Value: "ONLINEBANKING_BANKOFAYUDHYA", Type: "OnlineBanking"}, model.PaymentMethod{Logo: "https://gw.alipay.com/antom/icon/medium/default/BankofAyutthaya.svg", Name: "Bank of Ayudhya", Value: "BANKTRANSFER_BANKOFAYUDHYA", Type: "BankTransfer"}, model.PaymentMethod{Logo: "https://gw.alipay.com/antom/icon/medium/default/governmentsavingsbank.png", Name: "Government Savings Bank", Value: "BANKTRANSFER_GOVERNMENTSAVINGSBANK", Type: "BankTransfer"}, model.PaymentMethod{Logo: "https://gw.alipay.com/antom/icon/medium/default/SiamCommercialBank.svg", Name: "Siam Commerical Bank", Value: "BANKTRANSFER_SIAMCOMMERICALBANK", Type: "BankTransfer"}, model.PaymentMethod{Logo: "https://gw.alipay.com/antom/icon/medium/default/KasikornBank.svg", Name: "Kasikorn Bank", Value: "BANKTRANSFER_KASIKORNBANK", Type: "BankTransfer"}, model.PaymentMethod{Logo: "https://gw.alipay.com/icon/medium/default/RABBIT_LINE_PAY.svg", Name: "Rabbit LINE Pay", Value: "RABBIT_LINE_PAY", Type: "AlipayPlus"}, model.PaymentMethod{Logo: "https://gw.alipay.com/icon/medium/default/TRUEMONEY.svg", Name: "TrueMoney Wallet", Value: "TRUEMONEY", Type: "AlipayPlus"}, model.PaymentMethod{Logo: "https://gw.alipay.com/antom/icon/medium/default/PromptPay.png", Name: "Promptpay", Value: "PROMPTPAY", Type: "BankTransfer"}, model.PaymentMethod{Logo: "https://gw.alipay.com/antom/icon/medium/default/Dolfin.png", Name: "Dolfin", Value: "DOLFIN", Type: "Wallet"}, model.PaymentMethod{Logo: "https://gw.alipay.com/antom/icon/medium/default/shopeepay.png", Name: "Shopeepay", Value: "SHOPEEPAY_TH", Type: "Wallet"}, model.PaymentMethod{Logo: "https://resource.alipayplus.com/storage/ipaymentmngfd5e514400714344/2023/10/25/c57db82e-cc67-4e45-b75f-7e77d7b63965.png", Name: "KPLUS", Value: "KPLUS", Type: "AlipayPlus"}, }, "JP": { model.PaymentMethod{Logo: "https://gw.alipay.com/antom/icon/medium/default/PayPay.png", Name: "PayPay", Value: "PAYPAY", Type: "Wallet"}, model.PaymentMethod{Logo: "https://gw.alipay.com/antom/icon/medium/default/konbini.svg", Name: "Konbini", Value: "KONBINI", Type: "OTC"}, model.PaymentMethod{Logo: "https://resource.alipayplus.com/storage/ipaymentmngfd5e514400714344/2024/03/18/19d7cc1b-c950-4fa5-a379-ead65f6b7421.png", Name: "7-Eleven", Value: "SEVENELEVEN", Type: "OTC"}, model.PaymentMethod{Logo: "https://resource.alipayplus.com/storage/ipaymentmngfd5e514400714344/2024/03/18/99382c04-a91d-4a57-8201-523533393885.png", Name: "Pay-easy ATM", Value: "BANKTRANSFER_PAYEASY", Type: "BankTransfer"}, model.PaymentMethod{Logo: "https://resource.alipayplus.com/storage/ipaymentmngfd5e514400714344/2024/03/18/99382c04-a91d-4a57-8201-523533393885.png", Name: "Pay-easy Online Banking", Value: "ONLINEBANKING_PAYEASY", Type: "OnlineBanking"}, model.PaymentMethod{Logo: "https://resource.alipayplus.com/storage/ipaymentmngfd5e514400714344/2024/02/01/5c9caa1a-dcd6-400e-ae07-2ea1c2e4271f.png", Name: "LINE Pay", Value: "LINEPAY", Type: "Wallet"}, model.PaymentMethod{Logo: "https://gw.alipay.com/icon/medium/default/ALIPAY_GENERAL_CARD.svg", Name: "Credit and Debit Card", Value: "CARD", Type: "CARD"}, }, "VN": { model.PaymentMethod{Logo: "https://gw.alipay.com/antom/icon/medium/default/ZaloPay.svg", Name: "ZaloPay", Value: "ZALOPAY", Type: "Wallet"}, }, } ) func GetCountryPaymentMethod(c *gin.Context) (error, []model.PaymentMethod) { var ( err error result []model.PaymentMethod ) country := utils.GetCountryByAcceptLanguage(c.GetHeader("Accept-Language")) if val, ok := methods[country]; ok { result = val } else { result = methods["GLOBAL"] } return err, result }