123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- package system
- import (
- "context"
- "github.com/gofrs/uuid/v5"
- "github.com/pkg/errors"
- "gorm.io/gorm"
- sysModel "server/model/system"
- "server/service/system"
- "server/utils"
- )
- const initOrderUser = initOrderAuthority + 1
- type initUser struct{}
- // auto run
- func init() {
- system.RegisterInit(initOrderUser, &initUser{})
- }
- func (i *initUser) MigrateTable(ctx context.Context) (context.Context, error) {
- db, ok := ctx.Value("db").(*gorm.DB)
- if !ok {
- return ctx, system.ErrMissingDBContext
- }
- return ctx, db.AutoMigrate(&sysModel.SysUser{})
- }
- func (i *initUser) TableCreated(ctx context.Context) bool {
- db, ok := ctx.Value("db").(*gorm.DB)
- if !ok {
- return false
- }
- return db.Migrator().HasTable(&sysModel.SysUser{})
- }
- func (i initUser) InitializerName() string {
- return sysModel.SysUser{}.TableName()
- }
- func (i *initUser) InitializeData(ctx context.Context) (next context.Context, err error) {
- db, ok := ctx.Value("db").(*gorm.DB)
- if !ok {
- return ctx, system.ErrMissingDBContext
- }
- password := utils.BcryptHash("6447985")
- adminPassword := utils.BcryptHash("123456")
- entities := []sysModel.SysUser{
- {
- UUID: uuid.Must(uuid.NewV4()),
- Username: "admin",
- Password: adminPassword,
- NickName: "Mr.奇淼",
- HeaderImg: "https://qmplusimg.henrongyi.top/gva_header.jpg",
- AuthorityId: 888,
- Phone: "17611111111",
- Email: "333333333@qq.com",
- },
- {
- UUID: uuid.Must(uuid.NewV4()),
- Username: "a303176530",
- Password: password,
- NickName: "用户1",
- HeaderImg: "https:///qmplusimg.henrongyi.top/1572075907logo.png",
- AuthorityId: 9528,
- Phone: "17611111111",
- Email: "333333333@qq.com"},
- }
- if err = db.Create(&entities).Error; err != nil {
- return ctx, errors.Wrap(err, sysModel.SysUser{}.TableName()+"表数据初始化失败!")
- }
- next = context.WithValue(ctx, i.InitializerName(), entities)
- authorityEntities, ok := ctx.Value(initAuthority{}.InitializerName()).([]sysModel.SysAuthority)
- if !ok {
- return next, errors.Wrap(system.ErrMissingDependentContext, "创建 [用户-权限] 关联失败, 未找到权限表初始化数据")
- }
- if err = db.Model(&entities[0]).Association("Authorities").Replace(authorityEntities); err != nil {
- return next, err
- }
- if err = db.Model(&entities[1]).Association("Authorities").Replace(authorityEntities[:1]); err != nil {
- return next, err
- }
- return next, err
- }
- func (i *initUser) DataInserted(ctx context.Context) bool {
- db, ok := ctx.Value("db").(*gorm.DB)
- if !ok {
- return false
- }
- var record sysModel.SysUser
- if errors.Is(db.Where("username = ?", "a303176530").
- Preload("Authorities").First(&record).Error, gorm.ErrRecordNotFound) { // 判断是否存在数据
- return false
- }
- return len(record.Authorities) > 0 && record.Authorities[0].AuthorityId == 888
- }
|