查询文章
当我们上传了文章之后,肯定希望能够查询我们上传的文章了,查询文章根据用户输入的内容,后台进行文章的标题和关键字进行匹配。然后返回查询到的数据。后台限制最多返回 20 条记录,这是为了服务器性能综合考虑的。如果用户查找的内容,不在返回的记录中,请输入更多内容,进行更精确的匹配。
func init() {
rootCmd.AddCommand(qCmd)
}
var qCmd = &cobra.Command{
Use: "search",
Short: "查找文章,最多返回20条记录。",
Long: `查找文章, 根据文章的标题和关键字匹配查询,最多返回20条记录。可以输入更多的内容进行精确查找。`,
Args: cobra.MinimumNArgs(1),
Run: func(cmd *cobra.Command, args []string) {
content := args[0]
list, err := service.SearchArt(token, content)
if err != nil {
fmt.Println("查询发生错误,", err)
} else {
n := len(list)
if n > 0 {
var (
cts string
uts string
ispub string = "否"
islock string = "否"
)
t := table.NewWriter()
t.SetOutputMirror(os.Stdout)
t.AppendHeader(table.Row{"UUID", "题目", "关键字", "是否公开", "是否加锁", "创建时间", "修改时间"})
for _, v := range list {
cts = utils.TS2Str(v.Createtime)
uts = utils.TS2Str(v.Updatetime)
if v.IsPub == 1 {
ispub = "是"
}
if v.IsLock == 1 {
islock = "是"
}
t.AppendRows([]table.Row{
{v.Uuid, v.Title, v.Keyword, ispub, islock, cts, uts},
})
t.AppendSeparator()
}
t.Render()
} else {
fmt.Println("未找到记录,尝试更换内容试试。")
}
}
},
}
代码的组织架构和上传的差不多。都需要先定义命令,然后添加到 root 命令中。这里的输出结果使用美化的 table 显示。当查询到内容后,就可以使用结果中的 UUID 进行文章的管理维护了。