feat:完善项目

This commit is contained in:
henry
2021-11-12 14:08:42 +08:00
parent a8259f53a2
commit a22029f4a3
9 changed files with 102 additions and 34 deletions

View File

@ -27,6 +27,11 @@ type (
Remark string `json:"remark" form:"remark"`
Unit int `json:"unit" form:"Unit" binding:"required"`
}
// manageNoticeForm 公告参数信息
manageNoticeForm struct {
Title string `json:"title" form:"title" binding:"required"`
Content string `json:"content" form:"content" binding:"required"`
}
)
/**
@ -444,20 +449,59 @@ func (*Manage) MaterialSupplierDelete(c *gin.Context) {
}
func (*Manage) Notice(c *gin.Context) {
form := &struct {
PageForm
}{}
if err := bind(form)(c); err != nil {
APIFailure(err.(error))(c)
return
}
data, err := manage.NewNotice()(getSession()(c).(*service.Session)).List(form.Page, form.PageSize)
APIResponse(err, data)(c)
}
func (*Manage) NoticeDetail(c *gin.Context) {
form := new(IDStringForm)
if err := bind(form)(c); err != nil {
APIFailure(err.(error))(c)
return
}
data, err := manage.NewNotice()(getSession()(c).(*service.Session)).Detail(form.Convert())
APIResponse(err, data)(c)
}
func (*Manage) NoticeAdd(c *gin.Context) {
form := new(manageNoticeForm)
if err := bind(form)(c); err != nil {
APIFailure(err.(error))(c)
return
}
err := manage.NewNotice()(getSession()(c).(*service.Session)).Form(0, form.Title, form.Content)
APIResponse(err)(c)
}
func (*Manage) NoticeEdit(c *gin.Context) {
form := &struct {
IDStringForm
manageNoticeForm
}{}
if err := bind(form)(c); err != nil {
APIFailure(err.(error))(c)
return
}
err := manage.NewNotice()(getSession()(c).(*service.Session)).Form(form.Convert(), form.Title, form.Content)
APIResponse(err)(c)
}
func (*Manage) NoticeDelete(c *gin.Context) {
form := new(IDStringForm)
if err := bind(form)(c); err != nil {
APIFailure(err.(error))(c)
return
}
err := manage.NewNotice()(getSession()(c).(*service.Session)).Delete(form.Convert())
APIResponse(err)(c)
}

View File

@ -3,7 +3,6 @@ package api
import (
"ArmedPolice/app/controller/menu"
"ArmedPolice/app/service"
"github.com/gin-gonic/gin"
)
@ -25,6 +24,12 @@ type (
}
)
func (this *menuForm) parentInfo() uint64 {
obj := new(IDStringForm)
obj.ID = this.ParentID
return obj.Convert()
}
/**
* @apiDefine Menu 菜单管理
*/
@ -115,10 +120,8 @@ func (a *Menu) Add(c *gin.Context) {
APIFailure(err.(error))(c)
return
}
obj := new(IDStringForm)
obj.ID = form.ParentID
err := menu.NewInstance()(getSession()(c).(*service.Session)).Form(&menu.InstanceParams{
ParentID: obj.Convert(), Name: form.Name, Kind: form.Kind, Link: form.Link, Component: form.Component,
ParentID: form.parentInfo(), Name: form.Name, Kind: form.Kind, Link: form.Link, Component: form.Component,
Icon: form.Icon, Auth: form.Auth, Sort: form.Sort, Status: form.Status, Remark: form.Remark,
})
APIResponse(err)(c)
@ -163,10 +166,8 @@ func (a *Menu) Edit(c *gin.Context) {
APIFailure(err.(error))(c)
return
}
obj := new(IDStringForm)
obj.ID = form.ParentID
err := menu.NewInstance()(getSession()(c).(*service.Session)).Form(&menu.InstanceParams{
ID: form.Convert(), ParentID: obj.Convert(), Name: form.Name, Kind: form.Kind, Link: form.Link, Component: form.Component,
ID: form.Convert(), ParentID: form.parentInfo(), Name: form.Name, Kind: form.Kind, Link: form.Link, Component: form.Component,
Icon: form.Icon, Auth: form.Auth, Sort: form.Sort, Status: form.Status, Remark: form.Remark,
})
APIResponse(err)(c)

