|
- package main
-
- import (
- "encoding/json"
- "errors"
- "log"
- )
-
- type crmdLocation struct {
- crmdEntityBase
- Latitude float64 `json:"latitude"`
- Longtitude float64 `json:"longtitude"`
- Precision float64 `json:"precision"`
- LeadID string `json:"leadId,omitempty"`
- }
-
- //record location
- func onLocation(in* InWechatMsg) {
- openID := in.header.FromUserName
-
- lead, found, err := crmFindLeadByOpenID(openID)
- if found && err == nil {
- e := in.body.(EventMsg)
- //save info
- info := crmdLocation{}
- info.Name = in.header.FromUserName
- info.LeadID = lead.ID
- info.Longtitude = e.Longitude
- info.Latitude = e.Latitude
- info.Precision = e.Precision
- info.Save()
- }
- }
-
- func (m crmdLocation) Save() (location crmdLocation, err error) {
- jsonB, err := json.Marshal(m)
- if err != nil {
- log.Println(err)
- return
- }
-
- entity, err := crmCreateEntity("Location", jsonB)
- if err != nil {
- log.Println(err)
- return
- }
-
- location, ok := entity.(crmdLocation)
- if !ok {
- err = errors.New("incorrect entity cannot convert to Location")
- }
- log.Println(location)
- return
- }
|