Przeglądaj źródła

feat: 调整demo

double.huang 5 lat temu
rodzic
commit
fe6d340f76
100 zmienionych plików z 9038 dodań i 2 usunięć
  1. 4 0
      cmd/dolphin/gen/modules/table.go
  2. 0 2
      demo/xml/application.xml
  3. 20 0
      examples/aisle/.gitignore
  4. 5 0
      examples/aisle/README.md
  5. 2 0
      examples/aisle/app.properties
  6. 484 0
      examples/aisle/app/app.auto.go
  7. 0 0
      examples/aisle/app/app.go
  8. 147 0
      examples/aisle/app/organ.go
  9. 4550 0
      examples/aisle/doc/swagger.yaml
  10. 13 0
      examples/aisle/go.mod
  11. 350 0
      examples/aisle/go.sum
  12. 13 0
      examples/aisle/k8s/configmap.yaml
  13. 36 0
      examples/aisle/k8s/deployment.yaml
  14. 18 0
      examples/aisle/k8s/ingress.yaml
  15. 17 0
      examples/aisle/k8s/service.yaml
  16. 2 0
      examples/aisle/k8s/tls.yaml
  17. 16 0
      examples/aisle/log/aisle.2020100100
  18. 18 0
      examples/aisle/main.go
  19. 39 0
      examples/aisle/model/about_us.auto.go
  20. 33 0
      examples/aisle/model/aboutus_content_pic.auto.go
  21. 45 0
      examples/aisle/model/achievement_send_email_msg.auto.go
  22. 59 0
      examples/aisle/model/active_lesson.auto.go
  23. 33 0
      examples/aisle/model/active_lesson_pro_type.auto.go
  24. 39 0
      examples/aisle/model/active_lesson_student.auto.go
  25. 43 0
      examples/aisle/model/active_teacher.auto.go
  26. 33 0
      examples/aisle/model/active_user.auto.go
  27. 41 0
      examples/aisle/model/add_agreement_mb.auto.go
  28. 37 0
      examples/aisle/model/android_hotfix.auto.go
  29. 37 0
      examples/aisle/model/app_error.auto.go
  30. 33 0
      examples/aisle/model/app_message_file.auto.go
  31. 33 0
      examples/aisle/model/app_message_notification.auto.go
  32. 33 0
      examples/aisle/model/app_message_sch.auto.go
  33. 33 0
      examples/aisle/model/app_message_stu.auto.go
  34. 35 0
      examples/aisle/model/area.auto.go
  35. 43 0
      examples/aisle/model/auto_cs_time_set.auto.go
  36. 35 0
      examples/aisle/model/branch_company.auto.go
  37. 33 0
      examples/aisle/model/business_department.auto.go
  38. 29 0
      examples/aisle/model/button_picture.auto.go
  39. 33 0
      examples/aisle/model/buysct_gl_givesct.auto.go
  40. 31 0
      examples/aisle/model/casting.auto.go
  41. 35 0
      examples/aisle/model/cc_reward_user.auto.go
  42. 35 0
      examples/aisle/model/ccs_homework_check_file.auto.go
  43. 41 0
      examples/aisle/model/change_tea_his_tea.auto.go
  44. 33 0
      examples/aisle/model/change_tea_new_tea.auto.go
  45. 44 0
      examples/aisle/model/channel_plan.auto.go
  46. 42 0
      examples/aisle/model/channel_school_plan.auto.go
  47. 43 0
      examples/aisle/model/check_flow_pool.auto.go
  48. 35 0
      examples/aisle/model/check_flow_set.auto.go
  49. 37 0
      examples/aisle/model/check_flow_set_floor.auto.go
  50. 33 0
      examples/aisle/model/check_flow_set_floor_casting.auto.go
  51. 33 0
      examples/aisle/model/check_flow_set_floor_user.auto.go
  52. 41 0
      examples/aisle/model/class_allot_customer.auto.go
  53. 35 0
      examples/aisle/model/class_change_tea.auto.go
  54. 33 0
      examples/aisle/model/class_change_tea_his.auto.go
  55. 33 0
      examples/aisle/model/class_change_tea_new.auto.go
  56. 33 0
      examples/aisle/model/class_content.auto.go
  57. 33 0
      examples/aisle/model/class_content_file.auto.go
  58. 61 0
      examples/aisle/model/class_feedback.auto.go
  59. 33 0
      examples/aisle/model/class_feedback_file.auto.go
  60. 73 0
      examples/aisle/model/class_manage.auto.go
  61. 47 0
      examples/aisle/model/class_manage_stage_course.auto.go
  62. 35 0
      examples/aisle/model/class_manage_tea.auto.go
  63. 33 0
      examples/aisle/model/class_manager_pt.auto.go
  64. 41 0
      examples/aisle/model/class_product_categories.auto.go
  65. 97 0
      examples/aisle/model/class_schedule.auto.go
  66. 111 0
      examples/aisle/model/class_schedule_student.auto.go
  67. 49 0
      examples/aisle/model/class_schedule_task.auto.go
  68. 51 0
      examples/aisle/model/class_time_range.auto.go
  69. 33 0
      examples/aisle/model/class_time_range_tea.auto.go
  70. 49 0
      examples/aisle/model/class_time_resource.auto.go
  71. 61 0
      examples/aisle/model/class_type.auto.go
  72. 33 0
      examples/aisle/model/class_type_organ.auto.go
  73. 33 0
      examples/aisle/model/class_type_pt.auto.go
  74. 43 0
      examples/aisle/model/class_type_stage_course.auto.go
  75. 41 0
      examples/aisle/model/class_yp_sc.auto.go
  76. 47 0
      examples/aisle/model/classroom_time_resource.auto.go
  77. 39 0
      examples/aisle/model/cm_standard_operation.auto.go
  78. 63 0
      examples/aisle/model/complaint.auto.go
  79. 41 0
      examples/aisle/model/complaint_deal.auto.go
  80. 35 0
      examples/aisle/model/course.auto.go
  81. 33 0
      examples/aisle/model/course_product_type.auto.go
  82. 33 0
      examples/aisle/model/course_video.auto.go
  83. 33 0
      examples/aisle/model/course_video_file.auto.go
  84. 33 0
      examples/aisle/model/cover_complaint_people.auto.go
  85. 33 0
      examples/aisle/model/cpc_city.auto.go
  86. 33 0
      examples/aisle/model/cpc_ct.auto.go
  87. 35 0
      examples/aisle/model/cs_change_teacher.auto.go
  88. 43 0
      examples/aisle/model/cs_execute_content.auto.go
  89. 62 0
      examples/aisle/model/cs_kf_hour_detail.auto.go
  90. 35 0
      examples/aisle/model/cs_stu_teacher.auto.go
  91. 33 0
      examples/aisle/model/cs_task_files.auto.go
  92. 43 0
      examples/aisle/model/cs_visit.auto.go
  93. 33 0
      examples/aisle/model/cspv_tea.auto.go
  94. 47 0
      examples/aisle/model/css_chage_student.auto.go
  95. 35 0
      examples/aisle/model/css_change_kf.auto.go
  96. 53 0
      examples/aisle/model/css_cs_task.auto.go
  97. 41 0
      examples/aisle/model/css_cs_task_file.auto.go
  98. 35 0
      examples/aisle/model/css_delete_record.auto.go
  99. 35 0
      examples/aisle/model/css_h_f_file.auto.go
  100. 37 0
      examples/aisle/model/customer_service_process.auto.go

+ 4 - 0
cmd/dolphin/gen/modules/table.go

