Go-web开发之社区功能
社区功能
查询社区列表
community.go
func (Community) TableName() string
用于指定数据库表名
type Community struct {ID int64 `json:"id" gorm:"primary_key;auto_increment"`CommunityID string `json:"community_id" gorm:"unique;not null"` // 社区IDCommunityName string `json:"community_name" gorm:"not null"` // 社区名称Introduction string `json:"introduction"` // 社区简介CreateTime time.Time `json:"create_time"` // 创建时间UpdateTime time.Time `json:"update_time"` // 更新时间
}func (Community) TableName() string {return "community"
}
route.go
r.Use(middleware.JWTAuthMiddleware()){r.GET("/community", controller.CommunityHandler)r.GET("/community/:id", controller.CommunityDetailHandler)}
comunityController.go
func CommunityHandler(c *gin.Context) {communityList, err := logic.GetCommunityList()if err != nil {c.JSON(http.StatusOK, gin.H{"msg": "获取社区列表失败" + err.Error(),})return}c.JSON(http.StatusOK, gin.H{"msg": "获取社区列表成功","data": communityList,})}
func CommunityDetailHandler(c *gin.Context) {// 1. 获取参数idStr := c.Param("id")id, err2 := strconv.ParseInt(idStr, 10, 64)if err2 != nil {return}// 2. 业务逻辑community, err := logic.GetCommunityDetail(id)if err != nil {c.JSON(http.StatusOK, gin.H{"msg": "获取社区详情失败" + err.Error(),})return}// 3. 返回数据c.JSON(http.StatusOK, gin.H{"msg": "获取社区详情成功","data": community,})
}
communityLogic.go
func GetCommunityList() ([]models.Community, error) {// 1. 查询数据库 2. 返回数据return mysql.QueryCommunity()
}func GetCommunityDetail(id int64) (*models.Community, error) {// 1. 查询数据库return mysql.QueryCommunityById(id)
}
communityDao.go
func QueryCommunity() ([]models.Community, error) {// 1. 查询数据库var communityList []models.Communityerr := db.Select("community_id, community_name").Order("community_id desc").Find(&communityList).Errorreturn communityList, err
}func QueryCommunityById(id int64) (*models.Community, error) {var community models.Communityerr := db.Select("community_id, community_name, introduction").Where("community_id = ?", id).First(&community).Errorif err != nil {return nil, err}return &community, nil
}