servicer.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package servicer
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "strings"
  5. "zhiyuan/pkg/app"
  6. "zhiyuan/pkg/config"
  7. "zhiyuan/pkg/utils"
  8. "zhiyuan/services/admin"
  9. "zhiyuan/services/aftersale/servicer"
  10. "zhiyuan/services/form"
  11. "zhiyuan/services/role"
  12. )
  13. func Login(c *gin.Context) {
  14. var form form.AdminLogin
  15. if app.Bind(c, &form) != nil {
  16. return
  17. }
  18. token, err := servicer.Login(form.Phone, form.Password)
  19. if err != nil {
  20. app.ErrorMsg(c, err.Error(), nil)
  21. return
  22. }
  23. app.Success(c, map[string]string{
  24. "token": token,
  25. })
  26. }
  27. func Info(c *gin.Context) {
  28. type SettingInfo struct {
  29. ImgHost string `json:"img_host"`
  30. PageSize int `json:"page_size"`
  31. }
  32. type AdminInfo struct {
  33. ID int `json:"id"`
  34. UserName string `json:"username"`
  35. Phone string `json:"phone"`
  36. RoleIds string `json:"role_ids"`
  37. RoleName string `json:"role_name"`
  38. Setting SettingInfo `json:"setting"`
  39. }
  40. var adminInfo AdminInfo
  41. _, err := admin.GetInfoByID(c.GetInt("adminID"), []string{"id", "username", "phone", "role_ids"}, &adminInfo)
  42. if err != nil {
  43. app.ErrorMsg(c, err.Error(), nil)
  44. return
  45. }
  46. roleListMap := make(map[int]string)
  47. if roleList, err := role.GetList(nil, []string{"id, name"}, app.Page{}, nil); err == nil {
  48. for _, v := range roleList {
  49. roleListMap[v.ID] = v.Name
  50. }
  51. }
  52. roleNames := ""
  53. roleSlice := strings.Split(adminInfo.RoleIds, ",")
  54. for _, vv := range roleSlice {
  55. roleNames += "," + roleListMap[utils.ToInt(vv)]
  56. }
  57. adminInfo.RoleName = strings.TrimLeft(roleNames, ",")
  58. adminInfo.Setting = SettingInfo{
  59. ImgHost: config.Cfg.App.ImgHost,
  60. PageSize: config.Cfg.App.PageLimitMin,
  61. }
  62. app.Success(c, adminInfo)
  63. }
  64. func Logout(c *gin.Context) {
  65. if err := servicer.Logout(c.GetInt("adminID")); err != nil {
  66. app.ErrorMsg(c, err.Error(), nil)
  67. return
  68. }
  69. app.Success(c, nil)
  70. }
  71. func Password(c *gin.Context) {
  72. var form form.Password
  73. if app.Bind(c, &form) != nil {
  74. return
  75. }
  76. if err := servicer.Password(c.GetInt("adminID"), form); err != nil {
  77. app.ErrorMsg(c, err.Error(), nil)
  78. return
  79. }
  80. app.Success(c, nil)
  81. }