package main import ( "context" "net/http" "dashoo.cn/micro/app/handler/base" "dashoo.cn/micro/app/handler/contract" "dashoo.cn/micro/app/handler/cust" "dashoo.cn/micro/app/handler/dingtalk" "dashoo.cn/micro/app/handler/home" "dashoo.cn/micro/app/handler/plat" projHandler "dashoo.cn/micro/app/handler/proj" "dashoo.cn/micro/app/handler/sysreport" "dashoo.cn/micro/app/handler/work" "dashoo.cn/micro/app/handler/workflow" "dashoo.cn/opms_libary/dynamic" "dashoo.cn/opms_libary/micro_srv" "dashoo.cn/opms_libary/myerrors" "github.com/gogf/gf/frame/g" "github.com/gogf/gf/os/glog" "github.com/smallnest/rpcx/protocol" ) func main() { go swaggerui() srvAddr := g.Config().GetString("setting.bind-addr") basePath := g.Config().GetString("setting.srv-name") // 创建总服务包 s := micro_srv.CreateAndInitService(basePath) s.RegisterName("Product", new(base.ProductHandler), "") s.RegisterName("Distributor", new(base.DistributorHandler), "") s.RegisterName("District", new(base.DistrictHandler), "") s.RegisterName("Region", new(base.RegionHandler), "") s.RegisterName("Customer", new(cust.CustomerHeader), "") s.RegisterName("Contact", new(cust.CustomerContantHeader), "") s.RegisterName("Belong", new(cust.CustBelongHeader), "") s.RegisterName("FollowUp", new(plat.FollowUpHandler), "") s.RegisterName("FollowUpComment", new(plat.FollowUpCommentHandler), "") s.RegisterName("FollowUpFile", new(plat.FollowUpFileHandler), "") s.RegisterName("Task", new(plat.TaskHandler), "") s.RegisterName("TaskComment", new(plat.TaskCommentHandler), "") s.RegisterName("TaskLog", new(plat.TaskLogHandler), "") s.RegisterName("TaskProgress", new(plat.TaskProgressHandler), "") s.RegisterName("PunchRecords", new(plat.PunchRecordsHandler), "") s.RegisterName("Business", new(projHandler.BusinessHandler), "") s.RegisterName("BusinessContact", new(projHandler.BusinessContactHandler), "") s.RegisterName("BusinessFile", new(projHandler.BusinessFileHandler), "") s.RegisterName("BusinessTeam", new(projHandler.BusinessTeamHandler), "") s.RegisterName("CtrContract", new(contract.CtrContract), "") s.RegisterName("CtrContractCollectionPlan", new(contract.CtrContractCollectionPlan), "") s.RegisterName("CtrContractCollection", new(contract.CtrContractCollection), "") s.RegisterName("CtrContractAppend", new(contract.CtrContractAppend), "") s.RegisterName("CtrContractInvoice", new(contract.CtrContractInvoice), "") s.RegisterName("WorkOrder", new(work.WorkOrderHandler), "") s.RegisterName("WorkOrderType", new(work.WorkOrderTypeHandler), "") s.RegisterName("Schedule", new(plat.ScheduleHeader), "") s.RegisterName("PlatWorkflow", new(workflow.PlatWorkflowHandler), "") s.RegisterName("DingUpload", new(dingtalk.DingUploadHandler), "") s.RegisterName("Report", new(sysreport.SysReportHandler), "") s.RegisterName("RoleReport", new(sysreport.SysRoleReportHandler), "") s.RegisterName("CustCustomerBidRecord", new(cust.CustCustomerBidRecordHandler), "") s.RegisterName("CustCustomerInvoiceHeader", new(cust.CustCustomerInvoiceHeaderHandler), "") s.RegisterName("Questionnaire", new(plat.QuestionnaireHandler), "") s.RegisterName("TableColsConfig", new(plat.TableColsConfigHandler), "") // 首页 s.RegisterName("Home", new(home.HomeHandler), "") // 钉钉回调接口 s.RegisterName("DingEvent", new(dingtalk.DingHandler), "") dynamic.Invoker.Register(new(contract.CtrContractHandler)) dynamic.Invoker.Register(new(projHandler.BusinessHandler)) dynamic.Invoker.Register(new(work.WorkOrderHandler)) // 注册服务对象 //s.RegisterName("Auth", new(handler.Auth), "") // 注册文件处理Service对象 //dynamic.BeanFactory.BeanRegister(service.NewRoleService()) // 注册auth处理 s.AuthFunc = handleAuth s.Plugins.Add(&myerrors.HandleErrorPlugin{}) // 运行服务 if err := s.Serve("tcp", srvAddr); err != nil { g.Log().Fatal(err) } } // AuthExcludePaths 设定不需要认证的路径 var AuthExcludePaths = []string{ "/Auth/Login", "/Role/GetRoleList", "/Common/GetCaptchaImg", "/Model/*", "/Organize/GetOrgTreeList", "/User/SendResetPasswordEmail", "/User/ResetPasswordFromEmail", "/DingEvent/CallBack", "/Questionnaire/Create", } // 处理Auth func handleAuth(ctx context.Context, req *protocol.Message, token string) error { if g.Config().GetBool("setting.fake-auth-for-swagger") { req.Metadata["userInfo"] = `{"createTime":796,"data":{"id":1,"uuid":"","userName":"admin","nickName":"系统管理员","deptId":1,"roles":""},"refreshTime":43200796,"tenant":"default","userKey":"admin","uuid":"9b7ac56a5b2b4d12e52277e9601dbaf1"}` req.Metadata["authExclude"] = "false" return nil } return micro_srv.HandleAuth(ctx, req, token, AuthExcludePaths) } func swaggerui() { defer func() { if r := recover(); r != nil { glog.Error(r) } }() if !g.Config().GetBool("setting.swagger") { return } glog.Info("start swagger at :18080") glog.Error(http.ListenAndServe(":18080", http.FileServer(http.Dir("./swaggerui/")))) }