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 }