admin.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. package dispatch
  2. import (
  3. "strings"
  4. "zhiyuan/pkg/app"
  5. "zhiyuan/pkg/config"
  6. "zhiyuan/pkg/utils"
  7. adminServices "zhiyuan/services/admin"
  8. "zhiyuan/services/dept"
  9. "zhiyuan/services/dispatch/admin"
  10. "zhiyuan/services/form"
  11. "zhiyuan/services/role"
  12. "github.com/gin-gonic/gin"
  13. )
  14. func Login(c *gin.Context) {
  15. var form form.WorkLogin
  16. if app.Bind(c, &form) != nil {
  17. return
  18. }
  19. token, err := admin.Login(form)
  20. if err != nil {
  21. app.Error(c, err.Error())
  22. return
  23. }
  24. app.Success(c, map[string]string{
  25. "token": token,
  26. })
  27. }
  28. func Logout(c *gin.Context) {
  29. err := admin.Logout(c.GetInt("adminID"))
  30. if err != nil {
  31. app.ErrorMsg(c, err.Error(), nil)
  32. return
  33. }
  34. app.Success(c, nil)
  35. }
  36. func Info(c *gin.Context) {
  37. type SettingInfo struct {
  38. ImgHost string `json:"img_host"`
  39. }
  40. type AdminInfo struct {
  41. ID int `json:"id"`
  42. UserName string `json:"username"`
  43. Phone string `json:"phone"`
  44. Headimgurl string `json:"headimgurl"`
  45. Nickname string `json:"nickname"`
  46. RoleIds string `json:"role_ids"`
  47. RoleName string `json:"role_name"`
  48. DeptId int `json:"dept_id"`
  49. DeptName string `json:"dept_name"`
  50. Auths []string `json:"auths"`
  51. Setting SettingInfo `json:"setting"`
  52. }
  53. var adminInfo *AdminInfo
  54. _, err := adminServices.GetInfoByID(c.GetInt("adminID"), nil, &adminInfo)
  55. if err != nil {
  56. app.ErrorMsg(c, err.Error(), nil)
  57. return
  58. }
  59. roleListMap := make(map[int]string)
  60. if roleList, err := role.GetList(nil, []string{"id, name"}, app.Page{}, nil); err == nil {
  61. for _, v := range roleList {
  62. roleListMap[v.ID] = v.Name
  63. }
  64. }
  65. roleNames := ""
  66. roleSlice := strings.Split(adminInfo.RoleIds, ",")
  67. for _, vv := range roleSlice {
  68. roleNames += "," + roleListMap[utils.ToInt(vv)]
  69. }
  70. adminInfo.RoleName = strings.TrimLeft(roleNames, ",")
  71. deptInfo, _ := dept.GetInfoByID(adminInfo.DeptId)
  72. if deptInfo != nil {
  73. adminInfo.DeptName = deptInfo.Name
  74. }
  75. adminInfo.Auths, err = adminServices.GetAuth(adminInfo.ID)
  76. if err != nil {
  77. app.ErrorMsg(c, err.Error(), nil)
  78. return
  79. }
  80. adminInfo.Setting = SettingInfo{
  81. ImgHost: config.Cfg.App.ImgHost,
  82. }
  83. app.Success(c, adminInfo)
  84. }
  85. func UnBindWeixin(c *gin.Context) {
  86. if err := admin.UnBindWeixin(c.GetInt("adminID")); err != nil {
  87. app.ErrorMsg(c, err.Error(), nil)
  88. return
  89. }
  90. app.Success(c, nil)
  91. }
  92. func Password(c *gin.Context) {
  93. var form form.Password
  94. if app.Bind(c, &form) != nil {
  95. return
  96. }
  97. if err := admin.Password(c.GetInt("adminID"), form); err != nil {
  98. app.ErrorMsg(c, err.Error(), nil)
  99. return
  100. }
  101. app.Success(c, nil)
  102. }