| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339 |
- package mail
- import (
- "encoding/json"
- "runtime/debug"
- "bet24.com/database"
- "bet24.com/log"
- "bet24.com/servers/common"
- dbengine "bet24.com/servers/micros/dbengine/proto"
- pb "bet24.com/servers/micros/userservices/proto"
- )
- // 发送用户邮件
- func sendUserMail(userId int, title, content, img string) (int, int) {
- defer func() {
- if err := recover(); err != nil {
- log.Error("mail.sendUserMail transaction recover %v", err)
- log.Error("%s", debug.Stack())
- }
- }()
- newMsgId, sendImgCount := 0, 0
- statement := database.NewStatement()
- statement.SetNeedReturnValue(false)
- statement.SetOpenRecordSet(false)
- statement.SetProcName("WS_ServiceMessage_Send")
- statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
- statement.AddParamter("@Title", database.AdParamInput, database.AdNVarChar, 256, title)
- statement.AddParamter("@Msg", database.AdParamInput, database.AdNVarChar, 512, content)
- statement.AddParamter("@Img", database.AdParamInput, database.AdVarChar, 1024, img)
- sqlstring := statement.GenSql()
- // log.Debug(sqlstring)
- retRows := dbengine.ExecuteRs(sqlstring)
- if len(retRows) <= 0 {
- return newMsgId, sendImgCount
- }
- newMsgId = int((retRows[0][0]).(int64))
- sendImgCount = int((retRows[0][1]).(int64))
- return newMsgId, sendImgCount
- }
- // 获取用户邮件
- func getUserMails(userId, mailId int) (int, []*pb.UserMail) {
- defer func() {
- if err := recover(); err != nil {
- log.Error("mail.getUserMails transaction recover %v", err)
- log.Error("%s", debug.Stack())
- }
- }()
- var mails []*pb.UserMail
- var sendImgCount int
- statement := database.NewStatement()
- statement.SetNeedReturnValue(false)
- statement.SetOpenRecordSet(true)
- statement.SetProcName("WS_ServiceMessage_GetList")
- statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
- statement.AddParamter("@MessageID", database.AdParamInput, database.AdInteger, 4, mailId)
- statement.AddParamter("@SendImgCount", database.AdParamOutput, database.AdInteger, 4, sendImgCount)
- sqlstring := statement.GenSql()
- // log.Debug(sqlstring)
- retRows := dbengine.ExecuteRs(sqlstring)
- rowsLen := len(retRows)
- if rowsLen > 1 {
- for i := 0; i < rowsLen-1; i++ {
- ret := retRows[i]
- var out pb.UserMail
- out.Id = int((ret[0]).(int64))
- out.Title = (ret[1]).(string)
- out.FromUserId = int((ret[2]).(int64))
- out.ToUserId = int((ret[3]).(int64))
- out.Content = (ret[4]).(string)
- crdateStr := (ret[5]).(string)
- crdate := common.ParseTime(crdateStr)
- out.Crdate = common.GetStamp(crdate)
- mails = append(mails, &out)
- }
- }
- sendImgCount = int((retRows[rowsLen-1][0]).(int64))
- return sendImgCount, mails
- }
- // 获取用户邮件提示
- func getUserMailTip(userId int) bool {
- defer func() {
- if err := recover(); err != nil {
- log.Error("mail.getUserMailTip transaction recover err %v", err)
- log.Error("%s", debug.Stack())
- }
- }()
- statement := database.NewStatement()
- statement.SetNeedReturnValue(false)
- statement.SetOpenRecordSet(true)
- statement.SetProcName("WS_ServiceMessage_GetTip")
- statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
- sqlstring := statement.GenSql()
- retRows := dbengine.Execute(sqlstring)
- return len(retRows) > 0
- }
- // 发送系统邮件(含附件)
- func sendSysMail(userId int, sm *pb.SysMail) bool {
- defer func() {
- if err := recover(); err != nil {
- log.Error("mail.sendSysMail transaction recover err %v", err)
- log.Error("%s", debug.Stack())
- }
- }()
- tools := ""
- if len(sm.Tools) > 0 {
- buf, err := json.Marshal(sm.Tools)
- if err != nil {
- log.Error("mail.sendSysMail transaction json marshal fail err %v", err)
- return false
- }
- tools = string(buf)
- }
- sysMailId := 0
- statement := database.NewStatement()
- statement.SetNeedReturnValue(false)
- statement.SetOpenRecordSet(true)
- statement.SetProcName("WS_SysMessage_Send")
- statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
- statement.AddParamter("@Title", database.AdParamInput, database.AdNVarChar, 32, sm.Title)
- statement.AddParamter("@Content", database.AdParamInput, database.AdNVarChar, 256, sm.Content)
- statement.AddParamter("@Status", database.AdParamInput, database.AdInteger, 4, sm.Status)
- statement.AddParamter("@SourceName", database.AdParamInput, database.AdNVarChar, 64, sm.SourceName)
- statement.AddParamter("@Crdate", database.AdParamInput, database.AdInteger, 4, sm.Crdate)
- statement.AddParamter("@Tools", database.AdParamInput, database.AdVarChar, 1024, tools)
- statement.AddParamter("@SysMsgID", database.AdParamOutput, database.AdInteger, 4, sysMailId)
- sqlstring := statement.GenSql()
- retRows := dbengine.ExecuteRs(sqlstring)
- if len(retRows) <= 0 {
- return false
- }
- sysMailId = int((retRows[0][0]).(int64))
- return sysMailId > 0
- }
- // 获取系统邮件列表
- func getSysMails(userId, sysMsgId int) []*pb.SysMail {
- defer func() {
- if err := recover(); err != nil {
- log.Error("mail.getSysMails transaction recover %v", err)
- log.Error("%s", debug.Stack())
- }
- }()
- statement := database.NewStatement()
- statement.SetNeedReturnValue(false)
- statement.SetOpenRecordSet(true)
- statement.SetProcName("WS_SysMessage_GetList")
- statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
- statement.AddParamter("@SysMsgID", database.AdParamInput, database.AdInteger, 4, sysMsgId)
- sqlstring := statement.GenSql()
- // log.Debug(sqlstring)
- retRows := dbengine.ExecuteRs(sqlstring)
- rowsLen := len(retRows)
- var sysMails []*pb.SysMail
- for i := 0; i < rowsLen; i++ {
- ret := retRows[i]
- var out pb.SysMail
- out.Id = int((ret[0]).(int64))
- out.Title = (ret[1]).(string)
- out.Content = (ret[2]).(string)
- out.Status = int((ret[3]).(int64))
- out.SourceName = (ret[4]).(string)
- crdateStr := (ret[5]).(string)
- crdate := common.ParseTime(crdateStr)
- out.Crdate = common.GetStamp(crdate)
- tools := (ret[6]).(string)
- if tools != "" {
- if err := json.Unmarshal([]byte(tools), &out.Tools); err != nil {
- log.Error("mail.getSysMails transaction json unmarshal fail err %v", err)
- return nil
- }
- }
- sysMails = append(sysMails, &out)
- }
- return sysMails
- }
- // 获取系统邮件信息
- func getSysMail(userId, sysMsgId int) *pb.SysMail {
- defer func() {
- if err := recover(); err != nil {
- log.Error("mail.getSysMail transaction recover %v", err)
- log.Error("%s", debug.Stack())
- }
- }()
- statement := database.NewStatement()
- statement.SetNeedReturnValue(false)
- statement.SetOpenRecordSet(true)
- statement.SetProcName("WS_SysMessage_GetInfo")
- statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
- statement.AddParamter("@SysMsgID", database.AdParamInput, database.AdInteger, 4, sysMsgId)
- sqlstring := statement.GenSql()
- // log.Debug(sqlstring)
- retRows := dbengine.ExecuteRs(sqlstring)
- rowsLen := len(retRows)
- out := new(pb.SysMail)
- for i := 0; i < rowsLen; i++ {
- ret := retRows[i]
- out.Id = int((ret[0]).(int64))
- out.Title = (ret[1]).(string)
- out.Content = (ret[2]).(string)
- out.Status = int((ret[3]).(int64))
- out.SourceName = (ret[4]).(string)
- crdateStr := (ret[5]).(string)
- crdate := common.ParseTime(crdateStr)
- out.Crdate = common.GetStamp(crdate)
- tools := (ret[6]).(string)
- if tools != "" {
- if err := json.Unmarshal([]byte(tools), &out.Tools); err != nil {
- log.Error("mail.getSysMails transaction json unmarshal fail err %v", err)
- return nil
- }
- }
- }
- return out
- }
- // 修改系统邮件
- func updateSysMail(userId, sysMsgId, status int) int {
- defer func() {
- if err := recover(); err != nil {
- log.Error("mail.updateSysMail transaction recover err %v", err)
- log.Error("%s", debug.Stack())
- }
- }()
- retCode := 0
- statement := database.NewStatement()
- statement.SetNeedReturnValue(false)
- statement.SetOpenRecordSet(true)
- statement.SetProcName("WS_SysMessage_Update")
- statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
- statement.AddParamter("@SysMsgId", database.AdParamInput, database.AdInteger, 4, sysMsgId)
- statement.AddParamter("@Status", database.AdParamInput, database.AdInteger, 4, status)
- statement.AddParamter("@RetCode", database.AdParamOutput, database.AdInteger, 4, retCode)
- sqlstring := statement.GenSql()
- retRows := dbengine.ExecuteRs(sqlstring)
- if len(retRows) <= 0 {
- return 0
- }
- return int((retRows[0][0]).(int64))
- }
- // 删除系统邮件
- func delSysMail(userId, sysMsgId int) int {
- defer func() {
- if err := recover(); err != nil {
- log.Error("mail.delSysMail transaction recover err %v", err)
- log.Error("%s", debug.Stack())
- }
- }()
- retCode := 0
- statement := database.NewStatement()
- statement.SetNeedReturnValue(false)
- statement.SetOpenRecordSet(true)
- statement.SetProcName("WS_SysMessage_Del")
- statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
- statement.AddParamter("@SysMsgID", database.AdParamInput, database.AdInteger, 4, sysMsgId)
- statement.AddParamter("@RetCode", database.AdParamOutput, database.AdInteger, 4, retCode)
- sqlstring := statement.GenSql()
- retRows := dbengine.ExecuteRs(sqlstring)
- if len(retRows) <= 0 {
- return 0
- }
- return int((retRows[0][0]).(int64))
- }
- // 获取系统邮件列表
- func getGiftMails(userId int) []*pb.SysMail {
- defer func() {
- if err := recover(); err != nil {
- log.Error("mail.getSysMails transaction recover %v", err)
- log.Error("%s", debug.Stack())
- }
- }()
- statement := database.NewStatement()
- statement.SetNeedReturnValue(false)
- statement.SetOpenRecordSet(true)
- statement.SetProcName("WS_SysMessage_GetGiftList")
- statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, userId)
- sqlstring := statement.GenSql()
- // log.Debug(sqlstring)
- retRows := dbengine.ExecuteRs(sqlstring)
- rowsLen := len(retRows)
- var sysMails []*pb.SysMail
- for i := 0; i < rowsLen; i++ {
- ret := retRows[i]
- var out pb.SysMail
- out.Id = int((ret[0]).(int64))
- out.Title = (ret[1]).(string)
- out.Content = (ret[2]).(string)
- out.Status = int((ret[3]).(int64))
- out.SourceName = (ret[4]).(string)
- crdateStr := (ret[5]).(string)
- crdate := common.ParseTime(crdateStr)
- out.Crdate = common.GetStamp(crdate)
- tools := (ret[6]).(string)
- if tools != "" {
- if err := json.Unmarshal([]byte(tools), &out.Tools); err != nil {
- log.Error("mail.getSysMails transaction json unmarshal fail err %v", err)
- return nil
- }
- }
- sysMails = append(sysMails, &out)
- }
- return sysMails
- }
|