Browse Source

Merge remote-tracking branch 'origin/master'

WH01243 2 years ago
parent
commit
298abaa4cd
6 changed files with 100 additions and 22 deletions
  1. 7 18
      common/src/qfw/util/jy/payUser.go
  2. 2 1
      go.mod
  3. 3 2
      go.sum
  4. 5 1
      middleground/middleground.go
  5. 55 0
      middleground/resourcecenter.go
  6. 28 0
      public/public.go

+ 7 - 18
common/src/qfw/util/jy/payUser.go

@@ -1,8 +1,6 @@
 package jy
 
 import (
-	"app.yhyue.com/moapp/jybase/go-xweb/httpsession"
-	"app.yhyue.com/moapp/jypkg/middleground"
 	"bytes"
 	"encoding/json"
 	"errors"
@@ -12,6 +10,9 @@ import (
 	"net/http"
 	"strings"
 
+	"app.yhyue.com/moapp/jybase/go-xweb/httpsession"
+	"app.yhyue.com/moapp/jypkg/middleground"
+
 	qu "app.yhyue.com/moapp/jybase/common"
 )
 
@@ -94,22 +95,10 @@ func (vs *VipState) GetQueryItems(selectType string, limitOldTime int64) (items
 }
 
 // HasBidFieldPower 获取用户是否有领域化数据权限
-func HasBidFieldPower(url string, userId string, functionCode string) bool {
-	// 是否开通过权益
-	header := map[string]string{
-		"newUserId": userId,
-	}
-	byJson, err := PostByJson(url, []byte(""), header)
-	if err != nil || byJson == nil {
-		log.Println("查询用户权益", url, userId, functionCode, err)
-		return false
-	}
-	if byJson != nil {
-		powerList := byJson["data"].([]interface{})
-		for i := 0; i < len(powerList); i++ {
-			if powerList[i] == functionCode {
-				return true
-			}
+func HasBidFieldPower(m *middleground.Middleground, userId int64, functionCode string) bool {
+	for _, v := range m.ResourceCenter.Haspowers(userId).Powers {
+		if v == functionCode {
+			return true
 		}
 	}
 	return false

+ 2 - 1
go.mod

@@ -5,7 +5,8 @@ go 1.18
 require (
 	app.yhyue.com/moapp/jybase v0.0.0-20230117032034-ad7c00ffe11a
 	app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae
-	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230128033309-a6b26e74a68c
+	bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230207054315-b05f3dd4c4d3
+	bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.4
 	bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20230129060002-f69424aa14ba
 	github.com/nsqio/go-nsq v1.1.0
 	github.com/robfig/cron v1.2.0

+ 3 - 2
go.sum

@@ -18,13 +18,14 @@ app.yhyue.com/moapp/message v0.0.0-20221223100203-6402e389d9ae/go.mod h1:b0zZHev
 bp.jydev.jianyu360.cn/BP/jynsq v0.0.0-20220222052708-ebc43af90698/go.mod h1:ojo/AUH9Yr1wzarEjOaNMkj1Cet/9r8IgLyba64Z52E=
 bp.jydev.jianyu360.cn/BaseService/gateway v0.0.0-20220419090715-88ddb32961be/go.mod h1:Yj4oabIGItuMoF0BXYLz2XAnF581kxgXBrvlUtIJrkI=
 bp.jydev.jianyu360.cn/BaseService/gateway v1.3.4/go.mod h1:BMLd/5wb3BIEGhnEgF9y1sJN9P5/Dw9kYsoiE9V8I9g=
-bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230128033309-a6b26e74a68c h1:g49jOlhZlBCJ3IgJA0rotfNf2Gh22pISffUtqxB8XtY=
-bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230128033309-a6b26e74a68c/go.mod h1:5nimT8GJh46AyfeeDeyRlDQygMlO7TRM8Pwm41Gxemc=
+bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230207054315-b05f3dd4c4d3 h1:jeItQ6RM1T6yPWc/5i4R6h3kViD+Rm2VnIEsc1gCFJA=
+bp.jydev.jianyu360.cn/BaseService/powerCheckCenter v0.0.0-20230207054315-b05f3dd4c4d3/go.mod h1:5nimT8GJh46AyfeeDeyRlDQygMlO7TRM8Pwm41Gxemc=
 bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.0-20220418005748-8ba5d936dd53/go.mod h1:E5lcDI3k4FESLxiAetCfWQTq8qfpy9cv0yN1oKoEO34=
 bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.0-20220419023723-0b32d4a41751/go.mod h1:6KL5LMEku83uRbre0W/bj5kXG2I6pJGBFtktmtp51yM=
 bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.0-20220419063004-233fc7ce006c/go.mod h1:6KL5LMEku83uRbre0W/bj5kXG2I6pJGBFtktmtp51yM=
 bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.0-20220420075831-0b59892e9982/go.mod h1:wsHNO91h37H+xE4ZNny0yd7mtpODeDJxbVYhIRMR+qw=
 bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.3/go.mod h1:Z353aucNO5hH4ZYjeKST3kE1PN3W8/uPc4J8s0Upz40=
+bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.4 h1:LXD8woSkDDtqCQ19S9TGvx7GVir300nGszoIidBTlGM=
 bp.jydev.jianyu360.cn/BaseService/resourceCenter v0.0.4/go.mod h1:rRiGzKG4F/fmkNxXQCxrkxNWc8yf1SmW8qWCKfGIQSM=
 bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20220418072311-2062bed1e700/go.mod h1:KjcrxTzM96tBc6G4B8tlLBn1lrVy5UJYF8+eTdP4xAE=
 bp.jydev.jianyu360.cn/BaseService/userCenter v0.0.0-20220421015128-4a36f3eac5c5/go.mod h1:GT0QC4aaKDuXxAvaU4G02XjCc31TU1ctqBGqxQYOfC4=

+ 5 - 1
middleground/middleground.go

@@ -3,6 +3,7 @@ package middleground
 type Middleground struct {
 	hosts            []string
 	UserCenter       *userCenter
+	ResourceCenter   *resourceCenter
 	PowerCheckCenter *powerCheckCenter
 }
 
@@ -15,7 +16,10 @@ func (m *Middleground) RegUserCenter(key string) *Middleground {
 	m.UserCenter = newUserCenter(m.hosts, key)
 	return m
 }
-
+func (m *Middleground) RegResourceCenter(key string) *Middleground {
+	m.ResourceCenter = newResourceCenter(m.hosts, key)
+	return m
+}
 func (m *Middleground) RegPowerCheckCenter(key string) *Middleground {
 	m.PowerCheckCenter = newPowerCheckCenter(m.hosts, key)
 	return m

+ 55 - 0
middleground/resourcecenter.go

@@ -0,0 +1,55 @@
+package middleground
+
+import (
+	"context"
+	"log"
+
+	"bp.jydev.jianyu360.cn/BaseService/resourceCenter/rpc/pb"
+	"bp.jydev.jianyu360.cn/BaseService/resourceCenter/rpc/resource"
+	"github.com/zeromicro/go-zero/core/discov"
+	"github.com/zeromicro/go-zero/zrpc"
+)
+
+type resourceCenter struct {
+	hosts []string
+	key   string
+}
+
+func newResourceCenter(hosts []string, key string) *resourceCenter {
+	return &resourceCenter{
+		hosts: hosts,
+		key:   key,
+	}
+}
+
+func (r *resourceCenter) newClient() zrpc.Client {
+	client, err := zrpc.NewClient(zrpc.RpcClientConf{
+		Etcd: discov.EtcdConf{
+			Hosts: r.hosts,
+			Key:   r.key,
+		},
+	})
+	if err != nil {
+		log.Println(err)
+		return nil
+	}
+	return client
+}
+
+//
+func (r *resourceCenter) Haspowers(userId int64) *pb.HaspowersResp {
+	client := r.newClient()
+	if client == nil {
+		return nil
+	}
+	defer client.Conn().Close()
+	resp, err := resource.NewResource(client).Haspowers(context.Background(), &pb.HaspowersReq{
+		Appid:  "10000",
+		UserId: userId,
+	})
+	if err != nil {
+		log.Println(err)
+		return nil
+	}
+	return resp
+}

+ 28 - 0
public/public.go

@@ -277,3 +277,31 @@ func isEmail(value string) bool {
 	var emailPattern = regexp.MustCompile("^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$")
 	return emailPattern.MatchString(value)
 }
+
+func GetAllSubSet(mgo *MongodbSim, userId string) *map[string]interface{} {
+	user := map[string]interface{}{}
+	if IsObjectIdHex(userId) {
+		temp, ok := mgo.FindById("user", userId, `{"o_member_jy":1,"o_vipjy":1,"o_jy":1}`)
+		if ok && temp != nil && len(*temp) > 0 {
+			user = *temp
+		}
+	} else {
+		entniche_rule, ok := mgo.Find("entniche_rule", map[string]interface{}{
+			"i_userid": util.IntAll(userId),
+		}, nil, `{"o_entniche":1}`, false, -1, -1)
+		if ok && entniche_rule != nil && len(*entniche_rule) > 0 {
+			for _, v := range *entniche_rule {
+				i_type := util.IntAll(v["i_type"])
+				if i_type == 0 {
+					user["o_entniche"] = v["o_entniche"]
+				} else if i_type == 1 {
+					user["o_vipjy"] = v["o_entniche"]
+					user["o_member_jy"] = v["o_entniche"]
+				} else if i_type == 2 {
+					user["o_jy"] = v["o_entniche"]
+				}
+			}
+		}
+	}
+	return &user
+}