mh_server/model/config.go

315 lines
7.8 KiB
Go
Raw Normal View History

2021-06-30 02:12:05 +00:00
package model
import (
"encoding/json"
2022-01-16 08:56:20 +00:00
"errors"
2021-12-25 08:38:30 +00:00
"github.com/codinl/go-logger"
2021-06-30 02:12:05 +00:00
)
//go:generate goqueryset -in config.go
// gen:qs
type Config struct {
Model
Name string `gorm:"unique_index;not null"`
2021-11-01 03:32:23 +00:00
Value string `gorm:"size:65535;not null"`
2021-06-30 02:12:05 +00:00
}
func (m *Config) TableName() string {
return "config"
}
2021-12-25 08:38:30 +00:00
type PayConfig struct {
2022-04-25 05:59:56 +00:00
MemberFee uint32 `json:"member_fee"`
DepositFee uint32 `json:"deposit_fee"`
NotifyUrl string `json:"notify_url"`
RefundNotifyUrl string `json:"refund_notify_url"`
2021-06-30 02:12:05 +00:00
}
2021-12-25 08:38:30 +00:00
const (
2022-07-25 04:02:53 +00:00
ConfigNamePay = "pay_config" // 支付配置
ConfigNameMember = "member_config" // 会员配置
ConfigNameMemberVm = "member_vm_config" // 会员积分配置
ConfigNameAttendanceVm = "attendance_vm_config" // 签到积分配置
ConfigActivityRenewal = "activity_renewal_config" // 活动配置
2021-12-25 08:38:30 +00:00
)
2021-06-30 02:12:05 +00:00
2021-12-25 08:38:30 +00:00
func PayConfigInfo() (*PayConfig, error) {
payConfig := new(PayConfig)
var configAllocation Config
err := NewConfigQuerySet(DB).NameEq(ConfigNamePay).One(&configAllocation)
2021-06-30 02:12:05 +00:00
if err != nil {
2021-12-25 08:38:30 +00:00
logger.Error("err:", err)
return payConfig, err
2021-06-30 02:12:05 +00:00
}
2021-12-25 08:38:30 +00:00
err = json.Unmarshal([]byte(configAllocation.Value), payConfig)
2021-06-30 02:12:05 +00:00
if err != nil {
2021-12-25 08:38:30 +00:00
logger.Error("err:", err)
return payConfig, err
2021-06-30 02:12:05 +00:00
}
2021-12-25 08:38:30 +00:00
return payConfig, nil
2021-06-30 02:12:05 +00:00
}
2022-01-16 08:56:20 +00:00
type MemberConfig struct {
MemberLever uint32 `json:"member_lever"` // 会员等级
MemberFee uint32 `json:"member_fee"` // 会员费
MemberDeposit uint32 `json:"member_deposit"` // 押金
CardMax uint32 `json:"card_max"`
}
func MemberConfigInfo() ([]MemberConfig, error) {
var memberConfigs []MemberConfig
var configAllocation Config
err := NewConfigQuerySet(DB).NameEq(ConfigNameMember).One(&configAllocation)
if err != nil {
logger.Error("err:", err)
return memberConfigs, err
}
err = json.Unmarshal([]byte(configAllocation.Value), &memberConfigs)
if err != nil {
logger.Error("err:", err)
return memberConfigs, err
}
return memberConfigs, nil
}
func GetMemberConfig(level uint32) (*MemberConfig, error) {
if level == 3 {
level = 2
}
info, err := MemberConfigInfo()
if err != nil {
return nil, err
}
for _, config := range info {
if config.MemberLever == level {
return &config, nil
}
}
return nil, errors.New("level err")
}
2022-03-14 06:57:34 +00:00
type MemberVmConfig struct {
MemberLever uint32 `json:"member_lever"` // 会员等级
MemberVm uint32 `json:"member_vm"`
Invite1Vm uint32 `json:"invite_1_vm"`
Invite2Vm uint32 `json:"invite_2_vm"`
AutomationMemberVm uint32 `json:"automation_member_vm"`
}
func memberVmConfigInfo() ([]MemberVmConfig, error) {
var memberVmConfigs []MemberVmConfig
var configAllocation Config
err := NewConfigQuerySet(DB).NameEq(ConfigNameMemberVm).One(&configAllocation)
if err != nil {
logger.Error("err:", err)
return memberVmConfigs, err
}
err = json.Unmarshal([]byte(configAllocation.Value), &memberVmConfigs)
if err != nil {
logger.Error("err:", err)
return memberVmConfigs, err
}
return memberVmConfigs, nil
}
func GetMemberVmConfig(level uint32) (*MemberVmConfig, error) {
if level == 3 {
return nil, errors.New("level is 3")
}
info, err := memberVmConfigInfo()
if err != nil {
return nil, err
}
for _, config := range info {
if config.MemberLever == level {
return &config, nil
}
}
return nil, errors.New("level err")
}
2022-04-26 06:28:41 +00:00
type AttendanceVmConfig struct {
VmDay1 uint32 `json:"vm_day_1"`
VmDay2 uint32 `json:"vm_day_2"`
VmDay3 uint32 `json:"vm_day_3"`
VmDay4 uint32 `json:"vm_day_4"`
VmDay5 uint32 `json:"vm_day_5"`
VmDay6 uint32 `json:"vm_day_6"`
VmDay7 uint32 `json:"vm_day_7"`
}
func AttendanceVmConfigInfo() (*AttendanceVmConfig, error) {
attendanceConfig := new(AttendanceVmConfig)
var configAllocation Config
err := NewConfigQuerySet(DB).NameEq(ConfigNameAttendanceVm).One(&configAllocation)
if err != nil {
logger.Error("err:", err)
return attendanceConfig, err
}
err = json.Unmarshal([]byte(configAllocation.Value), attendanceConfig)
if err != nil {
logger.Error("err:", err)
return attendanceConfig, err
}
return attendanceConfig, nil
}
func (m *AttendanceVmConfig) Vm(days uint32) uint32 {
vm := uint32(0)
switch days % 7 {
case 1:
vm = m.VmDay1
case 2:
vm = m.VmDay2
case 3:
vm = m.VmDay3
case 4:
vm = m.VmDay4
case 5:
vm = m.VmDay5
case 6:
vm = m.VmDay6
case 0:
vm = m.VmDay7
}
return vm
}
2022-07-25 04:02:53 +00:00
type ActivityRenewalConfig struct {
CouponValidity int `json:"coupon_validity"`
ActivityContinuity int `json:"activity_continuity"`
PopTrap int `json:"pop_trap"`
}
func ActivityRenewalConfigInfo() (ActivityRenewalConfig, error) {
activityRenewalConfig := ActivityRenewalConfig{}
var configAllocation Config
err := NewConfigQuerySet(DB).NameEq(ConfigActivityRenewal).One(&configAllocation)
if err != nil {
logger.Error("err:", err)
return activityRenewalConfig, err
}
err = json.Unmarshal([]byte(configAllocation.Value), &activityRenewalConfig)
if err != nil {
logger.Error("err:", err)
return activityRenewalConfig, err
}
return activityRenewalConfig, nil
}
func GetActivityRenewalConfig() ActivityRenewalConfig {
info, err := ActivityRenewalConfigInfo()
if err != nil {
logger.Error("info err:", err)
return info
}
return info
}
2021-12-25 08:38:30 +00:00
//type ConfigInterface interface {
// Encode() string
2021-06-30 02:12:05 +00:00
//}
2021-12-25 08:38:30 +00:00
//type CheckConfig struct {
// Check uint8 `json:"check"`
2021-06-30 02:12:05 +00:00
//}
2021-12-25 08:38:30 +00:00
//func (c *CheckConfig) Encode() string {
2021-06-30 02:12:05 +00:00
// configBytes, err := json.Marshal(c)
// if err != nil {
// return ""
// }
// return string(configBytes)
//}
2021-12-25 08:38:30 +00:00
//
//type AutoChargeMobileConfig struct {
// IsOpen uint8 `json:"is_open"`
2021-06-30 02:12:05 +00:00
//}
//
2021-12-25 08:38:30 +00:00
//func (c *AutoChargeMobileConfig) Encode() string {
2021-06-30 02:12:05 +00:00
// configBytes, err := json.Marshal(c)
// if err != nil {
// return ""
// }
// return string(configBytes)
//}
2021-12-25 08:38:30 +00:00
//
//type StepConfig struct {
// InitStep uint32 `json:"init_step"`
// InviteStepAward uint32 `json:"invite_step_award"`
// StepDayLimit uint32 `json:"step_day_limit"`
// StepToVmRate float64 `json:"step_to_vm_rate"`
// InviteAwardRate float64 `json:"invite_award_rate"`
// InviteAwardRateLimit float64 `json:"invite_award_rate_limit"`
// SuperMemberRm uint32 `json:"super_member_rm"`
//}
//
//func (c *StepConfig) Encode() string {
// configBytes, err := json.Marshal(c)
// if err != nil {
// return ""
// }
// return string(configBytes)
//}
//
////type FBConfig struct {
//// AssistanceValidityTerm uint32 `json:"assistance_validity_term"` // 邀请倒计时
//// Postage uint32 `json:"postage"` // 邮费
//// AssistanceFee uint32 `json:"assistance_fee"` // 每人拆红包
//// OrderAssistanceFee uint32 `json:"order_assistance_fee"` // 订单邀请拆红包
//// ActivityExpire string `json:"activity_expire"` // 活动过期时间
////}
////
////type FOConfig struct {
//// ActivityExpire string `json:"activity_expire"` // 活动过期时间
////}
////
////func (c *FBConfig) Encode() string {
//// configBytes, err := json.Marshal(c)
//// if err != nil {
//// return ""
//// }
//// return string(configBytes)
////}
//
//type InviteLotteryConfig struct {
// Name string `json:"name"` // 名字
// Image string `json:"image"` // 图片
// DrawTime uint32 `json:"draw_time"` // 开奖的分钟数
// SponsorId uint32 `json:"sponsor_id"` // 赞助商ID
// NeedNum uint32 `json:"need_num"` // 需要的邀请数
// IsShow uint8 `json:"is_show"` // 上下架
//}
//
//func (c *InviteLotteryConfig) Encode() string {
// configBytes, err := json.Marshal(c)
// if err != nil {
// return ""
// }
// return string(configBytes)
//}
//
////type TargetUserConfig struct {
//// List map[uint32]bool `json:"list"`
////}
////
////func (c *TargetUserConfig) Encode() string {
//// configBytes, err := json.Marshal(c)
//// if err != nil {
//// return ""
//// }
//// return string(configBytes)
////}