Browse Source

feat:我的奖励接口

xmy 3 years ago
parent
commit
45b4b9f946
4 changed files with 124 additions and 3 deletions
  1. 26 3
      handler/award/record.go
  2. 27 0
      services/activity/award/service.go
  3. 2 0
      services/init.go
  4. 69 0
      test/shareToaward_test.go

+ 26 - 3
handler/award/record.go

@@ -1,6 +1,9 @@
 package award
 
-import "app.yhyue.com/moapp/message/db"
+import (
+	"app.yhyue.com/moapp/jybase/common"
+	"app.yhyue.com/moapp/message/db"
+)
 
 type AwardRecord struct {
 	UserId       string `json:"userId"`        //用户
@@ -28,6 +31,26 @@ func AddAwardRecord(record AwardRecord) {
 // GetActivityAwardDesc 查询奖励详情
 // times 奖励次数
 // total 总量
-func GetActivityAwardDesc(userId, activity, award string) (times, total int64) {
-	return -1, -1
+func GetActivityAwardDesc(userId, activityCode, award string) (times, total int64) {
+	q := map[string]interface{}{}
+	q["userid"] = userId
+	q["activity_code"] = activityCode
+	q["award"] = award
+	data, _ := db.Mgo.Find("activity_award", q, "", `{"num":1,}`, false, -1, -1)
+	times = int64(len(*data))
+	for _, v := range *data {
+		total += common.Int64All(v["num"])
+	}
+	return times, total
+}
+
+func GetActivityAwardList(userId, activityCode, award string, pageSize, pageNum int) (res []map[string]interface{}, total int, hasNext bool) {
+	q := map[string]interface{}{}
+	q["userid"] = userId
+	q["activity_code"] = activityCode
+	q["award"] = award
+	data, _ := db.Mgo.Find("activity_award", q, "", `{"activity_code":1,"award":1,"date":1,"getway":1,"num":1,}`, false, pageNum*pageSize, pageSize)
+	total = db.Mgo.Count("activity_award", q)
+	hasNext = (pageNum+1)*pageSize < total
+	return *data, total, hasNext
 }

+ 27 - 0
services/activity/award/service.go

@@ -0,0 +1,27 @@
+package award
+
+import (
+	"app.yhyue.com/moapp/message/handler/award"
+	"github.com/gogf/gf/v2/frame/g"
+	"github.com/gogf/gf/v2/net/ghttp"
+)
+
+type AwardRouter struct{}
+
+func (a AwardRouter) Awardlist(r *ghttp.Request) {
+	rdata := map[string]interface{}{}
+	code := r.Get("code").String() //inviteRegister:邀请注册 freePlan:投标人专属免费计划
+	userid := r.Header.Get("userid")
+	aw := r.Get("award").String()
+	pSize := r.Get("pageSize").Int()
+	pNum := r.Get("pageNum").Int()
+	data, total, hasNext := award.GetActivityAwardList(userid, code, aw, pSize, pNum)
+	rdata["list"] = data
+	rdata["total"] = total
+	rdata["hasNext"] = hasNext
+	r.Response.WriteJson(g.Map{
+		"error_code": 0,
+		"error_msg":  "",
+		"data":       rdata,
+	})
+}

+ 2 - 0
services/init.go

@@ -2,6 +2,7 @@ package services
 
 import (
 	"app.yhyue.com/moapp/message/services/activity"
+	"app.yhyue.com/moapp/message/services/activity/award"
 	"app.yhyue.com/moapp/message/services/activity/bidderPlan"
 	"app.yhyue.com/moapp/message/services/activity/share"
 	"github.com/gogf/gf/v2/frame/g"
@@ -18,5 +19,6 @@ func InitActivityServer() *ghttp.Server {
 
 	//我的奖励
 	activityServer.BindObject("/jyActivity/myPrize", new(activity.MyPrize))
+	activityServer.BindObject("/jyActivity/myAward", new(award.AwardRouter))
 	return activityServer
 }

+ 69 - 0
test/shareToaward_test.go

@@ -0,0 +1,69 @@
+package test
+
+import (
+	"app.yhyue.com/moapp/jybase/common"
+	"app.yhyue.com/moapp/jybase/mongodb"
+	"testing"
+)
+
+func Test_Award(t *testing.T) {
+	Mgo := &mongodb.MongodbSim{
+		MongodbAddr: "192.168.3.206:27080",
+		Size:        5,
+		DbName:      "qfw",
+		UserName:    "",
+		Password:    "",
+		ReplSet:     "",
+	}
+	Mgo.InitPool()
+	query := map[string]interface{}{}
+	query["i_shareCount"] = map[string]interface{}{
+		"$gt":  0,
+		"$lte": 4,
+	}
+	auser, _ := Mgo.Find("user", query, "", `{"_id":1}`, false, -1, -1)
+	var users []string
+	for _, v := range *auser {
+		users = append(users, common.InterfaceToStr(v["_id"]))
+	}
+	q := map[string]interface{}{}
+	qu := map[string]interface{}{}
+	ndatas := []map[string]interface{}{}
+	for _, u := range users {
+		//q["$or"] = []map[string]interface{}{
+		//	{"share_uid": u},
+		//	{"shared_uid": u},
+		//}
+		q["share_uid"] = u
+		data, _ := Mgo.Find("user_share", q, "createtime asc", `{"_id":1,"createtime":1}`, false, 0, 4)
+		if len(*data) > 0 {
+			for i, vv := range *data {
+				if i <= 4 {
+					ndata := map[string]interface{}{}
+					ndata["userid"] = u
+					ndata["award"] = "subvip"
+					ndata["num"] = 7
+					ndata["getway"] = "invite"
+					ndata["date"] = vv["createtime"]
+					ndata["activity_code"] = "inviteRegister"
+					ndata["detail"] = ""
+					ndatas = append(ndatas, ndata)
+				}
+			}
+		}
+		qu["shared_uid"] = u
+		ds, _ := Mgo.FindOne("user_share", qu)
+		if ds != nil && (*ds)["_id"] != nil {
+			val := map[string]interface{}{}
+			val["userid"] = u
+			val["award"] = "subvip"
+			val["num"] = 7
+			val["getway"] = "invited"
+			val["date"] = (*ds)["createtime"]
+			val["activity_code"] = "inviteRegister"
+			val["detail"] = ""
+			ndatas = append(ndatas, val)
+		}
+	}
+	Mgo.SaveBulk("activity_award", ndatas...)
+}