Forráskód Böngészése

add: 新增活动列表是否有权限筛选

hsun 3 éve
szülő
commit
9321982546

+ 11 - 2
controller/activity/activity.go

@@ -25,6 +25,7 @@ import (
 // @Param title query string false "活动类别/标题"
 // @Param active_state query int false "活动状态 1-本周预告 2-进行中 3-已结束"
 // @Param activity_type query int false "活动类型 1-线上会议 3-线下沙龙"
+// @Param has_permission query int false "是否查看仅有权限的 0-否 1-是"
 // @Param page query int false "当前页码"
 // @Param limit query int false "每页数量"
 // @Success 200 {object} []yb_activity.ActivityItem
@@ -33,8 +34,8 @@ import (
 func GetPageList(c *gin.Context) {
 	page, _ := strconv.Atoi(c.Query("page"))
 	limit, _ := strconv.Atoi(c.Query("limit"))
-	condition, pars, order := _handleListQuery(c)
 	userInfo := user.GetInfoByClaims(c)
+	condition, pars, order := _handleListQuery(c, userInfo)
 	listData, err := activity.PageList(condition, pars, page, limit, order, userInfo)
 	if err != nil {
 		response.Fail("活动获取失败", c)
@@ -43,7 +44,7 @@ func GetPageList(c *gin.Context) {
 	response.OkData("获取成功", listData, c)
 }
 
-func _handleListQuery(c *gin.Context) (string, []interface{}, string) {
+func _handleListQuery(c *gin.Context, userInfo user.UserInfo) (string, []interface{}, string) {
 	condition := "is_delete = 0 AND publish_status = 1"
 	pars := make([]interface{}, 0)
 	// 活动类别/标题
@@ -79,6 +80,14 @@ func _handleListQuery(c *gin.Context) (string, []interface{}, string) {
 		condition += ` AND first_activity_type_id = ?`
 		pars = append(pars, activityTypeId)
 	}
+	// 是否仅查看有权限的
+	reqHasPermission := c.DefaultQuery("has_permission", "0")
+	if reqHasPermission != "0" {
+		activityIds, _ := activity.GetUserAuthActivityIds(userInfo)
+		condition += ` AND activity_id IN (?)`
+		pars = append(pars, activityIds)
+	}
+
 	return condition, pars, order
 }
 

+ 6 - 0
models/tables/yb_activity_permission/query.go

@@ -7,3 +7,9 @@ func GetPermissionsByActivityId(activityId int) (permissions []*YbActivityPermis
 	err = global.DEFAULT_MYSQL.Model(YbActivityPermission{}).Where("activity_id", activityId).Scan(&permissions).Error
 	return
 }
+
+// GetPermissionsByPermissionIds根据权限IDs获取权限集合
+func GetPermissionsByPermissionIds(permissionIds []int) (permissions []*YbActivityPermission, err error) {
+	err = global.DEFAULT_MYSQL.Model(YbActivityPermission{}).Where("permission_id IN (?)", permissionIds).Group("activity_id").Scan(&permissions).Error
+	return
+}

+ 6 - 2
routers/activity.go

@@ -7,16 +7,20 @@ import (
 )
 
 func InitActivity(r *gin.Engine) {
+	// 需要Token
 	rGroup := r.Group("activity").Use(middleware.Token())
-
 	{
 		rGroup.GET("/getPageList", activity.GetPageList)
 		rGroup.GET("/getActivityDetail", activity.GetActivityDetail)
 		rGroup.GET("/getActivityVoices", activity.GetActivityVoices)
-		rGroup.GET("/getActivityShareImg", activity.GetActivityShareImg)
 		rGroup.POST("/addRemind", activity.AddRemind)
 		rGroup.POST("/cancelRemind", activity.CancelRemind)
 		rGroup.POST("/registerActivity", activity.RegisterActivity)
 		rGroup.POST("/cancelRegister", activity.CancelRegister)
 	}
+	// 不需要Token
+	rGroup2 := r.Group("activity")
+	{
+		rGroup2.GET("/getActivityShareImg", activity.GetActivityShareImg)
+	}
 }

+ 20 - 0
services/activity/activity.go

@@ -161,3 +161,23 @@ func CheckActivityPermission(userInfo user.UserInfo, activityId int) (ok bool, p
 	ok, permissionCheckInfo, err = company.CheckPermissionByPermissionIdList2Ficc(companyId, int(userInfo.UserID), permissionIds)
 	return
 }
+
+// GetUserAuthActivityIds 获取用户有权限参与的活动Ids
+func GetUserAuthActivityIds(userInfo user.UserInfo) (acrivityIds []int, err error) {
+	// 获取用户有效权限
+	productId := 1
+	validPermissionIdList, err := company.GetValidPermissionIdListByCompany2ProductId(userInfo.CompanyID, int64(productId))
+	if err != nil {
+		return
+	}
+	// 获取用户权限可参与的活动ID
+	permissions, err := yb_activity_permission.GetPermissionsByPermissionIds(validPermissionIdList)
+	if err != nil {
+		return
+	}
+	for _, v := range permissions {
+		acrivityIds = append(acrivityIds, int(v.ActivityID))
+	}
+
+	return
+}