dbengine_handler.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package handler
  2. import (
  3. "context"
  4. "errors"
  5. "fmt"
  6. "bet24.com/database"
  7. "bet24.com/log"
  8. "bet24.com/public"
  9. "bet24.com/servers/micros/dbengine/config"
  10. pb "bet24.com/servers/micros/dbengine/proto"
  11. )
  12. var instance *DbEngine
  13. func GetInstance() *DbEngine {
  14. if instance == nil {
  15. instance = newDBEngine()
  16. }
  17. return instance
  18. }
  19. func Dump(cmd, param1, param2 string) {
  20. GetInstance().dump(cmd, param1, param2)
  21. }
  22. func newDBEngine() *DbEngine {
  23. ret := new(DbEngine)
  24. ret.ctor()
  25. return ret
  26. }
  27. type DbEngine struct {
  28. db *database.DataBase
  29. }
  30. func (d *DbEngine) ctor() {
  31. d.db = database.NewDataBase(
  32. config.Server.Datasource, config.Server.Database,
  33. public.DecryptDBString(config.Server.Login),
  34. public.DecryptDBString(config.Server.Password))
  35. //re:=d.db.ExecSqlJson("select * from dbo.AdminUser")
  36. //fmt.Printf("re===",re)
  37. }
  38. func (d *DbEngine) SayHello(ctx context.Context, req *pb.Request, rsp *pb.Response) error {
  39. rsp.Data = "Hello from DbEngine:" + req.Name
  40. return nil
  41. }
  42. func (d *DbEngine) Execute(ctx context.Context, req *pb.Request, rsp *pb.Response) error {
  43. if d.db == nil {
  44. return errors.New("db not initialized")
  45. }
  46. rsp.Data = d.db.ExecSqlJson(req.Name)
  47. return nil
  48. }
  49. func (d *DbEngine) ExecuteRs(ctx context.Context, req *pb.Request, rsp *pb.ResponseRs) error {
  50. if d.db == nil {
  51. return errors.New("db not initialized")
  52. }
  53. rsp.Data = d.db.ExecSql(req.Name)
  54. return nil
  55. }
  56. func (d *DbEngine) dump(cmd, param1, param2 string) {
  57. log.Debug("DbEngine.Dump %s,%s,%s", cmd, param1, param2)
  58. switch cmd {
  59. default:
  60. log.Release("DbEngine.Dump unhandled cmd %s", cmd)
  61. }
  62. }