| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- package models
- import (
- "context"
- "encoding/json"
- "errors"
- "fmt"
- "go-policy-service/utils"
- "gorm.io/gorm"
- )
- type ThirdAccount struct {
- ID uint `gorm:"primaryKey;column:id"`
- CreatedAt *int `gorm:"column:created_at"` // 可选:你可以换成 time.Time
- UpdatedAt *int `gorm:"column:updated_at"` // 同上
- Name string `gorm:"type:varchar(45);column:name"`
- GroupName string `gorm:"type:varchar(45);column:group"` // 注意 group 是 Go 的关键字,不建议用作字段名
- Cookie string `gorm:"type:text;column:cookie"`
- Emails string `gorm:"type:text;column:emails"`
- Config string `gorm:"type:text;column:config"`
- LastUsedAt *int `gorm:"column:last_used_at"`
- Username string `gorm:"type:varchar(45);column:username"`
- Password string `gorm:"type:varchar(45);column:password"`
- Status int `gorm:"column:status;type:tinyint(1)"` // 使用int更明确
- MerchantID *int `gorm:"column:merchant_id"`
- Tag string `gorm:"type:varchar(45);column:tag"`
- UseType string `gorm:"type:varchar(45);column:use_type;default:下单"`
- MaxQpsOrder *int `gorm:"column:max_qps_order"` // 最大同时下单数
- }
- func (ThirdAccount) TableName() string {
- return "third_account" // 需要添加这个方法明确表名
- }
- type HgConfig struct {
- Account string `json:"account"`
- Password string `json:"password"`
- TicketChannel string `json:"ticket_channel"`
- PayMethod string `json:"pay_method"`
- }
- func GetHGConf(ctx context.Context) (*HgConfig, error) {
- var account ThirdAccount
- result := utils.Db.WithContext(ctx).Model(&ThirdAccount{}).
- Where("`name` = ? AND `group` = ? AND `status` = ? AND `merchant_id` = ?",
- "航管分销API",
- "hgapi",
- 1,
- 3).
- First(&account)
- if errors.Is(result.Error, gorm.ErrRecordNotFound) {
- return nil, errors.New("account not found")
- }
- return ParseAccountConfig(account.Config)
- }
- func ParseAccountConfig(configStr string) (*HgConfig, error) {
- var cfg HgConfig
- if err := json.Unmarshal([]byte(configStr), &cfg); err != nil {
- return nil, fmt.Errorf("failed to parse account config: %w", err)
- }
- return &cfg, nil
- }
|