Merge branch 'develop' into wangtianrui
This commit is contained in:
31
README.md
31
README.md
@@ -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));
|
||||
}
|
||||
});
|
||||
}
|
||||
```
|
||||
|
||||
* **季节搜菜**
|
||||
|
||||
|
||||
@@ -126,7 +126,8 @@ public class NutritionMaster extends Application {
|
||||
*/
|
||||
private void initOccupations() {
|
||||
|
||||
WebUtil.getAllOccupations(new Callback() {
|
||||
WebUtil webUtil = WebUtil.getInstance();
|
||||
webUtil.getAllOccupations(new Callback() {
|
||||
@Override
|
||||
public void onFailure(Call call, IOException e) {
|
||||
e.printStackTrace();
|
||||
|
||||
@@ -28,7 +28,7 @@ public abstract class BaseActivity extends AppCompatActivity {
|
||||
setContentView(getLayoutId());
|
||||
unbinder = ButterKnife.bind(this);
|
||||
initViews(savedInstanceState);
|
||||
webUtil = new WebUtil();
|
||||
webUtil = WebUtil.getInstance();
|
||||
initToolBar();
|
||||
}
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ public abstract class BaseFragment extends Fragment {
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
unbinder = ButterKnife.bind(this, view);
|
||||
initView(savedInstanceState);
|
||||
webUtil = new WebUtil();
|
||||
webUtil = WebUtil.getInstance();
|
||||
this.user = NutritionMaster.user;
|
||||
}
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ public class ClassifyResult implements Serializable {
|
||||
|
||||
|
||||
public void getMenu() {
|
||||
WebUtil webUtil = new WebUtil();
|
||||
WebUtil webUtil = WebUtil.getInstance();
|
||||
webUtil.getMenu("素红烧肉", new Callback() {
|
||||
@Override
|
||||
public void onFailure(Call call, IOException e) {
|
||||
|
||||
@@ -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 +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
@@ -230,7 +230,7 @@ public class MyUser {
|
||||
}
|
||||
|
||||
public String getOccupation_name() {
|
||||
return occupation_name+"";
|
||||
return occupation_name;
|
||||
}
|
||||
|
||||
public void setOccupation_name(String occupation_name) {
|
||||
|
||||
@@ -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 +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -133,11 +133,6 @@ public class RecommendFragment extends BaseFragment {
|
||||
int flag = indexs[i % 4];
|
||||
RecommendFood recommendFood = new RecommendFood(1, "烧肉", "好吃", flag);
|
||||
datas.add(recommendFood);
|
||||
// if (flag == 2) {
|
||||
//
|
||||
// } else {
|
||||
//
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,12 +143,14 @@ public class RecommendFragment extends BaseFragment {
|
||||
// Logger.d("加载数据");
|
||||
for (int i = 0; i < 7; i++) {
|
||||
int flag = indexs[i % 4];
|
||||
if (flag == 2) {
|
||||
|
||||
} else {
|
||||
RecommendFood recommendFood = new RecommendFood(1, "烧肉", "好吃", flag);
|
||||
adapter.getData().add(recommendFood);
|
||||
}
|
||||
RecommendFood recommendFood = new RecommendFood(1, "烧肉", "好吃", flag);
|
||||
adapter.getData().add(recommendFood);
|
||||
// if (flag == 2) {
|
||||
//
|
||||
// } else {
|
||||
// RecommendFood recommendFood = new RecommendFood(1, "烧肉", "好吃", flag);
|
||||
// adapter.getData().add(recommendFood);
|
||||
// }
|
||||
}
|
||||
adapter.loadMoreComplete();
|
||||
}
|
||||
|
||||
@@ -1,16 +1,13 @@
|
||||
package com.example.ninefourone.nutritionmaster.utils;
|
||||
|
||||
import com.example.ninefourone.nutritionmaster.bean.FoodMenuLight;
|
||||
import com.example.ninefourone.nutritionmaster.bean.MyUser;
|
||||
import com.google.gson.Gson;
|
||||
|
||||
|
||||
import com.example.ninefourone.nutritionmaster.bean.Occupation;
|
||||
import com.google.gson.Gson;
|
||||
import com.orhanobut.logger.Logger;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.DataOutputStream;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.OutputStream;
|
||||
import java.io.StringWriter;
|
||||
@@ -24,8 +21,11 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
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 okhttp3.Call;
|
||||
import okhttp3.Callback;
|
||||
@@ -39,7 +39,7 @@ public class WebUtil {
|
||||
private static WebUtil instance = new WebUtil();
|
||||
private OkHttpClient mClient = new OkHttpClient();
|
||||
|
||||
public WebUtil() {
|
||||
private WebUtil() {
|
||||
}
|
||||
|
||||
public static WebUtil getInstance() {
|
||||
@@ -72,6 +72,7 @@ public class WebUtil {
|
||||
mClient.newCall(request).enqueue(callback);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取count个随机菜谱,在回调中解析为一个Menu数组
|
||||
*
|
||||
@@ -79,7 +80,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);
|
||||
}
|
||||
|
||||
@@ -90,7 +91,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);
|
||||
}
|
||||
|
||||
@@ -165,13 +166,11 @@ public class WebUtil {
|
||||
Request request = new Request.Builder().url("http://120.77.182.38/occupation/" + occupationName + "/").build();
|
||||
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);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取体质需要的食材
|
||||
* {
|
||||
@@ -303,24 +302,26 @@ public class WebUtil {
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
/**
|
||||
public static void changeUserIllness(String username, String[] illnesses, Callback callback) {
|
||||
String url = "http://120.77.182.38/myuser/" + username + "/";
|
||||
|
||||
FormBody.Builder builder = new FormBody.Builder();
|
||||
for (String illness : illnesses) {
|
||||
builder.add("illness", illness);
|
||||
}
|
||||
RequestBody formBody = builder.build();
|
||||
|
||||
Request request = new Request.Builder()
|
||||
.url(url)
|
||||
.patch(formBody)
|
||||
.build();
|
||||
|
||||
OkHttpClient mClient = new OkHttpClient();
|
||||
mClient.newCall(request).enqueue(callback);
|
||||
}*/
|
||||
* public static void changeUserIllness(String username, String[] illnesses, Callback callback) {
|
||||
* String url = "http://120.77.182.38/myuser/" + username + "/";
|
||||
* <p>
|
||||
* FormBody.Builder builder = new FormBody.Builder();
|
||||
* for (String illness : illnesses) {
|
||||
* builder.add("illness", illness);
|
||||
* }
|
||||
* RequestBody formBody = builder.build();
|
||||
* <p>
|
||||
* Request request = new Request.Builder()
|
||||
* .url(url)
|
||||
* .patch(formBody)
|
||||
* .build();
|
||||
* <p>
|
||||
* OkHttpClient mClient = new OkHttpClient();
|
||||
* mClient.newCall(request).enqueue(callback);
|
||||
* }
|
||||
*/
|
||||
private static RequestBody buildUserRequestBody(MyUser user) {
|
||||
try {
|
||||
FormBody.Builder builder = new FormBody.Builder();
|
||||
@@ -331,7 +332,7 @@ public class WebUtil {
|
||||
String fieldName = f.toString().substring(f.toString().lastIndexOf(".") + 1);
|
||||
f.setAccessible(true);
|
||||
Object object = f.get(user);//获取属性的值
|
||||
if (object != null ) {
|
||||
if (object != null) {
|
||||
//illness属性是一个list,需要加入每个list的值,而不是list对象
|
||||
if (fieldName.equals("illness")) {
|
||||
List<String> illnessList = (List<String>) object;
|
||||
@@ -394,10 +395,11 @@ public class WebUtil {
|
||||
/**
|
||||
* 用户吃了一个菜,更新用户本周已吃摄入的营养元素的量
|
||||
* 返回当前user的最新信息,用MyUser类解析json
|
||||
*
|
||||
* @param username
|
||||
* @param menuName
|
||||
*/
|
||||
public void eatenMenu(String username, String menuName,Callback callback) {
|
||||
public void eatenMenu(String username, String menuName, Callback callback) {
|
||||
String url = "http://120.77.182.38/myuser/eaten_menu/";
|
||||
RequestBody formBody = new FormBody.Builder()
|
||||
.add("username", username)
|
||||
@@ -410,6 +412,27 @@ 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 String HttpPost(String requestUrl, String accessToken, String params) throws Exception {
|
||||
System.out.println(params);
|
||||
@@ -460,6 +483,26 @@ public class WebUtil {
|
||||
}
|
||||
|
||||
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");
|
||||
|
||||
Reference in New Issue
Block a user