<?xml version="1.0" encoding="UTF-8"?> | |||||
<project version="4"> | |||||
<component name="ProjectInspectionProfilesVisibleTreeState"> | |||||
<entry key="Project Default"> | |||||
<profile-state> | |||||
<expanded-state> | |||||
<State /> | |||||
<State> | |||||
<id>Abstraction issuesJava</id> | |||||
</State> | |||||
<State> | |||||
<id>Android</id> | |||||
</State> | |||||
<State> | |||||
<id>Assignment issuesGroovy</id> | |||||
</State> | |||||
<State> | |||||
<id>Assignment issuesJava</id> | |||||
</State> | |||||
<State> | |||||
<id>Assignment issuesJavaScript and TypeScript</id> | |||||
</State> | |||||
<State> | |||||
<id>Async code and promisesJavaScript and TypeScript</id> | |||||
</State> | |||||
<State> | |||||
<id>CSS</id> | |||||
</State> | |||||
<State> | |||||
<id>Chrome OSCorrectnessLintAndroid</id> | |||||
</State> | |||||
<State> | |||||
<id>Class structureJava</id> | |||||
</State> | |||||
<State> | |||||
<id>Code style issuesJava</id> | |||||
</State> | |||||
<State> | |||||
<id>CodePlugin DevKit</id> | |||||
</State> | |||||
<State> | |||||
<id>CodeSpring CoreSpring</id> | |||||
</State> | |||||
<State> | |||||
<id>CoffeeScript</id> | |||||
</State> | |||||
<State> | |||||
<id>CommonReactive Streams</id> | |||||
</State> | |||||
<State> | |||||
<id>CorrectnessLintAndroid</id> | |||||
</State> | |||||
<State> | |||||
<id>Declaration redundancyJava</id> | |||||
</State> | |||||
<State> | |||||
<id>EmbeddedPerformanceJava</id> | |||||
</State> | |||||
<State> | |||||
<id>Error handlingJava</id> | |||||
</State> | |||||
<State> | |||||
<id>General</id> | |||||
</State> | |||||
<State> | |||||
<id>GeneralCoffeeScript</id> | |||||
</State> | |||||
<State> | |||||
<id>GeneralJava</id> | |||||
</State> | |||||
<State> | |||||
<id>GeneralJavaScript and TypeScript</id> | |||||
</State> | |||||
<State> | |||||
<id>Groovy</id> | |||||
</State> | |||||
<State> | |||||
<id>IconsUsabilityLintAndroid</id> | |||||
</State> | |||||
<State> | |||||
<id>InitializationJava</id> | |||||
</State> | |||||
<State> | |||||
<id>Java</id> | |||||
</State> | |||||
<State> | |||||
<id>Java 5Java language level migration aidsJava</id> | |||||
</State> | |||||
<State> | |||||
<id>Java 8Java language level migration aidsJava</id> | |||||
</State> | |||||
<State> | |||||
<id>Java language level migration aidsJava</id> | |||||
</State> | |||||
<State> | |||||
<id>JavaScript and TypeScript</id> | |||||
</State> | |||||
<State> | |||||
<id>JavadocJava</id> | |||||
</State> | |||||
<State> | |||||
<id>Kotlin</id> | |||||
</State> | |||||
<State> | |||||
<id>LintAndroid</id> | |||||
</State> | |||||
<State> | |||||
<id>MessagesCorrectnessLintAndroid</id> | |||||
</State> | |||||
<State> | |||||
<id>Naming conventionsJava</id> | |||||
</State> | |||||
<State> | |||||
<id>OSGi</id> | |||||
</State> | |||||
<State> | |||||
<id>PerformanceJava</id> | |||||
</State> | |||||
<State> | |||||
<id>PerformanceLintAndroid</id> | |||||
</State> | |||||
<State> | |||||
<id>Plugin DevKit</id> | |||||
</State> | |||||
<State> | |||||
<id>PortabilityJava</id> | |||||
</State> | |||||
<State> | |||||
<id>Potentially confusing code constructsGroovy</id> | |||||
</State> | |||||
<State> | |||||
<id>Potentially confusing code constructsJavaScript and TypeScript</id> | |||||
</State> | |||||
<State> | |||||
<id>Probable bugsCSS</id> | |||||
</State> | |||||
<State> | |||||
<id>Probable bugsKotlin</id> | |||||
</State> | |||||
<State> | |||||
<id>Reactive Streams</id> | |||||
</State> | |||||
<State> | |||||
<id>ReactorReactive Streams</id> | |||||
</State> | |||||
<State> | |||||
<id>SQL</id> | |||||
</State> | |||||
<State> | |||||
<id>SecurityJava</id> | |||||
</State> | |||||
<State> | |||||
<id>SecurityLintAndroid</id> | |||||
</State> | |||||
<State> | |||||
<id>Spring</id> | |||||
</State> | |||||
<State> | |||||
<id>Spring BootSpring</id> | |||||
</State> | |||||
<State> | |||||
<id>Spring CoreSpring</id> | |||||
</State> | |||||
<State> | |||||
<id>Spring DataSpring</id> | |||||
</State> | |||||
<State> | |||||
<id>TypeScriptJavaScript and TypeScript</id> | |||||
</State> | |||||
<State> | |||||
<id>UI form</id> | |||||
</State> | |||||
<State> | |||||
<id>UsabilityLintAndroid</id> | |||||
</State> | |||||
<State> | |||||
<id>WebSocket</id> | |||||
</State> | |||||
<State> | |||||
<id>toString() issuesJava</id> | |||||
</State> | |||||
</expanded-state> | |||||
<selected-state> | |||||
<State> | |||||
<id>Android</id> | |||||
</State> | |||||
</selected-state> | |||||
</profile-state> | |||||
</entry> | |||||
</component> | |||||
</project> |
# Default ignored files | |||||
/shelf/ | |||||
/workspace.xml | |||||
# Datasource local storage ignored files | |||||
/dataSources/ | |||||
/dataSources.local.xml | |||||
# Editor-based HTTP Client requests | |||||
/httpRequests/ |
<?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="algorithm-lib" /> | |||||
</profile> | |||||
</annotationProcessing> | |||||
</component> | |||||
</project> |
<?xml version="1.0" encoding="UTF-8"?> | |||||
<project version="4"> | |||||
<component name="Encoding"> | |||||
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" /> | |||||
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" /> | |||||
</component> | |||||
</project> |
<?xml version="1.0" encoding="UTF-8"?> | |||||
<project version="4"> | |||||
<component name="RemoteRepositoriesConfiguration"> | |||||
<remote-repository> | |||||
<option name="id" value="spring-snapshots" /> | |||||
<option name="name" value="spring-snapshots" /> | |||||
<option name="url" value="http://repo.spring.io/libs-snapshot" /> | |||||
</remote-repository> | |||||
<remote-repository> | |||||
<option name="id" value="central" /> | |||||
<option name="name" value="Central Repository" /> | |||||
<option name="url" value="https://repo.maven.apache.org/maven2" /> | |||||
</remote-repository> | |||||
<remote-repository> | |||||
<option name="id" value="central" /> | |||||
<option name="name" value="Maven Central repository" /> | |||||
<option name="url" value="https://repo1.maven.org/maven2" /> | |||||
</remote-repository> | |||||
<remote-repository> | |||||
<option name="id" value="jboss.community" /> | |||||
<option name="name" value="JBoss Community repository" /> | |||||
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" /> | |||||
</remote-repository> | |||||
</component> | |||||
</project> |
<component name="libraryTable"> | |||||
<library name="libMacAlgorithm-aicare"> | |||||
<CLASSES /> | |||||
<JAVADOC /> | |||||
<NATIVE> | |||||
<root url="file://$PROJECT_DIR$/src/main/resources" /> | |||||
</NATIVE> | |||||
<SOURCES /> | |||||
</library> | |||||
</component> |
<component name="libraryTable"> | |||||
<library name="libMacAlgorithm-icomon"> | |||||
<CLASSES /> | |||||
<JAVADOC /> | |||||
<NATIVE> | |||||
<root url="file://$PROJECT_DIR$/src/main/resources" /> | |||||
</NATIVE> | |||||
<SOURCES /> | |||||
</library> | |||||
</component> |
<?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> |
<?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> |
<?xml version="1.0" encoding="UTF-8"?> | |||||
<module type="JAVA_MODULE" version="4" /> |
<?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.elink</groupId> | |||||
<artifactId>algorithm-lib</artifactId> | |||||
<version>1.0</version> | |||||
<packaging>jar</packaging> | |||||
<name>algorithm-lib</name> | |||||
<url>http://maven.apache.org</url> | |||||
<parent> | |||||
<groupId>org.springframework.boot</groupId> | |||||
<artifactId>spring-boot-starter-parent</artifactId> | |||||
<version>1.5.6.RELEASE</version> | |||||
</parent> | |||||
<properties> | |||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | |||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> | |||||
<java.version>1.8</java.version> | |||||
<spring-cloud.version>Dalston.RELEASE</spring-cloud.version> | |||||
</properties> | |||||
<dependencies> | |||||
<dependency> | |||||
<groupId>com.sun.jna</groupId> | |||||
<artifactId>jna</artifactId> | |||||
<version>3.0.9</version> | |||||
</dependency> | |||||
<dependency> | |||||
<groupId>com.alibaba</groupId> | |||||
<artifactId>fastjson</artifactId> | |||||
<version>1.2.59</version> | |||||
</dependency> | |||||
<dependency> | |||||
<groupId>org.springframework.boot</groupId> | |||||
<artifactId>spring-boot-starter-web</artifactId> | |||||
</dependency> | |||||
<dependency> | |||||
<groupId>org.springframework.boot</groupId> | |||||
<artifactId>spring-boot-starter-test</artifactId> | |||||
<scope>test</scope> | |||||
</dependency> | |||||
<dependency> | |||||
<groupId>org.springframework.cloud</groupId> | |||||
<artifactId>spring-cloud-starter-feign</artifactId> | |||||
</dependency> | |||||
</dependencies> | |||||
<dependencyManagement> | |||||
<dependencies> | |||||
<dependency> | |||||
<groupId>org.springframework.cloud</groupId> | |||||
<artifactId>spring-cloud-dependencies</artifactId> | |||||
<version>${spring-cloud.version}</version> | |||||
<type>pom</type> | |||||
<scope>import</scope> | |||||
</dependency> | |||||
</dependencies> | |||||
</dependencyManagement> | |||||
<build> | |||||
<plugins> | |||||
<plugin> | |||||
<groupId>org.springframework.boot</groupId> | |||||
<artifactId>spring-boot-maven-plugin</artifactId> | |||||
<configuration> | |||||
<mainClass>com.elink.aicare.AicareDemoAppApplication</mainClass> | |||||
<layout>JAR</layout> | |||||
</configuration> | |||||
</plugin> | |||||
<plugin> | |||||
<groupId>org.apache.maven.plugins</groupId> | |||||
<artifactId>maven-compiler-plugin</artifactId> | |||||
<configuration> | |||||
<source>8</source> | |||||
<target>8</target> | |||||
</configuration> | |||||
</plugin> | |||||
</plugins> | |||||
<!--打包时将resource下的文件一起打包--> | |||||
<resources> | |||||
<resource> | |||||
<directory>src/main/resources</directory> | |||||
<includes> | |||||
<include>**/**</include> | |||||
</includes> | |||||
<filtering>false</filtering> | |||||
</resource> | |||||
</resources> | |||||
</build> | |||||
<repositories> | |||||
<repository> | |||||
<id>spring-snapshots</id> | |||||
<url>http://repo.spring.io/libs-snapshot</url> | |||||
</repository> | |||||
</repositories> | |||||
<pluginRepositories> | |||||
<pluginRepository> | |||||
<id>spring-snapshots</id> | |||||
<url>http://repo.spring.io/libs-snapshot</url> | |||||
</pluginRepository> | |||||
</pluginRepositories> | |||||
</project> |
package com.elink.aicare; | |||||
import org.springframework.boot.SpringApplication; | |||||
import org.springframework.boot.autoconfigure.SpringBootApplication; | |||||
import org.springframework.cache.annotation.EnableCaching; | |||||
@SpringBootApplication | |||||
@EnableCaching | |||||
public class AicareDemoAppApplication { | |||||
public static void main(String args[]){ | |||||
SpringApplication.run(com.elink.aicare.AicareDemoAppApplication.class, args); | |||||
} | |||||
} |
package com.elink.aicare; | |||||
/** | |||||
* 调用体脂算法动态库 | |||||
*/ | |||||
import com.sun.jna.Library; | |||||
import com.sun.jna.Native; | |||||
public interface BodyFatAlgorithmAicare extends Library { | |||||
String osName = System.getProperty("os.name"); // 获取当前操作系统的类型 | |||||
String rootResource = BodyFatAlgorithmAicare.class.getResource("/").getPath(); | |||||
String libWindows = "/libalgorithm-aicare.dll"; | |||||
String libMacOS = rootResource+ "libMacAlgorithm-aicare.so"; | |||||
//System调用so时,调用了:java.lang.System.mapLibraryName()方法。这个方法会在咱们的给定的名字前拼接上”lib” | |||||
//此种调用方式,linux系统对应的so库,需要放在usr/lib下 | |||||
String liblinux = "algorithm-aicare"; | |||||
//根据不同的操作系统,使用不同的库 | |||||
String libPath = (osName != null && osName.startsWith("Windows")) ? libWindows : ((osName != null && osName.startsWith("Mac")) ? libMacOS : liblinux); | |||||
BodyFatAlgorithmAicare INSTANTCE = (BodyFatAlgorithmAicare) Native.synchronizedLibrary( | |||||
(BodyFatAlgorithmAicare) Native.loadLibrary(libPath, BodyFatAlgorithmAicare.class) | |||||
); | |||||
/** | |||||
* 身高单位换算 CM 换算为 M | |||||
* @param height 身高,单位:CM | |||||
* @return 身高,单位:M | |||||
*/ | |||||
double getHeight(int height); | |||||
/** | |||||
* 计算用户BMI | |||||
* @param weight 用户体重,单位:kg | |||||
* @param height 用户身高,单位:M | |||||
* @return 用户的BMI | |||||
*/ | |||||
double getBMI(double weight, double height); | |||||
/** | |||||
* 计算用户BM | |||||
* @param sex | |||||
* @param bmi | |||||
* @param height | |||||
* @param age | |||||
* @param adc | |||||
* @param weight | |||||
* @return | |||||
*/ | |||||
double getBM(int sex, double bmi, double height, int age, int adc, double weight); | |||||
/** | |||||
* 计算用户ROM | |||||
* @param sex | |||||
* @param weight | |||||
* @param height | |||||
* @param age | |||||
* @param adc | |||||
* @return | |||||
*/ | |||||
double getROM(int sex, double weight, double height, int age, int adc); | |||||
/** | |||||
* 计算用户VMC | |||||
* @param sex | |||||
* @param bmi | |||||
* @param adc | |||||
* @param age | |||||
* @return | |||||
*/ | |||||
double getVWC(int sex, double bmi, int adc, int age); | |||||
/** | |||||
* 计算用户BFR | |||||
* @param sex | |||||
* @param bmi | |||||
* @param adc | |||||
* @param age | |||||
* @return | |||||
*/ | |||||
double getBFR(int sex, double bmi, int adc, int age); | |||||
/** | |||||
* 计算用户SFR | |||||
* @param sex | |||||
* @param age | |||||
* @param bfr | |||||
* @return | |||||
*/ | |||||
double getSFR(int sex, int age, double bfr); | |||||
double getROSM(int age, int sex, double moi, double bfr); | |||||
/** | |||||
* 计算用户PP | |||||
* @param bfr | |||||
* @param moi | |||||
* @param bm | |||||
* @param weight | |||||
* @param age | |||||
* @param sex | |||||
* @return | |||||
*/ | |||||
double getPP(double bfr, double moi, double bm, double weight, int age, int sex); | |||||
/** | |||||
* 计算用户UVI | |||||
* @param sex | |||||
* @param weight | |||||
* @param height | |||||
* @param age | |||||
* @param adc | |||||
* @return | |||||
*/ | |||||
int getUVI(int sex, double weight, double height, int age, int adc); | |||||
/** | |||||
* 计算用户BMR | |||||
* @param sex | |||||
* @param weight | |||||
* @param height | |||||
* @param age | |||||
* @param adc | |||||
* @return | |||||
*/ | |||||
int getBMR(int sex, double weight, double height, int age, int adc); | |||||
/** | |||||
* 计算用户BodyAge | |||||
* @param age | |||||
* @param bmi | |||||
* @param sex | |||||
* @return | |||||
*/ | |||||
int getBodyAge(int age, double bmi, int sex); | |||||
} |
package com.elink.aicare; | |||||
import com.alibaba.fastjson.JSON; | |||||
/** | |||||
* | |||||
*/ | |||||
public class BodyFatAlgorithmUtils { | |||||
public static void main(String args[]){ | |||||
int sex=1; | |||||
int age=24; | |||||
double weight = 60.5; | |||||
int height = 180; | |||||
int adc = 500; | |||||
System.out.println("品网算法"); | |||||
System.out.println(JSON.toJSONString(getBodyFatData(0,sex,age,weight,height,adc))); | |||||
} | |||||
/** | |||||
* 获取基础身体指标 | |||||
* @param algorithmType 身体指标算法类型,可取值:0或1,0:品网算法;1:沃莱算法; | |||||
* ps: 年龄、体重、身高、阻抗的取值范围仅当algorithmType=0时有效,超出取值范围,将返回空; | |||||
* @param sex 性别,可取值:1或2;1:男;2:女 | |||||
* @param age 年龄,单位:年,取值范围:0<=age<=120 | |||||
* @param weight 体重;单位:kg,取值范围:0.0< weight < 220 | |||||
* @param height 身高;单位:cm,取值范围:0< height <=270 | |||||
* @param adc 阻抗;取值范围:0 < adc <= 1000 | |||||
* @return | |||||
*/ | |||||
public static BodyFatData getBodyFatData(int algorithmType,int sex, int age, double weight,int height, int adc){ | |||||
if (age < 0 || age > 120){ | |||||
System.out.println("年龄age取值不正确,取值范围:0<=age<=120 ;单位:年"); | |||||
return null; | |||||
} | |||||
if (weight <= 0.0 && weight > 220.0){ | |||||
System.out.println("体重weight取值不正确,取值范围:0.0< weight < 220 ;单位:kg"); | |||||
return null; | |||||
} | |||||
if (height <= 0 && height > 270){ | |||||
System.out.println("身高height取值不正确,取值范围:0< height <=270 ;单位:cm"); | |||||
return null; | |||||
} | |||||
if (adc < 0 && adc > 1000){ | |||||
System.out.println("阻抗adc取值不正确,取值范围:0 < adc <= 1000"); | |||||
return null; | |||||
} | |||||
return getDataByAicare(sex, age, weight,height, adc); | |||||
} | |||||
private static BodyFatData getDataByAicare(int sex, int age, double weight,int heightCM, int adc){ | |||||
BodyFatAlgorithmAicare bodyFatAlgorithmAicare = BodyFatAlgorithmAicare.INSTANTCE; | |||||
double height = bodyFatAlgorithmAicare.getHeight(heightCM); | |||||
double bmi = bodyFatAlgorithmAicare.getBMI(weight,height); | |||||
double bm = bodyFatAlgorithmAicare.getBM(sex,bmi, height, age, adc, weight); | |||||
double rom = bodyFatAlgorithmAicare.getROM( sex, weight, height, age, adc); | |||||
double vwc = bodyFatAlgorithmAicare.getVWC( sex, bmi, adc, age); | |||||
double bfr = bodyFatAlgorithmAicare.getBFR( sex, bmi, adc, age); | |||||
double sfr = bodyFatAlgorithmAicare.getSFR( sex, age, bfr); | |||||
double rosm = bodyFatAlgorithmAicare.getROSM( age, sex, vwc, bfr); | |||||
double pp = bodyFatAlgorithmAicare.getPP( bfr, vwc, bm, weight, age, sex); | |||||
int uvi = bodyFatAlgorithmAicare.getUVI( sex, weight, height, age, adc); | |||||
int bmr = bodyFatAlgorithmAicare.getBMR( sex, weight, height, age, adc); | |||||
int bodyAge = bodyFatAlgorithmAicare.getBodyAge( age, bmi, sex); | |||||
//处理返回数据 | |||||
BodyFatData fatData = new BodyFatData(); | |||||
fatData.setBmi(bmi); | |||||
fatData.setBfr(Math.round(bfr * 10) / 10.0); | |||||
fatData.setSfr(Math.floor(sfr * 10) / 10); | |||||
fatData.setUvi(uvi); | |||||
fatData.setRom(Math.floor(rom * 10) / 10); | |||||
fatData.setBmr(bmr); | |||||
fatData.setBm(Math.floor(bm * 10) / 10); | |||||
fatData.setVwc(Math.floor(vwc * 10) / 10); | |||||
fatData.setBodyAge(bodyAge); | |||||
fatData.setPp(Math.floor(pp * 10) / 10); | |||||
return fatData; | |||||
} | |||||
} |
package com.elink.aicare; | |||||
public class BodyFatData { | |||||
/** | |||||
* 身体质量指数 | |||||
*/ | |||||
private double bmi; | |||||
/** | |||||
* 体脂率 body fat rate | |||||
*/ | |||||
private double bfr; | |||||
/** | |||||
* 皮下脂肪率 | |||||
*/ | |||||
private double sfr; | |||||
/** | |||||
* 内脏脂肪指数 | |||||
*/ | |||||
private int uvi; | |||||
/** | |||||
* 肌肉率 | |||||
*/ | |||||
private double rom; | |||||
/** | |||||
* 基础代谢率 | |||||
*/ | |||||
private int bmr; | |||||
/** | |||||
* 骨骼质量 | |||||
*/ | |||||
private double bm; | |||||
/** | |||||
* 水含量 | |||||
*/ | |||||
private double vwc; | |||||
/** | |||||
* 身体年龄 | |||||
*/ | |||||
private int bodyAge; | |||||
/** | |||||
* 蛋白率 | |||||
*/ | |||||
private double pp; | |||||
public double getBmi() { | |||||
return bmi; | |||||
} | |||||
public void setBmi(double bmi) { | |||||
this.bmi = bmi; | |||||
} | |||||
public double getBfr() { | |||||
return bfr; | |||||
} | |||||
public void setBfr(double bfr) { | |||||
this.bfr = bfr; | |||||
} | |||||
public double getSfr() { | |||||
return sfr; | |||||
} | |||||
public void setSfr(double sfr) { | |||||
this.sfr = sfr; | |||||
} | |||||
public int getUvi() { | |||||
return uvi; | |||||
} | |||||
public void setUvi(int uvi) { | |||||
this.uvi = uvi; | |||||
} | |||||
public double getRom() { | |||||
return rom; | |||||
} | |||||
public void setRom(double rom) { | |||||
this.rom = rom; | |||||
} | |||||
public int getBmr() { | |||||
return bmr; | |||||
} | |||||
public void setBmr(int bmr) { | |||||
this.bmr = bmr; | |||||
} | |||||
public double getBm() { | |||||
return bm; | |||||
} | |||||
public void setBm(double bm) { | |||||
this.bm = bm; | |||||
} | |||||
public double getVwc() { | |||||
return vwc; | |||||
} | |||||
public void setVwc(double vwc) { | |||||
this.vwc = vwc; | |||||
} | |||||
public int getBodyAge() { | |||||
return bodyAge; | |||||
} | |||||
public void setBodyAge(int bodyAge) { | |||||
this.bodyAge = bodyAge; | |||||
} | |||||
public double getPp() { | |||||
return pp; | |||||
} | |||||
public void setPp(double pp) { | |||||
this.pp = pp; | |||||
} | |||||
} |
package com.elink.aicare; | |||||
import com.alibaba.fastjson.JSON; | |||||
import org.springframework.validation.BindingResult; | |||||
import org.springframework.web.bind.annotation.RequestBody; | |||||
import org.springframework.web.bind.annotation.RequestMapping; | |||||
import org.springframework.web.bind.annotation.RestController; | |||||
import javax.servlet.http.HttpServletRequest; | |||||
@RestController | |||||
@RequestMapping(value="/",produces={"application/json;charset=UTF-8"}) | |||||
public class DemoController { | |||||
/** | |||||
* 获取体脂数据 | |||||
* | |||||
*/ | |||||
@RequestMapping(value = "getBodyFat") | |||||
public Object sendCode(@RequestBody BodyFatData bodyFatData, HttpServletRequest request, BindingResult result) { | |||||
int sex=1; | |||||
int age=24; | |||||
double weight = 60.5; | |||||
int height = 180; | |||||
int adc = 500; | |||||
System.out.println("品网算法"); | |||||
System.out.println(JSON.toJSONString(BodyFatAlgorithmUtils.getBodyFatData(0,sex,age,weight,height,adc))); | |||||
System.out.println("沃莱算法"); | |||||
System.out.println(JSON.toJSONString(BodyFatAlgorithmUtils.getBodyFatData(1,sex,age,weight,height,adc))); | |||||
return bodyFatData; | |||||
} | |||||
} |
spring.application.name=elink-demo | |||||
server.port=8001 | |||||
spring.profiles.active=dev | |||||
#allow upload size | |||||
spring.http.multipart.maxFileSize = 20Mb | |||||
spring.http.multipart.maxRequestSize=100Mb |