Files

51 lines
1.2 KiB
Go

package withdrawal
import (
"crypto/rand"
"encoding/hex"
"fmt"
"time"
)
// 生成提现单号
func generateWithdrawNo() (string, error) {
buf := make([]byte, 8)
if _, err := rand.Read(buf); err != nil {
return "", err
}
return fmt.Sprintf("WD%d%s", time.Now().Unix(), hex.EncodeToString(buf)[:8]), nil
}
// 账号脱敏
// 账号脱敏
func maskAccountNo(accountNo, accountType string) string {
length := len(accountNo)
if length <= 4 {
return accountNo
}
switch accountType {
case "alipay", "wechat":
if length == 11 {
return accountNo[:3] + "****" + accountNo[7:]
}
return accountNo[:2] + "****" + accountNo[length-2:]
case "bank":
if length > 8 {
return accountNo[:4] + "****" + accountNo[length-4:]
}
return accountNo[:2] + "****" + accountNo[length-2:]
}
return accountNo
}
// 简化的解密函数(实际应该调用 paymentaccount 模块的解密)
// 简化的解密函数(实际应该调用 paymentaccount 模块的解密)
func (r *Repository) decryptAccountNo(encrypted string) (string, error) {
// 这里应该调用 paymentaccount 包的解密函数
// 为了简化,直接返回(实际使用时需要正确实现)
return encrypted, nil
}