package repository import ( req "sghgogs.com/micro/shopping-service/domain/model/request" pb "sghgogs.com/micro/shopping-service/proto" "time" ) func (u *Repository) CreateUserGroup(group *pb.CreateUserGroupRequest) error { // 开始事务 tx := u.db.Begin() // 错误处理 defer func() { if r := recover(); r != nil { tx.Rollback() } }() if err := tx.Model(&req.UserGroup{}).Create(map[string]interface{}{ "name": group.Name, "description": group.Description, "code": group.Code, "created_at": time.Now(), "created_by": group.CreatedBy, }).Error; err != nil { tx.Rollback() return err } return tx.Commit().Error } func (u *Repository) GetUserGroup(query *pb.GetUserGroupRequest) (req.UserGroup, error) { var userGroup req.UserGroup return userGroup, u.db. Model(&req.UserGroup{}). Select("id, name, code"). Where("id = ? OR code = ?", query.GroupId, query.Code). First(&userGroup). Error }