Browse Source

新增角色编辑

hsun 2 years ago
parent
commit
5cb34ca84b

+ 1 - 1
controller/contract/register.go

@@ -373,7 +373,7 @@ func (rg *RegisterController) Edit(c *gin.Context) {
 		logItem.AdminId = int(adminInfo.AdminId)
 		logItem.AdminName = adminInfo.RealName
 		logItem.OpData = opData
-		logItem.OpType = fms.ContractRegisterOpTypeSave
+		logItem.OpType = fms.ContractRegisterOpTypeEdit
 		logItem.CreateTime = nowTime
 		if e = logItem.Create(); e != nil {
 			return

+ 22 - 0
controller/system/sys_role.go

@@ -36,6 +36,28 @@ func (s *SysRoleController) Add(c *gin.Context) {
 	return
 }
 
+// Edit 编辑角色
+func (s *SysRoleController) Edit(c *gin.Context) {
+	req := new(system.SysRoleEditReq)
+	err := c.ShouldBind(&req)
+	if err != nil {
+		errs, ok := err.(validator.ValidationErrors)
+		if !ok {
+			resp.FailData("参数解析失败", "Err:"+err.Error(), c)
+			return
+		}
+		resp.FailData("参数解析失败", errs.Translate(global.Trans), c)
+		return
+	}
+	err, errMsg := systemService.EditRole(req)
+	if err != nil {
+		resp.FailMsg(errMsg, err.Error(), c)
+		return
+	}
+	resp.Ok("保存成功", c)
+	return
+}
+
 // 编辑角色菜单权限
 func (s *SysRoleController) EditMenu(c *gin.Context) {
 	req := new(system.SysRoleMenuEditReq)

+ 1 - 0
models/fms/constants.go

@@ -20,6 +20,7 @@ const (
 	ContractRegisterOpTypePayment = 3 // 到款登记
 	ContractRegisterOpTypeStatus  = 4 // 修改合同状态
 	ContractRegisterOpTypeDel     = 5 // 删除合同登记
+	ContractRegisterOpTypeEdit    = 6 // 合规编辑
 
 	// 合同登记开票类型
 	ContractInvoiceTypeMake = 1 // 开票登记

+ 1 - 1
models/fms/contract_register_log.go

@@ -13,7 +13,7 @@ type ContractRegisterLog struct {
 	AdminId            int       `gorm:"column:admin_id" json:"admin_id" description:"操作人ID"`
 	AdminName          string    `gorm:"column:admin_name" json:"admin_name" description:"当时操作人姓名"`
 	OpData             string    `gorm:"column:op_data" json:"op_data" description:"操作数据-JSON"`
-	OpType             int       `gorm:"column:op_type" json:"op_type" description:"操作类型: 1-合规登记; 2-开票登记; 3-到款登记; 4-修改合同状态; 5-删除合同登记;"`
+	OpType             int       `gorm:"column:op_type" json:"op_type" description:"操作类型: 1-合规登记; 2-开票登记; 3-到款登记; 4-修改合同状态; 5-删除合同登记; 6-合规编辑"`
 	Remark             string    `gorm:"column:remark" json:"remark" description:"备注信息"`
 	CreateTime         time.Time `gorm:"autoCreateTime;column:create_time" json:"create_time" description:"创建时间"`
 }

+ 15 - 15
models/system/sys_role.go

@@ -8,8 +8,8 @@ import (
 
 // 角色表
 type SysRole struct {
-	RoleId     int64     `gorm:"primaryKey;column:role_id" json:"role_id"`         //序号
-	RoleName   string    `gorm:"column:role_name" json:"role_name"`     //角色名称
+	RoleId   int64  `gorm:"primaryKey;column:role_id" json:"role_id"` //序号
+	RoleName string `gorm:"column:role_name" json:"role_name"`        //角色名称
 	base.TimeBase
 }
 
@@ -31,29 +31,29 @@ func (r *SysRole) Update(updateCols []string) (err error) {
 }
 
 type SysRoleAddReq struct {
-	RoleName   string `json:"role_name" binding:"required"` //角色名称
+	RoleName string `json:"role_name" binding:"required"` //角色名称
 }
 
 type SysRoleEditReq struct {
-	RoleId     int64  `json:"role_id" binding:"required"`    //序号
-	RoleName   string `json:"role_name" binding:"required"` //角色名称
+	RoleId   int64  `json:"role_id" binding:"required"`   //序号
+	RoleName string `json:"role_name" binding:"required"` //角色名称
 }
 
 type SysRoleDelReq struct {
-	RoleId     int64  `json:"role_id" binding:"required"`    //序号
+	RoleId int64 `json:"role_id" binding:"required"` //序号
 }
 
 type SysRoleMenuEditReq struct {
-	RoleId     int64  `json:"role_id" binding:"required,gte=1"`    //序号
-	MenuIdList []int64  `json:"menu_id_list" `                //绑定的菜单ID
+	RoleId     int64   `json:"role_id" binding:"required,gte=1"` //序号
+	MenuIdList []int64 `json:"menu_id_list" `                    //绑定的菜单ID
 }
 
-func (r *SysRole) GetRoleByRoleId(roleId int64) (item *SysRole, err error)  {
+func (r *SysRole) GetRoleByRoleId(roleId int64) (item *SysRole, err error) {
 	err = global.DEFAULT_MYSQL.Model(r).Where("role_id = ?", roleId).First(&item).Error
 	return
 }
 
-func (r *SysRole) GetRoleByRoleName(roleName string) (item *SysRole, err error)  {
+func (r *SysRole) GetRoleByRoleName(roleName string) (item *SysRole, err error) {
 	err = global.DEFAULT_MYSQL.Model(r).Where("role_name = ?", roleName).First(&item).Error
 	return
 }
@@ -64,6 +64,7 @@ type SysRoleListItem struct {
 	CreateTime string `json:"create_time"` //创建时间
 	ModifyTime string `json:"modify_time"` //最后更新时间
 }
+
 // SelectPage 分页查询
 func (r *SysRole) SelectPage(page base.IPage, condition string, pars []interface{}) (count int64, results []SysRole, err error) {
 	query := global.DEFAULT_MYSQL.WithContext(context.TODO()).Model(r).Where(condition, pars...)
@@ -75,24 +76,23 @@ func (r *SysRole) SelectPage(page base.IPage, condition string, pars []interface
 	return
 }
 
-func (r *SysRole) GetRoleNameList() (list []*SysRole, err error)  {
+func (r *SysRole) GetRoleNameList() (list []*SysRole, err error) {
 	err = global.DEFAULT_MYSQL.Model(r).Find(&list).Error
 	return
 }
 
-
 type SysRoleListReq struct {
-	RoleName  string  `json:"role_name" form:"role_name"`    //序号
+	RoleName string `json:"role_name" form:"role_name"` //序号
 	base.PageReq
 }
 
 type SysRoleMenuListReq struct {
-	RoleId     int64  `json:"role_id" form:"role_id"`    //序号
+	RoleId int64 `json:"role_id" form:"role_id"` //序号
 }
 
 type SysRoleMenuResp struct {
 	List       []*MenuListItemResp `json:"list"`
-	ChoiceList []int64    `json:"choice_list"`
+	ChoiceList []int64             `json:"choice_list"`
 }
 
 // 删除

+ 5 - 5
models/system/sys_role_menu.go

@@ -8,10 +8,10 @@ import (
 
 // 角色和菜单关联表
 type SysRoleMenu struct {
-	RoleMenuId int64       `gorm:"primaryKey;column:role_menu_id" json:"_"` //序号
-	RoleId     int64       `gorm:"column:role_id" json:"role_id"`           //角色ID
-	MenuId     int64       `gorm:"column:menu_id" json:"menu_id"`           //菜单ID
-	CreateTime time.Time `gorm:"autoCreateTime;column:create_time" json:"create_time"` //创建时间
+	RoleMenuId int64     `gorm:"primaryKey;column:role_menu_id" json:"_"`                    //序号
+	RoleId     int64     `gorm:"column:role_id" json:"role_id"`                              //角色ID
+	MenuId     int64     `gorm:"column:menu_id" json:"menu_id"`                              //菜单ID
+	CreateTime time.Time `gorm:"autoCreateTime;column:create_time" json:"create_time"`       //创建时间
 	ModifyTime time.Time `gorm:"autoUpdateTime:milli;column:modify_time" json:"modify_time"` //最后更新时间
 }
 
@@ -39,4 +39,4 @@ func (rm *SysRoleMenu) GetMenuListByCondition(condition string, pars []interface
 		Joins("Inner JOIN sys_menu r ON rm.menu_id = r.menu_id").
 		Where(condition, pars...).Find(&results).Error
 	return
-}
+}

+ 1 - 0
routers/system.go

@@ -13,6 +13,7 @@ func InitSystem(systemGroup *gin.RouterGroup) {
 	roleGroup.GET("list", roleController.List)
 	roleGroup.GET("menu/list", roleController.MenuList)
 	roleGroup.POST("add", roleController.Add)
+	roleGroup.POST("edit", roleController.Edit)
 	roleGroup.PUT("menu/edit", roleController.EditMenu)
 	roleGroup.DELETE("delete", roleController.Delete)
 

+ 34 - 0
services/system/sys_role.go

@@ -34,6 +34,40 @@ func AddRole(req *system.SysRoleAddReq) (err error, errMsg string) {
 	return
 }
 
+func EditRole(req *system.SysRoleEditReq) (err error, errMsg string) {
+	role := new(system.SysRole)
+	// 判断角色名称是否已存在
+	exist, err := role.GetRoleByRoleName(req.RoleName)
+	if err != nil && err != utils.ErrNoRow {
+		errMsg = "查询角色名称出错"
+		err = errors.New(errMsg + "Err:" + err.Error())
+		return
+	}
+	if exist != nil && exist.RoleId > 0 {
+		if exist.RoleId != req.RoleId {
+			errMsg = "角色名称已存在, 请重新输入"
+			err = errors.New(errMsg)
+			return
+		}
+	}
+	// 编辑角色
+	item, e := role.GetRoleByRoleId(req.RoleId)
+	if e != nil {
+		errMsg = "查询角色出错"
+		err = errors.New(errMsg + "Err:" + e.Error())
+		return
+	}
+	updateCols := []string{"RoleName", "ModifyTime"}
+	item.RoleName = req.RoleName
+	item.ModifyTime = time.Now().Local()
+	if e = item.Update(updateCols); e != nil {
+		errMsg = "更新角色出错"
+		err = errors.New(errMsg + "Err:" + e.Error())
+		return
+	}
+	return
+}
+
 func EditRoleMenu(req *system.SysRoleMenuEditReq) (err error, errMsg string) {
 	role := new(system.SysRole)
 	// 判断角色名称是否已存在