| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package repository
- import (
- "fmt"
- "strconv"
- "xorm.io/xorm"
- "xps/pkg/common"
- )
- type RepoDB struct {
- engine *xorm.Engine
- }
- func NewRepoDB(engine *xorm.Engine) *RepoDB {
- return &RepoDB{
- engine: engine,
- }
- }
- func (d *RepoDB) GetDataOfPage(tableCode string) (*common.PageResult, error) {
- limit := 100
- page := 1
- sqlStatement := ` SELECT A.* `
- sqlFrom := fmt.Sprintf(" FROM %s AS A ", tableCode)
- sqlWhere := ` WHERE 1 = 1 `
- sqlCount := ` SELECT COUNT(*) `
- res, err1 := d.engine.Query(sqlCount + sqlWhere)
- if err1 != nil {
- return nil, err1
- }
- total := int64(0)
- for _, v := range res[0] {
- total, _ = strconv.ParseInt(string(v), 10, 64)
- }
- pageStart := (page - 1) * limit
- sqlLimit := fmt.Sprintf(" LIMIT %d OFFSET %d ", limit, pageStart)
- datalist, err2 := d.engine.QueryInterface(sqlStatement + sqlFrom + sqlWhere + sqlLimit)
- if err2 != nil {
- return nil, err2
- }
- pageResult := &common.PageResult{
- Total: total,
- PageSize: limit,
- Page: page,
- Data: datalist,
- }
- return pageResult, nil
- }
- func (d *RepoDB) GetDataOfList(tableCode string) ([]map[string]interface{}, error) {
- sqlStatement := fmt.Sprintf(" SELECT * FROM %s ", tableCode)
- sqlWhere := ` WHERE 1 = 1 `
- results, err := d.engine.QueryInterface(sqlStatement + sqlWhere)
- if err != nil {
- return nil, err
- }
- return results, nil
- }
|