package activity import ( "github.com/gin-gonic/gin" "hongze/hongze_yb/controller/response" "hongze/hongze_yb/services/activity" "hongze/hongze_yb/services/user" "hongze/hongze_yb/utils" "strconv" "time" ) // GetPageList 活动列表 // @Tags 活动模块 // @Summary 活动列表 // @Description 获取活动列表 // @Security ApiKeyAuth // @Param Authorization header string true "Bearer 31a165baebe6dec616b1f8f3207b4273" // @Accept json // @Product json // @Param activity_name query string false "活动名称" // @Param activity_type_name query string false "活动类别" // @Param active_state query int false "活动状态 1-本周预告 2-进行中 3-已结束" // @Param activity_type query int false "活动类型 1-线上会议 3-线下沙龙" // @Param page query int false "当前页码" // @Param limit query int false "每页数量" // @Success 200 {object} []yb_activity.ActivityItem // @Router /activity/getPageList [get] func GetPageList(c *gin.Context) { where, order := _handleListQuery(c) page, limit := _handlePageParam(c) userInfo := user.GetInfoByClaims(c) listData, err := activity.PageList(where, page, limit, order, userInfo) if err != nil { response.Fail("活动获取失败", c) return } response.OkData("获取成功", listData, c) } func _handleListQuery(c *gin.Context) (map[string]interface{}, string) { where := make(map[string]interface{}) where["is_delete ="] = 0 title := c.DefaultQuery("activity_name", "") if title != "" { where["activity_name like"] = "%" + c.Query("activity_name") + "%" } typeName := c.DefaultQuery("activity_type_name", "") if typeName != "" { where["activity_type_name like"] = "%" + c.Query("activity_type_name") + "%" } order := "" reqState := c.DefaultQuery("active_state", "0") if reqState != "0" { state, _ := strconv.Atoi(reqState) nowTime := time.Now().Format("2006-01-02 15:04:05") weekStart := utils.GetNowWeekMonday() weekEnd := utils.GetNowWeekLastDay() // 比对本周开始时间和当前时间 timeNow, _ := time.Parse("2006-01-02 15:04:05", nowTime) queryStart := timeNow if timeNow.Before(weekStart) { queryStart = weekStart } switch state { case 1: // 时间在本周内且未开始 where["start_time >="] = queryStart where["end_time <"] = weekEnd case 2: where["start_time <="] = nowTime where["end_time >"] = nowTime case 3: where["end_time <"] = nowTime order = "start_time desc" } } reqType := c.DefaultQuery("activity_type", "0") if reqType != "0" { activityType, _ := strconv.Atoi(reqType) where["activity_type_id ="] = activityType } return where, order } func _handlePageParam(c *gin.Context) (page, limit int) { page, _ = strconv.Atoi(c.Query("page")) limit, _ = strconv.Atoi(c.Query("limit")) return } // AddRemind 添加提醒 // @Tags 活动模块 // @Summary 添加提醒 // @Description 添加提醒 // @Security ApiKeyAuth // @Param Authorization header string true "Bearer 31a165baebe6dec616b1f8f3207b4273" // @Accept json // @Product json // @Param activity_id query int true "活动ID" // @Success 200 "" // @Router /activity/addRemind [post] func AddRemind(c *gin.Context) { reqActivityId := c.DefaultPostForm("activity_id", "0") if reqActivityId == "0" { response.Fail("参数异常", c) return } activityId, _ := strconv.Atoi(reqActivityId) userInfo := user.GetInfoByClaims(c) err := activity.CreateRemind(activityId, userInfo) if err != nil { response.Fail(err.Error(), c) return } response.OkData("操作成功", "", c) } // CancelRemind 取消提醒 // @Tags 活动模块 // @Summary 取消提醒 // @Description 取消提醒 // @Security ApiKeyAuth // @Param Authorization header string true "Bearer 31a165baebe6dec616b1f8f3207b4273" // @Accept json // @Product json // @Param activity_id query int true "活动ID" // @Success 200 "" // @Router /activity/cancelRemind [post] func CancelRemind(c *gin.Context) { reqActivityId := c.DefaultPostForm("activity_id", "0") if reqActivityId == "0" { response.Fail("参数异常", c) return } activityId, _ := strconv.Atoi(reqActivityId) userInfo := user.GetInfoByClaims(c) err := activity.CancelRemind(activityId, userInfo) if err != nil { response.Fail(err.Error(), c) return } response.OkData("操作成功", "", c) } // RegisterActivity 报名活动 // @Tags 活动模块 // @Summary 报名活动 // @Description 报名活动 // @Security ApiKeyAuth // @Param Authorization header string true "Bearer 31a165baebe6dec616b1f8f3207b4273" // @Accept json // @Product json // @Param activity_id query int true "活动ID" // @Success 200 "" // @Router /activity/registerActivity [post] func RegisterActivity(c *gin.Context) { reqActivityId := c.DefaultPostForm("activity_id", "0") if reqActivityId == "0" { response.Fail("参数异常", c) return } activityId, _ := strconv.Atoi(reqActivityId) userInfo := user.GetInfoByClaims(c) err := activity.CreateRegister(activityId, userInfo) if err != nil { response.Fail(err.Error(), c) return } response.OkData("操作成功", "", c) } // CancelRegister 取消报名 // @Tags 活动模块 // @Summary 取消报名 // @Description 取消报名 // @Security ApiKeyAuth // @Param Authorization header string true "Bearer 31a165baebe6dec616b1f8f3207b4273" // @Accept json // @Product json // @Param activity_id query int true "活动ID" // @Success 200 "" // @Router /activity/cancelRegister [post] func CancelRegister(c *gin.Context) { reqActivityId := c.DefaultPostForm("activity_id", "0") if reqActivityId == "0" { response.Fail("参数异常", c) return } activityId, _ := strconv.Atoi(reqActivityId) userInfo := user.GetInfoByClaims(c) err := activity.CancelRegister(activityId, userInfo) if err != nil { response.Fail(err.Error(), c) return } response.OkData("操作成功", "", c) } // GetActivityDetail 获取活动详情 // @Tags 活动模块 // @Summary 获取活动详情 // @Description 获取活动详情 // @Security ApiKeyAuth // @Param Authorization header string true "Bearer 31a165baebe6dec616b1f8f3207b4273" // @Accept json // @Product json // @Param activity_id query int true "活动ID" // @Success 200 "" // @Router /activity/getActivityDetail [get] func GetActivityDetail(c *gin.Context) { reqActivityId := c.DefaultQuery("activity_id", "0") if reqActivityId == "0" { response.Fail("参数异常", c) return } activityId, _ := strconv.Atoi(reqActivityId) userInfo := user.GetInfoByClaims(c) data, err := activity.GetActivityDetail(activityId, int(userInfo.UserID)) if err != nil { response.Fail("未找到记录", c) return } response.OkData("获取成功", data, c) } // GetActivityVoices 获取活动录音 // @Tags 活动模块 // @Summary 获取活动录音 // @Description 获取活动录音 // @Security ApiKeyAuth // @Param Authorization header string true "Bearer 31a165baebe6dec616b1f8f3207b4273" // @Accept json // @Product json // @Param activity_id query int true "活动ID" // @Success 200 "" // @Router /activity/getActivityVoices [get] func GetActivityVoices(c *gin.Context) { reqActivityId := c.DefaultQuery("activity_id", "0") if reqActivityId == "0" { response.Fail("参数异常", c) return } activityId, _ := strconv.Atoi(reqActivityId) listData, err := activity.GetVoicesByActivity(activityId) if err != nil { response.Fail("录音获取失败", c) return } response.OkData("获取成功", listData, c) }