关于sql语句

来源:12-2 元原生平台user repository开发

慕瓜9063200

2023-04-06

//检测当前用户是否具备权限
func (u *UserRepository) IsRight(action string,userID int64) bool {
	permission :=&model.Permission{}
	sql := "select p.id From user u,user_role ur,role r,role_permission rp,permission p WHERE p.permission_action=? AND p.id = rp.permission_id AND rp.role_id=r.id AND ur.role_id=r.id AND ur.user_id=u.id AND u.id=?"
	u.mysqlDb.Raw(sql,action,userID).Scan(permission)
	//可以写其它判断逻辑
	if permission.ID > 0{
		return true
	}
	return false
}```
这里为什么用原生sql语句,不用gorm了呢
写回答

1回答

Cap

2023-04-06

这里用的是多个表联合查询,且逻辑相对固定,使用sql比较快速.

0
0

Go 开发者的涨薪通道,自主开发 PaaS 平台核心功能

云原生专家带来稀缺的 PaaS 平台实战,带你直击核心业务+技术

400 学习 · 169 问题

查看课程