提交 4d6bead1 authored 作者: LJJ's avatar LJJ

Initial commit

上级
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CheckStyle-IDEA">
<option name="configuration">
<map>
<entry key="checkstyle-version" value="8.19" />
<entry key="copy-libs" value="false" />
<entry key="location-0" value="BUNDLED:(bundled):Sun Checks" />
<entry key="location-1" value="BUNDLED:(bundled):Google Checks" />
<entry key="scan-before-checkin" value="false" />
<entry key="scanscope" value="JavaOnly" />
<entry key="suppress-errors" value="false" />
</map>
</option>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="vms-union" />
<module name="vms-misc" />
<module name="vms-user" />
<module name="vms-wechat" />
<module name="vms-inspection" />
</profile>
</annotationProcessing>
</component>
<component name="JavacSettings">
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
<module name="vms" options="-parameters" />
<module name="vms-inspection" options="-parameters" />
<module name="vms-misc" options="-parameters" />
<module name="vms-union" options="-parameters" />
<module name="vms-user" options="-parameters" />
<module name="vms-wechat" options="-parameters" />
</option>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/vms-inspection" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/vms-misc" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/vms-union" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/vms-user" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/vms-wechat" charset="UTF-8" />
</component>
</project>
\ No newline at end of file
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="JavaDoc" enabled="true" level="WARNING" enabled_by_default="true">
<option name="TOP_LEVEL_CLASS_OPTIONS">
<value>
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
<option name="REQUIRED_TAGS" value="" />
</value>
</option>
<option name="INNER_CLASS_OPTIONS">
<value>
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
<option name="REQUIRED_TAGS" value="" />
</value>
</option>
<option name="METHOD_OPTIONS">
<value>
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
<option name="REQUIRED_TAGS" value="@return@param@throws or @exception" />
</value>
</option>
<option name="FIELD_OPTIONS">
<value>
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
<option name="REQUIRED_TAGS" value="" />
</value>
</option>
<option name="IGNORE_DEPRECATED" value="false" />
<option name="IGNORE_JAVADOC_PERIOD" value="true" />
<option name="IGNORE_DUPLICATED_THROWS" value="false" />
<option name="IGNORE_POINT_TO_ITSELF" value="false" />
<option name="myAdditionalJavadocTags" value="date" />
</inspection_tool>
</profile>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="212eb005-329a-49dc-bd8d-69d1fae5c20f" name="Default Changelist" comment="" />
<ignored path="$PROJECT_DIR$/out/" />
<ignored path="$PROJECT_DIR$/target/" />
<ignored path="$PROJECT_DIR$/vms-misc/target/" />
<ignored path="$PROJECT_DIR$/vms-union/target/" />
<ignored path="$PROJECT_DIR$/vms-user/target/" />
<ignored path="$PROJECT_DIR$/vms-inspection/target/" />
<ignored path="$PROJECT_DIR$/vms-wechat/target/" />
<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="DefaultGradleProjectSettings">
<option name="isMigrated" value="true" />
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="375">
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/entity/AppUser.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="372">
<caret line="37" column="15" selection-start-line="37" selection-start-column="15" selection-end-line="37" selection-end-column="15" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/controller/EventController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="499">
<caret line="33" column="20" lean-forward="true" selection-start-line="33" selection-end-line="34" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/service/impl/EventImageServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="228">
<caret line="12" column="13" selection-start-line="12" selection-start-column="13" selection-end-line="12" selection-end-column="13" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/service/impl/EventServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="568">
<caret line="120" column="5" selection-start-line="116" selection-start-column="71" selection-end-line="120" selection-end-column="5" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/controller/FileController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="585">
<caret line="48" column="39" selection-start-line="48" selection-start-column="39" selection-end-line="48" selection-end-column="39" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/service/impl/AppUserServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="217">
<caret line="31" column="30" selection-start-line="31" selection-start-column="30" selection-end-line="31" selection-end-column="30" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/entity/Car.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="301">
<caret line="45" column="24" selection-start-line="45" selection-start-column="24" selection-end-line="45" selection-end-column="24" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/controller/CarController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="340">
<caret line="49" column="61" selection-start-line="49" selection-start-column="61" selection-end-line="49" selection-end-column="61" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/controller/BusinessOwnerController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="154">
<caret line="17" selection-start-line="17" selection-end-line="18" selection-end-column="21" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/controller/UserController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="230">
<caret line="30" column="26" selection-start-line="30" selection-end-line="31" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="FxmlFile" />
<option value="Interface" />
<option value="Class" />
</list>
</option>
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>ApiModelProperty</find>
</findStrings>
<dirStrings>
<dir>$PROJECT_DIR$</dir>
</dirStrings>
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/dao/RoleDao.java" />
<option value="$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/dao/BussinessOwnerDao.java" />
<option value="$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/dao/BusinessOwnerDao.java" />
<option value="$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/entity/Role.java" />
<option value="$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/controller/RoleController.java" />
<option value="$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/entity/AppUser.java" />
<option value="$PROJECT_DIR$/vms-user/pom.xml" />
<option value="$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/controller/BusinessOwnerController.java" />
<option value="$PROJECT_DIR$/vms-wechat/src/main/java/com/zjty/wechat/subject/service/impl/WeChatApiServiceImpl.java" />
<option value="$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/UserApp.java" />
<option value="$PROJECT_DIR$/vms-wechat/pom.xml" />
<option value="$PROJECT_DIR$/vms-wechat/src/main/java/com/zjty/vms/wechat/WeChatApp.java" />
<option value="$PROJECT_DIR$/vms-wechat/src/main/java/com/zjty/vms/wechat/subject/entity/AuthCodeSession.java" />
<option value="$PROJECT_DIR$/vms-wechat/src/main/java/com/zjty/vms/wechat/subject/controller/WeChatController.java" />
<option value="$PROJECT_DIR$/vms-wechat/src/main/java/com/zjty/vms/wechat/subject/service/impl/WeChatApiServiceImpl.java" />
<option value="$PROJECT_DIR$/vms-union/src/main/resources/application.properties" />
<option value="$PROJECT_DIR$/vms-inspection/src/main/resources/applicaiton.properties" />
<option value="$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/InspectionApp.java" />
<option value="$PROJECT_DIR$/vms-inspection/pom.xml" />
<option value="$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/entity/EventImage.java" />
<option value="$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/dao/EventImageDao.java" />
<option value="$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/service/EventImageService.java" />
<option value="$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/service/impl/EventImageServiceImpl.java" />
<option value="$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/entity/Event.java" />
<option value="$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/entity/EventImage.java" />
<option value="$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/entity/vo/EventCreateVo.java" />
<option value="$PROJECT_DIR$/vms-union/pom.xml" />
<option value="$PROJECT_DIR$/vms-union/src/main/java/com/zjty/vms/union/UnionApp.java" />
<option value="$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/dao/EventImageDao.java" />
<option value="$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/entity/domain/Event.java" />
<option value="$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/entity/SecurityGuard.java" />
<option value="$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/service/AppUserService.java" />
<option value="$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/dao/AppUserDao.java" />
<option value="$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/service/impl/AppUserServiceImpl.java" />
<option value="$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/controller/UserController.java" />
<option value="$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/dao/EventDao.java" />
<option value="$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/entity/vo/FindVo.java" />
<option value="$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/service/EventService.java" />
<option value="$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/controller/EventController.java" />
<option value="$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/service/BusinessOwnerService.java" />
<option value="$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/service/impl/BusinessOwnerServiceImpl.java" />
<option value="$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/service/impl/EventServiceImpl.java" />
<option value="$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/entity/Room.java" />
<option value="$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/entity/ParkingSpace.java" />
<option value="$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/entity/BusinessOwner.java" />
<option value="$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/dao/CarDao.java" />
<option value="$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/service/impl/CarServiceImpl.java" />
<option value="$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/service/CarService.java" />
<option value="$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/controller/CarController.java" />
<option value="$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/entity/Car.java" />
<option value="$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/controller/FileController.java" />
</list>
</option>
</component>
<component name="ProjectFrameBounds" fullScreen="true">
<option name="y" value="23" />
<option name="width" value="1680" />
<option name="height" value="942" />
</component>
<component name="ProjectView">
<navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="PackagesPane" />
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="vms" type="b2602c69:ProjectViewProjectNode" />
<item name="vms" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="vms" type="b2602c69:ProjectViewProjectNode" />
<item name="vms" type="462c0819:PsiDirectoryNode" />
<item name="vms-inspection" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="vms" type="b2602c69:ProjectViewProjectNode" />
<item name="vms" type="462c0819:PsiDirectoryNode" />
<item name="vms-inspection" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="vms" type="b2602c69:ProjectViewProjectNode" />
<item name="vms" type="462c0819:PsiDirectoryNode" />
<item name="vms-inspection" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="vms" type="b2602c69:ProjectViewProjectNode" />
<item name="vms" type="462c0819:PsiDirectoryNode" />
<item name="vms-inspection" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="vms" type="b2602c69:ProjectViewProjectNode" />
<item name="vms" type="462c0819:PsiDirectoryNode" />
<item name="vms-inspection" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="inspection" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="vms" type="b2602c69:ProjectViewProjectNode" />
<item name="vms" type="462c0819:PsiDirectoryNode" />
<item name="vms-inspection" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="inspection" type="462c0819:PsiDirectoryNode" />
<item name="subject" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="vms" type="b2602c69:ProjectViewProjectNode" />
<item name="vms" type="462c0819:PsiDirectoryNode" />
<item name="vms-inspection" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="inspection" type="462c0819:PsiDirectoryNode" />
<item name="subject" type="462c0819:PsiDirectoryNode" />
<item name="controller" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="vms" type="b2602c69:ProjectViewProjectNode" />
<item name="vms" type="462c0819:PsiDirectoryNode" />
<item name="vms-inspection" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="inspection" type="462c0819:PsiDirectoryNode" />
<item name="subject" type="462c0819:PsiDirectoryNode" />
<item name="service" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="vms" type="b2602c69:ProjectViewProjectNode" />
<item name="vms" type="462c0819:PsiDirectoryNode" />
<item name="vms-inspection" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="inspection" type="462c0819:PsiDirectoryNode" />
<item name="subject" type="462c0819:PsiDirectoryNode" />
<item name="service" type="462c0819:PsiDirectoryNode" />
<item name="impl" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="RequestMappingsPanelOrder0" value="0" />
<property name="RequestMappingsPanelOrder1" value="1" />
<property name="RequestMappingsPanelWidth0" value="75" />
<property name="RequestMappingsPanelWidth1" value="75" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/vms-misc/src/main/java/com/zjty/vms/misc" />
<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="project.structure.last.edited" value="Modules" />
<property name="project.structure.proportion" value="0.15" />
<property name="project.structure.side.proportion" value="0.2" />
<property name="settings.editor.selected.configurable" value="preferences.keymap" />
</component>
<component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/dao" />
<recent name="$PROJECT_DIR$/vms-inspection/src/main/resources" />
</key>
<key name="CopyFile.RECENT_KEYS">
<recent name="$PROJECT_DIR$/vms-misc/src/main/java/com/zjty/vms/misc" />
</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="Spring Boot.UnionApp">
<configuration name="WeChatApiServiceImpl" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="com.zjty.wechat.subject.service.impl.WeChatApiServiceImpl" />
<module name="vms-wechat" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="com.zjty.wechat.subject.service.impl.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="UnionApp" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" temporary="true" nameIsGenerated="true">
<module name="vms-union" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="com.zjty.vms.union.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<option name="SPRING_BOOT_MAIN_CLASS" value="com.zjty.vms.union.UnionApp" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="UserApp" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" temporary="true" nameIsGenerated="true">
<module name="vms-user" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="com.zjty.vms.user.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<option name="SPRING_BOOT_MAIN_CLASS" value="com.zjty.vms.user.UserApp" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="WeChatApp" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" temporary="true" nameIsGenerated="true">
<module name="vms-wechat" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="com.zjty.vms.wechat.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<option name="SPRING_BOOT_MAIN_CLASS" value="com.zjty.vms.wechat.WeChatApp" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<recent_temporary>
<list>
<item itemvalue="Spring Boot.UnionApp" />
<item itemvalue="Spring Boot.WeChatApp" />
<item itemvalue="Spring Boot.UserApp" />
<item itemvalue="Application.WeChatApiServiceImpl" />
</list>
</recent_temporary>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="212eb005-329a-49dc-bd8d-69d1fae5c20f" name="Default Changelist" comment="" />
<created>1590566002807</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1590566002807</updated>
<workItem from="1590566006750" duration="5444000" />
<workItem from="1590642309010" duration="11259000" />
<workItem from="1590973675153" duration="38279000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="54982000" />
</component>
<component name="ToolWindowManager">
<frame x="0" y="0" width="1680" height="1050" extended-state="0" />
<editor active="true" />
<layout>
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.25" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Designer" order="2" />
<window_info id="Image Layers" order="3" />
<window_info id="Capture Tool" order="4" />
<window_info id="UI Designer" order="5" />
<window_info id="Favorites" order="6" side_tool="true" />
<window_info id="Web" order="7" 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.25542405" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.2658371" />
<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="Spring" order="7" />
<window_info anchor="bottom" id="Terminal" order="8" />
<window_info anchor="bottom" id="Docker" order="9" show_stripe_button="false" />
<window_info anchor="bottom" id="CheckStyle" order="10" />
<window_info anchor="bottom" id="Event Log" order="11" side_tool="true" />
<window_info anchor="bottom" id="Java Enterprise" order="12" />
<window_info anchor="bottom" id="Database Changes" order="13" />
<window_info anchor="bottom" id="Version Control" order="14" />
<window_info anchor="bottom" id="Messages" order="15" weight="0.32840237" />
<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="Maven" order="3" />
<window_info anchor="right" id="Palette" order="4" />
<window_info anchor="right" id="Capture Analysis" order="5" />
<window_info anchor="right" id="Database" order="6" />
<window_info anchor="right" id="Palette&#9;" order="7" />
<window_info anchor="right" id="Theme Preview" order="8" />
<window_info anchor="right" id="RestServices" order="9" />
<window_info anchor="right" id="Bean Validation" order="10" />
</layout>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/vms-user/src/main/resources/application.properties">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="228">
<caret line="12" column="25" selection-start-line="12" selection-start-column="25" selection-end-line="12" selection-end-column="25" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-user/pom.xml">
<provider editor-type-id="MavenHelperPluginDependencyAnalyzer" />
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="205">
<caret line="24" column="7" selection-start-line="24" selection-start-column="7" selection-end-line="28" selection-end-column="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-inspection/pom.xml">
<provider editor-type-id="MavenHelperPluginDependencyAnalyzer" />
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="304">
<caret line="16" column="45" selection-start-line="16" selection-start-column="45" selection-end-line="16" selection-end-column="45" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/dao/BusinessOwnerDao.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="228">
<caret line="12" column="17" selection-start-line="12" selection-start-column="17" selection-end-line="12" selection-end-column="17" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-union/pom.xml">
<provider editor-type-id="MavenHelperPluginDependencyAnalyzer" />
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="532">
<caret line="28" column="21" selection-start-line="28" selection-start-column="21" selection-end-line="28" selection-end-column="21" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-union/src/main/java/com/zjty/vms/union/UnionApp.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="304">
<caret line="16" column="2" lean-forward="true" selection-start-line="16" selection-start-column="2" selection-end-line="16" selection-end-column="2" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/dao/EventImageDao.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="209">
<caret line="11" lean-forward="true" selection-start-line="11" selection-end-line="11" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-union/src/main/resources/application.properties">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="285">
<caret line="15" lean-forward="true" selection-start-line="15" selection-end-line="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/entity/SecurityGuard.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="430">
<caret line="34" lean-forward="true" selection-start-line="34" selection-end-line="34" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/entity/domain/EventImage.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="225">
<caret line="32" column="7" lean-forward="true" selection-start-line="32" selection-start-column="7" selection-end-line="32" selection-end-column="7" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-wechat/src/main/java/com/zjty/vms/wechat/subject/entity/AccessToken.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="304">
<caret line="16" column="13" selection-start-line="16" selection-start-column="13" selection-end-line="16" selection-end-column="13" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-wechat/src/main/java/com/zjty/vms/wechat/subject/entity/AuthCodeSession.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="324">
<caret line="27" column="30" lean-forward="true" selection-start-line="27" selection-start-column="30" selection-end-line="27" selection-end-column="30" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-wechat/src/main/java/com/zjty/vms/wechat/subject/entity/WeChatApiUrl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="114">
<caret line="6" column="17" selection-start-line="6" selection-start-column="17" selection-end-line="6" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-wechat/src/main/java/com/zjty/vms/wechat/subject/service/WeChatApiService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="361">
<caret line="19" column="25" selection-start-line="19" selection-start-column="25" selection-end-line="19" selection-end-column="25" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-wechat/src/main/java/com/zjty/vms/wechat/subject/service/impl/WeChatApiServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="450">
<caret line="41" selection-start-line="41" selection-end-line="41" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/dao/AppUserDao.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="304">
<caret line="16" column="1" lean-forward="true" selection-start-line="16" selection-start-column="1" selection-end-line="16" selection-end-column="1" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/UserApp.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="342">
<caret line="20" selection-start-line="20" selection-end-line="20" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/service/AppUserService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="532">
<caret line="28" column="18" selection-start-line="28" selection-start-column="18" selection-end-line="28" selection-end-column="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/service/impl/RoleServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="106">
<caret line="18" column="18" lean-forward="true" selection-start-line="18" selection-start-column="18" selection-end-line="18" selection-end-column="18" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#613#614#0" expanded="true" />
<element signature="e#654#655#0" expanded="true" />
<element signature="e#879#880#0" expanded="true" />
<element signature="e#926#927#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/service/RoleService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="318">
<caret line="24" column="11" lean-forward="true" selection-start-line="24" selection-start-column="11" selection-end-line="24" selection-end-column="11" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-inspection/src/main/resources/application.properties">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/dao/EventDao.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="285">
<caret line="15" lean-forward="true" selection-start-line="15" selection-end-line="15" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-commons/2.1.6.RELEASE/spring-data-commons-2.1.6.RELEASE-sources.jar!/org/springframework/data/domain/Slice.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="221">
<caret line="44" column="8" selection-start-line="44" selection-start-column="8" selection-end-line="44" selection-end-column="8" />
</state>
</provider>
</entry>
<entry file="jar://$MAVEN_REPOSITORY$/org/springframework/data/spring-data-commons/2.1.6.RELEASE/spring-data-commons-2.1.6.RELEASE-sources.jar!/org/springframework/data/domain/Page.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="592">
<caret line="62" column="9" selection-start-line="62" selection-start-column="9" selection-end-line="62" selection-end-column="9" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/entity/vo/FindVo.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="451">
<caret line="26" column="20" lean-forward="true" selection-start-line="26" selection-start-column="20" selection-end-line="26" selection-end-column="20" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/entity/vo/EventCreateVo.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="456">
<caret line="33" column="24" lean-forward="true" selection-start-line="33" selection-start-column="24" selection-end-line="33" selection-end-column="24" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/InspectionApp.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="190">
<caret line="10" column="13" selection-start-line="10" selection-start-column="13" selection-end-line="10" selection-end-column="13" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#310#311#0" expanded="true" />
<element signature="e#374#375#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/service/EventImageService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="114">
<caret line="6" column="17" selection-start-line="6" selection-start-column="17" selection-end-line="6" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/service/EventService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="527">
<caret line="57" column="64" selection-start-line="57" selection-start-column="64" selection-end-line="57" selection-end-column="64" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/service/BusinessOwnerService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="437">
<caret line="23" column="30" lean-forward="true" selection-start-line="23" selection-start-column="30" selection-end-line="23" selection-end-column="30" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/service/impl/BusinessOwnerServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="460">
<caret line="41" column="30" lean-forward="true" selection-start-line="41" selection-start-column="30" selection-end-line="41" selection-end-column="30" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/entity/domain/Event.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-85">
<caret line="31" column="13" selection-start-line="31" selection-start-column="13" selection-end-line="31" selection-end-column="13" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/entity/Role.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="247">
<caret line="23" column="22" selection-start-line="23" selection-start-column="22" selection-end-line="23" selection-end-column="22" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/entity/Room.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="411">
<caret line="37" column="27" lean-forward="true" selection-start-line="37" selection-start-column="27" selection-end-line="37" selection-end-column="27" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/entity/Committee.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="377">
<caret line="29" column="67" selection-start-line="29" selection-start-column="67" selection-end-line="29" selection-end-column="67" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/entity/BusinessOwner.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="285">
<caret line="39" column="26" lean-forward="true" selection-start-line="39" selection-start-column="26" selection-end-line="39" selection-end-column="26" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/entity/ParkingSpace.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="437">
<caret line="39" lean-forward="true" selection-start-line="39" selection-end-line="39" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/dao/CarDao.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="361">
<caret line="19" column="48" selection-start-line="19" selection-start-column="48" selection-end-line="19" selection-end-column="48" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/service/impl/CarServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="175">
<caret line="29" column="21" selection-start-line="29" selection-start-column="21" selection-end-line="29" selection-end-column="21" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#616#617#0" expanded="true" />
<element signature="e#643#644#0" expanded="true" />
<element signature="e#1230#1231#0" expanded="true" />
<element signature="e#1273#1274#0" expanded="true" />
<element signature="e#1364#1365#0" expanded="true" />
<element signature="e#1401#1402#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/service/CarService.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="175">
<caret line="24" column="12" selection-start-line="24" selection-start-column="12" selection-end-line="24" selection-end-column="12" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/controller/RoleController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="510">
<caret line="38" column="37" selection-start-line="38" selection-start-column="37" selection-end-line="38" selection-end-column="37" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/controller/BusinessOwnerController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="154">
<caret line="17" selection-start-line="17" selection-end-line="18" selection-end-column="21" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/controller/UserController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="230">
<caret line="30" column="26" selection-start-line="30" selection-end-line="31" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/controller/CarController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="340">
<caret line="49" column="61" selection-start-line="49" selection-start-column="61" selection-end-line="49" selection-end-column="61" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/entity/Car.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="301">
<caret line="45" column="24" selection-start-line="45" selection-start-column="24" selection-end-line="45" selection-end-column="24" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/service/impl/AppUserServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="217">
<caret line="31" column="30" selection-start-line="31" selection-start-column="30" selection-end-line="31" selection-end-column="30" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-user/src/main/java/com/zjty/vms/user/subject/entity/AppUser.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="372">
<caret line="37" column="15" selection-start-line="37" selection-start-column="15" selection-end-line="37" selection-end-column="15" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/controller/EventController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="499">
<caret line="33" column="20" lean-forward="true" selection-start-line="33" selection-end-line="34" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/service/impl/EventImageServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="228">
<caret line="12" column="13" selection-start-line="12" selection-start-column="13" selection-end-line="12" selection-end-column="13" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/controller/FileController.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="585">
<caret line="48" column="39" selection-start-line="48" selection-start-column="39" selection-end-line="48" selection-end-column="39" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/vms-inspection/src/main/java/com/zjty/vms/inspection/subject/service/impl/EventServiceImpl.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="568">
<caret line="120" column="5" selection-start-line="116" selection-start-column="71" selection-end-line="120" selection-end-column="5" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</component>
<component name="masterDetails">
<states>
<state key="ArtifactsStructureConfigurable.UI">
<settings>
<artifact-editor />
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="FacetStructureConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="GlobalLibrariesConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="JdkListConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ModuleStructureConfigurable.UI">
<settings>
<last-edited>Spring|vms-inspection</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<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>
<state key="ProjectLibrariesConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.zjty</groupId>
<artifactId>vms</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>vms-misc</module>
<module>vms-union</module>
<module>vms-user</module>
<module>vms-inspection</module>
<module>vms-wechat</module>
</modules>
<name>vms</name>
<description>this is a union project!</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<checkstyle.config.location>check-style.xml</checkstyle.config.location>
</properties>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.20</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>23.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.5</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<configLocation>${checkstyle.config.location}</configLocation>
</configuration>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>vms</artifactId>
<groupId>com.zjty</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>vms-inspection</artifactId>
<dependencies>
<dependency>
<groupId>com.zjty</groupId>
<artifactId>vms-misc</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.zjty.vms.inspection;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-01
*/
@SpringBootApplication
public class InspectionApp {
public static void main(String[] args) {
SpringApplication.run(InspectionApp.class, args);
}
}
package com.zjty.vms.inspection.subject.controller;
import com.sun.javafx.image.PixelUtils;
import com.zjty.vms.inspection.subject.entity.domain.Event;
import com.zjty.vms.inspection.subject.entity.vo.EventCreateVo;
import com.zjty.vms.inspection.subject.entity.vo.FindVo;
import com.zjty.vms.inspection.subject.service.EventService;
import com.zjty.vms.misc.config.AutoDocument;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.security.PublicKey;
import java.util.List;
import java.util.Map;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-01
*/
@RestController
@RequestMapping("/vms")
@AutoDocument
@Api(tags = "举报模块")
public class EventController {
@Autowired
private EventService eventService;
@ApiOperation(value = "创建举报事件")
@PostMapping("/event")
public ResponseEntity<Event> addEvent(
@RequestBody @ApiParam(name = "创建事件对象")
EventCreateVo eventCreateVo) {
Event event = eventService.startEvent(eventCreateVo);
return ResponseEntity.ok(event);
}
@PutMapping("sgCheck")
@ApiOperation(value = "安保人员确认已联系")
public ResponseEntity<Event> sgCheck(@RequestParam @ApiParam(name = "事件uuid") String uuid,
@RequestParam @ApiParam(name = "安保人员id") String sgId) {
return ResponseEntity.ok(eventService.sgCheck(uuid, sgId));
}
@PutMapping("ownerCt")
@ApiOperation(value = "业主继续举报")
public ResponseEntity<Event> ownerCon(@RequestParam @ApiParam(name = "事件uuid") String uuid) {
return ResponseEntity.ok(eventService.ownerChangeStatus(uuid));
}
@PutMapping("delEvent")
@ApiOperation(value = "业主或安保人员完结事件")
public ResponseEntity<Event> changeStatus(@RequestParam @ApiParam(name = "事件uuid") String uuid,
@RequestParam @ApiParam(name = "对象,0_业主,1_安保") Integer obj) {
return ResponseEntity.ok(eventService.finishEvent(uuid, obj));
}
@GetMapping("tsFind")
@ApiOperation(value = "业主查询事件接口")
public ResponseEntity<FindVo<List<Event>>> ownerFind(@RequestParam(value = "tsId") @ApiParam(name = "tsId") String tsId,
@RequestParam(value = "page", defaultValue = "1") @ApiParam(name = "page") Integer page,
@RequestParam(value = "size", defaultValue = "10") @ApiParam(name = "size") Integer size) {
page = page - 1;
return ResponseEntity.ok(eventService.findAllByOwner(tsId, page, size));
}
@GetMapping("sgFind")
@ApiOperation(value = "安保人员查询事件接口")
public ResponseEntity<FindVo<List<Event>>> ownerFind(@RequestParam(value = "page", defaultValue = "1") @ApiParam(name = "page") Integer page,
@RequestParam(value = "size", defaultValue = "10") @ApiParam(name = "size") Integer size) {
page = page - 1;
return ResponseEntity.ok(eventService.findAllBySg(page, size));
}
}
package com.zjty.vms.inspection.subject.controller;
import com.zjty.vms.misc.config.AutoDocument;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.UUID;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-03
*/
@RestController
@RequestMapping("/file")
@AutoDocument
@Api(tags = "上传下载模块")
public class FileController {
@PostMapping("/upload")
@ApiOperation(value = "上传文件")
public String fileUpload(MultipartFile file) throws IllegalStateException, IOException {
if (file.getSize() == 0) {
return "";
}
System.err.println("文件是否为空 : " + file.isEmpty());
System.err.println("文件的大小为 :" + file.getSize());
System.err.println("文件的媒体类型为 : " + file.getContentType());
System.err.println("文件的名字: " + file.getName());
System.err.println("文件的originName为: " + file.getOriginalFilename());
final UUID uuid = UUID.randomUUID();
File newFile = new File("/Users/ljj/data/file/" + uuid);
file.transferTo(newFile);
return uuid.toString();
}
@PostMapping("/download")
@ApiOperation(value = "下载文件")
public boolean download(HttpServletResponse res,
@RequestParam(value = "fileId")@ApiParam(name = "文件id") String fileId) throws IOException {
File file = new File("/Users/ljj/data/file/" + fileId);
String fileName = "bg1.png";
res.setHeader("Content-Disposition", "attachment;filename=" + fileName);
byte[] buff = new byte[1024];
BufferedInputStream bis = null;
OutputStream os = null;
try {
os = res.getOutputStream();
bis = new BufferedInputStream(new FileInputStream(file));
int i = bis.read(buff);
while (i != -1) {
os.write(buff, 0, buff.length);
os.flush();
i = bis.read(buff);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (bis != null) {
try {
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
System.out.println("success");
return false;
}
}
package com.zjty.vms.inspection.subject.dao;
import com.zjty.vms.inspection.subject.entity.domain.Event;
import org.springframework.data.domain.Page;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.awt.print.Pageable;
import java.util.List;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-01
*/
public interface EventDao extends JpaRepository<Event, String>, JpaSpecificationExecutor<Event> {
}
package com.zjty.vms.inspection.subject.dao;
import com.zjty.vms.inspection.subject.entity.domain.EventImage;
import org.springframework.data.jpa.repository.JpaRepository;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-01
*/
public interface EventImageDao extends JpaRepository<EventImage, String> {
}
package com.zjty.vms.inspection.subject.entity.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zjty.vms.misc.config.AutoDocument;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-01
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Entity
@AutoDocument
@ApiModel(value = "举报事件", description = "一个举报事件")
@Table(name = "vms_event")
public class Event {
@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator")
@ApiModelProperty(value = "主键id",example = "3eee-eqwe-qwe-123")
private String uuid;
@ApiModelProperty(value = "举报事件名称",example = "事件名称")
private String name;
@ApiModelProperty(value = "图片id,以英文,分割",example = "1,2,3,4")
private String image;
@ApiModelProperty(value = "投诉人Id",example = "asdads")
private String tsId;
@ApiModelProperty(value = "被举报人Id",example = "asdads")
private String reportedId;
@ApiModelProperty(value = "被举报车牌号",example = "浙A88888")
private String numberPlate;
@ApiModelProperty(value = "车位号",example = "A101")
private String parkingSpace;
@ApiModelProperty(value = "处理保安id",example = "asdasd")
private String sgId;
@ApiModelProperty(value = "是否电话,通知0_未通知,1_已通知",example = "0")
private Integer isPhoneNotification;
@ApiModelProperty(value = "电话通知时间",example = "2001-01-01 00:00:00")
private Date phoneNotificationTime;
@ApiModelProperty(value = "是否推送了公众号0_未通知,1_已通知",example = "0")
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Integer isForwardNews;
@ApiModelProperty(value = "公众号推送通知时间",example = "2001-01-01 00:00:00")
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date forwardNewsTime;
@ApiModelProperty(value = "继续举报时间,若无继续举报,则为空(即将事件状态变为1时需传入这个字段)",example = "2001-01-01 00:00:00")
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date continueToReportTime;
@ApiModelProperty(value = "事件状态,0_未处理,1_需人工处理,2_完结",example = "0")
private Integer status = 0;
@ApiModelProperty(value = "事件完结时间",example = "2001-01-01 00:00:00")
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date finishEventTime;
@ApiModelProperty(value = "0_业主完结,1_保安完结",example = "0")
private Integer finishEventObj;
@ApiModelProperty(value = "事件生成时间",example = "2001-01-01 00:00:00")
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
}
package com.zjty.vms.inspection.subject.entity.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zjty.vms.misc.config.AutoDocument;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-01
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Entity
@AutoDocument
@ApiModel(value = "图片库", description = "用于存储图片")
@Table(name = "vms_image")
public class EventImage {
@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator")
@ApiModelProperty(value = "主键id",example = "3eee-eqwe-qwe-123")
private String uuid;
@ApiModelProperty(value = "图片路径",example = "3eee-eqwe-qwe-123")
private String path;
@ApiModelProperty(value = "图片创建时间",example = "2001-01-01 00:00:00")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
}
package com.zjty.vms.inspection.subject.entity.vo;
import com.zjty.vms.misc.config.AutoDocument;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-01
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@AutoDocument
@ApiModel(value = "生成事件", description = "生成事件时需要传入的对象")
@Table(name = "vms_event")
public class EventCreateVo {
@ApiModelProperty(value = "举报事件名称",example = "事件名称")
private String name;
@ApiModelProperty(value = "图片id,以英文,分割",example = "1,2,3,4")
private String image;
@ApiModelProperty(value = "投诉人Id",example = "asdads")
private String tsId;
@ApiModelProperty(value = "被举报车牌号",example = "浙A88888")
private String numberPlate;
@ApiModelProperty(value = "车位号",example = "A101")
private String parkingSpace;
}
package com.zjty.vms.inspection.subject.entity.vo;
import com.zjty.vms.misc.config.AutoDocument;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import sun.jvm.hotspot.debugger.Page;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-02
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@AutoDocument
@ApiModel(value = "生成事件", description = "生成事件时需要传入的对象")
public class FindVo<T> {
@ApiModelProperty(value = "总数",example = "100")
private Long total;
@ApiModelProperty(value = "页数",example = "1")
private Integer page;
@ApiModelProperty(value = "每页",example = "10")
private Integer size;
@ApiModelProperty(value = "数据内容",example = "数据内容")
private T data;
}
package com.zjty.vms.inspection.subject.service;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-01
*/
public interface EventImageService {
}
package com.zjty.vms.inspection.subject.service;
import com.zjty.vms.inspection.subject.entity.domain.Event;
import com.zjty.vms.inspection.subject.entity.vo.EventCreateVo;
import com.zjty.vms.inspection.subject.entity.vo.FindVo;
import java.util.List;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-01
*/
public interface EventService {
/**
* 生成一个举报事件
*
* @param eventCreateVo ecvo
* @return obj
*/
Event startEvent(EventCreateVo eventCreateVo);
/**
* 安保人员确认,电话通知后确认
*
* @param uuid 事件uuid
* @param sgId 安保人员ID
* @return obj
*/
Event sgCheck(String uuid, String sgId);
/**
* 业主继续反馈,举报
*
* @param uuid 事件主键id
* @return
*/
Event ownerChangeStatus(String uuid);
/**
* 完结事件
*
* @param uuid 事件id
* @param obj 0_业主,1_安保
* @return obj
*/
Event finishEvent(String uuid, Integer obj);
/**
*业主查询事件接口
* @param tsId 业主id
* @param page page
* @param size size
* @return obj
*/
FindVo<List<Event>> findAllByOwner(String tsId, Integer page, Integer size);
FindVo<List<Event>> findAllBySg(Integer page, Integer size);
}
package com.zjty.vms.inspection.subject.service.impl;
import com.zjty.vms.inspection.subject.service.EventImageService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-01
*/
@Service
@Slf4j
public class EventImageServiceImpl implements EventImageService {
}
package com.zjty.vms.inspection.subject.service.impl;
import com.zjty.vms.inspection.subject.dao.EventDao;
import com.zjty.vms.inspection.subject.entity.domain.Event;
import com.zjty.vms.inspection.subject.entity.vo.EventCreateVo;
import com.zjty.vms.inspection.subject.entity.vo.FindVo;
import com.zjty.vms.inspection.subject.service.EventService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import java.util.Date;
import java.util.List;
import java.util.Optional;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-01
*/
@Service
@Slf4j
public class EventServiceImpl implements EventService {
@Autowired
private EventDao eventDao;
@Override
public Event startEvent(EventCreateVo eventCreateVo) {
String reportedId = "";
//todo 1.根据车牌查找是否有这个人 2.推送订阅消息
Event build = Event.builder()
.image(eventCreateVo.getImage())
.name(eventCreateVo.getName())
.tsId(eventCreateVo.getTsId())
.numberPlate(eventCreateVo.getNumberPlate())
.parkingSpace(eventCreateVo.getParkingSpace())
.createTime(new Date())
//被举报人id
.reportedId(reportedId)
.isPhoneNotification(0)
.isForwardNews(0)
.status(0)
.build();
return eventDao.save(build);
}
@Override
public Event sgCheck(String uuid, String sgId) {
Optional<Event> one = eventDao.findById(uuid);
if (one.isPresent()) {
Event event = one.get();
event.setIsPhoneNotification(1);
event.setPhoneNotificationTime(new Date());
return eventDao.save(event);
} else {
return new Event();
}
}
@Override
public Event ownerChangeStatus(String uuid) {
final Optional<Event> one = eventDao.findById(uuid);
if (one.isPresent()) {
Event event = one.get();
event.setStatus(1);
event.setContinueToReportTime(new Date());
return eventDao.save(event);
} else {
return new Event();
}
}
@Override
public Event finishEvent(String uuid, Integer obj) {
final Optional<Event> one = eventDao.findById(uuid);
if (!one.isPresent()) {
return new Event();
}
Event event = one.get();
event.setStatus(2);
event.setFinishEventTime(new Date());
event.setFinishEventObj(obj);
return eventDao.save(event);
}
@Override
public FindVo<List<Event>> findAllByOwner(String tsId, Integer page, Integer size) {
Specification<Event> contactSpecification = new Specification<Event>() {
@Override
public Predicate toPredicate(Root<Event> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
Predicate predicate = criteriaBuilder.equal(root.get("tsId"), tsId);
return criteriaBuilder.and(predicate);
}
};
Pageable pageable = PageRequest.of(page, size, Sort.Direction.DESC, "createTime");
final Page<Event> all = eventDao.findAll(contactSpecification, pageable);
return new FindVo<>(all.getTotalElements(), page, size, all.getContent());
}
@Override
public FindVo<List<Event>> findAllBySg(Integer page, Integer size) {
Pageable pageable = PageRequest.of(page, size, Sort.Direction.DESC, "createTime");
final Page<Event> all = eventDao.findAll(pageable);
return new FindVo<List<Event>>(all.getTotalElements(), page, size, all.getContent());
}
}
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4" />
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>vms</artifactId>
<groupId>com.zjty</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>vms-misc</artifactId>
<properties>
<swagger.version>2.9.0</swagger.version>
</properties>
<dependencies>
<!--swagger2 enable dependency-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>com.github.caspar-chen</groupId>
<artifactId>swagger-ui-layer</artifactId>
<version>0.0.4</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-bean-validators</artifactId>
<version>${swagger.version}</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.zjty.vms.misc.config;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-04-26
*/
@Target({TYPE, ANNOTATION_TYPE})
@Retention(RUNTIME)
@Documented
public @interface AutoDocument {
String value() default "";
}
package com.zjty.vms.misc.config;
import com.google.common.collect.Sets;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-04-26
*/
@Configuration
@EnableSwagger2
public class Swagger2Config {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.produces(Sets.newHashSet("application/json"))
.consumes(Sets.newHashSet("application/json"))
.protocols(Sets.newHashSet("http","https"))
.apiInfo(apiInfo())
.forCodeGeneration(true)
.useDefaultResponseMessages(true)
// .globalResponseMessage(RequestMethod.GET, getResMsg())
.select()
// 指定controller存放的目录路径
.apis(RequestHandlerSelectors.withClassAnnotation(AutoDocument.class))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
// 文档标题
.title("机动车管理系统接口文档")
// 文档描述
.description("机动车管理系统的接口文档与测试页面")
.termsOfServiceUrl("git地址待更新")
.version("v1")
.contact(new Contact("efs", "git", "ty@example.com"))
.build();
}
// private ArrayList<ResponseMessage> getResMsg() {
// return newArrayList(new ResponseMessageBuilder()
// .code(500)
// .message("服务器内部发生了某种错误")
// .responseModel(new ModelRef("Error"))
// .build(),
// new ResponseMessageBuilder()
// .code(404)
// .message("用户发出的请求针对的是不存在的记录,服务器没有进行操作")
// .responseModel(new ModelRef("Exception"))
// .build(),
// new ResponseMessageBuilder()
// .code(406)
// .message("用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)")
// .responseModel(new ModelRef("Exception"))
// .build(),
// new ResponseMessageBuilder()
// .code(501)
// .message("不支持的HTTP请求,请检查HTTP TYPE与资源路径是否正确")
// .responseModel(new ModelRef("Exception"))
// .build());
// }
}
package com.zjty.vms.misc.config;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-05-29
*/
public class WechatAppConfig {
public static final String APP_ID = "wx44b039ae19434b36";
private static final String APP_SECRET = "1030a6aef6cfe8b5543e5e5ba043dca3";
}
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>vms</artifactId>
<groupId>com.zjty</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>vms-union</artifactId>
<dependencies>
<dependency>
<groupId>com.zjty</groupId>
<artifactId>vms-wechat</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.zjty</groupId>
<artifactId>vms-user</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
<dependency>
<groupId>com.zjty</groupId>
<artifactId>vms-inspection</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.zjty.vms.union;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-05-28
*/
@SpringBootApplication(scanBasePackages = {
"com.zjty.vms.union",
"com.zjty.vms.user",
"com.zjty.vms.wechat",
"com.zjty.vms.inspection"
})
@EnableSwagger2
public class UnionApp {
public static void main(String[] args) {
SpringApplication.run(UnionApp.class, args);
}
}
# server port
server.port=8082
##连接中心数据库数据库mysql
spring.datasource.url=jdbc:mysql://localhost:3306/vms?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=ljj123456
# spring.jpa.properties.hibernate.format_sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=false
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.open-in-view=true
# server port
server.port=8082
##连接中心数据库数据库mysql
spring.datasource.url=jdbc:mysql://localhost:3306/vms?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=ljj123456
# spring.jpa.properties.hibernate.format_sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=false
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.open-in-view=true
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>vms</artifactId>
<groupId>com.zjty</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>vms-user</artifactId>
<dependencies>
<dependency>
<groupId>com.zjty</groupId>
<artifactId>vms-misc</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.zjty</groupId>
<artifactId>vms-wechat</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.zjty.vms.user;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-05-28
*/
@SpringBootApplication(scanBasePackages = {
"com.zjty.vms.user",
"com.zjty.vms.misc",
"com.zjty.vms.wechat"
})
@EnableSwagger2
public class UserApp {
public static void main(String[] args) {
SpringApplication.run(UserApp.class, args);
}
}
package com.zjty.vms.user.subject.controller;
import com.zjty.vms.misc.config.AutoDocument;
import com.zjty.vms.user.subject.entity.BusinessOwner;
import com.zjty.vms.user.subject.service.BusinessOwnerService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-01
*/
@RestController
@RequestMapping("/vms")
@AutoDocument
@Api(tags = "业主信息模块")
public class BusinessOwnerController {
@Autowired
private BusinessOwnerService businessOwnerService;
@GetMapping("/bo")
public ResponseEntity getByOpenId(@RequestParam(value = "openId") String openId) {
return ResponseEntity.ok(businessOwnerService.findByOpenId(openId));
}
@PostMapping("/bo")
private ResponseEntity<BusinessOwner> saveOne(@RequestBody @ApiParam(name = "业主对象") BusinessOwner businessOwner) {
return ResponseEntity.ok(businessOwnerService.save(businessOwner));
}
}
package com.zjty.vms.user.subject.controller;
import com.zjty.vms.misc.config.AutoDocument;
import com.zjty.vms.user.subject.dao.CarDao;
import com.zjty.vms.user.subject.entity.Car;
import com.zjty.vms.user.subject.service.CarService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-02
*/
@RequestMapping("/vms")
@RestController
@AutoDocument
@Api(tags = "车辆车位模块")
public class CarController {
@Autowired
private CarService carService;
@GetMapping("car/num")
@ApiOperation(value = "根据车牌查")
public ResponseEntity<Car> findByCarNum(@RequestParam(name = "numberPlate") String numberPlate) {
return ResponseEntity.ok(carService.findByCarNum(numberPlate));
}
@GetMapping("car/tel")
@ApiOperation(value = "根据电话查")
public ResponseEntity<List<Car>> findByTel(@RequestParam(name = "tel") String tel) {
return ResponseEntity.ok(carService.findByPhone(tel));
}
@ApiOperation(value = "保存一个车辆信息")
@PostMapping("car")
public ResponseEntity<Car> saveOne(@RequestBody@ApiParam(name = "车辆")Car car) {
return ResponseEntity.ok(carService.saveOne(car));
}
@ApiOperation(value = "根据停车位查车")
@GetMapping("car/space")
public ResponseEntity<List<Car>> findByParkingSpace(@RequestParam(name = "parkingSpace") String parkingSpace) {
return ResponseEntity.ok(carService.findByParkingSpace(parkingSpace));
}
@ApiOperation(value = "根据id删除车辆信息")
@DeleteMapping("car")
public ResponseEntity deleteCar(@RequestParam(name = "uuid") String uuid) {
carService.deleteCar(uuid);
return ResponseEntity.ok("ok");
}
}
\ No newline at end of file
package com.zjty.vms.user.subject.controller;
import com.zjty.vms.misc.config.AutoDocument;
import com.zjty.vms.user.subject.entity.Role;
import com.zjty.vms.user.subject.service.RoleService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.persistence.Id;
import java.util.ArrayList;
import java.util.List;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-01
*/
@RestController
@RequestMapping("/vms")
@AutoDocument
@Api(tags = "人员权限模块")
public class RoleController {
@Autowired
private RoleService roleService;
@GetMapping("/role")
public ResponseEntity<Role> getOne(@RequestParam(value = "roleId") Integer roleId) {
return ResponseEntity.status(200).body(roleService.getById(roleId));
}
@GetMapping("/allRoles")
public ResponseEntity<List<Role>> getRoles(@RequestParam(value = "ids")@ApiParam(name = "ids,,分割",example = "1,2,3") String ids) {
final String[] str = ids.split(",");
List<Integer> list = new ArrayList<>();
for (String s : str) {
list.add(Integer.parseInt(s));
}
return ResponseEntity.status(200).body(roleService.findByIds(list));
}
@PostMapping
public ResponseEntity<Role> saveOne(@RequestBody@ApiParam(name = "权限") Role role) {
return ResponseEntity.status(200).body(roleService.save(role));
}
}
package com.zjty.vms.user.subject.controller;
import com.zjty.vms.misc.config.AutoDocument;
import com.zjty.vms.user.subject.entity.AppUser;
import com.zjty.vms.user.subject.service.AppUserService;
import com.zjty.vms.wechat.subject.service.WeChatApiService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-01
*/
@RestController
@RequestMapping("/vms")
@AutoDocument
@Api(tags = "人员基础信息模块")
public class UserController {
@Autowired
private AppUserService appUserService;
@Autowired
private WeChatApiService apiService;
@ApiOperation(value = "登陆接口")
@GetMapping("login2")
public ResponseEntity<AppUser> login(@ApiParam(name = "openId")@RequestParam(value = "openId") String openId) {
return ResponseEntity.status(200).body(appUserService.findByOpenId(openId));
}
@ApiOperation(value = "获取人员基础信息")
@GetMapping("userInfo")
public ResponseEntity<AppUser> getOne(@RequestParam(value = "openId") String openId) {
return ResponseEntity.status(200).body(appUserService.findByOpenId(openId));
}
@ApiOperation(value = "保存个人基本信息")
@PostMapping("/appUser")
public ResponseEntity<AppUser> saveOne(@RequestBody@ApiParam(name = "人员基础信息") AppUser appUser) {
appUser.setUpdateTime(new Date());
AppUser user = appUserService.saveOne(appUser);
return ResponseEntity.status(200).body(user);
}
@ApiOperation(value = "根据手机号码查询人员")
@GetMapping("/user/tel")
public ResponseEntity<AppUser> findByTel(@RequestParam(value = "tel") @ApiParam(name = "手机号码") String tel) {
return ResponseEntity.ok(appUserService.findByPhone(tel));
}
}
package com.zjty.vms.user.subject.dao;
import com.zjty.vms.user.subject.entity.AppUser;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-05-28
*/
public interface AppUserDao extends JpaRepository<AppUser, String> {
Optional<List<AppUser>> findByTel(String tel);
}
\ No newline at end of file
package com.zjty.vms.user.subject.dao;
import com.zjty.vms.user.subject.entity.BusinessOwner;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
import java.util.Optional;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-01
*/
public interface BusinessOwnerDao extends JpaRepository<BusinessOwner, String> {
Optional<List<BusinessOwner>> findByOpenId(String openId);
}
package com.zjty.vms.user.subject.dao;
import com.zjty.vms.user.subject.entity.Car;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import java.util.List;
import java.util.Optional;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-02
*/
public interface CarDao extends JpaRepository<Car, String>, JpaSpecificationExecutor<Car> {
Optional<Car> findTopByNumberPlate(String numberPlate);
Optional<List<Car>> findByParkingSpace(String parkingSpace);
Optional<List<Car>> findByPhone(String tel);
}
package com.zjty.vms.user.subject.dao;
import com.zjty.vms.user.subject.entity.Role;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.data.jpa.repository.JpaRepository;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-01
*/
public interface RoleDao extends JpaRepository<Role, Integer> {
}
package com.zjty.vms.user.subject.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zjty.vms.misc.config.AutoDocument;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
* 业主对象
*
* @author LJJ cnljj1995@gmail.com
* on 2020-05-28
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Entity
@AutoDocument
@ApiModel(value = "人员基本信息", description = "人员基本信息实体类")
@Table(name = "vms_user")
public class AppUser {
@Id
@ApiModelProperty(value = "小程序用户唯一标识,人员主键id",example = "asdasd")
private String openId;
@ApiModelProperty(value = "用户在开放平台的唯一标识符",example = "asdasd")
private String unionId;
@ApiModelProperty(value = "联系人",example = "张三")
private String name;
@ApiModelProperty(value = "联系电话",example = "15912331111")
private String tel;
@ApiModelProperty(value = "角色",example = "1,2,3,4")
private String role;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "创建时间",example = "2001-01-01 00:00:00")
private Date createTime;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "更新时间",example = "2001-01-01 00:00:00")
private Date updateTime;
}
package com.zjty.vms.user.subject.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zjty.vms.misc.config.AutoDocument;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-01
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Entity
@Table(name = "vms_business_owner")
@AutoDocument
@ApiModel(value = "小区业主对象", description = "小区业主实体类")
public class BusinessOwner {
@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator")
@ApiModelProperty(value = "主键id",example = "3eee-eqwe-qwe-123")
private String uuid;
@ApiModelProperty(value = "关联人员id",example = "asdasd")
private String openId;
@ApiModelProperty(value = "车牌号",example = "浙A888888")
private String numberPlate;
@ApiModelProperty(value = "门号",example = "23-1-2002")
private String room;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "更新时间",example = "2001-01-01 00:00:00")
private Date updateTime;
@ApiModelProperty(value = "创建时间",example = "2001-01-01 00:00:00")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
}
package com.zjty.vms.user.subject.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zjty.vms.misc.config.AutoDocument;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-02
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Builder
@Table(name = "vms_car")
@AutoDocument
@ApiModel(value = "车辆对象", description = "车辆实体类")
public class Car {
@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator")
@ApiModelProperty(value = "主键id",example = "3eee-eqwe-qwe-123")
private String uuid;
@ApiModelProperty(value = "车牌号",example = "浙A888888")
private String numberPlate;
@ApiModelProperty(value = "车位号",example = "A101")
private String parkingSpace;
@ApiModelProperty(value = "房号",example = "1-01-1001")
private String room;
@ApiModelProperty(value = "车主姓名",example = "张三")
private String carOwner;
@ApiModelProperty(value = "车主手机号",example = "15123123123")
private String phone;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "创建",example = "2001-01-01 00:00:00")
private Date createTime = new Date();
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ApiModelProperty(value = "更新时间",example = "2001-01-01 00:00:00")
private Date updateTime = new Date();
}
package com.zjty.vms.user.subject.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-01
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Entity
@Table(name = "vms_committee")
public class Committee {
@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator")
@ApiModelProperty(value = "主键id",example = "3eee-eqwe-qwe-123")
private String uuid;
}
package com.zjty.vms.user.subject.entity;
import com.zjty.vms.misc.config.AutoDocument;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-02
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Entity
@Table(name = "vms_parking")
@AutoDocument
@ApiModel(value = "车位", description = "车位信息实体类")
public class ParkingSpace {
@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator")
@ApiModelProperty(value = "主键id",example = "3eee-eqwe-qwe-123")
private String uuid;
@ApiModelProperty(value = "所属房子Id",example = "3eee-eqwe-qwe-123")
private String roomId;
}
package com.zjty.vms.user.subject.entity;
import com.zjty.vms.misc.config.AutoDocument;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-01
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Entity
@Table(name = "vms_role")
@AutoDocument
@ApiModel(value = "权限表", description = "权限实体类")
public class Role {
@Id
@ApiModelProperty(value = "id",example = "1")
private Integer id;
@ApiModelProperty(value = "权限名称",example = "业主")
private String roleName = "";
@ApiModelProperty(value = "权限描述",example = "描述信息")
private String description = "";
}
package com.zjty.vms.user.subject.entity;
import com.zjty.vms.misc.config.AutoDocument;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-02
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Entity
@Table(name = "vms_room")
@AutoDocument
@ApiModel(value = "房子", description = "房子实体类")
public class Room {
@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator")
@ApiModelProperty(value = "主键id",example = "3eee-eqwe-qwe-123")
private String uuid;
private String ownerId;
}
package com.zjty.vms.user.subject.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-01
*/
@Data
@Entity
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Table(name = "vms_security_guard")
public class SecurityGuard {
@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "org.hibernate.id.UUIDGenerator")
@ApiModelProperty(value = "主键id",example = "3eee-eqwe-qwe-123")
private String uuid;
@ApiModelProperty(value = "openId",example = "3eee-eqwe-qwe-123")
private String openId;
}
package com.zjty.vms.user.subject.service;
import com.zjty.vms.user.subject.entity.AppUser;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-05-29
*/
public interface AppUserService {
/**
* 根据open ID 查找用户
* @param openId openid
* @return obj
*/
AppUser findByOpenId(String openId);
/**
* 保存用户
* @param appUser app user
* @return obj
*/
AppUser saveOne(AppUser appUser);
/**
* 根据手机号码查询
* @param tel 手机号码
* @return obj
*/
AppUser findByPhone(String tel);
}
package com.zjty.vms.user.subject.service;
import com.zjty.vms.user.subject.entity.BusinessOwner;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-01
*/
public interface BusinessOwnerService {
BusinessOwner save(BusinessOwner businessOwner);
BusinessOwner findById(String uuid);
/**
* 根据openid 查询业主
* @param openId
* @return
*/
BusinessOwner findByOpenId(String openId);
/**
* 根据车牌号码查询业务
* @param numberPlate 车牌号码
* @return 业主
*/
BusinessOwner findByCar(String numberPlate);
}
package com.zjty.vms.user.subject.service;
import com.zjty.vms.user.subject.entity.Car;
import java.util.List;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-02
*/
public interface CarService {
/**
* 根据车牌号码查询
* @param numberPlate 车牌号码
* @return car
*/
Car findByCarNum(String numberPlate);
/**
* 根据停车位查询车辆
* @param parkingSpace parking space
* @return objs
*/
List<Car> findByParkingSpace(String parkingSpace);
/**
* 根据手机查找车子
* @param tel tel
* @return objs
*/
List<Car> findByPhone(String tel);
/**
* 保存车辆信息
* @param car car
* @return car
*/
Car saveOne(Car car);
/**
* save cars
* @param cars cars
* @return cars
*/
List<Car> saveAll(List<Car> cars);
/**
* delete car
* @param id car's uuid
*/
void deleteCar(String id);
}
package com.zjty.vms.user.subject.service;
import com.zjty.vms.user.subject.entity.Role;
import java.util.List;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-01
*/
public interface RoleService {
/**
* 保存Role
* @param role role
* @return obj
*/
Role save(Role role);
/**
* 根据ID查找
* @param roleId roleId
* @return obj
*/
Role getById(Integer roleId);
/**
* 根据id查找
* @param ids id集合
* @return list
*/
List<Role> findByIds(List<Integer> ids);
}
package com.zjty.vms.user.subject.service.impl;
import com.zjty.vms.user.subject.dao.AppUserDao;
import com.zjty.vms.user.subject.entity.AppUser;
import com.zjty.vms.user.subject.service.AppUserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.Optional;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-05-29
*/
@Service
@Slf4j
public class AppUserServiceImpl implements AppUserService {
@Autowired
private AppUserDao appUserDao;
@Override
public AppUser findByOpenId(String openId) {
Optional<AppUser> appUser = appUserDao.findById(openId);
return appUser.orElseGet(AppUser::new);
}
@Override
public AppUser saveOne(AppUser appUser) {
appUser.setUpdateTime(new Date());
return appUserDao.save(appUser);
}
@Override
public AppUser findByPhone(String tel) {
final Optional<List<AppUser>> find = appUserDao.findByTel(tel);
if (find.isPresent() && find.get().size() == 1) {
return find.get().get(0);
} else {
return new AppUser();
}
}
}
package com.zjty.vms.user.subject.service.impl;
import com.zjty.vms.user.subject.dao.BusinessOwnerDao;
import com.zjty.vms.user.subject.entity.BusinessOwner;
import com.zjty.vms.user.subject.service.BusinessOwnerService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-01
*/
@Service
@Slf4j
public class BusinessOwnerServiceImpl implements BusinessOwnerService {
@Autowired
private BusinessOwnerDao businessOwnerDao;
@Override
public BusinessOwner save(BusinessOwner businessOwner) {
businessOwner.setUpdateTime(new Date());
return businessOwnerDao.save(businessOwner);
}
@Override
public BusinessOwner findById(String uuid) {
final Optional<BusinessOwner> rs = businessOwnerDao.findById(uuid);
return rs.orElseGet(BusinessOwner::new);
}
@Override
public BusinessOwner findByOpenId(String openId) {
final Optional<List<BusinessOwner>> rs = businessOwnerDao.findByOpenId(openId);
final boolean tag = rs.isPresent();
if (tag && rs.get().size()==1) {
return rs.get().get(0);
} else {
return new BusinessOwner();
}
}
@Override
public BusinessOwner findByCar(String numberPlate) {
return null;
}
}
package com.zjty.vms.user.subject.service.impl;
import com.zjty.vms.user.subject.dao.CarDao;
import com.zjty.vms.user.subject.entity.Car;
import com.zjty.vms.user.subject.service.CarService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-02
*/
@Service
@Slf4j
public class CarServiceImpl implements CarService {
@Autowired
private CarDao carDao;
@Override
public Car findByCarNum(String numberPlate) {
final Optional<Car> topByNumberPlate = carDao.findTopByNumberPlate(numberPlate);
return topByNumberPlate.orElseGet(Car::new);
}
@Override
public List<Car> findByParkingSpace(String parkingSpace) {
final Optional<List<Car>> cars = carDao.findByParkingSpace(parkingSpace);
return cars.orElse(Collections.emptyList());
}
@Override
public List<Car> findByPhone(String tel) {
final Optional<List<Car>> rs = carDao.findByPhone(tel);
return rs.orElse(Collections.emptyList());
}
@Override
public Car saveOne(Car car) {
return carDao.save(car);
}
@Override
public List<Car> saveAll(List<Car> cars) {
return carDao.saveAll(cars);
}
@Override
public void deleteCar(String id) {
carDao.deleteById(id);
}
}
package com.zjty.vms.user.subject.service.impl;
import com.zjty.vms.user.subject.dao.RoleDao;
import com.zjty.vms.user.subject.entity.Role;
import com.zjty.vms.user.subject.service.RoleService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-01
*/
@Service
@Slf4j
public class RoleServiceImpl implements RoleService {
@Autowired
private RoleDao roleDao;
@Override
public Role save(Role role) {
return roleDao.save(role);
}
@Override
public Role getById(Integer roleId) {
Optional<Role> rs = roleDao.findById(roleId);
return rs.orElseGet(Role::new);
}
@Override
public List<Role> findByIds(List<Integer> ids) {
return roleDao.findAllById(ids);
}
}
# server port
server.port=8082
##连接中心数据库数据库mysql
spring.datasource.url=jdbc:mysql://localhost:3306/vms?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=ljj123456
# spring.jpa.properties.hibernate.format_sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=false
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.open-in-view=true
# server port
server.port=8082
##连接中心数据库数据库mysql
spring.datasource.url=jdbc:mysql://localhost:3306/vms?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=ljj123456
# spring.jpa.properties.hibernate.format_sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=false
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.open-in-view=true
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4" />
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>vms</artifactId>
<groupId>com.zjty</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>vms-wechat</artifactId>
<dependencies>
<dependency>
<groupId>com.zjty</groupId>
<artifactId>vms-misc</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.3</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>RELEASE</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.zjty.vms.wechat;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-05-29
*/
@SpringBootApplication(scanBasePackages = {
"com.zjty.vms.misc",
"com.zjty.vms.wechat"
})
@EnableSwagger2
public class WeChatApp {
public static void main(String[] args) {
SpringApplication.run(WeChatApp.class, args);
}
}
package com.zjty.vms.wechat.config;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.TrustStrategy;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
import javax.net.ssl.SSLContext;
import java.security.KeyManagementException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.X509Certificate;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-05-29
*/
@Configuration
public class WeChatRestTemplateConfig {
@Bean
public RestTemplate restTemplate() throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException {
TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true;
SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom()
.loadTrustMaterial(null, acceptingTrustStrategy)
.build();
SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext);
CloseableHttpClient httpClient = HttpClients.custom()
.setSSLSocketFactory(csf)
.build();
HttpComponentsClientHttpRequestFactory requestFactory =
new HttpComponentsClientHttpRequestFactory();
requestFactory.setHttpClient(httpClient);
RestTemplate restTemplate = new RestTemplate(requestFactory);
return restTemplate;
}
}
package com.zjty.vms.wechat.config;
import org.springframework.http.MediaType;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import java.util.ArrayList;
import java.util.List;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-05-29
*/
public class WxMappingJackson2HttpMessageConverter extends MappingJackson2HttpMessageConverter {
public WxMappingJackson2HttpMessageConverter() {
List<MediaType> mediaTypes = new ArrayList<>();
mediaTypes.add(MediaType.TEXT_PLAIN);
// mediaTypes.add(MediaType.TEXT_HTML);
setSupportedMediaTypes(mediaTypes);
}
}
\ No newline at end of file
package com.zjty.vms.wechat.subject.controller;
import com.sun.xml.internal.bind.v2.model.core.ReferencePropertyInfo;
import com.zjty.vms.misc.config.AutoDocument;
import com.zjty.vms.wechat.subject.entity.AuthCodeSession;
import com.zjty.vms.wechat.subject.service.WeChatApiService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-06-01
*/
@RestController
@RequestMapping("/vms")
@AutoDocument
@Api(tags = "微信登陆模块")
public class WeChatController {
@Autowired
private WeChatApiService weChatApiService;
@GetMapping("login")
@ApiOperation(value = "登陆接口")
public ResponseEntity login(@RequestParam(value = "jsCode") String jsCode) {
final AuthCodeSession authCodeSession = weChatApiService.getAuthSession("wx44b039ae19434b36", "1030a6aef6cfe8b5543e5e5ba043dca3", jsCode);
return ResponseEntity.ok(authCodeSession);
}
}
package com.zjty.vms.wechat.subject.entity;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-05-29
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class AccessToken {
@JsonProperty("access_token")
private String accessToken;
@JsonProperty("expires_in")
private String expiresIn;
}
package com.zjty.vms.wechat.subject.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.zjty.vms.misc.config.AutoDocument;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-05-29
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@AutoDocument
@ApiModel(value = "登陆返回对象", description = "登陆返回对象")
public class AuthCodeSession {
@JsonIgnoreProperties("openid")
@ApiModelProperty(value = "小程序用户唯一标识,人员主键id",example = "asdasd")
private String openId;
@JsonIgnoreProperties("session_key")
private String sessionKey;
@JsonIgnoreProperties("unionid")
private String unionId;
@JsonIgnoreProperties("errcode")
private Integer errCode;
@JsonIgnoreProperties("errmsg")
private String errMsg;
}
package com.zjty.vms.wechat.subject.entity;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-05-29
*/
public interface WeChatApiUrl {
String AUTH_CODE_SESSION = "https://api.weixin.qq.com/sns/jscode2session?" +
"appid={appid}&secret={secret}&js_code={js_code}&grant_type={grant_type}";
String GET_ACCESS_TOKEN = "https://api.weixin.qq.com/cgi-bin/token" +
"?grant_type={grant_type}&appid={appid}&secret={secret}";
}
package com.zjty.vms.wechat.subject.service;
import com.zjty.vms.wechat.subject.entity.AccessToken;
import com.zjty.vms.wechat.subject.entity.AuthCodeSession;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-05-29
*/
public interface WeChatApiService {
/**
* 登录凭证校验。通过 wx.login 接口获得临时登录凭证 code 后传到开发者服务器调用此接口完成登录流程。
*
* @param appId 小程序 appId
* @param secret 小程序 appSecret
* @param jsCode 登录时获取的 code
* @return obj
*/
AuthCodeSession getAuthSession(String appId, String secret, String jsCode);
AccessToken getAccessToken(String appId, String secret);
}
package com.zjty.vms.wechat.subject.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.fasterxml.jackson.core.JsonParser;
import com.zjty.vms.wechat.subject.entity.AccessToken;
import com.zjty.vms.wechat.subject.entity.AuthCodeSession;
import com.zjty.vms.wechat.subject.entity.WeChatApiUrl;
import com.zjty.vms.wechat.subject.service.WeChatApiService;
import com.zjty.vms.wechat.config.WxMappingJackson2HttpMessageConverter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author LJJ cnljj1995@gmail.com
* on 2020-05-29
*/
@Service
@Slf4j
public class WeChatApiServiceImpl implements WeChatApiService {
@Override
public AuthCodeSession getAuthSession(String appId, String secret, String jsCode) {
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new WxMappingJackson2HttpMessageConverter());
Map<String, String> pram = new HashMap();
pram.put("appid", appId);
pram.put("secret", secret);
pram.put("js_code", jsCode);
pram.put("grant_type", "authorization_code");
String entity = restTemplate.getForObject(WeChatApiUrl.AUTH_CODE_SESSION, String.class, pram);
AuthCodeSession authCodeSession = JSONObject.parseObject(entity, new TypeReference<AuthCodeSession>() {
});
System.out.println(authCodeSession.toString());
return authCodeSession;
}
@Override
public AccessToken getAccessToken(String appId, String secret) {
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new WxMappingJackson2HttpMessageConverter());
Map<String, String> pram = new HashMap();
pram.put("grant_type", "client_credential");
pram.put("appid", appId);
pram.put("secret", secret);
AccessToken entity = restTemplate.getForObject(WeChatApiUrl.GET_ACCESS_TOKEN, AccessToken.class, pram);
System.out.println(entity.toString());
return entity;
}
public static void main(String[] args) {
WeChatApiServiceImpl weChatApiService = new WeChatApiServiceImpl();
// weChatApiService.getAuthSession("wx44b039ae19434b36",
// "1030a6aef6cfe8b5543e5e5ba043dca3", "033qqa8b2PzIuL0Rf77b2lly8b2qqa8c");
weChatApiService.getAccessToken("wx44b039ae19434b36", "1030a6aef6cfe8b5543e5e5ba043dca3" );
}
}
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4" />
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4" />
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论