diff --git a/doc/admin/user_group.js b/doc/admin/user_group.js index 4a8934f2..fc365113 100644 --- a/doc/admin/user_group.js +++ b/doc/admin/user_group.js @@ -20,11 +20,10 @@ module.exports = class { ['!data', common.UserGroup()] ] }, - { 'method': 'POST', 'name': 'add', - 'desc': '添加邮件', + 'desc': '添加用户组', 'group': 'user_group', 'url': 'api/v1/user_group/add', 'header': [ @@ -40,7 +39,26 @@ module.exports = class { new common.RspHead(), ] }, - + { + 'method': 'POST', + 'name': 'add', + 'desc': '编辑用户组', + 'group': 'user_group', + 'url': 'api/v1/user_group/edit', + 'header': [ + ], + 'is_json_params': true, + 'params': [ + new common.RspHead(), + ['group_id', 0, '组id'], + ['group_name', '', '组名'], + ['group_desc', '', '描述'], + ['enabled', 0, '是否启用'], + ], + 'response': [ + new common.RspHead(), + ] + }, ]; } diff --git a/server/adminserver/api/v1/system/user_group.go b/server/adminserver/api/v1/system/user_group.go index 00ab3bef..27547e06 100644 --- a/server/adminserver/api/v1/system/user_group.go +++ b/server/adminserver/api/v1/system/user_group.go @@ -22,4 +22,147 @@ func (this *UserGroupApi) List(c *gin.Context) { } func (this *UserGroupApi) Add(c *gin.Context) { + req := struct { + GroupName string `binding:"required" json:"group_name"` + GroupDesc string `json:"group_desc"` + Enabled int32 `json:"enabled"` + }{} + if err := c.ShouldBindJSON(&req); err != nil { + c.JSON(http.StatusOK, gin.H{ + "code": 1, + "message": err.Error(), + }) + return + } + db := f5.GetApp().GetOrmDb(constant.MAIL_DB) + if err := db.Where("group_name = ?", req.GroupName).Take(new(system.UserGroup)).Error; err == nil { + c.JSON(http.StatusOK, gin.H{ + "code": 2, + "message": "组名已存在", + }) + return + } else { + if !f5.IsOrmErrRecordNotFound(err) { + c.JSON(http.StatusOK, gin.H{ + "code": 500, + "message": "sever internal error:" + err.Error(), + }) + return + } + } + nowDaySeconds := int32(f5.GetApp().GetRealSeconds()) + group := new(system.UserGroup) + group.GroupId = f5.GetApp().NewLockNodeUuid() + group.GroupName = req.GroupName + group.GroupDesc = req.GroupDesc + group.Enabled = req.Enabled + group.CreateTime = nowDaySeconds + group.ModifyTime = nowDaySeconds + if err := db.Create(group).Error; err != nil { + if !f5.IsOrmErrRecordNotFound(err) { + c.JSON(http.StatusOK, gin.H{ + "code": 500, + "message": "sever internal error:" + err.Error(), + }) + return + } + } + c.JSON(http.StatusOK, gin.H{ + "code": 0, + "message": "", + }) +} + +func (this *UserGroupApi) Edit(c *gin.Context) { + req := struct { + GroupId int64 `binding:"required" json:"group_id"` + GroupName string `binding:"required" json:"group_name"` + GroupDesc string `json:"group_desc"` + Enabled int32 `json:"enabled"` + }{} + if err := c.ShouldBindJSON(&req); err != nil { + c.JSON(http.StatusOK, gin.H{ + "code": 1, + "message": err.Error(), + }) + return + } + group := new(system.UserGroup) + db := f5.GetApp().GetOrmDb(constant.MAIL_DB) + if err := db.Take(group, req.GroupId).Error; err != nil { + if !f5.IsOrmErrRecordNotFound(err) { + c.JSON(http.StatusOK, gin.H{ + "code": 500, + "message": "sever internal error:" + err.Error(), + }) + return + } else { + c.JSON(http.StatusOK, gin.H{ + "code": 2, + "message": "无法查到记录", + }) + return + } + } else { + } + nowDaySeconds := int32(f5.GetApp().GetRealSeconds()) + group.GroupName = req.GroupName + group.GroupDesc = req.GroupDesc + group.Enabled = req.Enabled + group.ModifyTime = nowDaySeconds + if err := db.Save(group).Error; err != nil { + c.JSON(http.StatusOK, gin.H{ + "code": 500, + "message": "sever internal error:" + err.Error(), + }) + return + } + c.JSON(http.StatusOK, gin.H{ + "code": 0, + "message": "", + }) +} + +func (this *UserGroupApi) Del(c *gin.Context) { + req := struct { + GroupId int64 `binding:"required" json:"group_id"` + }{} + if err := c.ShouldBindJSON(&req); err != nil { + c.JSON(http.StatusOK, gin.H{ + "code": 1, + "message": err.Error(), + }) + return + } + group := new(system.UserGroup) + db := f5.GetApp().GetOrmDb(constant.MAIL_DB) + if err := db.Take(group, req.GroupId).Error; err != nil { + if !f5.IsOrmErrRecordNotFound(err) { + c.JSON(http.StatusOK, gin.H{ + "code": 500, + "message": "sever internal error:" + err.Error(), + }) + return + } else { + c.JSON(http.StatusOK, gin.H{ + "code": 2, + "message": "无法查到记录", + }) + return + } + } else { + } + nowDaySeconds := int32(f5.GetApp().GetRealSeconds()) + group.ModifyTime = nowDaySeconds + if err := db.Delete(group).Error; err != nil { + c.JSON(http.StatusOK, gin.H{ + "code": 500, + "message": "sever internal error:" + err.Error(), + }) + return + } + c.JSON(http.StatusOK, gin.H{ + "code": 0, + "message": "", + }) } diff --git a/server/adminserver/model/system/mail.go b/server/adminserver/model/system/mail.go index ce5a4a3b..3dc6d50e 100644 --- a/server/adminserver/model/system/mail.go +++ b/server/adminserver/model/system/mail.go @@ -1,7 +1,7 @@ package system type Mail struct { - MailId int64 `gorm:"unique;column:mail_id" json:"mail_id"` + MailId int64 `gorm:"primaryKey;column:mail_id" json:"mail_id"` MailType int32 `gorm:"column:mail_type" json:"mail_type"` Subject string `gorm:"column:subject" json:"subject"` Content string `gorm:"column:content" json:"content"` diff --git a/server/adminserver/model/system/user_group.go b/server/adminserver/model/system/user_group.go index e6416618..75f4e0db 100644 --- a/server/adminserver/model/system/user_group.go +++ b/server/adminserver/model/system/user_group.go @@ -1,13 +1,13 @@ package system type UserGroup struct { - GroupId int64 `gorm:"unique;column:group_id" json:"group_id"` + GroupId int64 `gorm:"primaryKey;column:group_id" json:"group_id"` GroupName string `gorm:"unique;column:group_name" json:"group_name"` - GroupDesc string `gorm:"column:group_desc" json:"group_desc"` - Enabled int32 `gorm:"unique;column:enabled" json:"enabled"` - Deleted int32 `gorm:"unique;column:deleted" json:"deleted"` - CreateTime int32 `gorm:"unique;column:createtime" json:"createtime"` - ModifyTime int32 `gorm:"unique;column:modifytime" json:"modifytime"` + GroupDesc string `gorm:"group_desc" json:"group_desc"` + Enabled int32 `gorm:"column:enabled" json:"enabled"` + Deleted int32 `gorm:"column:deleted" json:"deleted"` + CreateTime int32 `gorm:"column:createtime" json:"createtime"` + ModifyTime int32 `gorm:"column:modifytime" json:"modifytime"` } func (UserGroup) TableName() string {