Jelajahi Sumber

wip:新增超级订阅 商机管理权限判断

wangkaiyue 2 tahun lalu
induk
melakukan
5ef8fb4398
1 mengubah file dengan 21 tambahan dan 20 penghapusan
  1. 21 20
      internal/model/question.go

+ 21 - 20
internal/model/question.go

@@ -115,18 +115,20 @@ func getInfo(infoId string) (hasWinner, hasBuyer bool, infoTypes string) {
 }
 
 type BusinessRes struct {
-	CheckMember int    `json:"check_member" dc:"是否校验大会员权限"`
-	Answer      string `json:"answer" dc:"答案"`
-	AutoUrl     string `json:"auto_url" dc:"默认url"`
-	Joggle      string `json:"joggle" dc:"业务接口"`
-	Noperm      string `json:"noperm" dc:"无权限回复"`
-	Source      string `json:"source" dc:"问题所属"`
-	ServiceId   string `json:"service_id" dc:"大会员功能服务id"`
+	Answer           string `json:"answer" dc:"答案"`
+	AutoUrl          string `json:"auto_url" dc:"默认url"`
+	Joggle           string `json:"joggle" dc:"业务接口"`
+	Noperm           string `json:"noperm" dc:"无权限回复"`
+	Source           string `json:"source" dc:"问题所属"`
+	CheckMember      int    `json:"check_member" dc:"是否校验大会员权限"`
+	ServiceId        string `json:"service_id" dc:"大会员功能服务id"`
+	CheckNewentniche int    `json:"check_newentniche" dc:"校验新版商机管理"`
+	CheckNewvip      int    `json:"check_newvip" dc:"校验是否是新版超级订阅"`
 }
 
 // getIsbusinessData 获取业务规则
 func (q *cQuestion) getIsbusinessData(ctx context.Context, code string) (bRes *BusinessRes, err error) {
-	res, err := g.Model("ai_question").Ctx(ctx).Fields("check_member", "answer", "auto_url", "joggle", "noperm", "source", "service_id").Where("ai_code = ?", code).One()
+	res, err := g.Model("ai_question").Ctx(ctx).Fields("check_member", "answer", "auto_url", "joggle", "noperm", "source", "service_id", "check_newvip", "check_newentniche").Where("ai_code = ?", code).One()
 	if err != nil {
 		return nil, err
 	}
@@ -169,25 +171,24 @@ func (q *cQuestion) DetailQuestion(ctx context.Context, qRes *QuestionReq) (repl
 	powerPass := func() bool {
 		power := utility.Middleground.PowerCheckCenter.Check(g.Config().MustGet(ctx, "chat.appId").String(), jSession.UserId, jSession.NewUid, jSession.AccountId, jSession.EntId, jSession.PositionType, jSession.PositionId)
 		// 大会员权益校验
-		if bRes.CheckMember == 1 && power.Member.Status <= 0 {
-			return false
-		}
-		// 大会员权益ServiceId校验
-		if bRes.ServiceId != "" {
+		if bRes.CheckMember == 1 && power.Member.Status > 0 && bRes.ServiceId != "" {
 			for _, v := range strings.Split(bRes.ServiceId, ",") {
-				var ok bool = false
 				for _, vv := range power.Member.MemberPowerList {
 					if gconv.Int64(v) == vv {
-						ok = true
-						break
+						return true
 					}
 				}
-				if !ok {
-					return false
-				}
 			}
 		}
-		return true
+		// 校验新版超级订阅
+		if bRes.CheckNewvip == 1 && power.Vip.Upgrade > 0 && power.Vip.Status > 0 {
+			return true
+		}
+		// 校验商机管理
+		if bRes.CheckNewentniche == 1 && power.Entniche.Status > 0 && power.Entniche.IsNew > 0 {
+			return true
+		}
+		return false
 	}()
 	if !powerPass {
 		return bRes.Noperm, nil, Answer_Isbusiness, nil