コード例 #1
0
ファイル: context_load.go プロジェクト: jacobxk/go2o
func initTemplate(c *gof.Config) *gof.Template {
	return &gof.Template{
		Init: func(m *gof.TemplateDataMap) {
			v := *m
			v["static_serve"] = c.GetString(variable.StaticServer)
			v["img_serve"] = c.GetString(variable.ImageServer)
			v["domain"] = c.GetString(variable.ServerDomain)
			v["version"] = c.GetString(variable.Version)
		},
	}
}
コード例 #2
0
ファイル: context_load.go プロジェクト: jacobxk/go2o
func getDb(c *gof.Config, debug bool, l log.ILogger) db.Connector {
	//数据库连接字符串
	//root@tcp(127.0.0.1:3306)/db_name?charset=utf8
	var connStr string
	driver := c.GetString(variable.DbDriver)
	dbCharset := c.GetString(variable.DbCharset)
	if dbCharset == "" {
		dbCharset = "utf8"
	}
	connStr = fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=%s&loc=Local",
		c.GetString(variable.DbUsr),
		c.GetString(variable.DbPwd),
		c.GetString(variable.DbServer),
		c.GetString(variable.DbPort),
		c.GetString(variable.DbName),
		dbCharset,
	)
	connector := db.NewSimpleConnector(driver, connStr, l, 5000, debug)

	//table mapping
	orm := connector.GetOrm()

	/** new **/
	orm.CreateTableMap(member.ValueMember{}, "mm_member")
	orm.CreateTableMap(member.IncomeLog{}, "mm_income_log")
	orm.CreateTableMap(member.IntegralLog{}, "mm_integral_log")
	orm.CreateTableMap(member.AccountValue{}, "mm_account")
	orm.CreateTableMap(member.DeliverAddress{}, "mm_deliver_addr")
	orm.CreateTableMap(member.MemberRelation{}, "mm_relation")
	orm.CreateTableMap(member.BalanceInfoValue{}, "mm_balance_info")

	orm.CreateTableMap(member.BankInfo{}, "mm_bank")
	orm.CreateTableMap(shopping.ValueOrder{}, "pt_order")
	orm.CreateTableMap(shopping.OrderItem{}, "pt_order_item")
	orm.CreateTableMap(shopping.OrderCoupon{}, "pt_order_coupon")
	orm.CreateTableMap(shopping.OrderPromotionBind{}, "pt_order_pb")
	orm.CreateTableMap(shopping.OrderLog{}, "pt_order_log")
	orm.CreateTableMap(shopping.ValueCart{}, "sale_cart")
	orm.CreateTableMap(shopping.ValueCartItem{}, "sale_cart_item")

	/** 销售 **/
	orm.CreateTableMap(sale.ValueItem{}, "gs_item")
	orm.CreateTableMap(sale.ValueGoods{}, "gs_goods")
	orm.CreateTableMap(sale.ValueCategory{}, "gs_category")
	orm.CreateTableMap(sale.GoodsSnapshot{}, "gs_snapshot")
	orm.CreateTableMap(sale.ValueSaleTag{}, "gs_sale_tag")
	orm.CreateTableMap(sale.MemberPrice{}, "gs_member_price")

	/** 商户 **/
	orm.CreateTableMap(partner.ValuePartner{}, "pt_partner")
	orm.CreateTableMap(partner.ApiInfo{}, "pt_api")
	orm.CreateTableMap(partner.SiteConf{}, "pt_siteconf")
	orm.CreateTableMap(partner.ValueShop{}, "pt_shop")
	orm.CreateTableMap(partner.SaleConf{}, "pt_saleconf")
	orm.CreateTableMap(valueobject.MemberLevel{}, "pt_member_level")
	orm.CreateTableMap(content.ValuePage{}, "pt_page")
	orm.CreateTableMap(ad.ValueAdvertisement{}, "pt_ad")
	orm.CreateTableMap(ad.ValueImage{}, "pt_ad_image")
	orm.CreateTableMap(mss.MailTemplate{}, "pt_mail_template")
	orm.CreateTableMap(mss.MailTask{}, "pt_mail_queue")

	/** 促销 **/
	orm.CreateTableMap(promotion.ValueCoupon{}, "pm_coupon")
	orm.CreateTableMap(promotion.ValueCouponBind{}, "pm_coupon_bind")
	orm.CreateTableMap(promotion.ValueCouponTake{}, "pm_coupon_take")
	orm.CreateTableMap(promotion.ValuePromotion{}, "pm_info")
	orm.CreateTableMap(promotion.ValueCashBack{}, "pm_cash_back")

	/** 配送 **/
	orm.CreateTableMap(delivery.AreaValue{}, "dlv_area")
	orm.CreateTableMap(delivery.CoverageValue{}, "dlv_coverage")
	orm.CreateTableMap(delivery.PartnerDeliverBind{}, "dlv_partner_bind")

	/** 用户 **/
	orm.CreateTableMap(user.RoleValue{}, "usr_role")
	orm.CreateTableMap(user.PersonValue{}, "usr_person")
	orm.CreateTableMap(user.CredentialValue{}, "usr_credential")

	orm.CreateTableMap(valueobject.Goods{}, "")

	return connector
}
コード例 #3
0
ファイル: redis.go プロジェクト: qinchong1988/go2o
func createRedisPool(c *gof.Config) *redis.Pool {
	redisHost := c.GetString("redis_host")
	redisDb := c.GetString("redis_db")
	redisPort := c.GetInt("redis_port")
	redisAuth := c.GetString("redis_auth")

	if redisPort <= 0 {
		redisPort = 6379
	}
	redisMaxIdle := c.GetInt("redis_maxIdle")
	if redisMaxIdle <= 0 {
		redisMaxIdle = 10000
	}
	redisIdleTimeout := c.GetInt("redis_idleTimeout")
	if redisIdleTimeout <= 0 {
		redisIdleTimeout = 20000
	}

	return &redis.Pool{
		MaxIdle:     redisMaxIdle,
		IdleTimeout: time.Duration(redisIdleTimeout) * time.Second,
		Dial: func() (redis.Conn, error) {
		dial:
			c, err := redis.Dial("tcp", fmt.Sprintf("%s:%d", redisHost, redisPort))
			if err != nil {
				for {
					log.Printf("[ Redis] - redis(%s:%d) dial failed - %s , Redial after 5 seconds\n",
						redisHost, redisPort, err.Error())
					time.Sleep(time.Second * 5)
					goto dial
				}
			}

			if len(redisAuth) != 0 {
				if _, err := c.Do("AUTH", redisAuth); err != nil {
					c.Close()
					log.Fatalf("[ Redis][ AUTH] - %s\n", err.Error())
				}
			}
			if _, err = c.Do("SELECT", redisDb); err != nil {
				c.Close()
				log.Fatalf("[ Redis][ SELECT] - redis(%s:%d) select db failed - %s",
					redisHost, redisPort, err.Error())
			}

			return c, err
		},
		TestOnBorrow: func(c redis.Conn, t time.Time) error {
			_, err := c.Do("PING")
			return err
		},
	}
}