func (m *default{{.upperStartCamelObject}}Model) Delete(ctx context.Context, {{.lowerStartCamelPrimaryKey}} {{.dataType}}) error { {{if .withCache}}{{if .containsIndexCache}}data, err:=m.FindOne(ctx, {{.lowerStartCamelPrimaryKey}}) if err!=nil{ return err } {{end}} {{.keys}} _, err {{if .containsIndexCache}}={{else}}:={{end}} m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) { query := fmt.Sprintf("DELETE FROM %s WHERE {{.originalPrimaryKey}} = {{if .postgreSql}}$1{{else}}?{{end}}", m.table) return conn.ExecCtx(ctx, query, {{.lowerStartCamelPrimaryKey}}) }, {{.keyValues}}){{else}}query := fmt.Sprintf("DELETE FROM %s WHERE {{.originalPrimaryKey}} = {{if .postgreSql}}$1{{else}}?{{end}}", m.table) _,err:=m.conn.ExecCtx(ctx, query, {{.lowerStartCamelPrimaryKey}}){{end}} return err } func (m *default{{.upperStartCamelObject}}Model) DeleteWithTx(ctx context.Context, session sqlx.Session, {{.lowerStartCamelPrimaryKey}} {{.dataType}}) error { {{if .withCache}}{{if .containsIndexCache}}data, err:=m.FindOne(ctx, {{.lowerStartCamelPrimaryKey}}) if err!=nil{ return err } {{end}} {{.keys}} _, err {{if .containsIndexCache}}={{else}}:={{end}} m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) { query := fmt.Sprintf("DELETE FROM %s WHERE {{.originalPrimaryKey}} = {{if .postgreSql}}$1{{else}}?{{end}}", m.table) return session.ExecCtx(ctx, query, {{.lowerStartCamelPrimaryKey}}) }, {{.keyValues}}){{else}}query := fmt.Sprintf("DELETE FROM %s WHERE {{.originalPrimaryKey}} = {{if .postgreSql}}$1{{else}}?{{end}}", m.table) _,err:=session.ExecCtx(ctx, query, {{.lowerStartCamelPrimaryKey}}){{end}} return err } func (m *default{{.upperStartCamelObject}}Model) BatchDelete(ctx context.Context, {{.lowerStartCamelPrimaryKey}}s []{{.dataType}}) error { if len({{.lowerStartCamelPrimaryKey}}s) == 0 { return nil } {{if .withCache}}{{if .containsIndexCache}}primaryKeys := make([]interface{}, 0, len({{.lowerStartCamelPrimaryKey}}s)) for _, key := range {{.lowerStartCamelPrimaryKey}}s { primaryKeys = append(primaryKeys, key) } oldDataList, err := m.findListByPrimaryKeys(ctx, primaryKeys) if err != nil { return err }{{end}} keys := make([]string, 0) for _, {{if .containsIndexCache}}data{{else}}{{.lowerStartCamelPrimaryKey}}{{end}} := range {{if .containsIndexCache}}oldDataList{{else}}{{.lowerStartCamelPrimaryKey}}s{{end}} { {{if .containsIndexCache}} {{.lowerStartCamelPrimaryKey}} := m.getPrimaryKeyValue(data){{end}} {{.keys}} keys = append(keys, {{.keyValues}}) }{{end}} placeholders := make([]string, 0, len({{.lowerStartCamelPrimaryKey}}s)) args := make([]interface{}, 0, len({{.lowerStartCamelPrimaryKey}}s)) for {{if .postgreSql}}i, {{else}}_, {{end}}{{.lowerStartCamelPrimaryKey}} := range {{.lowerStartCamelPrimaryKey}}s { {{if .postgreSql}}placeholders = append(placeholders, fmt.Sprintf("$%d", i+1)){{else}}placeholders = append(placeholders, "?"){{end}} args = append(args, {{.lowerStartCamelPrimaryKey}}) } {{if .withCache}}_, err {{if .containsIndexCache}}={{else}}:={{end}} m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) { query := fmt.Sprintf("DELETE FROM %s WHERE {{.originalPrimaryKey}} IN (%s)", m.table, strings.Join(placeholders, ",")) return conn.ExecCtx(ctx, query, args...) }, keys...){{else}}query := fmt.Sprintf("DELETE FROM %s WHERE {{.originalPrimaryKey}} IN (%s)", m.table, strings.Join(placeholders, ",")) _, err := m.conn.ExecCtx(ctx, query, args...){{end}} return err } func (m *default{{.upperStartCamelObject}}Model) BatchDeleteWithTx(ctx context.Context, session sqlx.Session, {{.lowerStartCamelPrimaryKey}}s []{{.dataType}}) error { if len({{.lowerStartCamelPrimaryKey}}s) == 0 { return nil } {{if .withCache}}{{if .containsIndexCache}}primaryKeys := make([]interface{}, 0, len({{.lowerStartCamelPrimaryKey}}s)) for _, key := range {{.lowerStartCamelPrimaryKey}}s { primaryKeys = append(primaryKeys, key) } oldDataList, err := m.findListByPrimaryKeys(ctx, primaryKeys) if err != nil { return err }{{end}} keys := make([]string, 0) for _, {{if .containsIndexCache}}data{{else}}{{.lowerStartCamelPrimaryKey}}{{end}} := range {{if .containsIndexCache}}oldDataList{{else}}{{.lowerStartCamelPrimaryKey}}s{{end}} { {{if .containsIndexCache}} {{.lowerStartCamelPrimaryKey}} := m.getPrimaryKeyValue(data){{end}} {{.keys}} keys = append(keys, {{.keyValues}}) }{{end}} placeholders := make([]string, 0, len({{.lowerStartCamelPrimaryKey}}s)) args := make([]interface{}, 0, len({{.lowerStartCamelPrimaryKey}}s)) for {{if .postgreSql}}i, {{else}}_, {{end}}{{.lowerStartCamelPrimaryKey}} := range {{.lowerStartCamelPrimaryKey}}s { {{if .postgreSql}}placeholders = append(placeholders, fmt.Sprintf("$%d", i+1)){{else}}placeholders = append(placeholders, "?"){{end}} args = append(args, {{.lowerStartCamelPrimaryKey}}) } query := fmt.Sprintf("DELETE FROM %s WHERE {{.originalPrimaryKey}} IN (%s)", m.table, strings.Join(placeholders, ",")) {{if .withCache}}_, err {{if .containsIndexCache}}={{else}}:={{end}} m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) { return session.ExecCtx(ctx, query, args...) }, keys...){{else}}_, err := session.ExecCtx(ctx, query, args...){{end}} return err }