h5.go 2.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package models
  2. import (
  3. "h5-2019/models/model"
  4. "time"
  5. "github.com/astaxie/beego"
  6. )
  7. // H5Model model
  8. type H5Model struct{}
  9. // GetCustomer 获取
  10. func (m *H5Model) GetCustomer(id int) (*model.TaCustomer, error) {
  11. cust := model.TaCustomer{}
  12. _, err := Dao.Where("id=?", id).Get(&cust)
  13. if err != nil {
  14. return nil, err
  15. }
  16. return &cust, nil
  17. }
  18. // SaveCustomer 新增
  19. func (m *H5Model) SaveCustomer(mem map[string]interface{}) (*model.TaCustomer, error) {
  20. cust := model.TaCustomer{}
  21. openid := mem["openid"].(string)
  22. if _, err := Dao.Where("openid=?", openid).Get(&cust); err != nil {
  23. beego.Error("查询错误->", err)
  24. return nil, err
  25. }
  26. beego.Info("获取到用户信息, ", cust)
  27. cust.Nickyname = mem["nickname"].(string)
  28. cust.Headimgurl = mem["headimgurl"].(string)
  29. if cust.Openid != "" {
  30. // 如果用户已经存在, 则更新
  31. if _, err := Dao.Where("openid=?", openid).
  32. Cols([]string{"nickyname", "headimgurl"}...).
  33. Update(&cust); err != nil {
  34. beego.Error("更新错误->", err)
  35. return nil, err
  36. }
  37. return &cust, nil
  38. }
  39. cust.Openid = openid
  40. cust.Unionid, _ = mem["unionid"].(string)
  41. cust.CreateDate = time.Now().Local()
  42. cust.Sharedpage = 0
  43. _, err := Dao.Insert(&cust)
  44. if err != nil {
  45. return nil, err
  46. }
  47. return &cust, nil
  48. }
  49. // SharePage 分享
  50. func (m *H5Model) SharePage(id int) error {
  51. sql := `
  52. update ta_customer
  53. set sharedpage = IFNULL(sharedpage,0) + 1
  54. where id = ?
  55. `
  56. _, err := Dao.Exec(sql, id)
  57. return err
  58. }
  59. // TotalShareNum 获取总次数
  60. func (m *H5Model) TotalShareNum() (int64, error) {
  61. query := `select sum(IFNULL(sharedpage,0)) as total from ta_customer`
  62. var total []int64
  63. if err := Dao.SQL(query).Find(&total); err != nil {
  64. return 0, err
  65. }
  66. return total[0], nil
  67. }
  68. // TotalCustomer 获取总人数
  69. func (m *H5Model) TotalCustomer() (int64, error) {
  70. query := `select count(1) as total from ta_customer`
  71. var total []int64
  72. if err := Dao.SQL(query).Find(&total); err != nil {
  73. return 0, err
  74. }
  75. return total[0], nil
  76. }