diff --git a/dao/checkin.go b/dao/checkin.go index a1d4e9b..aeccde9 100644 --- a/dao/checkin.go +++ b/dao/checkin.go @@ -83,9 +83,14 @@ func getUserActivityExtendedSQL(where string) string { "a.name activity_name from user_activity ua left join activities a on a.id=ua.activity_id " + where + " order by created_at desc" } -func (c CheckinDAO) FindAllUserActivities() []dto.UserActivityExtended { +func (c CheckinDAO) FindAllUserActivities(status int) []dto.UserActivityExtended { var arr []dto.UserActivityExtended - err := c.Tx.Raw(getUserActivityExtendedSQL("")).Find(&arr).Error + var err error + if status != 0 { + err = c.Tx.Raw(getUserActivityExtendedSQL("where status=?"), status).Find(&arr).Error + } else { + err = c.Tx.Raw(getUserActivityExtendedSQL("")).Find(&arr).Error + } if err != nil { panic(err) } diff --git a/service/checkin.go b/service/checkin.go index 832fbb1..4f3898a 100644 --- a/service/checkin.go +++ b/service/checkin.go @@ -65,7 +65,14 @@ func (c CheckinService) ListActivities(aw *app.Wrapper) app.Result { return aw.Success(checkinDAO.FindAllActivities()) } func (c CheckinService) ListUserActivities(aw *app.Wrapper) app.Result { - return aw.Success(checkinDAO.FindAllUserActivities()) + type StatusReq struct { + Status int `form:"status"` + } + var req StatusReq + if err := aw.Ctx.ShouldBind(&req); err != nil { + return aw.Error(err.Error()) + } + return aw.Success(checkinDAO.FindAllUserActivities(req.Status)) } func (c CheckinService) GetUserActivity(aw *app.Wrapper) app.Result { id, err := strconv.Atoi(aw.Ctx.Query("id"))