main.go 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. package main
  2. import (
  3. "context"
  4. "net/http"
  5. "dashoo.cn/micro/app/handler/base"
  6. "dashoo.cn/micro/app/handler/contract"
  7. "dashoo.cn/micro/app/handler/cust"
  8. "dashoo.cn/micro/app/handler/dingtalk"
  9. "dashoo.cn/micro/app/handler/home"
  10. "dashoo.cn/micro/app/handler/partner"
  11. "dashoo.cn/micro/app/handler/plat"
  12. projHandler "dashoo.cn/micro/app/handler/proj"
  13. "dashoo.cn/micro/app/handler/sysreport"
  14. "dashoo.cn/micro/app/handler/train"
  15. "dashoo.cn/micro/app/handler/work"
  16. "dashoo.cn/micro/app/handler/workflow"
  17. "dashoo.cn/opms_libary/dynamic"
  18. "dashoo.cn/opms_libary/micro_srv"
  19. "dashoo.cn/opms_libary/myerrors"
  20. "github.com/gogf/gf/frame/g"
  21. "github.com/gogf/gf/os/glog"
  22. "github.com/smallnest/rpcx/protocol"
  23. )
  24. func main() {
  25. go swaggerui()
  26. srvAddr := g.Config().GetString("setting.bind-addr")
  27. basePath := g.Config().GetString("setting.srv-name")
  28. // 创建总服务包
  29. s := micro_srv.CreateAndInitService(basePath)
  30. s.RegisterName("Product", new(base.ProductHandler), "")
  31. s.RegisterName("Distributor", new(base.DistributorHandler), "")
  32. s.RegisterName("DistributorContact", new(base.BaseDistributorContact), "")
  33. s.RegisterName("DistributorTarget", new(base.BaseDistributorTarget), "")
  34. s.RegisterName("District", new(base.DistrictHandler), "")
  35. s.RegisterName("Region", new(base.RegionHandler), "")
  36. s.RegisterName("Customer", new(cust.CustomerHeader), "")
  37. s.RegisterName("Contact", new(cust.CustomerContantHeader), "")
  38. s.RegisterName("Belong", new(cust.CustBelongHeader), "")
  39. s.RegisterName("FollowUp", new(plat.FollowUpHandler), "")
  40. s.RegisterName("FollowUpComment", new(plat.FollowUpCommentHandler), "")
  41. s.RegisterName("FollowUpFile", new(plat.FollowUpFileHandler), "")
  42. s.RegisterName("Task", new(plat.TaskHandler), "")
  43. s.RegisterName("TaskComment", new(plat.TaskCommentHandler), "")
  44. s.RegisterName("TaskLog", new(plat.TaskLogHandler), "")
  45. s.RegisterName("TaskProgress", new(plat.TaskProgressHandler), "")
  46. s.RegisterName("PunchRecords", new(plat.PunchRecordsHandler), "")
  47. s.RegisterName("Business", new(projHandler.BusinessHandler), "")
  48. s.RegisterName("BusinessContact", new(projHandler.BusinessContactHandler), "")
  49. s.RegisterName("BusinessFile", new(projHandler.BusinessFileHandler), "")
  50. s.RegisterName("BusinessTeam", new(projHandler.BusinessTeamHandler), "")
  51. s.RegisterName("CtrContract", new(contract.CtrContract), "")
  52. s.RegisterName("CtrContractCollectionPlan", new(contract.CtrContractCollectionPlan), "")
  53. s.RegisterName("CtrContractCollection", new(contract.CtrContractCollection), "")
  54. s.RegisterName("CtrContractAppend", new(contract.CtrContractAppend), "")
  55. s.RegisterName("CtrContractInvoice", new(contract.CtrContractInvoice), "")
  56. s.RegisterName("WorkOrder", new(work.WorkOrderHandler), "")
  57. s.RegisterName("WorkOrderType", new(work.WorkOrderTypeHandler), "")
  58. s.RegisterName("DeliverOrder", new(work.DeliverOrder), "")
  59. s.RegisterName("DeliverOrderPlan", new(work.DeliverOrderPlan), "")
  60. s.RegisterName("DeliverOrderProgress", new(work.DeliverOrderProgress), "")
  61. s.RegisterName("PartnerCompany", new(partner.PartnerCompany), "")
  62. s.RegisterName("PartnerCompanyContact", new(partner.PartnerCompanyContact), "")
  63. s.RegisterName("Schedule", new(plat.ScheduleHeader), "")
  64. s.RegisterName("PlatWorkflow", new(workflow.PlatWorkflowHandler), "")
  65. s.RegisterName("DingUpload", new(dingtalk.DingUploadHandler), "")
  66. s.RegisterName("Report", new(sysreport.SysReportHandler), "")
  67. s.RegisterName("RoleReport", new(sysreport.SysRoleReportHandler), "")
  68. s.RegisterName("WorkOrderReport", new(sysreport.WorkOrderReportHandle), "")
  69. s.RegisterName("CustCustomerBidRecord", new(cust.CustCustomerBidRecordHandler), "")
  70. s.RegisterName("CustCustomerInvoiceHeader", new(cust.CustCustomerInvoiceHeaderHandler), "")
  71. s.RegisterName("Questionnaire", new(plat.QuestionnaireHandler), "")
  72. s.RegisterName("TableColsConfig", new(plat.TableColsConfigHandler), "")
  73. s.RegisterName("ContractReport", new(contract.ContractReportHandler), "")
  74. s.RegisterName("BusinessReport", new(projHandler.BusinessReportHandler), "")
  75. s.RegisterName("ProductConsultRecord", new(cust.ProductConsultRecordHandler), "")
  76. s.RegisterName("SaleApply", new(train.SaleApplyHandler), "")
  77. s.RegisterName("SaleApplySummary", new(train.SaleApplySummaryHandler), "")
  78. s.RegisterName("SaleTarget", new(contract.TargetHandler), "")
  79. // 首页
  80. s.RegisterName("Home", new(home.HomeHandler), "")
  81. // 钉钉回调接口
  82. s.RegisterName("DingEvent", new(dingtalk.DingHandler), "")
  83. dynamic.Invoker.Register(new(contract.CtrContractHandler))
  84. dynamic.Invoker.Register(new(projHandler.BusinessHandler))
  85. dynamic.Invoker.Register(new(work.WorkOrderHandler))
  86. // 注册服务对象
  87. //s.RegisterName("Auth", new(handler.Auth), "")
  88. // 注册文件处理Service对象
  89. //dynamic.BeanFactory.BeanRegister(service.NewRoleService())
  90. // 注册auth处理
  91. s.AuthFunc = handleAuth
  92. s.Plugins.Add(&myerrors.HandleErrorPlugin{})
  93. // 运行服务
  94. if err := s.Serve("tcp", srvAddr); err != nil {
  95. g.Log().Fatal(err)
  96. }
  97. }
  98. // AuthExcludePaths 设定不需要认证的路径
  99. var AuthExcludePaths = []string{
  100. "/Auth/Login",
  101. "/Role/GetRoleList",
  102. "/Common/GetCaptchaImg",
  103. "/Model/*",
  104. "/Organize/GetOrgTreeList",
  105. "/User/SendResetPasswordEmail",
  106. "/User/ResetPasswordFromEmail",
  107. "/DingEvent/CallBack",
  108. "/Questionnaire/Create",
  109. }
  110. // 处理Auth
  111. func handleAuth(ctx context.Context, req *protocol.Message, token string) error {
  112. if g.Config().GetBool("setting.fake-auth-for-swagger") {
  113. req.Metadata["userInfo"] = `{"createTime":796,"data":{"id":1,"uuid":"","userName":"admin","nickName":"系统管理员","deptId":1,"roles":""},"refreshTime":43200796,"tenant":"default","userKey":"admin","uuid":"9b7ac56a5b2b4d12e52277e9601dbaf1"}`
  114. req.Metadata["authExclude"] = "false"
  115. return nil
  116. }
  117. return micro_srv.HandleAuth(ctx, req, token, AuthExcludePaths)
  118. }
  119. func swaggerui() {
  120. defer func() {
  121. if r := recover(); r != nil {
  122. glog.Error(r)
  123. }
  124. }()
  125. if !g.Config().GetBool("setting.swagger") {
  126. return
  127. }
  128. glog.Info("start swagger at :18080")
  129. glog.Error(http.ListenAndServe(":18080",
  130. http.FileServer(http.Dir("./swaggerui/"))))
  131. }