瀏覽代碼

Merge branch 'master' of http://git.hiwavo.com/Fohow/fohow_api

Conflicts:
	go/gopath/src/fohow.com/fohowmall.com
abiao 4 年之前
父節點
當前提交
a6abe35334

+ 2 - 2
go/gopath/src/fohow.com/apps/controllers/live_controller/live_controller.go

@@ -63,8 +63,8 @@ func (self *LiveController) Latest() {
 		self.ReturnError(403, apps.NoExist, "", nil)
 	}
 
-	lives := live_model.GetLatest(page, perPage, recommend, wxUser.Depart, cache)
-	count := live_model.GetLatestCount(recommend, wxUser.Depart)
+	lives := live_model.GetLatest(page, perPage, recommend, wxUser.Depart, wxUser.Rank, cache)
+	count := live_model.GetLatestCount(recommend, wxUser.Depart, wxUser.Rank)
 	timeNowUnix := time.Now().Unix()
 	for _, live := range lives {
 		//beego.BeeLogger.Warn("live_timeNowUnix: %d", timeNowUnix)

+ 1 - 1
go/gopath/src/fohow.com/apps/controllers/pay_controller/pay_balance_controller.go

@@ -42,7 +42,7 @@ func (self *PayController) wxPayBalance(orderId string) {
 	beego.BeeLogger.Debug("pay.total_price(%d)", totalPrice)
 	//获取预支付信息/v1/pay/:target:string/async/:payway:string
 	notifyUrl := fmt.Sprintf("%s/v1/pay/%s/async/%s", beego.AppConfig.String("ApiHost"), BALANCE_TARGET, balance_model.PAY_WAY_TYPE_SERVICE_WXPAY) // balance "service_wxpay"
-	body := "FOHOW玖玖-购买提货券"
+	body := "凤凰菁选-购买提货券"
 	payData := wx_mp.GetPayData(wxUser.Openid, balanceOrder.OrderId, totalPrice, body, notifyUrl, self.Ctx.Input.IP(), payCode)
 	//返回数据
 	type PayData struct {

+ 1 - 1
go/gopath/src/fohow.com/apps/controllers/pay_controller/pay_cashcz_controller.go

@@ -37,7 +37,7 @@ func (self *PayController) wxPayCashcz(orderId string) {
 	}
 	//获取预支付信息/v1/pay/:target:string/async/:payway:string
 	notifyUrl := fmt.Sprintf("%s/v1/pay/%s/async/%s", beego.AppConfig.String("ApiHost"), CASH_TARGET, balance_model.PAY_WAY_TYPE_RECHARGE_WXPAY) // rechargeCashOrder "recharge_wxpay"
-	body := "FOHOW玖玖-余额充值"
+	body := "凤凰菁选-余额充值"
 	payCode := sys_config.GetPayConfigByDepart(wxUser.Depart, true)
 	payData := wx_mp.GetPayData(wxUser.Openid, reCashOrder.OrderId, reCashOrder.TotalPrice, body, notifyUrl, self.Ctx.Input.IP(), payCode)
 

+ 4 - 4
go/gopath/src/fohow.com/apps/controllers/pay_controller/pay_exchange_controller.go

@@ -244,7 +244,7 @@ func (self *PayController) payExchange(oId, payWay, tradPwd, returnUrl, source,
 				}
 				order.TotalPrice += freight
 				notifyUrl := fmt.Sprintf("%s/v1/pay/%s/async/%s", beego.AppConfig.String("ApiHost"), EXCHANGE_TARGET, pay_model.PAYWAY_WEIXINPAY)
-				body := fmt.Sprintf("FOHOW玖玖-购买商品")
+				body := fmt.Sprintf("凤凰菁选-购买商品")
 				//获取paycode
 				payCode := sys_config.GetPayConfigByDepart(wxUser.Depart, true)
 				payData := wx_mp.GetPayData(wxUser.Openid, order.OrderId, order.PaiedPrice, body, notifyUrl, self.Ctx.Input.IP(), payCode)
@@ -259,7 +259,7 @@ func (self *PayController) payExchange(oId, payWay, tradPwd, returnUrl, source,
 			} else { //公众号微信支付
 
 				notifyUrl := fmt.Sprintf("%s/v1/pay/%s/async/%s", beego.AppConfig.String("ApiHost"), EXCHANGE_TARGET, pay_model.PAYWAY_WEIXINPAY)
-				body := fmt.Sprintf("FOHOW玖玖-购买商品")
+				body := fmt.Sprintf("凤凰菁选-购买商品")
 				wxGzh := user_model.GetWxUserGzhByWxUIdAndAppId(wxUser.Id, beego.AppConfig.String("WxMPAppId"), false)
 				if wxGzh == nil {
 					self.ReturnError(403, apps.NoExist, "", nil)
@@ -282,7 +282,7 @@ func (self *PayController) payExchange(oId, payWay, tradPwd, returnUrl, source,
 		if order.Source == order_model.SOURCE_XCX { //小程序微信支付
 
 			notifyUrl := fmt.Sprintf("%s/v1/pay/%s/async/%s", beego.AppConfig.String("ApiHost"), EXCHANGE_TARGET, pay_model.PAYWAY_WEIXINPAY)
-			body := fmt.Sprintf("FOHOW玖玖-购买商品")
+			body := fmt.Sprintf("凤凰菁选-购买商品")
 			payCode := sys_config.GetPayConfigByDepart(wxUser.Depart, true)
 			payData := wx_mp.GetPayData(wxUser.Openid, order.OrderId, order.PaiedPrice, body, notifyUrl, self.Ctx.Input.IP(), payCode)
 
@@ -296,7 +296,7 @@ func (self *PayController) payExchange(oId, payWay, tradPwd, returnUrl, source,
 		} else { //公众号微信支付
 
 			notifyUrl := fmt.Sprintf("%s/v1/pay/%s/async/%s", beego.AppConfig.String("ApiHost"), EXCHANGE_TARGET, pay_model.PAYWAY_WEIXINPAY)
-			body := fmt.Sprintf("FOHOW玖玖-购买商品")
+			body := fmt.Sprintf("凤凰菁选-购买商品")
 			wxGzh := user_model.GetWxUserGzhByWxUIdAndAppId(wxUser.Id, beego.AppConfig.String("WxMPAppId"), false)
 			if wxGzh == nil {
 				self.ReturnError(403, apps.NoExist, "", nil)

+ 2 - 2
go/gopath/src/fohow.com/apps/controllers/product_controller/init.go

@@ -16,8 +16,8 @@ import (
 
 var (
 	//需要校验用户登录的Action
-	exceptCheckUserLoginAction   = []string{"GetProductsCommends", "GetPdDetail", "GetProductSizesByPid", "Latest", "Get", "Categories", "GetProductsByCat", "GetNeedShare"}
-	exceptCheckWxUserLoginAction = []string{"GetProductsCommends", "GetPdDetail", "GetProductSizesByPid", "Latest", "Get", "Categories", "GetProductsByCat"}
+	exceptCheckUserLoginAction   = []string{"GetProductsCommends", "GetPdDetail", "GetProductSizesByPid", "Latest", "Get", "Categories", "GetProductsByCat", "GetNeedShare", "GetCommendWords"}
+	exceptCheckWxUserLoginAction = []string{"GetProductsCommends", "GetPdDetail", "GetProductSizesByPid", "Latest", "Get", "Categories", "GetProductsByCat", "GetCommendWords"}
 )
 
 type ProductController struct {

+ 20 - 2
go/gopath/src/fohow.com/apps/controllers/product_controller/product_controller.go

@@ -306,6 +306,7 @@ func (self *ProductController) GetProductsByCat() {
 	catId, _ := strconv.ParseInt(_id, 10, 64)
 	page, _ := self.GetInt64("page")
 	perPage, _ := self.GetInt64("per_page")
+	words := self.GetString("words")
 	cache, _ := self.GetBool("cache", false)
 	if page <= 0 {
 		page = 1
@@ -317,8 +318,8 @@ func (self *ProductController) GetProductsByCat() {
 		List      []*product_model.Product `json:"list"`
 		ListCount int64                    `json:"list_count"`
 	}
-	list := product_model.GetProductsByCatId(catId, page, perPage, cache)
-	count := product_model.GetProductCountByCatId(catId, cache)
+	list := product_model.GetProductsByCatId(catId, page, perPage, words, cache)
+	count := product_model.GetProductCountByCatId(catId, words, cache)
 	for _, pd := range list {
 		pd.SoldCount = pd.SaleNums
 		if pd.Count > pd.SoldCount {
@@ -504,3 +505,20 @@ func (self *ProductController) GetProductsCommends() {
 	self.Data["json"] = &Ret{List: list, ListCount: count}
 	self.ServeJSON()
 }
+
+func (self *ProductController) GetCommendWords() {
+
+	perPage, _ := self.GetInt64("per_page")
+	cache, _ := self.GetBool("cache", true)
+
+	if perPage <= 0 {
+		perPage = 10
+	}
+	type Ret struct {
+		List []*product_model.CommendWord `json:"list"`
+	}
+	list := product_model.GetCommendWordsList(perPage, cache)
+
+	self.Data["json"] = &Ret{List: list}
+	self.ServeJSON()
+}

+ 1 - 1
go/gopath/src/fohow.com/apps/controllers/railsadmin_controller/tmpl_controller.go

@@ -24,7 +24,7 @@ func (self *RailsadminController) SendTemplate() {
 	item.LastUpdatedAt = time.Now()
 	go item.Save()
 	s := item.MsgType                         //模板:0 订单待支付提醒 1新项目通知 2提货通知
-	wxGongzhonghaoId := item.WxGongzhonghaoId //微信公众号ID,1:FOHOW玖玖
+	wxGongzhonghaoId := item.WxGongzhonghaoId //微信公众号ID,1:凤凰菁选
 
 	DEFAULTGONGZHONGHAO := int64(1)
 	if beego.BConfig.RunMode == beego.DEV {

+ 8 - 6
go/gopath/src/fohow.com/apps/models/live_model/live_broad.go

@@ -30,6 +30,7 @@ type LiveBroad struct {
 	DateFomat      int       `orm:"-"                                             json:"date"`                        // varchar(255)
 	HourFomat      string    `orm:"-"                                             json:"begin_hour"`                  // varchar(255)
 	EndHourFomat   string    `orm:"-"                                             json:"end_hour"`                    // varchar(255)
+	RankStrs       string    `orm:"column(rank_strs);null"              json:"rank_strs"`                             // int(11)
 	CreatedAt      time.Time `orm:"column(created_at);null;auto_now_add;type(datetime)"  json:"created_at,omitempty"` // datetime
 	UpdatedAt      time.Time `orm:"column(updated_at);null;auto_now;type(datetime)"      json:"updated_at,omitempty"` // datetime
 }
@@ -71,7 +72,7 @@ func GetCurrentShowLive(useCache bool) *LiveBroad {
 }
 
 //获取最直播列表
-func GetLatest(page, perPage, recommend, depart int64, useCache bool) (list []*LiveBroad) {
+func GetLatest(page, perPage, recommend, depart, rank int64, useCache bool) (list []*LiveBroad) {
 	k := fmt.Sprintf("LiveBroad_model.GetLatest.page(%d).perPage(%d).recommend(%d).depart(%d)", page, perPage, recommend, depart)
 	if useCache {
 		if ret, ok := cache.Cache.Get(k).([]*LiveBroad); ok {
@@ -81,13 +82,14 @@ func GetLatest(page, perPage, recommend, depart int64, useCache bool) (list []*L
 	sql := `
 		select a.* from
 		live_broads a left join depart_records_live_broads b on a.id=b.live_broad_id
-		where a.recommend > ? and b.depart_record_id=? order by recommend desc, created_at desc  limit %d, %d ; 
+		where a.recommend > ? and b.depart_record_id=? and (find_in_set(?,a.rank_strs) or a.rank_strs="" )
+		order by recommend desc, created_at desc  limit %d, %d ; 
 		`
 	sql = fmt.Sprintf(sql, (page-1)*perPage, perPage)
 
 	//beego.BeeLogger.Warn("sql=%s", sql)
 
-	_, err := orm.NewOrm().Raw(sql, recommend, depart).QueryRows(&list)
+	_, err := orm.NewOrm().Raw(sql, recommend, depart, rank).QueryRows(&list)
 	if err != nil {
 		beego.BeeLogger.Warn("live_model.GetLatest(%d) err=%s", depart, err)
 		return nil
@@ -108,7 +110,7 @@ func GetLatest(page, perPage, recommend, depart int64, useCache bool) (list []*L
 }
 
 //获取部门直播间总数
-func GetLatestCount(recommend, depart int64) int64 {
+func GetLatestCount(recommend, depart, rank int64) int64 {
 	type Ret struct {
 		Count int64 `json:"count"` //人数
 	}
@@ -117,9 +119,9 @@ func GetLatestCount(recommend, depart int64) int64 {
 	sql := `
 		 select count(DISTINCT a.id) as count from
 		live_broads a left join depart_records_live_broads b on a.id=b.live_broad_id
-		where a.recommend > ? and b.depart_record_id=?  ; 
+		where a.recommend > ? and b.depart_record_id=?  and (find_in_set(?,a.rank_strs) or a.rank_strs="" )  ; 
 		`
-	err := o.Raw(sql, recommend, depart).QueryRow(ret)
+	err := o.Raw(sql, recommend, depart, rank).QueryRow(ret)
 	if err != nil {
 		beego.BeeLogger.Error("GetLatestCount, depart:%d, err=[%s]", depart, err)
 		return 0

+ 44 - 0
go/gopath/src/fohow.com/apps/models/product_model/commend_words.go

@@ -0,0 +1,44 @@
+package product_model
+
+import (
+	"fmt"
+	"fohow.com/cache"
+	"github.com/astaxie/beego"
+	"github.com/astaxie/beego/orm"
+	"time"
+)
+
+const (
+	commend_words_tablename = "commend_words"
+)
+
+type CommendWord struct {
+	Id    int64  `orm:"column(id);pk"                json:"id"`    // int(11)
+	Sort  int64  `orm:"column(sort)"           json:"sort"`        // int(11)
+	Title string `orm:"column(title);null"           json:"title"` // varchar(64)
+	State bool   `orm:"column(state);null"         json:"-"`       // tinyint(1)
+
+}
+
+func (self *CommendWord) TableName() string {
+	return commend_words_tablename
+}
+
+func GetCommendWordsList(perSize int64, useCache bool) (items []*CommendWord) {
+	k := fmt.Sprintf("product_model.GetCommendWordsList(%d)", perSize)
+
+	if useCache {
+		if ret, ok := cache.Cache.Get(k).([]*CommendWord); ok {
+			return ret
+		}
+	}
+
+	o := orm.NewOrm()
+	_, err := o.QueryTable(new(CommendWord)).Filter("state", true).Limit(perSize).OrderBy("-sort").All(&items)
+	if err != nil {
+		beego.BeeLogger.Debug("GetCommendWordsList err=%s", err)
+	}
+
+	cache.Cache.Put(k, items, 10*time.Minute)
+	return items
+}

+ 1 - 0
go/gopath/src/fohow.com/apps/models/product_model/init.go

@@ -17,6 +17,7 @@ func init() {
 		new(ProductCat),
 		new(ProductCommend),
 		new(ProductItem),
+		new(CommendWord),
 	)
 }
 

+ 10 - 7
go/gopath/src/fohow.com/apps/models/product_model/product.go

@@ -111,6 +111,7 @@ type Product struct {
 	HaveSize         bool            `orm:"-"                                     json:"have_size"`  // bool
 	SizeName         string          `orm:"-"                                     json:"size_name"`  // varchar(255)
 	ColorName        string          `orm:"-"                                     json:"color_name"` // varchar(255)
+	KeyWords         string          `orm:"column(key_words)"                     json:"key_words"`  // varchar(255)
 	SinglePurchLimit int64           `orm:"column(single_purch_limit)"            json:"-"`          // varchar(255)
 	Pv               int64           `orm:"column(pv)"                  json:"-"`                    // varchar(255)
 	OutNums          int64           `orm:"column(out_nums)"            json:"-"`                    // varchar(255)
@@ -182,8 +183,8 @@ func GetProductById(id int64, useCache bool) *Product {
 	return item
 }
 
-func GetProductsByCatId(cId, page, perPage int64, useCache bool) (products []*Product) {
-	k := fmt.Sprintf("product_model.GetProductsByCatId(%d).page(%d).perPage(%d)", cId, page, perPage)
+func GetProductsByCatId(cId, page, perPage int64, words string, useCache bool) (products []*Product) {
+	k := fmt.Sprintf("product_model.GetProductsByCatId(%d).page(%d).perPage(%d).words(%d)", cId, page, perPage, words)
 	if useCache {
 		if ret, ok := cache.Cache.Get(k).([]*Product); ok {
 			return ret
@@ -193,8 +194,9 @@ func GetProductsByCatId(cId, page, perPage int64, useCache bool) (products []*Pr
 	qs := o.QueryTable(new(Product)).Filter("status", 1).Filter("show_flag", true).Filter("ptype", TYPE_DIRECT_SALE)
 	if cId != 0 {
 		qs = qs.Filter("category_id", cId)
-	} else {
-		qs = qs.Exclude("category_id", 3) //3为审核类别,暂写死
+	}
+	if len(words) > 0 {
+		qs = qs.Filter("key_words__icontains", words)
 	}
 	_, err := qs.
 		OrderBy("-recommend", "-created_at").
@@ -212,7 +214,7 @@ func GetProductsByCatId(cId, page, perPage int64, useCache bool) (products []*Pr
 	return products
 }
 
-func GetProductCountByCatId(cId int64, useCache bool) int64 {
+func GetProductCountByCatId(cId int64, words string, useCache bool) int64 {
 	k := fmt.Sprintf("product_model.GetProductCountByCatId(%d)", cId)
 	if useCache {
 		if ret, ok := cache.Cache.Get(k).(int64); ok {
@@ -224,8 +226,9 @@ func GetProductCountByCatId(cId int64, useCache bool) int64 {
 	qs := o.QueryTable(item)
 	if cId != 0 {
 		qs = qs.Filter("category_id", cId)
-	} else {
-		qs = qs.Exclude("category_id", 3) //3为审核类别,暂写死
+	}
+	if len(words) > 0 {
+		qs = qs.Filter("key_words__icontains", words)
 	}
 	count, _ := qs.Filter("status", 1).Filter("show_flag", true).Filter("ptype", TYPE_DIRECT_SALE).Count()
 

+ 2 - 1
go/gopath/src/fohow.com/apps/models/user_model/wx_user.go

@@ -62,7 +62,8 @@ type WxUser struct {
 	Depart       int64   `orm:"column(depart)" json:"-"`                                // datetime
 
 	//等级
-	Rank        int64     `orm:"column(rank);null"              json:"rank"`      // int(11)
+	Rank int64 `orm:"column(rank);null"              json:"rank"` // int
+
 	PartnerTime int64     `orm:"column(partner_time);null"              json:"-"` // 群主时间
 	UserNo      string    `orm:"column(user_no);null"              json:"-"`      // int(11)
 	CanBind     bool      `orm:"-"     json:"can_bind"`

+ 6 - 6
go/gopath/src/fohow.com/conf/app.conf

@@ -44,7 +44,7 @@ WxFohowXcxAppSecret = "da2882779e983e2acfb573d01cb1fb7d"
 JsSDKConfigTicketAppId = "wxbddd1caf692557c4"
 JsSDKConfigTicketAppSecret = "be6cb03f9a8c13a557728616a9e6039c"
 
-#FOHOW玖玖测试公众号
+#凤凰菁选测试公众号
 WxMPAppId = "wxbddd1caf692557c4"
 WxMPAppSecret = "be6cb03f9a8c13a557728616a9e6039c"
 
@@ -88,10 +88,10 @@ Gzh_MessageTemplateId_OpenPrize= "lAYZ7E3LUadQkgRjmZ6TvyQhHmUvhc6drP6lUiSl8ug"
 Gzh_MessageTemplateId_DealUnpay= "dEgLLsKVf_hBqh21nQLpAYmR6t0GNR83JXBqw-Jtc8E"
 Gzh_MessageTemplateId_NewProject= "iJxsToxHLL0vxb7srmaGRfdfLeu7zdisn4wON8M9lsw"
 
-#抽奖中奖到FOHOW玖玖下单秘钥
+#抽奖中奖到凤凰菁选下单秘钥
 RabbitOrderProductKey = "1234567890123456"
 
-#正式项目474、测试项目1054筹中筹项目到FOHOW玖玖下单
+#正式项目474、测试项目1054筹中筹项目到凤凰菁选下单
 CzcOrderProductKey = "1234567890123456"
 
 # 到第五创查询号码是否已经注册
@@ -164,7 +164,7 @@ WxFohowXcxAppSecret = "da2882779e983e2acfb573d01cb1fb7d"
 JsSDKConfigTicketAppId = "wx2479f58240be58aa"
 JsSDKConfigTicketAppSecret = "d9243f828f3c9dac198a539981a578b8"
 
-#FOHOW玖玖正式公众号
+#凤凰菁选正式公众号
 WxMPAppId = "wx2479f58240be58aa"
 WxMPAppSecret = "d9243f828f3c9dac198a539981a578b8"
 
@@ -211,10 +211,10 @@ Gzh_MessageTemplateId_OpenPrize= "4qHdrmeippr6u_R5ser5Op_cEJqdDnP0HofD8Y1tl2k"
 Gzh_MessageTemplateId_DealUnpay= "EMWYRXVPtY_jd5EI2ijhWktN3fHoAqMqMNlHQ-hGhpQ"
 Gzh_MessageTemplateId_NewProject= "qafnEW-3Yq9eKPA0FJm_a9auyOJuYWpGAKxzJOjc_TM"
 
-#抽奖中奖到FOHOW玖玖下单秘钥
+#抽奖中奖到凤凰菁选下单秘钥
 RabbitOrderProductKey = "d283aa400af464c7"
 
-#正式项目474、测试项目1054筹中筹项目到FOHOW玖玖下单
+#正式项目474、测试项目1054筹中筹项目到凤凰菁选下单
 CzcOrderProductKey = "4bfeada662c250ae"
 
 # 到第五创查询号码是否已经注册

二進制
go/gopath/src/fohow.com/fohowmall.com


+ 4 - 0
go/gopath/src/fohow.com/routers/routes.go

@@ -95,6 +95,10 @@ func init() {
 
 	//商品详情
 	beego.Router("/v1/product/:id([0-9]+)", &product_controller.ProductController{}, "get:Get")
+
+	//关键字推荐
+	beego.Router("/v1/product/commend_words", &product_controller.ProductController{}, "get:GetCommendWords")
+
 	//商品规格明细
 	beego.Router("/v1/product_size/:id([0-9]+)", &product_controller.ProductController{}, "get:GetProductSizesByPid")
 	//商品详情 by size + color