|
@@ -5,6 +5,7 @@ import (
|
|
"eta/eta_mini_crm/models"
|
|
"eta/eta_mini_crm/models"
|
|
"eta/eta_mini_crm/models/request"
|
|
"eta/eta_mini_crm/models/request"
|
|
"eta/eta_mini_crm/models/response"
|
|
"eta/eta_mini_crm/models/response"
|
|
|
|
+ "eta/eta_mini_crm/services"
|
|
"eta/eta_mini_crm/utils"
|
|
"eta/eta_mini_crm/utils"
|
|
"strings"
|
|
"strings"
|
|
"time"
|
|
"time"
|
|
@@ -128,20 +129,27 @@ func (this *UserController) Add() {
|
|
br.Msg = "邮箱已存在,请重新输入"
|
|
br.Msg = "邮箱已存在,请重新输入"
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
+
|
|
user := &models.User{}
|
|
user := &models.User{}
|
|
|
|
+ curTime := time.Now()
|
|
if userByPhone == nil && userByEmail == nil {
|
|
if userByPhone == nil && userByEmail == nil {
|
|
- user.CreateTime = time.Now()
|
|
|
|
- user.ModifyTime = time.Now()
|
|
|
|
|
|
+ user.CreateTime = curTime
|
|
|
|
+ user.ModifyTime = curTime
|
|
|
|
+ }
|
|
|
|
+ if userByEmail != nil {
|
|
|
|
+ user = userByEmail
|
|
|
|
+ }
|
|
|
|
+ if userByPhone != nil {
|
|
|
|
+ user = userByPhone
|
|
}
|
|
}
|
|
-
|
|
|
|
validStartTime = validStartTime.Local().Add(-time.Hour * 8)
|
|
validStartTime = validStartTime.Local().Add(-time.Hour * 8)
|
|
validEndTime = validEndTime.Local().Add(-time.Hour*8 + time.Hour*24)
|
|
validEndTime = validEndTime.Local().Add(-time.Hour*8 + time.Hour*24)
|
|
- curTime := time.Now()
|
|
|
|
- if curTime.Before(validEndTime) && curTime.After(validStartTime) {
|
|
|
|
|
|
+ if curTime.Before(validEndTime) {
|
|
user.Status = 2
|
|
user.Status = 2
|
|
} else {
|
|
} else {
|
|
user.Status = 0
|
|
user.Status = 0
|
|
}
|
|
}
|
|
|
|
+
|
|
user.RealName = req.RealName
|
|
user.RealName = req.RealName
|
|
user.AreaCode = req.AreaCode
|
|
user.AreaCode = req.AreaCode
|
|
user.Phone = req.Phone
|
|
user.Phone = req.Phone
|
|
@@ -150,7 +158,7 @@ func (this *UserController) Add() {
|
|
user.ValidStartTime = validStartTime
|
|
user.ValidStartTime = validStartTime
|
|
user.ValidEndTime = validEndTime
|
|
user.ValidEndTime = validEndTime
|
|
user.Company = req.Company
|
|
user.Company = req.Company
|
|
- user.ModifyTime = time.Now()
|
|
|
|
|
|
+ user.ModifyTime = curTime
|
|
err = models.SaveUser(user, req.ChartPermission)
|
|
err = models.SaveUser(user, req.ChartPermission)
|
|
if err != nil {
|
|
if err != nil {
|
|
br.Msg = "添加客户失败"
|
|
br.Msg = "添加客户失败"
|
|
@@ -158,6 +166,12 @@ func (this *UserController) Add() {
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if user.Status == 2 {
|
|
|
|
+ userRecord := &models.UserChangeRecord{}
|
|
|
|
+ userRecord.Content = this.SysUser.SysRealName + "新增用户"
|
|
|
|
+ userRecord.Insert()
|
|
|
|
+ }
|
|
|
|
+
|
|
br.Msg = "添加成功"
|
|
br.Msg = "添加成功"
|
|
br.Success = true
|
|
br.Success = true
|
|
br.Ret = 200
|
|
br.Ret = 200
|
|
@@ -273,7 +287,7 @@ func (this *UserController) Edit() {
|
|
curTime := time.Now()
|
|
curTime := time.Now()
|
|
if !req.IsEnabled {
|
|
if !req.IsEnabled {
|
|
user.Status = 0
|
|
user.Status = 0
|
|
- } else if curTime.After(validStartTime) && curTime.Before(validEndTime) {
|
|
|
|
|
|
+ } else if curTime.Before(validEndTime) {
|
|
user.Status = 2
|
|
user.Status = 2
|
|
} else {
|
|
} else {
|
|
user.Status = 1
|
|
user.Status = 1
|
|
@@ -284,6 +298,13 @@ func (this *UserController) Edit() {
|
|
br.ErrMsg = "添加客户失败,系统错误,Err:" + err.Error()
|
|
br.ErrMsg = "添加客户失败,系统错误,Err:" + err.Error()
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
+ record := &models.UserChangeRecord{}
|
|
|
|
+ if user.Status == 2 {
|
|
|
|
+ record.Content = this.SysUser.SysRealName + "新增用户"
|
|
|
|
+ } else {
|
|
|
|
+ record.Content = this.SysUser.SysRealName + "编辑用户"
|
|
|
|
+ }
|
|
|
|
+ record.Insert()
|
|
|
|
|
|
br.Msg = "编辑成功"
|
|
br.Msg = "编辑成功"
|
|
br.Success = true
|
|
br.Success = true
|
|
@@ -582,10 +603,23 @@ func (this *UserController) Detail() {
|
|
br.Msg = "用户不存在或已删除,请刷新页面"
|
|
br.Msg = "用户不存在或已删除,请刷新页面"
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
+ permissionList, err := services.GetUserPermissionById(UserId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "用户权限获取失败,请重新尝试"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ permissionMap := make(map[string][]string)
|
|
|
|
+ for _, pm := range permissionList {
|
|
|
|
+ permissionMap[pm.ParentName] = append(permissionMap[pm.ParentName], pm.PermissionName)
|
|
|
|
+ }
|
|
|
|
+ resp := new(response.UserDetailResp)
|
|
|
|
+ resp.Detail = user
|
|
|
|
+ resp.Permission = permissionMap
|
|
|
|
+
|
|
br.Msg = "查询成功"
|
|
br.Msg = "查询成功"
|
|
br.Ret = 200
|
|
br.Ret = 200
|
|
br.Success = true
|
|
br.Success = true
|
|
- br.Data = user
|
|
|
|
|
|
+ br.Data = resp
|
|
}
|
|
}
|
|
|
|
|
|
// Delete
|
|
// Delete
|
|
@@ -619,3 +653,109 @@ func (this *UserController) Delete() {
|
|
br.Success = true
|
|
br.Success = true
|
|
br.Ret = 200
|
|
br.Ret = 200
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+// @Title 开启/禁用用户
|
|
|
|
+// @Description 开启/禁用用户接口
|
|
|
|
+// @Param request body system.SysuserEditReq true "type json string"
|
|
|
|
+// @Success 200 操作成功
|
|
|
|
+// @router /editEnabled [post]
|
|
|
|
+func (this *UserController) EditEnabled() {
|
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
|
+ defer func() {
|
|
|
|
+ this.Data["json"] = br
|
|
|
|
+ this.ServeJSON()
|
|
|
|
+ }()
|
|
|
|
+ var req request.UserEditEnabledReq
|
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ user, err := models.GetUserById(req.UserId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "获取数据失败"
|
|
|
|
+ br.ErrMsg = "获取系统用户数据失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ // 修改系统用户禁用状态
|
|
|
|
+ curTime := time.Now()
|
|
|
|
+ if req.IsEnabled && curTime.Before(user.ValidEndTime) && curTime.After(user.ValidStartTime) {
|
|
|
|
+ user.Status = 2
|
|
|
|
+ }
|
|
|
|
+ if !req.IsEnabled {
|
|
|
|
+ user.Status = 0
|
|
|
|
+ } else {
|
|
|
|
+ user.Status = 1
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ user.ModifyTime = curTime
|
|
|
|
+ err = user.Update([]string{"status", "modify_time"})
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "修改失败"
|
|
|
|
+ br.ErrMsg = "修改系统用户数据失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ // 记录操作
|
|
|
|
+ record := &models.UserChangeRecord{}
|
|
|
|
+ if user.Status == 0 {
|
|
|
|
+ record.Content = this.SysUser.SysRealName + "禁用用户"
|
|
|
|
+ } else {
|
|
|
|
+ record.Content = this.SysUser.SysRealName + "启用用户"
|
|
|
|
+ }
|
|
|
|
+ record.Insert()
|
|
|
|
+
|
|
|
|
+ br.Ret = 200
|
|
|
|
+ br.Success = true
|
|
|
|
+ br.IsAddLog = true
|
|
|
|
+ br.Msg = "操作成功"
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// @Title 用户信息变更记录
|
|
|
|
+// @Description 用户信息变更记录
|
|
|
|
+// @Param PageSize query int true "每页数据条数"
|
|
|
|
+// @Param CurrentIndex query int true "当前页页码,从1开始"
|
|
|
|
+// @Success 200 操作成功
|
|
|
|
+// @router /change_list [get]
|
|
|
|
+func (this *UserController) ChangeList() {
|
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
|
+ defer func() {
|
|
|
|
+ this.Data["json"] = br
|
|
|
|
+ this.ServeJSON()
|
|
|
|
+ }()
|
|
|
|
+
|
|
|
|
+ pageSize, _ := this.GetInt("PageSize")
|
|
|
|
+ currentIndex, _ := this.GetInt("CurrentIndex")
|
|
|
|
+ if pageSize <= 0 {
|
|
|
|
+ pageSize = utils.PageSize20
|
|
|
|
+ } else if pageSize > utils.PageSize100 {
|
|
|
|
+ pageSize = utils.PageSize100
|
|
|
|
+ }
|
|
|
|
+ if currentIndex <= 0 {
|
|
|
|
+ currentIndex = 1
|
|
|
|
+ }
|
|
|
|
+ startSize := utils.StartIndex(currentIndex, pageSize)
|
|
|
|
+
|
|
|
|
+ total, err := models.GetUserChangeRecordCount()
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "用户信息变更查询失败"
|
|
|
|
+ br.ErrMsg = "用户信息变更查询失败,系统错误,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ userRcord, err := models.GetUserChangeRecordList(startSize, pageSize)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "用户信息变更查询失败"
|
|
|
|
+ br.ErrMsg = "用户信息变更查询失败,系统错误,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
|
+ resp := new(response.UserChangeRecordResp)
|
|
|
|
+ resp.List = userRcord
|
|
|
|
+ resp.Paging = page
|
|
|
|
+
|
|
|
|
+ br.Data = resp
|
|
|
|
+ br.Msg = "查询成功"
|
|
|
|
+ br.Success = true
|
|
|
|
+ br.Ret = 200
|
|
|
|
+}
|