12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- package models
-
- import (
- "h5-2019/models/model"
- "time"
-
- "github.com/astaxie/beego"
- )
-
- // H5Model model
- type H5Model struct{}
-
- // GetCustomer 获取
- func (m *H5Model) GetCustomer(id int) (*model.TaCustomer, error) {
- cust := model.TaCustomer{}
- _, err := Dao.Where("id=?", id).Get(&cust)
- if err != nil {
- return nil, err
- }
-
- return &cust, nil
- }
-
- // SaveCustomer 新增
- func (m *H5Model) SaveCustomer(mem map[string]interface{}) (*model.TaCustomer, error) {
- cust := model.TaCustomer{}
- openid := mem["openid"].(string)
-
- if _, err := Dao.Where("openid=?", openid).Get(&cust); err != nil {
- beego.Error("查询错误->", err)
- return nil, err
- }
-
- beego.Info("获取到用户信息, ", cust)
-
- cust.Nickyname = mem["nickname"].(string)
- cust.Headimgurl = mem["headimgurl"].(string)
-
- if cust.Openid != "" {
- // 如果用户已经存在, 则更新
- if _, err := Dao.Where("openid=?", openid).
- Cols([]string{"nickyname", "headimgurl"}...).
- Update(&cust); err != nil {
- beego.Error("更新错误->", err)
- return nil, err
- }
- return &cust, nil
- }
-
- cust.Openid = openid
- cust.Unionid, _ = mem["unionid"].(string)
- cust.CreateDate = time.Now().Local()
- cust.Sharedpage = 0
-
- _, err := Dao.Insert(&cust)
- if err != nil {
- return nil, err
- }
-
- return &cust, nil
- }
-
- // SharePage 分享
- func (m *H5Model) SharePage(id int) error {
- sql := `
- update ta_customer
- set sharedpage = IFNULL(sharedpage,0) + 1
- where id = ?
- `
-
- _, err := Dao.Exec(sql, id)
- return err
- }
-
- // TotalShareNum 获取总次数
- func (m *H5Model) TotalShareNum() (int64, error) {
- query := `select sum(IFNULL(sharedpage,0)) as total from ta_customer`
-
- var total []int64
- if err := Dao.SQL(query).Find(&total); err != nil {
- return 0, err
- }
-
- return total[0], nil
- }
-
- // TotalCustomer 获取总人数
- func (m *H5Model) TotalCustomer() (int64, error) {
- query := `select count(1) as total from ta_customer`
-
- var total []int64
- if err := Dao.SQL(query).Find(&total); err != nil {
- return 0, err
- }
-
- return total[0], nil
- }
|