mail.go 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023
  1. package dao
  2. import (
  3. "runtime/debug"
  4. "bet24.com/database"
  5. "bet24.com/log"
  6. )
  7. //留言板列表
  8. type (
  9. serviceMessageList_in struct {
  10. UserID int // 用户ID
  11. BeginTime string // 开始时间
  12. EndTime string // 截止时间
  13. PageIndex int // 页索引
  14. PageSize int // 页大小
  15. Sort int // 排序(0=最新排序 1=最早排序)
  16. }
  17. serviceMessageListModel struct {
  18. RowNumber int // 序号
  19. UserID int // 用户ID
  20. NickName string // 昵称
  21. MailCount int // 邮件数
  22. Crdate string // 时间
  23. Msg string // 邮件内容
  24. }
  25. serviceMessageList_out struct {
  26. RecordCount int // 记录数
  27. List []serviceMessageListModel
  28. }
  29. serviceMessageList struct {
  30. database.Trans_base
  31. In serviceMessageList_in
  32. Out serviceMessageList_out
  33. }
  34. )
  35. func NewServiceMessageList() *serviceMessageList {
  36. return &serviceMessageList{}
  37. }
  38. func (this *serviceMessageList) DoAction(ch chan<- interface{}) {
  39. defer func() {
  40. if err := recover(); err != nil {
  41. log.Release("transaction recover fail %v", err)
  42. log.Release("%s", debug.Stack())
  43. }
  44. if ch != nil {
  45. ch <- this
  46. }
  47. }()
  48. statement := database.NewStatement()
  49. statement.SetNeedReturnValue(false)
  50. statement.SetOpenRecordSet(true)
  51. statement.SetProcName("Manage_ServiceMessage_GetList")
  52. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, this.In.UserID)
  53. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, this.In.BeginTime)
  54. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, this.In.EndTime)
  55. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, this.In.PageIndex)
  56. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, this.In.PageSize)
  57. statement.AddParamter("@Sort", database.AdParamInput, database.AdInteger, 4, this.In.Sort)
  58. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, this.Out.RecordCount)
  59. sqlstring := statement.GenSql()
  60. retRows := CenterDB.ExecSql(sqlstring)
  61. rowLen := len(retRows)
  62. if rowLen <= 0 {
  63. this.State = false
  64. return
  65. }
  66. this.State = true
  67. if rowLen > 1 {
  68. this.Out.List = make([]serviceMessageListModel, rowLen-1)
  69. for i := 0; i < rowLen-1; i++ {
  70. ret := retRows[i]
  71. out := &this.Out.List[i]
  72. out.RowNumber = int((*ret[0].(*interface{})).(int64))
  73. out.UserID = int((*ret[1].(*interface{})).(int64))
  74. out.NickName = (*ret[2].(*interface{})).(string)
  75. if info := tagMgr.getInfo(out.UserID); info != nil {
  76. out.NickName = info.NickName
  77. }
  78. out.MailCount = int((*ret[3].(*interface{})).(int64))
  79. out.Crdate = (*ret[4].(*interface{})).(string)
  80. out.Msg = (*ret[5].(*interface{})).(string)
  81. }
  82. }
  83. this.Out.RecordCount = int((*retRows[rowLen-1][0].(*interface{})).(int64))
  84. }
  85. //后台获取用户留言详细信息
  86. type (
  87. serviceDetailList_in struct {
  88. UserID int // 用户ID
  89. BeginTime string // 开始时间
  90. EndTime string // 截止时间
  91. PageIndex int // 页索引
  92. PageSize int // 页大小
  93. OpUserID int // 操作员ID
  94. }
  95. serviceDetailInfo struct {
  96. MessageID int // 用户邮件ID
  97. UserID int // 用户ID
  98. NickName string // 昵称
  99. Msg string // 邮件内容
  100. IsRead int // 是否已读
  101. Crdate string // 创建时间
  102. FaceUrl string // 头像名次
  103. TransMsg string // 译文
  104. TagName string // 标签名称
  105. }
  106. serviceDetailList_out struct {
  107. RecordCount int // 记录数
  108. List []serviceDetailInfo
  109. }
  110. serviceDetailList struct {
  111. database.Trans_base
  112. In serviceDetailList_in
  113. Out serviceDetailList_out
  114. }
  115. )
  116. func NewServiceDetailList() *serviceDetailList {
  117. return &serviceDetailList{}
  118. }
  119. func (this *serviceDetailList) DoAction(ch chan<- interface{}) {
  120. defer func() {
  121. if err := recover(); err != nil {
  122. log.Release("transaction recover fail %v", err)
  123. log.Release("%s", debug.Stack())
  124. }
  125. if ch != nil {
  126. ch <- this
  127. }
  128. }()
  129. statement := database.NewStatement()
  130. statement.SetNeedReturnValue(false)
  131. statement.SetOpenRecordSet(true)
  132. statement.SetProcName("Manage_serviceMessage_GetDetailList")
  133. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, this.In.UserID)
  134. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, this.In.BeginTime)
  135. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, this.In.EndTime)
  136. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, this.In.PageIndex)
  137. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, this.In.PageSize)
  138. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, this.Out.RecordCount)
  139. statement.AddParamter("@OpUserID", database.AdParamInput, database.AdInteger, 4, this.In.OpUserID)
  140. sqlstring := statement.GenSql()
  141. retRows := CenterDB.ExecSql(sqlstring)
  142. rowLen := len(retRows)
  143. if rowLen <= 0 {
  144. this.State = false
  145. return
  146. }
  147. this.State = true
  148. if rowLen > 1 {
  149. this.Out.List = make([]serviceDetailInfo, rowLen-1)
  150. for i := 0; i < rowLen-1; i++ {
  151. ret := retRows[i]
  152. out := &this.Out.List[i]
  153. out.MessageID = int((*ret[0].(*interface{})).(int64))
  154. out.UserID = int((*ret[1].(*interface{})).(int64))
  155. out.NickName = (*ret[2].(*interface{})).(string)
  156. if info := tagMgr.getInfo(out.UserID); info != nil {
  157. out.NickName = info.NickName
  158. }
  159. out.Msg = (*ret[3].(*interface{})).(string)
  160. out.IsRead = int((*ret[4].(*interface{})).(int64))
  161. out.Crdate = (*ret[5].(*interface{})).(string)
  162. out.FaceUrl = (*ret[6].(*interface{})).(string)
  163. out.TransMsg = (*ret[7].(*interface{})).(string)
  164. out.TagName = (*ret[8].(*interface{})).(string)
  165. }
  166. }
  167. this.Out.RecordCount = int((*retRows[rowLen-1][0].(*interface{})).(int64))
  168. }
  169. //后台客服回复
  170. type (
  171. serviceSend_in struct {
  172. OpUserID int // 用户ID
  173. OpUserName string // 开始时间
  174. ToUserID int // 截止时间
  175. Msg string // 内容
  176. TransMsg string // 译文
  177. IpAddress string // IP
  178. }
  179. serviceSend struct {
  180. database.Trans_base
  181. In serviceSend_in
  182. }
  183. )
  184. func NewServiceSend() *serviceSend {
  185. return &serviceSend{}
  186. }
  187. func (this *serviceSend) DoAction(ch chan<- interface{}) {
  188. defer func() {
  189. if err := recover(); err != nil {
  190. log.Release("transaction recover fail %v", err)
  191. log.Release("%s", debug.Stack())
  192. }
  193. if ch != nil {
  194. ch <- this
  195. }
  196. }()
  197. statement := database.NewStatement()
  198. statement.SetNeedReturnValue(false)
  199. statement.SetOpenRecordSet(true)
  200. statement.SetProcName("Manage_serviceMessage_Send")
  201. statement.AddParamter("@OpUserID", database.AdParamInput, database.AdInteger, 4, this.In.OpUserID)
  202. statement.AddParamter("@OpUserName", database.AdParamInput, database.AdVarChar, 32, this.In.OpUserName)
  203. statement.AddParamter("@ToUserID", database.AdParamInput, database.AdInteger, 20, this.In.ToUserID)
  204. statement.AddParamter("@Msg", database.AdParamInput, database.AdNVarChar, 512, this.In.Msg)
  205. statement.AddParamter("@TransMsg", database.AdParamInput, database.AdNVarChar, 512, this.In.TransMsg)
  206. statement.AddParamter("@IPAddress", database.AdParamInput, database.AdVarChar, 16, this.In.IpAddress)
  207. sqlstring := statement.GenSql()
  208. retRows := CenterDB.ExecSql(sqlstring)
  209. rowLen := len(retRows)
  210. if rowLen <= 0 {
  211. this.State = false
  212. return
  213. }
  214. }
  215. //系统广播列表
  216. type (
  217. timeBroadcastList_in struct {
  218. PageIndex int //页索引
  219. PageSize int //页大小
  220. }
  221. timeBroadcastInfo struct {
  222. Rid int //标识
  223. OpUserID int //操作员名称
  224. OpUserName string //操作员名称
  225. BeginDate string //开始日期
  226. BeginTime string //截止日期
  227. EndDate string //截止时间
  228. EndTime string //截止时间
  229. InterMinutes int //间隔分钟
  230. Msg string //消息
  231. UpdateTime string //更新时间
  232. Crdate string //创建时间
  233. }
  234. timeBroadcastList_out struct {
  235. RecordCount int //记录数
  236. List []timeBroadcastInfo
  237. }
  238. timeBroadcastList struct {
  239. database.Trans_base
  240. In timeBroadcastList_in
  241. Out timeBroadcastList_out
  242. }
  243. )
  244. func NewTimeBroadcastList() *timeBroadcastList {
  245. return &timeBroadcastList{}
  246. }
  247. func (this *timeBroadcastList) DoAction(ch chan<- interface{}) {
  248. defer func() {
  249. if err := recover(); err != nil {
  250. log.Release("transaction recover fail %v", err)
  251. log.Release("%s", debug.Stack())
  252. }
  253. if ch != nil {
  254. ch <- this
  255. }
  256. }()
  257. statement := database.NewStatement()
  258. statement.SetNeedReturnValue(false)
  259. statement.SetOpenRecordSet(true)
  260. statement.SetProcName("Manage_TimeBroadcast_GetList")
  261. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, this.In.PageIndex)
  262. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, this.In.PageSize)
  263. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, this.Out.RecordCount)
  264. sqlstring := statement.GenSql()
  265. retRows := CenterDB.ExecSql(sqlstring)
  266. rowLen := len(retRows)
  267. if rowLen <= 0 {
  268. this.State = false
  269. return
  270. }
  271. this.State = true
  272. if rowLen > 1 {
  273. this.Out.List = make([]timeBroadcastInfo, rowLen-1)
  274. for i := 0; i < rowLen-1; i++ {
  275. ret := retRows[i]
  276. out := &this.Out.List[i]
  277. out.Rid = int((*ret[0].(*interface{})).(int64))
  278. out.OpUserID = int((*ret[1].(*interface{})).(int64))
  279. out.OpUserName = (*ret[2].(*interface{})).(string)
  280. out.BeginDate = (*ret[3].(*interface{})).(string)
  281. out.BeginTime = (*ret[4].(*interface{})).(string)
  282. out.EndDate = (*ret[5].(*interface{})).(string)
  283. out.EndTime = (*ret[6].(*interface{})).(string)
  284. out.InterMinutes = int((*ret[7].(*interface{})).(int64))
  285. out.Msg = (*ret[8].(*interface{})).(string)
  286. out.UpdateTime = (*ret[9].(*interface{})).(string)
  287. out.Crdate = (*ret[10].(*interface{})).(string)
  288. }
  289. }
  290. this.Out.RecordCount = int((*retRows[rowLen-1][0].(*interface{})).(int64))
  291. }
  292. //定时广播发送
  293. type (
  294. timeBroadcastSend_in struct {
  295. OpUserID int //操作员ID
  296. OpUserName string //操作员名称
  297. BeginDate string //开始日期
  298. BeginTime string //开始时间
  299. EndDate string //截止日期
  300. EndTime string //截止时间
  301. InterMinutes int //备注
  302. Msg string //消息
  303. }
  304. timeBroadcastSend struct {
  305. database.Trans_base
  306. In timeBroadcastSend_in
  307. }
  308. )
  309. func NewTimeBroadcastSend() *timeBroadcastSend {
  310. return &timeBroadcastSend{}
  311. }
  312. func (this *timeBroadcastSend) DoAction(ch chan<- interface{}) {
  313. defer func() {
  314. if err := recover(); err != nil {
  315. log.Release("transaction recover fail %v", err)
  316. log.Release("%s", debug.Stack())
  317. }
  318. if ch != nil {
  319. ch <- this
  320. }
  321. }()
  322. statement := database.NewStatement()
  323. statement.SetNeedReturnValue(false)
  324. statement.SetOpenRecordSet(true)
  325. statement.SetProcName("Manage_TimeBroadcast_Send")
  326. statement.AddParamter("@OpUserID", database.AdParamInput, database.AdInteger, 4, this.In.OpUserID)
  327. statement.AddParamter("@OpUserName", database.AdParamInput, database.AdVarChar, 32, this.In.OpUserName)
  328. statement.AddParamter("@BeginDate", database.AdParamInput, database.AdVarChar, 16, this.In.BeginDate)
  329. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 16, this.In.BeginTime)
  330. statement.AddParamter("@EndDate", database.AdParamInput, database.AdVarChar, 16, this.In.EndDate)
  331. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 16, this.In.EndTime)
  332. statement.AddParamter("@InterMinutes", database.AdParamInput, database.AdInteger, 4, this.In.InterMinutes)
  333. statement.AddParamter("@Msg", database.AdParamInput, database.AdVarChar, 512, this.In.Msg)
  334. sqlstring := statement.GenSql()
  335. retRows := CenterDB.ExecSql(sqlstring)
  336. rowLen := len(retRows)
  337. if rowLen <= 0 {
  338. this.State = false
  339. return
  340. }
  341. }
  342. //定时广播删除
  343. type (
  344. timeBroadcastDel_in struct {
  345. Rid int //标识
  346. }
  347. timeBroadcastDel struct {
  348. database.Trans_base
  349. In timeBroadcastDel_in
  350. }
  351. )
  352. func NewTimeBroadcastDel() *timeBroadcastDel {
  353. return &timeBroadcastDel{}
  354. }
  355. func (this *timeBroadcastDel) DoAction(ch chan<- interface{}) {
  356. defer func() {
  357. if err := recover(); err != nil {
  358. log.Release("transaction recover fail %v", err)
  359. log.Release("%s", debug.Stack())
  360. }
  361. if ch != nil {
  362. ch <- this
  363. }
  364. }()
  365. statement := database.NewStatement()
  366. statement.SetNeedReturnValue(false)
  367. statement.SetOpenRecordSet(true)
  368. statement.SetProcName("Manage_TimeBroadcast_Del")
  369. statement.AddParamter("@Rid", database.AdParamInput, database.AdInteger, 4, this.In.Rid)
  370. sqlstring := statement.GenSql()
  371. retRows := CenterDB.ExecSql(sqlstring)
  372. rowLen := len(retRows)
  373. if rowLen <= 0 {
  374. this.State = false
  375. return
  376. }
  377. }
  378. //小红点提示
  379. type (
  380. TipInfo struct {
  381. MessageCount int // 消息数
  382. AuditCount int // 提现审核条数
  383. FailCount int // 提现失败条数
  384. AlertCount int // 警报条数
  385. ExchangeCount int // 兑换数
  386. UserWordCount int // 个性签名数
  387. FeedbackCount int // 反馈数
  388. }
  389. tip_out struct {
  390. List []TipInfo
  391. }
  392. tip struct {
  393. database.Trans_base
  394. Out tip_out
  395. }
  396. )
  397. func NewTip() *tip {
  398. return &tip{}
  399. }
  400. func (this *tip) DoAction(ch chan<- interface{}) {
  401. defer func() {
  402. if err := recover(); err != nil {
  403. log.Release("transaction recover fail %v", err)
  404. log.Release("%s", debug.Stack())
  405. }
  406. if ch != nil {
  407. ch <- this
  408. }
  409. }()
  410. statement := database.NewStatement()
  411. statement.SetNeedReturnValue(false)
  412. statement.SetOpenRecordSet(true)
  413. statement.SetProcName("Manage_Tip_GetInfo")
  414. sqlstring := statement.GenSql()
  415. retRows := CenterDB.ExecSql(sqlstring)
  416. rowLen := len(retRows)
  417. if rowLen <= 0 {
  418. this.State = false
  419. return
  420. }
  421. this.State = true
  422. this.Out.List = make([]TipInfo, rowLen)
  423. for i := 0; i < rowLen; i++ {
  424. ret := retRows[i]
  425. out := &this.Out.List[i]
  426. out.MessageCount = int((*ret[0].(*interface{})).(int64))
  427. out.ExchangeCount = int((*ret[1].(*interface{})).(int64))
  428. out.UserWordCount = int((*ret[2].(*interface{})).(int64))
  429. out.AuditCount = int((*ret[3].(*interface{})).(int64))
  430. out.FailCount = int((*ret[4].(*interface{})).(int64))
  431. out.FeedbackCount = int((*ret[5].(*interface{})).(int64))
  432. }
  433. }
  434. //发送系统消息
  435. type (
  436. sysMessageSend_in struct {
  437. OpUserID int //操作员ID
  438. OpUserName string //操作员名称
  439. Title string //标题
  440. Content string //内容
  441. UserID int //用户ID
  442. ItemID_1 int //道具ID1
  443. ItemCount_1 int //道具数1
  444. ItemID_2 int //道具ID2
  445. ItemCount_2 int //道具数2
  446. ItemID_3 int //道具ID3
  447. ItemCount_3 int //道具数3
  448. ItemID_4 int //道具ID4
  449. ItemCount_4 int //道具数4
  450. ItemID_5 int //道具ID5
  451. ItemCount_5 int //道具数5
  452. Tools string //附件(json格式)
  453. IpAddress string //IP地址
  454. MsgType int //邮件类型(0=普通邮件 1=重要邮件)
  455. }
  456. sysMessageSend_out struct {
  457. RetCode int //操作结果
  458. ErrorMsg string //操作描述
  459. }
  460. sysMessageSend struct {
  461. database.Trans_base
  462. In sysMessageSend_in
  463. Out sysMessageSend_out
  464. }
  465. )
  466. func NewSysMessageSend() *sysMessageSend {
  467. return &sysMessageSend{}
  468. }
  469. func (this *sysMessageSend) DoAction(ch chan<- interface{}) {
  470. defer func() {
  471. if err := recover(); err != nil {
  472. log.Release("transaction recover error %v", err)
  473. log.Release("%s", debug.Stack())
  474. }
  475. if ch != nil {
  476. ch <- this
  477. }
  478. }()
  479. statement := database.NewStatement()
  480. statement.SetNeedReturnValue(false)
  481. statement.SetOpenRecordSet(false)
  482. statement.SetProcName("Manage_SysMessage_Send")
  483. statement.AddParamter("@OpUserID", database.AdParamInput, database.AdInteger, 4, this.In.OpUserID)
  484. statement.AddParamter("@OpUserName", database.AdParamInput, database.AdVarChar, 32, this.In.OpUserName)
  485. statement.AddParamter("@Title", database.AdParamInput, database.AdNVarChar, 32, this.In.Title)
  486. statement.AddParamter("@Content", database.AdParamInput, database.AdNVarChar, 256, this.In.Content)
  487. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, this.In.UserID)
  488. statement.AddParamter("@Tools", database.AdParamInput, database.AdVarChar, 1024, this.In.Tools)
  489. statement.AddParamter("@IPAddress", database.AdParamInput, database.AdVarChar, 16, this.In.IpAddress)
  490. statement.AddParamter("@MsgType", database.AdParamInput, database.AdInteger, 4, this.In.MsgType)
  491. sqlstring := statement.GenSql()
  492. CenterDB.ExecSql(sqlstring)
  493. this.State = true
  494. this.Out.RetCode = 1
  495. this.Out.ErrorMsg = "发送成功"
  496. return
  497. }
  498. //获取系统消息列表
  499. type (
  500. sysMessageList_in struct {
  501. UserID int //用户ID
  502. ToolTypeID int //道具类型ID
  503. BeginTime string //开始时间
  504. EndTime string //截止时间
  505. PageIndex int //页索引
  506. PageSize int //页大小
  507. }
  508. sysMessageInfo struct {
  509. SysMsgID int //系统消息ID
  510. UserID int //用户ID
  511. NickName string //昵称
  512. Title string //标题
  513. Content string //内容
  514. Status int //状态
  515. SourceName string //源名称
  516. Tools string //道具(json格式)
  517. Crdate string //时间
  518. //ToolID int //道具ID
  519. //ToolName string //道具名称
  520. //ToolNum int //道具数
  521. }
  522. sysMessageList_out struct {
  523. RecordCount int //记录数
  524. List []sysMessageInfo
  525. }
  526. sysMessageList struct {
  527. database.Trans_base
  528. In sysMessageList_in
  529. Out sysMessageList_out
  530. }
  531. )
  532. func NewSysMessageList() *sysMessageList {
  533. return &sysMessageList{}
  534. }
  535. func (this *sysMessageList) DoAction(ch chan<- interface{}) {
  536. defer func() {
  537. if err := recover(); err != nil {
  538. log.Release("transaction recover err %v", err)
  539. log.Release("%s", debug.Stack())
  540. }
  541. if ch != nil {
  542. ch <- this
  543. }
  544. }()
  545. statement := database.NewStatement()
  546. statement.SetNeedReturnValue(false)
  547. statement.SetOpenRecordSet(true)
  548. statement.SetProcName("Manage_SysMessage_GetList")
  549. statement.AddParamter("@UserID", database.AdParamInput, database.AdInteger, 4, this.In.UserID)
  550. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, this.In.BeginTime)
  551. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, this.In.EndTime)
  552. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, this.In.PageIndex)
  553. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, this.In.PageSize)
  554. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, this.Out.RecordCount)
  555. sqlstring := statement.GenSql()
  556. retRows := CenterDB.ExecSql(sqlstring)
  557. rowLen := len(retRows)
  558. if rowLen <= 0 {
  559. this.State = false
  560. return
  561. }
  562. this.State = true
  563. if rowLen > 1 {
  564. this.Out.List = make([]sysMessageInfo, rowLen-1)
  565. for i := 0; i < rowLen-1; i++ {
  566. ret := retRows[i]
  567. out := &this.Out.List[i]
  568. out.SysMsgID = int((*ret[0].(*interface{})).(int64))
  569. out.UserID = int((*ret[1].(*interface{})).(int64))
  570. out.NickName = (*ret[2].(*interface{})).(string)
  571. if info := tagMgr.getInfo(out.UserID); info != nil {
  572. out.NickName = info.NickName
  573. }
  574. out.Title = (*ret[3].(*interface{})).(string)
  575. out.Content = (*ret[4].(*interface{})).(string)
  576. out.Status = int((*ret[5].(*interface{})).(int64))
  577. out.SourceName = (*ret[6].(*interface{})).(string)
  578. out.Tools = (*ret[7].(*interface{})).(string)
  579. out.Crdate = (*ret[8].(*interface{})).(string)
  580. }
  581. }
  582. this.Out.RecordCount = int((*retRows[rowLen-1][0].(*interface{})).(int64))
  583. }
  584. // 客服留言翻译
  585. type (
  586. msgTranslate_in struct {
  587. OpUserID int // 操作员ID
  588. OpUserName string // 操作员名称
  589. MessageID int // 留言ID
  590. TransMsg string // 译文
  591. TagID int // 标签ID
  592. }
  593. msgTranslate struct {
  594. database.Trans_base
  595. In msgTranslate_in
  596. }
  597. )
  598. func NewMsgTranslate() *msgTranslate {
  599. return &msgTranslate{}
  600. }
  601. func (this *msgTranslate) DoAction() {
  602. defer func() {
  603. if err := recover(); err != nil {
  604. log.Error("transaction recover err %v", err)
  605. log.Error("%s", debug.Stack())
  606. }
  607. }()
  608. statement := database.NewStatement()
  609. statement.SetNeedReturnValue(false)
  610. statement.SetOpenRecordSet(true)
  611. statement.SetProcName("Manage_ServiceMessage_Translate")
  612. statement.AddParamter("@OpUserID", database.AdParamInput, database.AdInteger, 4, this.In.OpUserID)
  613. statement.AddParamter("@OpUserName", database.AdParamInput, database.AdVarChar, 32, this.In.OpUserName)
  614. statement.AddParamter("@MessageID", database.AdParamInput, database.AdInteger, 4, this.In.MessageID)
  615. statement.AddParamter("@TransMsg", database.AdParamInput, database.AdVarChar, 512, this.In.TransMsg)
  616. statement.AddParamter("@TagID", database.AdParamInput, database.AdInteger, 4, this.In.TagID)
  617. sqlstring := statement.GenSql()
  618. CenterDB.ExecSql(sqlstring)
  619. }
  620. // 留言标签列表
  621. type (
  622. msgTagListModel struct {
  623. TagID int // 标签ID
  624. TagName string // 标签名称
  625. }
  626. msgTagList_out struct {
  627. RecordCount int // 记录数
  628. List []msgTagListModel
  629. }
  630. msgTagList struct {
  631. database.Trans_base
  632. Out msgTagList_out
  633. }
  634. )
  635. func NewMsgTagList() *msgTagList {
  636. return &msgTagList{}
  637. }
  638. func (this *msgTagList) DoAction() {
  639. defer func() {
  640. if err := recover(); err != nil {
  641. log.Error("transaction recover err %v", err)
  642. log.Error("%s", debug.Stack())
  643. }
  644. }()
  645. statement := database.NewStatement()
  646. statement.SetNeedReturnValue(false)
  647. statement.SetOpenRecordSet(true)
  648. statement.SetProcName("Manage_ServiceMessage_GetTagList")
  649. sqlstring := statement.GenSql()
  650. retRows := CenterDB.ExecSql(sqlstring)
  651. rowLen := len(retRows)
  652. if rowLen <= 0 {
  653. return
  654. }
  655. this.Out.List = make([]msgTagListModel, rowLen)
  656. for i := 0; i < rowLen; i++ {
  657. ret := retRows[i]
  658. out := &this.Out.List[i]
  659. out.TagID = int((*ret[0].(*interface{})).(int64))
  660. out.TagName = (*ret[1].(*interface{})).(string)
  661. }
  662. }
  663. // 留言标签统计
  664. type (
  665. msgTagStat_in struct {
  666. BeginTime string // 开始时间
  667. EndTime string // 截止时间
  668. PageIndex int // 页索引
  669. PageSize int // 页大小
  670. }
  671. msgTagStatModel struct {
  672. DateFlag string // 日期标识
  673. TagID int // 标签ID
  674. TagName string // 标签名称
  675. MsgCount int // 留言数
  676. }
  677. msgTagStat_out struct {
  678. RecordCount int // 记录数
  679. List []msgTagStatModel
  680. }
  681. msgTagStat struct {
  682. database.Trans_base
  683. In msgTagStat_in
  684. Out msgTagStat_out
  685. }
  686. )
  687. func NewMsgTagStat() *msgTagStat {
  688. return &msgTagStat{}
  689. }
  690. func (this *msgTagStat) DoAction() {
  691. defer func() {
  692. if err := recover(); err != nil {
  693. log.Error("transaction recover err %v", err)
  694. log.Error("%s", debug.Stack())
  695. }
  696. }()
  697. statement := database.NewStatement()
  698. statement.SetNeedReturnValue(false)
  699. statement.SetOpenRecordSet(true)
  700. statement.SetProcName("Manage_ServiceMessage_TagStat")
  701. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, this.In.BeginTime)
  702. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, this.In.EndTime)
  703. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, this.In.PageIndex)
  704. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, this.In.PageSize)
  705. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, this.Out.RecordCount)
  706. sqlstring := statement.GenSql()
  707. retRows := CenterDB.ExecSql(sqlstring)
  708. rowLen := len(retRows)
  709. if rowLen <= 0 {
  710. return
  711. }
  712. if rowLen > 1 {
  713. this.Out.List = make([]msgTagStatModel, rowLen-1)
  714. for i := 0; i < rowLen-1; i++ {
  715. ret := retRows[i]
  716. out := &this.Out.List[i]
  717. out.DateFlag = (*ret[0].(*interface{})).(string)
  718. out.TagID = int((*ret[1].(*interface{})).(int64))
  719. out.TagName = (*ret[2].(*interface{})).(string)
  720. out.MsgCount = int((*ret[3].(*interface{})).(int64))
  721. }
  722. }
  723. this.Out.RecordCount = int((*retRows[rowLen-1][0].(*interface{})).(int64))
  724. }
  725. // 根据标签获取列表
  726. type (
  727. serviceMessageListByTag_in struct {
  728. TagID int // 标签ID
  729. BeginTime string // 开始时间
  730. EndTime string // 截止时间
  731. PageIndex int // 页索引
  732. PageSize int // 页大小
  733. }
  734. serviceMessageListByTagModel struct {
  735. MessageID int // 留言ID
  736. UserID int // 用户ID
  737. NickName string // 昵称
  738. Msg string // 留言内容
  739. Crdate string // 时间
  740. FaceUrl string // 头像url
  741. TransMsg string // 译文
  742. }
  743. serviceMessageListByTag_out struct {
  744. RecordCount int
  745. List []serviceMessageListByTagModel
  746. }
  747. serviceMessageListByTag struct {
  748. database.Trans_base
  749. In serviceMessageListByTag_in
  750. Out serviceMessageListByTag_out
  751. }
  752. )
  753. func NewServiceMessageListByTag() *serviceMessageListByTag {
  754. return &serviceMessageListByTag{}
  755. }
  756. func (this *serviceMessageListByTag) DoAction() {
  757. defer func() {
  758. if err := recover(); err != nil {
  759. log.Error("transaction recover err %v", err)
  760. log.Error("%s", debug.Stack())
  761. }
  762. }()
  763. statement := database.NewStatement()
  764. statement.SetNeedReturnValue(false)
  765. statement.SetOpenRecordSet(true)
  766. statement.SetProcName("Manage_ServiceMessage_GetListByTag")
  767. statement.AddParamter("@TagID", database.AdParamInput, database.AdInteger, 4, this.In.TagID)
  768. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, this.In.BeginTime)
  769. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, this.In.EndTime)
  770. statement.AddParamter("@PageIndex", database.AdParamInput, database.AdInteger, 4, this.In.PageIndex)
  771. statement.AddParamter("@PageSize", database.AdParamInput, database.AdInteger, 4, this.In.PageSize)
  772. statement.AddParamter("@RecordCount", database.AdParamOutput, database.AdInteger, 4, this.Out.RecordCount)
  773. sqlstring := statement.GenSql()
  774. retRows := CenterDB.ExecSql(sqlstring)
  775. rowLen := len(retRows)
  776. if rowLen <= 0 {
  777. return
  778. }
  779. if rowLen > 1 {
  780. this.Out.List = make([]serviceMessageListByTagModel, rowLen-1)
  781. for i := 0; i < rowLen-1; i++ {
  782. ret := retRows[i]
  783. out := &this.Out.List[i]
  784. out.MessageID = int((*ret[0].(*interface{})).(int64))
  785. out.UserID = int((*ret[1].(*interface{})).(int64))
  786. out.NickName = (*ret[2].(*interface{})).(string)
  787. if info := tagMgr.getInfo(out.UserID); info != nil {
  788. out.NickName = info.NickName
  789. }
  790. out.Msg = (*ret[3].(*interface{})).(string)
  791. out.Crdate = (*ret[4].(*interface{})).(string)
  792. out.FaceUrl = (*ret[5].(*interface{})).(string)
  793. out.TransMsg = (*ret[6].(*interface{})).(string)
  794. }
  795. }
  796. this.Out.RecordCount = int((*retRows[rowLen-1][0].(*interface{})).(int64))
  797. }
  798. // 客服留言信息
  799. type (
  800. serviceMessageInfo_in struct {
  801. MessageID int // 留言ID
  802. }
  803. serviceMessageInfo_out struct {
  804. UserID int // 用户ID
  805. NickName string // 昵称
  806. Msg string // 内容
  807. Crdate string // 时间
  808. TransMsg string // 译文
  809. TagID int // 标签ID
  810. }
  811. serviceMessageInfo struct {
  812. database.Trans_base
  813. In serviceMessageInfo_in
  814. Out serviceMessageInfo_out
  815. }
  816. )
  817. func NewServiceMessageInfo() *serviceMessageInfo {
  818. return &serviceMessageInfo{}
  819. }
  820. func (this *serviceMessageInfo) DoAction() {
  821. defer func() {
  822. if err := recover(); err != nil {
  823. log.Error("transaction recover err %v", err)
  824. log.Error("%s", debug.Stack())
  825. }
  826. }()
  827. statement := database.NewStatement()
  828. statement.SetNeedReturnValue(false)
  829. statement.SetOpenRecordSet(true)
  830. statement.SetProcName("Manage_ServiceMessage_GetInfo")
  831. statement.AddParamter("@MessageID", database.AdParamInput, database.AdInteger, 4, this.In.MessageID)
  832. sqlstring := statement.GenSql()
  833. retRows := CenterDB.ExecSql(sqlstring)
  834. if len(retRows) <= 0 {
  835. return
  836. }
  837. ret := retRows[0]
  838. this.Out.UserID = int((*ret[0].(*interface{})).(int64))
  839. this.Out.NickName = (*ret[1].(*interface{})).(string)
  840. if info := tagMgr.getInfo(this.Out.UserID); info != nil {
  841. this.Out.NickName = info.NickName
  842. }
  843. this.Out.Msg = (*ret[2].(*interface{})).(string)
  844. this.Out.Crdate = (*ret[3].(*interface{})).(string)
  845. this.Out.TransMsg = (*ret[4].(*interface{})).(string)
  846. this.Out.TagID = int((*ret[5].(*interface{})).(int64))
  847. }
  848. // 标签统计
  849. type (
  850. serviceMessageTagStat_in struct {
  851. BeginTime string
  852. EndTime string
  853. }
  854. serviceMessageTagStatModel struct {
  855. DateFlag string // 日期标识
  856. TagID int // 标签ID
  857. TagName string // 标签名称
  858. MsgCount int // 消息数
  859. }
  860. serviceMessageTagStat_out struct {
  861. RecordCount int
  862. List []serviceMessageTagStatModel
  863. }
  864. serviceMessageTagStat struct {
  865. database.Trans_base
  866. In serviceMessageTagStat_in
  867. Out serviceMessageTagStat_out
  868. }
  869. )
  870. func NewServiceMessageTagStat() *serviceMessageTagStat {
  871. return &serviceMessageTagStat{}
  872. }
  873. func (this *serviceMessageTagStat) DoAction() {
  874. defer func() {
  875. if err := recover(); err != nil {
  876. log.Error("transaction recover err %v", err)
  877. log.Error("%s", debug.Stack())
  878. }
  879. }()
  880. statement := database.NewStatement()
  881. statement.SetNeedReturnValue(false)
  882. statement.SetOpenRecordSet(true)
  883. statement.SetProcName("Manage_ServiceMessage_GetTagStat")
  884. statement.AddParamter("@BeginTime", database.AdParamInput, database.AdVarChar, 20, this.In.BeginTime)
  885. statement.AddParamter("@EndTime", database.AdParamInput, database.AdVarChar, 20, this.In.EndTime)
  886. sqlstring := statement.GenSql()
  887. retRows := CenterDB.ExecSql(sqlstring)
  888. rowLen := len(retRows)
  889. if rowLen <= 0 {
  890. return
  891. }
  892. this.Out.List = make([]serviceMessageTagStatModel, rowLen)
  893. for i := 0; i < rowLen; i++ {
  894. ret := retRows[i]
  895. out := &this.Out.List[i]
  896. out.DateFlag = (*ret[0].(*interface{})).(string)
  897. out.TagID = int((*ret[1].(*interface{})).(int64))
  898. out.TagName = (*ret[2].(*interface{})).(string)
  899. out.MsgCount = int((*ret[3].(*interface{})).(int64))
  900. }
  901. }