Browse Source

阶段提交

yjp 1 year ago
parent
commit
9d109fa6b4

+ 27 - 0
convenient/domain/auth/auth.go

@@ -1 +1,28 @@
 package auth
+
+import (
+	"git.sxidc.com/go-framework/baize/convenient/domain/auth/permission"
+	"git.sxidc.com/go-framework/baize/convenient/domain/auth/permission_group"
+	"git.sxidc.com/go-framework/baize/convenient/domain/auth/relations"
+	"git.sxidc.com/go-framework/baize/convenient/domain/auth/role"
+	"git.sxidc.com/go-framework/baize/convenient/domain/auth/user"
+	"git.sxidc.com/go-framework/baize/framework/binding"
+)
+
+// Simple Bind参数
+type Simple struct {
+	// schema
+	Schema string
+}
+
+func (simple *Simple) bind(binder *binding.Binder) {
+	(&permission.Simple{Schema: simple.Schema}).Bind(binder)
+	(&permission_group.Simple{Schema: simple.Schema}).Bind(binder)
+	(&role.Simple{Schema: simple.Schema}).Bind(binder)
+	(&user.Simple{Schema: simple.Schema}).Bind(binder)
+	(&relations.Simple{Schema: simple.Schema}).Bind(binder)
+}
+
+func BindAuth(binder *binding.Binder, simple *Simple) {
+	simple.bind(binder)
+}

+ 12 - 0
convenient/domain/auth/middleware.go

@@ -1 +1,13 @@
 package auth
+
+import (
+	"git.sxidc.com/go-framework/baize/framework/core/api"
+	"git.sxidc.com/go-framework/baize/framework/core/infrastructure"
+)
+
+func Authentication(i *infrastructure.Infrastructure) api.Handler {
+	return func(c *api.Context) {
+		//dbExecutor := i.DBExecutor()
+		c.Next()
+	}
+}

+ 23 - 0
convenient/domain/auth/permission/api.go

@@ -1 +1,24 @@
 package permission
+
+import (
+	"git.sxidc.com/go-framework/baize/convenient/entity_crud"
+	"git.sxidc.com/go-framework/baize/framework/binding"
+)
+
+// Simple Bind参数
+type Simple struct {
+	// schema
+	Schema string
+}
+
+func (simple *Simple) Bind(binder *binding.Binder) {
+	entity_crud.BindSimple(binder, &entity_crud.Simple[Info]{
+		Entity:             &Entity{},
+		Schema:             simple.Schema,
+		CreateJsonBody:     &CreatePermissionJsonBody{},
+		DeleteQueryParams:  &DeletePermissionQueryParams{},
+		UpdateJsonBody:     &UpdatePermissionJsonBody{},
+		QueryQueryParams:   &GetPermissionsQueryParams{},
+		GetByIDQueryParams: &GetPermissionQueryParams{},
+	})
+}

+ 3 - 3
convenient/domain/auth/permission/request_params.go

