修正分页
This commit is contained in:
		
							
								
								
									
										16
									
								
								bin/main.go
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								bin/main.go
									
									
									
									
									
								
							@@ -281,11 +281,20 @@ func main() {
 | 
				
			|||||||
				id, err := strconv.Atoi(hit.(map[string]interface{})["_id"].(string))
 | 
									id, err := strconv.Atoi(hit.(map[string]interface{})["_id"].(string))
 | 
				
			||||||
				if err != nil {
 | 
									if err != nil {
 | 
				
			||||||
					log.Println("strconv.Atoi failed:", err)
 | 
										log.Println("strconv.Atoi failed:", err)
 | 
				
			||||||
 | 
										http.Error(w, err.Error(), http.StatusBadRequest)
 | 
				
			||||||
					return
 | 
										return
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				text_ids = append(text_ids, id)
 | 
									text_ids = append(text_ids, id)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
								if len(text_ids) > 0 {
 | 
				
			||||||
				conditions.WriteString(fmt.Sprintf(" WHERE id IN (%s)", strings.Trim(strings.Replace(fmt.Sprint(text_ids), " ", ",", -1), "[]")))
 | 
									conditions.WriteString(fmt.Sprintf(" WHERE id IN (%s)", strings.Trim(strings.Replace(fmt.Sprint(text_ids), " ", ",", -1), "[]")))
 | 
				
			||||||
 | 
									fmt.Println("conditions", conditions.String())
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								if conditions.Len() > 1024 {
 | 
				
			||||||
 | 
									log.Println("查询条件过长")
 | 
				
			||||||
 | 
									http.Error(w, err.Error(), http.StatusBadRequest)
 | 
				
			||||||
 | 
									return
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			addCondition(&conditions, "authors", "author")
 | 
								addCondition(&conditions, "authors", "author")
 | 
				
			||||||
			addCondition(&conditions, "tags", "tag")
 | 
								addCondition(&conditions, "tags", "tag")
 | 
				
			||||||
@@ -293,6 +302,8 @@ func main() {
 | 
				
			|||||||
			addCondition(&conditions, "sets", "sets")
 | 
								addCondition(&conditions, "sets", "sets")
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							fmt.Println("conditions", conditions.String())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// 获取图片列表
 | 
							// 获取图片列表
 | 
				
			||||||
		var images ListView
 | 
							var images ListView
 | 
				
			||||||
		var image_list []Image
 | 
							var image_list []Image
 | 
				
			||||||
@@ -329,7 +340,10 @@ func main() {
 | 
				
			|||||||
				conditions.WriteString(fmt.Sprintf(" id IN (%s)", strings.Join(idsStr, ","))) // 拼接查询条件
 | 
									conditions.WriteString(fmt.Sprintf(" id IN (%s)", strings.Join(idsStr, ","))) // 拼接查询条件
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		rows, err := mysqlConnection.Database.Query(fmt.Sprintf("SELECT id, width, height, content, update_time, create_time, user_id, article_id, article_category_top_id, praise_count, collect_count FROM web_images %s", conditions.String()))
 | 
							conditions.WriteString(fmt.Sprintf(" LIMIT %d, %d", (images.Page-1)*images.PageSize, images.PageSize)) // 拼接分页条件
 | 
				
			||||||
 | 
							sql := fmt.Sprintf("SELECT id, width, height, content, update_time, create_time, user_id, article_id, article_category_top_id, praise_count, collect_count FROM web_images %s", conditions.String())
 | 
				
			||||||
 | 
							fmt.Println("sql:", sql)
 | 
				
			||||||
 | 
							rows, err := mysqlConnection.Database.Query(sql)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			log.Println("获取图片列表失败", err)
 | 
								log.Println("获取图片列表失败", err)
 | 
				
			||||||
			http.Error(w, err.Error(), http.StatusBadRequest)
 | 
								http.Error(w, err.Error(), http.StatusBadRequest)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -92,6 +92,7 @@ type User struct {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// 获取一组用户信息
 | 
					// 获取一组用户信息
 | 
				
			||||||
func QueryUserList(id_list []int) (users []User) {
 | 
					func QueryUserList(id_list []int) (users []User) {
 | 
				
			||||||
 | 
						fmt.Println("QueryUserList:", id_list)
 | 
				
			||||||
	count := len(id_list)
 | 
						count := len(id_list)
 | 
				
			||||||
	if count == 0 {
 | 
						if count == 0 {
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
@@ -106,6 +107,8 @@ func QueryUserList(id_list []int) (users []User) {
 | 
				
			|||||||
	for rows.Next() {
 | 
						for rows.Next() {
 | 
				
			||||||
		var user User
 | 
							var user User
 | 
				
			||||||
		rows.Scan(&user.Id, &user.UserName, &user.Avatar, &user.UpdateTime, &user.CreateTime)
 | 
							rows.Scan(&user.Id, &user.UserName, &user.Avatar, &user.UpdateTime, &user.CreateTime)
 | 
				
			||||||
 | 
							user.UpdateTime = user.UpdateTime.UTC()
 | 
				
			||||||
 | 
							user.CreateTime = user.CreateTime.UTC()
 | 
				
			||||||
		users = append(users, user)
 | 
							users = append(users, user)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return
 | 
						return
 | 
				
			||||||
@@ -121,12 +124,13 @@ type Article struct {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// 获取一组文章信息
 | 
					// 获取一组文章信息
 | 
				
			||||||
func QueryArticleList(id_list []int) (articles []Article) {
 | 
					func QueryArticleList(id_list []int) (articles []Article) {
 | 
				
			||||||
 | 
						fmt.Println("QueryArticleList:", id_list)
 | 
				
			||||||
	count := len(id_list)
 | 
						count := len(id_list)
 | 
				
			||||||
	if count == 0 {
 | 
						if count == 0 {
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	idstr := strings.Trim(strings.Replace(fmt.Sprint(id_list), " ", ",", -1), "[]")
 | 
						idstr := strings.Trim(strings.Replace(fmt.Sprint(id_list), " ", ",", -1), "[]")
 | 
				
			||||||
	rows, err := connection.Query("SELECT id, title, tags, update_time, create_time FROM web_article WHERE id IN (" + idstr + ")")
 | 
						rows, err := connection.Query("SELECT id, title, tags, update_time, create_time FROM web_article WHERE id IN (" + idstr + ") LIMIT " + strconv.Itoa(count))
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		log.Println("获取文章列表失败", err)
 | 
							log.Println("获取文章列表失败", err)
 | 
				
			||||||
		return
 | 
							return
 | 
				
			||||||
@@ -135,6 +139,8 @@ func QueryArticleList(id_list []int) (articles []Article) {
 | 
				
			|||||||
	for rows.Next() {
 | 
						for rows.Next() {
 | 
				
			||||||
		var article Article
 | 
							var article Article
 | 
				
			||||||
		rows.Scan(&article.Id, &article.Title, &article.Tags, &article.UpdateTime, &article.CreateTime)
 | 
							rows.Scan(&article.Id, &article.Title, &article.Tags, &article.UpdateTime, &article.CreateTime)
 | 
				
			||||||
 | 
							article.UpdateTime = article.UpdateTime.UTC()
 | 
				
			||||||
 | 
							article.CreateTime = article.CreateTime.UTC()
 | 
				
			||||||
		articles = append(articles, article)
 | 
							articles = append(articles, article)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return
 | 
						return
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user