admin.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package material
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "zhiyuan/pkg/app"
  5. "zhiyuan/pkg/config"
  6. "zhiyuan/services/admin"
  7. "zhiyuan/services/form"
  8. "zhiyuan/services/material"
  9. )
  10. func Login(c *gin.Context) {
  11. var form form.AdminLogin
  12. if app.Bind(c, &form) != nil {
  13. return
  14. }
  15. token, err := material.Login(form.Phone, form.Password)
  16. if err != nil {
  17. app.ErrorMsg(c, err.Error(), nil)
  18. return
  19. }
  20. app.Success(c, map[string]string{
  21. "token": token,
  22. })
  23. }
  24. func Info(c *gin.Context) {
  25. type SettingInfo struct {
  26. ImgHost string `json:"img_host"`
  27. PageSize int `json:"page_size"`
  28. }
  29. type AdminInfo struct {
  30. ID int `json:"id"`
  31. UserName string `json:"username"`
  32. Phone string `json:"phone"`
  33. Setting SettingInfo `json:"setting"`
  34. }
  35. var adminInfo AdminInfo
  36. _, err := admin.GetInfoByID(c.GetInt("adminID"), []string{"id", "username", "phone"}, &adminInfo)
  37. if err != nil {
  38. app.ErrorMsg(c, err.Error(), nil)
  39. return
  40. }
  41. adminInfo.Setting = SettingInfo{
  42. ImgHost: config.Cfg.App.ImgHost,
  43. PageSize: config.Cfg.App.PageLimitMin,
  44. }
  45. app.Success(c, adminInfo)
  46. }
  47. func Logout(c *gin.Context) {
  48. err := material.Logout(c.GetInt("adminID"))
  49. if err != nil {
  50. app.ErrorMsg(c, err.Error(), nil)
  51. return
  52. }
  53. app.Success(c, nil)
  54. }
  55. func Password(c *gin.Context) {
  56. var form form.Password
  57. if app.Bind(c, &form) != nil {
  58. return
  59. }
  60. if err := material.Password(c.GetInt("adminID"), form); err != nil {
  61. app.ErrorMsg(c, err.Error(), nil)
  62. return
  63. }
  64. app.Success(c, nil)
  65. }