documentmanageService.go 3.1 KB

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