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"` // 社区ID
	CommunityName 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.Community
	err := db.Select("community_id, community_name").Order("community_id desc").Find(&communityList).Error
	return communityList, err
}

func QueryCommunityById(id int64) (*models.Community, error) {
	var community models.Community
	err := db.Select("community_id, community_name, introduction").Where("community_id = ?", id).First(&community).Error
	if err != nil {
		return nil, err
	}
	return &community, nil
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值