Browse Source

cent many table manage func

abiao 5 years ago
parent
commit
01aca44782

+ 18 - 0
go/gopath/src/fohow.com/apps/controllers/test_controller/test_controller.go

@@ -2,6 +2,7 @@ package test_controller
 
 import (
 	"fmt"
+	"fohow.com/apps/logics"
 	"fohow.com/apps/models/order_model"
 	"fohow.com/apps/models/user_model"
 	"fohow.com/libs/lib_redis"
@@ -104,3 +105,20 @@ func RandInt64(min, max int64) int64 {
 	}
 	return rand.Int63n(max-min) + min
 }
+
+//测试redis 存储userInfo
+func (self *TestController) TestOptCentEconomic() {
+	amount, _ := self.GetInt64("amount")
+	wxUId, _ := self.GetInt64("wxu_id")
+	if amount != int64(0) {
+		logics.OptEconomicCent(wxUId, amount)
+	}
+
+	type Ret struct {
+		Status string `json:"status"`
+	}
+	ret := &Ret{}
+	ret.Status = "DONE!"
+	self.Data["json"] = ret
+	self.ServeJSON()
+}

+ 58 - 0
go/gopath/src/fohow.com/apps/logics/cent_logic.go

@@ -0,0 +1,58 @@
+package logics
+
+import (
+	"fmt"
+	"fohow.com/apps/models/cent_model"
+	"fohow.com/apps/models/economic_model"
+	"github.com/astaxie/beego"
+	"github.com/astaxie/beego/orm"
+
+	"fohow.com/apps/models/user_model"
+	// "st.com/libs/wx_mp"
+)
+
+//经济积分增减
+func OptEconomicCent(loginedWxUId, count int64) {
+	beego.BeeLogger.Warn("******* OptEconomicCent wxid:%d, count:%d", loginedWxUId, count)
+	// 不能设置自己为邀请人, 且没有下级
+	wxUser := user_model.GetWxUserById(loginedWxUId, false)
+	if wxUser != nil {
+		o := orm.NewOrm()
+		err := o.Begin()
+		if err != nil {
+			beego.BeeLogger.Error("start the transaction failed")
+			return
+		}
+		//var centEconomic *economic_model.CentEconomic
+		//更新经济主表
+		var errE error
+		//centEconomic := &economic_model.CentEconomic{}
+		mainEconomic := economic_model.GetMainEconomicByWxUId(wxUser.Id, false)
+		if mainEconomic == nil {
+			mainEconomic = new(economic_model.MainEconomic).Create(wxUser.Id, count)
+		} else {
+			mainEconomic.Cent += count
+			errE = mainEconomic.Save()
+		}
+
+		//更新经济明细表
+		s := cent_model.FIRST_LOGIN
+		remark := fmt.Sprintf("首次登录,赠送积分")
+		centEconomic := new(economic_model.CentEconomic).Create(wxUser.Id, count, s, s, remark)
+
+		if mainEconomic == nil || errE != nil || centEconomic == nil {
+			beego.BeeLogger.Error("execute transaction's sql fail, rollback.", err)
+			err = o.Rollback()
+			if err != nil {
+				beego.BeeLogger.Error("roll back transaction failed", err)
+			}
+		} else {
+			err = o.Commit()
+			if err != nil {
+				beego.BeeLogger.Error("commit transaction failed.", err)
+			}
+		}
+		beego.BeeLogger.Info("Wxuser OptEconomicCent  wxUserId:%d, inviteId:%d", wxUser.Id, wxUser.InviteId)
+	}
+	return
+}

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

@@ -244,6 +244,7 @@ func init() {
 	beego.Router("/v1/test/wxpay/eppay", &railsadmin_controller.RailsadminController{}, "get:TestEpPay")
 	beego.Router("/v1/test/redis_info", &test_controller.TestController{}, "get:GetUserInfoFromRedis")
 	beego.Router("/v1/wxpay/refund", &test_controller.TestController{}, "get:TestWxPayRefund")
+	beego.Router("/v1/test/opt_economic", &test_controller.TestController{}, "post:OptEconomicCent")
 
 	//----------------微信商品库管理-------------
 	beego.Router("/railsadmin/wxku_commodity/:id([0-9]+)/addOrUpdate", &wxku_commodity_controller.WxkuCommodityController{}, "post:AddOrUpdateWxkuCommodity")