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{}
|
s.Opts = Options{}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *SqlBuilder[T]) SetSchema(schema string) {
|
func (s *SqlBuilder[T]) SetSchema(schema string) error {
|
||||||
if s.Driver == util.DriverOracle {
|
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) {
|
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
|
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 {
|
type PreliminaryProcedureResponse struct {
|
||||||
ProjectId int `json:"project_id"`
|
ProjectId int `json:"project_id"`
|
||||||
InitiationTime time.Time `json:"initiation_time" export:"x:1,y:2"`
|
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"`
|
HandlingNum int `json:"handling_num" export:"x:9,y:2"`
|
||||||
HandledNum int `json:"handled_num" export:"x:10,y:2"`
|
HandledNum int `json:"handled_num" export:"x:10,y:2"`
|
||||||
}
|
}
|
||||||
type Employye struct {
|
var data []PreliminaryProcedureResponse
|
||||||
EmployeeId int `json:"employee_id"`
|
company_id := 1
|
||||||
FirstName string `json:"first_name"`
|
sqlb := DefaultSqlBuilder()
|
||||||
LastName string `json:"last_name"`
|
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,
|
||||||
Email string `json:"email"`
|
count(distinct t6.autoseq) all_num,
|
||||||
Rn int
|
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
|
sqlb.Groups("group by t1.autoseq")
|
||||||
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
|
|
||||||
page := Page{PageIndex: 1, PageSize: 10}
|
page := Page{PageIndex: 1, PageSize: 10}
|
||||||
err = sqlb.PaginateBySql(&data, &page)
|
err = sqlb.PaginateBySql(&data, &page)
|
||||||
page.Data = &data
|
page.Data = &data
|
||||||
fmt.Println(err, page.Data)
|
fmt.Println(err, page.Data)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue