Przeglądaj źródła

积分余额 菜单实现

master
Patrick Peng Sun 8 lat temu
rodzic
commit
be3a93d1dc
6 zmienionych plików z 108 dodań i 34 usunięć
  1. +1
    -1
      customMenu.go
  2. +32
    -3
      menuClick.go
  3. +41
    -12
      outTemplateMsg.go
  4. +24
    -12
      outTemplateMsg_test.go
  5. +7
    -3
      serveCommand.go
  6. +3
    -3
      serveEvents.go

+ 1
- 1
customMenu.go Wyświetl plik

@@ -21,7 +21,7 @@ var menu = []byte(`
},
{
"type":"click",
"name":"积分和账单",
"name":"积分/余额",
"key": "MEMBER_CREDITS"
},
{

+ 32
- 3
menuClick.go Wyświetl plik

@@ -1,13 +1,16 @@
package main

func onClick(in* InWechatMsg) {
import "time"

func onClick(ss *openIDSessionData, in *InWechatMsg) {
e := in.body.(EventMsg)
openid := in.header.FromUserName
switch e.EventKey {
case "MEMBER_MYPROFILE":
kfSendTxtAs(openid, "profile", "孙鹏")
//kfSendTxtAs(openid, "profile", "孙鹏")
startProc(AllProc["用户信息"], ss, in)
case "MEMBER_CREDITS":
kfSendTxtAs(openid, "没有余额", "孙鹏")
onMembeCredits(ss, in)
case "MEMBER_SEARCH":
kfSendTxtAs(openid, "搜索", "孙鹏")
case "MEMBER_FEEDBACK":
@@ -37,3 +40,29 @@ func onClick(in* InWechatMsg) {
}

}

func onMembeCredits(ss *openIDSessionData, in *InWechatMsg) {
msg := `
积分是您对校友会的贡献记录,积分越高对校友会的贡献越大,也是对所有对校友会无私奉献的一种公开认可。

积分可以通过校友会兑换成现金或纪念品。

余额是您在校友会活动中的奖金余额,根据活动内容,以现金,卡,或者礼物的形式兑现。
`
kfSendTxtAs(ss.OpenID, msg, "孙鹏")

info, found, err := crmFindLeadByOpenID(ss.OpenID)

if found && err == nil {
url := ""
first := "截至" + time.Now().Format("2006-01-02 15:04:06 Mon MST -07") + " 您的积分,奖品,余额,如下\n\n" +
"积分:无"
name := info.LastName
addr := info.EmailAddress
card := info.ID
balance := "澳币 $0 "
remark := "奖品:无\n\n余额可联络财务兑现,奖品余额30过期" + "\n请确保您的姓名,地址信息正确"
templateSendAccountBalance(ss.OpenID, url, first, remark, name, addr, card, balance)
}

}

+ 41
- 12
outTemplateMsg.go Wyświetl plik

@@ -24,18 +24,19 @@ type templateMsgKeyword struct {

//WechatTemplates Message templates and their ID
var WechatTemplates = map[string]templatesIDInfo{
"join_community": {"12", "成功加入社群提醒", "yNKEqc7n-h1Y1DytmjUT5-H4s1zBK4nBIrYb8_jc2gM"},
"checkin_success": {"03", "签到成功提醒", "8KZLIQnB5e0QJWTtEeSOxGKHoxMaB5T1_GA8iDSLiI4"},
"join_volunteer": {"01", "成功加入志愿者通知", "1xgZoxZgnebXAddQ_MXSThpZt3bJ_e4XonCf2F4EETY"},
"join_team": {"02", "团队加入成功通知", "3Jw3jdlbDOK9ggWFcDfmi2QkytSJP4YjYWrBByWT-0M"},
"meeting_reminder": {"04", "会议通知", "8goDRUgmfxGWZgZQQCmveXqSnnqeqymIf6Rm1Ywfxsk"},
"checking_reminder": {"05", "签到提醒", "RQ9hQLoz8DkVRowPg-RmUD3zw9pi9QsEuzDtgfHm8sc"},
"enroll_success": {"06", "活动报名成功提醒", "S1tLShojLb9hpofSdaUAF9HNADo9gcwuWkYqkLzWPP4"},
"memberfee_reminder": {"08", "会员缴费提醒", "i40L7lXUsUK_hSs8quTwDelbXAigOGAPxkSe23Fg8Hk"},
"payment_successful": {"09", "缴费成功通知", "ubMQT9db4HgUCZrYiei20lr25Be3oOYT3YziOFG_PdI"},
"checkin_failure": {"10", "签到失败提醒", "x0oZxM05A7DKKxQOt6x1AvgbKC0W1G7l2nwMy65rD0w"},
"form_fillup_done": {"07", "录入完整提醒", "X82K3kvOhbOLmMjtKJzAhKnLUi1C0xQFab2mqs30H1k"},
"inform_collection": {"11", "物品领取通知", "y4SUrN75QwWCmQfw2gLwgLzeTbhqrSxTm-GkxR16Pro"},
"account_balance": {"01", "账户余额提醒", "-ahcu4myuJyf2FKW-eq7jdgwEyOeXA8wP4VzixRnUtQ"},
"join_volunteer": {"02", "成功加入志愿者通知", "1xgZoxZgnebXAddQ_MXSThpZt3bJ_e4XonCf2F4EETY"},
"join_team": {"03", "团队加入成功通知", "3Jw3jdlbDOK9ggWFcDfmi2QkytSJP4YjYWrBByWT-0M"},
"checkin_success": {"04", "签到成功提醒", "8KZLIQnB5e0QJWTtEeSOxGKHoxMaB5T1_GA8iDSLiI4"},
"meeting_reminder": {"05", "会议通知", "8goDRUgmfxGWZgZQQCmveXqSnnqeqymIf6Rm1Ywfxsk"},
"checking_reminder": {"06", "签到提醒", "RQ9hQLoz8DkVRowPg-RmUD3zw9pi9QsEuzDtgfHm8sc"},
"enroll_success": {"07", "活动报名成功提醒", "S1tLShojLb9hpofSdaUAF9HNADo9gcwuWkYqkLzWPP4"},
"form_fillup_done": {"08", "录入完整提醒", "X82K3kvOhbOLmMjtKJzAhKnLUi1C0xQFab2mqs30H1k"},
"memberfee_reminder": {"09", "会员缴费提醒", "i40L7lXUsUK_hSs8quTwDelbXAigOGAPxkSe23Fg8Hk"},
"payment_successful": {"10", "缴费成功通知", "ubMQT9db4HgUCZrYiei20lr25Be3oOYT3YziOFG_PdI"},
"checkin_failure": {"11", "签到失败提醒", "x0oZxM05A7DKKxQOt6x1AvgbKC0W1G7l2nwMy65rD0w"},
"inform_collection": {"12", "物品领取通知", "y4SUrN75QwWCmQfw2gLwgLzeTbhqrSxTm-GkxR16Pro"},
"join_community": {"13", "成功加入社群提醒", "yNKEqc7n-h1Y1DytmjUT5-H4s1zBK4nBIrYb8_jc2gM"},
}

func kfSendTemplateMsg(touser, templateid, url string, data map[string]templateMsgKeyword) (resp string, err error) {
@@ -355,3 +356,31 @@ func templateSendJoinCommunity(toUser, url, first, remark, communityName, joinDa
data["remark"] = templateMsgKeyword{remark, "#FF0000"}
return kfSendTemplateMsg(toUser, tid, url, data)
}

func templateSendAccountBalance(toUser, url, first, remark, name, addr, card, balance string) (resp string, err error) {
// {{first.DATA}}
// 户名:{{keyword1.DATA}}
// 地址:{{keyword2.DATA}}
// 卡号:{{keyword3.DATA}}
// 余额:{{keyword4.DATA}}
// {{remark.DATA}}

// 您好,截止上月底您的便民卡余额信息如下
// 户名:王一二
// 地址:市南区宁夏路288号
// 卡号:10000009
// 余额:13.00元
// 感谢您的使用。

tid := getTemplateIDByName("account_balance")
data := map[string]templateMsgKeyword{}
data["first"] = templateMsgKeyword{first, "#173177"}
data["keyword1"] = templateMsgKeyword{name, "#173177"}
data["keyword2"] = templateMsgKeyword{addr, "#173177"}
data["keyword3"] = templateMsgKeyword{card, "#173177"}
data["keyword4"] = templateMsgKeyword{balance, "#173177"}
data["remark"] = templateMsgKeyword{remark, "#FF0000"}
return kfSendTemplateMsg(toUser, tid, url, data)

return
}

+ 24
- 12
outTemplateMsg_test.go Wyświetl plik

@@ -6,7 +6,7 @@ import (
)

func TestSendTemplateJoinVolunteer(t *testing.T) {
url := "http://www.google.com.au/"
first := "很高兴有你参加志愿者"
remark := "明天给你发1万块钱"
@@ -19,7 +19,7 @@ func TestSendTemplateJoinVolunteer(t *testing.T) {
}

func TestSendTemplateJoinTeam(t *testing.T) {
url := "http://www.google.com.au/"
first := "欢迎加入校友会服务团队"
remark := "给你发2万张证书"
@@ -29,7 +29,7 @@ func TestSendTemplateJoinTeam(t *testing.T) {
}

func TestSendTemplateCheckinSuccess(t *testing.T) {
url := "http://www.google.com.au/"
first := "恭喜签到成功,你是第五位签到者"
remark := "团结向上,一起发展"
@@ -40,7 +40,7 @@ func TestSendTemplateCheckinSuccess(t *testing.T) {
}

func TestSendTemplateMsgFormFillupDone(t *testing.T) {
url := "http://www.google.com.au"
first := "您的录入信息已经收到,正在核实"
remark := "若信息有误,会影响您校友会会员的资格"
@@ -50,7 +50,7 @@ func TestSendTemplateMsgFormFillupDone(t *testing.T) {
}

func TestSendTemplateEnrollSuccess(t *testing.T) {
url := "http://www.google.com.au/"
first := "即将到来的活动,欢迎你的到来"
remark := "怎么才能让校友们积极互动是一个问题"
@@ -62,7 +62,7 @@ func TestSendTemplateEnrollSuccess(t *testing.T) {
}

func TestSendTemplateMeetingReminder(t *testing.T) {
url := "http://www.google.com.au/"
first := "恭喜签到成功,你是第五位签到者"
remark := "怎么才能让校友们积极互动是一个问题"
@@ -73,7 +73,7 @@ func TestSendTemplateMeetingReminder(t *testing.T) {
}

func TestSendTemplateCheckinReminder(t *testing.T) {
url := "http://www.google.com.au/"
first := "即将到来的活动,欢迎你的到来"
remark := "来晚了罚钱,你大爷的"
@@ -84,7 +84,7 @@ func TestSendTemplateCheckinReminder(t *testing.T) {
}

func TestSendTemplateMemberFeeReminder(t *testing.T) {
url := "http://www.google.com.au/"
first := "校友会会员费\n"
remark := "逾期不缴费将会被列出来"
@@ -96,7 +96,7 @@ func TestSendTemplateMemberFeeReminder(t *testing.T) {
}

func TestSendTemplatePaymentAck(t *testing.T) {
url := "http://www.google.com.au/"
first := "即将到来的活动,欢迎你的到来"
remark := "怎么才能让校友们积极互动是一个问题"
@@ -109,7 +109,7 @@ func TestSendTemplatePaymentAck(t *testing.T) {
}

func TestSendTemplateCheckinFail(t *testing.T) {
url := "http://www.google.com.au/"
first := "--"
remark := "checkin failed, due to your location is incorrect"
@@ -119,7 +119,7 @@ func TestSendTemplateCheckinFail(t *testing.T) {
}

func TestSendTemplateInformCollection(t *testing.T) {
url := "http://www.google.com.au/"
first := "恭喜你获得本次Lucky Draw奖金 $200澳币"
remark := "请你点击详情,通知你已收到奖励"
@@ -129,7 +129,7 @@ func TestSendTemplateInformCollection(t *testing.T) {
}

func TestSendTemplateMsgJoinCommunity(t *testing.T) {
url := "http://www.google.com.au"
communityName := "小大同会"
first := "欢迎加入Community" + communityName
@@ -137,3 +137,15 @@ func TestSendTemplateMsgJoinCommunity(t *testing.T) {
joinDate := time.Now().Format("2006-01-02 15:04:06 Mon MST -07")
templateSendJoinCommunity(toUser, url, first, remark, communityName, joinDate)
}

func TestSendTemplateMsgAccountBalance(t *testing.T) {
url := "http://www.google.com.au"
first := "你有积分 100 "
name := "张三二"
addr := "西大直街100 号, 广山区, 南京市,中国, 10086"
card := "11111 3333 4444 5555"
balance := "澳币200元"
remark := "如有余额请联络财务兑现: " + time.Now().Format("2006-01-02 15:04:06 Mon MST -07")
templateSendAccountBalance(toUser, url, first, remark, name, addr, card, balance)

}

+ 7
- 3
serveCommand.go Wyświetl plik

@@ -56,9 +56,7 @@ func (ss *openIDSessionData) serveTextCommand(in *InWechatMsg) (processed bool)
}

if proc, hasProc := AllProc[cmd]; hasProc {
proc.init(ss)
proc.intro(ss, in)
proc.start(ss, in)
startProc(proc, ss, in)
processed = true
return true
}
@@ -66,6 +64,12 @@ func (ss *openIDSessionData) serveTextCommand(in *InWechatMsg) (processed bool)
return false //不认识的命令,我们选择这个信息不处理
}

func startProc(proc chatProcedure, ss *openIDSessionData, in *InWechatMsg) {
proc.init(ss)
proc.intro(ss, in)
proc.start(ss, in)
}

func allCommand(ss *openIDSessionData, in *InWechatMsg) (processed bool) {
processed = true
msg := "命令如下:\n"

+ 3
- 3
serveEvents.go Wyświetl plik

@@ -1,6 +1,6 @@
package main

func (ss *openIDSessionData) serveEvents(in* InWechatMsg) (processed bool) {
func (ss *openIDSessionData) serveEvents(in *InWechatMsg) (processed bool) {
processed = true
e := in.body.(EventMsg)
switch e.Event {
@@ -23,9 +23,9 @@ func (ss *openIDSessionData) serveEvents(in* InWechatMsg) (processed bool) {
onLocation(in)
case "CLICK":
in.replyText("")
onClick(in)
onClick(ss, in)
case "VIEW":
in.replyText("CLICK" + e.EventKey)
in.replyText("VIEW" + e.EventKey)
case "TEMPLATESENDJOBFINISH":
// <xml><ToUserName><![CDATA[gh_f09231355c68]]></ToUserName>
// <FromUserName><![CDATA[oUN420Wj78vnkNeAJY7RMPXA28oc]]></FromUserName>

Ładowanie…
Anuluj
Zapisz