@@ -48,6 +48,10 @@ func (app *Table) Build(dir string, args []string, node *schema.Application) ([]
 	if err != nil {
 		return tmplCfgs, err
 	}
+	if len(dataSources) == 0 {
+		logrus.Infoln("Not found any datasource in app_name:%v", viper.GetString("app.name"))
+		return tmplCfgs, nil
+	}
 	for _, ds := range dataSources {
 		engine, err := xorm.NewEngine(ds.DriverName, ds.DataSource)
 		if err != nil {

+ 0 - 2
demo/xml/application.xml

@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<application name="demo" desc="dolphin template" packagename="demo"/>

+ 20 - 0
examples/aisle/.gitignore

@@ -0,0 +1,20 @@
+# Binaries for programs and plugins
+*.exe
+*.exe~
+*.dll
+*.so
+*.dylib
+
+# Test binary, built with `go test -c`
+*.test
+
+# Output of the go coverage tool, specifically when used with LiteIDE
+*.out
+
+!*.auto.go
+
+# Auto code generated by dol build
+**.*go.new
+
+# Dependency directories (remove the comment below to include it)
+vendor

+ 5 - 0
examples/aisle/README.md

@@ -0,0 +1,5 @@
+## Quick start
+
+```sh
+$ go mod tidy && dolphin build && go run main
+```

+ 2 - 0
examples/aisle/app.properties

@@ -0,0 +1,2 @@
+app.name = aisle
+db.dataSource = root:111111@/dolphin_aisle?charset=utf8&parseTime=True&loc=Local

+ 484 - 0
examples/aisle/app/app.auto.go

@@ -0,0 +1,484 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package app
+
+import (
+	"aisle/model"
+
+	"github.com/2637309949/dolphin/packages/logrus"
+	"github.com/2637309949/dolphin/packages/viper"
+	"github.com/2637309949/dolphin/platform/util"
+)
+
+// Name project
+var Name = "aisle"
+
+// Organ defined
+type Organ struct {
+	Add,
+	Del,
+	Update,
+	Page,
+	Get func(ctx *Context)
+}
+
+// NewOrgan defined
+func NewOrgan() *Organ {
+	ctr := &Organ{}
+	ctr.Add = OrganAdd
+	ctr.Del = OrganDel
+	ctr.Update = OrganUpdate
+	ctr.Page = OrganPage
+	ctr.Get = OrganGet
+	return ctr
+}
+
+// OrganRoutes defined
+func OrganRoutes(engine *Engine) {
+	group := engine.Group(viper.GetString("http.prefix"))
+	group.Handle("POST", "/organ/add", Auth, OrganInstance.Add)
+	group.Handle("DELETE", "/organ/del", Auth, OrganInstance.Del)
+	group.Handle("PUT", "/organ/update", Auth, OrganInstance.Update)
+	group.Handle("GET", "/organ/page", Auth, OrganInstance.Page)
+	group.Handle("GET", "/organ/get", Auth, OrganInstance.Get)
+}
+
+// OrganInstance defined
+var OrganInstance = NewOrgan()
+
+// SyncModel defined
+func SyncModel() error {
+	mseti := App.Manager.MSet()
+	mseti.Add(new(model.AboutUs))
+	mseti.Add(new(model.AboutusContentPic))
+	mseti.Add(new(model.AchievementSendEmailMsg))
+	mseti.Add(new(model.ActiveLesson))
+	mseti.Add(new(model.ActiveLessonProType))
+	mseti.Add(new(model.ActiveLessonStudent))
+	mseti.Add(new(model.ActiveTeacher))
+	mseti.Add(new(model.ActiveUser))
+	mseti.Add(new(model.AddAgreementMb))
+	mseti.Add(new(model.AndroidHotfix))
+	mseti.Add(new(model.AppError))
+	mseti.Add(new(model.AppMessageFile))
+	mseti.Add(new(model.AppMessageNotification))
+	mseti.Add(new(model.AppMessageSch))
+	mseti.Add(new(model.AppMessageStu))
+	mseti.Add(new(model.Area))
+	mseti.Add(new(model.AutoCsTimeSet))
+	mseti.Add(new(model.BranchCompany))
+	mseti.Add(new(model.BusinessDepartment))
+	mseti.Add(new(model.ButtonPicture))
+	mseti.Add(new(model.BuysctGlGivesct))
+	mseti.Add(new(model.Casting))
+	mseti.Add(new(model.CcRewardUser))
+	mseti.Add(new(model.CcsHomeworkCheckFile))
+	mseti.Add(new(model.ChangeTeaHisTea))
+	mseti.Add(new(model.ChangeTeaNewTea))
+	mseti.Add(new(model.ChannelPlan))
+	mseti.Add(new(model.ChannelSchoolPlan))
+	mseti.Add(new(model.CheckFlowPool))
+	mseti.Add(new(model.CheckFlowSet))
+	mseti.Add(new(model.CheckFlowSetFloor))
+	mseti.Add(new(model.CheckFlowSetFloorCasting))
+	mseti.Add(new(model.CheckFlowSetFloorUser))
+	mseti.Add(new(model.ClassAllotCustomer))
+	mseti.Add(new(model.ClassChangeTea))
+	mseti.Add(new(model.ClassChangeTeaHis))
+	mseti.Add(new(model.ClassChangeTeaNew))
+	mseti.Add(new(model.ClassContent))
+	mseti.Add(new(model.ClassContentFile))
+	mseti.Add(new(model.ClassFeedback))
+	mseti.Add(new(model.ClassFeedbackFile))
+	mseti.Add(new(model.ClassManage))
+	mseti.Add(new(model.ClassManageStageCourse))
+	mseti.Add(new(model.ClassManageTea))
+	mseti.Add(new(model.ClassManagerPt))
+	mseti.Add(new(model.ClassProductCategories))
+	mseti.Add(new(model.ClassSchedule))
+	mseti.Add(new(model.ClassScheduleStudent))
+	mseti.Add(new(model.ClassScheduleTask))
+	mseti.Add(new(model.ClassTimeRange))
+	mseti.Add(new(model.ClassTimeRangeTea))
+	mseti.Add(new(model.ClassTimeResource))
+	mseti.Add(new(model.ClassType))
+	mseti.Add(new(model.ClassTypeOrgan))
+	mseti.Add(new(model.ClassTypePt))
+	mseti.Add(new(model.ClassTypeStageCourse))
+	mseti.Add(new(model.ClassYpSc))
+	mseti.Add(new(model.ClassroomTimeResource))
+	mseti.Add(new(model.CmStandardOperation))
+	mseti.Add(new(model.Complaint))
+	mseti.Add(new(model.ComplaintDeal))
+	mseti.Add(new(model.Course))
+	mseti.Add(new(model.CourseProductType))
+	mseti.Add(new(model.CourseVideo))
+	mseti.Add(new(model.CourseVideoFile))
+	mseti.Add(new(model.CoverComplaintPeople))
+	mseti.Add(new(model.CpcCity))
+	mseti.Add(new(model.CpcCt))
+	mseti.Add(new(model.CsChangeTeacher))
+	mseti.Add(new(model.CsExecuteContent))
+	mseti.Add(new(model.CsKfHourDetail))
+	mseti.Add(new(model.CsStuTeacher))
+	mseti.Add(new(model.CsTaskFiles))
+	mseti.Add(new(model.CsVisit))
+	mseti.Add(new(model.CspvTea))
+	mseti.Add(new(model.CssChageStudent))
+	mseti.Add(new(model.CssChangeKf))
+	mseti.Add(new(model.CssCsTask))
+	mseti.Add(new(model.CssCsTaskFile))
+	mseti.Add(new(model.CssDeleteRecord))
+	mseti.Add(new(model.CssHFFile))
+	mseti.Add(new(model.CustomerServiceProcess))
+	mseti.Add(new(model.CustomerServiceProcessVisit))
+	mseti.Add(new(model.DataDeletionBackups))
+	mseti.Add(new(model.DataDictionary))
+	mseti.Add(new(model.DataDictionaryCopy))
+	mseti.Add(new(model.DateTable))
+	mseti.Add(new(model.DegreeDeposit))
+	mseti.Add(new(model.Deletestudentbackups))
+	mseti.Add(new(model.Department))
+	mseti.Add(new(model.DepositIn))
+	mseti.Add(new(model.DepositOut))
+	mseti.Add(new(model.DepositOutFile))
+	mseti.Add(new(model.DepositOutFlow))
+	mseti.Add(new(model.DoRefapply))
+	mseti.Add(new(model.EcOfYj))
+	mseti.Add(new(model.EcUserTargetplan))
+	mseti.Add(new(model.EducationalResearch))
+	mseti.Add(new(model.EducationalResearchFile))
+	mseti.Add(new(model.EducationalResearchSchool))
+	mseti.Add(new(model.EmailMessage))
+	mseti.Add(new(model.EmailSendSet))
+	mseti.Add(new(model.EmailSendUser))
+	mseti.Add(new(model.Enterprises))
+	mseti.Add(new(model.EnterprisesOrgan))
+	mseti.Add(new(model.ExamPaper))
+	mseti.Add(new(model.ExamPaperBlock))
+	mseti.Add(new(model.ExamPaperCourse))
+	mseti.Add(new(model.ExamPaperIntroduction))
+	mseti.Add(new(model.ExamPaperProType))
+	mseti.Add(new(model.ExportLog))
+	mseti.Add(new(model.ExternalPlace))
+	mseti.Add(new(model.FailApply))
+	mseti.Add(new(model.FailApplyFile))
+	mseti.Add(new(model.FailStudentVisit))
+	mseti.Add(new(model.FamilyShareNumbe))
+	mseti.Add(new(model.FavourableProductType))
+	mseti.Add(new(model.Fee))
+	mseti.Add(new(model.FeeStandard))
+	mseti.Add(new(model.FeeStandardCity))
+	mseti.Add(new(model.FeeStandardCourse))
+	mseti.Add(new(model.Files))
+	mseti.Add(new(model.FqorderZx))
+	mseti.Add(new(model.FreezeOffApply))
+	mseti.Add(new(model.FriendlyLinkSet))
+	mseti.Add(new(model.GaiFile))
+	mseti.Add(new(model.Gift))
+	mseti.Add(new(model.GiftCity))
+	mseti.Add(new(model.GiftExchange))
+	mseti.Add(new(model.GiftExchangeJfsc))
+	mseti.Add(new(model.GjssAppIntroduction))
+	mseti.Add(new(model.HolidaySet))
+	mseti.Add(new(model.HomeEmailMessage))
+	mseti.Add(new(model.HomePhoneMessage))
+	mseti.Add(new(model.HomeWeixinMessage))
+	mseti.Add(new(model.HotfixFiles))
+	mseti.Add(new(model.HourAllotMake))
+	mseti.Add(new(model.HourAllotRatio))
+	mseti.Add(new(model.IcbcPayList))
+	mseti.Add(new(model.InviteVisit))
+	mseti.Add(new(model.Invoice))
+	mseti.Add(new(model.JfscFlSyTuFile))
+	mseti.Add(new(model.JfscFlSytu))
+	mseti.Add(new(model.JfscOrder))
+	mseti.Add(new(model.JfscOrderGe))
+	mseti.Add(new(model.JfscSyTu))
+	mseti.Add(new(model.JfscSyTuFile))
+	mseti.Add(new(model.KfChangeHistory))
+	mseti.Add(new(model.LabelInfo))
+	mseti.Add(new(model.LanguagePack))
+	mseti.Add(new(model.LanguagePackCity))
+	mseti.Add(new(model.LanguagePackOrder))
+	mseti.Add(new(model.LbfJl))
+	mseti.Add(new(model.LearningparkBackgroundMap))
+	mseti.Add(new(model.LearningparkBook))
+	mseti.Add(new(model.LearningparkBookFileid))
+	mseti.Add(new(model.Level))
+	mseti.Add(new(model.LevelUnit))
+	mseti.Add(new(model.LgClasstype))
+	mseti.Add(new(model.Loginlanguageset))
+	mseti.Add(new(model.MaBusiness))
+	mseti.Add(new(model.MaTeacher))
+	mseti.Add(new(model.MarketActivity))
+	mseti.Add(new(model.MarketActivityHead))
+	mseti.Add(new(model.MarketActivityMateriel))
+	mseti.Add(new(model.MarketActivityProcess))
+	mseti.Add(new(model.MarketExpend))
+	mseti.Add(new(model.MarketFeeBudget))
+	mseti.Add(new(model.MarketFeeBudgetFiles))
+	mseti.Add(new(model.MarketFeeCost))
+	mseti.Add(new(model.MarketFeeName))
+	mseti.Add(new(model.MarketInviteStu))
+	mseti.Add(new(model.MarketModel))
+	mseti.Add(new(model.MarketModelMateriel))
+	mseti.Add(new(model.MarketModelProcess))
+	mseti.Add(new(model.MarketerPlanTarget))
+	mseti.Add(new(model.MarketingActivitiesCity))
+	mseti.Add(new(model.MarketingActivitiesSchool))
+	mseti.Add(new(model.MaterialApply))
+	mseti.Add(new(model.MaterialBudget))
+	mseti.Add(new(model.MaterialTable))
+	mseti.Add(new(model.Materiel))
+	mseti.Add(new(model.MaterielAdd))
+	mseti.Add(new(model.MaterielMinus))
+	mseti.Add(new(model.MenuPicture))
+	mseti.Add(new(model.MessageNotice))
+	mseti.Add(new(model.NetSchoolPlan))
+	mseti.Add(new(model.NetUserPlan))
+	mseti.Add(new(model.NetworkActivity))
+	mseti.Add(new(model.NetworkActivityExpend))
+	mseti.Add(new(model.NetworkActivityHead))
+	mseti.Add(new(model.NetworkActivityOrgan))
+	mseti.Add(new(model.NetworkDetail))
+	mseti.Add(new(model.NewKxRecord))
+	mseti.Add(new(model.NewStuTransition))
+	mseti.Add(new(model.OfDepositDetail))
+	mseti.Add(new(model.OfOverdue))
+	mseti.Add(new(model.OfOverdueSct))
+	mseti.Add(new(model.OldGiveGift))
+	mseti.Add(new(model.OldPushStudent))
+	mseti.Add(new(model.OnSale))
+	mseti.Add(new(model.OnSaleCity))
+	mseti.Add(new(model.OnSaleFiles))
+	mseti.Add(new(model.OrderDeleteLog))
+	mseti.Add(new(model.OrderFiles))
+	mseti.Add(new(model.OrderForm))
+	mseti.Add(new(model.OrderFromStuIntegral))
+	mseti.Add(new(model.OrderFromStudyCard))
+	mseti.Add(new(model.OrderProduct))
+	mseti.Add(new(model.Organ))
+	mseti.Add(new(model.OrganAddAgreement))
+	mseti.Add(new(model.OrganSchool))
+	mseti.Add(new(model.OrganSchoolBussType))
+	mseti.Add(new(model.OtmClassroom))
+	mseti.Add(new(model.OtomSysSet))
+	mseti.Add(new(model.OverseasMaPt))
+	mseti.Add(new(model.PaActiveReservation))
+	mseti.Add(new(model.PaActivityClassFile))
+	mseti.Add(new(model.PaActivityClassStu))
+	mseti.Add(new(model.ParFile))
+	mseti.Add(new(model.ParStudnetClassType))
+	mseti.Add(new(model.ParentalEvaluation))
+	mseti.Add(new(model.PartTimeUser))
+	mseti.Add(new(model.PartTimeUserCity))
+	mseti.Add(new(model.ParticipantEvaluateInfo))
+	mseti.Add(new(model.ParticipantEvaluateTrainer))
+	mseti.Add(new(model.ParticipantTable))
+	mseti.Add(new(model.Partner))
+	mseti.Add(new(model.PartnerOrgan))
+	mseti.Add(new(model.PcSctGiveMx))
+	mseti.Add(new(model.PeriodViolateAbnormalApply))
+	mseti.Add(new(model.PhoneMessage))
+	mseti.Add(new(model.Phonehistory))
+	mseti.Add(new(model.PrearrangedCourses))
+	mseti.Add(new(model.ProductType))
+	mseti.Add(new(model.ProtocolType))
+	mseti.Add(new(model.ReTeachingTime))
+	mseti.Add(new(model.RecipientInfo))
+	mseti.Add(new(model.RefYishiFile))
+	mseti.Add(new(model.Refund))
+	mseti.Add(new(model.RefundCheckFiles))
+	mseti.Add(new(model.RefundDetailReason))
+	mseti.Add(new(model.RefundFiles))
+	mseti.Add(new(model.RefundFlow))
+	mseti.Add(new(model.RefundProcessSet))
+	mseti.Add(new(model.RefundStuClassType))
+	mseti.Add(new(model.RefundStuTextBook))
+	mseti.Add(new(model.RegularDictionary))
+	mseti.Add(new(model.ReplaceGift))
+	mseti.Add(new(model.RpsCity))
+	mseti.Add(new(model.RpsSch))
+	mseti.Add(new(model.SaleLanguageModel))
+	mseti.Add(new(model.SaleSchool))
+	mseti.Add(new(model.SatisfyVisitMode))
+	mseti.Add(new(model.SatisfyVisitModel))
+	mseti.Add(new(model.SatisfyVisitModelContent))
+	mseti.Add(new(model.ScClassTea))
+	mseti.Add(new(model.SchAchievementDivide))
+	mseti.Add(new(model.SchIcbcPosNum))
+	mseti.Add(new(model.SchMarketPlan))
+	mseti.Add(new(model.SchTaTargetplan))
+	mseti.Add(new(model.SchTargetsignPlan))
+	mseti.Add(new(model.School))
+	mseti.Add(new(model.SchoolImgFile))
+	mseti.Add(new(model.SchoolOfLimit))
+	mseti.Add(new(model.ScoreItem))
+	mseti.Add(new(model.SctHourDetail))
+	mseti.Add(new(model.ServiceProVisitFile))
+	mseti.Add(new(model.Sheng))
+	mseti.Add(new(model.StuAllotTmk))
+	mseti.Add(new(model.StuBfJl))
+	mseti.Add(new(model.StuBussType))
+	mseti.Add(new(model.StuClassContent))
+	mseti.Add(new(model.StuClassFeedbacFile))
+	mseti.Add(new(model.StuClassFeedback))
+	mseti.Add(new(model.StuClassTypeAssBook))
+	mseti.Add(new(model.StuClassTypeSusHour))
+	mseti.Add(new(model.StuClassTypeTextbook))
+	mseti.Add(new(model.StuConfirmHour))
+	mseti.Add(new(model.StuCourseVideo))
+	mseti.Add(new(model.StuCtTimeRange))
+	mseti.Add(new(model.StuExchangeGift))
+	mseti.Add(new(model.StuFailToLive))
+	mseti.Add(new(model.StuFinishclass))
+	mseti.Add(new(model.StuGwc))
+	mseti.Add(new(model.StuGwcGef))
+	mseti.Add(new(model.StuKwJfx))
+	mseti.Add(new(model.StuLaostuGift))
+	mseti.Add(new(model.StuLoss))
+	mseti.Add(new(model.StuMonthYpHour))
+	mseti.Add(new(model.StuParent))
+	mseti.Add(new(model.StuPcHour))
+	mseti.Add(new(model.StuProductType))
+	mseti.Add(new(model.StuSatisfyVisit))
+	mseti.Add(new(model.StuSatisfyVisitContent))
+	mseti.Add(new(model.StuScore))
+	mseti.Add(new(model.StuScoreItem))
+	mseti.Add(new(model.StuToReopened))
+	mseti.Add(new(model.StuTypeStudyCard))
+	mseti.Add(new(model.StuUseTextbook))
+	mseti.Add(new(model.StuUserDate))
+	mseti.Add(new(model.StuWxdqDate))
+	mseti.Add(new(model.Stucasting))
+	mseti.Add(new(model.StuclasstypeExtrafee))
+	mseti.Add(new(model.Student))
+	mseti.Add(new(model.StudentAddAgreement))
+	mseti.Add(new(model.StudentCastingTable))
+	mseti.Add(new(model.StudentCc))
+	mseti.Add(new(model.StudentClass))
+	mseti.Add(new(model.StudentClassSchedule))
+	mseti.Add(new(model.StudentClassType))
+	mseti.Add(new(model.StudentClassTypeUseIntegral))
+	mseti.Add(new(model.StudentClassYpk))
+	mseti.Add(new(model.StudentClassYpk1))
+	mseti.Add(new(model.StudentClassYpk2))
+	mseti.Add(new(model.StudentClassYpk3))
+	mseti.Add(new(model.StudentClassYpk31))
+	mseti.Add(new(model.StudentClassYpk32))
+	mseti.Add(new(model.StudentClassYpk33))
+	mseti.Add(new(model.StudentClassYpkDkb))
+	mseti.Add(new(model.StudentCustomer))
+	mseti.Add(new(model.StudentCzIntegral))
+	mseti.Add(new(model.StudentDeleteLog))
+	mseti.Add(new(model.StudentGift))
+	mseti.Add(new(model.StudentGrowthRecord))
+	mseti.Add(new(model.StudentGrowthRecordFile))
+	mseti.Add(new(model.StudentMarketActivity))
+	mseti.Add(new(model.StudentOrgan))
+	mseti.Add(new(model.StudentOrganSchool))
+	mseti.Add(new(model.StudentReopened))
+	mseti.Add(new(model.StudentRzIntegral))
+	mseti.Add(new(model.StudentSale))
+	mseti.Add(new(model.StudentTimeResource))
+	mseti.Add(new(model.StudentTypeJournal))
+	mseti.Add(new(model.StudentUseHourDetail))
+	mseti.Add(new(model.StudentVisit))
+	mseti.Add(new(model.StudentVisitLanguage))
+	mseti.Add(new(model.StudyCard))
+	mseti.Add(new(model.SystemMessage))
+	mseti.Add(new(model.SystemNotice))
+	mseti.Add(new(model.SystemOperaLogs))
+	mseti.Add(new(model.SystemSet))
+	mseti.Add(new(model.T0UserInfo))
+	mseti.Add(new(model.T19LoginLog))
+	mseti.Add(new(model.T2LoginLog))
+	mseti.Add(new(model.T3Program))
+	mseti.Add(new(model.T520LoginLog))
+	mseti.Add(new(model.TaTargetPlan))
+	mseti.Add(new(model.TeaLeaveManagement))
+	mseti.Add(new(model.TeachLog))
+	mseti.Add(new(model.TeacherHourDetail))
+	mseti.Add(new(model.TeacherServiceProcess))
+	mseti.Add(new(model.TeachingMaterial))
+	mseti.Add(new(model.TeachingTime))
+	mseti.Add(new(model.Temp20190330))
+	mseti.Add(new(model.TempHuifu))
+	mseti.Add(new(model.TempShaoerShow))
+	mseti.Add(new(model.TempStorageCz))
+	mseti.Add(new(model.TempStorageCzFlow))
+	mseti.Add(new(model.TempStorageRz))
+	mseti.Add(new(model.TempStu))
+	mseti.Add(new(model.TempStuJifenAdd))
+	mseti.Add(new(model.TestSites))
+	mseti.Add(new(model.TextBook))
+	mseti.Add(new(model.TextBookProductType))
+	mseti.Add(new(model.TimeSet))
+	mseti.Add(new(model.TimeTrigger))
+	mseti.Add(new(model.TmLevel))
+	mseti.Add(new(model.TmSi))
+	mseti.Add(new(model.TmSiUnit))
+	mseti.Add(new(model.TrainExternalPlace))
+	mseti.Add(new(model.TrainOrgan))
+	mseti.Add(new(model.TrainOrganSchool))
+	mseti.Add(new(model.TrainerEvaluateInfo))
+	mseti.Add(new(model.TrainerEvaluateParticipant))
+	mseti.Add(new(model.TrainerTable))
+	mseti.Add(new(model.TrialLesson))
+	mseti.Add(new(model.TrialLessonProType))
+	mseti.Add(new(model.TrialLessonStudent))
+	mseti.Add(new(model.TrialLessonTea))
+	mseti.Add(new(model.TrialLessonUser))
+	mseti.Add(new(model.TscReforderFile))
+	mseti.Add(new(model.Unit))
+	mseti.Add(new(model.UserBussType))
+	mseti.Add(new(model.UserCasting))
+	mseti.Add(new(model.UserCourse))
+	mseti.Add(new(model.UserDepartment))
+	mseti.Add(new(model.UserGsSch))
+	mseti.Add(new(model.UserMessageNotification))
+	mseti.Add(new(model.UserOnoffRz))
+	mseti.Add(new(model.UserOrgan))
+	mseti.Add(new(model.UserOrganSchool))
+	mseti.Add(new(model.UserProductType))
+	mseti.Add(new(model.UserTimeResource))
+	mseti.Add(new(model.UserTrainingTable))
+	mseti.Add(new(model.UserTypeTable))
+	mseti.Add(new(model.UserUploadFile))
+	mseti.Add(new(model.ViolateRatioManage))
+	mseti.Add(new(model.WastageFollowupRecord))
+	mseti.Add(new(model.WechatMessage))
+	mseti.Add(new(model.WholeCountry))
+	mseti.Add(new(model.XlHc))
+	mseti.Add(new(model.XyHourRecord))
+	mseti.Add(new(model.YbPayFlowing))
+	mseti.Add(new(model.YbPayOut))
+	mseti.Add(new(model.YbzfPos))
+	mseti.Add(new(model.YeepayReconciliationsRecord))
+	mseti.Add(new(model.ZbxGiftrules))
+	mseti.Add(new(model.ZbxzsgzValiddate))
+	mseti.Add(new(model.ZbxzsyxCity))
+	return nil
+}
+
+// SyncCtr defined
+func SyncCtr() error {
+	OrganRoutes(App)
+	return nil
+}
+
+// SyncService defined
+func SyncService() error {
+	return nil
+}
+
+// Executor defined
+var Executor = util.NewExecutor(SyncModel, SyncCtr, SyncService)
+
+func init() {
+	if err := Executor.Execute(); err != nil {
+		logrus.Fatal(err)
+	}
+}

+ 0 - 0
demo/app/app.go → examples/aisle/app/app.go


+ 147 - 0
examples/aisle/app/organ.go

@@ -0,0 +1,147 @@
+// Code generated by dol build. Only Generate by tools if not existed.
+// source: organ.go
+
+package app
+
+import (
+	"aisle/model"
+
+	"github.com/2637309949/dolphin/packages/gin/binding"
+	"github.com/2637309949/dolphin/packages/logrus"
+	"github.com/2637309949/dolphin/packages/null"
+	"github.com/2637309949/dolphin/packages/time"
+)
+
+// OrganAdd api implementation
+// @Summary Add organ
+// @Tags Organ controller
+// @Accept application/json
+// @Param Authorization header string false "认证令牌"
+// @Param user body model.Organ false "Article info"
+// @Failure 403 {object} model.Fail
+// @Success 200 {object} model.Success
+// @Failure 500 {object} model.Fail
+// @Router /api/organ/add [post]
+func OrganAdd(ctx *Context) {
+	var payload model.Organ
+	if err := ctx.ShouldBindBodyWith(&payload, binding.JSON); err != nil {
+		logrus.Error(err)
+		ctx.Fail(err)
+		return
+	}
+	payload.CreateDate = null.TimeFrom(time.Now().Value())
+	payload.Creater = null.StringFrom(ctx.GetToken().GetUserID())
+	payload.UpdateDate = null.TimeFrom(time.Now().Value())
+	payload.Updater = null.StringFrom(ctx.GetToken().GetUserID())
+	payload.Isdelete = null.IntFrom(0)
+	ret, err := ctx.DB.Insert(&payload)
+	if err != nil {
+		logrus.Error(err)
+		ctx.Fail(err)
+		return
+	}
+	ctx.Success(ret)
+}
+
+// OrganDel api implementation
+// @Summary Delete organ
+// @Tags Organ controller
+// @Accept application/json
+// @Param Authorization header string false "认证令牌"
+// @Param organ body model.Organ false "organ"
+// @Failure 403 {object} model.Fail
+// @Success 200 {object} model.Success
+// @Failure 500 {object} model.Fail
+// @Router /api/organ/del [delete]
+func OrganDel(ctx *Context) {
+	var payload model.Organ
+	if err := ctx.ShouldBindBodyWith(&payload, binding.JSON); err != nil {
+		logrus.Error(err)
+		ctx.Fail(err)
+		return
+	}
+	ret, err := ctx.DB.In("organ_id", payload.OrganId.Int64).Update(&model.Organ{
+		UpdateDate: null.TimeFrom(time.Now().Value()),
+		Updater:    null.StringFrom(ctx.GetToken().GetUserID()),
+		Isdelete:   null.IntFrom(1),
+	})
+	if err != nil {
+		logrus.Error(err)
+		ctx.Fail(err)
+		return
+	}
+	ctx.Success(ret)
+}
+
+// OrganUpdate api implementation
+// @Summary Update organ
+// @Tags Organ controller
+// @Accept application/json
+// @Param Authorization header string false "认证令牌"
+// @Param user body model.Organ false "Article info"
+// @Failure 403 {object} model.Fail
+// @Success 200 {object} model.Success
+// @Failure 500 {object} model.Fail
+// @Router /api/organ/update [put]
+func OrganUpdate(ctx *Context) {
+	var payload model.Organ
+	if err := ctx.ShouldBindBodyWith(&payload, binding.JSON); err != nil {
+		logrus.Error(err)
+		ctx.Fail(err)
+		return
+	}
+	// payload.UpdateBy = null.StringFrom(ctx.GetToken().GetUserID())
+	payload.UpdateDate = null.TimeFrom(time.Now().Value())
+	ret, err := ctx.DB.ID(payload.OrganId.Int64).Update(&payload)
+	if err != nil {
+		logrus.Error(err)
+		ctx.Fail(err)
+		return
+	}
+	ctx.Success(ret)
+}
+
+// OrganPage api implementation
+// @Summary Article page query
+// @Tags Organ controller
+// @Param Authorization header string false "认证令牌"
+// @Param page  query  int false "Page number"
+// @Param size  query  int false "Page size"
+// @Failure 403 {object} model.Fail
+// @Success 200 {object} model.Success
+// @Failure 500 {object} model.Fail
+// @Router /api/organ/page [get]
+func OrganPage(ctx *Context) {
+	q := ctx.TypeQuery()
+	q.SetInt("page", 1)
+	q.SetInt("size", 15)
+	q.SetRule("organ_page")
+	q.SetTags()
+	ret, err := ctx.PageSearch(ctx.DB, "organ", "page", "organ", q.Value())
+	if err != nil {
+		logrus.Error(err)
+		ctx.Fail(err)
+		return
+	}
+	ctx.Success(ret)
+}
+
+// OrganGet api implementation
+// @Summary Get organ info
+// @Tags Organ controller
+// @Param Authorization header string false "认证令牌"
+// @Param id  query  string false "Article id"
+// @Failure 403 {object} model.Fail
+// @Success 200 {object} model.Success
+// @Failure 500 {object} model.Fail
+// @Router /api/organ/get [get]
+func OrganGet(ctx *Context) {
+	var entity model.Organ
+	id := ctx.Query("id")
+	_, err := ctx.DB.ID(id).Get(&entity)
+	if err != nil {
+		logrus.Error(err)
+		return
+	}
+	ctx.Success(entity)
+}

+ 4550 - 0
examples/aisle/doc/swagger.yaml

@@ -0,0 +1,4550 @@
+definitions:
+  model.Fail:
+    properties:
+      code:
+        description: 错误编码
+        example: 500
+        type: integer
+      msg:
+        description: 错误信息
+        example: status bad request
+        type: string
+    type: object
+  model.Login:
+    properties:
+      domain:
+        description: 域
+        type: string
+      name:
+        description: 名字
+        type: string
+      password:
+        description: 密码
+        type: string
+    type: object
+  model.Organ:
+    properties:
+      create_date:
+        type: string
+      creater:
+        type: number
+      if_buy_online:
+        type: number
+      isdelete:
+        type: number
+      organ_id:
+        type: number
+      organ_name:
+        type: string
+      organ_number:
+        type: string
+      organ_pinyin:
+        type: string
+      organ_tell:
+        type: string
+      parent_id:
+        type: number
+      sheng_id:
+        type: number
+      update_date:
+        type: string
+      updater:
+        type: number
+    type: object
+  model.Scheduling:
+    properties:
+      code:
+        description: 编码
+        type: integer
+      name:
+        description: 名称
+        type: string
+    type: object
+  model.Success:
+    properties:
+      code:
+        description: 编码
+        example: 200
+        type: integer
+      data:
+        description: 返回数据
+        type: object
+    type: object
+  model.SysAppFun:
+    properties:
+      code:
+        description: 编码
+        type: string
+      create_by:
+        description: 创建人
+        type: string
+      create_time:
+        description: 创建时间
+        type: string
+      del_flag:
+        description: 删除标记
+        type: number
+      hidden:
+        description: 是否隐藏
+        type: number
+      icon:
+        description: 菜单图标
+        type: string
+      id:
+        description: 主键
+        type: string
+      image:
+        description: 图片
+        type: string
+      inheritance:
+        description: 继承关系
+        type: string
+      name:
+        description: 名称
+        type: string
+      order:
+        description: 排序
+        type: number
+      parent:
+        description: 父菜单ID,一级菜单为null
+        type: string
+      perms:
+        description: 授权(多个用逗号分隔,如:sys:user:add,sys:user:edit)
+        type: string
+      remark:
+        description: 备注
+        type: string
+      type:
+        description: 类型 0:目录 1:菜单 2:按钮
+        type: number
+      update_by:
+        description: 最后更新人
+        type: string
+      update_time:
+        description: 最后更新时间
+        type: string
+      url:
+        description: 菜单URL,类型:1.普通页面(如用户管理, /sys/user) 2.嵌套完整外部页面,以http(s)开头的链接 3.嵌套服务器页面,使用iframe:前缀&#43;目标URL(如SQL监控,
+          iframe:/druid/login.html, iframe:前缀会替换成服务器地址)
+        type: string
+    type: object
+  model.SysArea:
+    properties:
+      create_by:
+        description: 创建人
+        type: string
+      create_time:
+        description: 创建时间
+        type: string
+      del_flag:
+        description: 删除标记
+        type: number
+      id:
+        description: 主键
+        type: string
+      inheritance:
+        description: 继承关系
+        type: string
+      manager:
+        description: 负责人
+        type: string
+      name:
+        description: 区域名称
+        type: string
+      org_id:
+        description: 组织ID
+        type: string
+      parent:
+        description: 父节点
+        type: string
+      remark:
+        description: 备注
+        type: string
+      temp_id:
+        description: 模板ID
+        type: string
+      temp_value:
+        description: 模板内容
+        type: string
+      update_by:
+        description: 最后更新人
+        type: string
+      update_time:
+        description: 最后更新时间
+        type: string
+    type: object
+  model.SysAttachment:
+    properties:
+      create_by:
+        description: 创建人
+        type: string
+      create_time:
+        description: 创建时间
+        type: string
+      del_flag:
+        description: 删除标记
+        type: number
+      durable:
+        description: 是否持久化 0:否 1:是
+        type: number
+      ext:
+        description: ext
+        type: string
+      hash:
+        description: hash
+        type: string
+      icon:
+        description: 图标
+        type: string
+      id:
+        description: 主键
+        type: string
+      name:
+        description: 名称
+        type: string
+      path:
+        description: path
+        type: string
+      remark:
+        description: 备注
+        type: string
+      size:
+        description: 大小
+        type: number
+      type:
+        description: 类型
+        type: string
+      update_by:
+        description: 最后更新人
+        type: string
+      update_time:
+        description: 最后更新时间
+        type: string
+      url:
+        description: url
+        type: string
+      uuid:
+        description: uuid
+        type: string
+    type: object
+  model.SysClient:
+    properties:
+      app_name:
+        description: 应用归属
+        type: string
+      client:
+        description: 应用
+        type: string
+      create_by:
+        description: 创建人
+        type: string
+      create_time:
+        description: 创建时间
+        type: string
+      del_flag:
+        description: 删除标记
+        type: number
+      domain:
+        description: 域
+        type: string
+      id:
+        description: 主键
+        type: string
+      name:
+        description: 名称
+        type: string
+      remark:
+        description: 备注
+        type: string
+      secret:
+        description: 密钥
+        type: string
+      update_by:
+        description: 最后更新人
+        type: string
+      update_time:
+        description: 最后更新时间
+        type: string
+    type: object
+  model.SysComment:
+    properties:
+      content:
+        description: 评论内容
+        type: string
+      create_by:
+        description: 创建人
+        type: string
+      create_time:
+        description: 创建时间
+        type: string
+      del_flag:
+        description: 删除标记
+        type: number
+      from_uid:
+        description: 评论用户id
+        type: string
+      id:
+        description: 主键
+        type: string
+      remark:
+        description: 备注
+        type: string
+      topic_id:
+        description: 主题ID
+        type: string
+      topic_type:
+        description: 主题类型
+        type: string
+      update_by:
+        description: 最后更新人
+        type: string
+      update_time:
+        description: 最后更新时间
+        type: string
+    type: object
+  model.SysDataPermission:
+    properties:
+      code:
+        description: 编码
+        type: string
+      create_by:
+        description: 创建人
+        type: string
+      create_time:
+        description: 创建时间
+        type: string
+      del_flag:
+        description: 删除标记
+        type: number
+      id:
+        description: 主键
+        type: string
+      name:
+        description: 名称
+        type: string
+      remark:
+        description: 备注
+        type: string
+      update_by:
+        description: 最后更新人
+        type: string
+      update_time:
+        description: 最后更新时间
+        type: string
+    type: object
+  model.SysDomain:
+    properties:
+      api_url:
+        description: 请求地址
+        type: string
+      app_name:
+        description: 应用归属
+        type: string
+      auth_mode:
+        description: 认证模式 0:集成登录 1:单点登录
+        type: number
+      contact_email:
+        description: 负责人邮箱
+        type: string
+      contact_mobile:
+        description: 负责人电话
+        type: string
+      contact_name:
+        description: 负责人
+        type: string
+      create_by:
+        description: 创建人
+        type: string
+      create_time:
+        description: 创建时间
+        type: string
+      data_source:
+        description: 数据库链接串
+        type: string
+      del_flag:
+        description: 删除标记
+        type: number
+      domain:
+        description: 域
+        type: string
+      domain_url:
+        description: 域绑定
+        type: string
+      driver_name:
+        description: 驱动名称
+        type: string
+      full_name:
+        description: 全名
+        type: string
+      id:
+        description: 主键
+        type: string
+      login_url:
+        description: 登录地址
+        type: string
+      name:
+        description: 名字
+        type: string
+      remark:
+        description: 备注
+        type: string
+      static_url:
+        description: 静态地址
+        type: string
+      status:
+        description: 状态 0:禁用 1:正常
+        type: number
+      sync_flag:
+        description: 是否同步了数据库标志
+        type: number
+      theme:
+        description: 样式
+        type: string
+      type:
+        description: 域类型
+        type: number
+      update_by:
+        description: 最后更新人
+        type: string
+      update_time:
+        description: 最后更新时间
+        type: string
+    type: object
+  model.SysMenu:
+    properties:
+      code:
+        description: 编码
+        type: string
+      component:
+        description: 菜单组件
+        type: string
+      create_by:
+        description: 创建人
+        type: string
+      create_time:
+        description: 创建时间
+        type: string
+      del_flag:
+        description: 删除标记
+        type: number
+      hidden:
+        description: 是否隐藏
+        type: number
+      icon:
+        description: 菜单图标
+        type: string
+      id:
+        description: 主键
+        type: string
+      inheritance:
+        description: 继承关系
+        type: string
+      name:
+        description: 名称
+        type: string
+      order:
+        description: 排序
+        type: number
+      parent:
+        description: 父菜单ID,一级菜单为null
+        type: string
+      perms:
+        description: 授权(多个用逗号分隔,如:sys:user:add,sys:user:edit)
+        type: string
+      remark:
+        description: 备注
+        type: string
+      type:
+        description: 类型 0:目录 1:菜单 2:按钮
+        type: number
+      update_by:
+        description: 最后更新人
+        type: string
+      update_time:
+        description: 最后更新时间
+        type: string
+      url:
+        description: 菜单URL,类型:1.普通页面(如用户管理, /sys/user) 2.嵌套完整外部页面,以http(s)开头的链接 3.嵌套服务器页面,使用iframe:前缀&#43;目标URL(如SQL监控,
+          iframe:/druid/login.html, iframe:前缀会替换成服务器地址)
+        type: string
+    type: object
+  model.SysNotification:
+    properties:
+      create_by:
+        description: 创建人
+        type: string
+      create_time:
+        description: 创建时间
+        type: string
+      del_flag:
+        description: 删除标记
+        type: number
+      from_uid:
+        description: 发送者
+        type: string
+      id:
+        description: 主键
+        type: string
+      is_read:
+        description: 是否已读
+        type: number
+      remark:
+        description: 备注
+        type: string
+      to_uid:
+        description: 接受者
+        type: string
+      topic_id:
+        description: 主题ID
+        type: string
+      topic_type:
+        description: 主题类型
+        type: string
+      update_by:
+        description: 最后更新人
+        type: string
+      update_time:
+        description: 最后更新时间
+        type: string
+    type: object
+  model.SysOptionset:
+    properties:
+      code:
+        description: 编码
+        type: string
+      create_by:
+        description: 创建人
+        type: string
+      create_time:
+        description: 创建时间
+        type: string
+      del_flag:
+        description: 删除标记
+        type: number
+      id:
+        description: 主键
+        type: string
+      name:
+        description: 名称
+        type: string
+      remark:
+        description: 备注
+        type: string
+      update_by:
+        description: 最后更新人
+        type: string
+      update_time:
+        description: 最后更新时间
+        type: string
+      value:
+        description: 值
+        type: string
+    type: object
+  model.SysOrg:
+    properties:
+      code:
+        description: 编码
+        type: string
+      create_by:
+        description: 创建人
+        type: string
+      create_time:
+        description: 创建时间
+        type: string
+      del_flag:
+        description: 删除标记
+        type: number
+      full_name:
+        description: 全名
+        type: string
+      id:
+        description: 主键
+        type: string
+      inheritance:
+        description: 继承关系
+        type: string
+      leader:
+        description: 领导人
+        type: string
+      name:
+        description: 名称
+        type: string
+      order:
+        description: 排序
+        type: number
+      parent:
+        description: 上级组织
+        type: string
+      remark:
+        description: 备注
+        type: string
+      status:
+        description: 状态 0:禁用 1:正常
+        type: number
+      type:
+        description: 组织类型
+        type: number
+      update_by:
+        description: 最后更新人
+        type: string
+      update_time:
+        description: 最后更新时间
+        type: string
+    type: object
+  model.SysPermission:
+    properties:
+      code:
+        description: 编码
+        type: string
+      create_by:
+        description: 创建人
+        type: string
+      create_time:
+        description: 创建时间
+        type: string
+      del_flag:
+        description: 删除标记
+        type: number
+      id:
+        description: 主键
+        type: string
+      name:
+        description: 名称
+        type: string
+      remark:
+        description: 备注
+        type: string
+      update_by:
+        description: 最后更新人
+        type: string
+      update_time:
+        description: 最后更新时间
+        type: string
+    type: object
+  model.SysRole:
+    properties:
+      admin_index:
+        description: 角色进入后台首页组件
+        type: string
+      app_index:
+        description: 角色app首页url
+        type: string
+      code:
+        description: 编码
+        type: string
+      create_by:
+        description: 创建人
+        type: string
+      create_time:
+        description: 创建时间
+        type: string
+      del_flag:
+        description: 删除标记
+        type: number
+      id:
+        description: 主键
+        type: string
+      name:
+        description: 名称
+        type: string
+      remark:
+        description: 备注
+        type: string
+      status:
+        description: 状态 0:禁用 1:正常
+        type: number
+      update_by:
+        description: 最后更新人
+        type: string
+      update_time:
+        description: 最后更新时间
+        type: string
+    type: object
+  model.SysSetting:
+    properties:
+      create_by:
+        description: 创建人
+        type: string
+      create_time:
+        description: 创建时间
+        type: string
+      del_flag:
+        description: 删除标记
+        type: number
+      id:
+        description: 主键
+        type: string
+      key:
+        description: 键
+        type: string
+      remark:
+        description: 备注
+        type: string
+      update_by:
+        description: 最后更新人
+        type: string
+      update_time:
+        description: 最后更新时间
+        type: string
+      value:
+        description: 值
+        type: string
+    type: object
+  model.SysTag:
+    properties:
+      create_by:
+        description: 创建人
+        type: string
+      create_time:
+        description: 创建时间
+        type: string
+      del_flag:
+        description: 删除标记
+        type: number
+      group_id:
+        description: 分组ID
+        type: string
+      id:
+        description: 主键
+        type: string
+      name:
+        description: 名称
+        type: string
+      remark:
+        description: 备注
+        type: string
+      update_by:
+        description: 最后更新人
+        type: string
+      update_time:
+        description: 最后更新时间
+        type: string
+    type: object
+  model.SysTagGroup:
+    properties:
+      code:
+        description: 编码
+        type: string
+      create_by:
+        description: 创建人
+        type: string
+      create_time:
+        description: 创建时间
+        type: string
+      del_flag:
+        description: 删除标记
+        type: number
+      id:
+        description: 主键
+        type: string
+      name:
+        description: 名称
+        type: string
+      remark:
+        description: 备注
+        type: string
+      update_by:
+        description: 最后更新人
+        type: string
+      update_time:
+        description: 最后更新时间
+        type: string
+    type: object
+  model.SysUser:
+    properties:
+      address:
+        description: 地址
+        type: string
+      avatar:
+        description: 头像
+        type: string
+      create_by:
+        description: 创建人
+        type: string
+      create_time:
+        description: 创建时间
+        type: string
+      del_flag:
+        description: 删除标记
+        type: number
+      domain:
+        description: 域
+        type: string
+      email:
+        description: 邮箱
+        type: string
+      full_name:
+        description: 全名
+        type: string
+      gender:
+        description: 性别(0:女,1:男)
+        type: number
+      id:
+        description: 主键
+        type: string
+      intro:
+        description: 简介
+        type: string
+      is_email_confirmed:
+        description: 是否邮件确认(0:尚未,1:确认)
+        type: number
+      marked_all_as_read_at:
+        description: 标记所有已读时间
+        type: string
+      mobile:
+        description: 电话
+        type: string
+      name:
+        description: 名字
+        type: string
+      nickname:
+        description: 昵称
+        type: string
+      org_id:
+        description: 组织ID
+        type: string
+      password:
+        description: 密码
+        type: string
+      read_notifications_at:
+        description: 标记读取消息时间
+        type: string
+      remark:
+        description: 备注
+        type: string
+      salt:
+        description: 盐噪点
+        type: string
+      status:
+        description: 状态(0:禁用,1:正常)
+        type: number
+      temp_id:
+        description: 模板ID
+        type: string
+      temp_value:
+        description: 模板值
+        type: string
+      type:
+        description: 用户类型
+        type: number
+      update_by:
+        description: 最后更新人
+        type: string
+      update_time:
+        description: 最后更新时间
+        type: string
+    type: object
+  model.SysUserTemplate:
+    properties:
+      create_by:
+        description: 创建人
+        type: string
+      create_time:
+        description: 创建时间
+        type: string
+      default:
+        description: 是否默认 1:是 0:否
+        type: number
+      del_flag:
+        description: 删除标记
+        type: number
+      id:
+        description: 主键
+        type: string
+      name:
+        description: 模板名称
+        type: string
+      remark:
+        description: 备注
+        type: string
+      type:
+        description: 模板类型
+        type: number
+      update_by:
+        description: 最后更新人
+        type: string
+      update_time:
+        description: 最后更新时间
+        type: string
+    type: object
+  model.Worker:
+    properties:
+      code:
+        description: 编码
+        type: string
+      error:
+        description: 错误信息
+        type: object
+      files:
+        description: 文件
+        items:
+          type: string
+        type: array
+      name:
+        description: 名称
+        type: string
+      payload:
+        description: 表单
+        type: object
+      result:
+        description: 结果
+        type: object
+      status:
+        description: 状态
+        type: integer
+      user:
+        $ref: '#/definitions/model.SysUser'
+        description: 用户
+        type: object
+    type: object
+host: localhost:8081
+info:
+  contact: {}
+  license:
+    name: Apache 2.0
+    url: http://www.apache.org/licenses/LICENSE-2.0.html
+  title: aisle
+  version: "1.0"
+paths:
+  /api/organ/add:
+    post:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: Article info
+        in: body
+        name: user
+        schema:
+          $ref: '#/definitions/model.Organ'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: Add organ
+      tags:
+      - Organ controller
+  /api/organ/del:
+    delete:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: organ
+        in: body
+        name: organ
+        schema:
+          $ref: '#/definitions/model.Organ'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: Delete organ
+      tags:
+      - Organ controller
+  /api/organ/get:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: Article id
+        in: query
+        name: id
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: Get organ info
+      tags:
+      - Organ controller
+  /api/organ/page:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: Page number
+        in: query
+        name: page
+        type: integer
+      - description: Page size
+        in: query
+        name: size
+        type: integer
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: Article page query
+      tags:
+      - Organ controller
+  /api/organ/update:
+    put:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: Article info
+        in: body
+        name: user
+        schema:
+          $ref: '#/definitions/model.Organ'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: Update organ
+      tags:
+      - Organ controller
+  /api/sys/app/fun/add:
+    post:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: APP功能信息
+        in: body
+        name: user
+        schema:
+          $ref: '#/definitions/model.SysAppFun'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 添加APP功能
+      tags:
+      - APP功能
+  /api/sys/app/fun/del:
+    delete:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: APP功能
+        in: body
+        name: sys_app_fun
+        schema:
+          $ref: '#/definitions/model.SysAppFun'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 删除APP功能
+      tags:
+      - APP功能
+  /api/sys/app/fun/get:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: APP功能id
+        in: query
+        name: id
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 获取APP功能信息
+      tags:
+      - APP功能
+  /api/sys/app/fun/page:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 页码
+        in: query
+        name: page
+        type: integer
+      - description: 单页数
+        in: query
+        name: size
+        type: integer
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: APP功能分页查询
+      tags:
+      - APP功能
+  /api/sys/app/fun/tree:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      responses:
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 菜单树形结构
+      tags:
+      - APP功能
+  /api/sys/app/fun/update:
+    put:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: APP功能信息
+        in: body
+        name: user
+        schema:
+          $ref: '#/definitions/model.SysRole'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 更新APP功能
+      tags:
+      - APP功能
+  /api/sys/area/add:
+    post:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 区域信息
+        in: body
+        name: user
+        schema:
+          $ref: '#/definitions/model.SysArea'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 添加区域
+      tags:
+      - 区域
+  /api/sys/area/del:
+    delete:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 区域
+        in: body
+        name: sys_area
+        schema:
+          $ref: '#/definitions/model.SysArea'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 删除区域
+      tags:
+      - 区域
+  /api/sys/area/get:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 区域id
+        in: query
+        name: id
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 获取区域信息
+      tags:
+      - 区域
+  /api/sys/area/page:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 页码
+        in: query
+        name: page
+        type: integer
+      - description: 单页数
+        in: query
+        name: size
+        type: integer
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 区域分页查询
+      tags:
+      - 区域
+  /api/sys/area/update:
+    put:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 区域信息
+        in: body
+        name: user
+        schema:
+          $ref: '#/definitions/model.SysRole'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 更新区域
+      tags:
+      - 区域
+  /api/sys/attachment/add:
+    post:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 附件信息
+        in: body
+        name: user
+        schema:
+          $ref: '#/definitions/model.SysAttachment'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 添加附件
+      tags:
+      - 附件
+  /api/sys/attachment/del:
+    delete:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 附件
+        in: body
+        name: sys_attachment
+        schema:
+          $ref: '#/definitions/model.SysAttachment'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 删除附件
+      tags:
+      - 附件
+  /api/sys/attachment/export:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 附件名称
+        in: query
+        name: file_name
+        type: string
+      - description: 附件ID
+        in: query
+        name: file_id
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 附件导出
+      tags:
+      - 附件
+  /api/sys/attachment/get:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 附件id
+        in: query
+        name: id
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 获取附件信息
+      tags:
+      - 附件
+  /api/sys/attachment/page:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 页码
+        in: query
+        name: page
+        type: integer
+      - description: 单页数
+        in: query
+        name: size
+        type: integer
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 附件分页查询
+      tags:
+      - 附件
+  /api/sys/attachment/update:
+    put:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 附件信息
+        in: body
+        name: user
+        schema:
+          $ref: '#/definitions/model.SysRole'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 更新附件
+      tags:
+      - 附件
+  /api/sys/attachment/upload:
+    post:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 上传附件
+      tags:
+      - 附件
+  /api/sys/cas/affirm:
+    post:
+      consumes:
+      - application/json
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 用户授权
+      tags:
+      - 认证中心
+  /api/sys/cas/authorize:
+    get:
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 用户授权
+      tags:
+      - 认证中心
+  /api/sys/cas/check:
+    get:
+      parameters:
+      - description: openid
+        in: query
+        name: openid
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 检验令牌
+      tags:
+      - 认证中心
+  /api/sys/cas/login:
+    post:
+      consumes:
+      - multipart/form-data
+      parameters:
+      - description: 用户名称
+        in: formData
+        name: username
+        type: string
+      - description: 用户密码
+        in: formData
+        name: password
+        type: string
+      - description: 用户域
+        in: formData
+        name: domain
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 用户认证
+      tags:
+      - 认证中心
+  /api/sys/cas/logout:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 定向URL
+        in: query
+        name: redirect_uri
+        type: string
+      - description: 状态
+        in: query
+        name: state
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 注销信息
+      tags:
+      - 认证中心
+  /api/sys/cas/oauth2:
+    get:
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 授权回调
+      tags:
+      - 认证中心
+  /api/sys/cas/profile:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 用户信息
+      tags:
+      - 认证中心
+  /api/sys/cas/qrcode:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: '类型(0: 微信 1:叮叮)'
+        in: query
+        name: type
+        type: integer
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 扫码登录(绑定第三方)
+      tags:
+      - 认证中心
+  /api/sys/cas/refresh:
+    get:
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 刷新令牌
+      tags:
+      - 认证中心
+  /api/sys/cas/token:
+    post:
+      consumes:
+      - application/json
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 获取令牌
+      tags:
+      - 认证中心
+  /api/sys/cas/url:
+    get:
+      parameters:
+      - description: 定向URL
+        in: query
+        name: redirect_uri
+        type: string
+      - description: 状态
+        in: query
+        name: state
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 授权地址
+      tags:
+      - 认证中心
+  /api/sys/client/add:
+    post:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 客户端信息
+        in: body
+        name: user
+        schema:
+          $ref: '#/definitions/model.SysClient'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 添加客户端
+      tags:
+      - 客户端
+  /api/sys/client/del:
+    delete:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 客户端
+        in: body
+        name: sys_client
+        schema:
+          $ref: '#/definitions/model.SysClient'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 删除客户端
+      tags:
+      - 客户端
+  /api/sys/client/get:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 客户端id
+        in: query
+        name: id
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 获取客户端信息
+      tags:
+      - 客户端
+  /api/sys/client/page:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 页码
+        in: query
+        name: page
+        type: integer
+      - description: 单页数
+        in: query
+        name: size
+        type: integer
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 客户端分页查询
+      tags:
+      - 客户端
+  /api/sys/client/update:
+    put:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 客户端信息
+        in: body
+        name: user
+        schema:
+          $ref: '#/definitions/model.SysRole'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 更新客户端
+      tags:
+      - 客户端
+  /api/sys/comment/add:
+    post:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 评论信息
+        in: body
+        name: sys_comment
+        schema:
+          $ref: '#/definitions/model.SysComment'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 添加评论
+      tags:
+      - 评论
+  /api/sys/comment/del:
+    delete:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 评论
+        in: body
+        name: sys_comment
+        schema:
+          $ref: '#/definitions/model.SysUserTemplate'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 删除评论
+      tags:
+      - 评论
+  /api/sys/comment/get:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 评论id
+        in: query
+        name: id
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 获取评论信息
+      tags:
+      - 评论
+  /api/sys/comment/page:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 页码
+        in: query
+        name: page
+        type: integer
+      - description: 单页数
+        in: query
+        name: size
+        type: integer
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 评论分页查询
+      tags:
+      - 评论
+  /api/sys/comment/update:
+    put:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 评论信息
+        in: body
+        name: sys_comment
+        schema:
+          $ref: '#/definitions/model.SysComment'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 更新评论
+      tags:
+      - 评论
+  /api/sys/data/permission/add:
+    post:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 数据权限信息
+        in: body
+        name: user
+        schema:
+          $ref: '#/definitions/model.SysDataPermission'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 添加数据权限
+      tags:
+      - 数据权限
+  /api/sys/data/permission/del:
+    delete:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 数据权限
+        in: body
+        name: sys_data_permission
+        schema:
+          $ref: '#/definitions/model.SysDataPermission'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 删除数据权限
+      tags:
+      - 数据权限
+  /api/sys/data/permission/get:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 数据权限id
+        in: query
+        name: id
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 获取数据权限信息
+      tags:
+      - 数据权限
+  /api/sys/data/permission/page:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 页码
+        in: query
+        name: page
+        type: integer
+      - description: 单页数
+        in: query
+        name: size
+        type: integer
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 数据权限分页查询
+      tags:
+      - 数据权限
+  /api/sys/data/permission/update:
+    put:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 数据权限信息
+        in: body
+        name: user
+        schema:
+          $ref: '#/definitions/model.SysRole'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 更新数据权限
+      tags:
+      - 数据权限
+  /api/sys/dingtalk/oauth2:
+    get:
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 授权回调
+      tags:
+      - 钉钉
+  /api/sys/domain/add:
+    post:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 域信息
+        in: body
+        name: user
+        schema:
+          $ref: '#/definitions/model.SysDomain'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 添加域
+      tags:
+      - 域
+  /api/sys/domain/del:
+    delete:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 域
+        in: body
+        name: sys_domain
+        schema:
+          $ref: '#/definitions/model.SysDomain'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 删除域
+      tags:
+      - 域
+  /api/sys/domain/get:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 域id
+        in: query
+        name: id
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 获取域信息
+      tags:
+      - 域
+  /api/sys/domain/page:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 页码
+        in: query
+        name: page
+        type: integer
+      - description: 单页数
+        in: query
+        name: size
+        type: integer
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 域分页查询
+      tags:
+      - 域
+  /api/sys/domain/update:
+    put:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 域信息
+        in: body
+        name: user
+        schema:
+          $ref: '#/definitions/model.SysRole'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 更新域
+      tags:
+      - 域
+  /api/sys/menu/add:
+    post:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 菜单信息
+        in: body
+        name: sys_menu
+        schema:
+          $ref: '#/definitions/model.SysMenu'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 添加菜单
+      tags:
+      - 菜单
+  /api/sys/menu/batch_del:
+    delete:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 菜单
+        in: body
+        name: sys_menu
+        schema:
+          items:
+            $ref: '#/definitions/model.SysMenu'
+          type: array
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 删除菜单
+      tags:
+      - 菜单
+  /api/sys/menu/del:
+    delete:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 菜单
+        in: body
+        name: sys_menu
+        schema:
+          $ref: '#/definitions/model.SysMenu'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 删除菜单
+      tags:
+      - 菜单
+  /api/sys/menu/get:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 菜单id
+        in: query
+        name: id
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 获取菜单信息
+      tags:
+      - 菜单
+  /api/sys/menu/page:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 页码
+        in: query
+        name: page
+        type: integer
+      - description: 单页数
+        in: query
+        name: size
+        type: integer
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 菜单分页查询
+      tags:
+      - 菜单
+  /api/sys/menu/sidebar:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      responses:
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 系统菜单
+      tags:
+      - 菜单
+  /api/sys/menu/tree:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      responses:
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 菜单树形结构
+      tags:
+      - 菜单
+  /api/sys/menu/update:
+    put:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 菜单信息
+        in: body
+        name: sys_menu
+        schema:
+          $ref: '#/definitions/model.SysMenu'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 更新菜单
+      tags:
+      - 菜单
+  /api/sys/notification/add:
+    post:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 站内消息信息
+        in: body
+        name: notification
+        schema:
+          $ref: '#/definitions/model.SysNotification'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 添加站内消息
+      tags:
+      - 站内消息
+  /api/sys/notification/del:
+    delete:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 站内消息
+        in: body
+        name: sys_notification
+        schema:
+          $ref: '#/definitions/model.SysNotification'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 删除站内消息
+      tags:
+      - 站内消息
+  /api/sys/notification/get:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 站内消息id
+        in: query
+        name: id
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 获取站内消息信息
+      tags:
+      - 站内消息
+  /api/sys/notification/page:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 页码
+        in: query
+        name: page
+        type: integer
+      - description: 单页数
+        in: query
+        name: size
+        type: integer
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 站内消息分页查询
+      tags:
+      - 站内消息
+  /api/sys/notification/update:
+    put:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 站内消息信息
+        in: body
+        name: notification
+        schema:
+          $ref: '#/definitions/model.SysRole'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 更新站内消息
+      tags:
+      - 站内消息
+  /api/sys/optionset/add:
+    post:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 字典信息
+        in: body
+        name: user
+        schema:
+          $ref: '#/definitions/model.SysOptionset'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 添加字典
+      tags:
+      - 字典
+  /api/sys/optionset/del:
+    delete:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 字典
+        in: body
+        name: sys_optionset
+        schema:
+          $ref: '#/definitions/model.SysOptionset'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 删除字典
+      tags:
+      - 字典
+  /api/sys/optionset/get:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 字典id
+        in: query
+        name: id
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 获取字典信息
+      tags:
+      - 字典
+  /api/sys/optionset/page:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 页码
+        in: query
+        name: page
+        type: integer
+      - description: 单页数
+        in: query
+        name: size
+        type: integer
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 字典分页查询
+      tags:
+      - 字典
+  /api/sys/optionset/update:
+    put:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 字典信息
+        in: body
+        name: user
+        schema:
+          $ref: '#/definitions/model.SysRole'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 更新字典
+      tags:
+      - 字典
+  /api/sys/org/add:
+    post:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 组织信息
+        in: body
+        name: user
+        schema:
+          $ref: '#/definitions/model.SysOrg'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 添加组织
+      tags:
+      - 组织
+  /api/sys/org/batch_del:
+    delete:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 组织
+        in: body
+        name: sys_org
+        schema:
+          items:
+            $ref: '#/definitions/model.SysOrg'
+          type: array
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 删除组织
+      tags:
+      - 组织
+  /api/sys/org/del:
+    delete:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 组织
+        in: body
+        name: sys_org
+        schema:
+          $ref: '#/definitions/model.SysOrg'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 删除组织
+      tags:
+      - 组织
+  /api/sys/org/get:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 组织id
+        in: query
+        name: id
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 获取组织信息
+      tags:
+      - 组织
+  /api/sys/org/page:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 页码
+        in: query
+        name: page
+        type: integer
+      - description: 单页数
+        in: query
+        name: size
+        type: integer
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 组织分页查询
+      tags:
+      - 组织
+  /api/sys/org/tree:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      responses:
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 菜单树形结构
+      tags:
+      - 组织
+  /api/sys/org/update:
+    put:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 组织信息
+        in: body
+        name: user
+        schema:
+          $ref: '#/definitions/model.SysRole'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 更新组织
+      tags:
+      - 组织
+  /api/sys/permission/add:
+    post:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 权限信息
+        in: body
+        name: user
+        schema:
+          $ref: '#/definitions/model.SysPermission'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 添加权限
+      tags:
+      - 权限
+  /api/sys/permission/del:
+    delete:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 权限
+        in: body
+        name: sys_permission
+        schema:
+          $ref: '#/definitions/model.SysPermission'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 删除权限
+      tags:
+      - 权限
+  /api/sys/permission/get:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 权限id
+        in: query
+        name: id
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 获取权限信息
+      tags:
+      - 权限
+  /api/sys/permission/page:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 页码
+        in: query
+        name: page
+        type: integer
+      - description: 单页数
+        in: query
+        name: size
+        type: integer
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 权限分页查询
+      tags:
+      - 权限
+  /api/sys/permission/update:
+    put:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 权限信息
+        in: body
+        name: user
+        schema:
+          $ref: '#/definitions/model.SysRole'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 更新权限
+      tags:
+      - 权限
+  /api/sys/role/add:
+    post:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 角色信息
+        in: body
+        name: sys_role
+        schema:
+          $ref: '#/definitions/model.SysRole'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 添加角色
+      tags:
+      - 角色
+  /api/sys/role/del:
+    delete:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 角色
+        in: body
+        name: sys_role
+        schema:
+          $ref: '#/definitions/model.SysRole'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 删除角色
+      tags:
+      - 角色
+  /api/sys/role/get:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 角色id
+        in: query
+        name: id
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 获取角色信息
+      tags:
+      - 角色
+  /api/sys/role/page:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 页码
+        in: query
+        name: page
+        type: integer
+      - description: 单页数
+        in: query
+        name: size
+        type: integer
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 角色分页查询
+      tags:
+      - 角色
+  /api/sys/role/role_app_fun_tree:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      responses:
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 角色App功能树形结构
+      tags:
+      - 角色
+  /api/sys/role/role_menu_tree:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      responses:
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 角色菜单树形结构
+      tags:
+      - 角色
+  /api/sys/role/update:
+    put:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 角色信息
+        in: body
+        name: sys_role
+        schema:
+          $ref: '#/definitions/model.SysRole'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 更新角色
+      tags:
+      - 角色
+  /api/sys/scheduling/add:
+    post:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 调度信息
+        in: body
+        name: scheduling
+        schema:
+          $ref: '#/definitions/model.Scheduling'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 添加调度
+      tags:
+      - 调度
+  /api/sys/scheduling/del:
+    delete:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 调度
+        in: body
+        name: scheduling
+        schema:
+          $ref: '#/definitions/model.Scheduling'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 删除调度
+      tags:
+      - 调度
+  /api/sys/scheduling/get:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 调度id
+        in: query
+        name: id
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      tags:
+      - 调度
+  /api/sys/scheduling/page:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 页码
+        in: query
+        name: page
+        type: integer
+      - description: 单页数
+        in: query
+        name: size
+        type: integer
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 调度分页查询
+      tags:
+      - 调度
+  /api/sys/scheduling/update:
+    put:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 调度信息
+        in: body
+        name: scheduling
+        schema:
+          $ref: '#/definitions/model.Scheduling'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 更新调度
+      tags:
+      - 调度
+  /api/sys/setting/add:
+    post:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 设置信息
+        in: body
+        name: user
+        schema:
+          $ref: '#/definitions/model.SysSetting'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 添加设置
+      tags:
+      - 设置
+  /api/sys/setting/del:
+    delete:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 设置
+        in: body
+        name: sys_setting
+        schema:
+          $ref: '#/definitions/model.SysSetting'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 删除设置
+      tags:
+      - 设置
+  /api/sys/setting/get:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 设置id
+        in: query
+        name: id
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 获取设置信息
+      tags:
+      - 设置
+  /api/sys/setting/page:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 页码
+        in: query
+        name: page
+        type: integer
+      - description: 单页数
+        in: query
+        name: size
+        type: integer
+      - description: 所属应用
+        in: query
+        name: app_name
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 设置分页查询
+      tags:
+      - 设置
+  /api/sys/setting/update:
+    put:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 设置信息
+        in: body
+        name: user
+        schema:
+          $ref: '#/definitions/model.SysRole'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 更新设置
+      tags:
+      - 设置
+  /api/sys/tag/add:
+    post:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 标签信息
+        in: body
+        name: sys_tag
+        schema:
+          $ref: '#/definitions/model.SysTag'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 添加标签
+      tags:
+      - 标签
+  /api/sys/tag/del:
+    delete:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 标签
+        in: body
+        name: sys_tag
+        schema:
+          $ref: '#/definitions/model.SysUserTemplate'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 删除标签
+      tags:
+      - 标签
+  /api/sys/tag/get:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 标签id
+        in: query
+        name: id
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 获取标签信息
+      tags:
+      - 标签
+  /api/sys/tag/group/add:
+    post:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 标签组信息
+        in: body
+        name: sys_tag_group
+        schema:
+          $ref: '#/definitions/model.SysTagGroup'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 添加标签组
+      tags:
+      - 标签组
+  /api/sys/tag/group/del:
+    delete:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 标签
+        in: body
+        name: sys_tag_group
+        schema:
+          $ref: '#/definitions/model.SysTagGroup'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 删除标签组
+      tags:
+      - 标签组
+  /api/sys/tag/group/get:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 标签组id
+        in: query
+        name: id
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 获取标签组信息
+      tags:
+      - 标签组
+  /api/sys/tag/group/page:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 页码
+        in: query
+        name: page
+        type: integer
+      - description: 单页数
+        in: query
+        name: size
+        type: integer
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 标签组分页查询
+      tags:
+      - 标签组
+  /api/sys/tag/group/update:
+    put:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 标签组信息
+        in: body
+        name: sys_tag_group
+        schema:
+          $ref: '#/definitions/model.SysTagGroup'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 更新标签组
+      tags:
+      - 标签组
+  /api/sys/tag/page:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 页码
+        in: query
+        name: page
+        type: integer
+      - description: 单页数
+        in: query
+        name: size
+        type: integer
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 标签分页查询
+      tags:
+      - 标签
+  /api/sys/tag/update:
+    put:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 标签信息
+        in: body
+        name: sys_tag
+        schema:
+          $ref: '#/definitions/model.SysTag'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 更新标签
+      tags:
+      - 标签
+  /api/sys/tracker/get:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 日志id
+        in: query
+        name: id
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 获取日志信息
+      tags:
+      - 日志
+  /api/sys/tracker/page:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 页码
+        in: query
+        name: page
+        type: integer
+      - description: 单页数
+        in: query
+        name: size
+        type: integer
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 日志分页查询
+      tags:
+      - 日志
+  /api/sys/user/add:
+    post:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 用户信息
+        in: body
+        name: user
+        schema:
+          $ref: '#/definitions/model.SysUser'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 添加用户
+      tags:
+      - 用户
+  /api/sys/user/del:
+    delete:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 用户信息
+        in: body
+        name: user
+        schema:
+          $ref: '#/definitions/model.SysUser'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 删除用户
+      tags:
+      - 用户
+  /api/sys/user/get:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 用户id
+        in: query
+        name: id
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 获取用户信息
+      tags:
+      - 用户
+  /api/sys/user/login:
+    post:
+      consumes:
+      - application/json
+      parameters:
+      - description: 用户信息
+        in: body
+        name: payload
+        schema:
+          $ref: '#/definitions/model.Login'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 用户认证
+      tags:
+      - 用户
+  /api/sys/user/logout:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 用户退出登录
+      tags:
+      - 用户
+  /api/sys/user/page:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 页码
+        in: query
+        name: page
+        type: integer
+      - description: 单页数
+        in: query
+        name: size
+        type: integer
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 用户分页查询
+      tags:
+      - 用户
+  /api/sys/user/template/add:
+    post:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 用户模板信息
+        in: body
+        name: sys_user_template
+        schema:
+          $ref: '#/definitions/model.SysUserTemplate'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 添加用户模板
+      tags:
+      - 用户模板
+  /api/sys/user/template/del:
+    delete:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 用户模板信息
+        in: body
+        name: sys_user_template
+        schema:
+          $ref: '#/definitions/model.SysUserTemplate'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 删除用户模板
+      tags:
+      - 用户模板
+  /api/sys/user/template/get:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 用户模板id
+        in: query
+        name: id
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 获取用户模板信息
+      tags:
+      - 用户模板
+  /api/sys/user/template/page:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 页码
+        in: query
+        name: page
+        type: integer
+      - description: 单页数
+        in: query
+        name: size
+        type: integer
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 用户模板分页查询
+      tags:
+      - 用户模板
+  /api/sys/user/template/update:
+    put:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 用户模板信息
+        in: body
+        name: sys_user_template
+        schema:
+          $ref: '#/definitions/model.SysUserTemplate'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 更新用户模板
+      tags:
+      - 用户模板
+  /api/sys/user/update:
+    put:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: 用户信息
+        in: body
+        name: user
+        schema:
+          $ref: '#/definitions/model.SysUser'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 更新用户
+      tags:
+      - 用户
+  /api/sys/wechat/oauth2:
+    get:
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 授权回调
+      tags:
+      - 微信
+  /api/sys/worker/add:
+    post:
+      consumes:
+      - application/json
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: worker信息
+        in: body
+        name: worker
+        schema:
+          $ref: '#/definitions/model.Worker'
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 添加worker
+      tags:
+      - worker
+  /api/sys/worker/get:
+    get:
+      parameters:
+      - description: 认证令牌
+        in: header
+        name: Authorization
+        type: string
+      - description: worker code
+        in: query
+        name: code
+        type: string
+      responses:
+        "200":
+          description: OK
+          schema:
+            $ref: '#/definitions/model.Success'
+        "403":
+          description: Forbidden
+          schema:
+            $ref: '#/definitions/model.Fail'
+        "500":
+          description: Internal Server Error
+          schema:
+            $ref: '#/definitions/model.Fail'
+      summary: 获取worker信息
+      tags:
+      - worker
+securityDefinitions:
+  OAuth2AccessCode:
+    authorizationUrl: http://localhost:8081/api/sys/cas/authorize
+    flow: accessCode
+    scopes:
+      admin: Grants read and write access to administrative information
+      read: Grants read access
+      write: Grants write access
+    tokenUrl: http://localhost:8081/api/sys/cas/token
+    type: oauth2
+swagger: "2.0"

+ 13 - 0
examples/aisle/go.mod

@@ -0,0 +1,13 @@
+module aisle
+
+go 1.13
+
+replace github.com/2637309949/dolphin => ../../
+
+require (
+	github.com/2637309949/dolphin v0.0.0-20200721061211-79c3c254e071
+	github.com/go-sql-driver/mysql v1.5.0
+	github.com/golang/protobuf v1.3.3
+	golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553
+	google.golang.org/grpc v1.26.0
+)

+ 350 - 0
examples/aisle/go.sum

@@ -0,0 +1,350 @@
+cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
+cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
+cloud.google.com/go v0.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw=
+github.com/2637309949/dolphin v0.0.0-20200721061211-79c3c254e071 h1:NMafwQWXZ+AxcYlLBXsIHCBbi7clLGQr6JHqrToMSVI=
+github.com/2637309949/dolphin v0.0.0-20200721061211-79c3c254e071/go.mod h1:69RFwkX6DImeSg2lxZn4gxUfrTcOxNZStG8mKI+hd+g=
+github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
+github.com/Chronokeeper/anyxml v0.0.0-20160530174208-54457d8e98c6/go.mod h1:YzuYAe2hrrwKXkM9kqjbkTLlkbA+/xw2MA46f1+ENxc=
+github.com/CloudyKit/fastprinter v0.0.0-20170127035650-74b38d55f37a/go.mod h1:EFZQ978U7x8IRnstaskI3IysnWY5Ao3QgZUKOXlsAdw=
+github.com/CloudyKit/jet v2.1.2+incompatible/go.mod h1:HPYO+50pSWkPoj9Q/eq0aRGByCL6ScRlUmiEX5Zgm+w=
+github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE=
+github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
+github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
+github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo=
+github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
+github.com/agrison/go-tablib v0.0.0-20160310143025-4930582c22ee/go.mod h1:M9nmO4lBRWR/bBv7UCOmDJ1MB2DVoqz19B4JchDA+K0=
+github.com/agrison/mxj v0.0.0-20160310142625-1269f8afb3b4/go.mod h1:n7qJAqL9BKqGqiJyjPbWtxpdswTL5wX0IVP2Uw4vVhQ=
+github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
+github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
+github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
+github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
+github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
+github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
+github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
+github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
+github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
+github.com/bndr/gotabulate v1.1.2/go.mod h1:0+8yUgaPTtLRTjf49E8oju7ojpU11YmXyvq1LbPAb3U=
+github.com/bradfitz/gomemcache v0.0.0-20180710155616-bc664df96737 h1:rRISKWyXfVxvoa702s91Zl5oREZTrR3yv+tXrrX7G/g=
+github.com/bradfitz/gomemcache v0.0.0-20180710155616-bc664df96737/go.mod h1:PmM6Mmwb0LSuEubjR8N7PtNe1KxZLtOUHtbeikc5h60=
+github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
+github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/clbanning/mxj v1.8.4/go.mod h1:BVjHeAH+rl9rs6f+QIpeRl0tfu10SXn1pUSa5PVGJng=
+github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
+github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
+github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
+github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
+github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
+github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
+github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
+github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=
+github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=
+github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
+github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
+github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
+github.com/fastly/go-utils v0.0.0-20180712184237-d95a45783239 h1:Ghm4eQYC0nEPnSJdVkTrXpu9KtoVCSo1hg7mtI7G9KU=
+github.com/fastly/go-utils v0.0.0-20180712184237-d95a45783239/go.mod h1:Gdwt2ce0yfBxPvZrHkprdPPTTS3N5rwmLE8T22KBXlw=
+github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=
+github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
+github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
+github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI=
+github.com/go-asn1-ber/asn1-ber v1.4.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0=
+github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q=
+github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
+github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
+github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
+github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
+github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
+github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
+github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
+github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
+github.com/go-openapi/spec v0.19.5 h1:Xm0Ao53uqnk9QE/LlYV5DEU09UAgpliA85QoT9LzqPw=
+github.com/go-openapi/spec v0.19.5/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk=
+github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
+github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
+github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A=
+github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4=
+github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8=
+github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA=
+github.com/go-playground/validator/v10 v10.0.1 h1:QgDDZpXlR/L3atIL2PbFt0TpazbtN7N6PxTGcgcyEUg=
+github.com/go-playground/validator/v10 v10.0.1/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI=
+github.com/go-playground/validator/v10 v10.2.0 h1:KgJ0snyC2R9VXYN2rneOtQcw5aHQB1Vv0sFl1UcHBOY=
+github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI=
+github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs=
+github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
+github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
+github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
+github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
+github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
+github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
+github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
+github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
+github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
+github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
+github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I=
+github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
+github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db h1:woRePGFeVFfLKN/pOkfl+p/TAqKOfFu+7KPlMVpok/w=
+github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
+github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
+github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
+github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
+github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
+github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4=
+github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
+github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
+github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
+github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
+github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
+github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
+github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
+github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
+github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ=
+github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=
+github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
+github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
+github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
+github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
+github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
+github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
+github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
+github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
+github.com/jehiah/go-strftime v0.0.0-20171201141054-1d33003b3869 h1:IPJ3dvxmJ4uczJe5YQdrYB16oTJlGSC/OyZDqUk9xX4=
+github.com/jehiah/go-strftime v0.0.0-20171201141054-1d33003b3869/go.mod h1:cJ6Cj7dQo+O6GJNiMx+Pa94qKj+TG8ONdKHgMNIyyag=
+github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
+github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
+github.com/json-iterator/go v1.1.9 h1:9yzud/Ht36ygwatGx56VwCZtlI/2AD15T1X2sjSuGns=
+github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
+github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
+github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
+github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
+github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
+github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
+github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
+github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
+github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
+github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
+github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
+github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII=
+github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc h1:RKf14vYWi2ttpEmkA4aQ3j4u9dStX2t4M8UM6qqNsG8=
+github.com/lestrrat-go/envload v0.0.0-20180220234015-a3eb8ddeffcc/go.mod h1:kopuH9ugFRkIXf3YoqHKyrJ9YfUFsckUU9S7B+XP+is=
+github.com/lestrrat-go/strftime v1.0.1 h1:o7qz5pmLzPDLyGW4lG6JvTKPUfTFXwe+vOamIYWtnVU=
+github.com/lestrrat-go/strftime v1.0.1/go.mod h1:E1nN3pCbtMSu1yjSVeyuRFVm/U0xoR76fd03sz+Qz4g=
+github.com/lib/pq v1.7.0 h1:h93mCPfUSkaul3Ka/VG8uZdmW1uMHDGxzu0NWHuJmHY=
+github.com/lib/pq v1.7.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
+github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4=
+github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
+github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
+github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
+github.com/mattn/go-isatty v0.0.11 h1:FxPOTFNqGkuDUGi3H/qkUbQO4ZiBa2brKq5r0l8TGeM=
+github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
+github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
+github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
+github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
+github.com/memcachier/mc v2.0.1+incompatible h1:s8EDz0xrJLP8goitwZOoq1vA/sm0fPS4X3KAF0nyhWQ=
+github.com/memcachier/mc v2.0.1+incompatible/go.mod h1:7bkvFE61leUBvXz+yxsOnGBQSZpBSPIMUQSmmSHvuXc=
+github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
+github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
+github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
+github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
+github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
+github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
+github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw=
+github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
+github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
+github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
+github.com/onsi/ginkgo v1.7.0 h1:WSHQ+IS43OoUrWtD1/bbclrwK8TTH5hzp+umCiuxHgs=
+github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
+github.com/onsi/gomega v1.4.3 h1:RE1xgDvH7imwFD45h+u2SgIfERHlS2yNG4DObb5BSKU=
+github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
+github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw=
+github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
+github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
+github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
+github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
+github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs=
+github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
+github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
+github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
+github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
+github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
+github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
+github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
+github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4=
+github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
+github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
+github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
+github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
+github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
+github.com/robfig/go-cache v0.0.0-20130306151617-9fc39e0dbf62 h1:pyecQtsPmlkCsMkYhT5iZ+sUXuwee+OvfuJjinEA3ko=
+github.com/robfig/go-cache v0.0.0-20130306151617-9fc39e0dbf62/go.mod h1:65XQgovT59RWatovFwnwocoUxiI/eENTnOY5GK3STuY=
+github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
+github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
+github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 h1:bUGsEnyNbVPw06Bs80sCeARAlK8lhwqGyi6UT8ymuGk=
+github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg=
+github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
+github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
+github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
+github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
+github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
+github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
+github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
+github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
+github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
+github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
+github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
+github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s=
+github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
+github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE=
+github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ=
+github.com/tealeg/xlsx v1.0.5/go.mod h1:btRS8dz54TDnvKNosuAqxrM1QgN1udgk9O34bDCnORM=
+github.com/tebeka/strftime v0.1.3 h1:5HQXOqWKYRFfNyBMNVc9z5+QzuBtIXy03psIhtdJYto=
+github.com/tebeka/strftime v0.1.3/go.mod h1:7wJm3dZlpr4l/oVK0t1HYIc4rMzQ2XJlOMIUJUJH6XQ=
+github.com/tidwall/btree v0.0.0-20191029221954-400434d76274/go.mod h1:huei1BkDWJ3/sLXmO+bsCNELL+Bp2Kks9OLyQFkzvA8=
+github.com/tidwall/buntdb v1.1.2/go.mod h1:xAzi36Hir4FarpSHyfuZ6JzPJdjRZ8QlLZSntE2mqlI=
+github.com/tidwall/gjson v1.3.4/go.mod h1:P256ACg0Mn+j1RXIDXoss50DeIABTYK1PULOJHhxOls=
+github.com/tidwall/grect v0.0.0-20161006141115-ba9a043346eb/go.mod h1:lKYYLFIr9OIgdgrtgkZ9zgRxRdvPYsExnYBsEAd8W5M=
+github.com/tidwall/match v1.0.1/go.mod h1:LujAq0jyVjBy028G1WhWfIzbpQfMO8bBZ6Tyb0+pL9E=
+github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
+github.com/tidwall/rtree v0.0.0-20180113144539-6cd427091e0e/go.mod h1:/h+UnNGt0IhNNJLkGikcdcJqm66zGD/uJGMRxK/9+Ao=
+github.com/tidwall/tinyqueue v0.0.0-20180302190814-1e39f5511563/go.mod h1:mLqSmt7Dv/CNneF2wfcChfN1rvapyQr01LGKnKex0DQ=
+github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
+github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
+github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw=
+github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY=
+github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
+github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
+go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
+go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
+go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ=
+go.uber.org/dig v1.8.0/go.mod h1:X34SnWGr8Fyla9zQNO2GSO2D+TIuqB14OS8JhYocIyw=
+go.uber.org/fx v1.10.0 h1:S2K/H8oNied0Je/mLKdWzEWKZfv9jtxSDm8CnwK+5Fg=
+go.uber.org/fx v1.10.0/go.mod h1:vLRicqpG/qQEzno4SYU86iCwfT95EZza+Eba0ItuxqY=
+go.uber.org/goleak v0.10.0/go.mod h1:VCZuO8V8mFPlL0F5J5GK1rtHV3DrFcQ1R8ryq7FK0aI=
+go.uber.org/multierr v1.4.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4=
+go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA=
+go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
+golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529 h1:iMGN4xG0cnqj3t+zOM8wUB0BiPKHEwSxEZCvzcbZuvk=
+golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
+golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
+golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
+golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
+golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
+golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
+golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
+golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553 h1:efeOvDhwQ29Dj3SdAV/MJf8oukgn+8D8WgaCaRMchF8=
+golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
+golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
+golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200122134326-e047566fdf82 h1:ywK/j/KkyTHcdyYSZNXGjMwgmDSfjglYZ3vStQ/gSCU=
+golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
+golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
+golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
+golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
+golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
+golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191030062658-86caa796c7ab/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.0.0-20191114200427-caa0b0f7d508 h1:0FYNp0PF9kFm/ZUrvcJiQ12IUJJG7iAc6Cu01wbKrbU=
+golang.org/x/tools v0.0.0-20191114200427-caa0b0f7d508/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
+golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk=
+google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
+google.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508=
+google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
+google.golang.org/appengine v1.6.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
+google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
+google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
+google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
+google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
+google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb h1:ADPHZzpzM4tk4V4S5cnCrr5SwzvlrPRmqqCuJDB8UTs=
+google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
+google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
+google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
+google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
+google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg=
+google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
+gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
+gopkg.in/flosch/pongo2.v3 v3.0.0-20141028000813-5e81b817a0c4/go.mod h1:bJkYqV5pg6+Z7MsSu/hSb1zsPT955hBW2QHLE1jm4wA=
+gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
+gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE=
+gopkg.in/go-playground/validator.v9 v9.30.2 h1:icxYLlYflpazIV3ufMoNB9h9SYMQ37DZ8CTwkU4pnOs=
+gopkg.in/go-playground/validator.v9 v9.30.2/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ=
+gopkg.in/ini.v1 v1.51.0 h1:AQvPpx3LzTDM0AjnIRlVFwFFGC+npRopjZxLJj6gdno=
+gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
+gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
+gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
+gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
+gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
+gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
+honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=

+ 13 - 0
examples/aisle/k8s/configmap.yaml

@@ -0,0 +1,13 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  labels:
+    app: education
+  name: education
+  namespace: dolphin
+binaryData:
+data:
+  app.properties: |-
+    app.name = education
+    app.mode = debug
+    http.port = 8082

+ 36 - 0
examples/aisle/k8s/deployment.yaml

@@ -0,0 +1,36 @@
+apiVersion: v1
+kind: Deployment
+metadata:
+  name: education
+  namespace: dolphin
+spec:
+  selector:
+    matchLabels:
+      app: education
+  template:
+    metadata:
+      labels:
+        app: education
+    spec:
+      containers:
+      - name: education
+        image: registry.cn-hangzhou.aliyuncs.com/education:1001
+        volumeMounts:
+          - name: config
+            mountPath: /app/app.properties
+            subPath: app.properties
+        resources:
+          limits:
+            memory: "2Gi"
+            cpu: "1000m"
+          requests:
+            memory: "10Mi"
+            cpu: "11m"
+        ports:
+        - containerPort: 80
+      imagePullSecrets:
+        - name: registrykey
+      volumes:
+        - name: config
+          configMap:
+            name: education

+ 18 - 0
examples/aisle/k8s/ingress.yaml

@@ -0,0 +1,18 @@
+apiVersion: v1
+kind: Ingress
+metadata:
+  name: education
+  namespace: dolphin
+spec:
+  rules:
+  - host: www.yourhost.com
+    http:
+      paths:
+      - backend:
+          serviceName: education
+          servicePort: 80
+        path: /
+  tls:
+  - hosts:
+    - www.yourhost.com
+    secretName: www-tls

+ 17 - 0
examples/aisle/k8s/service.yaml

@@ -0,0 +1,17 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: education
+  namespace: dolphin
+spec:
+  ports:
+  - name: 80tcp01
+    port: 80
+    protocol: TCP
+    targetPort: 8082
+  selector:
+    app: education
+  sessionAffinity: None
+  type: ClusterIP
+status:
+  loadBalancer: {}

Plik diff jest za duży
+ 2 - 0
examples/aisle/k8s/tls.yaml


+ 16 - 0
examples/aisle/log/aisle.2020100100

@@ -0,0 +1,16 @@
+time="01/10 10:59:11" level=warning msg="Redis::@localhost:6379/0 connect failed"
+time="01/10 10:59:11" level=info msg="grpc listen on port:9081"
+time="01/10 10:59:11" level=info msg="http listen on port:8081"
+time="01/10 11:06:15" level=warning msg="Redis::@localhost:6379/0 connect failed"
+time="01/10 11:06:15" level=info msg="grpc listen on port:9081"
+time="01/10 11:06:15" level=info msg="http listen on port:8081"
+time="01/10 11:06:16" level=fatal msg="http: Server closed"
+time="01/10 11:09:50" level=warning msg="Redis::@localhost:6379/0 connect failed"
+time="01/10 11:09:50" level=info msg="grpc listen on port:9081"
+time="01/10 11:09:50" level=info msg="http listen on port:8081"
+time="01/10 11:12:49" level=fatal msg="accept tcp [::]:9081: use of closed network connection"
+time="01/10 11:12:54" level=warning msg="Redis::@localhost:6379/0 connect failed"
+time="01/10 11:12:54" level=info msg="mysql root:111111@/dolphin_aisle?charset=utf8&parseTime=True&loc=Local"
+time="01/10 11:12:54" level=info msg="mysql i2_erp:Erp@#2019@tcp(i2-db-001.rwlb.rds.aliyuncs.com:3306)/i2gjssedus"
+time="01/10 11:12:54" level=info msg="grpc listen on port:9081"
+time="01/10 11:12:54" level=info msg="http listen on port:8081"

+ 18 - 0
examples/aisle/main.go

@@ -0,0 +1,18 @@
+// Code generated by dol build. Only Generate by tools if not existed.
+// source: main.go
+
+package main
+
+import (
+	// "github.com/2637309949/dolphin/platform/app" init
+	_ "github.com/2637309949/dolphin/platform/app"
+	// "github.com/go-sql-driver/mysql" init
+	_ "github.com/go-sql-driver/mysql"
+	// "aisle/app" init
+	"aisle/app"
+)
+
+//go:generate dolphin build
+func main() {
+	app.App.Run()
+}

+ 39 - 0
examples/aisle/model/about_us.auto.go

@@ -0,0 +1,39 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// AboutUs defined
+type AboutUs struct {
+	//
+	AboutUsId null.Int `xorm:"int(11) pk notnull autoincr 'about_us_id'" json:"about_us_id" xml:"about_us_id"`
+	//
+	AboutUsPicture null.Int `xorm:"int(11) 'about_us_picture'" json:"about_us_picture" xml:"about_us_picture"`
+	//
+	AboutUsContent null.String `xorm:"varchar(10000) 'about_us_content'" json:"about_us_content" xml:"about_us_content"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	AboutUsVideo null.Int `xorm:"int(11) 'about_us_video'" json:"about_us_video" xml:"about_us_video"`
+	//
+	AboutUsCntitle null.String `xorm:"varchar(1000) 'about_us_cntitle'" json:"about_us_cntitle" xml:"about_us_cntitle"`
+	//
+	AboutUsEntitle null.String `xorm:"varchar(1000) 'about_us_entitle'" json:"about_us_entitle" xml:"about_us_entitle"`
+}
+
+// TableName table name of defined AboutUs
+func (m *AboutUs) TableName() string {
+	return "about_us"
+}

+ 33 - 0
examples/aisle/model/aboutus_content_pic.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// AboutusContentPic defined
+type AboutusContentPic struct {
+	//
+	ACPId null.Int `xorm:"int(11) pk notnull autoincr 'a_c_p_id'" json:"a_c_p_id" xml:"a_c_p_id"`
+	//
+	AuId null.Int `xorm:"int(11) 'au_id'" json:"au_id" xml:"au_id"`
+	//
+	Fileid null.Int `xorm:"int(11) 'fileid'" json:"fileid" xml:"fileid"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined AboutusContentPic
+func (m *AboutusContentPic) TableName() string {
+	return "aboutus_content_pic"
+}

+ 45 - 0
examples/aisle/model/achievement_send_email_msg.auto.go

@@ -0,0 +1,45 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// AchievementSendEmailMsg defined
+type AchievementSendEmailMsg struct {
+	//
+	ASEMId null.Int `xorm:"int(11) pk notnull autoincr 'a_s_e_m_id'" json:"a_s_e_m_id" xml:"a_s_e_m_id"`
+	//
+	SendHead null.String `xorm:"varchar(20) 'send_head'" json:"send_head" xml:"send_head"`
+	//
+	SendContent null.String `xorm:"varchar(4000) 'send_content'" json:"send_content" xml:"send_content"`
+	//
+	SendTime null.Time `xorm:"datetime 'send_time'" json:"send_time" xml:"send_time"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	PkGoal null.Int `xorm:"int(11) 'pk_goal'" json:"pk_goal" xml:"pk_goal"`
+	//
+	GoalName null.String `xorm:"varchar(10) 'goal_name'" json:"goal_name" xml:"goal_name"`
+	//
+	SendState null.Int `xorm:"int(11) 'send_state'" json:"send_state" xml:"send_state"`
+	//
+	RecipientMailbox null.String `xorm:"varchar(100) 'recipient_mailbox'" json:"recipient_mailbox" xml:"recipient_mailbox"`
+	//
+	ReceiverPhone null.String `xorm:"varchar(20) 'receiver_phone'" json:"receiver_phone" xml:"receiver_phone"`
+}
+
+// TableName table name of defined AchievementSendEmailMsg
+func (m *AchievementSendEmailMsg) TableName() string {
+	return "achievement_send_email_msg"
+}

+ 59 - 0
examples/aisle/model/active_lesson.auto.go

@@ -0,0 +1,59 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ActiveLesson defined
+type ActiveLesson struct {
+	//
+	ALId null.Int `xorm:"int(11) pk notnull autoincr 'a_l_id'" json:"a_l_id" xml:"a_l_id"`
+	//
+	ActiveName null.String `xorm:"varchar(100) 'active_name'" json:"active_name" xml:"active_name"`
+	//
+	StartTime null.Time `xorm:"datetime 'start_time'" json:"start_time" xml:"start_time"`
+	//
+	EndTime null.Time `xorm:"datetime 'end_time'" json:"end_time" xml:"end_time"`
+	//
+	ActiveState null.Int `xorm:"int(11) 'active_state'" json:"active_state" xml:"active_state"`
+	//
+	MaxNum null.Int `xorm:"int(11) 'max_num'" json:"max_num" xml:"max_num"`
+	//
+	TeaId null.Int `xorm:"int(11) 'tea_id'" json:"tea_id" xml:"tea_id"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	TlDate null.Time `xorm:"datetime 'tl_date'" json:"tl_date" xml:"tl_date"`
+	//
+	RoomId null.Int `xorm:"int(11) 'room_id'" json:"room_id" xml:"room_id"`
+	//
+	SchId null.Int `xorm:"int(11) 'sch_id'" json:"sch_id" xml:"sch_id"`
+	//
+	ActiveType null.Int `xorm:"int(11) 'active_type'" json:"active_type" xml:"active_type"`
+	//
+	ReportedNumber null.Int `xorm:"int(11) 'reported_number'" json:"reported_number" xml:"reported_number"`
+	//
+	Note null.String `xorm:"varchar(200) 'note'" json:"note" xml:"note"`
+	//
+	AgeGroup null.Int `xorm:"int(11) 'age_group'" json:"age_group" xml:"age_group"`
+	//
+	BeforeId null.Int `xorm:"int(11) 'before_id'" json:"before_id" xml:"before_id"`
+	//
+	TkType null.Int `xorm:"int(11) 'tk_type'" json:"tk_type" xml:"tk_type"`
+}
+
+// TableName table name of defined ActiveLesson
+func (m *ActiveLesson) TableName() string {
+	return "active_lesson"
+}

+ 33 - 0
examples/aisle/model/active_lesson_pro_type.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ActiveLessonProType defined
+type ActiveLessonProType struct {
+	//
+	ALPTId null.Int `xorm:"int(11) pk notnull autoincr 'a_l_p_t_id'" json:"a_l_p_t_id" xml:"a_l_p_t_id"`
+	//
+	ActiveId null.Int `xorm:"int(11) 'active_id'" json:"active_id" xml:"active_id"`
+	//
+	ProTypeId null.Int `xorm:"int(11) 'pro_type_id'" json:"pro_type_id" xml:"pro_type_id"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined ActiveLessonProType
+func (m *ActiveLessonProType) TableName() string {
+	return "active_lesson_pro_type"
+}

+ 39 - 0
examples/aisle/model/active_lesson_student.auto.go

@@ -0,0 +1,39 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ActiveLessonStudent defined
+type ActiveLessonStudent struct {
+	//
+	ALSId null.Int `xorm:"int(11) pk notnull autoincr 'a_l_s_id'" json:"a_l_s_id" xml:"a_l_s_id"`
+	//
+	ActiveId null.Int `xorm:"int(11) 'active_id'" json:"active_id" xml:"active_id"`
+	//
+	StuId null.Int `xorm:"int(11) 'stu_id'" json:"stu_id" xml:"stu_id"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	TlsState null.Int `xorm:"int(11) 'tls_state'" json:"tls_state" xml:"tls_state"`
+	//
+	SvId null.Int `xorm:"int(11) 'sv_id'" json:"sv_id" xml:"sv_id"`
+	//
+	IvId null.Int `xorm:"int(11) 'iv_id'" json:"iv_id" xml:"iv_id"`
+}
+
+// TableName table name of defined ActiveLessonStudent
+func (m *ActiveLessonStudent) TableName() string {
+	return "active_lesson_student"
+}

+ 43 - 0
examples/aisle/model/active_teacher.auto.go

@@ -0,0 +1,43 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ActiveTeacher defined
+type ActiveTeacher struct {
+	//
+	ATId null.Int `xorm:"int(11) pk notnull autoincr 'a_t_id'" json:"a_t_id" xml:"a_t_id"`
+	//
+	ActiveId null.Int `xorm:"int(11) 'active_id'" json:"active_id" xml:"active_id"`
+	//
+	TeaId null.Int `xorm:"int(11) 'tea_id'" json:"tea_id" xml:"tea_id"`
+	//
+	AttendDate null.Time `xorm:"datetime 'attend_date'" json:"attend_date" xml:"attend_date"`
+	//
+	StartTime null.Time `xorm:"datetime 'start_time'" json:"start_time" xml:"start_time"`
+	//
+	EndTime null.Time `xorm:"datetime 'end_time'" json:"end_time" xml:"end_time"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	IfKouHour null.Int `xorm:"int(11) 'if_kou_hour'" json:"if_kou_hour" xml:"if_kou_hour"`
+	//
+	ClassHour null.Float `xorm:"float(50,2) 'class_hour'" json:"class_hour" xml:"class_hour"`
+}
+
+// TableName table name of defined ActiveTeacher
+func (m *ActiveTeacher) TableName() string {
+	return "active_teacher"
+}

+ 33 - 0
examples/aisle/model/active_user.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ActiveUser defined
+type ActiveUser struct {
+	//
+	AUId null.Int `xorm:"int(11) pk notnull autoincr 'a_u_id'" json:"a_u_id" xml:"a_u_id"`
+	//
+	ActiveId null.Int `xorm:"int(11) 'active_id'" json:"active_id" xml:"active_id"`
+	//
+	UserId null.Int `xorm:"int(11) 'user_id'" json:"user_id" xml:"user_id"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined ActiveUser
+func (m *ActiveUser) TableName() string {
+	return "active_user"
+}

+ 41 - 0
examples/aisle/model/add_agreement_mb.auto.go

@@ -0,0 +1,41 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// AddAgreementMb defined
+type AddAgreementMb struct {
+	//
+	AAMId null.Int `xorm:"int(11) pk notnull autoincr 'a_a_m_id'" json:"a_a_m_id" xml:"a_a_m_id"`
+	//
+	AamName null.String `xorm:"varchar(20) 'aam_name'" json:"aam_name" xml:"aam_name"`
+	//
+	AamHead null.Int `xorm:"int(11) 'aam_head'" json:"aam_head" xml:"aam_head"`
+	//
+	AamMidd null.Int `xorm:"int(11) 'aam_midd'" json:"aam_midd" xml:"aam_midd"`
+	//
+	AamLast null.Int `xorm:"int(11) 'aam_last'" json:"aam_last" xml:"aam_last"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	AamTitle null.String `xorm:"varchar(500) 'aam_title'" json:"aam_title" xml:"aam_title"`
+	//
+	OpenOrClose null.Int `xorm:"int(11) 'open_or_close'" json:"open_or_close" xml:"open_or_close"`
+}
+
+// TableName table name of defined AddAgreementMb
+func (m *AddAgreementMb) TableName() string {
+	return "add_agreement_mb"
+}

+ 37 - 0
examples/aisle/model/android_hotfix.auto.go

@@ -0,0 +1,37 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// AndroidHotfix defined
+type AndroidHotfix struct {
+	//
+	AHId null.Int `xorm:"int(11) pk notnull autoincr 'a_h_id'" json:"a_h_id" xml:"a_h_id"`
+	//
+	AppName null.String `xorm:"varchar(200) 'app_name'" json:"app_name" xml:"app_name"`
+	//
+	Applicationid null.String `xorm:"varchar(200) 'applicationid'" json:"applicationid" xml:"applicationid"`
+	//
+	VersionName null.String `xorm:"varchar(200) 'version_name'" json:"version_name" xml:"version_name"`
+	//
+	Descriptions null.String `xorm:"varchar(500) 'descriptions'" json:"descriptions" xml:"descriptions"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined AndroidHotfix
+func (m *AndroidHotfix) TableName() string {
+	return "android_hotfix"
+}

+ 37 - 0
examples/aisle/model/app_error.auto.go

@@ -0,0 +1,37 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// AppError defined
+type AppError struct {
+	//
+	AppErrorId null.Int `xorm:"int(11) pk notnull autoincr 'app_error_id'" json:"app_error_id" xml:"app_error_id"`
+	//
+	ErrorContent null.String `xorm:"varchar(2000) 'error_content'" json:"error_content" xml:"error_content"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	ErrorType null.Int `xorm:"int(11) 'error_type'" json:"error_type" xml:"error_type"`
+	//
+	StudentId null.Int `xorm:"int(11) 'student_id'" json:"student_id" xml:"student_id"`
+	//
+	PersonId null.Int `xorm:"int(11) 'person_id'" json:"person_id" xml:"person_id"`
+}
+
+// TableName table name of defined AppError
+func (m *AppError) TableName() string {
+	return "app_error"
+}

+ 33 - 0
examples/aisle/model/app_message_file.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// AppMessageFile defined
+type AppMessageFile struct {
+	//
+	AMFId null.Int `xorm:"int(11) pk notnull autoincr 'a_m_f_id'" json:"a_m_f_id" xml:"a_m_f_id"`
+	//
+	AmnId null.Int `xorm:"int(11) 'amn_id'" json:"amn_id" xml:"amn_id"`
+	//
+	Fileid null.Int `xorm:"int(11) 'fileid'" json:"fileid" xml:"fileid"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined AppMessageFile
+func (m *AppMessageFile) TableName() string {
+	return "app_message_file"
+}

+ 33 - 0
examples/aisle/model/app_message_notification.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// AppMessageNotification defined
+type AppMessageNotification struct {
+	//
+	AMNId null.Int `xorm:"int(11) pk notnull autoincr 'a_m_n_id'" json:"a_m_n_id" xml:"a_m_n_id"`
+	//
+	MessageContent null.String `xorm:"varchar(10000) 'message_content'" json:"message_content" xml:"message_content"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	AmnTitle null.String `xorm:"varchar(100) 'amn_title'" json:"amn_title" xml:"amn_title"`
+}
+
+// TableName table name of defined AppMessageNotification
+func (m *AppMessageNotification) TableName() string {
+	return "app_message_notification"
+}

+ 33 - 0
examples/aisle/model/app_message_sch.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// AppMessageSch defined
+type AppMessageSch struct {
+	//
+	AMSId null.Int `xorm:"int(11) pk notnull autoincr 'a_m_s_id'" json:"a_m_s_id" xml:"a_m_s_id"`
+	//
+	AmnId null.Int `xorm:"int(11) 'amn_id'" json:"amn_id" xml:"amn_id"`
+	//
+	OsId null.Int `xorm:"int(11) 'os_id'" json:"os_id" xml:"os_id"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined AppMessageSch
+func (m *AppMessageSch) TableName() string {
+	return "app_message_sch"
+}

+ 33 - 0
examples/aisle/model/app_message_stu.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// AppMessageStu defined
+type AppMessageStu struct {
+	//
+	AMSId null.Int `xorm:"int(11) pk notnull autoincr 'a_m_s_id'" json:"a_m_s_id" xml:"a_m_s_id"`
+	//
+	AmnId null.Int `xorm:"int(11) 'amn_id'" json:"amn_id" xml:"amn_id"`
+	//
+	StuId null.Int `xorm:"int(11) 'stu_id'" json:"stu_id" xml:"stu_id"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined AppMessageStu
+func (m *AppMessageStu) TableName() string {
+	return "app_message_stu"
+}

+ 35 - 0
examples/aisle/model/area.auto.go

@@ -0,0 +1,35 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// Area defined
+type Area struct {
+	//
+	AreaId null.Int `xorm:"int(11) pk notnull autoincr 'area_id'" json:"area_id" xml:"area_id"`
+	//
+	AreaName null.String `xorm:"varchar(20) 'area_name'" json:"area_name" xml:"area_name"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	AreaCode null.String `xorm:"varchar(30) 'area_code'" json:"area_code" xml:"area_code"`
+	//
+	WcId null.Int `xorm:"int(11) 'wc_id'" json:"wc_id" xml:"wc_id"`
+}
+
+// TableName table name of defined Area
+func (m *Area) TableName() string {
+	return "area"
+}

+ 43 - 0
examples/aisle/model/auto_cs_time_set.auto.go

@@ -0,0 +1,43 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// AutoCsTimeSet defined
+type AutoCsTimeSet struct {
+	//
+	ACTSId null.Int `xorm:"int(11) pk notnull autoincr 'a_c_t_s_id'" json:"a_c_t_s_id" xml:"a_c_t_s_id"`
+	//
+	SetWeek null.Int `xorm:"int(11) 'set_week'" json:"set_week" xml:"set_week"`
+	//
+	SetHour null.Float `xorm:"float(11,2) 'set_hour'" json:"set_hour" xml:"set_hour"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	SetMinute null.Int `xorm:"int(11) 'set_minute'" json:"set_minute" xml:"set_minute"`
+	//
+	IfOpen null.Int `xorm:"int(11) 'if_open'" json:"if_open" xml:"if_open"`
+	//
+	TimeName null.String `xorm:"varchar(20) 'time_name'" json:"time_name" xml:"time_name"`
+	//
+	StartTimeStr null.String `xorm:"varchar(5) 'start_time_str'" json:"start_time_str" xml:"start_time_str"`
+	//
+	EndTimeStr null.String `xorm:"varchar(5) 'end_time_str'" json:"end_time_str" xml:"end_time_str"`
+}
+
+// TableName table name of defined AutoCsTimeSet
+func (m *AutoCsTimeSet) TableName() string {
+	return "auto_cs_time_set"
+}

+ 35 - 0
examples/aisle/model/branch_company.auto.go

@@ -0,0 +1,35 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// BranchCompany defined
+type BranchCompany struct {
+	//
+	BCId null.Int `xorm:"int(11) pk notnull autoincr 'b_c_id'" json:"b_c_id" xml:"b_c_id"`
+	//
+	CompanyName null.String `xorm:"varchar(1000) 'company_name'" json:"company_name" xml:"company_name"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	BcIndex null.Int `xorm:"int(11) 'bc_index'" json:"bc_index" xml:"bc_index"`
+	//
+	Onoff null.Int `xorm:"int(11) 'onoff'" json:"onoff" xml:"onoff"`
+}
+
+// TableName table name of defined BranchCompany
+func (m *BranchCompany) TableName() string {
+	return "branch_company"
+}

+ 33 - 0
examples/aisle/model/business_department.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// BusinessDepartment defined
+type BusinessDepartment struct {
+	//
+	BDId null.Int `xorm:"int(11) pk notnull autoincr 'b_d_id'" json:"b_d_id" xml:"b_d_id"`
+	//
+	BdName null.String `xorm:"varchar(200) 'bd_name'" json:"bd_name" xml:"bd_name"`
+	//
+	BdDesc null.String `xorm:"varchar(300) 'bd_desc'" json:"bd_desc" xml:"bd_desc"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined BusinessDepartment
+func (m *BusinessDepartment) TableName() string {
+	return "business_department"
+}

+ 29 - 0
examples/aisle/model/button_picture.auto.go

@@ -0,0 +1,29 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ButtonPicture defined
+type ButtonPicture struct {
+	//
+	T2230 null.Int `xorm:"int(11) pk notnull autoincr 't_223_0'" json:"t_223_0" xml:"t_223_0"`
+	//
+	BtnpicName null.String `xorm:"varchar(500) notnull 'btnpic_name'" json:"btnpic_name" xml:"btnpic_name"`
+	//
+	BtnpicType null.Float `xorm:"float(11,2) notnull 'btnpic_type'" json:"btnpic_type" xml:"btnpic_type"`
+	//
+	BtnpicPicture null.Int `xorm:"int(11) notnull 'btnpic_picture'" json:"btnpic_picture" xml:"btnpic_picture"`
+	//
+	ProId null.Int `xorm:"int(11) 'pro_id'" json:"pro_id" xml:"pro_id"`
+	//
+	Isdelete null.Int `xorm:"int(11) 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined ButtonPicture
+func (m *ButtonPicture) TableName() string {
+	return "button_picture"
+}

+ 33 - 0
examples/aisle/model/buysct_gl_givesct.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// BuysctGlGivesct defined
+type BuysctGlGivesct struct {
+	//
+	BGGId null.Int `xorm:"int(11) pk notnull autoincr 'b_g_g_id'" json:"b_g_g_id" xml:"b_g_g_id"`
+	//
+	BuysctId null.Int `xorm:"int(11) 'buysct_id'" json:"buysct_id" xml:"buysct_id"`
+	//
+	GivesctId null.Int `xorm:"int(11) 'givesct_id'" json:"givesct_id" xml:"givesct_id"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined BuysctGlGivesct
+func (m *BuysctGlGivesct) TableName() string {
+	return "buysct_gl_givesct"
+}

+ 31 - 0
examples/aisle/model/casting.auto.go

@@ -0,0 +1,31 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// Casting defined
+type Casting struct {
+	//
+	CastId null.Int `xorm:"int(11) pk notnull autoincr 'cast_id'" json:"cast_id" xml:"cast_id"`
+	//
+	CastName null.String `xorm:"varchar(500) 'cast_name'" json:"cast_name" xml:"cast_name"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	IfShow null.Int `xorm:"int(11) 'if_show'" json:"if_show" xml:"if_show"`
+}
+
+// TableName table name of defined Casting
+func (m *Casting) TableName() string {
+	return "casting"
+}

+ 35 - 0
examples/aisle/model/cc_reward_user.auto.go

@@ -0,0 +1,35 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CcRewardUser defined
+type CcRewardUser struct {
+	//
+	CRUId null.Int `xorm:"int(11) pk notnull autoincr 'c_r_u_id'" json:"c_r_u_id" xml:"c_r_u_id"`
+	//
+	UserId null.Int `xorm:"int(11) 'user_id'" json:"user_id" xml:"user_id"`
+	//
+	NdpdId null.Int `xorm:"int(11) 'ndpd_id'" json:"ndpd_id" xml:"ndpd_id"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	CcMoney null.Float `xorm:"float(10,2) 'cc_money'" json:"cc_money" xml:"cc_money"`
+}
+
+// TableName table name of defined CcRewardUser
+func (m *CcRewardUser) TableName() string {
+	return "cc_reward_user"
+}

+ 35 - 0
examples/aisle/model/ccs_homework_check_file.auto.go

@@ -0,0 +1,35 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CcsHomeworkCheckFile defined
+type CcsHomeworkCheckFile struct {
+	//
+	CHCFId null.Int `xorm:"int(11) pk notnull autoincr 'c_h_c_f_id'" json:"c_h_c_f_id" xml:"c_h_c_f_id"`
+	//
+	CctId null.Int `xorm:"int(11) 'cct_id'" json:"cct_id" xml:"cct_id"`
+	//
+	File null.Int `xorm:"int(11) 'file'" json:"file" xml:"file"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	ScsId null.Int `xorm:"int(11) 'scs_id'" json:"scs_id" xml:"scs_id"`
+}
+
+// TableName table name of defined CcsHomeworkCheckFile
+func (m *CcsHomeworkCheckFile) TableName() string {
+	return "ccs_homework_check_file"
+}

+ 41 - 0
examples/aisle/model/change_tea_his_tea.auto.go

@@ -0,0 +1,41 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ChangeTeaHisTea defined
+type ChangeTeaHisTea struct {
+	//
+	CTHTId null.Int `xorm:"int(11) pk notnull autoincr 'c_t_h_t_id'" json:"c_t_h_t_id" xml:"c_t_h_t_id"`
+	//
+	PkChangeTea null.Int `xorm:"int(11) 'pk_change_tea'" json:"pk_change_tea" xml:"pk_change_tea"`
+	//
+	PkHisTea null.Int `xorm:"int(11) 'pk_his_tea'" json:"pk_his_tea" xml:"pk_his_tea"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	StartTime null.Time `xorm:"datetime 'start_time'" json:"start_time" xml:"start_time"`
+	//
+	EndTime null.Time `xorm:"datetime 'end_time'" json:"end_time" xml:"end_time"`
+	//
+	KqKc null.Float `xorm:"float(50,2) 'kq_kc'" json:"kq_kc" xml:"kq_kc"`
+	//
+	IfKouHour null.Int `xorm:"int(11) 'if_kou_hour'" json:"if_kou_hour" xml:"if_kou_hour"`
+}
+
+// TableName table name of defined ChangeTeaHisTea
+func (m *ChangeTeaHisTea) TableName() string {
+	return "change_tea_his_tea"
+}

+ 33 - 0
examples/aisle/model/change_tea_new_tea.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ChangeTeaNewTea defined
+type ChangeTeaNewTea struct {
+	//
+	CTNTId null.Int `xorm:"int(11) pk notnull autoincr 'c_t_n_t_id'" json:"c_t_n_t_id" xml:"c_t_n_t_id"`
+	//
+	PkChangeTea null.Int `xorm:"int(11) 'pk_change_tea'" json:"pk_change_tea" xml:"pk_change_tea"`
+	//
+	PkNewTea null.Int `xorm:"int(11) 'pk_new_tea'" json:"pk_new_tea" xml:"pk_new_tea"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined ChangeTeaNewTea
+func (m *ChangeTeaNewTea) TableName() string {
+	return "change_tea_new_tea"
+}

+ 44 - 0
examples/aisle/model/channel_plan.auto.go

@@ -0,0 +1,44 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/decimal"
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ChannelPlan defined
+type ChannelPlan struct {
+	//
+	CPId null.Int `xorm:"int(11) pk notnull autoincr 'c_p_id'" json:"c_p_id" xml:"c_p_id"`
+	//
+	PkSch null.Int `xorm:"int(11) 'pk_sch'" json:"pk_sch" xml:"pk_sch"`
+	//
+	PkUser null.Int `xorm:"int(11) 'pk_user'" json:"pk_user" xml:"pk_user"`
+	//
+	InPaln null.Int `xorm:"int(11) 'in_paln'" json:"in_paln" xml:"in_paln"`
+	//
+	OutPlan null.Int `xorm:"int(11) 'out_plan'" json:"out_plan" xml:"out_plan"`
+	//
+	DemoPlan null.Int `xorm:"int(11) 'demo_plan'" json:"demo_plan" xml:"demo_plan"`
+	//
+	PalnMonth null.Time `xorm:"datetime 'paln_month'" json:"paln_month" xml:"paln_month"`
+	//
+	AchievementPlan decimal.Decimal `xorm:"decimal(11,2) 'achievement_plan'" json:"achievement_plan" xml:"achievement_plan"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined ChannelPlan
+func (m *ChannelPlan) TableName() string {
+	return "channel_plan"
+}

+ 42 - 0
examples/aisle/model/channel_school_plan.auto.go

@@ -0,0 +1,42 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/decimal"
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ChannelSchoolPlan defined
+type ChannelSchoolPlan struct {
+	//
+	CSPId null.Int `xorm:"int(11) pk notnull autoincr 'c_s_p_id'" json:"c_s_p_id" xml:"c_s_p_id"`
+	//
+	PkSch null.Int `xorm:"int(11) 'pk_sch'" json:"pk_sch" xml:"pk_sch"`
+	//
+	InPlan null.Int `xorm:"int(11) 'in_plan'" json:"in_plan" xml:"in_plan"`
+	//
+	OutPlan null.Int `xorm:"int(11) 'out_plan'" json:"out_plan" xml:"out_plan"`
+	//
+	DemoPlan null.Int `xorm:"int(11) 'demo_plan'" json:"demo_plan" xml:"demo_plan"`
+	//
+	AchievementPlan decimal.Decimal `xorm:"decimal(11,2) 'achievement_plan'" json:"achievement_plan" xml:"achievement_plan"`
+	//
+	PlanDate null.Time `xorm:"datetime 'plan_date'" json:"plan_date" xml:"plan_date"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined ChannelSchoolPlan
+func (m *ChannelSchoolPlan) TableName() string {
+	return "channel_school_plan"
+}

+ 43 - 0
examples/aisle/model/check_flow_pool.auto.go

@@ -0,0 +1,43 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CheckFlowPool defined
+type CheckFlowPool struct {
+	//
+	CFPId null.Int `xorm:"int(11) pk notnull autoincr 'c_f_p_id'" json:"c_f_p_id" xml:"c_f_p_id"`
+	//
+	FlowName null.String `xorm:"varchar(500) 'flow_name'" json:"flow_name" xml:"flow_name"`
+	//
+	ZdCheckState null.Int `xorm:"int(11) 'zd_check_state'" json:"zd_check_state" xml:"zd_check_state"`
+	//
+	PkCheckUser null.Int `xorm:"int(11) 'pk_check_user'" json:"pk_check_user" xml:"pk_check_user"`
+	//
+	CheckDate null.Time `xorm:"datetime 'check_date'" json:"check_date" xml:"check_date"`
+	//
+	NowCheckUser null.String `xorm:"varchar(500) 'now_check_user'" json:"now_check_user" xml:"now_check_user"`
+	//
+	NowFloor null.Int `xorm:"int(11) 'now_floor'" json:"now_floor" xml:"now_floor"`
+	//
+	TurnFloor null.Int `xorm:"int(11) 'turn_floor'" json:"turn_floor" xml:"turn_floor"`
+	//
+	HistoryCheckUser null.String `xorm:"varchar(500) 'history_check_user'" json:"history_check_user" xml:"history_check_user"`
+	//
+	PkFlowSet null.Int `xorm:"int(11) 'pk_flow_set'" json:"pk_flow_set" xml:"pk_flow_set"`
+	//
+	PkRefundId null.Int `xorm:"int(11) 'pk_refund_id'" json:"pk_refund_id" xml:"pk_refund_id"`
+	//
+	PkDOId null.Int `xorm:"int(11) 'pk_d_o_id'" json:"pk_d_o_id" xml:"pk_d_o_id"`
+	//
+	PkTSCId null.Int `xorm:"int(11) 'pk_t_s_c_id'" json:"pk_t_s_c_id" xml:"pk_t_s_c_id"`
+}
+
+// TableName table name of defined CheckFlowPool
+func (m *CheckFlowPool) TableName() string {
+	return "check_flow_pool"
+}

+ 35 - 0
examples/aisle/model/check_flow_set.auto.go

@@ -0,0 +1,35 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CheckFlowSet defined
+type CheckFlowSet struct {
+	//
+	CFSId null.Int `xorm:"int(11) pk notnull autoincr 'c_f_s_id'" json:"c_f_s_id" xml:"c_f_s_id"`
+	//
+	PkObject null.Int `xorm:"int(11) 'pk_object'" json:"pk_object" xml:"pk_object"`
+	//
+	CfsName null.String `xorm:"varchar(100) 'cfs_name'" json:"cfs_name" xml:"cfs_name"`
+	//
+	MaxFloor null.Int `xorm:"int(11) 'max_floor'" json:"max_floor" xml:"max_floor"`
+	//
+	Homesetid null.Int `xorm:"int(11) 'homesetid'" json:"homesetid" xml:"homesetid"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+}
+
+// TableName table name of defined CheckFlowSet
+func (m *CheckFlowSet) TableName() string {
+	return "check_flow_set"
+}

+ 37 - 0
examples/aisle/model/check_flow_set_floor.auto.go

@@ -0,0 +1,37 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CheckFlowSetFloor defined
+type CheckFlowSetFloor struct {
+	//
+	CFSFId null.Int `xorm:"int(11) pk notnull autoincr 'c_f_s_f_id'" json:"c_f_s_f_id" xml:"c_f_s_f_id"`
+	//
+	PkCfs null.Int `xorm:"int(11) 'pk_cfs'" json:"pk_cfs" xml:"pk_cfs"`
+	//
+	CfsfOr null.Int `xorm:"int(11) 'cfsf_or'" json:"cfsf_or" xml:"cfsf_or"`
+	//
+	CfsfType null.Int `xorm:"int(11) 'cfsf_type'" json:"cfsf_type" xml:"cfsf_type"`
+	//
+	FloorName null.String `xorm:"varchar(100) 'floor_name'" json:"floor_name" xml:"floor_name"`
+	//
+	IfFilterSchool null.Int `xorm:"int(11) 'if_filter_school'" json:"if_filter_school" xml:"if_filter_school"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+}
+
+// TableName table name of defined CheckFlowSetFloor
+func (m *CheckFlowSetFloor) TableName() string {
+	return "check_flow_set_floor"
+}

+ 33 - 0
examples/aisle/model/check_flow_set_floor_casting.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CheckFlowSetFloorCasting defined
+type CheckFlowSetFloorCasting struct {
+	//
+	CFSCId null.Int `xorm:"int(11) pk notnull autoincr 'c_f_s_c_id'" json:"c_f_s_c_id" xml:"c_f_s_c_id"`
+	//
+	PkCkfl null.Int `xorm:"int(11) 'pk_ckfl'" json:"pk_ckfl" xml:"pk_ckfl"`
+	//
+	PkCasting null.Int `xorm:"int(11) 'pk_casting'" json:"pk_casting" xml:"pk_casting"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined CheckFlowSetFloorCasting
+func (m *CheckFlowSetFloorCasting) TableName() string {
+	return "check_flow_set_floor_casting"
+}

+ 33 - 0
examples/aisle/model/check_flow_set_floor_user.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CheckFlowSetFloorUser defined
+type CheckFlowSetFloorUser struct {
+	//
+	CFSFUId null.Int `xorm:"int(11) pk notnull autoincr 'c_f_s_f_u_id'" json:"c_f_s_f_u_id" xml:"c_f_s_f_u_id"`
+	//
+	PkCkfl null.Int `xorm:"int(11) 'pk_ckfl'" json:"pk_ckfl" xml:"pk_ckfl"`
+	//
+	PkUser null.Int `xorm:"int(11) 'pk_user'" json:"pk_user" xml:"pk_user"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined CheckFlowSetFloorUser
+func (m *CheckFlowSetFloorUser) TableName() string {
+	return "check_flow_set_floor_user"
+}

+ 41 - 0
examples/aisle/model/class_allot_customer.auto.go

@@ -0,0 +1,41 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ClassAllotCustomer defined
+type ClassAllotCustomer struct {
+	//
+	CACId null.Int `xorm:"int(11) pk notnull autoincr 'c_a_c_id'" json:"c_a_c_id" xml:"c_a_c_id"`
+	//
+	ClassId null.Int `xorm:"int(11) 'class_id'" json:"class_id" xml:"class_id"`
+	//
+	CustomerId null.Int `xorm:"int(11) 'customer_id'" json:"customer_id" xml:"customer_id"`
+	//
+	AllotState null.Int `xorm:"int(11) 'allot_state'" json:"allot_state" xml:"allot_state"`
+	//
+	AllotCancelTime null.Time `xorm:"datetime 'allot_cancel_time'" json:"allot_cancel_time" xml:"allot_cancel_time"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	HiscustomerId null.Int `xorm:"int(11) 'hiscustomer_id'" json:"hiscustomer_id" xml:"hiscustomer_id"`
+	//
+	CacDesc null.String `xorm:"varchar(500) 'cac_desc'" json:"cac_desc" xml:"cac_desc"`
+}
+
+// TableName table name of defined ClassAllotCustomer
+func (m *ClassAllotCustomer) TableName() string {
+	return "class_allot_customer"
+}

+ 35 - 0
examples/aisle/model/class_change_tea.auto.go

@@ -0,0 +1,35 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ClassChangeTea defined
+type ClassChangeTea struct {
+	//
+	CCTId null.Int `xorm:"int(11) pk notnull autoincr 'c_c_t_id'" json:"c_c_t_id" xml:"c_c_t_id"`
+	//
+	ChangeReason null.String `xorm:"varchar(200) 'change_reason'" json:"change_reason" xml:"change_reason"`
+	//
+	ChangeTime null.Time `xorm:"datetime 'change_time'" json:"change_time" xml:"change_time"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	PkClass null.Int `xorm:"int(11) 'pk_class'" json:"pk_class" xml:"pk_class"`
+}
+
+// TableName table name of defined ClassChangeTea
+func (m *ClassChangeTea) TableName() string {
+	return "class_change_tea"
+}

+ 33 - 0
examples/aisle/model/class_change_tea_his.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ClassChangeTeaHis defined
+type ClassChangeTeaHis struct {
+	//
+	CCTHId null.Int `xorm:"int(11) pk notnull autoincr 'c_c_t_h_id'" json:"c_c_t_h_id" xml:"c_c_t_h_id"`
+	//
+	PkCct null.Int `xorm:"int(11) 'pk_cct'" json:"pk_cct" xml:"pk_cct"`
+	//
+	PkHisTea null.Int `xorm:"int(11) 'pk_his_tea'" json:"pk_his_tea" xml:"pk_his_tea"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined ClassChangeTeaHis
+func (m *ClassChangeTeaHis) TableName() string {
+	return "class_change_tea_his"
+}

+ 33 - 0
examples/aisle/model/class_change_tea_new.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ClassChangeTeaNew defined
+type ClassChangeTeaNew struct {
+	//
+	CCTNId null.Int `xorm:"int(11) pk notnull autoincr 'c_c_t_n_id'" json:"c_c_t_n_id" xml:"c_c_t_n_id"`
+	//
+	PkCct null.Int `xorm:"int(11) 'pk_cct'" json:"pk_cct" xml:"pk_cct"`
+	//
+	PkNewTea null.Int `xorm:"int(11) 'pk_new_tea'" json:"pk_new_tea" xml:"pk_new_tea"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined ClassChangeTeaNew
+func (m *ClassChangeTeaNew) TableName() string {
+	return "class_change_tea_new"
+}

+ 33 - 0
examples/aisle/model/class_content.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ClassContent defined
+type ClassContent struct {
+	//
+	CCId null.Int `xorm:"int(11) pk notnull autoincr 'c_c_id'" json:"c_c_id" xml:"c_c_id"`
+	//
+	CsId null.Int `xorm:"int(11) 'cs_id'" json:"cs_id" xml:"cs_id"`
+	//
+	ClassContent null.String `xorm:"varchar(10000) 'class_content'" json:"class_content" xml:"class_content"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined ClassContent
+func (m *ClassContent) TableName() string {
+	return "class_content"
+}

+ 33 - 0
examples/aisle/model/class_content_file.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ClassContentFile defined
+type ClassContentFile struct {
+	//
+	CCFId null.Int `xorm:"int(11) pk notnull autoincr 'c_c_f_id'" json:"c_c_f_id" xml:"c_c_f_id"`
+	//
+	ClassConId null.Int `xorm:"int(11) 'class_con_id'" json:"class_con_id" xml:"class_con_id"`
+	//
+	FileId null.Int `xorm:"int(11) 'file_id'" json:"file_id" xml:"file_id"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined ClassContentFile
+func (m *ClassContentFile) TableName() string {
+	return "class_content_file"
+}

+ 61 - 0
examples/aisle/model/class_feedback.auto.go

@@ -0,0 +1,61 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ClassFeedback defined
+type ClassFeedback struct {
+	//
+	CFId null.Int `xorm:"int(11) pk notnull autoincr 'c_f_id'" json:"c_f_id" xml:"c_f_id"`
+	//
+	CfContent null.String `xorm:"'cf_content'" json:"cf_content" xml:"cf_content"`
+	//
+	CsId null.Int `xorm:"int(11) 'cs_id'" json:"cs_id" xml:"cs_id"`
+	//
+	UserId null.Int `xorm:"int(11) 'user_id'" json:"user_id" xml:"user_id"`
+	//
+	CfTime null.Time `xorm:"datetime 'cf_time'" json:"cf_time" xml:"cf_time"`
+	//
+	Hear null.Int `xorm:"int(11) 'hear'" json:"hear" xml:"hear"`
+	//
+	Say null.Int `xorm:"int(11) 'say'" json:"say" xml:"say"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	CfRead null.Int `xorm:"int(11) 'cf_read'" json:"cf_read" xml:"cf_read"`
+	//
+	CfWrite null.Int `xorm:"int(11) 'cf_write'" json:"cf_write" xml:"cf_write"`
+	//
+	CfZhnl null.Int `xorm:"int(11) 'cf_zhnl'" json:"cf_zhnl" xml:"cf_zhnl"`
+	//
+	CheckState null.Int `xorm:"int(11) default(54) 'check_state'" json:"check_state" xml:"check_state"`
+	//
+	CheckTime null.Time `xorm:"datetime 'check_time'" json:"check_time" xml:"check_time"`
+	//
+	CheckNoReason null.String `xorm:"varchar(5000) 'check_no_reason'" json:"check_no_reason" xml:"check_no_reason"`
+	//
+	CheckUser null.Int `xorm:"int(11) 'check_user'" json:"check_user" xml:"check_user"`
+	//
+	AddUserType null.String `xorm:"varchar(1000) 'add_user_type'" json:"add_user_type" xml:"add_user_type"`
+	//
+	See null.Int `xorm:"int(11) 'see'" json:"see" xml:"see"`
+	//
+	IfSendStu null.Int `xorm:"int(11) default(3) 'if_send_stu'" json:"if_send_stu" xml:"if_send_stu"`
+}
+
+// TableName table name of defined ClassFeedback
+func (m *ClassFeedback) TableName() string {
+	return "class_feedback"
+}

+ 33 - 0
examples/aisle/model/class_feedback_file.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ClassFeedbackFile defined
+type ClassFeedbackFile struct {
+	//
+	CFFId null.Int `xorm:"int(11) pk notnull autoincr 'c_f_f_id'" json:"c_f_f_id" xml:"c_f_f_id"`
+	//
+	CfId null.Int `xorm:"int(11) 'cf_id'" json:"cf_id" xml:"cf_id"`
+	//
+	Filed null.Int `xorm:"int(11) 'filed'" json:"filed" xml:"filed"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined ClassFeedbackFile
+func (m *ClassFeedbackFile) TableName() string {
+	return "class_feedback_file"
+}

+ 73 - 0
examples/aisle/model/class_manage.auto.go

@@ -0,0 +1,73 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ClassManage defined
+type ClassManage struct {
+	//
+	CMId null.Int `xorm:"int(11) pk notnull autoincr 'c_m_id'" json:"c_m_id" xml:"c_m_id"`
+	//
+	ClassContainStu null.Int `xorm:"int(11) 'class_contain_stu'" json:"class_contain_stu" xml:"class_contain_stu"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	OsId null.Int `xorm:"int(11) 'os_id'" json:"os_id" xml:"os_id"`
+	//
+	ClassNumber null.String `xorm:"varchar(50) 'class_number'" json:"class_number" xml:"class_number"`
+	//
+	Isdelete null.Int `xorm:"int(11) 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	CmState null.Int `xorm:"int(11) 'cm_state'" json:"cm_state" xml:"cm_state"`
+	//
+	KfId null.Int `xorm:"int(11) 'kf_id'" json:"kf_id" xml:"kf_id"`
+	//
+	Isornokf null.Int `xorm:"int(11) 'isornokf'" json:"isornokf" xml:"isornokf"`
+	//
+	BmType null.Int `xorm:"int(11) 'bm_type'" json:"bm_type" xml:"bm_type"`
+	//
+	Remark null.String `xorm:"varchar(2000) 'remark'" json:"remark" xml:"remark"`
+	//
+	BussType null.Int `xorm:"int(11) 'buss_type'" json:"buss_type" xml:"buss_type"`
+	//
+	CpcId null.Int `xorm:"int(11) 'cpc_id'" json:"cpc_id" xml:"cpc_id"`
+	//
+	NowStucount null.Float `xorm:"float(50,2) 'now_stucount'" json:"now_stucount" xml:"now_stucount"`
+	//
+	ClassType null.Int `xorm:"int(11) 'class_type'" json:"class_type" xml:"class_type"`
+	//
+	ParId null.Int `xorm:"int(11) 'par_id'" json:"par_id" xml:"par_id"`
+	//
+	IfAutoPk null.Int `xorm:"int(11) 'if_auto_pk'" json:"if_auto_pk" xml:"if_auto_pk"`
+	//
+	PkClassroom null.Int `xorm:"int(11) 'pk_classroom'" json:"pk_classroom" xml:"pk_classroom"`
+	//
+	ClassName null.String `xorm:"varchar(500) 'class_name'" json:"class_name" xml:"class_name"`
+	//
+	Ifholiday null.Int `xorm:"int(11) 'ifholiday'" json:"ifholiday" xml:"ifholiday"`
+	//
+	Shuzi null.Int `xorm:"int(11) 'shuzi'" json:"shuzi" xml:"shuzi"`
+	//
+	CmOpenDate null.Time `xorm:"datetime 'cm_open_date'" json:"cm_open_date" xml:"cm_open_date"`
+	//
+	OpenUser null.String `xorm:"varchar(30) 'open_user'" json:"open_user" xml:"open_user"`
+	//
+	IfClassType null.Int `xorm:"int(11) 'if_class_type'" json:"if_class_type" xml:"if_class_type"`
+	//
+	CmGdkbType null.Int `xorm:"int(11) 'cm_gdkb_type'" json:"cm_gdkb_type" xml:"cm_gdkb_type"`
+}
+
+// TableName table name of defined ClassManage
+func (m *ClassManage) TableName() string {
+	return "class_manage"
+}

+ 47 - 0
examples/aisle/model/class_manage_stage_course.auto.go

@@ -0,0 +1,47 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ClassManageStageCourse defined
+type ClassManageStageCourse struct {
+	//
+	CMSCId null.Int `xorm:"int(11) pk notnull autoincr 'c_m_s_c_id'" json:"c_m_s_c_id" xml:"c_m_s_c_id"`
+	//
+	CmsId null.Int `xorm:"int(11) 'cms_id'" json:"cms_id" xml:"cms_id"`
+	//
+	CtscId null.Int `xorm:"int(11) 'ctsc_id'" json:"ctsc_id" xml:"ctsc_id"`
+	//
+	CourseId null.Int `xorm:"int(11) 'course_id'" json:"course_id" xml:"course_id"`
+	//
+	CmscHour null.Int `xorm:"int(11) 'cmsc_hour'" json:"cmsc_hour" xml:"cmsc_hour"`
+	//
+	CmscMinute null.Int `xorm:"int(11) 'cmsc_minute'" json:"cmsc_minute" xml:"cmsc_minute"`
+	//
+	PlanHour null.Int `xorm:"int(11) 'plan_hour'" json:"plan_hour" xml:"plan_hour"`
+	//
+	QrHour null.Int `xorm:"int(11) 'qr_hour'" json:"qr_hour" xml:"qr_hour"`
+	//
+	UseHour null.Int `xorm:"int(11) 'use_hour'" json:"use_hour" xml:"use_hour"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"int(11) 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	ClassId null.Int `xorm:"int(11) 'class_id'" json:"class_id" xml:"class_id"`
+}
+
+// TableName table name of defined ClassManageStageCourse
+func (m *ClassManageStageCourse) TableName() string {
+	return "class_manage_stage_course"
+}

+ 35 - 0
examples/aisle/model/class_manage_tea.auto.go

@@ -0,0 +1,35 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ClassManageTea defined
+type ClassManageTea struct {
+	//
+	CMTId null.Int `xorm:"int(11) pk notnull autoincr 'c_m_t_id'" json:"c_m_t_id" xml:"c_m_t_id"`
+	//
+	PkClass null.Int `xorm:"int(11) 'pk_class'" json:"pk_class" xml:"pk_class"`
+	//
+	PkTea null.Int `xorm:"int(11) 'pk_tea'" json:"pk_tea" xml:"pk_tea"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	PkCct null.Int `xorm:"int(11) 'pk_cct'" json:"pk_cct" xml:"pk_cct"`
+}
+
+// TableName table name of defined ClassManageTea
+func (m *ClassManageTea) TableName() string {
+	return "class_manage_tea"
+}

+ 33 - 0
examples/aisle/model/class_manager_pt.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ClassManagerPt defined
+type ClassManagerPt struct {
+	//
+	CMPId null.Int `xorm:"int(11) pk notnull autoincr 'c_m_p_id'" json:"c_m_p_id" xml:"c_m_p_id"`
+	//
+	CmId null.Int `xorm:"int(11) 'cm_id'" json:"cm_id" xml:"cm_id"`
+	//
+	PtId null.Int `xorm:"int(11) 'pt_id'" json:"pt_id" xml:"pt_id"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined ClassManagerPt
+func (m *ClassManagerPt) TableName() string {
+	return "class_manager_pt"
+}

+ 41 - 0
examples/aisle/model/class_product_categories.auto.go

@@ -0,0 +1,41 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ClassProductCategories defined
+type ClassProductCategories struct {
+	//
+	CPCId null.Int `xorm:"int(11) pk notnull autoincr 'c_p_c_id'" json:"c_p_c_id" xml:"c_p_c_id"`
+	//
+	CpcName null.String `xorm:"varchar(1000) 'cpc_name'" json:"cpc_name" xml:"cpc_name"`
+	//
+	CpNumberType null.Int `xorm:"int(11) 'cp_number_type'" json:"cp_number_type" xml:"cp_number_type"`
+	//
+	CpNumber null.Int `xorm:"int(11) 'cp_number'" json:"cp_number" xml:"cp_number"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	BussType null.Int `xorm:"int(11) 'buss_type'" json:"buss_type" xml:"buss_type"`
+	//
+	CourseId null.Int `xorm:"int(11) 'course_id'" json:"course_id" xml:"course_id"`
+	//
+	EnglishName null.String `xorm:"varchar(100) 'english_name'" json:"english_name" xml:"english_name"`
+}
+
+// TableName table name of defined ClassProductCategories
+func (m *ClassProductCategories) TableName() string {
+	return "class_product_categories"
+}

+ 97 - 0
examples/aisle/model/class_schedule.auto.go

@@ -0,0 +1,97 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ClassSchedule defined
+type ClassSchedule struct {
+	//
+	CSId null.Int `xorm:"int(11) pk notnull autoincr 'c_s_id'" json:"c_s_id" xml:"c_s_id"`
+	//
+	ClassId null.Int `xorm:"int(11) 'class_id'" json:"class_id" xml:"class_id"`
+	//
+	AttendDate null.Time `xorm:"datetime 'attend_date'" json:"attend_date" xml:"attend_date"`
+	//
+	AppStartTime null.Time `xorm:"datetime 'app_start_time'" json:"app_start_time" xml:"app_start_time"`
+	//
+	AppEndTime null.Time `xorm:"datetime 'app_end_time'" json:"app_end_time" xml:"app_end_time"`
+	//
+	StudyNumber null.Float `xorm:"float(11,2) 'study_number'" json:"study_number" xml:"study_number"`
+	//
+	ProId null.Int `xorm:"int(11) 'pro_id'" json:"pro_id" xml:"pro_id"`
+	//
+	OcpId null.Int `xorm:"int(11) 'ocp_id'" json:"ocp_id" xml:"ocp_id"`
+	//
+	CsKc null.Float `xorm:"float(50,2) 'cs_kc'" json:"cs_kc" xml:"cs_kc"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	StudyState null.Int `xorm:"int(11) 'study_state'" json:"study_state" xml:"study_state"`
+	//
+	ClassroomId null.Int `xorm:"int(11) 'classroom_id'" json:"classroom_id" xml:"classroom_id"`
+	//
+	Isdelete null.Int `xorm:"int(11) 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	KfId null.Int `xorm:"int(11) 'kf_id'" json:"kf_id" xml:"kf_id"`
+	//
+	BussType null.Int `xorm:"int(11) 'buss_type'" json:"buss_type" xml:"buss_type"`
+	//
+	CancelReason null.String `xorm:"varchar(500) 'cancel_reason'" json:"cancel_reason" xml:"cancel_reason"`
+	//
+	CspId null.Int `xorm:"int(11) 'csp_id'" json:"csp_id" xml:"csp_id"`
+	//
+	TspId null.Int `xorm:"int(11) 'tsp_id'" json:"tsp_id" xml:"tsp_id"`
+	//
+	ClassWhenBout null.Int `xorm:"int(11) 'class_when_bout'" json:"class_when_bout" xml:"class_when_bout"`
+	//
+	NowCustomer null.String `xorm:"varchar(100) 'now_customer'" json:"now_customer" xml:"now_customer"`
+	//
+	HisCustomer null.String `xorm:"varchar(100) 'his_customer'" json:"his_customer" xml:"his_customer"`
+	//
+	IfUpdateKf null.Int `xorm:"int(11) 'if_update_kf'" json:"if_update_kf" xml:"if_update_kf"`
+	//
+	KtnrNum null.Float `xorm:"float(50,2) 'ktnr_num'" json:"ktnr_num" xml:"ktnr_num"`
+	//
+	KtslNum null.Float `xorm:"float(50,2) 'ktsl_num'" json:"ktsl_num" xml:"ktsl_num"`
+	//
+	KtfkNum null.Float `xorm:"float(50,2) 'ktfk_num'" json:"ktfk_num" xml:"ktfk_num"`
+	//
+	KtzyNum null.Float `xorm:"float(50,2) 'ktzy_num'" json:"ktzy_num" xml:"ktzy_num"`
+	//
+	KtfkAllnum null.Float `xorm:"float(50,2) 'ktfk_allnum'" json:"ktfk_allnum" xml:"ktfk_allnum"`
+	//
+	KtzyAllnum null.Float `xorm:"float(50,2) 'ktzy_allnum'" json:"ktzy_allnum" xml:"ktzy_allnum"`
+	//
+	StuZydNum null.Float `xorm:"float(50,2) 'stu_zyd_num'" json:"stu_zyd_num" xml:"stu_zyd_num"`
+	//
+	TeaId null.String `xorm:"varchar(1000) 'tea_id'" json:"tea_id" xml:"tea_id"`
+	//
+	TeaName null.String `xorm:"varchar(1000) 'tea_name'" json:"tea_name" xml:"tea_name"`
+	//
+	NowCustomername null.String `xorm:"varchar(100) 'now_customername'" json:"now_customername" xml:"now_customername"`
+	//
+	KfEgName null.String `xorm:"varchar(1000) 'kf_eg_name'" json:"kf_eg_name" xml:"kf_eg_name"`
+	//
+	TeaEgName null.String `xorm:"varchar(1000) 'tea_eg_name'" json:"tea_eg_name" xml:"tea_eg_name"`
+	//
+	IfSendTea null.Int `xorm:"int(11) 'if_send_tea'" json:"if_send_tea" xml:"if_send_tea"`
+	//
+	Remark null.String `xorm:"varchar(50) 'remark'" json:"remark" xml:"remark"`
+	//
+	PkCtr null.Int `xorm:"int(11) 'pk_ctr'" json:"pk_ctr" xml:"pk_ctr"`
+}
+
+// TableName table name of defined ClassSchedule
+func (m *ClassSchedule) TableName() string {
+	return "class_schedule"
+}

+ 111 - 0
examples/aisle/model/class_schedule_student.auto.go

@@ -0,0 +1,111 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ClassScheduleStudent defined
+type ClassScheduleStudent struct {
+	//
+	CSSId null.Int `xorm:"int(11) pk notnull autoincr 'c_s_s_id'" json:"c_s_s_id" xml:"c_s_s_id"`
+	//
+	StuId null.Int `xorm:"int(11) 'stu_id'" json:"stu_id" xml:"stu_id"`
+	//
+	StuStartDate null.Time `xorm:"datetime 'stu_start_date'" json:"stu_start_date" xml:"stu_start_date"`
+	//
+	StuEndDate null.Time `xorm:"datetime 'stu_end_date'" json:"stu_end_date" xml:"stu_end_date"`
+	//
+	KqState null.Int `xorm:"int(11) 'kq_state'" json:"kq_state" xml:"kq_state"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	CsId null.Int `xorm:"int(11) 'cs_id'" json:"cs_id" xml:"cs_id"`
+	//
+	KqType null.Int `xorm:"int(11) 'kq_type'" json:"kq_type" xml:"kq_type"`
+	//
+	Isdelete null.Int `xorm:"int(11) 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	ScsId null.Int `xorm:"int(11) 'scs_id'" json:"scs_id" xml:"scs_id"`
+	//
+	IfKouHour null.Int `xorm:"int(11) 'if_kou_hour'" json:"if_kou_hour" xml:"if_kou_hour"`
+	//
+	NotKouReason null.String `xorm:"varchar(1000) 'not_kou_reason'" json:"not_kou_reason" xml:"not_kou_reason"`
+	//
+	KqKc null.Float `xorm:"float(10,2) 'kq_kc'" json:"kq_kc" xml:"kq_kc"`
+	//
+	KqHour null.Float `xorm:"float(10,2) 'kq_hour'" json:"kq_hour" xml:"kq_hour"`
+	//
+	ClassDate null.Time `xorm:"datetime 'class_date'" json:"class_date" xml:"class_date"`
+	//
+	ClassBeginTime null.Time `xorm:"datetime 'class_begin_time'" json:"class_begin_time" xml:"class_begin_time"`
+	//
+	ClassEndTime null.Time `xorm:"datetime 'class_end_time'" json:"class_end_time" xml:"class_end_time"`
+	//
+	KfId null.Int `xorm:"int(11) 'kf_id'" json:"kf_id" xml:"kf_id"`
+	//
+	ClassId null.Int `xorm:"int(11) 'class_id'" json:"class_id" xml:"class_id"`
+	//
+	KxPrice null.Float `xorm:"float(10,2) 'kx_price'" json:"kx_price" xml:"kx_price"`
+	//
+	CheckState null.Int `xorm:"int(11) 'check_state'" json:"check_state" xml:"check_state"`
+	//
+	CheckUser null.Int `xorm:"int(11) 'check_user'" json:"check_user" xml:"check_user"`
+	//
+	CheckTime null.Time `xorm:"datetime 'check_time'" json:"check_time" xml:"check_time"`
+	//
+	CheckRemark null.String `xorm:"varchar(2000) 'check_remark'" json:"check_remark" xml:"check_remark"`
+	//
+	BussType null.Int `xorm:"int(11) 'buss_type'" json:"buss_type" xml:"buss_type"`
+	//
+	SctId null.Int `xorm:"int(11) 'sct_id'" json:"sct_id" xml:"sct_id"`
+	//
+	SingleAllKxmoney null.Float `xorm:"float(50,2) 'single_all_kxmoney'" json:"single_all_kxmoney" xml:"single_all_kxmoney"`
+	//
+	SbtId null.Int `xorm:"int(11) 'sbt_id'" json:"sbt_id" xml:"sbt_id"`
+	//
+	SchId null.Int `xorm:"int(11) 'sch_id'" json:"sch_id" xml:"sch_id"`
+	//
+	ParId null.Int `xorm:"int(11) 'par_id'" json:"par_id" xml:"par_id"`
+	//
+	IfUpdateKf null.Int `xorm:"int(11) 'if_update_kf'" json:"if_update_kf" xml:"if_update_kf"`
+	//
+	JfPrice null.Float `xorm:"float(50,2) 'jf_price'" json:"jf_price" xml:"jf_price"`
+	//
+	JfAllprice null.Float `xorm:"float(50,2) 'jf_allprice'" json:"jf_allprice" xml:"jf_allprice"`
+	//
+	IfMz null.Int `xorm:"int(11) 'if_mz'" json:"if_mz" xml:"if_mz"`
+	//
+	DetailHour null.Float `xorm:"float(50,2) 'detail_hour'" json:"detail_hour" xml:"detail_hour"`
+	//
+	UseMz null.Float `xorm:"float(50,2) 'use_mz'" json:"use_mz" xml:"use_mz"`
+	//
+	MzReason null.String `xorm:"varchar(20) 'mz_reason'" json:"mz_reason" xml:"mz_reason"`
+	//
+	ZdReason null.Int `xorm:"int(11) 'zd_reason'" json:"zd_reason" xml:"zd_reason"`
+	//
+	ZdRsType null.Int `xorm:"int(11) 'zd_rs_type'" json:"zd_rs_type" xml:"zd_rs_type"`
+	//
+	PkOf null.Int `xorm:"int(11) 'pk_of'" json:"pk_of" xml:"pk_of"`
+	//
+	GdkbIfUse null.Int `xorm:"int(11) 'gdkb_if_use'" json:"gdkb_if_use" xml:"gdkb_if_use"`
+	//
+	GdkbUseDate null.Time `xorm:"datetime 'gdkb_use_date'" json:"gdkb_use_date" xml:"gdkb_use_date"`
+	//
+	TurnInSch null.Int `xorm:"int(11) 'turn_in_sch'" json:"turn_in_sch" xml:"turn_in_sch"`
+	//
+	NextCssId null.Int `xorm:"int(11) 'next_css_id'" json:"next_css_id" xml:"next_css_id"`
+}
+
+// TableName table name of defined ClassScheduleStudent
+func (m *ClassScheduleStudent) TableName() string {
+	return "class_schedule_student"
+}

+ 49 - 0
examples/aisle/model/class_schedule_task.auto.go

@@ -0,0 +1,49 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ClassScheduleTask defined
+type ClassScheduleTask struct {
+	//
+	CSTId null.Int `xorm:"int(11) pk notnull autoincr 'c_s_t_id'" json:"c_s_t_id" xml:"c_s_t_id"`
+	//
+	CsId null.Int `xorm:"int(11) 'cs_id'" json:"cs_id" xml:"cs_id"`
+	//
+	FeedContent null.String `xorm:"'feed_content'" json:"feed_content" xml:"feed_content"`
+	//
+	FeedRequier null.String `xorm:"'feed_requier'" json:"feed_requier" xml:"feed_requier"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	CheckState null.Int `xorm:"int(11) default(54) 'check_state'" json:"check_state" xml:"check_state"`
+	//
+	CheckTime null.Time `xorm:"datetime 'check_time'" json:"check_time" xml:"check_time"`
+	//
+	CheckUser null.Int `xorm:"int(11) 'check_user'" json:"check_user" xml:"check_user"`
+	//
+	CheckNoReason null.String `xorm:"varchar(5000) 'check_no_reason'" json:"check_no_reason" xml:"check_no_reason"`
+	//
+	AddUserType null.String `xorm:"varchar(1000) 'add_user_type'" json:"add_user_type" xml:"add_user_type"`
+	//
+	IfSendStu null.Int `xorm:"int(11) default(3) 'if_send_stu'" json:"if_send_stu" xml:"if_send_stu"`
+	//
+	IfSendTa null.Int `xorm:"int(11) default(3) 'if_send_ta'" json:"if_send_ta" xml:"if_send_ta"`
+}
+
+// TableName table name of defined ClassScheduleTask
+func (m *ClassScheduleTask) TableName() string {
+	return "class_schedule_task"
+}

+ 51 - 0
examples/aisle/model/class_time_range.auto.go

@@ -0,0 +1,51 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ClassTimeRange defined
+type ClassTimeRange struct {
+	//
+	CTRId null.Int `xorm:"int(11) pk notnull autoincr 'c_t_r_id'" json:"c_t_r_id" xml:"c_t_r_id"`
+	//
+	TrId null.Int `xorm:"int(11) 'tr_id'" json:"tr_id" xml:"tr_id"`
+	//
+	StartDate null.Time `xorm:"datetime 'start_date'" json:"start_date" xml:"start_date"`
+	//
+	EndDate null.Time `xorm:"datetime 'end_date'" json:"end_date" xml:"end_date"`
+	//
+	StartWeek null.Int `xorm:"int(11) 'start_week'" json:"start_week" xml:"start_week"`
+	//
+	EndWeek null.Int `xorm:"int(11) 'end_week'" json:"end_week" xml:"end_week"`
+	//
+	StartTime null.Time `xorm:"datetime 'start_time'" json:"start_time" xml:"start_time"`
+	//
+	EndTime null.Time `xorm:"datetime 'end_time'" json:"end_time" xml:"end_time"`
+	//
+	Hour null.Float `xorm:"float(11,2) 'hour'" json:"hour" xml:"hour"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"int(11) 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	TimeRemark null.String `xorm:"varchar(200) 'time_remark'" json:"time_remark" xml:"time_remark"`
+	//
+	IsThereATimeCourse null.Int `xorm:"int(11) 'is_there_a_time_course'" json:"is_there_a_time_course" xml:"is_there_a_time_course"`
+	//
+	PkPkTime null.Int `xorm:"int(11) 'pk_pk_time'" json:"pk_pk_time" xml:"pk_pk_time"`
+}
+
+// TableName table name of defined ClassTimeRange
+func (m *ClassTimeRange) TableName() string {
+	return "class_time_range"
+}

+ 33 - 0
examples/aisle/model/class_time_range_tea.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ClassTimeRangeTea defined
+type ClassTimeRangeTea struct {
+	//
+	CTRTId null.Int `xorm:"int(11) pk notnull autoincr 'c_t_r_t_id'" json:"c_t_r_t_id" xml:"c_t_r_t_id"`
+	//
+	PkCtr null.Int `xorm:"int(11) 'pk_ctr'" json:"pk_ctr" xml:"pk_ctr"`
+	//
+	PkTea null.Int `xorm:"int(11) 'pk_tea'" json:"pk_tea" xml:"pk_tea"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined ClassTimeRangeTea
+func (m *ClassTimeRangeTea) TableName() string {
+	return "class_time_range_tea"
+}

+ 49 - 0
examples/aisle/model/class_time_resource.auto.go

@@ -0,0 +1,49 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ClassTimeResource defined
+type ClassTimeResource struct {
+	//
+	CTRId null.Int `xorm:"int(11) pk notnull autoincr 'c_t_r_id'" json:"c_t_r_id" xml:"c_t_r_id"`
+	//
+	DataId null.Float `xorm:"float(11,2) 'data_id'" json:"data_id" xml:"data_id"`
+	//
+	TableId null.Float `xorm:"float(11,2) 'table_id'" json:"table_id" xml:"table_id"`
+	//
+	MainDataId null.Float `xorm:"float(11,2) 'main_data_id'" json:"main_data_id" xml:"main_data_id"`
+	//
+	StartTime null.Time `xorm:"datetime 'start_time'" json:"start_time" xml:"start_time"`
+	//
+	EndTime null.Time `xorm:"datetime 'end_time'" json:"end_time" xml:"end_time"`
+	//
+	ConflictContent null.String `xorm:"varchar(500) 'conflict_content'" json:"conflict_content" xml:"conflict_content"`
+	//
+	ShowContent null.String `xorm:"varchar(500) 'show_content'" json:"show_content" xml:"show_content"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"int(11) 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	CourseType null.Int `xorm:"int(11) 'course_type'" json:"course_type" xml:"course_type"`
+	//
+	CourseState null.Int `xorm:"int(11) 'course_state'" json:"course_state" xml:"course_state"`
+	//
+	Remark null.String `xorm:"varchar(100) 'remark'" json:"remark" xml:"remark"`
+}
+
+// TableName table name of defined ClassTimeResource
+func (m *ClassTimeResource) TableName() string {
+	return "class_time_resource"
+}

+ 61 - 0
examples/aisle/model/class_type.auto.go

@@ -0,0 +1,61 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ClassType defined
+type ClassType struct {
+	//
+	ClassTypeId null.Int `xorm:"int(11) pk notnull autoincr 'class_type_id'" json:"class_type_id" xml:"class_type_id"`
+	//
+	CtName null.String `xorm:"varchar(50) 'ct_name'" json:"ct_name" xml:"ct_name"`
+	//
+	CtRemark null.String `xorm:"varchar(100) 'ct_remark'" json:"ct_remark" xml:"ct_remark"`
+	//
+	CtNumber null.Int `xorm:"int(11) 'ct_number'" json:"ct_number" xml:"ct_number"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	CtMoney null.Float `xorm:"float(50,2) 'ct_money'" json:"ct_money" xml:"ct_money"`
+	//
+	Isdelete null.Int `xorm:"int(11) 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	CtType null.Int `xorm:"int(11) 'ct_type'" json:"ct_type" xml:"ct_type"`
+	//
+	CtOnePrice null.Float `xorm:"float(50,2) 'ct_one_price'" json:"ct_one_price" xml:"ct_one_price"`
+	//
+	BussType null.Int `xorm:"int(11) 'buss_type'" json:"buss_type" xml:"buss_type"`
+	//
+	CtSort null.Int `xorm:"int(11) 'ct_sort'" json:"ct_sort" xml:"ct_sort"`
+	//
+	CtMinit null.Float `xorm:"float(10,2) 'ct_minit'" json:"ct_minit" xml:"ct_minit"`
+	//
+	OrgType null.Int `xorm:"int(11) 'org_type'" json:"org_type" xml:"org_type"`
+	//
+	Ifmaincourse null.Int `xorm:"int(11) default(0) 'ifmaincourse'" json:"ifmaincourse" xml:"ifmaincourse"`
+	//
+	CtCourseType null.Int `xorm:"int(11) 'ct_course_type'" json:"ct_course_type" xml:"ct_course_type"`
+	//
+	EnglishName null.String `xorm:"varchar(100) 'english_name'" json:"english_name" xml:"english_name"`
+	//
+	AchievementNum null.Float `xorm:"float(50,2) 'achievement_num'" json:"achievement_num" xml:"achievement_num"`
+	//
+	OrderEdition null.Int `xorm:"int(11) 'order_edition'" json:"order_edition" xml:"order_edition"`
+	//
+	Mzks null.Float `xorm:"float(50,2) 'mzks'" json:"mzks" xml:"mzks"`
+}
+
+// TableName table name of defined ClassType
+func (m *ClassType) TableName() string {
+	return "class_type"
+}

+ 33 - 0
examples/aisle/model/class_type_organ.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ClassTypeOrgan defined
+type ClassTypeOrgan struct {
+	//
+	CTOId null.Int `xorm:"int(11) pk notnull autoincr 'c_t_o_id'" json:"c_t_o_id" xml:"c_t_o_id"`
+	//
+	CtId null.Int `xorm:"int(11) 'ct_id'" json:"ct_id" xml:"ct_id"`
+	//
+	OrganId null.Int `xorm:"int(11) 'organ_id'" json:"organ_id" xml:"organ_id"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"int(11) 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined ClassTypeOrgan
+func (m *ClassTypeOrgan) TableName() string {
+	return "class_type_organ"
+}

+ 33 - 0
examples/aisle/model/class_type_pt.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ClassTypePt defined
+type ClassTypePt struct {
+	//
+	CTPId null.Int `xorm:"int(11) pk notnull autoincr 'c_t_p_id'" json:"c_t_p_id" xml:"c_t_p_id"`
+	//
+	CtId null.Int `xorm:"int(11) 'ct_id'" json:"ct_id" xml:"ct_id"`
+	//
+	PtId null.Int `xorm:"int(11) 'pt_id'" json:"pt_id" xml:"pt_id"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"int(11) 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined ClassTypePt
+func (m *ClassTypePt) TableName() string {
+	return "class_type_pt"
+}

+ 43 - 0
examples/aisle/model/class_type_stage_course.auto.go

@@ -0,0 +1,43 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ClassTypeStageCourse defined
+type ClassTypeStageCourse struct {
+	//
+	CTSCId null.Int `xorm:"int(11) pk notnull autoincr 'c_t_s_c_id'" json:"c_t_s_c_id" xml:"c_t_s_c_id"`
+	//
+	CtsId null.Int `xorm:"int(11) 'cts_id'" json:"cts_id" xml:"cts_id"`
+	//
+	CourseId null.Int `xorm:"int(11) 'course_id'" json:"course_id" xml:"course_id"`
+	//
+	CtscHour null.Int `xorm:"int(11) 'ctsc_hour'" json:"ctsc_hour" xml:"ctsc_hour"`
+	//
+	CtscMinute null.Int `xorm:"int(11) 'ctsc_minute'" json:"ctsc_minute" xml:"ctsc_minute"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"int(11) 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	Price null.Float `xorm:"float(10,2) 'price'" json:"price" xml:"price"`
+	//
+	AllPrice null.Float `xorm:"float(10,2) 'all_price'" json:"all_price" xml:"all_price"`
+	//
+	CtId null.Int `xorm:"int(11) 'ct_id'" json:"ct_id" xml:"ct_id"`
+}
+
+// TableName table name of defined ClassTypeStageCourse
+func (m *ClassTypeStageCourse) TableName() string {
+	return "class_type_stage_course"
+}

+ 41 - 0
examples/aisle/model/class_yp_sc.auto.go

@@ -0,0 +1,41 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ClassYpSc defined
+type ClassYpSc struct {
+	//
+	CYSId null.Int `xorm:"int(11) pk notnull autoincr 'c_y_s_id'" json:"c_y_s_id" xml:"c_y_s_id"`
+	//
+	PkClass null.Int `xorm:"int(11) 'pk_class'" json:"pk_class" xml:"pk_class"`
+	//
+	Kc null.Float `xorm:"float(11,2) 'kc'" json:"kc" xml:"kc"`
+	//
+	ClassDate null.Time `xorm:"datetime 'class_date'" json:"class_date" xml:"class_date"`
+	//
+	StartTime null.Time `xorm:"datetime 'start_time'" json:"start_time" xml:"start_time"`
+	//
+	ClassWeek null.Int `xorm:"int(11) 'class_week'" json:"class_week" xml:"class_week"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	PkSch null.Int `xorm:"int(11) 'pk_sch'" json:"pk_sch" xml:"pk_sch"`
+}
+
+// TableName table name of defined ClassYpSc
+func (m *ClassYpSc) TableName() string {
+	return "class_yp_sc"
+}

+ 47 - 0
examples/aisle/model/classroom_time_resource.auto.go

@@ -0,0 +1,47 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ClassroomTimeResource defined
+type ClassroomTimeResource struct {
+	//
+	CTRId null.Int `xorm:"int(11) pk notnull autoincr 'c_t_r_id'" json:"c_t_r_id" xml:"c_t_r_id"`
+	//
+	DataId null.Float `xorm:"float(11,2) 'data_id'" json:"data_id" xml:"data_id"`
+	//
+	TableId null.Float `xorm:"float(11,2) 'table_id'" json:"table_id" xml:"table_id"`
+	//
+	MainDataId null.Int `xorm:"int(11) 'main_data_id'" json:"main_data_id" xml:"main_data_id"`
+	//
+	StartTime null.Time `xorm:"datetime 'start_time'" json:"start_time" xml:"start_time"`
+	//
+	EndTime null.Time `xorm:"datetime 'end_time'" json:"end_time" xml:"end_time"`
+	//
+	ConflictContent null.String `xorm:"varchar(500) 'conflict_content'" json:"conflict_content" xml:"conflict_content"`
+	//
+	ShowContent null.String `xorm:"varchar(500) 'show_content'" json:"show_content" xml:"show_content"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"int(11) 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	CourseType null.Int `xorm:"int(11) 'course_type'" json:"course_type" xml:"course_type"`
+	//
+	CourseState null.Int `xorm:"int(11) 'course_state'" json:"course_state" xml:"course_state"`
+}
+
+// TableName table name of defined ClassroomTimeResource
+func (m *ClassroomTimeResource) TableName() string {
+	return "classroom_time_resource"
+}

+ 39 - 0
examples/aisle/model/cm_standard_operation.auto.go

@@ -0,0 +1,39 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CmStandardOperation defined
+type CmStandardOperation struct {
+	//
+	CSOId null.Int `xorm:"int(11) pk notnull autoincr 'c_s_o_id'" json:"c_s_o_id" xml:"c_s_o_id"`
+	//
+	CmId null.Int `xorm:"int(11) 'cm_id'" json:"cm_id" xml:"cm_id"`
+	//
+	StuId null.Int `xorm:"int(11) 'stu_id'" json:"stu_id" xml:"stu_id"`
+	//
+	CmSOType null.Int `xorm:"int(11) 'cm_s_o_type'" json:"cm_s_o_type" xml:"cm_s_o_type"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	TmLevelId null.Int `xorm:"int(11) 'tm_level_id'" json:"tm_level_id" xml:"tm_level_id"`
+	//
+	CmSOContent null.Int `xorm:"int(11) 'cm_s_o_content'" json:"cm_s_o_content" xml:"cm_s_o_content"`
+}
+
+// TableName table name of defined CmStandardOperation
+func (m *CmStandardOperation) TableName() string {
+	return "cm_standard_operation"
+}

+ 63 - 0
examples/aisle/model/complaint.auto.go

@@ -0,0 +1,63 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// Complaint defined
+type Complaint struct {
+	//
+	ComplaintId null.Int `xorm:"int(11) pk notnull autoincr 'complaint_id'" json:"complaint_id" xml:"complaint_id"`
+	//
+	StudentId null.Int `xorm:"int(11) 'student_id'" json:"student_id" xml:"student_id"`
+	//
+	ComplaintReason null.String `xorm:"varchar(500) 'complaint_reason'" json:"complaint_reason" xml:"complaint_reason"`
+	//
+	ComplaintDate null.Time `xorm:"datetime 'complaint_date'" json:"complaint_date" xml:"complaint_date"`
+	//
+	UserId null.Int `xorm:"int(11) 'user_id'" json:"user_id" xml:"user_id"`
+	//
+	IfSolve null.Int `xorm:"int(11) 'if_solve'" json:"if_solve" xml:"if_solve"`
+	//
+	Solution null.String `xorm:"varchar(500) 'solution'" json:"solution" xml:"solution"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	SolveResult null.Int `xorm:"int(11) 'solve_result'" json:"solve_result" xml:"solve_result"`
+	//
+	SolutionDate null.Time `xorm:"datetime 'solution_date'" json:"solution_date" xml:"solution_date"`
+	//
+	ReceiveUser null.Int `xorm:"int(11) 'receive_user'" json:"receive_user" xml:"receive_user"`
+	//
+	ComState null.Int `xorm:"int(11) 'com_state'" json:"com_state" xml:"com_state"`
+	//
+	ComType null.Int `xorm:"int(11) 'com_type'" json:"com_type" xml:"com_type"`
+	//
+	ContentType null.Int `xorm:"int(11) 'content_type'" json:"content_type" xml:"content_type"`
+	//
+	ParentalFeedback null.String `xorm:"varchar(2000) 'parental_feedback'" json:"parental_feedback" xml:"parental_feedback"`
+	//
+	ComplaintSchool null.Int `xorm:"int(11) 'complaint_school'" json:"complaint_school" xml:"complaint_school"`
+	//
+	Complaint null.String `xorm:"varchar(500) 'complaint'" json:"complaint" xml:"complaint"`
+	//
+	ComplaintPhone null.String `xorm:"varchar(200) 'complaint_phone'" json:"complaint_phone" xml:"complaint_phone"`
+	//
+	ComplaintForm null.Int `xorm:"int(11) 'complaint_form'" json:"complaint_form" xml:"complaint_form"`
+}
+
+// TableName table name of defined Complaint
+func (m *Complaint) TableName() string {
+	return "complaint"
+}

+ 41 - 0
examples/aisle/model/complaint_deal.auto.go

@@ -0,0 +1,41 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// ComplaintDeal defined
+type ComplaintDeal struct {
+	//
+	CDId null.Int `xorm:"int(11) pk notnull autoincr 'c_d_id'" json:"c_d_id" xml:"c_d_id"`
+	//
+	CdState null.Int `xorm:"int(11) 'cd_state'" json:"cd_state" xml:"cd_state"`
+	//
+	CdUser null.Int `xorm:"int(11) 'cd_user'" json:"cd_user" xml:"cd_user"`
+	//
+	CdSituation null.String `xorm:"varchar(2000) 'cd_situation'" json:"cd_situation" xml:"cd_situation"`
+	//
+	CdDate null.Time `xorm:"datetime 'cd_date'" json:"cd_date" xml:"cd_date"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	CdDeal null.Int `xorm:"int(11) 'cd_deal'" json:"cd_deal" xml:"cd_deal"`
+	//
+	CpId null.Int `xorm:"int(11) 'cp_id'" json:"cp_id" xml:"cp_id"`
+}
+
+// TableName table name of defined ComplaintDeal
+func (m *ComplaintDeal) TableName() string {
+	return "complaint_deal"
+}

+ 35 - 0
examples/aisle/model/course.auto.go

@@ -0,0 +1,35 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// Course defined
+type Course struct {
+	//
+	CourseId null.Int `xorm:"int(11) pk notnull autoincr 'course_id'" json:"course_id" xml:"course_id"`
+	//
+	CourseName null.String `xorm:"varchar(50) 'course_name'" json:"course_name" xml:"course_name"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	CourseType null.Int `xorm:"int(11) 'course_type'" json:"course_type" xml:"course_type"`
+	//
+	Isdelete null.Int `xorm:"int(11) 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	EnglishName null.String `xorm:"varchar(100) 'english_name'" json:"english_name" xml:"english_name"`
+}
+
+// TableName table name of defined Course
+func (m *Course) TableName() string {
+	return "course"
+}

+ 33 - 0
examples/aisle/model/course_product_type.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CourseProductType defined
+type CourseProductType struct {
+	//
+	CPTId null.Int `xorm:"int(11) pk notnull autoincr 'c_p_t_id'" json:"c_p_t_id" xml:"c_p_t_id"`
+	//
+	CourseId null.Int `xorm:"int(11) 'course_id'" json:"course_id" xml:"course_id"`
+	//
+	PtId null.Int `xorm:"int(11) 'pt_id'" json:"pt_id" xml:"pt_id"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"int(11) 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined CourseProductType
+func (m *CourseProductType) TableName() string {
+	return "course_product_type"
+}

+ 33 - 0
examples/aisle/model/course_video.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CourseVideo defined
+type CourseVideo struct {
+	//
+	CVId null.Int `xorm:"int(11) pk notnull autoincr 'c_v_id'" json:"c_v_id" xml:"c_v_id"`
+	//
+	CsId null.Int `xorm:"int(11) 'cs_id'" json:"cs_id" xml:"cs_id"`
+	//
+	CourseVideoDesc null.String `xorm:"varchar(10000) 'course_video_desc'" json:"course_video_desc" xml:"course_video_desc"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Float `xorm:"float(11,2) pk notnull default(0.00) 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined CourseVideo
+func (m *CourseVideo) TableName() string {
+	return "course_video"
+}

+ 33 - 0
examples/aisle/model/course_video_file.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CourseVideoFile defined
+type CourseVideoFile struct {
+	//
+	CVFId null.Int `xorm:"int(11) pk notnull autoincr 'c_v_f_id'" json:"c_v_f_id" xml:"c_v_f_id"`
+	//
+	CvId null.Int `xorm:"int(11) 'cv_id'" json:"cv_id" xml:"cv_id"`
+	//
+	Filed null.Int `xorm:"int(11) 'filed'" json:"filed" xml:"filed"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined CourseVideoFile
+func (m *CourseVideoFile) TableName() string {
+	return "course_video_file"
+}

+ 33 - 0
examples/aisle/model/cover_complaint_people.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CoverComplaintPeople defined
+type CoverComplaintPeople struct {
+	//
+	CCPId null.Int `xorm:"int(11) pk notnull autoincr 'c_c_p_id'" json:"c_c_p_id" xml:"c_c_p_id"`
+	//
+	ComplaintId null.Int `xorm:"int(11) 'complaint_id'" json:"complaint_id" xml:"complaint_id"`
+	//
+	ComplaintPeople null.Int `xorm:"int(11) 'complaint_people'" json:"complaint_people" xml:"complaint_people"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined CoverComplaintPeople
+func (m *CoverComplaintPeople) TableName() string {
+	return "cover_complaint_people"
+}

+ 33 - 0
examples/aisle/model/cpc_city.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CpcCity defined
+type CpcCity struct {
+	//
+	CpcCityId null.Int `xorm:"int(11) pk notnull autoincr 'cpc_city_id'" json:"cpc_city_id" xml:"cpc_city_id"`
+	//
+	CpcId null.Int `xorm:"int(11) 'cpc_id'" json:"cpc_id" xml:"cpc_id"`
+	//
+	CityId null.Int `xorm:"int(11) 'city_id'" json:"city_id" xml:"city_id"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined CpcCity
+func (m *CpcCity) TableName() string {
+	return "cpc_city"
+}

+ 33 - 0
examples/aisle/model/cpc_ct.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CpcCt defined
+type CpcCt struct {
+	//
+	CpcCtId null.Int `xorm:"int(11) pk notnull autoincr 'cpc_ct_id'" json:"cpc_ct_id" xml:"cpc_ct_id"`
+	//
+	CpcId null.Int `xorm:"int(11) 'cpc_id'" json:"cpc_id" xml:"cpc_id"`
+	//
+	CtId null.Int `xorm:"int(11) 'ct_id'" json:"ct_id" xml:"ct_id"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined CpcCt
+func (m *CpcCt) TableName() string {
+	return "cpc_ct"
+}

+ 35 - 0
examples/aisle/model/cs_change_teacher.auto.go

@@ -0,0 +1,35 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CsChangeTeacher defined
+type CsChangeTeacher struct {
+	//
+	CCTId null.Int `xorm:"int(11) pk notnull autoincr 'c_c_t_id'" json:"c_c_t_id" xml:"c_c_t_id"`
+	//
+	PkCs null.Int `xorm:"int(11) 'pk_cs'" json:"pk_cs" xml:"pk_cs"`
+	//
+	Remark null.String `xorm:"varchar(500) 'remark'" json:"remark" xml:"remark"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	KqKc null.Float `xorm:"float(50,2) 'kq_kc'" json:"kq_kc" xml:"kq_kc"`
+}
+
+// TableName table name of defined CsChangeTeacher
+func (m *CsChangeTeacher) TableName() string {
+	return "cs_change_teacher"
+}

+ 43 - 0
examples/aisle/model/cs_execute_content.auto.go

@@ -0,0 +1,43 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CsExecuteContent defined
+type CsExecuteContent struct {
+	//
+	CECId null.Int `xorm:"int(11) pk notnull autoincr 'c_e_c_id'" json:"c_e_c_id" xml:"c_e_c_id"`
+	//
+	CspcId null.Int `xorm:"int(11) 'cspc_id'" json:"cspc_id" xml:"cspc_id"`
+	//
+	UserId null.Int `xorm:"int(11) 'user_id'" json:"user_id" xml:"user_id"`
+	//
+	PlanType null.Int `xorm:"int(11) 'plan_type'" json:"plan_type" xml:"plan_type"`
+	//
+	ExecuteDate null.Time `xorm:"datetime 'execute_date'" json:"execute_date" xml:"execute_date"`
+	//
+	Feedback null.String `xorm:"varchar(500) 'feedback'" json:"feedback" xml:"feedback"`
+	//
+	UnfinishedReason null.String `xorm:"varchar(500) 'unfinished_reason'" json:"unfinished_reason" xml:"unfinished_reason"`
+	//
+	NextExecuteDate null.Time `xorm:"datetime 'next_execute_date'" json:"next_execute_date" xml:"next_execute_date"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined CsExecuteContent
+func (m *CsExecuteContent) TableName() string {
+	return "cs_execute_content"
+}

+ 62 - 0
examples/aisle/model/cs_kf_hour_detail.auto.go

@@ -0,0 +1,62 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/decimal"
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CsKfHourDetail defined
+type CsKfHourDetail struct {
+	//
+	CKHDId null.Int `xorm:"int(11) pk notnull autoincr 'c_k_h_d_id'" json:"c_k_h_d_id" xml:"c_k_h_d_id"`
+	//
+	PkCs null.Int `xorm:"int(11) 'pk_cs'" json:"pk_cs" xml:"pk_cs"`
+	//
+	PkKf null.Int `xorm:"int(11) 'pk_kf'" json:"pk_kf" xml:"pk_kf"`
+	//
+	KqHour null.Float `xorm:"float(11,2) 'kq_hour'" json:"kq_hour" xml:"kq_hour"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	KqDate null.Time `xorm:"datetime 'kq_date'" json:"kq_date" xml:"kq_date"`
+	//
+	PkCss null.Int `xorm:"int(11) 'pk_css'" json:"pk_css" xml:"pk_css"`
+	//
+	PkCsckfId null.Int `xorm:"int(11) 'pk_csckf_id'" json:"pk_csckf_id" xml:"pk_csckf_id"`
+	//
+	PkCssckfId null.Int `xorm:"int(11) 'pk_cssckf_id'" json:"pk_cssckf_id" xml:"pk_cssckf_id"`
+	//
+	ZdRsType null.Int `xorm:"int(11) 'zd_rs_type'" json:"zd_rs_type" xml:"zd_rs_type"`
+	//
+	PkStu null.Int `xorm:"int(11) 'pk_stu'" json:"pk_stu" xml:"pk_stu"`
+	//
+	KxOnePrice decimal.Decimal `xorm:"decimal(50,3) 'kx_one_price'" json:"kx_one_price" xml:"kx_one_price"`
+	//
+	KxAllPrice decimal.Decimal `xorm:"decimal(50,3) 'kx_all_price'" json:"kx_all_price" xml:"kx_all_price"`
+	//
+	JfOnePrice decimal.Decimal `xorm:"decimal(50,3) 'jf_one_price'" json:"jf_one_price" xml:"jf_one_price"`
+	//
+	JfAllPrice decimal.Decimal `xorm:"decimal(50,3) 'jf_all_price'" json:"jf_all_price" xml:"jf_all_price"`
+	//
+	PkClass null.Int `xorm:"int(11) 'pk_class'" json:"pk_class" xml:"pk_class"`
+	//
+	KqKc null.Float `xorm:"float(50,2) 'kq_kc'" json:"kq_kc" xml:"kq_kc"`
+	//
+	PkSch null.Int `xorm:"int(11) 'pk_sch'" json:"pk_sch" xml:"pk_sch"`
+}
+
+// TableName table name of defined CsKfHourDetail
+func (m *CsKfHourDetail) TableName() string {
+	return "cs_kf_hour_detail"
+}

+ 35 - 0
examples/aisle/model/cs_stu_teacher.auto.go

@@ -0,0 +1,35 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CsStuTeacher defined
+type CsStuTeacher struct {
+	//
+	CSTId null.Int `xorm:"int(11) pk notnull autoincr 'c_s_t_id'" json:"c_s_t_id" xml:"c_s_t_id"`
+	//
+	PkCsStu null.Int `xorm:"int(11) 'pk_cs_stu'" json:"pk_cs_stu" xml:"pk_cs_stu"`
+	//
+	PkTea null.Int `xorm:"int(11) 'pk_tea'" json:"pk_tea" xml:"pk_tea"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	StuId null.Int `xorm:"int(11) 'stu_id'" json:"stu_id" xml:"stu_id"`
+}
+
+// TableName table name of defined CsStuTeacher
+func (m *CsStuTeacher) TableName() string {
+	return "cs_stu_teacher"
+}

+ 33 - 0
examples/aisle/model/cs_task_files.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CsTaskFiles defined
+type CsTaskFiles struct {
+	//
+	CTFId null.Int `xorm:"int(11) pk notnull autoincr 'c_t_f_id'" json:"c_t_f_id" xml:"c_t_f_id"`
+	//
+	CsTaskId null.Int `xorm:"int(11) 'cs_task_id'" json:"cs_task_id" xml:"cs_task_id"`
+	//
+	FileId null.Int `xorm:"int(11) 'file_id'" json:"file_id" xml:"file_id"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined CsTaskFiles
+func (m *CsTaskFiles) TableName() string {
+	return "cs_task_files"
+}

+ 43 - 0
examples/aisle/model/cs_visit.auto.go

@@ -0,0 +1,43 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CsVisit defined
+type CsVisit struct {
+	//
+	CsVisitId null.Int `xorm:"int(11) pk notnull autoincr 'cs_visit_id'" json:"cs_visit_id" xml:"cs_visit_id"`
+	//
+	VisitContent null.String `xorm:"varchar(300) 'visit_content'" json:"visit_content" xml:"visit_content"`
+	//
+	VisitStartTime null.Time `xorm:"datetime 'visit_start_time'" json:"visit_start_time" xml:"visit_start_time"`
+	//
+	VisitEndTime null.Time `xorm:"datetime 'visit_end_time'" json:"visit_end_time" xml:"visit_end_time"`
+	//
+	NextVisitTime null.Time `xorm:"datetime 'next_visit_time'" json:"next_visit_time" xml:"next_visit_time"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	StuId null.Int `xorm:"int(11) 'stu_id'" json:"stu_id" xml:"stu_id"`
+	//
+	BussType null.Int `xorm:"int(11) 'buss_type'" json:"buss_type" xml:"buss_type"`
+	//
+	VisituserId null.Int `xorm:"int(11) 'visituser_id'" json:"visituser_id" xml:"visituser_id"`
+}
+
+// TableName table name of defined CsVisit
+func (m *CsVisit) TableName() string {
+	return "cs_visit"
+}

+ 33 - 0
examples/aisle/model/cspv_tea.auto.go

@@ -0,0 +1,33 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CspvTea defined
+type CspvTea struct {
+	//
+	CspvTeaId null.Int `xorm:"int(11) pk notnull autoincr 'cspv_tea_id'" json:"cspv_tea_id" xml:"cspv_tea_id"`
+	//
+	CspvId null.Int `xorm:"int(11) 'cspv_id'" json:"cspv_id" xml:"cspv_id"`
+	//
+	TeaId null.Int `xorm:"int(11) 'tea_id'" json:"tea_id" xml:"tea_id"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined CspvTea
+func (m *CspvTea) TableName() string {
+	return "cspv_tea"
+}

+ 47 - 0
examples/aisle/model/css_chage_student.auto.go

@@ -0,0 +1,47 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CssChageStudent defined
+type CssChageStudent struct {
+	//
+	CCSId null.Int `xorm:"int(11) pk notnull autoincr 'c_c_s_id'" json:"c_c_s_id" xml:"c_c_s_id"`
+	//
+	PkCss null.Int `xorm:"int(11) 'pk_css'" json:"pk_css" xml:"pk_css"`
+	//
+	PkSct null.Int `xorm:"int(11) 'pk_sct'" json:"pk_sct" xml:"pk_sct"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	PkOldStu null.Int `xorm:"int(11) 'pk_old_stu'" json:"pk_old_stu" xml:"pk_old_stu"`
+	//
+	PkNewStu null.Int `xorm:"int(11) 'pk_new_stu'" json:"pk_new_stu" xml:"pk_new_stu"`
+	//
+	PkCs null.Int `xorm:"int(11) 'pk_cs'" json:"pk_cs" xml:"pk_cs"`
+	//
+	PkOldSct null.Int `xorm:"int(11) 'pk_old_sct'" json:"pk_old_sct" xml:"pk_old_sct"`
+	//
+	IfKouHour null.Int `xorm:"int(11) 'if_kou_hour'" json:"if_kou_hour" xml:"if_kou_hour"`
+	//
+	IfMz null.Int `xorm:"int(11) 'if_mz'" json:"if_mz" xml:"if_mz"`
+	//
+	OldScsId null.Int `xorm:"int(11) 'old_scs_id'" json:"old_scs_id" xml:"old_scs_id"`
+}
+
+// TableName table name of defined CssChageStudent
+func (m *CssChageStudent) TableName() string {
+	return "css_chage_student"
+}

+ 35 - 0
examples/aisle/model/css_change_kf.auto.go

@@ -0,0 +1,35 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CssChangeKf defined
+type CssChangeKf struct {
+	//
+	CCKId null.Int `xorm:"int(11) pk notnull autoincr 'c_c_k_id'" json:"c_c_k_id" xml:"c_c_k_id"`
+	//
+	PkCss null.Int `xorm:"int(11) 'pk_css'" json:"pk_css" xml:"pk_css"`
+	//
+	PkOldKf null.Int `xorm:"int(11) 'pk_old_kf'" json:"pk_old_kf" xml:"pk_old_kf"`
+	//
+	PkNewKf null.Int `xorm:"int(11) 'pk_new_kf'" json:"pk_new_kf" xml:"pk_new_kf"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+}
+
+// TableName table name of defined CssChangeKf
+func (m *CssChangeKf) TableName() string {
+	return "css_change_kf"
+}

+ 53 - 0
examples/aisle/model/css_cs_task.auto.go

@@ -0,0 +1,53 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CssCsTask defined
+type CssCsTask struct {
+	//
+	CCTId null.Int `xorm:"int(11) pk notnull autoincr 'c_c_t_id'" json:"c_c_t_id" xml:"c_c_t_id"`
+	//
+	TeaBzDesc null.String `xorm:"'tea_bz_desc'" json:"tea_bz_desc" xml:"tea_bz_desc"`
+	//
+	TeaBzYqDesc null.String `xorm:"'tea_bz_yq_desc'" json:"tea_bz_yq_desc" xml:"tea_bz_yq_desc"`
+	//
+	CsTaskId null.Int `xorm:"int(11) 'cs_task_id'" json:"cs_task_id" xml:"cs_task_id"`
+	//
+	CsStuId null.Int `xorm:"int(11) 'cs_stu_id'" json:"cs_stu_id" xml:"cs_stu_id"`
+	//
+	StuFinishDesc null.String `xorm:"'stu_finish_desc'" json:"stu_finish_desc" xml:"stu_finish_desc"`
+	//
+	TeaPgDesc null.String `xorm:"'tea_pg_desc'" json:"tea_pg_desc" xml:"tea_pg_desc"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	ScsId null.Int `xorm:"int(11) 'scs_id'" json:"scs_id" xml:"scs_id"`
+	//
+	LspgCheckstate null.Int `xorm:"int(11) 'lspg_checkstate'" json:"lspg_checkstate" xml:"lspg_checkstate"`
+	//
+	LspgCheckuser null.Int `xorm:"int(11) 'lspg_checkuser'" json:"lspg_checkuser" xml:"lspg_checkuser"`
+	//
+	LspgChecktime null.Time `xorm:"datetime 'lspg_checktime'" json:"lspg_checktime" xml:"lspg_checktime"`
+	//
+	PgbtgReason null.String `xorm:"varchar(1500) 'pgbtg_reason'" json:"pgbtg_reason" xml:"pgbtg_reason"`
+	//
+	TeaPgPf null.Int `xorm:"int(11) 'tea_pg_pf'" json:"tea_pg_pf" xml:"tea_pg_pf"`
+}
+
+// TableName table name of defined CssCsTask
+func (m *CssCsTask) TableName() string {
+	return "css_cs_task"
+}

+ 41 - 0
examples/aisle/model/css_cs_task_file.auto.go

@@ -0,0 +1,41 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CssCsTaskFile defined
+type CssCsTaskFile struct {
+	//
+	CCTFId null.Int `xorm:"int(11) pk notnull autoincr 'c_c_t_f_id'" json:"c_c_t_f_id" xml:"c_c_t_f_id"`
+	//
+	CsId null.Int `xorm:"int(11) 'cs_id'" json:"cs_id" xml:"cs_id"`
+	//
+	Fileid null.Int `xorm:"int(11) 'fileid'" json:"fileid" xml:"fileid"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	CssCsTId null.Int `xorm:"int(11) 'css_cs_t_id'" json:"css_cs_t_id" xml:"css_cs_t_id"`
+	//
+	CsTFiled null.Int `xorm:"int(11) 'cs_t_filed'" json:"cs_t_filed" xml:"cs_t_filed"`
+	//
+	CssId null.Int `xorm:"int(11) 'css_id'" json:"css_id" xml:"css_id"`
+	//
+	CstId null.Int `xorm:"int(11) 'cst_id'" json:"cst_id" xml:"cst_id"`
+}
+
+// TableName table name of defined CssCsTaskFile
+func (m *CssCsTaskFile) TableName() string {
+	return "css_cs_task_file"
+}

+ 35 - 0
examples/aisle/model/css_delete_record.auto.go

@@ -0,0 +1,35 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CssDeleteRecord defined
+type CssDeleteRecord struct {
+	//
+	CDRId null.Int `xorm:"int(11) pk notnull autoincr 'c_d_r_id'" json:"c_d_r_id" xml:"c_d_r_id"`
+	//
+	CssId null.Int `xorm:"int(11) 'css_id'" json:"css_id" xml:"css_id"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	StuId null.Int `xorm:"int(11) 'stu_id'" json:"stu_id" xml:"stu_id"`
+	//
+	ScsId null.Int `xorm:"int(11) 'scs_id'" json:"scs_id" xml:"scs_id"`
+}
+
+// TableName table name of defined CssDeleteRecord
+func (m *CssDeleteRecord) TableName() string {
+	return "css_delete_record"
+}

+ 35 - 0
examples/aisle/model/css_h_f_file.auto.go

@@ -0,0 +1,35 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CssHFFile defined
+type CssHFFile struct {
+	//
+	CHFFId null.Int `xorm:"int(11) pk notnull autoincr 'c_h_f_f_id'" json:"c_h_f_f_id" xml:"c_h_f_f_id"`
+	//
+	Fileid null.Int `xorm:"int(11) 'fileid'" json:"fileid" xml:"fileid"`
+	//
+	CctId null.Int `xorm:"int(11) 'cct_id'" json:"cct_id" xml:"cct_id"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	ScsId null.Int `xorm:"int(11) 'scs_id'" json:"scs_id" xml:"scs_id"`
+}
+
+// TableName table name of defined CssHFFile
+func (m *CssHFFile) TableName() string {
+	return "css_h_f_file"
+}

+ 37 - 0
examples/aisle/model/customer_service_process.auto.go

@@ -0,0 +1,37 @@
+// Code generated by dol build. DO NOT EDIT.
+// source: auto.go
+
+package model
+
+import (
+	"github.com/2637309949/dolphin/packages/null"
+)
+
+// CustomerServiceProcess defined
+type CustomerServiceProcess struct {
+	//
+	CSPId null.Int `xorm:"int(11) pk notnull autoincr 'c_s_p_id'" json:"c_s_p_id" xml:"c_s_p_id"`
+	//
+	CspRemark null.String `xorm:"varchar(2000) 'csp_remark'" json:"csp_remark" xml:"csp_remark"`
+	//
+	CspOrder null.Int `xorm:"int(11) 'csp_order'" json:"csp_order" xml:"csp_order"`
+	//
+	Creater null.String `xorm:"varchar(36) 'creater'" json:"creater" xml:"creater"`
+	//
+	CreateDate null.Time `xorm:"datetime 'create_date'" json:"create_date" xml:"create_date"`
+	//
+	Updater null.String `xorm:"varchar(36) 'updater'" json:"updater" xml:"updater"`
+	//
+	UpdateDate null.Time `xorm:"datetime 'update_date'" json:"update_date" xml:"update_date"`
+	//
+	Isdelete null.Int `xorm:"notnull 'isdelete'" json:"isdelete" xml:"isdelete"`
+	//
+	CpcId null.Int `xorm:"int(11) 'cpc_id'" json:"cpc_id" xml:"cpc_id"`
+	//
+	CspNumber null.Int `xorm:"int(11) 'csp_number'" json:"csp_number" xml:"csp_number"`
+}
+
+// TableName table name of defined CustomerServiceProcess
+func (m *CustomerServiceProcess) TableName() string {
+	return "customer_service_process"
+}

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików