package main import ( "context" "dashoo.cn/opms_libary/myerrors" "net/http" "dashoo.cn/opms_libary/micro_srv" "github.com/gogf/gf/frame/g" "github.com/gogf/gf/os/glog" "github.com/smallnest/rpcx/protocol" "dashoo.cn/micro/app/handler/base" "dashoo.cn/micro/app/handler/contract" "dashoo.cn/micro/app/handler/cust" "dashoo.cn/micro/app/handler/plat" projHandler "dashoo.cn/micro/app/handler/proj" ) 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("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("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", } // 处理Auth func handleAuth(ctx context.Context, req *protocol.Message, token string) error { 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 :8080") glog.Error(http.ListenAndServe(":8080", http.FileServer(http.Dir("./swaggerui/")))) }