diff --git a/internal/handler/user.go b/internal/handler/user.go index 2e6f8cb..aa43ba6 100644 --- a/internal/handler/user.go +++ b/internal/handler/user.go @@ -161,9 +161,21 @@ func ManageUserList(c *nf.Ctx) error { return resp.Resp400(c, nf.Map{"msg": "size over max", "max": opt.MaxSize}) } - if err = op.Role.Where(db.New(tool.Timeout(10)). + txList := op.Role.Where(db.New(tool.Timeout(10)). Model(&model.User{}). - Where("deleted_at = 0")). + Where("deleted_at = 0")) + txCount := op.Role.Where(db.New(tool.Timeout(5)). + Model(&model.User{}). + Select("COUNT(id)"). + Where("deleted_at = 0")) + + if req.Keyword != "" { + keyword := fmt.Sprintf("%%%s%%", req.Keyword) + txList = txList.Where("username LIKE ?", keyword) + txCount = txCount.Where("username LIKE ?", keyword) + } + + if err = txList. Order("updated_at DESC"). Offset(req.Page * req.Size). Limit(req.Size). @@ -172,10 +184,7 @@ func ManageUserList(c *nf.Ctx) error { return resp.Resp500(c, err.Error()) } - if err = op.Role.Where(db.New(tool.Timeout(5)). - Model(&model.User{}). - Select("COUNT(id)"). - Where("deleted_at = 0")). + if err = txCount. Find(&total). Error; err != nil { return resp.Resp500(c, err.Error())