You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
132 lines
3.1 KiB
132 lines
3.1 KiB
package user
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/golangkit/formatime"
|
|
"recook/internal/dbc"
|
|
"recook/internal/model/manage"
|
|
"recook/internal/model/role"
|
|
"strconv"
|
|
|
|
"recook/internal/back"
|
|
"recook/tools"
|
|
)
|
|
|
|
type createParam struct {
|
|
Name string `gorm:"column:name" json:"name" validate:"required"`
|
|
Mobile string `gorm:"column:mobile" json:"mobile" validate:"required,len=11"`
|
|
Password string `gorm:"column:password" json:"password" validate:"required,len=6"`
|
|
Role uint `gorm:"column:role" json:"role" validate:"oneof=2 3"`
|
|
ID uint `json:"id" validate:"required"`
|
|
RoleInfo uint `json:"roleInfo"`
|
|
}
|
|
|
|
// 新建员工
|
|
func Create(c *gin.Context) {
|
|
var p createParam
|
|
|
|
err := tools.Params(&p, c)
|
|
if err != nil {
|
|
back.Fail(c, err.Error())
|
|
return
|
|
}
|
|
|
|
var u manage.UserInfo
|
|
dbc.DB.First(&u, "id=?", p.ID)
|
|
/*if u.Role != 1 {
|
|
http.Fail(c, "您没有权限")
|
|
return
|
|
}
|
|
*/
|
|
var r manage.Role
|
|
dbc.DB.First(&r, "id=?", p.RoleInfo)
|
|
n := manage.UserInfo{
|
|
Name: p.Name,
|
|
Mobile: p.Mobile,
|
|
Password: tools.MD5(p.Password),
|
|
Role: p.Role,
|
|
RoleID: r.ID,
|
|
RoleName: r.Name,
|
|
UserID: u.ID,
|
|
UserName: u.Name,
|
|
UpdatedAt: formatime.NewSecondNow(),
|
|
LoginTime: formatime.NewSecondNow(),
|
|
}
|
|
err = dbc.DB.Create(&n).Error
|
|
if err != nil {
|
|
back.Err(c, err.Error())
|
|
return
|
|
}
|
|
|
|
back.Suc(c, "操作成功", n)
|
|
}
|
|
|
|
type updateParam struct {
|
|
Name string `json:"name" validate:"required"`
|
|
Mobile string `json:"mobile" validate:"required,len=11"`
|
|
Password string `json:"password"`
|
|
Role uint `json:"roleInfo"`
|
|
NewRole uint `json:"newRoleInfo"`
|
|
ID uint `json:"id" validate:"required"`
|
|
IDu uint `json:"idu"`
|
|
}
|
|
|
|
// 修改员工
|
|
func Update(c *gin.Context) {
|
|
var p updateParam
|
|
|
|
err := tools.Params(&p, c)
|
|
if err != nil {
|
|
back.Fail(c, err.Error())
|
|
return
|
|
}
|
|
|
|
var u manage.UserInfo
|
|
dbc.DB.First(&u, "id=?", p.IDu)
|
|
|
|
n := manage.UserInfo{
|
|
Name: p.Name,
|
|
Mobile: p.Mobile,
|
|
UserID: u.ID,
|
|
UserName: u.Name,
|
|
UpdatedAt: formatime.NewSecondNow(),
|
|
}
|
|
str := "name = '" + p.Name + "'"
|
|
str += " , mobile = " + p.Mobile
|
|
str += " , updated_at = '" + formatime.NewSecondNow().Time.Format("2006-01-02 15:04:05") + "'"
|
|
str += " , user_id = " + strconv.FormatUint(uint64(u.ID), 10)
|
|
str += " , user_name = '" + u.Name + "'"
|
|
|
|
if p.Password != "" {
|
|
n.Password = tools.MD5(p.Password)
|
|
}
|
|
if p.Role != 0 {
|
|
var r manage.Role
|
|
dbc.DB.First(&r, "id=?", p.Role)
|
|
n.RoleID = r.ID
|
|
n.RoleName = r.Name
|
|
|
|
//这边用新的角色名称
|
|
var nr role.RecookRole
|
|
dbc.DB.First(&nr, "id=?", p.NewRole)
|
|
|
|
str += " , role_id = " + strconv.FormatUint(uint64(r.ID), 10)
|
|
str += " , role_name = '" + nr.Rolename + "'"
|
|
} else {
|
|
// str += " , role_id = 0"
|
|
// str += " , role_name = '' "
|
|
}
|
|
err = dbc.DB.Exec("update recook_manage_user_info set "+str+" where id = ?", p.ID).Error
|
|
//修改new_role_id
|
|
if p.NewRole != 0 {
|
|
strNewRole := " newrole_id = " + strconv.Itoa(int(p.NewRole))
|
|
err = dbc.DB.Exec("update recook_manage_user_info set "+strNewRole+" where id = ?", p.ID).Error
|
|
}
|
|
if err != nil {
|
|
back.Err(c, err.Error())
|
|
return
|
|
}
|
|
|
|
back.Suc(c, "操作成功", n)
|
|
}
|