docActivity.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package stdlib
  2. import (
  3. "app.yhyue.com/moapp/jy_docs/rpc/stdlib/stdlib"
  4. "app.yhyue.com/moapp/jy_docs/services/model"
  5. jyDocsRpcUtil "app.yhyue.com/moapp/jy_docs/services/util"
  6. )
  7. func DocActivityList(pageSize, pageNum, activityId int, appId, userId string) (*stdlib.DocActivityResp, int) {
  8. var docActivity []model.DocActivity
  9. // var docs []map[string]interface{}
  10. var count int64
  11. jyDocsRpcUtil.GetJyDocsDB().Model(&model.DocActivity{}).Where("activityId = ? and appId = ?", activityId, appId).Count(&count)
  12. if count > 0 {
  13. jyDocsRpcUtil.GetJyDocsDB().Offset((pageNum-1)*pageSize).Limit(pageSize).Find(&docActivity, &model.DocActivity{AppId: appId, ActivityId: activityId})
  14. } else {
  15. count = 0
  16. }
  17. docActivityResp := &stdlib.DocActivityResp{Code: 1, Msg: "ok", Total: int32(count)}
  18. for _, v := range docActivity {
  19. var buyCount int64
  20. isbuy := false
  21. jyDocsRpcUtil.GetJyDocsDB().Table("download_collection_record").Where("docId = ? and userId = ? and appId = ? and category = 1", v.DocId, userId, appId).Count(&buyCount)
  22. if buyCount > 0 {
  23. isbuy = true
  24. }
  25. docStatistics := model.DocStatistics{}
  26. jyDocsRpcUtil.GetJyDocsDB().First(&docStatistics, &model.DocStatistics{AppId: appId, DocId: v.DocId})
  27. docActivityResp.Docs = append(docActivityResp.Docs, &stdlib.DocActivity{
  28. DocId: v.DocId,
  29. DocImg: v.DocImg,
  30. DocTitle: v.DocTitle,
  31. DocSummary: v.DocSummary,
  32. ActivityId: int64(v.ActivityId),
  33. Price: int64(v.Price),
  34. CostPrice: int64(v.CostPrice),
  35. DocFileSize: int64(v.DocFileSize),
  36. DocPageSize: int64(v.DocPageSize),
  37. DownTimes: int64(docStatistics.DownTimes),
  38. DocFileType: int64(v.DocFileType),
  39. UploadDate: v.UploadDate.Format("2006-01-02 15:04:05"),
  40. IsBuy: isbuy,
  41. })
  42. }
  43. return docActivityResp, int(count)
  44. }