package technologyservice import ( "strconv" . "dashoo.cn/backend/api/mydb" "dashoo.cn/utils" . "dashoo.cn/utils/db" "github.com/go-xorm/xorm" ) type OilTechnologyServiceService struct { MyServiceBase } func GetOilTechnologyServiceService(xormEngine *xorm.Engine) *OilTechnologyServiceService { s := new(OilTechnologyServiceService) s.DBE = xormEngine return s } func (s *OilTechnologyServiceService) GetMyPagingEntitiesWithOrderBytbl(tableName string, pageIndex, itemsPerPage int64, order string, asc bool, entitiesPtr interface{}, where ...string) (total int64) { var err error var resultsSlice []map[string][]byte //获取表名 if len(where) == 0 { if asc { err = s.DBE.Table(tableName).Limit(int(itemsPerPage), (int(pageIndex)-1)*int(itemsPerPage)).Asc(order).Find(entitiesPtr) } else { err = s.DBE.Table(tableName).Limit(int(itemsPerPage), (int(pageIndex)-1)*int(itemsPerPage)).Desc(order).Find(entitiesPtr) } //获取总记录数 sql := "SELECT COUNT(*) AS total FROM " + tableName resultsSlice, err = s.DBE.Query(sql) } else { if asc { err = s.DBE.Table(tableName).Where(where[0]).Limit(int(itemsPerPage), (int(pageIndex)-1)*int(itemsPerPage)).Asc(order).Find(entitiesPtr) } else { err = s.DBE.Table(tableName).Where(where[0]).Limit(int(itemsPerPage), (int(pageIndex)-1)*int(itemsPerPage)).Desc(order).Find(entitiesPtr) } sql := "SELECT COUNT(*) AS total FROM " + tableName + " where " + where[0] resultsSlice, err = s.DBE.Query(sql) } //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 } func (s *OilTechnologyServiceService) GetTechList(techclass, where string) []TechnologyBusiness { if where == "" { where = " 1=1 " } var sql string sql = `select Id, Code, Name, concat(Code, ' ', Name) as CodeName, ParentId, Remark, DeletionStateCode from ` + techclass + ` where ` + where + ` order by Code asc ` List := make([]TechnologyBusiness, 0) utils.DBE.Sql(sql).Find(&List) return List }