package logic import ( "context" "lone-services/pkg/utils" "lone-services/rpc/factory/pb" "lone-services/services/factory/internal/dao" "lone-services/services/factory/internal/model" "lone-services/services/factory/internal/svc" "lone-services/services/factory/validator" "github.com/zeromicro/go-zero/core/logx" ) type GroupCreateLogic struct { ctx context.Context svcCtx *svc.ServiceContext logx.Logger BaseLogic } func NewGroupCreateLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GroupCreateLogic { return &GroupCreateLogic{ ctx: ctx, svcCtx: svcCtx, Logger: logx.WithContext(ctx), } } func (l *GroupCreateLogic) GroupCreate(in *factory.GroupCreateRequest) (*factory.Response, error) { var v validator.GroupCreateValidator if fail := l.checkParams(in, &v); fail != nil { return fail, nil } adminInfo := utils.GetUserFromCtx(l.ctx) if adminInfo.ID < utils.NumberOne { return l.fail(utils.ErrorNoLoginInfo) } var info dao.GroupCreate pwd, err := utils.EncryptPassword(in.Password) if err != nil { l.Logger.Error(err) return l.fail(utils.ErrorEncryptAesError) } info.AdminId = adminInfo.ID info.AdminName = adminInfo.Name info.Name = in.Name info.Account = in.Account info.Password = pwd err = model.GroupModel{}.Init().Create(&info) if err != nil { l.Logger.Error(err) return l.fail(utils.Fail) } action := utils.ActionAdd{ NewContent: info, Type: utils.LogActionTypeAdd, ModuleName: utils.LogActionModuleFactoryGroup, } utils.SetActionLog(adminInfo, action) return l.ok(info.Id) }