role_menu.go 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package handlers
  2. import (
  3. "net/http"
  4. "easydo-echo_win7/models"
  5. "easydo-echo_win7/services"
  6. "easydo-echo_win7/utils"
  7. "easydo-echo_win7/middleware"
  8. "github.com/labstack/echo/v4"
  9. )
  10. func Add_role_menu_to_routes(e *echo.Echo) {
  11. group := e.Group("/sysRolesMenus")
  12. group.Use(middleware.AuthMiddleware)
  13. group.POST("/getList", rolesMenusGetList)
  14. group.POST("/batchSave", rolesMenusBatchSave)
  15. }
  16. func rolesMenusGetList(c echo.Context) error {
  17. var paramMap map[string]interface{}
  18. if err := c.Bind(&paramMap); err != nil {
  19. return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("参数解析失败", err.Error()))
  20. }
  21. result, err := services.JdbcClient.GetJdbcList(paramMap, models.SysRolesMenus{})
  22. if err != nil {
  23. utils.PrintSqlErr(err)
  24. return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
  25. }
  26. list := utils.ConvertInterface[[]models.SysRolesMenus](result)
  27. if len(list) == 0 {
  28. return c.JSON(http.StatusOK, []string{})
  29. }
  30. return c.JSON(http.StatusOK, list)
  31. }
  32. func rolesMenusBatchSave(c echo.Context) error {
  33. tx, _ := services.MYSQL_DB.Beginx()
  34. role_menu := new(models.SysRolesMenus)
  35. if err := c.Bind(role_menu); err != nil {
  36. return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("参数解析失败", err.Error()))
  37. }
  38. err := services.JdbcClient.JdbcRemove(role_menu, tx)
  39. if err != nil {
  40. utils.PrintSqlErr(err)
  41. tx.Rollback()
  42. return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
  43. }
  44. menu_id_list := *role_menu.MenuIdList
  45. for _, menu_id := range menu_id_list {
  46. role_menu_c := new(models.SysRolesMenus)
  47. role_menu_c.RoleID = role_menu.RoleID
  48. role_menu_c.MenuID = &menu_id
  49. err = services.JdbcClient.JdbcInsert(role_menu_c, tx)
  50. if err != nil {
  51. utils.PrintSqlErr(err)
  52. tx.Rollback()
  53. return c.JSON(http.StatusInternalServerError, utils.ErrorResponse("系统错误", ""))
  54. }
  55. }
  56. tx.Commit()
  57. return c.JSON(http.StatusOK, role_menu)
  58. }