(13)go-micro微服务公用函数开发

时间:2023-01-17 10:11:53

  • 在utils目录中新建一个swap.go文件

  • swap.go中主要存放一些可以使用到的一些公共函数

  • 导包:

import (
   "account/domain/model"
   . "account/proto/account"
   "encoding/json"
   "google.golang.org/protobuf/types/known/timestamppb"
)

二 SwapTo 通过json tag 进行结构体赋值

  • 此函数主要用于将客户端传来的数据解析到结构体中
  • 还用于将数据解析传给客户端
// SwapTo 通过json tag 进行结构体赋值
func SwapTo(request, category interface{}) (err error) {
   dataByte, err := json.Marshal(request)
   if err != nil {
      return
   }
   return json.Unmarshal(dataByte, category)
}

三 UserForResponse 类型转化

  • 此函数用于将数据库查出的数据赋值给Response传给客户端
// UserForResponse 类型转化
func UserForResponse(response *UserInfoResponse, userModel *model.User) *UserInfoResponse {
   response.UserId = userModel.ID
   response.Username = userModel.UserName
   response.FirstName = userModel.FirstName
   response.LastName = userModel.LastName
   response.Email = userModel.Email
   response.IsActive = userModel.IsActive
   response.Permission = userModel.Permission
   response.CreateDate = timestamppb.New(userModel.CreateDate)
   response.UpdateDate = timestamppb.New(userModel.UpdateDate)
   return response
}

四 最后

  • 至此,go-micro微服务公用函数开发工作就正式完成。

  • 接下来就开始服务层Handle层的代码编写了,希望大家关注博主和关注专栏,第一时间获取最新内容,每篇博客都干货满满。

欢迎大家加入 夏沫の梦的学习交流群 进行学习交流经验,点击 (13)go-micro微服务公用函数开发