GO语言工程实践课后作业:实现思路、代码以及路径记录|青训营

60 阅读1分钟

任务分配

根据小组讨论结果,最后我们选择用gin-gorm框架来做项目,而我分配的功能是个人信息界面展示 整个的修改接口是router-controller-service-dao三层接口逐层修改,dao层写的是和数据库连接的gorm数据库选择语言,service层去调用dao层的数据,并且返回json能够渲染的格式,controller层负责实现token接口拿到解析出的id,然后调用service层的接口。

首先我的router层实现是这样的:

package routers

import (
    "douyin/controller"
)

func (router RouterGroup) UserRouter() {
    app := controller.ControllerGroupApp.UserController
    router.POST("/user/show", app.User)

}

如果要访问,路径提前设置好,这里接的表是model层的response里面的用户表

其次我的service层是这样的:

package controller

import (
    "douyin/common/global"
    "douyin/models"
    "github.com/gin-gonic/gin"
    "go.uber.org/zap"
    "net/http"
)

type UserController struct{}

func (UserController) User(c *gin.Context) {
    //获取用户所有个人信息
    var user models.UserModel
    if err := c.ShouldBindQuery(&user); err != nil { //这个函数就是看看解析得对不对
       global.Log.Error("UserController.User 请求参数错误", zap.Error(err))
    }
    //下面我们要返回所需要的信息了,然后给json渲染出来
    println("aaaaaaaaaaaaaaaaa")
    userid := user.MODEL.ID
    //_claim, exist := c.Get("claim")
    //claim, _ := _claim.(*jwt.UserClaim)
    //if !exist {
    //global.Log.Error("UserController.User claim 参数错误")
    // }
    var claim int64
    res, err := UserAll.SelectAll(userid, claim)

    if err != nil {
       global.Log.Info("用户信息显示失败", zap.Error(err))
    }
    c.JSON(http.StatusOK, res)
}

我会在我的这一层里面,选取返回需要的信息,然后json渲染出来,传递给浏览器。