package apis import ( "IotAdmin/app/system/models" "IotAdmin/common/permission" "IotAdmin/core/sdk/api" "IotAdmin/core/sdk/pkg" "IotAdmin/core/sdk/pkg/jwt-auth/user" _ "IotAdmin/core/sdk/pkg/response" "github.com/gin-gonic/gin" "github.com/gin-gonic/gin/binding" "IotAdmin/app/system/service" "IotAdmin/app/system/service/dto" ) type SysOrgApi struct { api.Api } // GetPage // @Summary 分页部门列表数据 // @Description 分页列表 // @Tags 部门 // @Param orgName query string false "orgName" // @Param orgId query string false "orgId" // @Param position query string false "position" // @Success 200 {object} response.Response "{"code": 200, "data": [...]}" // @Router /api/sys-org [get] // @Security Bearer func (e SysOrgApi) GetPage(c *gin.Context) { s := service.SysOrgService{} req := dto.SysOrgGetPageReq{} err := e.MakeContext(c). MakeOrm(). Bind(&req). MakeService(&s.Service). Errors if err != nil { e.Logger.Error(err) e.Error(500, err, err.Error()) return } p := permission.GetPermissionFromContext(c) list := make([]models.SysOrg, 0) list, err = s.SetOrgPage(&req, p) if err != nil { e.Error(500, err, "查询失败") return } e.OK(list, "查询成功") } // Get // @Summary 获取部门数据 // @Description 获取JSON // @Tags 部门 // @Param orgId path string false "orgId" // @Success 200 {object} response.Response "{"code": 200, "data": [...]}" // @Router /api/sys-org/{id} [get] // @Security Bearer func (e SysOrgApi) Get(c *gin.Context) { s := service.SysOrgService{} req := dto.SysOrgGetReq{} err := e.MakeContext(c). MakeOrm(). Bind(&req, binding.JSON, nil). MakeService(&s.Service). Errors if err != nil { e.Logger.Error(err) e.Error(500, err, err.Error()) return } var object models.SysOrg err = s.Get(&req, &object) if err != nil { e.Error(500, err, "查询失败") return } e.OK(object, "查询成功") } // Insert 添加部门 // @Summary 添加部门 // @Description 获取JSON // @Tags 部门 // @Accept application/json // @Product application/json // @Param data body dto.SysOrgInsertReq true "data" // @Success 200 {string} string "{"code": 200, "message": "添加成功"}" // @Success 200 {string} string "{"code": -1, "message": "添加失败"}" // @Router /api/sys-org [post] // @Security Bearer func (e SysOrgApi) Insert(c *gin.Context) { s := service.SysOrgService{} req := dto.SysOrgInsertReq{} err := e.MakeContext(c). MakeOrm(). Bind(&req, binding.JSON). MakeService(&s.Service). Errors if err != nil { e.Logger.Error(err) e.Error(500, err, err.Error()) return } // 设置创建人 req.SetCreateBy(user.GetUserId(c)) err = s.Insert(&req) if err != nil { e.Error(500, err, "创建失败") return } e.OK(req.GetId(), "创建成功") } // Update // @Summary 修改部门 // @Description 获取JSON // @Tags 部门 // @Accept application/json // @Product application/json // @Param id path int true "id" // @Param data body dto.SysOrgUpdateReq true "body" // @Success 200 {string} string "{"code": 200, "message": "添加成功"}" // @Success 200 {string} string "{"code": -1, "message": "添加失败"}" // @Router /api/sys-org/{id} [put] // @Security Bearer func (e SysOrgApi) Update(c *gin.Context) { s := service.SysOrgService{} req := dto.SysOrgUpdateReq{} err := e.MakeContext(c). MakeOrm(). Bind(&req). MakeService(&s.Service). Errors if err != nil { e.Logger.Error(err) e.Error(500, err, err.Error()) return } req.SetUpdateBy(user.GetUserId(c)) err = s.Update(&req) if err != nil { e.Error(500, err, err.Error()) return } e.OK(req.GetId(), "更新成功") } // Delete // @Summary 删除部门 // @Description 删除数据 // @Tags 部门 // @Param data body dto.SysOrgDeleteReq true "body" // @Success 200 {string} string "{"code": 200, "message": "删除成功"}" // @Success 200 {string} string "{"code": -1, "message": "删除失败"}" // @Router /api/sys-org [delete] // @Security Bearer func (e SysOrgApi) Delete(c *gin.Context) { s := service.SysOrgService{} req := dto.SysOrgDeleteReq{} err := e.MakeContext(c). MakeOrm(). Bind(&req, binding.JSON, nil). MakeService(&s.Service). Errors if err != nil { e.Logger.Error(err) e.Error(500, err, err.Error()) return } err = s.Remove(&req) if err != nil { e.Error(500, err, "删除失败") return } e.OK(req.GetId(), "删除成功") } // Get2Tree 部门树 // @Summary 部门树 // @Description 左侧部门树 // @Tags 系統接口/部门 // @Param data body dto.SysOrgDeleteReq true "body" // @Success 200 {string} string "{"code": 200, "data": []}" // @Router /api/sys/org-tree/{id} [get] // @Security Bearer func (e SysOrgApi) Get2Tree(c *gin.Context) { s := service.SysOrgService{} req := dto.SysOrgGetReq{} err := e.MakeContext(c).MakeOrm().Bind(&req).MakeService(&s.Service).Errors if err != nil { e.Logger.Error(err) e.Error(500, err, err.Error()) return } p := permission.GetPermissionFromContext(c) list := make([]dto.OrgLabel, 0) list, err = s.SetOrgTree(&req, p) if err != nil { e.Error(500, err, "查询失败") return } e.OK(list, "") } // GetOrgTreeRoleSelect 根据角色查询部门树 TODO: 此接口需要调整不应该将list和选中放在一起 // @Summary 部门下拉树 // @Description 根据角色查询部门树 // @Tags 系統接口/部门 // @Param data body dto.SysOrgDeleteReq true "body" // @Success 200 {string} string "{"code": 200, "data": []}" // @Router /api/sys/role-org-tree-select/{roleId} [get] // @Security Bearer func (e SysOrgApi) GetOrgTreeRoleSelect(c *gin.Context) { s := service.SysOrgService{} err := e.MakeContext(c). MakeOrm(). MakeService(&s.Service). Errors if err != nil { e.Logger.Error(err) e.Error(500, err, err.Error()) return } //数据权限检查 p := permission.GetPermissionFromContext(c) id, err := pkg.StringToInt(c.Param("roleId")) result, err := s.SetOrgLabel(p) if err != nil { e.Error(500, err, err.Error()) return } menuIds := make([]int, 0) if id != 0 { menuIds, err = s.GetWithRoleId(id) if err != nil { e.Error(500, err, err.Error()) return } } e.OK(gin.H{ "orgs": result, "checkedKeys": menuIds, }, "") }