diff --git a/procFeedback.go b/procFeedback.go new file mode 100644 index 0000000..6479415 --- /dev/null +++ b/procFeedback.go @@ -0,0 +1,56 @@ +package main + +type procFeedbackDef struct { + chatProcedureID +} + +var procFeedback = procFeedbackDef{} + +func (m *procFeedbackDef) init(ss *openIDSessionData) { + ss.Procedure = m.getID() + ss.refreshExpire(600) +} + +func (m *procFeedbackDef) clean(ss *openIDSessionData) { + ss.Procedure = "" +} + +func (m *procFeedbackDef) start(ss *openIDSessionData, in *InWechatMsg) { + m.clean(ss) +} + +func (m *procFeedbackDef) serve(ss *openIDSessionData, in *InWechatMsg) (processed bool) { + switch msg := in.body.(type) { + case TextMsg: + processed = true + in.transfer2KF() + kfSendTxt(ss.OpenID, "文字收到,已转接校友会,稍后答复您") + case PicMsg: + processed = true + in.transfer2KF() + kfSendTxt(ss.OpenID, "图片收到,已转接校友会投诉部门,稍后答复您") + case VoiceMsg: + processed = true + in.transfer2KF() + kfSendTxt(ss.OpenID, "语音收到,已转接校友会,尽快答复您") + + case EventMsg: + processed = true + if msg.Event == "LOCATION" { + onLocation(in) + } + if msg.Event == "CLICK" { + processed = false //we might need to process other menu command. + } + default: + processed = false + } + return +} +func (m *procFeedbackDef) summary(ss *openIDSessionData) { + kfSendTxtAs(ss.OpenID, "投诉内容结束,我们将尽快答复您的咨询", "孙鹏") +} + +func (m *procFeedbackDef) intro(ss *openIDSessionData, in *InWechatMsg) { + in.replyText("请输入你要投诉的信息, 校友会将尽快作出回应,欢迎您的反馈和监督") +}