Browse Source

fix 空指针错误,判断内部员工改为方法内

ziwen 2 years ago
parent
commit
bd20c5ceb9
2 changed files with 35 additions and 36 deletions
  1. 5 26
      controller/voice_broadcast/voice_broadcast.go
  2. 30 10
      services/voice_broadcast.go

+ 5 - 26
controller/voice_broadcast/voice_broadcast.go

@@ -44,18 +44,6 @@ func BroadcastList(c *gin.Context) {
 		response.FailMsg("获取语音播报列表失败,"+err.Error(), "QuestionList ErrMsg:"+err.Error(), c)
 		return
 	}
-	userInfo := user.GetInfoByClaims(c)
-	// 是否为内部员工
-	ok, _, err := user.GetAdminByUserInfo(userInfo)
-	if err != nil {
-		response.FailMsg("权限验证失败", "获取系统用户信息失败"+err.Error(), c)
-		return
-	}
-	if !ok {
-		for _, broadcast := range list {
-			broadcast.IsAuthor = false
-		}
-	}
 	isVoiceAdmin, _, err := services.GetVoiceAdminByUserInfo(userinfo)
 	if err != nil && err != utils.ErrNoRow {
 		response.FailMsg("获取语音管理员信息失败", "QuestionList ErrMsg:"+err.Error(), c)
@@ -115,8 +103,8 @@ func AddBroadcast(c *gin.Context) {
 	}
 	userInfo := user.GetInfoByClaims(c)
 	// 新增
-	resp, e := services.CreateVoiceBroadcast(req.SectionId, req.VarietyId, req.AuthorId, int(userInfo.UserID), req.BroadcastName, req.SectionName, req.VarietyName,
-		req.Author, req.VoiceSeconds, req.VoiceSize, req.VoiceUrl, req.Imgs)
+	resp, e := services.CreateVoiceBroadcast(req.SectionId, req.VarietyId, req.AuthorId, req.BroadcastName, req.SectionName, req.VarietyName,
+		req.Author, req.VoiceSeconds, req.VoiceSize, req.VoiceUrl, req.Imgs, userInfo)
 	if e != nil {
 		response.FailMsg("新增失败", e.Error(), c)
 		return
@@ -177,8 +165,8 @@ func EditBroadcast(c *gin.Context) {
 	}
 	userInfo := user.GetInfoByClaims(c)
 	// 编辑
-	resp, e := services.EditVoiceBroadcast(req.BroadcastId, req.SectionId, req.VarietyId, req.AuthorId, int(userInfo.UserID), req.BroadcastName, req.SectionName, req.VarietyName,
-		req.Author, req.VoiceSeconds, req.VoiceSize, req.VoiceUrl, req.Imgs)
+	resp, e := services.EditVoiceBroadcast(req.BroadcastId, req.SectionId, req.VarietyId, req.AuthorId, req.BroadcastName, req.SectionName, req.VarietyName,
+		req.Author, req.VoiceSeconds, req.VoiceSize, req.VoiceUrl, req.Imgs, userInfo)
 	if e != nil {
 		response.FailMsg("新增失败", e.Error(), c)
 		return
@@ -394,20 +382,11 @@ func BroadcastDetail(c *gin.Context) {
 		return
 	}
 	userInfo := user.GetInfoByClaims(c)
-	resp, e := services.GetVoiceBroadcastDetail(req.BroadcastId, int(userInfo.UserID))
+	resp, e := services.GetVoiceBroadcastDetail(req.BroadcastId, userInfo)
 	if e != nil {
 		response.FailMsg("获取失败", "BroadcastDetail ErrMsg:"+e.Error(), c)
 		return
 	}
-	// 是否为内部员工
-	ok, _, err := user.GetAdminByUserInfo(userInfo)
-	if err != nil {
-		response.FailMsg("权限验证失败", "获取系统用户信息失败"+err.Error(), c)
-		return
-	}
-	if !ok {
-		resp.IsAuthor = false
-	}
 	response.OkData("获取成功", resp, c)
 }
 

+ 30 - 10
services/voice_broadcast.go

@@ -72,9 +72,12 @@ func GetVoiceBroadcastList(pageIndex, pageSize, sectionId, broadcastId, authorId
 		imgMap[imgList[i].BroadcastId] = append(imgMap[imgList[i].BroadcastId], imgList[i])
 	}
 	// 响应数据
-	userId := int(userInfo.UserID)
 	for i := 0; i < listLen; i++ {
-		r := handleBroadcastItem(userId, voiceList[i], imgMap[voiceList[i].BroadcastId])
+		r, e := handleBroadcastItem(userInfo, voiceList[i], imgMap[voiceList[i].BroadcastId])
+		if e != nil {
+			err = errors.New("语音播报响应数据处理失败, Err: " + e.Error())
+			return
+		}
 		resp = append(resp, r)
 	}
 	return
@@ -219,7 +222,7 @@ func SendBroadcastMsg(broadcastId, userId int) (errMsg string, err error) {
 }
 
 // CreateVoiceBroadcast 新增语音播报
-func CreateVoiceBroadcast(sectionId, varietyId, authorId, userId int, broadcastName, sectionName, varietyName, author, voiceSeconds, voiceSize, voiceUrl, imgs string) (resp response.Broadcast, err error) {
+func CreateVoiceBroadcast(sectionId, varietyId, authorId int, broadcastName, sectionName, varietyName, author, voiceSeconds, voiceSize, voiceUrl, imgs string, userInfo user.UserInfo) (resp response.Broadcast, err error) {
 	nowTime := time.Now().Local()
 	item := &voice_broadcast.VoiceBroadcast{
 		BroadcastName:    broadcastName,
@@ -255,12 +258,17 @@ func CreateVoiceBroadcast(sectionId, varietyId, authorId, userId int, broadcastN
 		err = errors.New("新增语音播报及图片失败, Err: " + e.Error())
 		return
 	}
-	resp = handleBroadcastItem(userId, item, imgList)
+	respItem, e := handleBroadcastItem(userInfo, item, imgList)
+	if e != nil {
+		err = errors.New("语音播报响应数据处理失败, Err: " + e.Error())
+		return
+	}
+	resp = respItem
 	return
 }
 
 // EditVoiceBroadcast 编辑语音播报
-func EditVoiceBroadcast(broadcastId, sectionId, varietyId, authorId, userId int, broadcastName, sectionName, varietyName, author, voiceSeconds, voiceSize, voiceUrl, imgs string) (resp response.Broadcast, err error) {
+func EditVoiceBroadcast(broadcastId, sectionId, varietyId, authorId int, broadcastName, sectionName, varietyName, author, voiceSeconds, voiceSize, voiceUrl, imgs string, userInfo user.UserInfo) (resp response.Broadcast, err error) {
 	if broadcastId <= 0 {
 		return
 	}
@@ -303,7 +311,11 @@ func EditVoiceBroadcast(broadcastId, sectionId, varietyId, authorId, userId int,
 		err = errors.New("更新语音播报及图片失败, Err: " + e.Error())
 		return
 	}
-	resp = handleBroadcastItem(userId, item, imgList)
+	resp, e = handleBroadcastItem(userInfo, item, imgList)
+	if e != nil {
+		err = errors.New("语音播报响应数据处理失败, Err: " + e.Error())
+		return
+	}
 	return
 }
 
@@ -384,7 +396,7 @@ func createVoiceBroadcastShareImg(baseImg, sectionName, createTime string) (shar
 }
 
 // GetVoiceBroadcastDetail 获取语音播报详情
-func GetVoiceBroadcastDetail(broadcastId, userId int) (detail response.Broadcast, err error) {
+func GetVoiceBroadcastDetail(broadcastId int, userInfo user.UserInfo) (detail response.Broadcast, err error) {
 	item, e := voice_broadcast.GetBroadcastById(broadcastId)
 	if e != nil {
 		err = errors.New("获取语音播报详情失败, Err: " + e.Error())
@@ -396,12 +408,16 @@ func GetVoiceBroadcastDetail(broadcastId, userId int) (detail response.Broadcast
 		err = errors.New("获取语音播报图片失败, Err: " + e.Error())
 		return
 	}
-	detail = handleBroadcastItem(userId, item, imgList)
+	detail, e = handleBroadcastItem(userInfo, item, imgList)
+	if e != nil {
+		err = errors.New("语音播报响应数据处理失败, Err: " + e.Error())
+		return
+	}
 	return
 }
 
 // handleBroadcastItem 语音播报响应数据处理
-func handleBroadcastItem(userId int, item *voice_broadcast.VoiceBroadcast, imgs []*voice_broadcast_img.YbVoiceBroadcastImg) (resp response.Broadcast) {
+func handleBroadcastItem(userInfo user.UserInfo, item *voice_broadcast.VoiceBroadcast, imgs []*voice_broadcast_img.YbVoiceBroadcastImg) (resp response.Broadcast, err error) {
 	if item == nil {
 		return
 	}
@@ -423,7 +439,11 @@ func handleBroadcastItem(userId int, item *voice_broadcast.VoiceBroadcast, imgs
 	resp.PublishTime = item.PublishTime
 	resp.PrePublishTime = item.PrePublishTime
 	// 是否为作者、是否可推送消息
-	if userId == item.AuthorId {
+	ok, _, err := user.GetAdminByUserInfo(userInfo)
+	if err != nil {
+		return
+	}
+	if int(userInfo.UserID) == item.AuthorId && ok{
 		resp.IsAuthor = true
 		if item.MsgState == 0 {
 			resp.CouldSendMsg = true