123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- package conf
- import (
- "errors"
- "flag"
- eleclient "go-common/app/service/main/vip/dao/ele-api-client"
- "go-common/library/cache/memcache"
- "go-common/library/cache/redis"
- "go-common/library/conf"
- "go-common/library/database/sql"
- ecode "go-common/library/ecode/tip"
- "go-common/library/log"
- bm "go-common/library/net/http/blademaster"
- "go-common/library/net/rpc"
- "go-common/library/net/rpc/warden"
- xtime "go-common/library/time"
- "github.com/BurntSushi/toml"
- )
- // Conf global variable.
- var (
- Conf = &Config{}
- client *conf.Client
- confPath string
- )
- // Config struct of conf.
- type Config struct {
- MsgURI string
- PayURI string
- VipURI string
- // log
- Log *log.Config
- // gorpc server
- RPCServer *rpc.ServerConfig
- // db
- Mysql *sql.Config
- // ecodes FIXME
- Ecode *ecode.Config
- //old db
- OldMysql *sql.Config
- // http client
- HTTPClient *bm.ClientConfig
- // mc
- Memcache *Memcache
- // pay conf
- PayConf *PayConf
- // rpc clients
- RPCClient2 *RPC
- // property
- Property *Property
- // http
- BM *bm.ServerConfig
- // redis
- Redis *Redis
- // associate conf
- AssociateConf *AssociateConf
- // ele conf
- ELEConf *eleclient.Config
- Host *Host
- // grpc server
- WardenServer *warden.ServerConfig
- // grpc client
- CouponClient *warden.ClientConfig
- }
- // Host host.
- type Host struct {
- Ele string
- Mail string
- }
- // Redis redis
- type Redis struct {
- *redis.Config
- Expire xtime.Duration
- }
- // Memcache memcache
- type Memcache struct {
- *memcache.Config
- Expire xtime.Duration
- }
- //PayConf pay config
- type PayConf struct {
- CustomerID int64
- Token string
- OrderNotifyURL string
- SignNotifyURL string
- PlanID int32
- ProductID string
- Version string
- ReturnURL string
- OrderExpire int
- SignType string
- }
- // RPC clients config.
- type RPC struct {
- Member *rpc.ClientConfig
- Point *rpc.ClientConfig
- Coupon *rpc.ClientConfig
- }
- // Property config for biz logic.
- type Property struct {
- NotifyURL string
- MsgURL string
- PayURL string
- PayCoURL string
- AccountURL string
- PassportURL string
- APIURL string
- APICoURL string
- VipURL string
- TokenBID string
- PGCURL string
- ActiveDate string
- ActiveTip string
- Expire string
- AnnualVipBcoinDay int16
- AnnualVipBcoinCouponMoney int
- AnnualVipBcoinCouponActivityID int
- GiveBpDay int8
- PointGetRule map[string]int
- PointActiveDate map[string]string
- BubbleTicker xtime.Duration
- PayType map[string]string
- PayChannelMapping map[string]string
- PointBalance int64
- ActiveStart string
- ActiveEnd string
- ConfigMap map[string]string
- PointExchangeTitle map[string]string
- WillExpiredTitle map[string]string
- ExpiredTitle map[string]string
- TipButtonName string
- TipButtonLink string
- AllowanceSwitch int8
- CodeSwitch int8
- GiveSwitch int8
- PanelBgURL string
- CodeOpenedSearchSize int
- WelfareBgHost string
- }
- // AssociateConf associate vip conf.
- type AssociateConf struct {
- // user grant count limit
- GrantDurationMap map[string]int64 //限制饿了么发放联合会员的次数
- BilibiliPrizeGrantKeyMap map[string]string
- MailCouponID1 string //票务优惠券满99减5
- MailCouponID2 string //电商优惠券满299减20
- BilibiliBuyDurationMap map[string]int64 //限制bilibili购买联合会员的次数
- }
- func init() {
- flag.StringVar(&confPath, "conf", "", "default config path")
- }
- // Init create config instance.
- func Init() (err error) {
- if confPath != "" {
- return local()
- }
- return remote()
- }
- func local() (err error) {
- _, err = toml.DecodeFile(confPath, &Conf)
- return
- }
- func remote() (err error) {
- if client, err = conf.New(); err != nil {
- return
- }
- if err = load(); err != nil {
- return
- }
- return
- }
- func load() (err error) {
- var (
- s string
- ok bool
- tmpConf *Config
- )
- if s, ok = client.Toml2(); !ok {
- return errors.New("load config center error")
- }
- if _, err = toml.Decode(s, &tmpConf); err != nil {
- return errors.New("could not decode config")
- }
- *Conf = *tmpConf
- return
- }
|