.idea/encodings.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
.idea/misc.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
.idea/modules.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
.idea/vcs.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
.idea/workspace.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
db/database.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
db/elastic.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
db/models.go | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
go.sum | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ruleModelEngine.iml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
.idea/encodings.xml
New file @@ -0,0 +1,4 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="Encoding" addBOMForNewFiles="with NO BOM" /> </project> .idea/misc.xml
New file @@ -0,0 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="ProjectRootManager"> <output url="file://$PROJECT_DIR$/out" /> </component> </project> .idea/modules.xml
New file @@ -0,0 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="ProjectModuleManager"> <modules> <module fileurl="file://$PROJECT_DIR$/ruleModelEngine.iml" filepath="$PROJECT_DIR$/ruleModelEngine.iml" /> </modules> </component> </project> .idea/vcs.xml
New file @@ -0,0 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="VcsDirectoryMappings"> <mapping directory="" vcs="Git" /> </component> </project> .idea/workspace.xml
New file @@ -0,0 +1,696 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="ChangeListManager"> <list default="true" id="919111b8-f2aa-4154-8db0-88e76c9af55d" name="Default Changelist" comment="" /> <ignored path="$PROJECT_DIR$/out/" /> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="SHOW_DIALOG" value="false" /> <option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> <option name="LAST_RESOLUTION" value="IGNORE" /> </component> <component name="FavoritesManager"> <favorites_list name="ruleModelEngine" /> </component> <component name="FileEditorManager"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/db/elastic.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="308"> <caret line="188" column="23" lean-forward="true" selection-start-line="188" selection-start-column="23" selection-end-line="188" selection-end-column="23" /> <folding> <element signature="e#12#114#0" expanded="true" /> </folding> </state> </provider> </entry> </file> <file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/rule/engine.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="-129"> <caret line="346" column="42" lean-forward="true" selection-start-line="346" selection-start-column="42" selection-end-line="346" selection-end-column="42" /> </state> </provider> </entry> </file> <file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/rule/service.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="521"> <caret line="56" column="31" lean-forward="true" selection-start-line="56" selection-start-column="31" selection-end-line="56" selection-end-column="31" /> <folding> <element signature="e#14#107#0" expanded="true" /> </folding> </state> </provider> </entry> </file> <file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/task/engine.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="350"> <caret line="31" column="118" lean-forward="true" selection-start-line="31" selection-start-column="118" selection-end-line="31" selection-end-column="118" /> <folding> <element signature="e#14#76#0" expanded="true" /> </folding> </state> </provider> </entry> </file> <file pinned="false" current-in-tab="true"> <entry file="file://$PROJECT_DIR$/config/app.yaml"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="517"> <caret line="32" lean-forward="true" selection-start-line="32" selection-end-line="32" /> </state> </provider> </entry> </file> <file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/db/models.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="254"> <caret line="39" column="29" lean-forward="true" selection-start-line="39" selection-start-column="29" selection-end-line="39" selection-end-column="30" /> </state> </provider> </entry> </file> <file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/config/config.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="545"> <caret line="45" column="4" selection-start-line="45" selection-start-column="4" selection-end-line="45" selection-end-column="4" /> <folding> <element signature="e#16#89#0" expanded="true" /> </folding> </state> </provider> </entry> </file> <file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/task/service.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="328"> <caret line="81" column="5" lean-forward="true" selection-start-line="80" selection-start-column="48" selection-end-line="81" selection-end-column="5" /> <folding> <element signature="e#14#53#0" expanded="true" /> </folding> </state> </provider> </entry> </file> <file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/main.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="-222"> <caret line="50" column="28" lean-forward="true" selection-start-line="50" selection-start-column="28" selection-end-line="50" selection-end-column="28" /> </state> </provider> </entry> </file> <file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/api/analysisApi/server.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="216"> <caret line="13" column="23" lean-forward="true" selection-start-line="13" selection-start-column="23" selection-end-line="13" selection-end-column="23" /> </state> </provider> </entry> </file> </leaf> </component> <component name="FileTemplateManagerImpl"> <option name="RECENT_TEMPLATES"> <list> <option value="Go File" /> </list> </option> </component> <component name="FindInProjectRecents"> <findStrings> <find>asdasfasfasf</find> <find>s</find> <find>1</find> <find>15</find> <find>moveout</find> <find>daysSince</find> <find>mip</find> <find>info</find> <find>now</find> <find>status</find> <find>resident</find> <find>ruleModelEngine/config</find> <find>Map</find> <find>ce</find> <find>append</find> <find>person</find> <find>PersonStatus</find> <find>GetDocNumberFromPersonStatus</find> <find>UpdatePersonInfo</find> <find>labeManage</find> <find>Table</find> <find>16</find> <find>newAlarmRules</find> <find>map</find> <find>make(map</find> <find>inter</find> <find>task</find> <find>personInfo</find> <find>buildingFloors</find> <find>fmt</find> </findStrings> </component> <component name="GOROOT" path="C:/Program Files/Go" /> <component name="Git.Settings"> <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> </component> <component name="IdeDocumentHistory"> <option name="CHANGED_PATHS"> <list> <option value="$PROJECT_DIR$/rule/identityEngine.go" /> <option value="$PROJECT_DIR$/db/database.go" /> <option value="$PROJECT_DIR$/api/analysis/server.go" /> <option value="$PROJECT_DIR$/data/prepare.go" /> <option value="$PROJECT_DIR$/db/cache.go" /> <option value="$PROJECT_DIR$/cache/cache.go" /> <option value="$PROJECT_DIR$/cache/device.go" /> <option value="$PROJECT_DIR$/task/tool.go" /> <option value="$PROJECT_DIR$/db/repository.go" /> <option value="$PROJECT_DIR$/rule/engine.go" /> <option value="$PROJECT_DIR$/api/analysisApi/server.go" /> <option value="$PROJECT_DIR$/db/elasticScriptToId.go" /> <option value="$PROJECT_DIR$/config/config.go" /> <option value="$PROJECT_DIR$/rule/service.go" /> <option value="$PROJECT_DIR$/db/models.go" /> <option value="$PROJECT_DIR$/db/elastic.go" /> <option value="$PROJECT_DIR$/config/app.yaml" /> <option value="$PROJECT_DIR$/task/engine.go" /> <option value="$PROJECT_DIR$/main.go" /> <option value="$PROJECT_DIR$/task/service.go" /> </list> </option> </component> <component name="ProjectFrameBounds" extendedState="6"> <option name="x" value="-8" /> <option name="y" value="-8" /> <option name="width" value="1936" /> <option name="height" value="1176" /> </component> <component name="ProjectView"> <navigator proportions="" version="1"> <foldersAlwaysOnTop value="true" /> </navigator> <panes> <pane id="Scope" /> <pane id="ProjectPane"> <subPane> <expand> <path> <item name="ruleModelEngine" type="b2602c69:ProjectViewProjectNode" /> <item name="ruleModelEngine" type="462c0819:PsiDirectoryNode" /> </path> <path> <item name="ruleModelEngine" type="b2602c69:ProjectViewProjectNode" /> <item name="ruleModelEngine" type="462c0819:PsiDirectoryNode" /> <item name="api" type="462c0819:PsiDirectoryNode" /> </path> <path> <item name="ruleModelEngine" type="b2602c69:ProjectViewProjectNode" /> <item name="ruleModelEngine" type="462c0819:PsiDirectoryNode" /> <item name="api" type="462c0819:PsiDirectoryNode" /> <item name="analysisApi" type="462c0819:PsiDirectoryNode" /> </path> <path> <item name="ruleModelEngine" type="b2602c69:ProjectViewProjectNode" /> <item name="ruleModelEngine" type="462c0819:PsiDirectoryNode" /> <item name="cache" type="462c0819:PsiDirectoryNode" /> </path> <path> <item name="ruleModelEngine" type="b2602c69:ProjectViewProjectNode" /> <item name="ruleModelEngine" type="462c0819:PsiDirectoryNode" /> <item name="config" type="462c0819:PsiDirectoryNode" /> </path> <path> <item name="ruleModelEngine" type="b2602c69:ProjectViewProjectNode" /> <item name="ruleModelEngine" type="462c0819:PsiDirectoryNode" /> <item name="data" type="462c0819:PsiDirectoryNode" /> </path> <path> <item name="ruleModelEngine" type="b2602c69:ProjectViewProjectNode" /> <item name="ruleModelEngine" type="462c0819:PsiDirectoryNode" /> <item name="db" type="462c0819:PsiDirectoryNode" /> </path> <path> <item name="ruleModelEngine" type="b2602c69:ProjectViewProjectNode" /> <item name="ruleModelEngine" type="462c0819:PsiDirectoryNode" /> <item name="rule" type="462c0819:PsiDirectoryNode" /> </path> <path> <item name="ruleModelEngine" type="b2602c69:ProjectViewProjectNode" /> <item name="ruleModelEngine" type="462c0819:PsiDirectoryNode" /> <item name="task" type="462c0819:PsiDirectoryNode" /> </path> <path> <item name="ruleModelEngine" type="b2602c69:ProjectViewProjectNode" /> <item name="ruleModelEngine" type="462c0819:PsiDirectoryNode" /> <item name="util" type="462c0819:PsiDirectoryNode" /> </path> <path> <item name="ruleModelEngine" type="b2602c69:ProjectViewProjectNode" /> <item name="External Libraries" type="cb654da1:ExternalLibrariesNode" /> </path> </expand> <select /> </subPane> </pane> <pane id="PackagesPane" /> </panes> </component> <component name="PropertiesComponent"> <property name="DefaultGoTemplateProperty" value="Go File" /> <property name="GO_FMT" value="true" /> <property name="WebServerToolWindowFactoryState" value="false" /> <property name="aspect.path.notification.shown" value="true" /> <property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1716721006565" /> <property name="configurable.Global.GOPATH.is.expanded" value="true" /> <property name="configurable.Module.GOPATH.is.expanded" value="false" /> <property name="configurable.Project.GOPATH.is.expanded" value="true" /> <property name="go.gopath.indexing.explicitly.defined" value="true" /> <property name="last_opened_file_path" value="D:/" /> <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" /> <property name="nodejs_npm_path_reset_for_default_project" value="true" /> <property name="restartRequiresConfirmation" value="false" /> <property name="settings.editor.selected.configurable" value="go.vgo" /> </component> <component name="RecentsManager"> <key name="MoveFile.RECENT_KEYS"> <recent name="F:\workspace\golang\cloud_ai\ruleModelEngine\cache" /> </key> <key name="CopyFile.RECENT_KEYS"> <recent name="F:\workspace\golang\cloud_ai\ruleModelEngine" /> </key> </component> <component name="RunDashboard"> <option name="ruleStates"> <list> <RuleState> <option name="name" value="ConfigurationTypeDashboardGroupingRule" /> </RuleState> <RuleState> <option name="name" value="StatusDashboardGroupingRule" /> </RuleState> </list> </option> </component> <component name="RunManager" selected="Go Build.go build main.go"> <configuration name="go build elastic.go" type="GoApplicationRunConfiguration" factoryName="Go Application" temporary="true" nameIsGenerated="true"> <module name="ruleModelEngine" /> <working_directory value="$PROJECT_DIR$" /> <kind value="FILE" /> <filePath value="$PROJECT_DIR$/db/elastic.go" /> <package value="ruleModelEngine" /> <directory value="$PROJECT_DIR$" /> <method v="2" /> </configuration> <configuration name="go build main.go" type="GoApplicationRunConfiguration" factoryName="Go Application" temporary="true" nameIsGenerated="true"> <module name="ruleModelEngine" /> <working_directory value="$PROJECT_DIR$" /> <kind value="FILE" /> <filePath value="$PROJECT_DIR$/main.go" /> <package value="ruleModelEngine" /> <directory value="$PROJECT_DIR$" /> <method v="2" /> </configuration> <recent_temporary> <list> <item itemvalue="Go Build.go build main.go" /> <item itemvalue="Go Build.go build elastic.go" /> </list> </recent_temporary> </component> <component name="SvnConfiguration"> <configuration /> </component> <component name="TaskManager"> <task active="true" id="Default" summary="Default task"> <changelist id="919111b8-f2aa-4154-8db0-88e76c9af55d" name="Default Changelist" comment="" /> <created>1713166065668</created> <option name="number" value="Default" /> <option name="presentableId" value="Default" /> <updated>1713166065668</updated> <workItem from="1713166068218" duration="121229000" /> <workItem from="1714960004642" duration="105790000" /> </task> <task id="LOCAL-00001" summary="新增迁入迁出,属性分析,身份分析等"> <created>1714471841345</created> <option name="number" value="00001" /> <option name="presentableId" value="LOCAL-00001" /> <option name="project" value="LOCAL" /> <updated>1714471841345</updated> </task> <task id="LOCAL-00002" summary="添加布控模块,合并person_status和snapshot_count_summary数据库等"> <created>1716555879404</created> <option name="number" value="00002" /> <option name="presentableId" value="LOCAL-00002" /> <option name="project" value="LOCAL" /> <updated>1716555879404</updated> </task> <task id="LOCAL-00003" summary="添加布控模块,合并person_status和snapshot_count_summary数据库等"> <created>1716720676019</created> <option name="number" value="00003" /> <option name="presentableId" value="LOCAL-00003" /> <option name="project" value="LOCAL" /> <updated>1716720676019</updated> </task> <task id="LOCAL-00004" summary="完成布控模块"> <created>1716720903870</created> <option name="number" value="00004" /> <option name="presentableId" value="LOCAL-00004" /> <option name="project" value="LOCAL" /> <updated>1716720903870</updated> </task> <option name="localTasksCounter" value="5" /> <servers /> </component> <component name="TimeTrackingManager"> <option name="totallyTimeSpent" value="227019000" /> </component> <component name="ToolWindowManager"> <frame x="-8" y="-8" width="1936" height="1176" extended-state="6" /> <layout> <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.17643923" /> <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> <window_info id="Image Layers" order="2" /> <window_info id="Designer" order="3" /> <window_info id="UI Designer" order="4" /> <window_info id="Capture Tool" order="5" /> <window_info id="Favorites" order="6" side_tool="true" /> <window_info anchor="bottom" id="Message" order="0" /> <window_info anchor="bottom" id="Find" order="1" /> <window_info anchor="bottom" id="Run" order="2" weight="0.42802304" /> <window_info anchor="bottom" id="Debug" order="3" weight="0.4" /> <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> <window_info anchor="bottom" id="TODO" order="6" /> <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" /> <window_info active="true" anchor="bottom" id="Terminal" order="8" visible="true" weight="0.31765833" /> <window_info anchor="bottom" id="Version Control" order="9" /> <window_info anchor="bottom" id="Database Changes" order="10" /> <window_info anchor="bottom" id="Event Log" order="11" side_tool="true" /> <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> <window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> <window_info anchor="right" id="Palette" order="3" /> <window_info anchor="right" id="Theme Preview" order="4" /> <window_info anchor="right" id="Maven" order="5" /> <window_info anchor="right" id="Capture Analysis" order="6" /> <window_info anchor="right" id="Palette	" order="7" /> <window_info anchor="right" id="Database" order="8" /> </layout> <layout-to-restore> <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.17643923" /> <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> <window_info id="Image Layers" order="2" /> <window_info id="Designer" order="3" /> <window_info id="UI Designer" order="4" /> <window_info id="Capture Tool" order="5" /> <window_info id="Favorites" order="6" side_tool="true" /> <window_info anchor="bottom" id="Message" order="0" /> <window_info anchor="bottom" id="Find" order="1" /> <window_info active="true" anchor="bottom" id="Run" order="2" visible="true" weight="0.42802304" /> <window_info anchor="bottom" id="Debug" order="3" weight="0.4" /> <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> <window_info anchor="bottom" id="TODO" order="6" /> <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" /> <window_info anchor="bottom" id="Terminal" order="8" weight="0.31765833" /> <window_info anchor="bottom" id="Version Control" order="9" /> <window_info anchor="bottom" id="Database Changes" order="10" /> <window_info anchor="bottom" id="Event Log" order="11" side_tool="true" /> <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> <window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> <window_info anchor="right" id="Palette" order="3" /> <window_info anchor="right" id="Theme Preview" order="4" /> <window_info anchor="right" id="Maven" order="5" /> <window_info anchor="right" id="Capture Analysis" order="6" /> <window_info anchor="right" id="Palette	" order="7" /> <window_info anchor="right" id="Database" order="8" /> </layout-to-restore> </component> <component name="TypeScriptGeneratedFilesManager"> <option name="version" value="1" /> </component> <component name="VcsManagerConfiguration"> <MESSAGE value="新增迁入迁出,属性分析,身份分析等" /> <MESSAGE value="添加布控模块,合并person_status和snapshot_count_summary数据库等" /> <MESSAGE value="完成布控模块" /> <option name="LAST_COMMIT_MESSAGE" value="完成布控模块" /> </component> <component name="VgoProject"> <integration-enabled>true</integration-enabled> <proxy>https://goproxy.cn,direct</proxy> </component> <component name="editorHistoryManager"> <entry file="file://$PROJECT_DIR$/go.mod"> <provider selected="true" editor-type-id="text-editor"> <state> <caret column="13" selection-start-column="13" selection-end-column="13" /> </state> </provider> </entry> <entry file="file://C:/Program Files/Go/src/time/format.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="203"> <caret line="619" column="14" selection-start-line="619" selection-start-column="14" selection-end-line="619" selection-end-column="14" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/util/util.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="-6285"> <caret line="3" column="32" lean-forward="true" selection-start-line="3" selection-start-column="4" selection-end-line="3" selection-end-column="32" /> </state> </provider> </entry> <entry file="file://C:/Program Files/Go/src/math/const.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="409"> <caret line="49" column="4" selection-start-line="49" selection-start-column="4" selection-end-line="49" selection-end-column="4" /> </state> </provider> </entry> <entry file="file://C:/Program Files/Go/src/time/time.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="208"> <caret line="1466" column="5" selection-start-line="1466" selection-start-column="5" selection-end-line="1466" selection-end-column="5" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/rule/identityEngine.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="-844"> <caret line="5" column="1" lean-forward="true" selection-start-line="5" selection-start-column="1" selection-end-line="5" selection-end-column="1" /> <folding> <element signature="e#14#39#0" expanded="true" /> </folding> </state> </provider> </entry> <entry file="file://$USER_HOME$/go/pkg/mod/gorm.io/gorm@v1.25.9/gorm.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="322"> <caret line="371" column="19" lean-forward="true" selection-start-line="371" selection-start-column="19" selection-end-line="371" selection-end-column="19" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/db/database.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="576"> <caret line="24" selection-start-line="24" selection-end-line="24" /> <folding> <element signature="e#12#88#0" expanded="true" /> </folding> </state> </provider> </entry> <entry file="file://$USER_HOME$/go/pkg/mod/basic.com/!cloud!a!i/protomsg.git@v0.0.0-20240523091240-77f661e9c66f/analysis/analysis_grpc.pb.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="195"> <caret line="72" column="5" selection-start-line="72" selection-start-column="5" selection-end-line="72" selection-end-column="5" /> </state> </provider> </entry> <entry file="file://$USER_HOME$/go/pkg/mod/basic.com/!cloud!a!i/protomsg.git@v0.0.0-20240523091240-77f661e9c66f/analysis/analysis.pb.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="178"> <caret line="21" lean-forward="true" selection-start-line="21" selection-end-line="21" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/data/prepare.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="42"> <caret line="103" column="8" lean-forward="true" selection-start-line="103" selection-start-column="8" selection-end-line="103" selection-end-column="8" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/cache/device.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="168"> <caret line="7" column="35" lean-forward="true" selection-start-line="7" selection-start-column="35" selection-end-line="7" selection-end-column="35" /> <folding> <element signature="e#15#77#0" expanded="true" /> </folding> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/task/tool.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="504"> <caret line="21" column="9" selection-start-line="21" selection-start-column="9" selection-end-line="21" selection-end-column="9" /> <folding> <element signature="e#14#41#0" expanded="true" /> </folding> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/db/repository.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="-2"> <caret line="170" column="8" selection-start-line="170" selection-start-column="8" selection-end-line="170" selection-end-column="8" /> <folding> <element signature="e#12#78#0" expanded="true" /> </folding> </state> </provider> </entry> <entry file="file://$USER_HOME$/go/pkg/mod/basic.com/pubsub/esutil.git@v0.0.0-20240401091908-7a10b30099c6/EsClient.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="98"> <caret line="1003" column="20" selection-start-line="1003" selection-start-column="20" selection-end-line="1003" selection-end-column="20" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/db/elasticScriptToId.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="82"> <caret line="8" column="5" selection-start-line="8" selection-start-column="5" selection-end-line="8" selection-end-column="5" /> <folding> <element signature="e#12#86#0" expanded="true" /> </folding> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/rule/engine.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="-129"> <caret line="346" column="42" lean-forward="true" selection-start-line="346" selection-start-column="42" selection-end-line="346" selection-end-column="42" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/config/config.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="545"> <caret line="45" column="4" selection-start-line="45" selection-start-column="4" selection-end-line="45" selection-end-column="4" /> <folding> <element signature="e#16#89#0" expanded="true" /> </folding> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/rule/service.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="521"> <caret line="56" column="31" lean-forward="true" selection-start-line="56" selection-start-column="31" selection-end-line="56" selection-end-column="31" /> <folding> <element signature="e#14#107#0" expanded="true" /> </folding> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/task/engine.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="350"> <caret line="31" column="118" lean-forward="true" selection-start-line="31" selection-start-column="118" selection-end-line="31" selection-end-column="118" /> <folding> <element signature="e#14#76#0" expanded="true" /> </folding> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/db/models.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="254"> <caret line="39" column="29" lean-forward="true" selection-start-line="39" selection-start-column="29" selection-end-line="39" selection-end-column="30" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/db/elastic.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="308"> <caret line="188" column="23" lean-forward="true" selection-start-line="188" selection-start-column="23" selection-end-line="188" selection-end-column="23" /> <folding> <element signature="e#12#114#0" expanded="true" /> </folding> </state> </provider> </entry> <entry file="file://$USER_HOME$/go/pkg/mod/basic.com/!cloud!a!i/protomsg.git@v0.0.0-20240524094225-61cfc0043e88/analysis/analysis_grpc.pb.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="338"> <caret line="72" column="5" selection-start-line="72" selection-start-column="5" selection-end-line="72" selection-end-column="5" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/api/analysisApi/server.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="216"> <caret line="13" column="23" lean-forward="true" selection-start-line="13" selection-start-column="23" selection-end-line="13" selection-end-column="23" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/task/service.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="328"> <caret line="81" column="5" lean-forward="true" selection-start-line="80" selection-start-column="48" selection-end-line="81" selection-end-column="5" /> <folding> <element signature="e#14#53#0" expanded="true" /> </folding> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/main.go"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="-222"> <caret line="50" column="28" lean-forward="true" selection-start-line="50" selection-start-column="28" selection-end-line="50" selection-end-column="28" /> </state> </provider> </entry> <entry file="file://$PROJECT_DIR$/config/app.yaml"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="517"> <caret line="32" lean-forward="true" selection-start-line="32" selection-end-line="32" /> </state> </provider> </entry> </component> <component name="masterDetails"> <states> <state key="ProjectJDKs.UI"> <settings> <last-edited>1.8</last-edited> <splitter-proportions> <option name="proportions"> <list> <option value="0.2" /> </list> </option> </splitter-proportions> </settings> </state> </states> </component> </project> db/database.go
New file @@ -0,0 +1,39 @@ package db import ( "gorm.io/driver/mysql" "gorm.io/gorm" "ruleModelEngine/config" "time" ) var DB *gorm.DB //// 初始化数据库连接 //func InitDB() error { // dsn := "root:c++java123@tcp(" + config.DataBase.Host + ":" + config.DataBase.Port + ")/" + config.DataBase.Name + "?charset=utf8mb4&parseTime=True&loc=Local" // var err error // db, err = gorm.Open(mysql.Open(dsn), &gorm.Config{}) // if err != nil { // return err // } // return nil //} func ConnectDB() (error) { dsn := "root:c++java123@tcp(" + config.DataBase.Host + ":" + config.DataBase.Port + ")/" + config.DataBase.Name + "?charset=utf8mb4&parseTime=True&loc=Local" db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) if err != nil { return err } sqlDb,err := db.DB() if err != nil{ return err } sqlDb.SetMaxIdleConns(2) sqlDb.SetMaxOpenConns(1) sqlDb.SetConnMaxLifetime(time.Duration(120) * time.Second) sqlDb.SetConnMaxIdleTime(time.Duration(1800) * time.Second) DB = db return nil } db/elastic.go
New file @@ -0,0 +1,381 @@ package db import ( "basic.com/pubsub/esutil.git" "basic.com/valib/logger.git" "encoding/json" "fmt" "ruleModelEngine/config" "ruleModelEngine/util" "strconv" ) func decodeDocumentInfos(docInfo []map[string]interface{}) ([]CaptureInfo, error) { captureInfos := make([]CaptureInfo, 0) for _, info := range docInfo { var captureInfo = CaptureInfo{} captureInfo.DocumentNumber = info["key"].(string) buckets := info["top_hits"].(map[string]interface{})["hits"].(map[string]interface{})["hits"].([]interface{}) orgId := buckets[0].(map[string]interface{})["_source"].(map[string]interface{})["orgId"].(string) captureInfo.OrgId = orgId for _, sourceInfo := range buckets { rSourceInfo := sourceInfo.(map[string]interface{}) source := rSourceInfo["_source"].(map[string]interface{}) picDate := source["picDate"].(string) cameraLocation := source["cameraLocation"].(map[string]interface{}) unit := cameraLocation["unit"].(string) floor := cameraLocation["floor"].(string) building := cameraLocation["building"].(string) direction := cameraLocation["direction"].(string) captureAddress := building + unit + floor captureInfo.CaptureDetail = append(captureInfo.CaptureDetail, CaptureDetail{CaptureAddress: captureAddress, CaptureDate: picDate, Direction: direction}) } captureInfos = append(captureInfos, captureInfo) } return captureInfos, nil } func QueryTimesByDocNumberDays(days int, docNumber string) (int, error) { esURL := "http://" + config.Elastic.Host + ":" + config.Elastic.Port + "/" + config.Elastic.Index + "/_search" queryDSL := `{ "query": { "bool": { "filter": [ { "range": { "picDate": { "gte": "now-` + strconv.Itoa(days) + `d/d" } } }, { "term": { "documentNumber": "` + docNumber + `" } } ] } }, "size": 0 }` buf, err := esutil.EsReq("POST", esURL, []byte(queryDSL)) if err != nil { return 0, err } total, err := esutil.SourceTotal(buf) if err != nil { return 0, err } return total, nil } func QueryLastIdByDayRange(dayGte, dayLt int) (map[string]string, error) { esURL := "http://" + config.Elastic.Host + ":" + config.Elastic.Port + "/" + config.Elastic.Index + "/_search" queryDSL := `{ "query": { "bool": { "filter": [ { "range": { "picDate": { "gte": "now-` + strconv.Itoa(dayGte) + `d/d", "lt": "now-` + strconv.Itoa(dayLt) + `d/d" } } } ] } }, "size": 0, "aggs": { "group_by_documentnumber": { "terms": { "field": "documentNumber", "size": 100000 }, "aggs": { "top_hits": { "top_hits": { "_source": [ "documentNumber", "id" ], "size": 1, "sort": [ { "picDate": { "order": "desc" } } ] } } } } } }` //fmt.Println(queryDSL) //fmt.Println(esURL) docNumberMap := make(map[string]string) buf, err := esutil.EsReq("POST", esURL, []byte(queryDSL)) if err != nil { return nil, err } source, err := esutil.SourceAggregationList(buf) if err != nil { return nil, err } fmt.Println("source", source) for _, info := range source { buckets := info["top_hits"].(map[string]interface{})["hits"].(map[string]interface{})["hits"].([]interface{}) for _, sourceInfo := range buckets { rSourceInfo := sourceInfo.(map[string]interface{}) source := rSourceInfo["_source"].(map[string]interface{}) documentNumber := source["documentNumber"].(string) id := source["id"].(string) docNumberMap[documentNumber] = id } } return docNumberMap, nil } func QueryById(id string) (TaskPerson, error) { esURL := "http://" + config.Elastic.Host + ":" + config.Elastic.Port + "/" + config.Elastic.Index + "/_search" queryDSL := `{ "query": { "bool": { "filter": [ { "term": { "id": "` + id + `" } } ] } }, "_source": [ "id", "cameraId", "picDate", "communityId", "documentNumber", "cameraLocation.floor", "targetInfo.targetType" ] }` var taskPerson TaskPerson buf, err := esutil.EsReq("POST", esURL, []byte(queryDSL)) if err != nil { return taskPerson, err } source, err := esutil.Sourcelist(buf) if err != nil { return taskPerson, err } if len(source) == 0 { return taskPerson, nil } //fmt.Println(source[0]) taskPerson.Id = source[0]["id"].(string) taskPerson.PicDate = source[0]["picDate"].(string) taskPerson.CameraId = source[0]["cameraId"].(string) taskPerson.CommunityId = source[0]["communityId"].(string) taskPerson.DocumentNumber = source[0]["documentNumber"].(string) taskPerson.TargetType = source[0]["targetInfo"].(map[string]interface{})["targetType"].(string) taskPerson.Floor = source[0]["cameraLocation"].(map[string]interface{})["floor"].(string) return taskPerson, nil } func QueryCheckDataByDocumentNumber(documentNumber string, startTime, endTime string) (int, error) { esURL := "http://" + config.Elastic.Host + ":" + config.Elastic.Port + "/" + config.Elastic.Index + "/_search" queryDSL := `{ "query": { "bool": { "filter": [ { "term": { "documentNumber": "` + documentNumber + `" } }, { "range": { "picDate": { "gte": "` + startTime + `", "lt" : "` + endTime + `" } } } ], "must_not": [ { "term": { "floor": "" } } ] } }, "size": 100, "_source": [ "cameraLocation.floor", "cameraLocation.building" ] }` //fmt.Println("queryDSL: ", queryDSL) //var floor = buf, err := esutil.EsReq("POST", esURL, []byte(queryDSL)) if err != nil { return 0, err } source, err := esutil.Sourcelist(buf) if err != nil { return 0, err } if len(source) == 0 { return 0, nil } buildingFloors := make(map[string]bool) for _, info := range source { building := info["cameraLocation"].(map[string]interface{})["building"].(string) floor := info["cameraLocation"].(map[string]interface{})["floor"].(string) if building != "" && floor != "" { buildingFloors[building+floor] = true } } //fmt.Println("buildingFloors: ", buildingFloors, len(buildingFloors)) return len(buildingFloors), nil } func AddAlarmRules(alarmRules []AlarmRule, id string) (bool, error) { if len(alarmRules) == 0 { logger.Info("未有预警 id: ", id) return true, nil } fmt.Println("预警 id: ", id) fmt.Println("预警 AlarmRule: ", alarmRules) esURL := "http://" + config.Elastic.Host + ":" + config.Elastic.Port + "/" + config.Elastic.Index + "/_update_by_query" newAlarmRulesJson, err := json.Marshal(alarmRules) if err != nil { logger.Error("json.Marshal alarmRules err: ", newAlarmRulesJson) return false, err } queryDSL := `{ "script": { "source": "for (item in params.newAlarmRules) { ctx._source.alarmRules.add(item) } ctx._source.isAlarm = params.newStatus", "lang": "painless", "params": { "newStatus":true, "newAlarmRules": ` + string(newAlarmRulesJson) + ` } }, "query": { "bool": { "filter": [ { "term": { "id": "` + id + `" } } ] } } }` //fmt.Println("AddAlarmRules: ", esURL) //fmt.Println("AddAlarmRules: ", queryDSL) //return true, nil buf, err := esutil.EsReq("POST", esURL, []byte(queryDSL)) if err != nil { logger.Error("EsReq err: ", err) return false, err } addFlag, err := esutil.SourceUpdated(buf) if err != nil { logger.Error("SourceUpdated err: ", err) return false, err } if addFlag != 0 { return true, nil } return false, nil } func Query1MDataByCommunityId(communityId string) ([]CaptureInfo, error) { //fmt.Println(config.Elastic.DocumentSize) //fmt.Println(config.Elastic.TopHitsSize) esURL := "http://" + config.Elastic.Host + ":" + config.Elastic.Port + "/" + config.Elastic.Index + "/_search" queryDSL := ` { "query": { "bool": { "filter": [ { "range": { "picDate": { "gte": "now-30d/d", "lt": "now/d" } } }, { "term":{ "communityId":"` + communityId + `" } } ], "must_not": [ { "term": { "documentNumber": "" } } ], "should": [] } }, "size": 0, "aggs": { "group_by_documentnumber": { "terms": { "field": "documentNumber", "size": ` + strconv.Itoa(config.Elastic.DocumentSize) + ` }, "aggs": { "top_hits": { "top_hits": { "_source": [ "documentNumber", "picDate", "orgId", "cameraLocation.building", "cameraLocation.unit", "cameraLocation.floor", "cameraLocation.direction" ], "size": ` + strconv.Itoa(config.Elastic.TopHitsSize) + `, "sort": [ { "picDate": { "order": "asc" } } ] } } } } } }` //fmt.Println(esURL) //fmt.Println(queryDSL) buf, err := esutil.EsReq("POST", esURL, []byte(queryDSL)) if err != nil { return nil, err } source, err := util.SourceAggregationList(buf) if err != nil { return nil, err } result, _ := decodeDocumentInfos(source) return result, nil } db/models.go
New file @@ -0,0 +1,156 @@ package db import ( "time" ) type PersonnelStatusRule struct { ID int `gorm:"column:id"` Name string `gorm:"column:name"` DetectionCountStart int `gorm:"column:detectionCountStart"` DetectionCountEnd int `gorm:"column:detectionCountEnd"` DetectionDaysStart int `gorm:"column:detectionDaysStart"` DetectionDaysEnd int `gorm:"column:detectionDaysEnd"` Status string `gorm:"column:status"` } type AlarmRule struct { RuleId string `json:"ruleId"` RuleText string `json:"ruleText"` AlarmLevel string `json:"alarmLevel"` } type TaskPerson struct { Id string `json:"id"` CameraId string `json:"cameraId"` CommunityId string `json:"communityId"` PicDate string `json:"picDate"` DocumentNumber string `json:"documentNumber"` TargetType string `json:"targetType"` Floor string `json:"floor"` } type BuildingType int const ( BuildingTypeResidential BuildingType = 1 //住宅楼 BuildingTypeMixedUse BuildingType = 2 //商住楼 BuildingTypePublicRental BuildingType = 3 //公租房 BuildingTypeLowIncome BuildingType = 4 //廉租房 BuildingTypeOldResidential BuildingType = 5 //老旧小区 BuildingTypeOffice BuildingType = 6 //写字楼 ) type Device struct { DeviceCode string `gorm:"column:deviceCode" json:"deviceCode" example:"J83762"` //设备编码 BuildingType BuildingType `gorm:"column:building_type;type:tinyint(1);not null;default:0" json:"buildingType"` //楼宇类型 MaxBuildingFloor int `gorm:"column:max_building_floor;type:tinyint(1);not null;default:0" json:"maxBuildingFloor"` //最高楼层号 } type Task struct { Id int `gorm:"column:id"` Name string `gorm:"name"` } func (Task) TableName() string { return "task" } type MoveInout struct { //RecordId int `gorm:"column:record_id"` DocumentNumber string `gorm:"column:document_number"` CommunityID string `gorm:"column:community_id"` MoveInDate time.Time `gorm:"column:move_in_date"` MoveOutDate *time.Time `gorm:"column:move_out_date"` Status string `gorm:"column:status"` MoveType string `gorm:"column:move_type"` } func (MoveInout) TableName() string { return "move_inout" } type Resident struct { CommunityId string `gorm:"column:community_id"` DocumentNumber string `gorm:"column:document_number"` LastAppearanceTime int64 `gorm:"column:last_appearance_time"` CreateAt string `gorm:"column:create_at"` } type PersonStatus struct { Id uint `gorm:"column:id;primary_key;auto_increment;not null;"` OrgId string `gorm:"column:org_id;type:varchar(299);not null;default:''"` // 派出所id CommunityID string `gorm:"uniqueIndex:idx_document_number_community_id;index:community_id_last_appearance_time;column:community_id;type:varchar(299);not null;default:''"` // 小区id DocumentNumber string `gorm:"uniqueIndex:idx_document_number_community_id;column:document_number;type:varchar(299);not null;default:''"` // 档案编号 DaysAppeared int `gorm:"column:days_appeared;type:int(11);not null;default:0" json:"daysAppeared"` // 出现天数 Count int `gorm:"column:count;type:int;not null;default:0"` // 抓拍次数 Status string `gorm:"column:status;type:varchar(255);not null;default:''"` //标签 LastAppearanceTime int64 `gorm:"index:community_id_last_appearance_time;column:last_appearance_time;type:int;not null;default:0" json:"lastAppearanceTime"` //最后出现时间 LastLocation string `gorm:"column:last_location;type:varchar(255);not null;default:''" json:"lastLocation"` //最后出现地点 FrequentAddress string `gorm:"column:frequent_address;type:varchar(255);not null;default:''" json:"frequentAddress"` //常出现地点 CreatedAt time.Time UpdatedAt time.Time ////OrgId string `gorm:"column:org_id"` //CommunityID string `gorm:"column:communityID"` //DocumentNumber string `gorm:"column:documentNumber"` //Status string `gorm:"column:status"` //FrequentAddress string `gorm:"column:frequentAddress"` } func (PersonStatus) TableName() string { return "snapshot_count_summary" } type LabelManage struct { Id int `gorm:"id"` Name string `gorm:"name"` ValidDays int `gorm:"valid_days"` } func (LabelManage) TableName() string { return "label_manage" } type Identity struct { CreatedAt time.Time UpdatedAt time.Time CommunityID string `gorm:"column:community_id"` DocumentNumber string `gorm:"column:dbtablepersons_id"` LabelId int `gorm:"column:label_id"` ExpireTime int64 `gorm:"column:expire_time"` } func (Identity) TableName() string { return "dbtablepersons_label" } // //type ModelMatix struct { // CommunityID string // DocumentNumber string // CaptureDate string // Status string // FrequentAddress string //} type StatusPersonMapping struct { Status string IDs []string } type CaptureInfo struct { OrgId string `json:"orgId"` //派出所Id DocumentNumber string `json:"documentNumber"` CaptureDays int `json:"captureDays"` //抓拍天数 OvernightStays int `json:"overnightStays"` //过夜天数 Status string `json:"status"` //状态 FrequentAddress string `json:"frequentAddress"` //常用地址 Age int `json:"age"` //年龄 CaptureDetail []CaptureDetail `json:"captureDetail"` } type CaptureDetail struct { CaptureDate string `json:"captureDate"` CaptureAddress string `json:"captureAddress"` Direction string `json:"direction"` } go.sum
New file @@ -0,0 +1,126 @@ basic.com/CloudAI/protomsg.git v0.0.0-20240523091240-77f661e9c66f h1:1M7dj+pSxEZ5GDimvqcB9Vl8S747mb3FlODR3F8RCG8= basic.com/CloudAI/protomsg.git v0.0.0-20240523091240-77f661e9c66f/go.mod h1:lZXQZPD7Nwo1ZIPWzlB3SHwK8BfbwumEQGHSE79lhOo= basic.com/CloudAI/protomsg.git v0.0.0-20240524094225-61cfc0043e88 h1:xW9mYZt35TTXPVzayWQaF2XR7mO3Fq+mN48nBmho2cI= basic.com/CloudAI/protomsg.git v0.0.0-20240524094225-61cfc0043e88/go.mod h1:lZXQZPD7Nwo1ZIPWzlB3SHwK8BfbwumEQGHSE79lhOo= basic.com/pubsub/esutil.git v0.0.0-20240401091908-7a10b30099c6 h1:j8+vyFtnNZkwrfA9booFTZL7a0GOLrGf4+q7X5P52Bs= basic.com/pubsub/esutil.git v0.0.0-20240401091908-7a10b30099c6/go.mod h1:yIvppFPFGC61DOdm71ujnsxZBMFUu2yKjr5O43bMWCw= basic.com/pubsub/protomsg.git v0.0.0-20230210092337-5f1e6cdae7c3 h1:h6dF39g4oqEMY0wDcFG3W4wYpeTNFjwWMp8TmFKnrAg= basic.com/pubsub/protomsg.git v0.0.0-20230210092337-5f1e6cdae7c3/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU= basic.com/valib/logger.git v0.0.0-20220225105132-5cf6309c132f h1:ByWle6XVKj9n4ILEyml622trRlC5TlWMLe0pyIaXoeA= basic.com/valib/logger.git v0.0.0-20220225105132-5cf6309c132f/go.mod h1:SPlOGUUlxCscwF1dkqmLb0oJXVqg1uJ8hsPXLFxrw1M= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= 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/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/natefinch/lumberjack v2.0.0+incompatible h1:4QJd3OLAMgj7ph+yZTuX13Ld4UpgHp07nNdFX7mqFfM= github.com/natefinch/lumberjack v2.0.0+incompatible/go.mod h1:Wi9p2TTF5DG5oU+6YfsmYQpsTIOm0B1VNzQg9Mw6nPk= github.com/pelletier/go-toml/v2 v2.2.1 h1:9TA9+T8+8CUCO2+WYnDLCgrYi9+omqKXyjDtosvtEhg= github.com/pelletier/go-toml/v2 v2.2.1/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4= github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ= github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20240409090435-93d18d7e34b8 h1:ESSUROHIBHg7USnszlcdmjBEwdMj9VUvU+OPk4yl2mc= golang.org/x/exp v0.0.0-20240409090435-93d18d7e34b8/go.mod h1:/lliqkxwWAhPjf5oSOIJup2XcqJaw8RGS6k3TGEc7GI= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= 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/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 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-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto/googleapis/rpc v0.0.0-20240415180920-8c6c420018be h1:LG9vZxsWGOmUKieR8wPAUR3u3MpnYFQZROPIMaXh7/A= google.golang.org/genproto/googleapis/rpc v0.0.0-20240415180920-8c6c420018be/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY= google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/driver/mysql v1.5.6 h1:Ld4mkIickM+EliaQZQx3uOJDJHtrd70MxAUqWqlx3Y8= gorm.io/driver/mysql v1.5.6/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM= gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= gorm.io/gorm v1.25.9 h1:wct0gxZIELDk8+ZqF/MVnHLkA1rvYlBWUMv2EdsK1g8= gorm.io/gorm v1.25.9/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= ruleModelEngine.iml
New file @@ -0,0 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> <module type="WEB_MODULE" version="4"> <component name="NewModuleRootManager" inherit-compiler-output="true"> <exclude-output /> <content url="file://$MODULE_DIR$" /> <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" /> </component> </module>