Browse Source

1.添加食物接口

slambb 2 years ago
parent
commit
db6af76c68

+ 13 - 0
.idea/libraries/Maven__org_jsoup_jsoup_1_12_1.xml

@@ -0,0 +1,13 @@
+<component name="libraryTable">
+  <library name="Maven: org.jsoup:jsoup:1.12.1">
+    <CLASSES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/jsoup/jsoup/1.12.1/jsoup-1.12.1.jar!/" />
+    </CLASSES>
+    <JAVADOC>
+      <root url="jar://$MAVEN_REPOSITORY$/org/jsoup/jsoup/1.12.1/jsoup-1.12.1-javadoc.jar!/" />
+    </JAVADOC>
+    <SOURCES>
+      <root url="jar://$MAVEN_REPOSITORY$/org/jsoup/jsoup/1.12.1/jsoup-1.12.1-sources.jar!/" />
+    </SOURCES>
+  </library>
+</component>

+ 229 - 0
HeartAppServer.iml

@@ -0,0 +1,229 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
+  <component name="FacetManager">
+    <facet type="Spring" name="Spring">
+      <configuration />
+    </facet>
+    <facet type="web" name="Web">
+      <configuration>
+        <webroots />
+      </configuration>
+    </facet>
+  </component>
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
+    <output url="file://$MODULE_DIR$/target/classes" />
+    <output-test url="file://$MODULE_DIR$/target/test-classes" />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
+      <excludeFolder url="file://$MODULE_DIR$/target" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.springframework.boot:spring-boot-properties-migrator:2.4.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.4.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-context:5.3.4" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.springframework.boot:spring-boot-configuration-metadata:2.4.3" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:2.4.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.4.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.4.3" level="project" />
+    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
+    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
+    <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.27" level="project" />
+    <orderEntry type="library" name="Maven: org.glassfish:jakarta.el:3.0.3" level="project" />
+    <orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:6.1.7.Final" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.validation:jakarta.validation-api:2.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.4.1.Final" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.4.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.4.3" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.4" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.4" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.11.4" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.4.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.43" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.43" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-web:5.3.4" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.3.4" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.3.4" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.3.4" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-devtools:2.4.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.4.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-mail:2.4.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.3.4" level="project" />
+    <orderEntry type="library" name="Maven: com.sun.mail:jakarta.mail:1.6.5" level="project" />
+    <orderEntry type="library" name="Maven: com.sun.activation:jakarta.activation:1.2.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.4.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.4.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.4.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:5.0.4" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.18.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.7.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-api:5.7.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.opentest4j:opentest4j:1.2.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-commons:1.7.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.7.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.7.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.7.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:3.6.28" level="project" />
+    <orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.10.20" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.10.20" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:3.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-junit-jupiter:3.6.28" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-core:5.3.4" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.3.4" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.3.4" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.7.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:2.2" level="project" />
+    <orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.7.22" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:4.1.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:poi:4.1.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
+    <orderEntry type="library" name="Maven: com.zaxxer:SparseBitSet:1.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:4.1.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:3.1.0" level="project" />
+    <orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.06" level="project" />
+    <orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.18" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: mysql:mysql-connector-java:8.0.23" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:2.4.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.4.3" level="project" />
+    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.6" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.4.3" level="project" />
+    <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.3.4" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.transaction:jakarta.transaction-api:1.3.3" level="project" />
+    <orderEntry type="library" name="Maven: jakarta.persistence:jakarta.persistence-api:2.2.3" level="project" />
+    <orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.4.28.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.javassist:javassist:3.27.0-GA" level="project" />
+    <orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
+    <orderEntry type="library" name="Maven: org.jboss:jandex:2.2.3.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.dom4j:dom4j:2.1.3" level="project" />
+    <orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.1.2.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-runtime:2.3.3" level="project" />
+    <orderEntry type="library" name="Maven: org.glassfish.jaxb:txw2:2.3.3" level="project" />
+    <orderEntry type="library" name="Maven: com.sun.istack:istack-commons-runtime:3.0.11" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:2.4.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.4.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-orm:5.3.4" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-tx:5.3.4" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-aspects:5.3.4" level="project" />
+    <orderEntry type="library" name="Maven: com.github.binarywang:weixin-java-miniapp:3.6.0" level="project" />
+    <orderEntry type="library" name="Maven: com.github.binarywang:weixin-java-common:3.6.0" level="project" />
+    <orderEntry type="library" name="Maven: com.thoughtworks.xstream:xstream:1.4.11" level="project" />
+    <orderEntry type="library" name="Maven: xmlpull:xmlpull:1.1.3.1" level="project" />
+    <orderEntry type="library" name="Maven: xpp3:xpp3_min:1.1.4c" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.13" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.30" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.11" level="project" />
+    <orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.59" level="project" />
+    <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.59" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-cache:2.4.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:2.4.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:2.4.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-keyvalue:2.4.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-oxm:5.3.4" level="project" />
+    <orderEntry type="library" name="Maven: io.lettuce:lettuce-core:6.0.2.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-common:4.1.59.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.59.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.59.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.59.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.59.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.59.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.projectreactor:reactor-core:3.4.3" level="project" />
+    <orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.3" level="project" />
+    <orderEntry type="library" name="Maven: com.aliyun.oss:aliyun-sdk-oss:3.8.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.13" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.14" level="project" />
+    <orderEntry type="library" name="Maven: org.jdom:jdom:1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.codehaus.jettison:jettison:1.1" level="project" />
+    <orderEntry type="library" name="Maven: stax:stax-api:1.0.1" level="project" />
+    <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-ram:3.0.0" level="project" />
+    <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-sts:3.0.0" level="project" />
+    <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-ecs:4.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.9.0" level="project" />
+    <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-core:4.1.0" level="project" />
+    <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.6" level="project" />
+    <orderEntry type="library" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" />
+    <orderEntry type="library" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" />
+    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-core:2.1.14" level="project" />
+    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.1" level="project" />
+    <orderEntry type="library" name="Maven: javax.activation:activation:1.1.1" level="project" />
+    <orderEntry type="library" name="Maven: net.coobird:thumbnailator:0.4.8" level="project" />
+    <orderEntry type="library" name="Maven: com.auth0:jwks-rsa:0.9.0" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.4" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.4" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.4" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:guava:27.1-jre" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:failureaccess:1.0.1" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" level="project" />
+    <orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.checkerframework:checker-qual:2.5.2" level="project" />
+    <orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.2.0" level="project" />
+    <orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.codehaus.mojo:animal-sniffer-annotations:1.17" level="project" />
+    <orderEntry type="library" name="Maven: com.github.oshi:oshi-json:3.6.1" level="project" />
+    <orderEntry type="library" name="Maven: com.github.oshi:oshi-core:3.6.1" level="project" />
+    <orderEntry type="library" name="Maven: net.java.dev.jna:jna-platform:4.5.1" level="project" />
+    <orderEntry type="library" name="Maven: net.java.dev.jna:jna:4.5.1" level="project" />
+    <orderEntry type="library" name="Maven: org.threeten:threetenbp:1.3.6" level="project" />
+    <orderEntry type="library" name="Maven: org.glassfish:javax.json:1.0.4" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.30" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.60" level="project" />
+    <orderEntry type="library" name="Maven: com.google.zxing:core:3.3.3" level="project" />
+    <orderEntry type="library" name="Maven: com.google.zxing:javase:3.3.3" level="project" />
+    <orderEntry type="library" name="Maven: com.beust:jcommander:1.72" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.github.jai-imageio:jai-imageio-core:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-security:2.4.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.3.4" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-config:5.4.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-core:5.4.5" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-web:5.4.5" level="project" />
+    <orderEntry type="library" name="Maven: io.jsonwebtoken:jjwt:0.9.1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-thymeleaf:2.4.3" level="project" />
+    <orderEntry type="library" name="Maven: org.thymeleaf:thymeleaf-spring5:3.0.12.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.thymeleaf:thymeleaf:3.0.12.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.attoparser:attoparser:2.0.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.unbescape:unbescape:1.1.6.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.thymeleaf.extras:thymeleaf-extras-java8time:3.0.4.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-freemarker:2.4.3" level="project" />
+    <orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.31" level="project" />
+    <orderEntry type="library" name="Maven: org.webjars:angularjs:1.5.0" level="project" />
+    <orderEntry type="library" name="Maven: org.webjars:angular-translate:2.9.1" level="project" />
+    <orderEntry type="library" name="Maven: org.webjars:ng-file-upload:12.0.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.12" level="project" />
+    <orderEntry type="library" name="Maven: com.github.junrar:junrar:0.7" level="project" />
+    <orderEntry type="library" name="Maven: commons-logging:commons-logging-api:1.1" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-vfs2:2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.maven.scm:maven-scm-api:1.4" level="project" />
+    <orderEntry type="library" name="Maven: org.codehaus.plexus:plexus-utils:1.5.6" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.maven.scm:maven-scm-provider-svnexe:1.4" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.maven.scm:maven-scm-provider-svn-commons:1.4" level="project" />
+    <orderEntry type="library" name="Maven: regexp:regexp:1.3" level="project" />
+    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.13" level="project" />
+    <orderEntry type="library" name="Maven: commons-io:commons-io:2.4" level="project" />
+    <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.8.0" level="project" />
+    <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-websocket:2.4.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-messaging:5.3.4" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-websocket:5.3.4" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.directory.studio:org.apache.commons.codec:1.8" level="project" />
+    <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk16:1.46" level="project" />
+    <orderEntry type="library" name="Maven: org.jsoup:jsoup:1.12.1" level="project" />
+  </component>
+</module>

