Browse Source

Merge branch 'feature/open_auth_0321' into debug

hsun 1 year ago
parent
commit
6eb98b9688

+ 13 - 9
controller/english_report/english_report.go

@@ -372,7 +372,6 @@ func (er *EnglishReportController) Detail(c *gin.Context) {
 		resp.FailData("参数解析失败", errs.Translate(global.Trans), c)
 		resp.FailData("参数解析失败", errs.Translate(global.Trans), c)
 		return
 		return
 	}
 	}
-	userinfo := services.GetInfoByClaims(c)
 	reportItem := new(english_report.Report)
 	reportItem := new(english_report.Report)
 	reportItem, err = reportItem.GetEnglishReportByCode(req.ReportCode)
 	reportItem, err = reportItem.GetEnglishReportByCode(req.ReportCode)
 	if err != nil {
 	if err != nil {
@@ -380,11 +379,17 @@ func (er *EnglishReportController) Detail(c *gin.Context) {
 		return
 		return
 	}
 	}
 
 
-	// 报告权限校验
-	authOk, e := english_report_service.CheckUserReportAuthByCompanyAndClassify(int(userinfo.CompanyId), reportItem.ClassifyIdSecond)
-	if e != nil {
-		resp.FailMsg("获取失败", "报告权限校验失败, Err: "+e.Error(), c)
-		return
+	// 英文研报1.1改-研报未登录也可以查看部分报告, 登录则校验权限
+	var authOk bool
+	userInfo := services.GetInfoByClaims(c)
+	if userInfo.Id > 0 {
+		// 报告权限校验
+		ok, e := english_report_service.CheckUserReportAuthByCompanyAndClassify(int(userInfo.CompanyId), reportItem.ClassifyIdSecond)
+		if e != nil {
+			resp.FailMsg("获取失败", "报告权限校验失败, Err: "+e.Error(), c)
+			return
+		}
+		authOk = ok
 	}
 	}
 	content, subContent := ``, ``
 	content, subContent := ``, ``
 	if authOk {
 	if authOk {
@@ -411,9 +416,8 @@ func (er *EnglishReportController) Detail(c *gin.Context) {
 		fullClassify = fullClassifyList[0]
 		fullClassify = fullClassifyList[0]
 	}
 	}
 	// 记录邮箱
 	// 记录邮箱
-	shareEmailId := userinfo.Id
-	if shareEmailId > 0 {
-		go english_report_service.DealEmail(reportItem, req.ReportCode, int(shareEmailId))
+	if userInfo.Id > 0 {
+		go english_report_service.DealEmail(reportItem, req.ReportCode, int(userInfo.Id))
 	}
 	}
 	reportDetail := &english_report.ReportDetail{
 	reportDetail := &english_report.ReportDetail{
 		Id:                 reportItem.Id,
 		Id:                 reportItem.Id,

+ 14 - 14
controller/english_report/english_video.go

@@ -9,7 +9,6 @@ import (
 	"hongze/hongze_yb_en_api/models/english_classify"
 	"hongze/hongze_yb_en_api/models/english_classify"
 	"hongze/hongze_yb_en_api/models/english_report"
 	"hongze/hongze_yb_en_api/models/english_report"
 	"hongze/hongze_yb_en_api/models/english_video"
 	"hongze/hongze_yb_en_api/models/english_video"
-	"hongze/hongze_yb_en_api/services"
 	english_report_service "hongze/hongze_yb_en_api/services/english_report"
 	english_report_service "hongze/hongze_yb_en_api/services/english_report"
 	"hongze/hongze_yb_en_api/utils"
 	"hongze/hongze_yb_en_api/utils"
 	"strconv"
 	"strconv"
@@ -113,25 +112,26 @@ func (er *EnglishVideoController) Detail(c *gin.Context) {
 		resp.FailData("参数解析失败", errs.Translate(global.Trans), c)
 		resp.FailData("参数解析失败", errs.Translate(global.Trans), c)
 		return
 		return
 	}
 	}
-	userinfo := services.GetInfoByClaims(c)
+	// 英文研报1.1改-路演开放所有权限
+	//userinfo := services.GetInfoByClaims(c)
 
 
 	videoItem := new(english_video.EnglishVideo)
 	videoItem := new(english_video.EnglishVideo)
 	videoItem, err = videoItem.GetEnglishVideoByCode(req.VideoCode)
 	videoItem, err = videoItem.GetEnglishVideoByCode(req.VideoCode)
 	if err != nil {
 	if err != nil {
-		resp.FailMsg("该报告已删除", "报告查询失败,Err:"+err.Error(), c)
+		resp.FailMsg("该视频已删除", "视频查询失败,Err:"+err.Error(), c)
 		return
 		return
 	}
 	}
 
 
 	// 权限校验
 	// 权限校验
-	authOk, e := english_report_service.CheckUserReportAuthByCompanyAndClassify(int(userinfo.CompanyId), videoItem.ClassifyIdSecond)
-	if e != nil {
-		resp.FailMsg("获取失败", "报告权限校验失败, Err: "+e.Error(), c)
-		return
-	}
-	videoUrl := ``
-	if authOk {
-		videoUrl = videoItem.VideoUrl
-	}
+	//authOk, e := english_report_service.CheckUserReportAuthByCompanyAndClassify(int(userinfo.CompanyId), videoItem.ClassifyIdSecond)
+	//if e != nil {
+	//	resp.FailMsg("获取失败", "报告权限校验失败, Err: "+e.Error(), c)
+	//	return
+	//}
+	//videoUrl := ``
+	//if authOk {
+	//	videoUrl = videoItem.VideoUrl
+	//}
 
 
 	err = videoItem.UpdatePvByVideoCode(req.VideoCode)
 	err = videoItem.UpdatePvByVideoCode(req.VideoCode)
 	if err != nil {
 	if err != nil {
@@ -159,7 +159,7 @@ func (er *EnglishVideoController) Detail(c *gin.Context) {
 		Author:             videoItem.Author,
 		Author:             videoItem.Author,
 		Overview:           videoItem.Overview,
 		Overview:           videoItem.Overview,
 		PublishTime:        utils.TimeTransferString(utils.FormatDateTime, videoItem.PublishTime),
 		PublishTime:        utils.TimeTransferString(utils.FormatDateTime, videoItem.PublishTime),
-		VideoUrl:           videoUrl,
+		VideoUrl:           videoItem.VideoUrl,
 		VideoCoverUrl:      videoItem.VideoCoverUrl,
 		VideoCoverUrl:      videoItem.VideoCoverUrl,
 		VideoSeconds:       videoItem.VideoSeconds,
 		VideoSeconds:       videoItem.VideoSeconds,
 		VideoCode:          videoItem.VideoCode,
 		VideoCode:          videoItem.VideoCode,
@@ -168,7 +168,7 @@ func (er *EnglishVideoController) Detail(c *gin.Context) {
 	}
 	}
 	baseData := new(english_video.VideoDetailResp)
 	baseData := new(english_video.VideoDetailResp)
 	baseData.Video = videoDetail
 	baseData.Video = videoDetail
-	baseData.AuthOk = authOk
+	baseData.AuthOk = true
 	resp.OkData("查询成功", baseData, c)
 	resp.OkData("查询成功", baseData, c)
 }
 }
 
 

+ 47 - 0
middleware/open_auth.go

@@ -0,0 +1,47 @@
+package middleware
+
+import (
+	"github.com/gin-gonic/gin"
+	"hongze/hongze_yb_en_api/models/english_report_email"
+	"hongze/hongze_yb_en_api/models/session"
+	"hongze/hongze_yb_en_api/services"
+)
+
+// OpenToken 开放Token, 可登录可不登录
+func OpenToken() gin.HandlerFunc {
+	return func(c *gin.Context) {
+		token := c.Request.Header.Get("Authorization")
+		if token == "" {
+			token = c.DefaultQuery("authorization", "")
+			if token == "" {
+				token = c.DefaultQuery("Authorization", "")
+			}
+		}
+		if token == "" {
+			c.Next()
+			return
+		}
+		sessionInfo, err := session.GetTokenByToken(token)
+		if err != nil || sessionInfo == nil {
+			c.Next()
+			return
+		}
+
+		emailItem := english_report_email.Email{Id: uint(sessionInfo.UserId)}
+		userEmail, err := emailItem.GetById(sessionInfo.UserId)
+		if err != nil {
+			c.Next()
+			return
+		}
+		if userEmail.Enable == 0 || userEmail.Status == 3 {
+			c.Next()
+			return
+		}
+		userInfo := services.UserInfo{
+			Email: *userEmail,
+		}
+		userInfo.LoginToken = token
+		c.Set("userInfo", userInfo)
+		c.Next()
+	}
+}

+ 3 - 2
routers/english_report.go

@@ -10,12 +10,13 @@ func InitReport(baseGroup *gin.RouterGroup) {
 	//登录
 	//登录
 	controller := new(english_report.EnglishReportController)
 	controller := new(english_report.EnglishReportController)
 	vController := new(english_report.EnglishVideoController)
 	vController := new(english_report.EnglishVideoController)
-	group := baseGroup.Group("english_report/").Use(middleware.ShareEmailHandler()).Use(middleware.Token())
+	group := baseGroup.Group("english_report/").Use(middleware.ShareEmailHandler()).Use(middleware.OpenToken())
 	group.GET("list", controller.List)
 	group.GET("list", controller.List)
-	group.GET("video/list", vController.List)
 	group.GET("classify", controller.Classify)
 	group.GET("classify", controller.Classify)
 	group.GET("filter_by_es", controller.FilterByEs)
 	group.GET("filter_by_es", controller.FilterByEs)
 	group.GET("detail", controller.Detail)
 	group.GET("detail", controller.Detail)
+
+	group.GET("video/list", vController.List)
 	group.GET("video/detail", vController.Detail)
 	group.GET("video/detail", vController.Detail)
 	group.POST("video/play_log", vController.VideoPlayLog)
 	group.POST("video/play_log", vController.VideoPlayLog)
 }
 }

+ 4 - 2
services/user.go

@@ -45,8 +45,10 @@ type UserInfo struct {
 // GetInfoByClaims 从Claims中获取用户信息
 // GetInfoByClaims 从Claims中获取用户信息
 func GetInfoByClaims(c *gin.Context) (userInfo UserInfo) {
 func GetInfoByClaims(c *gin.Context) (userInfo UserInfo) {
 	//获取jwt数据失败
 	//获取jwt数据失败
-	claims, _ := c.Get("userInfo")
-	userInfo = claims.(UserInfo)
+	claims, exist := c.Get("userInfo")
+	if exist {
+		userInfo = claims.(UserInfo)
+	}
 	return
 	return
 }
 }