12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package yb_activity
- import (
- "errors"
- "hongze/hongze_yb/global"
- "hongze/hongze_yb/utils"
- "time"
- )
- type QueryActivity struct {
- ActivityID int `json:"activityId"`
- ActivityName string `json:"activityName"`
- ActivityTypeName string `json:"activityTypeName"`
- StartTime time.Time `json:"startTime"`
- EndTime time.Time `json:"endTime"`
- Speaker string `json:"speaker"`
- HasRemind int `json:"hasRemind"`
- HasPlayBack int `json:"hasPlayBack"`
- Registered int `json:"registered"`
- }
- func GetPageListByWhereMap(where map[string]interface{}, page, limit, userId int) (activities []*QueryActivity, err error) {
- condition, values, buildErr := utils.WhereBuild(where)
- if buildErr != nil {
- err = errors.New("系统异常,生成查询语句失败")
- return
- }
- fields := []string{
- "a.activity_id", "a.activity_name", "a.activity_type_name", "a.start_time", "a.end_time", "a.speaker",
- "b.activity_voice_id AS has_play_back", "c.id AS has_remind", "d.id AS registered",
- }
- err = global.DEFAULT_MYSQL.Table("yb_activity AS a").
- Select(fields).
- Joins("LEFT JOIN yb_activity_voice AS b ON a.activity_id = b.activity_id").
- Joins("LEFT JOIN yb_activity_remind AS c ON a.activity_id = c.activity_id AND c.user_id = ?", userId).
- Joins("LEFT JOIN yb_activity_register AS d ON a.activity_id = d.activity_id AND d.user_id = ?", userId).
- Where(condition, values...).
- Order("a.start_time asc").
- Group("a.activity_id").
- Limit(limit).Offset((page - 1) * limit).
- Scan(&activities).Error
- return
- }
|