123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- package roadshow
- import (
- "encoding/json"
- "errors"
- "fmt"
- "github.com/rdlucklib/rdluck_tools/http"
- "hongze/hongze_mobile_admin/models/roadshow"
- "hongze/hongze_mobile_admin/utils"
- "io/ioutil"
- netHttp "net/http"
- "net/url"
- "time"
- )
- // getAccessToken token内部请求接口
- func getAccessToken() (tokenData roadshow.TokenData, err error) {
- getUrl := fmt.Sprintf(utils.CRM_OPEN_API_URL+"/v1/auth/getAccessToken?app_key=%s&app_secret=%s", utils.CRM_OPEN_API_APP_KEY, utils.CRM_OPEN_API_APP_SECRET)
- body, err := http.Get(getUrl)
- if err != nil {
- err = errors.New("NewRequest Err:" + err.Error())
- return
- }
- var tokenResp roadshow.GetTokenResp
- err = json.Unmarshal(body, &tokenResp)
- if err != nil {
- err = errors.New("Unmarshal Err:" + err.Error())
- return
- }
- if tokenResp.Code != 1 {
- err = errors.New("getAccessToken err:" + tokenResp.Msg)
- return
- }
- tokenData = tokenResp.TokenData
- return
- //return tokenResp.TokenData.AccessToken, err
- }
- // GetAccessToken 获取accessToken
- func GetAccessToken() (token string, err error) {
- defer func() {
- if err != nil {
- go utils.SendEmail(utils.APPNAME+"获取上海的token失败:"+time.Now().Format("2006-01-02 15:04:05"), err.Error(), utils.EmailSendToUsers)
- }
- }()
- token, err = utils.Rc.RedisString("SH_ACCESS_TOKEN")
- //如果从redis中accessToken 获取失败或者token为空了,那么重新获取accessToken
- if err != nil || token == `` {
- tokenInfo, tmpErr := getAccessToken()
- if tmpErr != nil {
- err = tmpErr
- return
- }
- token = tokenInfo.AccessToken
- if !utils.Rc.SetNX("SH_ACCESS_TOKEN", token, time.Duration(tokenInfo.ExpireIn-600)*time.Second) {
- err = errors.New("set Redis err")
- }
- }
- return
- }
- // DeleteSHCalendar 删除上海日历活动
- func DeleteSHCalendar(rsCalendarResearcherId int) (err error) {
- defer func() {
- if err != nil {
- go utils.SendEmail(utils.APPNAME+"删除上海日历活动失败:"+time.Now().Format("2006-01-02 15:04:05"), fmt.Sprint("关系id:", rsCalendarResearcherId, ";err:", err.Error()), utils.EmailSendToUsers)
- }
- }()
- token, err := GetAccessToken()
- finalUrl := utils.CRM_OPEN_API_URL + "/v1/Calendar/delete?access_token=" + token
- var condition string
- var pars []interface{}
- condition = ` AND self_calendar_id = ? `
- pars = append(pars, rsCalendarResearcherId)
- relationItem, err := roadshow.GetRelationByPars(condition, pars)
- if err != nil {
- err = errors.New("GetRelationByPars err" + err.Error())
- return
- }
- resp, err := netHttp.PostForm(finalUrl, url.Values{"user_phone": {relationItem.UserPhone}, "calendar_id": {fmt.Sprintf("%v", relationItem.ThirdCalendarId)}})
- if err != nil {
- err = errors.New("NewRequest Err:" + err.Error())
- return
- }
- defer resp.Body.Close()
- body, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println("reponse error", err)
- return
- }
- //解析resp判断请求结果是否成功
- var calendarResp roadshow.CreatSHCalendarResp
- err = json.Unmarshal(body, &calendarResp)
- if calendarResp.Code != 1 {
- err = errors.New("Update SHCalendar err:" + calendarResp.Msg)
- return
- }
- //删除活动表及事项表
- err = roadshow.DeleteRsCalendarRelation(relationItem.RelationId)
- if err != nil {
- err = errors.New("DeleteRsCalendarRelation err:" + err.Error())
- return
- }
- return
- }
|