@@ -17,10 +17,10 @@ type (
 
 	UpdatePermissionJsonBody struct {
 		request.IDJsonBody
-		Name        string `json:"name" binding:"required" assign:"toField:Name"`
+		Name        string `json:"name" assign:"toField:Name"`
 		Description string `json:"description" assign:"toField:Description"`
-		Resource    string `json:"resource" binding:"required" assign:"toField:Resource"`
-		Action      string `json:"action" binding:"required" assign:"toField:Action"`
+		Resource    string `json:"resource" assign:"toField:Resource"`
+		Action      string `json:"action" assign:"toField:Action"`
 		request.UpdateUserIDJsonBody
 	}
 

+ 23 - 0
convenient/domain/auth/permission_group/api.go

@@ -1 +1,24 @@
 package permission_group
+
+import (
+	"git.sxidc.com/go-framework/baize/convenient/entity_crud"
+	"git.sxidc.com/go-framework/baize/framework/binding"
+)
+
+// Simple Bind参数
+type Simple struct {
+	// schema
+	Schema string
+}
+
+func (simple *Simple) Bind(binder *binding.Binder) {
+	entity_crud.BindSimple(binder, &entity_crud.Simple[Info]{
+		Entity:             &Entity{},
+		Schema:             simple.Schema,
+		CreateJsonBody:     &CreatePermissionGroupJsonBody{},
+		DeleteQueryParams:  &DeletePermissionGroupQueryParams{},
+		UpdateJsonBody:     &UpdatePermissionGroupJsonBody{},
+		QueryQueryParams:   &GetPermissionGroupsQueryParams{},
+		GetByIDQueryParams: &GetPermissionGroupQueryParams{},
+	})
+}

+ 1 - 1
convenient/domain/auth/permission_group/request_params.go

@@ -15,7 +15,7 @@ type (
 
 	UpdatePermissionGroupJsonBody struct {
 		request.IDJsonBody
-		Name        string `json:"name" binding:"required" assign:"toField:Name"`
+		Name        string `json:"name" assign:"toField:Name"`
 		Description string `json:"description" assign:"toField:Description"`
 		request.UpdateUserIDJsonBody
 	}

+ 26 - 0
convenient/domain/auth/relations/permission_group_and_permission.go

@@ -0,0 +1,26 @@
+package relations
+
+import (
+	"git.sxidc.com/go-framework/baize/convenient/domain/auth/permission"
+	"git.sxidc.com/go-framework/baize/convenient/domain/auth/permission_group"
+	"git.sxidc.com/go-framework/baize/convenient/relation/many2many"
+	"git.sxidc.com/go-framework/baize/framework/binding"
+)
+
+// SimplePermissionGroupAndPermission Bind参数
+type SimplePermissionGroupAndPermission struct {
+	// schema
+	Schema string
+}
+
+func (simple *SimplePermissionGroupAndPermission) Bind(binder *binding.Binder) {
+	many2many.BindSimple(binder, &many2many.Simple[permission_group.Info, permission.Info]{
+		Left:                  &permission_group.Entity{},
+		Right:                 &permission.Entity{},
+		Schema:                simple.Schema,
+		LeftUpdateJsonBody:    &permission_group.UpdatePermissionsOfPermissionGroupJsonBody{},
+		LeftQueryQueryParams:  &permission_group.GetPermissionsOfPermissionGroupQueryParams{},
+		RightUpdateJsonBody:   &permission.UpdatePermissionGroupsOfPermissionJsonBody{},
+		RightQueryQueryParams: &permission.GetPermissionGroupsOfPermissionQueryParams{},
+	})
+}

+ 17 - 0
convenient/domain/auth/relations/relations.go

@@ -0,0 +1,17 @@
+package relations
+
+import (
+	"git.sxidc.com/go-framework/baize/framework/binding"
+)
+
+// Simple Bind参数
+type Simple struct {
+	// schema
+	Schema string
+}
+
+func (simple *Simple) Bind(binder *binding.Binder) {
+	(&SimplePermissionGroupAndPermission{Schema: simple.Schema}).Bind(binder)
+	(&SimpleRoleAndPermission{Schema: simple.Schema}).Bind(binder)
+	(&SimpleUserAndRole{Schema: simple.Schema}).Bind(binder)
+}

+ 26 - 0
convenient/domain/auth/relations/role_and_permission.go

@@ -0,0 +1,26 @@
+package relations
+
+import (
+	"git.sxidc.com/go-framework/baize/convenient/domain/auth/permission"
+	"git.sxidc.com/go-framework/baize/convenient/domain/auth/role"
+	"git.sxidc.com/go-framework/baize/convenient/relation/many2many"
+	"git.sxidc.com/go-framework/baize/framework/binding"
+)
+
+// SimpleRoleAndPermission Bind参数
+type SimpleRoleAndPermission struct {
+	// schema
+	Schema string
+}
+
+func (simple *SimpleRoleAndPermission) Bind(binder *binding.Binder) {
+	many2many.BindSimple(binder, &many2many.Simple[role.Info, permission.Info]{
+		Left:                  &role.Entity{},
+		Right:                 &permission.Entity{},
+		Schema:                simple.Schema,
+		LeftUpdateJsonBody:    &role.UpdatePermissionsOfRoleJsonBody{},
+		LeftQueryQueryParams:  &role.GetPermissionsOfRoleQueryParams{},
+		RightUpdateJsonBody:   &permission.UpdateRolesOfPermissionJsonBody{},
+		RightQueryQueryParams: &permission.GetRolesOfPermissionQueryParams{},
+	})
+}

+ 26 - 0
convenient/domain/auth/relations/role_and_user.go

@@ -0,0 +1,26 @@
+package relations
+
+import (
+	"git.sxidc.com/go-framework/baize/convenient/domain/auth/role"
+	"git.sxidc.com/go-framework/baize/convenient/domain/auth/user"
+	"git.sxidc.com/go-framework/baize/convenient/relation/many2many"
+	"git.sxidc.com/go-framework/baize/framework/binding"
+)
+
+// SimpleUserAndRole Bind参数
+type SimpleUserAndRole struct {
+	// schema
+	Schema string
+}
+
+func (simple *SimpleUserAndRole) Bind(binder *binding.Binder) {
+	many2many.BindSimple(binder, &many2many.Simple[user.Info, role.Info]{
+		Left:                  &user.Entity{},
+		Right:                 &role.Entity{},
+		Schema:                simple.Schema,
+		LeftUpdateJsonBody:    &user.UpdateRolesOfUserJsonBody{},
+		LeftQueryQueryParams:  &user.GetRolesOfUserQueryParams{},
+		RightUpdateJsonBody:   &role.UpdateUsersOfRoleJsonBody{},
+		RightQueryQueryParams: &role.GetUsersOfRoleQueryParams{},
+	})
+}

+ 23 - 0
convenient/domain/auth/role/api.go

@@ -1 +1,24 @@
 package role
+
+import (
+	"git.sxidc.com/go-framework/baize/convenient/entity_crud"
+	"git.sxidc.com/go-framework/baize/framework/binding"
+)
+
+// Simple Bind参数
+type Simple struct {
+	// schema
+	Schema string
+}
+
+func (simple *Simple) Bind(binder *binding.Binder) {
+	entity_crud.BindSimple(binder, &entity_crud.Simple[Info]{
+		Entity:             &Entity{},
+		Schema:             simple.Schema,
+		CreateJsonBody:     &CreateRoleJsonBody{},
+		DeleteQueryParams:  &DeleteRoleQueryParams{},
+		UpdateJsonBody:     &UpdateRoleJsonBody{},
+		QueryQueryParams:   &GetRolesQueryParams{},
+		GetByIDQueryParams: &GetRoleQueryParams{},
+	})
+}

+ 1 - 1
convenient/domain/auth/role/request_params.go

@@ -15,7 +15,7 @@ type (
 
 	UpdateRoleJsonBody struct {
 		request.IDJsonBody
-		Name        string `json:"name" binding:"required" assign:"toField:Name"`
+		Name        string `json:"name" assign:"toField:Name"`
 		Description string `json:"description" assign:"toField:Description"`
 		request.UpdateUserIDJsonBody
 	}

+ 23 - 0
convenient/domain/auth/user/api.go

@@ -1 +1,24 @@
 package user
+
+import (
+	"git.sxidc.com/go-framework/baize/convenient/entity_crud"
+	"git.sxidc.com/go-framework/baize/framework/binding"
+)
+
+// Simple Bind参数
+type Simple struct {
+	// schema
+	Schema string
+}
+
+func (simple *Simple) Bind(binder *binding.Binder) {
+	entity_crud.BindSimple(binder, &entity_crud.Simple[Info]{
+		Entity:             &Entity{},
+		Schema:             simple.Schema,
+		CreateJsonBody:     &CreateUserJsonBody{},
+		DeleteQueryParams:  &DeleteUserQueryParams{},
+		UpdateJsonBody:     &UpdateUserJsonBody{},
+		QueryQueryParams:   &GetUsersQueryParams{},
+		GetByIDQueryParams: &GetUserQueryParams{},
+	})
+}

+ 14 - 1
convenient/domain/auth/user/entity.go

@@ -12,25 +12,38 @@ import (
 const (
 	FieldUserName      = "UserName"
 	FieldPassword      = "Password"
+	FieldName          = "name"
+	FieldPhone         = "phone"
+	FieldEmail         = "email"
 	FieldLastLoginTime = "LastLoginTime"
 )
 
 var (
 	ColumnUserName      = domain.ColumnName(FieldUserName)
 	ColumnPassword      = domain.ColumnName(FieldPassword)
+	ColumnName          = domain.ColumnName(FieldName)
+	ColumnPhone         = domain.ColumnName(FieldPhone)
+	ColumnEmail         = domain.ColumnName(FieldEmail)
 	ColumnLastLoginTime = domain.ColumnName(FieldLastLoginTime)
 )
 
 var fieldMap = map[string]string{
 	FieldUserName:      "用户名",
 	FieldPassword:      "密码",
+	FieldName:          "姓名",
+	FieldPhone:         "手机号",
+	FieldEmail:         "邮箱",
 	FieldLastLoginTime: "最近登录时间",
 }
 
 type Entity struct {
 	entity.Base
 	UserName      string    `sqlmapping:"column:user_name;notUpdate" sqlresult:"column:user_name" check:"required,lte=256"`
-	Password      string    `sqlmapping:"column:password;aes:'@MKU^AAOP%H*K¥VJ<%G&j*o#$XZSWQ@L'" sqlresult:"column:password;aes:'@MKU^AAOP%H*K¥VJ<%G&j*o#$XZSWQ@L'" check:"required,lte=256"`
+	Password      string    `sqlmapping:"column:password" sqlresult:"column:password" check:"required,lte=256"`
+	Name          string    `sqlmapping:"column:name" sqlresult:"column:name" check:"lte=256"`
+	Phone         string    `sqlmapping:"column:phone" sqlresult:"column:phone" check:"lte=128"`
+	Email         string    `sqlmapping:"column:email" sqlresult:"column:email" check:"lte=512"`
+	Token         string    `sqlmapping:"column:token" sqlresult:"column:token"`
 	LastLoginTime time.Time `sqlmapping:"column:last_login_time;notUpdate" sqlresult:"column:last_login_time" check:"required,timezero"`
 
 	RoleIDs []string

+ 15 - 0
convenient/domain/auth/user/info.go

@@ -8,6 +8,21 @@ type Info struct {
 	application.InfoIDField
 	UserName      string `json:"userName" sqlresult:"column:user_name"`
 	Password      string `json:"password" sqlresult:"column:password"`
+	Name          string `json:"name" sqlresult:"column:name"`
+	Phone         string `json:"phone" sqlresult:"column:phone"`
+	Email         string `json:"email" sqlresult:"column:email"`
 	LastLoginTime string `json:"lastLoginTime" sqlresult:"column:last_login_time"`
 	application.InfoTimeFields
 }
+
+func (info *Info) GetID() string {
+	return info.ID
+}
+
+func (info *Info) GetUserName() string {
+	return info.UserName
+}
+
+func (info *Info) GetName() string {
+	return info.Name
+}

+ 11 - 2
convenient/domain/auth/user/request_params.go

@@ -8,6 +8,9 @@ type (
 	CreateUserJsonBody struct {
 		UserName string `json:"userName" binding:"required" assign:"toField:UserName"`
 		Password string `json:"password" binding:"required" assign:"toField:Password"`
+		Name     string `json:"name" assign:"toField:Name"`
+		Phone    string `json:"phone" assign:"toField:Phone"`
+		Email    string `json:"email" assign:"toField:Email"`
 	}
 
 	DeleteUserQueryParams struct {
@@ -16,12 +19,18 @@ type (
 
 	UpdateUserJsonBody struct {
 		request.IDJsonBody
-		Password string `json:"password" binding:"required" assign:"toField:Password"`
+		Password string `json:"password" assign:"toField:Password"`
+		Name     string `json:"name" assign:"toField:Name"`
+		Phone    string `json:"phone" assign:"toField:Phone"`
+		Email    string `json:"email" assign:"toField:Email"`
 	}
 
 	GetUsersQueryParams struct {
 		request.BaseQueryParams
-		UserName string `form:"userName" binding:"required" assign:"toField:UserName"`
+		UserName string `form:"userName" assign:"toField:UserName"`
+		Name     string `form:"name" assign:"toField:Name"`
+		Phone    string `form:"phone" assign:"toField:Phone"`
+		Email    string `form:"email" assign:"toField:Email"`
 	}
 
 	GetUserQueryParams struct {

+ 20 - 20
convenient/entity_crud/service.go

@@ -35,12 +35,12 @@ func Create(tableName string, callbacks *CreateCallbacks) binding.ServiceFunc[st
 			return callbackOnCreateErrorReturn(callbacks, e, make(map[string]any), err, i)
 		}
 
-		err = e.ForCreate()
+		prepared, err := callbackPrepareCreate(callbacks, e, i)
 		if err != nil {
 			return callbackOnCreateErrorReturn(callbacks, e, make(map[string]any), err, i)
 		}
 
-		prepared, err := callbackPrepareCreate(callbacks, e, i)
+		err = e.ForCreate()
 		if err != nil {
 			return callbackOnCreateErrorReturn(callbacks, e, make(map[string]any), err, i)
 		}
@@ -82,12 +82,12 @@ func Delete(tableName string, callbacks *DeleteCallbacks) binding.ServiceFunc[an
 			return nil, errors.New("需要传递领域对象应该为实体")
 		}
 
-		err := e.ForDelete()
+		prepared, err := callbackPrepareDelete(callbacks, e, i)
 		if err != nil {
 			return nil, callbackOnDeleteErrorReturn(callbacks, e, make(map[string]any), err, i)
 		}
 
-		prepared, err := callbackPrepareDelete(callbacks, e, i)
+		err = e.ForDelete()
 		if err != nil {
 			return nil, callbackOnDeleteErrorReturn(callbacks, e, make(map[string]any), err, i)
 		}
@@ -125,7 +125,12 @@ func Update(tableName string, callbacks *UpdateCallbacks) binding.ServiceFunc[an
 			return nil, errors.New("需要传递领域对象应该为实体")
 		}
 
-		err := e.ForUpdate()
+		prepared, err := callbackPrepareUpdate(callbacks, e, i)
+		if err != nil {
+			return nil, callbackOnUpdateErrorReturn(callbacks, e, make(map[string]any), err, i)
+		}
+
+		err = e.ForUpdate()
 		if err != nil {
 			return nil, callbackOnUpdateErrorReturn(callbacks, e, make(map[string]any), err, i)
 		}
@@ -143,11 +148,6 @@ func Update(tableName string, callbacks *UpdateCallbacks) binding.ServiceFunc[an
 			return nil, callbackOnUpdateErrorReturn(callbacks, e, make(map[string]any), err, i)
 		}
 
-		prepared, err := callbackPrepareUpdate(callbacks, e, i)
-		if err != nil {
-			return nil, callbackOnUpdateErrorReturn(callbacks, e, make(map[string]any), err, i)
-		}
-
 		err = callbackBeforeUpdate(callbacks, e, prepared, i, nil)
 		if err != nil {
 			return nil, callbackOnUpdateErrorReturn(callbacks, e, prepared, err, i)
@@ -325,12 +325,12 @@ func CreateTx(tableName string, callbacks *CreateCallbacks) binding.ServiceFunc[
 			return callbackOnCreateErrorReturn(callbacks, e, make(map[string]any), err, i)
 		}
 
-		err = e.ForCreate()
+		prepared, err := callbackPrepareCreate(callbacks, e, i)
 		if err != nil {
 			return callbackOnCreateErrorReturn(callbacks, e, make(map[string]any), err, i)
 		}
 
-		prepared, err := callbackPrepareCreate(callbacks, e, i)
+		err = e.ForCreate()
 		if err != nil {
 			return callbackOnCreateErrorReturn(callbacks, e, make(map[string]any), err, i)
 		}
@@ -379,12 +379,12 @@ func DeleteTx(tableName string, callbacks *DeleteCallbacks) binding.ServiceFunc[
 			return nil, errors.New("需要传递领域对象应该为实体")
 		}
 
-		err := entity.CheckFieldID(e)
+		prepared, err := callbackPrepareDelete(callbacks, e, i)
 		if err != nil {
 			return nil, callbackOnDeleteErrorReturn(callbacks, e, make(map[string]any), err, i)
 		}
 
-		prepared, err := callbackPrepareDelete(callbacks, e, i)
+		err = e.ForDelete()
 		if err != nil {
 			return nil, callbackOnDeleteErrorReturn(callbacks, e, make(map[string]any), err, i)
 		}
@@ -429,7 +429,12 @@ func UpdateTx(tableName string, callbacks *UpdateCallbacks) binding.ServiceFunc[
 			return nil, errors.New("需要传递领域对象应该为实体")
 		}
 
-		err := entity.CheckFieldID(e)
+		prepared, err := callbackPrepareUpdate(callbacks, e, i)
+		if err != nil {
+			return nil, callbackOnUpdateErrorReturn(callbacks, e, make(map[string]any), err, i)
+		}
+
+		err = e.ForUpdate()
 		if err != nil {
 			return nil, callbackOnUpdateErrorReturn(callbacks, e, make(map[string]any), err, i)
 		}
@@ -446,11 +451,6 @@ func UpdateTx(tableName string, callbacks *UpdateCallbacks) binding.ServiceFunc[
 			return nil, callbackOnUpdateErrorReturn(callbacks, e, make(map[string]any), errors.New(e.DomainCNName()+"不存在"), i)
 		}
 
-		prepared, err := callbackPrepareUpdate(callbacks, e, i)
-		if err != nil {
-			return nil, callbackOnUpdateErrorReturn(callbacks, e, make(map[string]any), err, i)
-		}
-
 		err = database.Transaction(dbExecutor, func(tx database.Executor) error {
 			err = callbackBeforeUpdate(callbacks, e, prepared, i, tx)
 			if err != nil {