瀏覽代碼

fix:添加查找部门下销售的功能,删除管理员操作记录的分页

zqbao 11 月之前
父節點
當前提交
beefb5790f

+ 98 - 0
controllers/seller.go

@@ -0,0 +1,98 @@
+package controllers
+
+import (
+	"eta/eta_mini_crm/models"
+	"eta/eta_mini_crm/models/response"
+	"eta/eta_mini_crm/services"
+)
+
+type SellerController struct {
+	BaseAuthController
+}
+
+// List
+// @Title 获取部门下销售
+// @Description 获取部门下销售接口
+// @Param   AllEnabled   query   bool  true       "是否获取包含禁用的用户"
+// @Success 200 {object} company.DepartmentGroupSellersResp
+// @router /list [get]
+func (this *SellerController) List() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+
+	getAllEnabled, _ := this.GetBool("AllEnabled", false)
+	enabled := true    //默认只获取正常状态的用户
+	if getAllEnabled { //获取所有状态的用户
+		enabled = false
+	}
+	list := make([]response.DepartmentSellers, 0)
+	// 获取第一层的部门
+	departmentList, err := models.GetSysDepartmentListByLevel(1)
+	if err != nil {
+		br.Msg = "获取部门失败"
+		br.ErrMsg = "获取部门失败,系统异常,Err:" + err.Error()
+		return
+	}
+	for _, dep := range departmentList {
+		departmentAndSellerList1, err := services.GetSysDepartmentAndSellerById(dep.SysDepartmentId, enabled)
+		if err != nil {
+			br.Msg = "获取部门失败"
+			br.ErrMsg = "获取部门失败,系统异常,Err:" + err.Error()
+			return
+		}
+		for _, departmentAndSeller1 := range departmentAndSellerList1 {
+			if departmentAndSeller1.SysDepartmentId == 0 {
+				continue
+			}
+			departmentAndSellerList2, err := services.GetSysDepartmentAndSellerById(departmentAndSeller1.SysDepartmentId, enabled)
+			if err != nil {
+				br.Msg = "获取部门失败"
+				br.ErrMsg = "获取部门失败,系统异常,Err:" + err.Error()
+				return
+			}
+			departmentAndSeller1.ChildrenList = departmentAndSellerList2
+			for _, departmentAndSeller2 := range departmentAndSellerList2 {
+				if departmentAndSeller2.SysDepartmentId == 0 {
+					continue
+				}
+				departmentAndSellerList3, err := services.GetSysDepartmentAndSellerById(departmentAndSeller2.SysDepartmentId, enabled)
+				if err != nil {
+					br.Msg = "获取部门失败"
+					br.ErrMsg = "获取部门失败,系统异常,Err:" + err.Error()
+					return
+				}
+				departmentAndSeller2.ChildrenList = departmentAndSellerList3
+				for _, departmentAndSeller3 := range departmentAndSellerList3 {
+					if departmentAndSeller3.SysDepartmentId == 0 {
+						continue
+					}
+					departmentAndSellerList4, err := services.GetSysDepartmentAndSellerById(departmentAndSeller3.SysDepartmentId, enabled)
+					if err != nil {
+						br.Msg = "获取部门失败"
+						br.ErrMsg = "获取部门失败,系统异常,Err:" + err.Error()
+						return
+					}
+					departmentAndSeller3.ChildrenList = departmentAndSellerList4
+				}
+			}
+		}
+
+		item1 := response.DepartmentSellers{
+			SysDepartmentId:   dep.SysDepartmentId,
+			SysDepartmentName: dep.SysDepartmentName,
+			ChildrenList:      departmentAndSellerList1,
+		}
+		list = append(list, item1)
+	}
+
+	br.Msg = "获取成功"
+	br.Success = true
+	br.Ret = 200
+	br.Data = response.DepartmentGroupSellersResp{
+		List: list,
+	}
+
+}

+ 1 - 21
controllers/user.go

