Răsfoiți Sursa

Merge branch 'feature/v4.8.81_ws' of qmx/jy into feature/v4.8.81

fuwencai 1 an în urmă
părinte
comite
65487b1b6a
1 a modificat fișierele cu 28 adăugiri și 4 ștergeri
  1. 28 4
      src/jfw/modules/publicapply/src/userbase/entity/entity.go

+ 28 - 4
src/jfw/modules/publicapply/src/userbase/entity/entity.go

@@ -26,7 +26,8 @@ const (
 	RedisPoly                = "poly"     // 查白名单用户用的redis
 	WhitelistRedisKey        = "white_%s" // 白名单用户用的redis key
 	TabelOriginalPowerRecord = "original_power_record"
-	TableOriginalUserLedger  = "original_user_ledger" // 用户每个月使用的查看原文次数表
+	TableOriginalUserLedger  = "original_user_ledger"  // 用户每个月使用的查看原文次数表
+	TableOriginalUserAccount = "original_user_account" // 用户查看原文可用总量信息表
 )
 
 type UserInfo struct {
@@ -632,20 +633,43 @@ func (o *OriginalPower) SetUserInfo() {
 		o.TotalCount = userInfo.Free.Original
 		o.UserType = UserTypeFree
 		o.UserState = UserStateFree
-	} else if userInfo.Member.Status > 0 {
+		return
+	}
+	// 总次数如果为多重身份则取最大值 如果用单独配置则取配置
+	// 判断是不是大会员
+	if userInfo.Member.Status > 0 {
 		o.TotalCount = userInfo.Member.Original
 		o.UserType = UserTypePay
 		o.UserState = UserStateMember
-	} else if userInfo.Entniche.Status > 0 && userInfo.Entniche.PowerSource < 1 {
+	}
+	// 判断是不是商机管理
+	if userInfo.Entniche.Status > 0 && userInfo.Entniche.PowerSource < 1 && userInfo.Entniche.Original > o.TotalCount {
 		o.TotalCount = userInfo.Entniche.Original
 		o.UserType = UserTypePay
 		o.UserState = UserStateEntniche
-	} else if userInfo.Vip.Status > 0 {
+	}
+	// 判断是不是超级订阅
+	if userInfo.Vip.Status > 0 && userInfo.Vip.Original > o.TotalCount {
 		o.TotalCount = userInfo.Vip.Original
 		o.UserType = UserTypePay
 		o.UserState = UserStateVip
 	}
+	// 查询用户是否有单独配置
+	userAccountTotal := o.GetUserCount()
+	if userAccountTotal > 0 {
+		o.TotalCount = userAccountTotal
+	}
+}
 
+// GetUserCount 用户单独配置
+func (o *OriginalPower) GetUserCount() (total int64) {
+	now := date.NowFormat(date.Date_Full_Layout)
+	q := fmt.Sprintf("SELECT total FROM %s where position_id=? and start_time<=? and end_time>=? and state =0 ;", TableOriginalUserAccount)
+	rs := db.Mysql.SelectBySql(q, o.PositionId, now, now)
+	if rs != nil && len(*rs) > 0 {
+		total = util.Int64All((*rs)[0]["total"])
+	}
+	return
 }
 
 // 该节点是否留资