package documentmanage import ( "fmt" "strconv" . "dashoo.cn/backend/api/mydb" "dashoo.cn/utils" . "dashoo.cn/utils/db" "github.com/go-xorm/xorm" ) type DocumentmanageService struct { MyServiceBase } func GetDocumentmanageService(xormEngine *xorm.Engine) *DocumentmanageService { s := new(DocumentmanageService) s.DBE = xormEngine return s } //获取文档名与创建时间 func (s *DocumentmanageService) GetDocumentNameAndTime(table string, colName string) []DocumentNameTimeInfo { var err error var sql string sql = "select Name, CreateOn from " + table + " WHERE " + colName + " = 1 " + " ORDER BY CreateOn DESC " List := make([]DocumentNameTimeInfo, 0) err = utils.DBE.Sql(sql).Find(&List) LogError(err) return List } //获取文档信息 func (s *DocumentmanageService) GetDocumentInfoByWhere(pageIndex, itemsPerPage int64, order, table string, where string) (int64, []DocumentInfo) { var err error var total int64 if where == "" { where = " 1=1 " } //获取总记录数 sqlCount := `select count(*) from ` + table + ` where ` + where var sql string sql = `select * from ` + table + ` where ` + where + ` order by ` + order + ` limit ` + utils.ToStr((pageIndex-1)*itemsPerPage) + "," + utils.ToStr(itemsPerPage) List := make([]DocumentInfo, 0) utils.DBE.Sql(sql).Find(&List) resultsSlice, err := s.DBE.Query(sqlCount) LogError(err) if len(resultsSlice) > 0 { results := resultsSlice[0] for _, value := range results { total, err = strconv.ParseInt(string(value), 10, 64) LogError(err) break } } return total, List } //获取文档历史列表信息 func (s *DocumentmanageService) GetDocumentHistoryByWhere(pageIndex, itemsPerPage int64, order, docinfo, dochistory string, infoid string) (int64, []DocumentHistoryModel) { var err error var total int64 //获取总记录数 sqlCount := `select count(*) from ( select a.Name from ` + docinfo + ` a where a.Id=` + infoid + ` union all (select b.Name from ` + dochistory + ` b where b.InfoId=` + infoid + `) ) m` var sql string 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 from ` + docinfo + ` a where a.Id=` + infoid + ` union all (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 from ` + dochistory + ` b where b.InfoId=` + infoid + ` order by ` + order + ` limit ` + utils.ToStr((pageIndex-1)*itemsPerPage) + `,` + utils.ToStr(itemsPerPage) + `)` List := make([]DocumentHistoryModel, 0) utils.DBE.Sql(sql).Find(&List) resultsSlice, err := s.DBE.Query(sqlCount) LogError(err) if len(resultsSlice) > 0 { results := resultsSlice[0] for _, value := range results { total, err = strconv.ParseInt(string(value), 10, 64) LogError(err) break } } return total, List } //修改历史文档删除状态 func (s *DocumentmanageService) UpdateDocHistoryDelete(table, where, deletionState string) { var sql string sql = `UPDATE ` + table + ` set DeletionStateCode = ` + deletionState + ` where ` + where s.DBE.Exec(sql) return }