|
|
@@ -12,6 +12,7 @@ import (
|
|
|
"git.sxidc.com/go-framework/baize/framework/core/domain"
|
|
|
"git.sxidc.com/go-framework/baize/framework/core/infrastructure"
|
|
|
"git.sxidc.com/go-framework/baize/framework/core/infrastructure/database"
|
|
|
+ "git.sxidc.com/go-framework/baize/framework/core/infrastructure/database/clause"
|
|
|
"git.sxidc.com/go-framework/baize/framework/core/infrastructure/database/sql"
|
|
|
)
|
|
|
|
|
|
@@ -75,17 +76,38 @@ func (svc *StudentService) v1(appInstance *application.App) {
|
|
|
return queryFunc(c, params, objects, i)
|
|
|
}
|
|
|
|
|
|
- conditions, err := query_rule.GetRulesAndFormConditions(dbSchema, "global", e.DomainCamelName(), i)
|
|
|
+ conditionClause, err := query_rule.GetRulesAndFormConditionClause(dbSchema, "global", e.DomainCamelName(), i)
|
|
|
if err != nil {
|
|
|
return errResponse, err
|
|
|
}
|
|
|
|
|
|
- results, totalCount, err := database.Query(i.DBExecutor(), &sql.QueryExecuteParams{
|
|
|
- TableName: domain.TableName(dbSchema, e),
|
|
|
- Conditions: conditions,
|
|
|
- PageNo: queryParams.PageNo,
|
|
|
- PageSize: queryParams.PageSize,
|
|
|
- })
|
|
|
+ selectClause := clause.NewSelect(
|
|
|
+ nil,
|
|
|
+ clause.NewFrom([]clause.Clause{clause.TableName(domain.TableName(dbSchema, e))}),
|
|
|
+ clause.NewWhere(conditionClause),
|
|
|
+ clause.NewLimit(queryParams.PageNo, queryParams.PageSize))
|
|
|
+
|
|
|
+ selectClauseStr, err := selectClause.Clause()
|
|
|
+ if err != nil {
|
|
|
+ return errResponse, err
|
|
|
+ }
|
|
|
+
|
|
|
+ results, err := database.ExecuteRawSql(i.DBExecutor(), selectClauseStr, selectClause.Args()...)
|
|
|
+ if err != nil {
|
|
|
+ return errResponse, err
|
|
|
+ }
|
|
|
+
|
|
|
+ countClause := clause.NewSelect(
|
|
|
+ []string{"COUNT(*) AS total"},
|
|
|
+ clause.NewFrom([]clause.Clause{clause.TableName(domain.TableName(dbSchema, e))}),
|
|
|
+ clause.NewWhere(conditionClause))
|
|
|
+
|
|
|
+ countClauseStr, err := countClause.Clause()
|
|
|
+ if err != nil {
|
|
|
+ return errResponse, err
|
|
|
+ }
|
|
|
+
|
|
|
+ countResults, err := database.ExecuteRawSql(i.DBExecutor(), countClauseStr, countClause.Args()...)
|
|
|
if err != nil {
|
|
|
return errResponse, err
|
|
|
}
|
|
|
@@ -98,7 +120,7 @@ func (svc *StudentService) v1(appInstance *application.App) {
|
|
|
|
|
|
return response.InfosData[student.Info]{
|
|
|
Infos: infos,
|
|
|
- TotalCount: totalCount,
|
|
|
+ TotalCount: countResults[0].ColumnValueInt64("total"),
|
|
|
PageNo: queryParams.PageNo,
|
|
|
}, nil
|
|
|
},
|