update
This commit is contained in:
@@ -41,7 +41,7 @@ func (s *Seed) Run() error {
|
||||
}
|
||||
|
||||
// 部门
|
||||
err := s.departmentRepository.Initialize(ctx)
|
||||
depart, err := s.departmentRepository.Initialize(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -53,7 +53,7 @@ func (s *Seed) Run() error {
|
||||
}
|
||||
|
||||
// 用户
|
||||
if err := s.userRepository.Initialize(ctx, 0, role.ID); err != nil {
|
||||
if err := s.userRepository.Initialize(ctx, depart.ID, role.ID); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
@@ -3,13 +3,14 @@ package config
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"database/sql"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"management/internal/erpserver/model/dto"
|
||||
"management/internal/erpserver/model/system"
|
||||
"management/internal/erpserver/repository"
|
||||
"management/internal/pkg/database"
|
||||
"management/internal/pkg/know/pearadmin"
|
||||
"management/internal/pkg/sqldb"
|
||||
|
||||
@@ -32,7 +33,7 @@ func NewStore(db *repository.Store, log *logger.Logger) system.ConfigRepository
|
||||
func (s *store) Initialize(ctx context.Context) error {
|
||||
_, err := s.GetByKey(ctx, pearadmin.PearKey)
|
||||
if err != nil {
|
||||
if database.IsNoRows(err) {
|
||||
if errors.Is(err, sql.ErrNoRows) {
|
||||
b, e := json.Marshal(pearadmin.PearJson)
|
||||
if e != nil {
|
||||
return e
|
||||
|
||||
@@ -26,14 +26,14 @@ func NewStore(db *repository.Store, log *logger.Logger) system.DepartmentReposit
|
||||
}
|
||||
}
|
||||
|
||||
func (s *store) Initialize(ctx context.Context) error {
|
||||
func (s *store) Initialize(ctx context.Context) (*system.Department, error) {
|
||||
count, err := s.Count(ctx, dto.SearchDto{})
|
||||
if err != nil {
|
||||
return err
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if count == 0 {
|
||||
obj := system.Department{
|
||||
obj := &system.Department{
|
||||
Name: "公司",
|
||||
ParentID: 0,
|
||||
ParentPath: ",0,",
|
||||
@@ -42,21 +42,33 @@ func (s *store) Initialize(ctx context.Context) error {
|
||||
CreatedAt: time.Now(),
|
||||
UpdatedAt: time.Now(),
|
||||
}
|
||||
return s.Create(ctx, &obj)
|
||||
return s.Create(ctx, obj)
|
||||
}
|
||||
return nil
|
||||
return s.Get(ctx, 1)
|
||||
}
|
||||
|
||||
func (s *store) Create(ctx context.Context, obj *system.Department) error {
|
||||
func (s *store) Create(ctx context.Context, obj *system.Department) (*system.Department, error) {
|
||||
//goland:noinspection ALL
|
||||
const q = `
|
||||
INSERT INTO sys_department (
|
||||
name, parent_id, parent_path, status, sort
|
||||
) VALUES (
|
||||
:name, :parent_id, :parent_path, :status, :sort
|
||||
);`
|
||||
) RETURNING *;`
|
||||
|
||||
return sqldb.NamedExecContext(ctx, s.log, s.db.DB(ctx), q, obj)
|
||||
data := map[string]any{
|
||||
"name": obj.Name,
|
||||
"parent_id": obj.ParentID,
|
||||
"parent_path": obj.ParentPath,
|
||||
"status": obj.Status,
|
||||
"sort": obj.Sort,
|
||||
}
|
||||
|
||||
err := sqldb.NamedQueryStruct(ctx, s.log, s.db.DB(ctx), q, data, &obj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return obj, err
|
||||
}
|
||||
|
||||
func (s *store) Update(ctx context.Context, obj *system.Department) error {
|
||||
|
||||
@@ -30,9 +30,24 @@ func (s *store) Create(ctx context.Context, obj *system.Menu) (*system.Menu, err
|
||||
name, display_name, url, type, parent_id, parent_path, avatar, style, visible, is_list, status, sort
|
||||
) VALUES (
|
||||
:name, :display_name, :url, :type, :parent_id, :parent_path, :avatar, :style, :visible, :is_list, :status, :sort
|
||||
);`
|
||||
) RETURNING *;`
|
||||
|
||||
err := sqldb.NamedExecContext(ctx, s.log, s.db.DB(ctx), q, obj)
|
||||
data := map[string]any{
|
||||
"name": obj.Name,
|
||||
"display_name": obj.DisplayName,
|
||||
"url": obj.Url,
|
||||
"type": obj.Type,
|
||||
"parent_id": obj.ParentID,
|
||||
"parent_path": obj.ParentPath,
|
||||
"avatar": obj.Avatar,
|
||||
"style": obj.Style,
|
||||
"visible": obj.Visible,
|
||||
"is_list": obj.IsList,
|
||||
"status": obj.Status,
|
||||
"sort": obj.Sort,
|
||||
}
|
||||
|
||||
err := sqldb.NamedQueryStruct(ctx, s.log, s.db.DB(ctx), q, data, &obj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -32,7 +32,8 @@ func (s *store) Initialize(ctx context.Context) (*system.Role, error) {
|
||||
return nil, err
|
||||
}
|
||||
if count == 0 {
|
||||
obj := system.Role{
|
||||
var err error
|
||||
obj := &system.Role{
|
||||
Name: "Company",
|
||||
DisplayName: "公司",
|
||||
Vip: false,
|
||||
@@ -42,11 +43,12 @@ func (s *store) Initialize(ctx context.Context) (*system.Role, error) {
|
||||
CreatedAt: time.Now(),
|
||||
UpdatedAt: time.Now(),
|
||||
}
|
||||
if err := s.Create(ctx, &obj); err != nil {
|
||||
obj, err = s.Create(ctx, obj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
obj1 := system.Role{
|
||||
obj1 := &system.Role{
|
||||
Name: "SuperAdmin",
|
||||
DisplayName: "超级管理员",
|
||||
Vip: true,
|
||||
@@ -56,26 +58,42 @@ func (s *store) Initialize(ctx context.Context) (*system.Role, error) {
|
||||
CreatedAt: time.Now(),
|
||||
UpdatedAt: time.Now(),
|
||||
}
|
||||
if err := s.Create(ctx, &obj1); err != nil {
|
||||
obj1, err = s.Create(ctx, obj1)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &obj1, nil
|
||||
return obj1, nil
|
||||
}
|
||||
|
||||
return s.GetByVip(ctx, true)
|
||||
|
||||
}
|
||||
|
||||
func (s *store) Create(ctx context.Context, obj *system.Role) error {
|
||||
func (s *store) Create(ctx context.Context, obj *system.Role) (*system.Role, error) {
|
||||
//goland:noinspection ALL
|
||||
const q = `
|
||||
INSERT INTO sys_role (
|
||||
name, display_name, parent_id, parent_path, vip, status, sort
|
||||
) VALUES (
|
||||
:name, :display_name, :parent_id, :parent_path, :vip, :status, :sort
|
||||
)`
|
||||
) RETURNING *`
|
||||
|
||||
return sqldb.NamedExecContext(ctx, s.log, s.db.DB(ctx), q, obj)
|
||||
data := map[string]any{
|
||||
"name": obj.Name,
|
||||
"display_name": obj.DisplayName,
|
||||
"parent_id": obj.ParentID,
|
||||
"parent_path": obj.ParentPath,
|
||||
"vip": obj.Vip,
|
||||
"status": obj.Status,
|
||||
"sort": obj.Sort,
|
||||
}
|
||||
|
||||
err := sqldb.NamedQueryStruct(ctx, s.log, s.db.DB(ctx), q, data, &obj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return obj, nil
|
||||
}
|
||||
|
||||
func (s *store) Update(ctx context.Context, obj *system.Role) error {
|
||||
|
||||
@@ -67,25 +67,44 @@ func (s *store) Initialize(ctx context.Context, departId, roleId int32) error {
|
||||
CreatedAt: time.Now(),
|
||||
UpdatedAt: time.Now(),
|
||||
}
|
||||
return s.Create(ctx, &user)
|
||||
_, err = s.Create(ctx, &user)
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *store) Create(ctx context.Context, obj *system.User) error {
|
||||
func (s *store) Create(ctx context.Context, obj *system.User) (*system.User, error) {
|
||||
//goland:noinspection ALL
|
||||
const q = `
|
||||
INSERT INTO sys_user (
|
||||
uuid, email, username, hashed_password, salt, avatar, gender, department_id, role_id, status
|
||||
) VALUES (
|
||||
:uuid, :email, :username, :hashed_password, :salt, :avatar, :gender, :department_id, :role_id, :status
|
||||
);`
|
||||
) RETURNING *;`
|
||||
|
||||
return sqldb.NamedExecContext(ctx, s.log, s.db.DB(ctx), q, obj)
|
||||
data := map[string]any{
|
||||
"uuid": obj.Uuid.String(),
|
||||
"email": obj.Email,
|
||||
"username": obj.Username,
|
||||
"hashed_password": obj.HashedPassword,
|
||||
"salt": obj.Salt,
|
||||
"avatar": obj.Avatar,
|
||||
"gender": obj.Gender,
|
||||
"department_id": obj.DepartmentID,
|
||||
"role_id": obj.RoleID,
|
||||
"status": obj.Status,
|
||||
}
|
||||
|
||||
err := sqldb.NamedQueryStruct(ctx, s.log, s.db.DB(ctx), q, data, &obj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return obj, nil
|
||||
}
|
||||
|
||||
func (s *store) Update(ctx context.Context, obj *system.User) error {
|
||||
func (s *store) Update(ctx context.Context, obj *system.User) (*system.User, error) {
|
||||
//goland:noinspection ALL
|
||||
const q = `
|
||||
UPDATE sys_user
|
||||
@@ -99,9 +118,28 @@ func (s *store) Update(ctx context.Context, obj *system.User) error {
|
||||
status = :status,
|
||||
change_password_at = :change_password_at,
|
||||
updated_at = :updated_at
|
||||
WHERE id = :id;`
|
||||
WHERE id = :id RETURNING *;`
|
||||
|
||||
return sqldb.NamedExecContext(ctx, s.log, s.db.DB(ctx), q, obj)
|
||||
data := map[string]any{
|
||||
"email": obj.Email,
|
||||
"username": obj.Username,
|
||||
"hashed_password": obj.HashedPassword,
|
||||
"avatar": obj.Avatar,
|
||||
"gender": obj.Gender,
|
||||
"department_id": obj.DepartmentID,
|
||||
"role_id": obj.RoleID,
|
||||
"status": obj.Status,
|
||||
"change_password_at": obj.ChangePasswordAt,
|
||||
"updated_at": obj.UpdatedAt,
|
||||
"id": obj.ID,
|
||||
}
|
||||
|
||||
err := sqldb.NamedQueryStruct(ctx, s.log, s.db.DB(ctx), q, data, &obj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return obj, nil
|
||||
}
|
||||
|
||||
func (s *store) Get(ctx context.Context, id int32) (*system.User, error) {
|
||||
|
||||
Reference in New Issue
Block a user