@@ -728,34 +728,14 @@ func (this *UserController) ChangeList() {
 		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()
+	userRcord, err := models.GetUserChangeRecordList()
 	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 = "查询成功"

+ 13 - 0
models/response/seller.go

@@ -0,0 +1,13 @@
+package response
+
+type DepartmentSellers struct {
+	SysUserId         int                 `description:"系统用户id"`
+	SysRealName       string              `description:"用户真实名称"`
+	SysDepartmentId   int                 `description:"系统部门id"`
+	SysDepartmentName string              `description:"部门名称"`
+	ChildrenList      []DepartmentSellers `description:"销售列表"`
+}
+
+type DepartmentGroupSellersResp struct {
+	List []DepartmentSellers
+}

+ 2 - 2
models/response/user.go

@@ -16,8 +16,8 @@ type UserCheckResp struct {
 }
 
 type UserChangeRecordResp struct {
-	List   []*models.UserChangeRecord
-	Paging *paging.PagingItem `description:"分页数据"`
+	List []*models.UserChangeRecord
+	// Paging *paging.PagingItem `description:"分页数据"`
 }
 
 type UserDetailResp struct {

+ 7 - 21
models/sys_user.go

@@ -88,27 +88,6 @@ func SaveSysUser(sysUser *SysUser, sysDepartmendPathIds []int) (err error) {
 	return
 }
 
-// func SaveSysUser(sysUser *SysUser, sysDepartmendPathIds []int) (err error) {
-// 	o := orm.NewOrmUsingDB("master")
-// 	err = o.DoTx(func(ctx context.Context, txOrm orm.TxOrmer) error {
-// 		insertId, e := txOrm.InsertOrUpdate(sysUser)
-// 		if e != nil {
-// 			return e
-// 		}
-// 		userDepMapping := &SysUserDepartmentMapping{}
-// 		userDepMapping.SysUserId = int(insertId)
-// 		userDepMapping.SysDepartmentId1 = sysDepartmendPathIds[0]
-// 		userDepMapping.SysDepartmentId2 = sysDepartmendPathIds[1]
-// 		userDepMapping.SysDepartmentId3 = sysDepartmendPathIds[2]
-// 		_, e = txOrm.InsertOrUpdate(userDepMapping)
-// 		if e != nil {
-// 			return e
-// 		}
-// 		return nil
-// 	})
-// 	return
-// }
-
 func GetSysUserBySysUserName(sysUserName string) (item *SysUser, err error) {
 	sql := `SELECT * FROM sys_user WHERE sys_user_name=?`
 	o := orm.NewOrmUsingDB("master")
@@ -116,6 +95,13 @@ func GetSysUserBySysUserName(sysUserName string) (item *SysUser, err error) {
 	return
 }
 
+func GetSysUserByDepartmentId(sysDepartmentId int, enabled bool) (items []*SysUser, err error) {
+	sql := `SELECT * FROM sys_user WHERE sys_department_id=? AND is_enabled=?`
+	o := orm.NewOrmUsingDB("master")
+	_, err = o.Raw(sql, sysDepartmentId, enabled).QueryRows(&items)
+	return
+}
+
 func GetSysUserById(sysUserId int) (item *SysUser, err error) {
 	sql := `SELECT * FROM sys_user WHERE sys_user_id=?`
 	o := orm.NewOrmUsingDB("master")

+ 3 - 3
models/user_change_record.go

@@ -19,10 +19,10 @@ func (u *UserChangeRecord) Insert() (err error) {
 	return
 }
 
-func GetUserChangeRecordList(startSize, pageSize int) (items []*UserChangeRecord, err error) {
-	sql := `SELECT * FROM user_change_record ORDER BY create_time DESC LIMIT ?,?`
+func GetUserChangeRecordList() (items []*UserChangeRecord, err error) {
+	sql := `SELECT * FROM user_change_record ORDER BY create_time DESC `
 	o := orm.NewOrmUsingDB("master")
-	_, err = o.Raw(sql, startSize, pageSize).QueryRows(&items)
+	_, err = o.Raw(sql).QueryRows(&items)
 	return
 }
 

+ 9 - 0
routers/commentsRouter.go

@@ -16,6 +16,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_mini_crm/controllers:SellerController"] = append(beego.GlobalControllerRouter["eta/eta_mini_crm/controllers:SellerController"],
+        beego.ControllerComments{
+            Method: "List",
+            Router: `/list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_mini_crm/controllers:SysDepartmentController"] = append(beego.GlobalControllerRouter["eta/eta_mini_crm/controllers:SysDepartmentController"],
         beego.ControllerComments{
             Method: "Add",

+ 5 - 0
routers/router.go

@@ -47,6 +47,11 @@ func init() {
 				&controllers.SysMessageReportController{},
 			),
 		),
+		beego.NSNamespace("/seller",
+			beego.NSInclude(
+				&controllers.SellerController{},
+			),
+		),
 	)
 	beego.AddNamespace(ns)
 }

+ 35 - 0
services/sys_department.go

@@ -2,6 +2,7 @@ package services
 
 import (
 	"eta/eta_mini_crm/models"
+	"eta/eta_mini_crm/models/response"
 	"strconv"
 	"strings"
 )
@@ -25,18 +26,22 @@ func GetSysDepartmentPathById(sysDepartmentId int) (path string, err error) {
 	return
 }
 
+// GetSysDepartmentList 获得部门的层级列表
 func GetSysDepartmentList() ([]*models.SysDepartmentList, error) {
+	// 获取第一层级的部门
 	departmentList, err := models.GetSysDepartmentListByLevel(1)
 	if err != nil {
 		return nil, err
 	}
 	for _, dep := range departmentList {
+		// 第二层级
 		childDepartmentList, err := models.GetChildSysDepartmentListById(dep.SysDepartmentId)
 		if err != nil {
 			return nil, err
 		}
 		dep.Child = childDepartmentList
 		for _, cdep := range childDepartmentList {
+			// 第三层级
 			subDepartmentList, err := models.GetChildSysDepartmentListById(cdep.SysDepartmentId)
 			if err != nil {
 				return nil, err
@@ -47,12 +52,14 @@ func GetSysDepartmentList() ([]*models.SysDepartmentList, error) {
 	return departmentList, nil
 }
 
+// DeleteSysDepartmentById 根据部门id去删除部门下的所有子目录,并清除用户的关联信息
 func DeleteSysDepartmentById(sysDepartmentId, level int) (err error) {
 	sysDepartmentIds := make([]string, 0)
 	sysDepartmentIds = append(sysDepartmentIds, strconv.Itoa(sysDepartmentId))
 	var curIds = sysDepartmentIds
 	var curStringIds string
 	for i := level; i < 3; i++ {
+		// 从当前层部门依次向下遍历子部门
 		curStringIds = strings.Join(curIds, ",")
 		sysDepartments, er := models.GetChildSysDepartmentListByIds(curStringIds)
 
@@ -69,6 +76,7 @@ func DeleteSysDepartmentById(sysDepartmentId, level int) (err error) {
 	return
 }
 
+// GetSysDepartmentPathIdsById 根据当前部门id获取,部门层级列表pathIds [3]int,0索引表示1级部门id,1表示2级部门id...
 func GetSysDepartmentPathIdsById(sysDepartmentId int) (pathIds []int, err error) {
 	sysDepartment, err := models.GetSysDepartmentById(sysDepartmentId)
 	if err != nil {
@@ -88,3 +96,30 @@ func GetSysDepartmentPathIdsById(sysDepartmentId int) (pathIds []int, err error)
 	}
 	return
 }
+
+// GetSysDepartmentAndSellerById 根据当前部门id,获取部门下的子目录以及销售(系统用户)
+func GetSysDepartmentAndSellerById(sysDepartmentId int, enabled bool) (items []response.DepartmentSellers, err error) {
+	depList, err := models.GetChildSysDepartmentListById(sysDepartmentId)
+	if err != nil {
+		return
+	}
+	for _, dep := range depList {
+		depItem := response.DepartmentSellers{
+			SysDepartmentId:   dep.SysDepartmentId,
+			SysDepartmentName: dep.SysDepartmentName,
+		}
+		items = append(items, depItem)
+	}
+	userList, err := models.GetSysUserByDepartmentId(sysDepartmentId, enabled)
+	if err != nil {
+		return
+	}
+	for _, user := range userList {
+		userItem := response.DepartmentSellers{
+			SysUserId:   user.SysUserId,
+			SysRealName: user.SysRealName,
+		}
+		items = append(items, userItem)
+	}
+	return
+}