Răsfoiți Sursa

同步部门分组数据

xyxie 4 luni în urmă
părinte
comite
60cdfade0b

+ 87 - 0
controllers/system/sys_department.go

@@ -0,0 +1,87 @@
+package system
+
+import (
+	"encoding/json"
+	"eta/eta_forum_hub/controllers"
+	"eta/eta_forum_hub/models"
+	"eta/eta_forum_hub/models/system"
+	"eta/eta_forum_hub/services"
+)
+
+type SysDepartmentController struct {
+	controllers.BaseAuthController
+}
+
+// Save
+// @Title 新增或者编辑系统用户
+// @Description 新增系统用户接口
+// @Param	request	body system.SysuserAddReq true "type json string"
+// @Success 200 新增成功
+// @router /department/save [post]
+func (this *SysDepartmentController) Save() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	var req system.SysDepartmentAddReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	if req.DepartmentId == 0 {
+		br.Msg = "请输入部门序号"
+		br.IsSendEmail = false
+		return
+	}
+
+	err, isSendEmail := services.AddOrUpdateDepartment(&req)
+	if err != nil {
+		br.Msg = "新增或者更新用户失败"
+		br.ErrMsg = "新增或者更新用户失败, Err:" + err.Error()
+		br.IsSendEmail = isSendEmail
+		return
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "新增成功"
+}
+
+// Delete
+// @Title 删除系统用户
+// @Description 删除系统用户接口
+// @Param	request	body system.SysDepartmentDeleteReq true "type json string"
+// @Success 200 删除成功
+// @router /department/delete [post]
+func (this *SysDepartmentController) Delete() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	var req system.SysDepartmentDeleteReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	if req.DepartmentId == 0 {
+		br.Msg = "请选择部门"
+		return
+	}
+
+	err = system.DeleteSysDepartment(req.DepartmentId)
+	if err != nil {
+		br.Msg = "删除失败"
+		br.ErrMsg = "删除失败,Err:" + err.Error()
+		return
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "删除成功"
+}

+ 87 - 0
controllers/system/sys_group.go

@@ -0,0 +1,87 @@
+package system
+
+import (
+	"encoding/json"
+	"eta/eta_forum_hub/controllers"
+	"eta/eta_forum_hub/models"
+	"eta/eta_forum_hub/models/system"
+	"eta/eta_forum_hub/services"
+)
+
+type SysGroupController struct {
+	controllers.BaseAuthController
+}
+
+// Save
+// @Title 新增或者编辑系统用户
+// @Description 新增系统用户接口
+// @Param	request	body system.SysuserAddReq true "type json string"
+// @Success 200 新增成功
+// @router /group/save [post]
+func (this *SysGroupController) Save() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	var req system.SysGroupAddReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	if len(req.List) == 0 {
+		br.Msg = "请输入组合"
+		br.IsSendEmail = false
+		return
+	}
+
+	err, isSendEmail := services.AddOrUpdateGroup(&req)
+	if err != nil {
+		br.Msg = "新增或者更新用户失败"
+		br.ErrMsg = "新增或者更新用户失败, Err:" + err.Error()
+		br.IsSendEmail = isSendEmail
+		return
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "新增成功"
+}
+
+// Delete
+// @Title 删除系统用户
+// @Description 删除系统用户接口
+// @Param	request	body system.SysGroupDeleteReq true "type json string"
+// @Success 200 删除成功
+// @router /group/delete [post]
+func (this *SysGroupController) Delete() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	var req system.SysGroupDeleteReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	if req.GroupId == 0 {
+		br.Msg = "请选择分组"
+		return
+	}
+
+	err = system.DeleteSysGroup(req.GroupId)
+	if err != nil {
+		br.Msg = "删除失败"
+		br.ErrMsg = "删除失败,Err:" + err.Error()
+		return
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "删除成功"
+}

+ 4 - 4
controllers/system/sys_role.go

@@ -31,9 +31,9 @@ func (this *SysRoleController) Save() {
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
 		return
 	}