View File

@ -26,6 +26,28 @@ type userForm struct {
RoleIDs []string `json:"role_ids" form:"role_ids"`
}
func (this *userForm) avatarInfo() string {
obj := &ImageForm{Image: this.Avatar}
return obj.FilterImageURL()
}
func (this *userForm) tenantInfo() uint64 {
obj := &IDStringForm{ID: this.TenantID}
return obj.Convert()
}
// roleInfo 角色信息
func (this *userForm) roleInfo() []uint64 {
obj := new(IDStringForm)
roleIDs := make([]uint64, 0)
for _, v := range this.RoleIDs {
obj.ID = v
roleIDs = append(roleIDs, obj.Convert())
}
return roleIDs
}
/**
* @api {get} /api/v1/user/info 用户信息
* @apiVersion 1.0.0
@ -152,7 +174,7 @@ func (*User) Detail(c *gin.Context) {
}
/**
* @api {get} /api/v1/user/add 用户信息添加
* @api {post} /api/v1/user/add 用户信息添加
* @apiVersion 1.0.0
* @apiName UserAdd
* @apiGroup User
@ -191,18 +213,16 @@ func (*User) Add(c *gin.Context) {
APIFailure(err.(error))(c)
return
}
obj := &ImageForm{Image: form.Avatar}
IDObj := &IDStringForm{ID: form.TenantID}
err := user.NewInstance()(getSession()(c).(*service.Session)).Form(&user.InstanceParams{
TenantID: IDObj.Convert(), Account: form.Account, Name: form.Name, Avatar: obj.FilterImageURL(),
TenantID: form.tenantInfo(), Account: form.Account, Name: form.Name, Avatar: form.avatarInfo(),
Mobile: form.Mobile, Password: form.Password, Remark: form.Remark, Gender: form.Gender, Status: form.Status,
RoleIDs: form.roleInfo(),
})
APIResponse(err)(c)
}
/**
* @api {get} /api/v1/user/edit 用户信息修改
* @api {post} /api/v1/user/edit 用户信息修改
* @apiVersion 1.0.0
* @apiName UserEdit
* @apiGroup User
@ -244,18 +264,16 @@ func (*User) Edit(c *gin.Context) {
APIFailure(err.(error))(c)
return
}
obj := &ImageForm{Image: form.Avatar}
IDObj := &IDStringForm{ID: form.TenantID}
err := user.NewInstance()(getSession()(c).(*service.Session)).Form(&user.InstanceParams{
ID: form.Convert(), TenantID: IDObj.Convert(), Account: form.Account, Name: form.Name, Avatar: obj.FilterImageURL(),
ID: form.Convert(), TenantID: form.tenantInfo(), Account: form.Account, Name: form.Name, Avatar: form.avatarInfo(),
Mobile: form.Mobile, Password: form.Password, Remark: form.Remark, Gender: form.Gender, Status: form.Status,
RoleIDs: form.roleInfo(),
})
APIResponse(err)(c)
}
/**
* @api {get} /api/v1/user/delete 用户信息删除
* @api {post} /api/v1/user/delete 用户信息删除
* @apiVersion 1.0.0
* @apiName UserDelete
* @apiGroup User
@ -288,7 +306,7 @@ func (*User) Delete(c *gin.Context) {
}
/**
* @api {get} /api/v1/user/password/quick 用户密码快速设置
* @api {post} /api/v1/user/password/quick 用户密码快速设置
* @apiVersion 1.0.0
* @apiName UserPasswordQuick
* @apiGroup User
@ -324,7 +342,7 @@ func (*User) PasswordQuick(c *gin.Context) {
}
/**
* @api {get} /api/v1/user/password/tradition 用户密码传统设置
* @api {post} /api/v1/user/password/tradition 用户密码传统设置
* @apiVersion 1.0.0
* @apiName UserPasswordTradition
* @apiGroup User
@ -365,7 +383,7 @@ func (*User) PasswordTradition(c *gin.Context) {
}
/**
* @api {get} /api/v1/user/password/activate 用户账号激活
* @api {post} /api/v1/user/activate 用户账号激活
* @apiVersion 1.0.0
* @apiName UserPasswordActivate
* @apiGroup User
@ -398,7 +416,7 @@ func (*User) Activate(c *gin.Context) {
}
/**
* @api {get} /api/v1/user/password/frozen 用户账号冻结
* @api {post} /api/v1/user/frozen 用户账号冻结
* @apiVersion 1.0.0
* @apiName UserPasswordFrozen
* @apiGroup User
@ -481,7 +499,7 @@ func (a *User) Role(c *gin.Context) {
}
/**
* @api {get} /api/v1/user/role/bind 用户角色绑定
* @api {post} /api/v1/user/role/bind 用户角色绑定
* @apiVersion 1.0.0
* @apiName UserRoleBind
* @apiGroup User

View File

@ -28,7 +28,7 @@ type Model struct {
// ModelTenant
type ModelTenant struct {
TenantID uint64 `gorm:"column:tenant_id;index:idx_sys_tenant_id;type:int(11);default:0;comment:租户ID" json:"-"`
TenantID uint64 `gorm:"column:tenant_id;index:idx_sys_tenant_id;type:int(11);default:0;comment:租户ID" json:"tenant_id"`
}
// ModelDeleted

View File

@ -39,7 +39,7 @@ type SysUserStatus int
const (
// SysUserStatusForNormal 正常
SysUserStatusForNormal SysUserStatus = 1
SysUserStatusForNormal SysUserStatus = iota + 1
// SysUserStatusForDisable 禁止登陆
SysUserStatusForDisable
)

View File

@ -79,8 +79,10 @@ func (c *InstanceParams) roleHandle(tx *gorm.DB, uid uint64) error {
})
mark[v] = v
}
if err = model2.Creates(mSysUserRole.SysUserRole, roles, tx); err != nil {
return err
if len(roles) > 0 {
if err = model2.Creates(mSysUserRole.SysUserRole, roles, tx); err != nil {
return err
}
}
return nil
}

View File

@ -105,8 +105,10 @@ func (c *Role) Bind(id uint64, roleIDs []uint64) error {
})
mark[v] = v
}
if err = model2.Creates(mSysUserRole.SysUserRole, roles, tx); err != nil {
return err
if len(roles) > 0 {
if err = model2.Creates(mSysUserRole.SysUserRole, roles, tx); err != nil {
return err
}
}
return nil
})

View File

@ -44,11 +44,12 @@ func (m *SysUser) GetByAccountOrMobile(param string) (bool, error) {
return true, nil
}
// Users 用户信息
func (m *SysUser) Users(page, pageSize int, count *int64, where ...*model.ModelWhere) ([]*SysUserInfo, error) {
mSysTenant := model.NewSysTenant()
db := orm.GetDB().Table(m.TableName()+" As u").Select("u.id", "u.uuid", "u.name", "u.avatar",
"u.mobile", "u.email", "u.status", "t.name AS tenant_name").
db := orm.GetDB().Table(m.TableName()+" As u").Select("u.id", "u.uuid", "account", "u.name", "u.avatar",
"u.mobile", "u.email", "u.status", "t.name AS tenant_name", "u.created_at").
Joins(fmt.Sprintf("LEFT JOIN %s AS t ON u.tenant_id = t.id", mSysTenant.TableName())).
Where("u.is_deleted = ?", model.DeleteStatusForNot)

View File

@ -97,7 +97,7 @@ func (this *Router) registerAPI() {
userV1.POST("/password/tradition", _api.PasswordTradition)
userV1.POST("/activate", _api.Activate)
userV1.POST("/frozen", _api.Frozen)
userV1.POST("/role", _api.Role)
userV1.GET("/role", _api.Role)
userV1.POST("/role/bind", _api.RoleBind)
}
// Menu 菜单管理