/
text.go
72 lines (65 loc) · 1.62 KB
/
text.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
package msg
import (
"encoding/xml"
"fmt"
"github.com/astaxie/beego"
"github.com/astaxie/beego/logs"
"github.com/astaxie/beego/orm"
"time"
)
var CKLog *logs.BeeLogger
func init() {
CKLog = beego.BeeLogger
CKLog.SetLevel(beego.LevelDebug)
}
type TextMsg struct {
Id int64 `xml:"-"`
ToUserName string `xml:"ToUserName"`
FromUserName string `xml:"FromUserName"`
CreateTime int `xml:"CreateTime"`
MsgType string `xml:"MsgType"`
Content string `xml:"Content"`
MsgId int64 `xml:"MsgId"`
Created time.Time `orm:"auto_now_add;type(datetime)"`
}
func (this *TextMsg) Insert() error {
o := orm.NewOrm()
_, e := o.Insert(this)
if e != nil {
return e
}
return nil
}
func ReceiveTextMsg(content string) string {
var msg TextMsg
err := xml.Unmarshal([]byte(content), &msg)
if err != nil {
return ""
}
msg.Insert()
CKLog.Debug(msg.Content)
return msg.ReplyTextMsg(`/::D/::D
服务器维护中
/::D/::D`)
}
func (this *TextMsg) ReplyTextMsg(data string) string {
xmldata := `<xml>
<ToUserName><![CDATA[` + this.FromUserName + `]]></ToUserName>
<FromUserName><![CDATA[` + this.ToUserName + `]]></FromUserName>
<CreateTime>` + fmt.Sprint((time.Now().Unix())) + `</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[` + data + `]]></Content>
</xml>`
CKLog.Info("回复:%s", data)
return xmldata
}
// func FindUserByName(uname string) (*TextMsg, error) {
// o := orm.NewOrm()
// user := new(User)
// qs := o.QueryTable("user")
// err := qs.Filter("username", uname).One(user)
// if err != nil {
// return nil, err
// }
// return user, nil
// }