-	if req.RoleTypeCode == "" {
-		br.Msg = "请输入角色编码"
-		br.IsSendEmail = false
+
+	if req.RoleId == 0 {
+		br.Msg = "请选择角色"
 		return
 	}
 
@@ -70,7 +70,7 @@ func (this *SysRoleController) Delete() {
 		return
 	}
 	if req.RoleId == 0 {
-		br.Msg = "请选择用户"
+		br.Msg = "请选择角色"
 		return
 	}
 

+ 6 - 2
models/db.go

@@ -46,6 +46,10 @@ func initEdbData() {
 }
 
 func initSystem() {
-	orm.RegisterModel(new(system.Admin))
-	orm.RegisterModel(new(system.SysRole))
+	orm.RegisterModel(
+		new(system.Admin),
+		new(system.SysRole),
+		new(system.SysDepartment),
+		new(system.SysGroup),
+	)
 }

+ 104 - 0
models/system/sys_department.go

@@ -0,0 +1,104 @@
+package system
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+)
+
+type SysDepartmentAddReq struct {
+	DepartmentId   int    `description:"部门Id"`
+	DepartmentName string `description:"部门名称"`
+	Sort           int    `description:"排序"`
+	CreateTime     string `description:"创建时间"`
+}
+
+type SysDepartment struct {
+	DepartmentId   int    `orm:"column(department_id);pk" description:"部门Id"`
+	DepartmentName string `description:"部门名称"`
+	Sort           int    `description:"排序"`
+	CreateTime     string `description:"创建时间"`
+}
+
+func GetSysDepartmentCount(departmentName string) (count int, err error) {
+	sql := `SELECT COUNT(1) AS count FROM sys_department WHERE department_name=? `
+	o := orm.NewOrm()
+	err = o.Raw(sql, departmentName).QueryRow(&count)
+	return
+}
+
+func AddSysDepartment(item *SysDepartment) (lastId int64, err error) {
+	o := orm.NewOrm()
+	lastId, err = o.Insert(item)
+	return
+}
+
+type SysDepartmentEditReq struct {
+	DepartmentId   int    `description:"部门Id"`
+	DepartmentName string `description:"部门名称"`
+}
+
+func GetSysDepartmentById(departmentId int) (item *SysDepartment, err error) {
+	sql := `SELECT * FROM sys_department WHERE department_id=? `
+	o := orm.NewOrm()
+	err = o.Raw(sql, departmentId).QueryRow(&item)
+	return
+}
+
+func GetSysDepartmentByName(departmentName string) (item *SysDepartment, err error) {
+	sql := `SELECT * FROM sys_department WHERE department_name=? `
+	o := orm.NewOrm()
+	err = o.Raw(sql, departmentName).QueryRow(&item)
+	return
+}
+
+func ModifySysDepartment(departmentName string, departmentId int) (err error) {
+	o := orm.NewOrm()
+	to, err := o.Begin()
+	if err != nil {
+		return
+	}
+	defer func() {
+		if err != nil {
+			_ = to.Rollback()
+		} else {
+			_ = to.Commit()
+		}
+	}()
+	sql := `UPDATE sys_department SET department_name=? WHERE department_id=? `
+	_, err = to.Raw(sql, departmentName, departmentId).Exec()
+	if err != nil {
+		return
+	}
+	sql = `UPDATE admin SET department_name=? WHERE department_id=? `
+	_, err = to.Raw(sql, departmentName, departmentId).Exec()
+	return
+}
+
+type SysDepartmentDeleteReq struct {
+	DepartmentId int `description:"部门Id"`
+}
+
+func DeleteSysDepartment(departmentId int) (err error) {
+	sql := `DELETE FROM sys_department WHERE department_id=? `
+	o := orm.NewOrm()
+	_, err = o.Raw(sql, departmentId).Exec()
+	return
+}
+
+func GetSysDepartmentAll() (item []*SysDepartment, err error) {
+	sql := `SELECT * FROM sys_department ORDER BY sort ASC, department_id ASC `
+	o := orm.NewOrm()
+	_, err = o.Raw(sql).QueryRows(&item)
+	return
+}
+
+type DepartmentSort struct {
+	DepartmentId int
+	Sort         int
+}
+
+// Update 更新用户基础信息
+func (item *SysDepartment) Update(cols []string) (err error) {
+	o := orm.NewOrm()
+	_, err = o.Update(item, cols...)
+	return
+}

+ 181 - 0
models/system/sys_group.go

