fix
parent
d6927858df
commit
d70fd72082
10
db/db.go
10
db/db.go
|
@ -36,10 +36,16 @@ func (s *SqlBuilder[T]) Clear() {
|
|||
s.Opts = Options{}
|
||||
}
|
||||
|
||||
func (s *SqlBuilder[T]) SetSchema(schema string) {
|
||||
func (s *SqlBuilder[T]) SetSchema(schema string) error {
|
||||
if s.Driver == util.DriverOracle {
|
||||
tyoracle.DB().Exec(fmt.Sprintf("ALTER SESSION SET CURRENT_SCHEMA = %s", schema), nil)
|
||||
err := tyoracle.DB().DDL(fmt.Sprintf("ALTER SESSION SET CURRENT_SCHEMA = %s", schema))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
return fmt.Errorf("only support oracle")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *SqlBuilder[T]) SetDriver(driver string) {
|
||||
|
|
75
main_test.go
75
main_test.go
|
@ -48,7 +48,29 @@ func (p *Page) SetPageSize(pageSize int) {
|
|||
p.PageSize = pageSize
|
||||
}
|
||||
|
||||
func TestMain(m *testing.M) {
|
||||
func TestOracle(t *testing.T) {
|
||||
var err error
|
||||
type Employye struct {
|
||||
EmployeeId int `json:"employee_id"`
|
||||
FirstName string `json:"first_name"`
|
||||
LastName string `json:"last_name"`
|
||||
Email string `json:"email"`
|
||||
Rn int
|
||||
}
|
||||
var data []Employye
|
||||
sqlb := OracleSqlBuilder()
|
||||
err = sqlb.SetSchema("HR")
|
||||
fmt.Println(err)
|
||||
sqls := `select employee_id,first_name,last_name,email from employees`
|
||||
sqlb.Sql = sqls
|
||||
page := Page{PageIndex: 1, PageSize: 10}
|
||||
err = sqlb.PaginateBySql(&data, &page)
|
||||
page.Data = &data
|
||||
fmt.Println(err, page.Data)
|
||||
}
|
||||
|
||||
func TestMysql(t *testing.T) {
|
||||
var err error
|
||||
type PreliminaryProcedureResponse struct {
|
||||
ProjectId int `json:"project_id"`
|
||||
InitiationTime time.Time `json:"initiation_time" export:"x:1,y:2"`
|
||||
|
@ -62,40 +84,29 @@ func TestMain(m *testing.M) {
|
|||
HandlingNum int `json:"handling_num" export:"x:9,y:2"`
|
||||
HandledNum int `json:"handled_num" export:"x:10,y:2"`
|
||||
}
|
||||
type Employye struct {
|
||||
EmployeeId int `json:"employee_id"`
|
||||
FirstName string `json:"first_name"`
|
||||
LastName string `json:"last_name"`
|
||||
Email string `json:"email"`
|
||||
Rn int
|
||||
var data []PreliminaryProcedureResponse
|
||||
company_id := 1
|
||||
sqlb := DefaultSqlBuilder()
|
||||
sqls := `select t1.autoseq,max(t1.establishment_time),max(t1.number),max(t1.name),max(t2.name) as project_unit,max(t3.name) as project_type,
|
||||
count(distinct t6.autoseq) all_num,
|
||||
count(distinct case t6.state when 1 then t6.autoseq end) not_handle_num,
|
||||
count(distinct case t6.state when 2 then t6.autoseq end) no_handle_num,
|
||||
count(distinct case t6.state when 3 then t6.autoseq end) handling_num,
|
||||
count(distinct case t6.state when 4 then t6.autoseq end) handled_num
|
||||
from tproject_info t1
|
||||
inner join tcompany t2 on t1.investor_id = t2.autoseq and t2.del = 0 @c
|
||||
left join tinvestment_type t3 on t1.industry_category_id = t3.autoseq and t3.del = 0
|
||||
left join tpreliminary_procedures t6 on t1.autoseq = t6.project_id
|
||||
where t1.del = 0 @c @c @c @c @c1
|
||||
@g`
|
||||
sqlb.SetSql(sqls)
|
||||
if company_id != 0 {
|
||||
sqlb.InsertConditions("@c1", "t2.autoseq = ?", company_id)
|
||||
}
|
||||
// var data []PreliminaryProcedureResponse
|
||||
var data []Employye
|
||||
// company_id := 1
|
||||
// sqlb := DefaultSqlBuilder()
|
||||
sqlb := OracleSqlBuilder()
|
||||
sqlb.SetSchema("HR")
|
||||
// sqls := `select t1.autoseq,max(t1.establishment_time),max(t1.number),max(t1.name),max(t2.name) as project_unit,max(t3.name) as project_type,
|
||||
// count(distinct t6.autoseq) all_num,
|
||||
// count(distinct case t6.state when 1 then t6.autoseq end) not_handle_num,
|
||||
// count(distinct case t6.state when 2 then t6.autoseq end) no_handle_num,
|
||||
// count(distinct case t6.state when 3 then t6.autoseq end) handling_num,
|
||||
// count(distinct case t6.state when 4 then t6.autoseq end) handled_num
|
||||
// from tproject_info t1
|
||||
// inner join tcompany t2 on t1.investor_id = t2.autoseq and t2.del = 0 @c
|
||||
// left join tinvestment_type t3 on t1.industry_category_id = t3.autoseq and t3.del = 0
|
||||
// left join tpreliminary_procedures t6 on t1.autoseq = t6.project_id
|
||||
// where t1.del = 0 @c @c @c @c @c1
|
||||
// @g`
|
||||
sqls := `select employee_id,first_name,last_name,email from employees`
|
||||
sqlb.Sql = sqls
|
||||
// if company_id != 0 {
|
||||
// sqlb.InsertConditions("@c1", "t2.autoseq = ?", company_id)
|
||||
// }
|
||||
// sqlb.Groups("group by t1.autoseq")
|
||||
var err error
|
||||
sqlb.Groups("group by t1.autoseq")
|
||||
page := Page{PageIndex: 1, PageSize: 10}
|
||||
err = sqlb.PaginateBySql(&data, &page)
|
||||
page.Data = &data
|
||||
fmt.Println(err, page.Data)
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue