You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

91 lines
2.1 KiB

  1. package member
  2. import (
  3. v1 "UserRegister/api/v1"
  4. "UserRegister/internal/service"
  5. "crypto/md5"
  6. "fmt"
  7. "github.com/gogf/gf/v2/frame/g"
  8. "strings"
  9. )
  10. type sMember struct{}
  11. func init() {
  12. service.RegisterMember(NewMember())
  13. }
  14. func NewMember() *sMember {
  15. return &sMember{}
  16. }
  17. // InsertMember 用户注册
  18. func (s *sMember) InsertMember(req *v1.InsertMemberReq) (err error) {
  19. _, err = g.Model("member_info").Data(g.Map{
  20. "name": req.Name,
  21. "code": req.Code,
  22. "telephone": req.Tel,
  23. "type": req.Type,
  24. "url": req.Url,
  25. "url_md5": fmt.Sprintf("%x", md5.Sum([]byte(req.Url))),
  26. "wechat": req.WeChat,
  27. "email": req.Email,
  28. "source": req.Source,
  29. "benefit_intention": req.BenefitIntention,
  30. }).Insert()
  31. if err != nil {
  32. return
  33. }
  34. return
  35. }
  36. // GetMemberList 获取用户信息
  37. func (s *sMember) GetMemberList(req *v1.GetMemberListReq) (res []v1.GetMemberListRes, total int, err error) {
  38. err = g.Model("member_info").Where("source", req.Source).OrderDesc("created_at").
  39. Page(req.Page, req.PageSize).ScanAndCount(&res, &total, false)
  40. if err != nil {
  41. return
  42. }
  43. if len(res) == 0 {
  44. return []v1.GetMemberListRes{}, 0, nil
  45. }
  46. //! 处理RegistrationIntention
  47. for i := range res {
  48. str := ""
  49. if res[i].BenefitIntention != "" {
  50. if strings.Contains(res[i].BenefitIntention, "1") {
  51. str = str + "DeepChart,"
  52. }
  53. if strings.Contains(res[i].BenefitIntention, "2") {
  54. str = str + "夺宝奇兵,"
  55. }
  56. if strings.Contains(res[i].BenefitIntention, "3") {
  57. str = str + "专题课"
  58. }
  59. }
  60. res[i].RegistrationIntention = str
  61. }
  62. return
  63. }
  64. // UpdateState 更新状态
  65. func (s *sMember) UpdateState(req *v1.UpdateStateReq) (err error) {
  66. _, err = g.Model("member_info").Data(g.Map{
  67. "is_related": req.State,
  68. }).WherePri(req.Id).Update()
  69. if err != nil {
  70. return
  71. }
  72. return
  73. }
  74. // EditNote 修改备注
  75. func (s *sMember) EditNote(req *v1.EditNoteReq) (err error) {
  76. _, err = g.Model("member_info").Data(g.Map{
  77. "note": req.Note,
  78. }).WherePri(req.Id).Update()
  79. if err != nil {
  80. return
  81. }
  82. return
  83. }