diff --git a/business/model/dao/event.go b/business/model/dao/event.go index c7c9ec6e1..f93af1595 100644 --- a/business/model/dao/event.go +++ b/business/model/dao/event.go @@ -142,9 +142,10 @@ func GetOperateEvents(db *DaoDB, name string, apiFunctions []string, operateType return operateEventExt, totalCount, err } -func GetImMessageRecord(db *DaoDB, groupID int, userID string, storeID, vendorID int) (msg []*model.ImMessageRecord, err error) { +func GetImMessageRecord(db *DaoDB, groupID int, userID string, storeID, vendorID, offset, pageSize int) (pagedInfo *model.PagedInfo, err error) { + var msg []*model.ImMessageRecord sql := ` - SELECT * + SELECT SQL_CALC_FOUND_ROWS * FROM im_message_record WHERE deleted_at = ? ` @@ -167,8 +168,19 @@ func GetImMessageRecord(db *DaoDB, groupID int, userID string, storeID, vendorID sql += " AND vendor_id = ?" sqlParams = append(sqlParams, vendorID) } - err = GetRows(db, &msg, sql, sqlParams) - return msg, err + sql += ` + LIMIT ? OFFSET ? + ` + sqlParams = append(sqlParams, pageSize, offset) + Begin(db) + defer Commit(db) + if err = GetRows(db, &msg, sql, sqlParams); err == nil { + pagedInfo = &model.PagedInfo{ + TotalCount: GetLastTotalRowCount(db), + Data: msg, + } + } + return pagedInfo, err } type GetMessageGroupsResult struct { diff --git a/controllers/event_controller.go b/controllers/event_controller.go index 14f6b776e..c481d953b 100644 --- a/controllers/event_controller.go +++ b/controllers/event_controller.go @@ -176,12 +176,14 @@ func handleMessages() { // @Description 查询聊天记录 // @Param token header string true "认证token" // @Param groupID query int true "组ID" +// @Param offset query int false "门店列表起始序号(以0开始,缺省为0)" +// @Param pageSize query int false "门店列表页大小(缺省为50,-1表示全部)" // @Success 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult // @router /GetImMessageRecord [get] func (c *EventController) GetImMessageRecord() { c.callGetImMessageRecord(func(params *tEventGetImMessageRecordParams) (retVal interface{}, errCode string, err error) { - retVal, err = dao.GetImMessageRecord(dao.GetDB(), params.GroupID, "", 0, -1) + retVal, err = dao.GetImMessageRecord(dao.GetDB(), params.GroupID, "", 0, -1, params.Offset, params.PageSize) return retVal, "", err }) }