Comments (3)
目前是这样实现的,不知道有没有更优雅的方式
func (s *sUser) GetById(ctx context.Context, uid uint64) (*pbentity.User, error) {
var (
user *entity.User
userPB *pbentity.User
)
// 从数据库中获取用户信息
err := dao.User.Ctx(ctx).Where(do.User{
Id: uid,
}).Scan(&user)
if user == nil {
return nil, gerror.NewCodef(gcode.CodeInvalidParameter, g.I18n().T(ctx, "{#user-not-found}"))
}
// 转换 pb 对象
if err := gconv.Struct(user, &userPB); err != nil {
return nil, gerror.NewCodef(gcode.CodeInternalError, g.I18n().T(ctx, "{#system-busy}"))
}
// 处理 pb 时间
userPB.CreateAt = timestamppb.New(user.CreateAt.Time)
userPB.UpdateAt = timestamppb.New(user.UpdateAt.Time)
return userPB, err
}
from gf.
Bot detected the issue body's language is not English, translate it automatically. 👯👭🏻🧑🤝🧑👫🧑🏿🤝🧑🏻👩🏾🤝👨🏿👬🏿
This is currently possible, but I don’t know if there is a more elegant way.
func (s *sUser) GetById(ctx context.Context, uid uint64) (*pbentity.User, error) {
var (
user *entity.User
userPB *pbentity.User
)
// Get user information from the database
err := dao.User.Ctx(ctx).Where(do.User{
Id: uid,
}).Scan(&user)
if user == nil {
return nil, gerror.NewCodef(gcode.CodeInvalidParameter, g.I18n().T(ctx, "{#user-not-found}"))
}
// Convert pb object
if err := gconv.Struct(user, &userPB); err != nil {
return nil, gerror.NewCodef(gcode.CodeInternalError, g.I18n().T(ctx, "{#system-busy}"))
}
// Process pb time
userPB.CreateAt = timestamppb.New(user.CreateAt.Time)
userPB.UpdateAt = timestamppb.New(user.UpdateAt.Time)
return userPB, err
}
from gf.
@zcyc 可以试试给字段实现一个json.Unmarshaler接口
from gf.
Related Issues (20)
- The fields in the structure will not be set to default values when requesting HOT 2
- If the request structure is a slice type structure, it is not bound to a value that meets the requirements. HOT 2
- gf gen ctrl bug
- database/gdb: I noticed there was a sharding feature before. Why was it removed HOT 1
- net/ghttp: openapi doc misses request parameter constraints when `CommonRequest` is set.
- Bug caused by combining ORM's List method and garry HOT 4
- database/gdb: Do you want to change the default Charset? HOT 3
- gf pack arg -p / not affect HOT 2
- database/gdb: create/update/delele time should not be overridden if it has been specified
- gf gen service -f CamelLower
- gdb: issue The SQL is wrong when using "WhereNotIn", if an empty parameter is passed HOT 1
- os/glog/glog_logger_rotate.go
- gf/init HOT 1
- gdb: Customizing the cache in the hook, the value obtained by the Count method is incorrect
- gdb: Is there any problem if the migrate function is not added? Or is it because its industry-level projects do not change the table from the code level, so it is not done? HOT 4
- frame/g/Dump: It is recommended to enhance the log friendliness of g.Dump. HOT 1
- os/gsession: the directory permission of session store is too open in linux
- \contrib\drivers\pgsql\v2: pgsql will report an error when inserting the data if it is an array. HOT 3
- errors/gerror: The judgment result of gerror's Is() method is a bit counter-intuitive HOT 4
- util/gvalid: When customizing validation rules, passing an empty array will become a string HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gf.