This commit is contained in:
zhaolizhi
2018-10-06 13:20:26 +08:00
parent 80869c4c7f
commit 1ea891f765
5 changed files with 132 additions and 25 deletions

View File

@@ -166,7 +166,36 @@
* 功效搜菜 `getMenuClassification`传入分类(功效)参数,比如川菜.搜到所有的川菜名字.然后可以用菜名搜索搜某个菜的详细信息
* **营养量搜菜 : 搜索某个营养量范围内的菜**
* 营养量搜菜 : 搜索某个营养量范围内的菜
可选参数: `[calorie,carbohydrate,fat ,protein,cellulose,vitaminA,vitaminB1,vitaminB2,vitaminB6,vitaminC,vitaminE,carotene,cholesterol,Mg,Ca,Fe,Zn,Cu,Mn,K ,P ,Na,Se,niacin ,thiamine]`
```java
public static void main(String[] args) {
//首先构造一个Map, key是参数的名字,value是参数的值.用不到的参数不用写.
//我在服务器端根据这些参数构造一个sql,就是 ... WHERE key1 <= val1 AND ...这样的.
//所以你只传入需要作为搜索条件的参数就可以了.
Map<String, Double> params = new HashMap<>();
params.put("calorie", 100.0);
params.put("fat", 10.0);
WebUtil.getInstance().getMenusByElements(params, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String json = response.body().string();
System.out.println(json);
//用轻量级的菜单类MenuLight解析json,这个类只有Menu的[名字,卡路里,元素对象的主码id]这三个域.想获取详细信息可以用getMenu方法获取
//这样是为了查询更快
FoodMenuLight[] foodMenuLights = new Gson().fromJson(json, FoodMenuLight[].class);
System.out.println(Arrays.toString(foodMenuLights));
}
});
}
```
* **季节搜菜**

View File

@@ -0,0 +1,47 @@
package com.example.ninefourone.nutritionmaster.bean;
public class FoodMenuLight {
/**
* name : 番茄虾仁
* calorie : 20
* elements : 2953
*/
private String name;
private double calorie;
private int elements;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getCalorie() {
return calorie;
}
public void setCalorie(int calorie) {
this.calorie = calorie;
}
public double getElements() {
return elements;
}
public void setElements(int elements) {
this.elements = elements;
}
@Override
public String toString() {
return "FoodMenuLight{" +
"name='" + name + '\'' +
", calorie=" + calorie +
", elements=" + elements +
'}';
}
}

View File

@@ -47,7 +47,7 @@ public class MyUser {
private Integer height;
private Integer weight;
private Integer bmi;
private Object occupation_name;
private String occupation_name;
private List<?> groups;
private List<?> user_permissions;
private List<?> illness;
@@ -100,8 +100,8 @@ public class MyUser {
return physical_name;
}
public void setPhysique(Physique physique) {
this.physique = physique;
public void setPhysical_name(String physical_name) {
this.physical_name = physical_name;
}
public String getPassword() {
@@ -224,11 +224,11 @@ public class MyUser {
this.bmi = bmi;
}
public Object getOccupation_name() {
public String getOccupation_name() {
return occupation_name;
}
public void setOccupation_name(Object occupation_name) {
public void setOccupation_name(String occupation_name) {
this.occupation_name = occupation_name;
}

View File

@@ -12,7 +12,7 @@ public class Occupation {
private String occupation_name;
private ElementsBean elements;
private float bmi_classification;
private int bmi_classification;
private List<String> menuclassification_set;
public String getOccupation_name() {
@@ -31,11 +31,11 @@ public class Occupation {
this.elements = elements;
}
public float getBmi_classification() {
public int getBmi_classification() {
return bmi_classification;
}
public void setBmi_classification(float bmi_classification) {
public void setBmi_classification(int bmi_classification) {
this.bmi_classification = bmi_classification;
}
@@ -354,4 +354,4 @@ public class Occupation {
", menuclassification_set=" + menuclassification_set +
'}';
}
}
}

View File

@@ -1,17 +1,14 @@
package com.example.ninefourone.nutritionmaster.utils;
import com.google.gson.Gson;
import com.sun.istack.internal.Nullable;
import com.example.ninefourone.nutritionmaster.bean.Occupation;
import com.google.gson.Gson;
import com.orhanobut.logger.Logger;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import model.FoodMenuLight;
import model.MyUser;
import okhttp3.Call;
import okhttp3.Callback;
@@ -65,7 +62,7 @@ public class WebUtil {
* @param callback
*/
public void getRandomMenus(int count, Callback callback) {
Request request = new Request.Builder().url("http://127.0.0.1:8000/menus/get_random_menus/?count=" + String.valueOf(count)).build();
Request request = new Request.Builder().url("http://120.77.182.38/menus/get_random_menus/?count=" + String.valueOf(count)).build();
mClient.newCall(request).enqueue(callback);
}
@@ -76,7 +73,7 @@ public class WebUtil {
* @param callback
*/
public void getRandomTricks(int count, Callback callback) {
Request request = new Request.Builder().url("http://127.0.0.1:8000/trick/get_random_tricks/?count=" + String.valueOf(count)).build();
Request request = new Request.Builder().url("http://120.77.182.38/trick/get_random_tricks/?count=" + String.valueOf(count)).build();
mClient.newCall(request).enqueue(callback);
}
@@ -152,12 +149,6 @@ public class WebUtil {
mClient.newCall(request).enqueue(callback);
}
public static void getAllOccupations(Callback callback) {
OkHttpClient mClient = new OkHttpClient();
Request request = new Request.Builder().url("http://120.77.182.38/occupation/").build();
mClient.newCall(request).enqueue(callback);
}
/**
* 获取体质需要的食材
* {
@@ -396,8 +387,48 @@ public class WebUtil {
mClient.newCall(request).enqueue(callback);
}
/**
* 返回符合元素信息的menus
* @param elements
*/
public void getMenusByElements(Map<String, Double> elements,Callback callback) {
String url = "http://120.77.182.38/menus/get_menus_by_elements/";
FormBody.Builder builder = new FormBody.Builder();
//构造RequestBody参数
for (Map.Entry<String, Double> entry : elements.entrySet()) {
String key = entry.getKey();
double value = entry.getValue();
builder.add(key, String.valueOf(value));
}
RequestBody formBody = builder.build();
Request request = new Request.Builder()
.url(url)
.post(formBody)
.build();
mClient.newCall(request).enqueue(callback);
}
public static void main(String[] args) {
Map<String, Double> params = new HashMap<>();
params.put("calorie", 100.0);
params.put("fat", 10.0);
WebUtil.getInstance().getMenusByElements(params, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String json = response.body().string();
System.out.println(json);
//轻量级的Menu,只有Menu的名字,卡路里,元素对象的主码id.想获取详细信息可以用getMenu方法获取
//这样是为了查询更快
FoodMenuLight[] foodMenuLights = new Gson().fromJson(json, FoodMenuLight[].class);
System.out.println(Arrays.toString(foodMenuLights));
}
});
/*
MyUser testUser = new MyUser();
testUser.setUsername("test6");