user.go 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package services
  2. import (
  3. "sparrow/pkg/generator"
  4. "sparrow/pkg/models"
  5. "sparrow/pkg/utils"
  6. "sparrow/services/knowoapi/model"
  7. )
  8. // UserService 用户业务接口
  9. type UserService interface {
  10. // 登陆
  11. Login(*models.LoginRequest) (bool, *models.User, error)
  12. // 注册
  13. Register(*models.Reqrequest) (*models.User, error)
  14. // 修改密码
  15. ModifyPassword(int, string, string) (bool, error)
  16. // check name exsits
  17. CheckUserName(string) (bool, error)
  18. // check phone number exsits
  19. CheckPhone(string) (bool, error)
  20. // check email exsits
  21. CheckEmail(string) (bool, error)
  22. }
  23. type userservice struct {
  24. model *model.All
  25. keyGen *generator.KeyGenerator
  26. }
  27. // NewUserService ``
  28. func NewUserService(all *model.All, keyGen *generator.KeyGenerator) UserService {
  29. return userservice{
  30. model: all,
  31. keyGen: keyGen,
  32. }
  33. }
  34. func (a userservice) Login(user *models.LoginRequest) (bool, *models.User, error) {
  35. user.Password = utils.Md5(user.Password + model.SignedString)
  36. return a.model.User.LoginCheck(user.UserName, user.Password)
  37. }
  38. func (a userservice) Register(user *models.Reqrequest) (*models.User, error) {
  39. _u := &models.User{}
  40. _u.UserKey, _ = a.keyGen.GenRandomKey(_u.ID)
  41. _u.UserPass = utils.Md5(user.PassWord + model.SignedString)
  42. _u.UserName = user.UserName
  43. _u.Phone = user.Phone
  44. _u.Email = user.Email
  45. vedor := &models.Vendor{
  46. VendorName: user.VendorName,
  47. }
  48. vedor.VendorKey, _ = a.keyGen.GenRandomKey(vedor.ID)
  49. err := a.model.Vendor.Create(vedor)
  50. if err != nil {
  51. return nil, err
  52. }
  53. _u.VendorID = vedor.ID
  54. return _u, a.model.User.Create(_u)
  55. }
  56. func (a userservice) ModifyPassword(userid int, new, old string) (bool, error) {
  57. old = utils.Md5(old + model.SignedString)
  58. new = utils.Md5(new + model.SignedString)
  59. return a.model.User.UpdatePassword(userid, new, old)
  60. }
  61. func (a userservice) CheckUserName(name string) (bool, error) {
  62. return a.model.User.CheckUserName(name)
  63. }
  64. func (a userservice) CheckPhone(name string) (bool, error) {
  65. return a.model.User.CheckPhone(name)
  66. }
  67. func (a userservice) CheckEmail(name string) (bool, error) {
  68. return a.model.User.CheckEmail(name)
  69. }