+ 8 - 0
pom.xml

@@ -294,6 +294,14 @@
 <!--            <artifactId>httpcore</artifactId>-->
 <!--        </dependency>-->
         <!--定制请求跳过ssl证书验证-->
+
+
+        <!--Jsoup解析html-->
+        <dependency>
+            <groupId>org.jsoup</groupId>
+            <artifactId>jsoup</artifactId>
+            <version>1.12.1</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 5 - 1
src/main/java/com/YuyeTech/HeartRate/aspect/AuthorizeFilter.java

@@ -83,7 +83,11 @@ public class AuthorizeFilter implements Filter {
                 /**
                  * 3D视界接口放行
                  */
-                path.indexOf("td") > -1
+                path.indexOf("td") > -1 ||
+                /**
+                 * 食物接口
+                 */
+                path.indexOf("food") > -1
         ) {
             //登录情况直接放行
 //            log.info("********登录情况直接放行********");

+ 1 - 0
src/main/java/com/YuyeTech/HeartRate/config/security/SecurityConfig.java

@@ -59,6 +59,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
         web.ignoring().antMatchers(
                 "/game/**"
                 ,"/tPlat/**"
+                ,"/food/**"
                 ,"/game_websocket/**"
                 ,"/static/**"
                 ,

+ 62 - 0
src/main/java/com/YuyeTech/HeartRate/game/food/controller/FoodController.java

@@ -0,0 +1,62 @@
+package com.YuyeTech.HeartRate.game.food.controller;
+
+import com.YuyeTech.HeartRate.VO.ResultVO;
+import com.YuyeTech.HeartRate.common.controller.*;
+import com.YuyeTech.HeartRate.enums.DeviceEnum;
+import com.YuyeTech.HeartRate.game.bluetoothinfo.projo.BluetoothInfo;
+import com.YuyeTech.HeartRate.game.food.pojo.Food;
+import com.YuyeTech.HeartRate.game.food.vo.FoodSimpleVo;
+import com.YuyeTech.HeartRate.game.food.vo.FoodVo;
+import com.YuyeTech.HeartRate.game.food.service.FoodService;
+import com.YuyeTech.HeartRate.utils.ResultVOUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.jsoup.Jsoup;
+import org.jsoup.nodes.Document;
+import org.jsoup.nodes.Element;
+import org.jsoup.select.Elements;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Slf4j
+@RestController
+@RequestMapping("/food/")
+public class FoodController extends CommonController<FoodVo, Food, Integer> {
+    @Autowired
+    private FoodService foodService;
+
+
+    @GetMapping(value = "/searchFromKeyword")
+    public ResultVO searchFromKeyword(@RequestParam(value = "keyword") String keyword,
+                                    @RequestParam(value = "page" ,defaultValue = "1") Integer page){
+        //1.查询薄荷网数据
+        //2.查询缓存或者数据库数据
+        //3.对比,如果不存在的数据,把薄荷网数据储存到数据库
+        //4.缓存对应存储的数据,多用户冲突查询时候,直接查询缓存
+        //4.返回对应数据
+        // 先查询缓存,缓存没有数据查询数据库
+        //  如果数据库存在数据,返回数据并且放入缓存
+        //2.如果
+        String url = "/food/search?keyword="+keyword+"&page="+page;
+        return  ResultVOUtil.success(foodService.getListFromUrl(url));
+    }
+
+
+    @GetMapping(value = "/searchFromGroup")
+    public ResultVO searchFromGroup(@RequestParam(value = "group") Integer group,
+                                      @RequestParam(value = "page" ,defaultValue = "1") Integer page){
+        //1.查询薄荷网数据
+        //2.查询缓存或者数据库数据
+        //3.对比,如果不存在的数据,把薄荷网数据储存到数据库
+        //4.缓存对应存储的数据,多用户冲突查询时候,直接查询缓存
+        //4.返回对应数据
+        // 先查询缓存,缓存没有数据查询数据库
+        //  如果数据库存在数据,返回数据并且放入缓存
+        //2.如果
+        String url = "/food/group/"+group +"&page="+page;
+        return  ResultVOUtil.success(foodService.getListFromUrl(url));
+    }
+}

+ 37 - 0
src/main/java/com/YuyeTech/HeartRate/game/food/pojo/Food.java

@@ -0,0 +1,37 @@
+package com.YuyeTech.HeartRate.game.food.pojo;
+
+import lombok.Data;
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
+@Entity
+@Table(name = "food")
+@Data
+public class Food implements Serializable {
+    @Id
+    private Integer id;//
+
+    private String title;//食物标题
+
+    private String type;//数据类型
+
+    private String name;//数据名字
+
+    private String iconUrl;//缩略图地址
+
+    private Double kcal;//
+
+    private Double carbohydrate;//碳水化合物
+
+    private Double fat;//脂肪 
+
+    private Double protein;//蛋白质
+
+    private Double cellulose;//纤维素
+
+    private String describe;//描述
+
+    private Date updateTime;//
+
+}

+ 9 - 0
src/main/java/com/YuyeTech/HeartRate/game/food/repository/FoodRepository.java

@@ -0,0 +1,9 @@
+package com.YuyeTech.HeartRate.game.food.repository;
+
+import com.YuyeTech.HeartRate.common.repository.*;
+import com.YuyeTech.HeartRate.game.food.pojo.Food;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface FoodRepository extends CommonRepository<Food, Integer> {
+}

+ 15 - 0
src/main/java/com/YuyeTech/HeartRate/game/food/service/FoodService.java

@@ -0,0 +1,15 @@
+package com.YuyeTech.HeartRate.game.food.service;
+
+import com.YuyeTech.HeartRate.common.service.*;
+import com.YuyeTech.HeartRate.game.food.pojo.Food;
+import com.YuyeTech.HeartRate.game.food.vo.FoodSimpleVo;
+import com.YuyeTech.HeartRate.game.food.vo.FoodVo;
+
+import java.util.List;
+
+public interface FoodService extends CommonService<FoodVo, Food, Integer> {
+
+    Food addFood(Food food);
+
+    List<FoodSimpleVo> getListFromUrl(String url);
+}

+ 118 - 0
src/main/java/com/YuyeTech/HeartRate/game/food/service/FoodServiceImpl.java

@@ -0,0 +1,118 @@
+package com.YuyeTech.HeartRate.game.food.service;
+
+import com.YuyeTech.HeartRate.common.service.*;
+import com.YuyeTech.HeartRate.game.food.pojo.Food;
+import com.YuyeTech.HeartRate.game.food.vo.FoodSimpleVo;
+import com.YuyeTech.HeartRate.game.food.vo.FoodVo;
+import com.YuyeTech.HeartRate.game.food.repository.FoodRepository;
+import lombok.extern.slf4j.Slf4j;
+import org.jsoup.Jsoup;
+import org.jsoup.nodes.Document;
+import org.jsoup.nodes.Element;
+import org.jsoup.select.Elements;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.client.RestTemplate;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import java.util.ArrayList;
+import java.util.List;
+
+@Slf4j
+@Service
+@Transactional
+public class FoodServiceImpl extends CommonServiceImpl<FoodVo, Food, Integer> implements FoodService{
+
+    String domain = "https://www.boohee.com";
+
+    @PersistenceContext
+    private EntityManager em;
+    @Autowired
+    private FoodRepository foodRepository;
+
+    @Override
+    public Food addFood(Food food) {
+        return null;
+    }
+
+    @Override
+    public List<FoodSimpleVo> getListFromUrl(String url) {
+
+        RestTemplate restTemplate = new RestTemplate();
+        String response = restTemplate.getForObject(domain+url, String.class);
+        Document doc = Jsoup.parse(response);
+        Element postList = doc.getElementById("main");
+        Elements postItems  = postList.getElementsByClass("item clearfix");
+        log.info("postList size={}", postItems.size());
+        List<FoodSimpleVo>  foodVoList = new ArrayList<>();
+        for (Element postItem : postItems) {
+            //像jquery选择器一样,获取文章标题元素
+            Elements titleEle = postItem.select(".text-box a");
+            String detailUrl = domain+titleEle.attr("href");
+            log.info("标题:" + titleEle.attr("title"));;
+            log.info("详情地址:" + detailUrl);
+            String src = postItem.select("img").attr("src");
+            log.info("缩略图:" + src);
+            Elements describe = postItem.select(".text-box p");
+            log.info("描述:" + describe.text());
+            log.info("*********************************");
+            String[] hrefs = titleEle.attr("href").split("/");
+            FoodSimpleVo foodVo = new FoodSimpleVo();
+            foodVo.setTitle(titleEle.attr("title"));
+            foodVo.setType(hrefs[1]);
+            foodVo.setName(hrefs[2]);
+            foodVo.setDescribe(describe.text());
+
+
+
+            String detailUrlResponse = restTemplate.getForObject(detailUrl, String.class);
+            Document detailDoc = Jsoup.parse(detailUrlResponse);
+
+            Element detailMain = detailDoc.getElementById("main");
+            Elements detailItems = detailMain.select(".basic-infor li");
+            String iconUrl = detailMain.select("img").attr("src");
+            foodVo.setIconUrl(iconUrl);
+            for (Element _item : detailItems) {
+                //像jquery选择器一样,获取文章标题元素
+                //Elements titleEle = _item.select(".basic-infor li");
+                log.info("b1:" + _item.text().split(":")[0]);
+                log.info("b2:" + _item.text().split(":")[1]);
+                Elements count =  _item.select(".stress");
+                log.info("count:" + count.text() + "K");
+                log.info("*********************************");
+            }
+            Elements infoItems = detailMain.select(".nutr-tag dl").not(".header");
+            Elements ddItems = infoItems.select("dd");
+            for (Element _ddItem : ddItems) {
+                Elements  _name= _ddItem.select(".dt");
+                Elements  _num= _ddItem.select(".dd");
+                log.info(_name.text() +" = "+_num.text());
+                double _value = 0;
+                try {
+                    _value = Double.parseDouble(_num.text());
+                } catch (Exception e) {
+                    _value = 0;
+                }
+
+                if(_name.text().indexOf("热量")>-1){
+                    foodVo.setKcal(_value);
+                }else if(_name.text().indexOf("碳水化合物")>-1){
+                    foodVo.setCarbohydrate(_value);
+                }else if(_name.text().indexOf("脂肪")>-1){
+                    foodVo.setFat(_value);
+                }else if(_name.text().indexOf("蛋白质")>-1){
+                    foodVo.setProtein(_value);
+                }else if(_name.text().indexOf("纤维素")>-1){
+                    foodVo.setCellulose(_value);
+                }
+            }
+            log.info("*********************************");
+
+            foodVoList.add(foodVo);
+        }
+
+        return foodVoList;
+    }
+}

+ 33 - 0
src/main/java/com/YuyeTech/HeartRate/game/food/vo/FoodSimpleVo.java

@@ -0,0 +1,33 @@
+package com.YuyeTech.HeartRate.game.food.vo;
+
+import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class FoodSimpleVo implements Serializable {
+    private Integer id;//
+
+    private String title;//食物标题
+
+    private String type;//数据类型
+
+    private String name;//数据名字
+
+    private String iconUrl;//缩略图地址
+
+    private Double kcal;//
+
+    private Double carbohydrate;//碳水化合物
+
+    private Double fat;//脂肪 
+
+    private Double protein;//蛋白质
+
+    private Double cellulose;//纤维素
+
+    private String describe;//描述
+
+    private Date updateTime;//
+
+}

+ 34 - 0
src/main/java/com/YuyeTech/HeartRate/game/food/vo/FoodVo.java

@@ -0,0 +1,34 @@
+package com.YuyeTech.HeartRate.game.food.vo;
+
+import com.YuyeTech.HeartRate. common.pojo.PageCondition;import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class FoodVo extends PageCondition implements Serializable {
+    private Integer id;//
+
+    private String title;//食物标题
+
+    private String type;//数据类型
+
+    private String name;//数据名字
+
+
+    private String iconUrl;//缩略图地址
+
+    private Double kcal;//
+
+    private Double carbohydrate;//碳水化合物
+
+    private Double fat;//脂肪 
+
+    private Double protein;//蛋白质
+
+    private Double cellulose;//纤维素
+
+    private String describe;//描述
+
+    private Date updateTime;//
+
+}

+ 9 - 9
src/main/java/com/YuyeTech/HeartRate/utils/CodeDOM.java

@@ -20,17 +20,17 @@ public class CodeDOM {
      */
     private CodeDOM(String tableName) {
         this.tableName = tableName;
-        basePackage_ = "com\\YuyeTech\\TPlat\\game\\";
+        basePackage_ = "com\\YuyeTech\\HeartRate\\game\\";
         package_ = basePackage_ + StringUtil.camelCaseName(tableName) + "\\";
         //System.getProperty("user.dir") 获取的是项目所在路径,如果我们是子项目,则需要添加一层路径
         basePath = System.getProperty("user.dir") + "\\src\\main\\java\\" + package_;
-        basePackage_ = "com\\YuyeTech\\TPlat\\";
+        basePackage_ = "com\\YuyeTech\\HeartRate\\";
     }
 
     /**
      * 数据连接相关
      */
-    private static final String URL = "jdbc:mysql://42.192.165.168:3306/tplattest?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&useSSL=false&serverTimezone=GMT%2b8";
+    private static final String URL = "jdbc:mysql://42.192.165.168:3306/HeartRateBand?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&useSSL=false&serverTimezone=GMT%2b8";
     private static final String USERNAME = "root";
     private static final String PASSWORD = "9ab8fad748dead93";
     private static final String DRIVER_CLASSNAME = "com.mysql.jdbc.Driver";
@@ -240,7 +240,7 @@ public class CodeDOM {
                         "import org.springframework.web.bind.annotation.*;\n" +
                         "\n" +
                         "@RestController\n" +
-                        "@RequestMapping(\"/tPlat/" + StringUtil.camelCaseName(tableName) + "/\")\n" +
+                        "@RequestMapping(\"/" + StringUtil.camelCaseName(tableName) + "/\")\n" +
                         "public class " + StringUtil.captureName(StringUtil.camelCaseName(tableName)) + "Controller extends CommonController<" + StringUtil.captureName(StringUtil.camelCaseName(tableName)) + "Vo, " + StringUtil.captureName(StringUtil.camelCaseName(tableName)) + ", " + t + "> {"
         );
         stringBuffer.append("\n");
@@ -550,10 +550,10 @@ public class CodeDOM {
     }
 
     public static void main(String[] args) {
-        String[] tables = {"user_delete_log"};
-        for (String table : tables) {
-            String msg = new CodeDOM(table).create();
-            System.out.println(msg);
-        }
+        //String[] tables = {"food"};
+        //for (String table : tables) {
+        //    String msg = new CodeDOM(table).create();
+        //    System.out.println(msg);
+        //}
     }
 }