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

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)
}