@@ -0,0 +1,181 @@
+package system
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type SysGroupAddReq struct {
+	List []*SysGroup
+}
+
+type SysGroup struct {
+	GroupId      int    `orm:"column(group_id);pk" description:"分组ID"`
+	DepartmentId int    `description:"部门Id"`
+	ParentId     int    `description:"父级Id"`
+	GroupName    string `description:"分组名称"`
+	Sort         int    `description:"排序"`
+	CreateTime   string `description:"创建时间"`
+}
+
+func GetSysGroupCount(departmentId int, groupName string) (count int, err error) {
+	sql := `SELECT COUNT(1) AS count FROM sys_group WHERE department_id=? AND group_name=? `
+	o := orm.NewOrm()
+	err = o.Raw(sql, departmentId, groupName).QueryRow(&count)
+	return
+}
+
+func AddSysGroup(item *SysGroup) (lastId int64, err error) {
+	o := orm.NewOrm()
+	lastId, err = o.Insert(item)
+	return
+}
+
+type SysGroupEditReq struct {
+	GroupId   int    `description:"分组ID"`
+	GroupName string `description:"分组名称"`
+}
+
+func GetSysGroupById(groupId int) (item *SysGroup, err error) {
+	sql := `SELECT * FROM sys_group WHERE group_id=? `
+	o := orm.NewOrm()
+	err = o.Raw(sql, groupId).QueryRow(&item)
+	return
+}
+
+func GetSysGroupByName(groupName string) (item *SysGroup, err error) {
+	sql := `SELECT * FROM sys_group WHERE group_name=? `
+	o := orm.NewOrm()
+	err = o.Raw(sql, groupName).QueryRow(&item)
+	return
+}
+
+func ModifySysGroup(groupName string, groupId int) (err error) {
+	o := orm.NewOrm()
+	to, err := o.Begin()
+	if err != nil {
+		return
+	}
+	defer func() {
+		if err != nil {
+			_ = to.Rollback()
+		} else {
+			_ = to.Commit()
+		}
+	}()
+	sql := `UPDATE sys_group SET group_name=? WHERE group_id=? `
+	_, err = to.Raw(sql, groupName, groupId).Exec()
+	sql = `UPDATE admin SET group_name=? WHERE group_id=? `
+	_, err = to.Raw(sql, groupName, groupId).Exec()
+	return
+}
+
+type SysGroupDeleteReq struct {
+	GroupId int `description:"分组ID"`
+}
+
+func DeleteSysGroup(groupId int) (err error) {
+	sql := `DELETE FROM sys_group WHERE group_id=? `
+	o := orm.NewOrm()
+	_, err = o.Raw(sql, groupId).Exec()
+	return
+}
+
+type SysFullGroup struct {
+	GroupId         int       `orm:"column(group_id);pk" description:"分组ID"`
+	DepartmentId    int       `description:"部门Id"`
+	ParentId        int       `description:"父级Id"`
+	GroupName       string    `description:"分组名称"`
+	ParentGroupName string    `description:"父级分组名称"`
+	DepartmentName  string    `description:"部门名称"`
+	CreateTime      time.Time `description:"创建时间"`
+}
+
+type SysGroupSortReq struct {
+	//ParentId      int   `description:"上级部门/分组ID"`
+	DepartmentIds []int `description:"移动后的一级ID排序"`
+	GroupIds      []int `description:"移动后的二级ID排序"`
+	TeamIds       []int `description:"移动后的三级ID排序"`
+}
+
+type GroupSort struct {
+	GroupId int
+	Sort    int
+}
+
+func MultiUpdateGroupSort(items []*GroupSort) (err error) {
+	if len(items) == 0 {
+		return
+	}
+	o := orm.NewOrm()
+	p, err := o.Raw("UPDATE sys_group SET sort = ? WHERE group_id = ?").Prepare()
+	if err != nil {
+		return
+	}
+	defer func() {
+		_ = p.Close()
+	}()
+	for _, v := range items {
+		_, err = p.Exec(v.Sort, v.GroupId)
+		if err != nil {
+			return
+		}
+	}
+	return
+}
+
+func GetGroupByDepartmentId(departmentId int) (list []*SysFullGroup, err error) {
+	sql := `SELECT
+				s.*, g.group_name AS parent_group_name,
+				d.department_name
+			FROM
+				sys_group s
+			LEFT JOIN sys_group g ON s.parent_id = g.group_id
+			LEFT JOIN sys_department d ON s.department_id = d.department_id
+			WHERE
+				s.department_id = ?
+			ORDER BY
+				s.sort ASC,
+				s.create_time ASC`
+	o := orm.NewOrm()
+	_, err = o.Raw(sql, departmentId).QueryRows(&list)
+	return
+}
+
+type RoadshowGroupResp struct {
+	List []RoadshowGroups
+}
+
+type RoadshowGroups struct {
+	GroupId   int                    `description:"分组ID"`
+	GroupName string                 `description:"分组名称"`
+	Child     []RoadshowGroupSellers `description:"销售"`
+}
+
+type RoadshowGroupSellers struct {
+	GroupId   int    `description:"大组ID"`
+	TeamId    int    `description:"小组ID"`
+	AdminId   int    `description:"销售ID"`
+	AdminName string `description:"销售名称"`
+}
+
+func GetAllSysGroupByGroupId(groupId int) (items []*SysGroup, err error) {
+	sql := `SELECT * FROM sys_group WHERE parent_id=? OR parent_id = ? ORDER BY sort ASC, create_time ASC`
+	o := orm.NewOrm()
+	_, err = o.Raw(sql, groupId, groupId).QueryRows(&items)
+	return
+}
+
+func GetParentIdFromGroup(gid int) (items *int, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT parent_id FROM sys_group WHERE group_id=? `
+	err = o.Raw(sql, gid).QueryRow(&items)
+	return
+}
+
+// Update 更新用户基础信息
+func (item *SysGroup) AddOrUpdate() (err error) {
+	o := orm.NewOrm()
+	_, err = o.InsertOrUpdate(item)
+	return
+}

+ 36 - 0
routers/commentsRouter.go

@@ -7,6 +7,42 @@ import (
 
 func init() {
 
+    beego.GlobalControllerRouter["eta/eta_forum_hub/controllers/system:SysDepartmentController"] = append(beego.GlobalControllerRouter["eta/eta_forum_hub/controllers/system:SysDepartmentController"],
+        beego.ControllerComments{
+            Method: "Delete",
+            Router: `/department/delete`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta/eta_forum_hub/controllers/system:SysDepartmentController"] = append(beego.GlobalControllerRouter["eta/eta_forum_hub/controllers/system:SysDepartmentController"],
+        beego.ControllerComments{
+            Method: "Save",
+            Router: `/department/save`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta/eta_forum_hub/controllers/system:SysGroupController"] = append(beego.GlobalControllerRouter["eta/eta_forum_hub/controllers/system:SysGroupController"],
+        beego.ControllerComments{
+            Method: "Delete",
+            Router: `/group/delete`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta/eta_forum_hub/controllers/system:SysGroupController"] = append(beego.GlobalControllerRouter["eta/eta_forum_hub/controllers/system:SysGroupController"],
+        beego.ControllerComments{
+            Method: "Save",
+            Router: `/group/save`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_forum_hub/controllers/system:SysRoleController"] = append(beego.GlobalControllerRouter["eta/eta_forum_hub/controllers/system:SysRoleController"],
         beego.ControllerComments{
             Method: "Delete",

+ 0 - 55
services/sys_role.go

@@ -1,55 +0,0 @@
-package services
-
-import (
-	"eta/eta_forum_hub/models/system"
-	"eta/eta_forum_hub/services/alarm_msg"
-	"eta/eta_forum_hub/utils"
-	"fmt"
-)
-
-// 新增或者更新角色
-func AddOrUpdateRole(req *system.AddRoleReq) (err error, isSendEmail bool) {
-	defer func() {
-		if err != nil {
-			utils.FileLog.Info("添加管理员账号失败, AddOrUpdateAdmin  Err: " + err.Error())
-			go alarm_msg.SendAlarmMsg("添加管理员账号失败, AddOrUpdateAdmin  Err: "+err.Error(), 3)
-		}
-	}()
-	isSendEmail = true
-	isAdd := true
-	roleInfo, err := system.GetSysRoleByRoleId(req.RoleId)
-	if err != nil {
-		if err.Error() != utils.ErrNoRow() {
-			err = fmt.Errorf("获取数据失败,%v", err)
-			return
-		}
-	}
-	if err == nil && roleInfo.RoleId > 0 {
-		isAdd = false
-	} else {
-		roleInfo = new(system.SysRole)
-	}
-	// 角色信息
-	roleInfo.RoleId = req.RoleId
-	roleInfo.RoleName = req.RoleName
-	roleInfo.RoleType = req.RoleType
-	roleInfo.RoleTypeCode = req.RoleTypeCode
-	roleInfo.RoleLevel = req.RoleLevel
-	roleInfo.ModifyTime = req.ModifyTime
-	roleInfo.CreateTime = req.CreateTime
-	if isAdd {
-		_, err = system.AddSysRole(roleInfo)
-		if err != nil {
-			err = fmt.Errorf("新增失败,Err:%s", err.Error())
-			return
-		}
-	} else {
-		err = roleInfo.Update([]string{})
-		if err != nil {
-			err = fmt.Errorf("更新失败,Err:%s", err.Error())
-			return
-		}
-	}
-
-	return
-}

+ 123 - 0
services/system.go

@@ -0,0 +1,123 @@
+package services
+
+import (
+	"eta/eta_forum_hub/models/system"
+	"eta/eta_forum_hub/services/alarm_msg"
+	"eta/eta_forum_hub/utils"
+	"fmt"
+)
+
+// 新增或者更新角色
+func AddOrUpdateRole(req *system.AddRoleReq) (err error, isSendEmail bool) {
+	defer func() {
+		if err != nil {
+			utils.FileLog.Info("新增或者更新角色, AddOrUpdateRole  Err: " + err.Error())
+			go alarm_msg.SendAlarmMsg("新增或者更新角色, AddOrUpdateRole  Err: "+err.Error(), 3)
+		}
+	}()
+	isSendEmail = true
+	isAdd := true
+	roleInfo, err := system.GetSysRoleByRoleId(req.RoleId)
+	if err != nil {
+		if err.Error() != utils.ErrNoRow() {
+			err = fmt.Errorf("获取数据失败,%v", err)
+			return
+		}
+	}
+	if err == nil && roleInfo.RoleId > 0 {
+		isAdd = false
+	} else {
+		roleInfo = new(system.SysRole)
+	}
+	// 角色信息
+	roleInfo.RoleId = req.RoleId
+	roleInfo.RoleName = req.RoleName
+	roleInfo.RoleType = req.RoleType
+	roleInfo.RoleTypeCode = req.RoleTypeCode
+	roleInfo.RoleLevel = req.RoleLevel
+	roleInfo.ModifyTime = req.ModifyTime
+	roleInfo.CreateTime = req.CreateTime
+	if isAdd {
+		_, err = system.AddSysRole(roleInfo)
+		if err != nil {
+			err = fmt.Errorf("新增失败,Err:%s", err.Error())
+			return
+		}
+	} else {
+		err = roleInfo.Update([]string{})
+		if err != nil {
+			err = fmt.Errorf("更新失败,Err:%s", err.Error())
+			return
+		}
+	}
+
+	return
+}
+
+// 新增或者更新部门
+func AddOrUpdateDepartment(req *system.SysDepartmentAddReq) (err error, isSendEmail bool) {
+	defer func() {
+		if err != nil {
+			utils.FileLog.Info("新增或者更新部门, AddOrUpdateDepartment  Err: " + err.Error())
+			go alarm_msg.SendAlarmMsg("新增或者更新部门, AddOrUpdateDepartment  Err: "+err.Error(), 3)
+		}
+	}()
+	isSendEmail = true
+	isAdd := true
+	info, err := system.GetSysDepartmentById(req.DepartmentId)
+	if err != nil {
+		if err.Error() != utils.ErrNoRow() {
+			err = fmt.Errorf("获取数据失败,%v", err)
+			return
+		}
+	}
+	if err == nil && info.DepartmentId > 0 {
+		isAdd = false
+	} else {
+		info = new(system.SysDepartment)
+	}
+	// 角色信息
+	info.DepartmentId = req.DepartmentId
+	info.DepartmentName = req.DepartmentName
+	info.Sort = req.Sort
+	info.CreateTime = req.CreateTime
+	if isAdd {
+		_, err = system.AddSysDepartment(info)
+		if err != nil {
+			err = fmt.Errorf("新增失败,Err:%s", err.Error())
+			return
+		}
+	} else {
+		err = info.Update([]string{})
+		if err != nil {
+			err = fmt.Errorf("更新失败,Err:%s", err.Error())
+			return
+		}
+	}
+
+	return
+}
+
+// 新增或者更新分组
+func AddOrUpdateGroup(req *system.SysGroupAddReq) (err error, isSendEmail bool) {
+	defer func() {
+		if err != nil {
+			utils.FileLog.Info("新增或者更新分组, AddOrUpdateGroup  Err: " + err.Error())
+			go alarm_msg.SendAlarmMsg("新增或者更新分组, AddOrUpdateGroup  Err: "+err.Error(), 3)
+		}
+	}()
+	isSendEmail = true
+	if len(req.List) == 0 {
+		return
+	}
+	for _, v := range req.List {
+		if v.DepartmentId == 0 {
+			continue
+		}
+		err = v.AddOrUpdate()
+		if err != nil {
+			return
+		}
+	}
+	return
+}