沈阳玫苑物业管理后端
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.

201 lines
5.8 KiB

  1. package controllers
  2. import (
  3. "lapp_-wy/utils"
  4. "lapp_-wy/web/middleware/jwts"
  5. "lapp_-wy/web/models"
  6. "lapp_-wy/web/supports"
  7. "github.com/kataras/iris"
  8. "log"
  9. "time"
  10. )
  11. // @Summary 角色列表数据
  12. // @Description Get JSON
  13. // @Tags 角色/Role
  14. // @Param roleName query string false "roleName"
  15. // @Param status query string false "status"
  16. // @Param roleKey query string false "roleKey"
  17. // @Param pageSize query int false "页条数"
  18. // @Param pageIndex query int false "页码"
  19. // @Success 200 {object} app.Response "{"code": 200, "data": [...]}"
  20. // @Router /api/v1/rolelist [get]
  21. // @Security
  22. func GetRoleList(ctx iris.Context) {
  23. var data models.Roletab
  24. var err error
  25. var pageSize = 10
  26. var pageIndex = 1
  27. if size := ctx.URLParam("pageSize"); size != "" {
  28. pageSize = utils.ValueToInt(size,0)
  29. }
  30. if index := ctx.URLParam("pageIndex"); index != "" {
  31. pageIndex = utils.ValueToInt(index,0)
  32. }
  33. data.Rolename = ctx.URLParam("rolename")
  34. data.Status = ctx.URLParam("status")
  35. result, count, err := data.GetPage(pageSize, pageIndex)
  36. if err != nil{
  37. supports.Error(ctx, iris.StatusBadRequest, "抱歉未找到相关信息", nil)
  38. return
  39. }
  40. res := make(map[string]interface{})
  41. res["data"] = result
  42. res["count"] = count
  43. res["pageIndex"] = pageIndex
  44. res["pageSize"] = pageSize
  45. supports.Ok(ctx, supports.OptionSuccess, res)
  46. }
  47. // @Summary 获取Role数据
  48. // @Description 获取JSON
  49. // @Tags 角色/Role
  50. // @Param roleId path string false "roleId"
  51. // @Success 200 {string} string "{"code": 200, "data": [...]}"
  52. // @Success 200 {string} string "{"code": -1, "message": "抱歉未找到相关信息"}"
  53. // @Router /api/v1/role [get]
  54. // @Security Bearer
  55. func GetRole(ctx iris.Context) {
  56. var Role models.Roletab
  57. roleId, _ := ctx.URLParamInt("roleId")
  58. Role.RoleId = roleId
  59. result, err := Role.Get()
  60. if err !=nil{
  61. supports.Error(ctx, iris.StatusBadRequest, "抱歉未找到相关信息", nil)
  62. return
  63. }
  64. result.Clipped()
  65. var menuIds []int
  66. menuIds, err = Role.GetRoleMeunId()
  67. if err != nil{
  68. supports.Error(ctx, iris.StatusBadRequest, "抱歉未找到相关信息", nil)
  69. return
  70. }
  71. result.MenuIds = menuIds
  72. supports.Ok(ctx, supports.OptionSuccess, result)
  73. }
  74. // @Summary 创建角色
  75. // @Description 获取JSON
  76. // @Tags 角色/Role
  77. // @Accept application/json
  78. // @Product application/json
  79. // @Param data body models.SysRole true "data"
  80. // @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
  81. // @Success 200 {string} string "{"code": -1, "message": "添加失败"}"
  82. // @Router /api/v1/role [post]
  83. func InsertRole(ctx iris.Context) {
  84. user, ok := jwts.ParseToken(ctx)
  85. utils.TrimStruct(user,*user)
  86. if !ok {
  87. supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
  88. return
  89. }
  90. data := new(models.Roletab)
  91. data.Lastmodify = user.Userid
  92. data.Createtime = utils.TimeFormat(time.Now(),"yyyyMMddHHmmss")
  93. data.Lastmodifytime = utils.TimeFormat(time.Now(),"yyyyMMddHHmmss")
  94. if err := ctx.ReadJSON(data); err != nil {
  95. supports.Error(ctx, iris.StatusBadRequest, "json解析错误", nil)
  96. return
  97. }
  98. id, err := data.Insert()
  99. data.RoleId = id
  100. if err != nil{
  101. supports.Error(ctx, iris.StatusBadRequest,"角色标识已经存在!", nil)
  102. return
  103. }
  104. var t models.RoleMenu
  105. _, err = t.Insert(id, data.MenuIds)
  106. if err != nil{
  107. supports.Error(ctx, iris.StatusBadRequest, "插入失败2", nil)
  108. return
  109. }
  110. supports.Ok(ctx, supports.OptionSuccess, data)
  111. }
  112. // @Summary 修改用户角色
  113. // @Description 获取JSON
  114. // @Tags 角色/Role
  115. // @Accept application/json
  116. // @Product application/json
  117. // @Param data body models.SysRole true "body"
  118. // @Success 200 {string} string "{"code": 200, "message": "修改成功"}"
  119. // @Success 200 {string} string "{"code": -1, "message": "修改失败"}"
  120. // @Router /api/v1/role [put]
  121. func UpdateRole(ctx iris.Context) {
  122. user, ok := jwts.ParseToken(ctx)
  123. utils.TrimStruct(user,*user)
  124. if !ok {
  125. supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
  126. return
  127. }
  128. data := new(models.Roletab)
  129. data.Lastmodify = user.Userid
  130. if err := ctx.ReadJSON(data); err != nil {
  131. supports.Error(ctx, iris.StatusBadRequest, "抱歉未找到相关信息", nil)
  132. return
  133. }
  134. result, err := data.Update(data.RoleId)
  135. if err != nil{
  136. log.Println("角色更新失败!")
  137. supports.Error(ctx, iris.StatusBadRequest, "抱歉未找到相关信息", nil)
  138. return
  139. }
  140. var t models.RoleMenu
  141. _, err = t.DeleteRoleMenu(data.RoleId)
  142. if err != nil{
  143. supports.Error(ctx, iris.StatusBadRequest, "添加失败1", nil)
  144. return
  145. }
  146. if !utils.ValueIsEmpty(data.MenuIds){
  147. _, err2 := t.Insert(data.RoleId, data.MenuIds)
  148. if err2 != nil{
  149. supports.Error(ctx, iris.StatusBadRequest, "添加失败2", nil)
  150. return
  151. }
  152. }
  153. supports.Ok(ctx, "修改成功", result)
  154. }
  155. // @Summary 删除用户角色
  156. // @Description 删除数据
  157. // @Tags 角色/Role
  158. // @Param roleId path int true "roleId"
  159. // @Success 200 {string} string "{"code": 200, "message": "删除成功"}"
  160. // @Success 200 {string} string "{"code": -1, "message": "删除失败"}"
  161. // @Router /api/v1/role/{roleId} [delete]
  162. func DeleteRole(ctx iris.Context) {
  163. user, ok := jwts.ParseToken(ctx)
  164. utils.TrimStruct(user,*user)
  165. if !ok {
  166. supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
  167. return
  168. }
  169. Role:=new(models.Roletab)
  170. Role.Lastmodify = user.Userid
  171. roleId := ctx.Params().Get("roleId")
  172. IDS := utils.IdsStrToIdsIntGroup(roleId)
  173. //查询rolekey集合
  174. rolekeys ,err :=Role.GetRoles(IDS)
  175. if err != nil{
  176. supports.Error(ctx, iris.StatusBadRequest, "roleIds不存在", nil)
  177. return
  178. }
  179. _, err = Role.BatchDelete(IDS)
  180. if err != nil{
  181. supports.Error(ctx, iris.StatusBadRequest, "删除失败1", nil)
  182. return
  183. }
  184. var t models.RoleMenu
  185. _, err = t.BatchDeleteRoleMenu(IDS,rolekeys)
  186. if err != nil{
  187. supports.Error(ctx, iris.StatusBadRequest, "删除失败2", nil)
  188. return
  189. }
  190. supports.Ok(ctx, "删除成功", "")
  191. }