Переглянути джерело

搜索校友功能开启

master
Patrick Peng Sun 8 роки тому
джерело
коміт
66bf1a84b2
3 змінених файлів з 115 додано та 1 видалено
  1. +1
    -1
      menuClick.go
  2. +113
    -0
      procSearchMember.go
  3. +1
    -0
      procedure.go

+ 1
- 1
menuClick.go Переглянути файл

@@ -12,7 +12,7 @@ func onClick(ss *openIDSessionData, in *InWechatMsg) {
case "MEMBER_CREDITS":
onMembeCredits(ss, in)
case "MEMBER_SEARCH":
kfSendTxtAs(openid, "搜索", "孙鹏")
startProc(AllProc["搜索校友"], ss, in)
case "MEMBER_FEEDBACK":
kfSendTxtAs(openid, "匿名投诉", "孙鹏")
case "EVENT_STARTONE":

+ 113
- 0
procSearchMember.go Переглянути файл

@@ -0,0 +1,113 @@
package main

import (
"fmt"
"log"
"strings"
)

type procSearchMemberDef struct {
chatProcedureID
}

var procSearchMember = procSearchMemberDef{}

func (m *procSearchMemberDef) init(ss *openIDSessionData) {
ss.Procedure = m.getID()
ss.refreshExpire(600)
}

func (m *procSearchMemberDef) clean(ss *openIDSessionData) {
ss.Procedure = ""
}

func (m *procSearchMemberDef) start(ss *openIDSessionData, in *InWechatMsg) {

}

func (m *procSearchMemberDef) serve(ss *openIDSessionData, in *InWechatMsg) {
switch msg := in.body.(type) {
case TextMsg:
if m.endingCommand(ss, msg.Content) {
return
}
str, _ := BuildTextMsg(ss.OpenID, "搜索 "+msg.Content+"... ...")
in.replyXML(str)
m.displayUserInfo(ss, msg.Content)
case PicMsg:
//str := buildPicMsg(ss.OpenID, msg.MediaId)
xml, _ := BuildKFTransferAnyOneMsg(ss.OpenID)
in.replyXML(xml)
kfSendPicByMediaID(ss.OpenID, msg.MediaId)
kfSendTxt(ss.OpenID, "已转接校友会理事会,稍后答复您")
case VoiceMsg:
name := strings.TrimSuffix(msg.Recognition, "。")
str, _ := BuildTextMsg(ss.OpenID, "搜索 "+name+"... ...")
in.replyXML(str)
m.displayUserInfo(ss, name)
case EventMsg:
if msg.Event == "LOCATION" {
onLocation(in)
}
default:
str := fmt.Sprintf("搜索功能结束")
kfSendTxtAs(ss.OpenID, str, "孙鹏")
m.clean(ss)
}
}
func (m *procSearchMemberDef) summary(ss *openIDSessionData) {

}

func (m *procSearchMemberDef) intro(ss *openIDSessionData, in *InWechatMsg) {
msg := "请输入(读出)他/她的姓名或者照片"
in.replyText("")
kfSendTxtAs(ss.OpenID, msg, "孙鹏")
}

func (m *procSearchMemberDef) displayUserInfo(ss *openIDSessionData, name string) {
total, list, err := crmFindEntityByAttr("Lead", "lastName", name)
if total <= 0 || err != nil {
kfSendTxtAs(ss.OpenID, "很抱歉,没有找到相关信息", "孙鹏")
return
}

search, ok := list.([]crmdLead)
if !ok {
log.Printf("ERROR: 搜索 %s 结果异常, total=%d, ", name, total)
kfSendTxt(ss.OpenID, "很抱歉,没有找到相关信息")
return
}
for _, v := range search {
email := "无"
if v.EmailAddress != "" {
email = v.EmailAddress
}

phone := "无"
if v.PhoneNumber != "" {
email = v.PhoneNumber
}

description := "无"
if v.Description != "" {
description = v.Description
}
msg := fmt.Sprintf("%s\n电邮:%s\n电话:%s\n介绍:%s\n", name, email, phone, description)
kfSendTxtAs(ss.OpenID, msg, "孙鹏")
}
ss.refreshExpire(600)
}

func (m *procSearchMemberDef) endingCommand(ss *openIDSessionData, cmd string) (stop bool) {
stop = false

if cmd == "结束" || cmd == "." || cmd == "。" {
stop = true
m.clean(ss)
str := fmt.Sprintf("搜索功能结束")
kfSendTxtAs(ss.OpenID, str, "孙鹏")
}

return
}

+ 1
- 0
procedure.go Переглянути файл

@@ -37,6 +37,7 @@ func initAllProc() {
//registerProc("Dummy", &procDummy)
registerProc("Echo", &procEcho)
registerProc("用户信息", &procGetBasicUserInfo)
registerProc("搜索校友", &procSearchMember)
}

func registerProc(id string, proc chatProcedure) {

Завантаження…
Відмінити
Зберегти