Ejemplo n.º 1
0
// 获取商户
func (this *baseC) GetPartner(ctx *web.Context) *partner.ValuePartner {
	val := ctx.Session().Get("member:rel_partner")
	if val != nil {
		return cache.GetValuePartnerCache(val.(int))
	} else {
		m := this.GetMember(ctx)
		if m != nil {
			rel := dps.MemberService.GetRelation(m.Id)
			ctx.Session().Set("member:rel_partner", rel.RegisterPartnerId)
			ctx.Session().Save()
			return cache.GetValuePartnerCache(rel.RegisterPartnerId)
		}
	}
	return nil
}
Ejemplo n.º 2
0
func (this *BaseC) Requesting(ctx *web.Context) bool {
	// 商户不存在
	partnerId := getPartnerId(ctx)
	if partnerId <= 0 {
		renderError(ctx, true, "No such partner.")
		return false
	}

	ctx.Items["partner_id"] = partnerId // 缓存PartnerId

	// 校验商户并缓存
	pt := cache.GetValuePartnerCache(partnerId)
	ctx.Items["partner_ins"] = pt

	// 判断线上商店开通情况
	var conf = cache.GetPartnerSiteConf(partnerId)
	if conf == nil {
		renderError(ctx, true, "线上商店未开通")
		return false
	}

	if conf.State == enum.PARTNER_SITE_CLOSED {
		if strings.TrimSpace(conf.StateHtml) == "" {
			conf.StateHtml = "网站暂停访问,请联系商家:" + pt.Tel
		}
		renderError(ctx, true, conf.StateHtml)
		return false
	}

	ctx.Items["partner_siteconf"] = conf

	return true
}
Ejemplo n.º 3
0
// 获取商户
func (this *baseC) GetPartner(ctx *web.Context) *partner.ValuePartner {
	val := ctx.Session().Get("member:rel_partner")
	if val != nil {
		return cache.GetValuePartnerCache(val.(int))
	}
	return nil
}
Ejemplo n.º 4
0
func getPartner(ctx *web.Context) (*partner.ValuePartner, error) {
	//todo: 缓存,用Member对应的Partner编号来查询缓存
	var partnerId int = ctx.GetItem("partner_id").(int)
	var err error
	var pt *partner.ValuePartner = cache.GetValuePartnerCache(partnerId)
	if pt == nil {
		if pt, err = dps.PartnerService.GetPartner(getPartnerId(ctx)); err == nil {
			cache.SetValuePartnerCache(partnerId, pt)
		}
	}
	return pt, err
}