documentmanageService.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package documentmanage
  2. import (
  3. "fmt"
  4. "strconv"
  5. . "dashoo.cn/backend/api/mydb"
  6. "dashoo.cn/utils"
  7. . "dashoo.cn/utils/db"
  8. "github.com/go-xorm/xorm"
  9. )
  10. type DocumentmanageService struct {
  11. MyServiceBase
  12. }
  13. func GetDocumentmanageService(xormEngine *xorm.Engine) *DocumentmanageService {
  14. s := new(DocumentmanageService)
  15. s.DBE = xormEngine
  16. return s
  17. }
  18. //获取文档名与创建时间
  19. func (s *DocumentmanageService) GetDocumentNameAndTime(table string, colName string) []DocumentNameTimeInfo {
  20. var err error
  21. var sql string
  22. sql = "select Name, CreateOn from " + table + " WHERE " + colName + " = 1 " + " ORDER BY CreateOn DESC "
  23. List := make([]DocumentNameTimeInfo, 0)
  24. err = utils.DBE.Sql(sql).Find(&List)
  25. LogError(err)
  26. return List
  27. }
  28. //获取文档信息
  29. func (s *DocumentmanageService) GetDocumentInfoByWhere(pageIndex, itemsPerPage int64, order, table string, where string) (int64, []DocumentInfo) {
  30. var err error
  31. var total int64
  32. if where == "" {
  33. where = " 1=1 "
  34. }
  35. //获取总记录数
  36. sqlCount := `select count(*) from ` + table + ` where ` + where
  37. var sql string
  38. sql = `select * from ` + table + ` where ` + where + ` order by ` + order + ` limit ` + utils.ToStr((pageIndex-1)*itemsPerPage) + "," + utils.ToStr(itemsPerPage)
  39. List := make([]DocumentInfo, 0)
  40. utils.DBE.Sql(sql).Find(&List)
  41. resultsSlice, err := s.DBE.Query(sqlCount)
  42. LogError(err)
  43. if len(resultsSlice) > 0 {
  44. results := resultsSlice[0]
  45. for _, value := range results {
  46. total, err = strconv.ParseInt(string(value), 10, 64)
  47. LogError(err)
  48. break
  49. }
  50. }
  51. return total, List
  52. }
  53. //获取文档历史列表信息
  54. func (s *DocumentmanageService) GetDocumentHistoryByWhere(pageIndex, itemsPerPage int64, order, docinfo, dochistory string, infoid string) (int64, []DocumentHistoryModel) {
  55. var err error
  56. var total int64
  57. //获取总记录数
  58. sqlCount := `select count(*) from (
  59. select a.Name from ` + docinfo + ` a where a.Id=` + infoid + `
  60. union all (select b.Name from ` + dochistory + ` b where b.InfoId=` + infoid + `) ) m`
  61. var sql string
  62. sql = `select a.Id,a.Name,a.VersionInfo,a.FileURL,a.AuthorOn,a.AuthorUserId,a.AuthorBy,a.AuditorOn,a.AuditorUserId,a.AuditorBy,a.Remark,1 VersionFlag
  63. from ` + docinfo + ` a where a.Id=` + infoid + ` union all
  64. (select b.Id,b.Name,b.VersionInfo,b.FileURL,b.AuthorOn,b.AuthorUserId,b.AuthorBy,b.AuditorOn,b.AuditorUserId,b.AuditorBy,b.Remark,0 VersionFlag
  65. from ` + dochistory + ` b where b.InfoId=` + infoid + ` order by ` + order + ` limit ` + utils.ToStr((pageIndex-1)*itemsPerPage) + `,` + utils.ToStr(itemsPerPage) + `)`
  66. List := make([]DocumentHistoryModel, 0)
  67. utils.DBE.Sql(sql).Find(&List)
  68. resultsSlice, err := s.DBE.Query(sqlCount)
  69. LogError(err)
  70. if len(resultsSlice) > 0 {
  71. results := resultsSlice[0]
  72. for _, value := range results {
  73. total, err = strconv.ParseInt(string(value), 10, 64)
  74. LogError(err)
  75. break
  76. }
  77. }
  78. return total, List
  79. }
  80. //修改历史文档删除状态
  81. func (s *DocumentmanageService) UpdateDocHistoryDelete(table, where, deletionState string) {
  82. var sql string
  83. sql = `UPDATE ` + table + ` set DeletionStateCode = ` + deletionState + ` where ` + where
  84. s.DBE.Exec(sql)
  85. return
  86. }