utils
This commit is contained in:
60
README.md
60
README.md
@@ -123,15 +123,61 @@
|
||||
|
||||
赵:
|
||||
|
||||
* 体质表: 添加几列对某种物质的需求
|
||||
* 职业表: 添加几列对某种物质的需求,添加一列BMI的需求
|
||||
* user表: 添加综合对物质的需求
|
||||
* 体质表: 添加几列对某种物质的需求 √
|
||||
|
||||
* 职业表: 添加几列对某种物质的需求,添加一列BMI的需求 √
|
||||
|
||||
* user表: 添加综合对物质的需求 √
|
||||
|
||||
* 菜单表:
|
||||
* 添加一列早/午晚餐,早为1,else为0. 根据 饼 粥 羹 面 奶 判断
|
||||
* 补充一下缺失的url,卡路里
|
||||
* 添加几列各种物质的需求
|
||||
* **添加一列早/午晚餐,早为1,else为0. 根据 饼 粥 羹 面 奶 判断**
|
||||
* 补充一下缺失的url,卡路里 √
|
||||
* 添加几列各种物质的需求 √
|
||||
* 有一部分数据是爬下的csv里面直接读取,一部分缺失的用food_material的组合来计算
|
||||
|
||||
* **对接任务**: 接口使用方法可以参尻main函数里面的注释和数据库ER图
|
||||
|
||||
* WebUtil改成了单例,一些方法注意一下
|
||||
|
||||
* 注册: `createUser`.注意年龄应该让用户填出生年,获取年龄时每次都根据年份计算一下
|
||||
|
||||
* 直接set设置用户的各种信息,不需要的就空着不用set,特殊的一点是病有多个值,要用一个List
|
||||
|
||||

|
||||
|
||||
* 修改用户信息 `changeUserInfo`,注意username必须设置,其他的是需要改的值.**修改会覆盖之前的内容**.比如用户之前illness是健忘食谱,想增加一个高血压食谱, 就需要把之前的也写上,就是一起传 `健忘食谱,高血压食谱`这两个参数.写到List里面. 具体参考main函数里面的
|
||||
|
||||
* 获取九体信息 `getPhysique`方法
|
||||
|
||||
* 获取用户营养元素所需的量: 先`getUser`获取到用户的病/职业/体质名字,然后根据这些名字查询每个 病/职业/体质信息对应的元素需求,最后加权计算 (这里是不是麻烦了点?)
|
||||
|
||||
* 用户职业BMI分类 3多动,2中等,1少动 先 `getUser`获取到用户的职业名字.然后`getOccupation`获取到该职业的BMI分类
|
||||
|
||||
* 动态改变用户已吃的营养元素的量: 在用户表添加element参数,每周清空一次,每吃一个菜就记录一下
|
||||
|
||||
* 获取用户本周已摄入的营养元素的量: `getUser`得到当前用户的信息,解析后用`MyUser`的`getEaten_elements()`获取到Element对象.里面有各种元素信息
|
||||
* 每吃一个菜就post一下
|
||||
|
||||

|
||||
|
||||
* **用户的浏览历史: 添加用户和菜谱的多对多关系**
|
||||
|
||||
* 菜名搜索: `getMenu`方法,传入菜名(菜名通过其他的各种关联方式获取) (menu.calorie是直接爬到的卡路里值,营养元素里的menu.elements.calorie卡路里是根据每个食材的卡路里计算的,相对来说,menu.calorie的值更准确)
|
||||
|
||||
* 功效搜菜 `getMenuClassification`传入分类(功效)参数,比如川菜.搜到所有的川菜名字.然后可以用菜名搜索搜某个菜的详细信息
|
||||
|
||||
* **营养量搜菜 : 搜索某个营养量范围内的菜**
|
||||
|
||||
* **季节搜菜**
|
||||
|
||||
* 小知识获取 : `getRandomTricks`
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
#### 又想到的补充内容
|
||||
@@ -141,7 +187,7 @@
|
||||
|
||||
### 数据库设计
|
||||
|
||||

|
||||

|
||||
|
||||
**加下划线为主码,加粗为外码,默认not null**
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.example.ninefourone.nutritionmaster.bean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
public class Illness {
|
||||
|
||||
/**
|
||||
@@ -29,6 +28,14 @@ public class Illness {
|
||||
this.elements = elements;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Illness{" +
|
||||
"menu_classification=" + menu_classification +
|
||||
", elements=" + elements +
|
||||
'}';
|
||||
}
|
||||
|
||||
public static class MenuClassificationBean {
|
||||
/**
|
||||
* classification : 青少年食谱
|
||||
|
||||
@@ -5,40 +5,80 @@ import java.util.List;
|
||||
public class MyUser {
|
||||
|
||||
/**
|
||||
* id : 7
|
||||
* physical_name : 平和质
|
||||
* password : password
|
||||
* id : 2
|
||||
* eaten_elements : {"id":12127,"calorie":1046,"carbohydrate":33.56923076923077,"fat":17.138461538461538,"protein":13.492307692307692,"cellulose":5.723076923076923,"vitaminA":16.307692307692307,"vitaminB1":0,"vitaminB2":0.16,"vitaminB6":0,"vitaminC":9.692307692307692,"vitaminE":7.483076923076923,"carotene":84.61538461538461,"cholesterol":29.692307692307693,"Mg":116.61538461538461,"Ca":230.76923076923077,"Fe":7.523076923076923,"Zn":1.209230769230769,"Cu":0.4138461538461539,"Mn":1.5138461538461538,"K":285.6923076923077,"P":92,"Na":15580.876923076923,"Se":7.636923076923078,"niacin":1.169230769230769,"thiamine":0.06307692307692307}
|
||||
* physical_name : 瘀血质
|
||||
* password : updata
|
||||
* last_login : null
|
||||
* is_superuser : false
|
||||
* username : okhttptest
|
||||
* username : updatatest
|
||||
* first_name :
|
||||
* last_name :
|
||||
* email :
|
||||
* is_staff : false
|
||||
* is_active : false
|
||||
* date_joined : 2018-09-24T15:13:09.298590+08:00
|
||||
* date_joined : 2018-09-16T20:21:40.466423+08:00
|
||||
* sex : 1
|
||||
* occupation_name : 程序员
|
||||
* age : 0
|
||||
* height : 0
|
||||
* weight : 0
|
||||
* bmi : -1
|
||||
* occupation_name : null
|
||||
* groups : []
|
||||
* user_permissions : []
|
||||
* illness : []
|
||||
*/
|
||||
|
||||
private int id;
|
||||
private Integer id;
|
||||
private EatenElementsBean eaten_elements;
|
||||
private String physical_name;
|
||||
private String password;
|
||||
private Object last_login;
|
||||
private boolean is_superuser;
|
||||
private Boolean is_superuser;
|
||||
private String username;
|
||||
private String first_name;
|
||||
private String last_name;
|
||||
private String email;
|
||||
private boolean is_staff;
|
||||
private boolean is_active;
|
||||
private Boolean is_staff;
|
||||
private Boolean is_active;
|
||||
private String date_joined;
|
||||
private int sex;
|
||||
private String occupation_name;
|
||||
private Integer sex;
|
||||
private Integer age;
|
||||
private Integer height;
|
||||
private Integer weight;
|
||||
private Integer bmi;
|
||||
private Object occupation_name;
|
||||
private List<?> groups;
|
||||
private List<?> user_permissions;
|
||||
private List<?> illness;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "MyUser{" +
|
||||
"id=" + id +
|
||||
", eaten_elements=" + eaten_elements +
|
||||
", physical_name='" + physical_name + '\'' +
|
||||
", password='" + password + '\'' +
|
||||
", last_login=" + last_login +
|
||||
", is_superuser=" + is_superuser +
|
||||
", username='" + username + '\'' +
|
||||
", first_name='" + first_name + '\'' +
|
||||
", last_name='" + last_name + '\'' +
|
||||
", email='" + email + '\'' +
|
||||
", is_staff=" + is_staff +
|
||||
", is_active=" + is_active +
|
||||
", date_joined='" + date_joined + '\'' +
|
||||
", sex=" + sex +
|
||||
", age=" + age +
|
||||
", height=" + height +
|
||||
", weight=" + weight +
|
||||
", bmi=" + bmi +
|
||||
", occupation_name=" + occupation_name +
|
||||
", groups=" + groups +
|
||||
", user_permissions=" + user_permissions +
|
||||
", illness=" + illness +
|
||||
'}';
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
@@ -48,6 +88,14 @@ public class MyUser {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public EatenElementsBean getEaten_elements() {
|
||||
return eaten_elements;
|
||||
}
|
||||
|
||||
public void setEaten_elements(EatenElementsBean eaten_elements) {
|
||||
this.eaten_elements = eaten_elements;
|
||||
}
|
||||
|
||||
public String getPhysical_name() {
|
||||
return physical_name;
|
||||
}
|
||||
@@ -144,11 +192,43 @@ public class MyUser {
|
||||
this.sex = sex;
|
||||
}
|
||||
|
||||
public String getOccupation_name() {
|
||||
public int getAge() {
|
||||
return age;
|
||||
}
|
||||
|
||||
public void setAge(int age) {
|
||||
this.age = age;
|
||||
}
|
||||
|
||||
public int getHeight() {
|
||||
return height;
|
||||
}
|
||||
|
||||
public void setHeight(int height) {
|
||||
this.height = height;
|
||||
}
|
||||
|
||||
public int getWeight() {
|
||||
return weight;
|
||||
}
|
||||
|
||||
public void setWeight(int weight) {
|
||||
this.weight = weight;
|
||||
}
|
||||
|
||||
public int getBmi() {
|
||||
return bmi;
|
||||
}
|
||||
|
||||
public void setBmi(int bmi) {
|
||||
this.bmi = bmi;
|
||||
}
|
||||
|
||||
public Object getOccupation_name() {
|
||||
return occupation_name;
|
||||
}
|
||||
|
||||
public void setOccupation_name(String occupation_name) {
|
||||
public void setOccupation_name(Object occupation_name) {
|
||||
this.occupation_name = occupation_name;
|
||||
}
|
||||
|
||||
@@ -168,25 +248,309 @@ public class MyUser {
|
||||
this.user_permissions = user_permissions;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "MyUser{" +
|
||||
"id=" + id +
|
||||
", physical_name='" + physical_name + '\'' +
|
||||
", password='" + password + '\'' +
|
||||
", last_login=" + last_login +
|
||||
", is_superuser=" + is_superuser +
|
||||
", username='" + username + '\'' +
|
||||
", first_name='" + first_name + '\'' +
|
||||
", last_name='" + last_name + '\'' +
|
||||
", email='" + email + '\'' +
|
||||
", is_staff=" + is_staff +
|
||||
", is_active=" + is_active +
|
||||
", date_joined='" + date_joined + '\'' +
|
||||
", sex=" + sex +
|
||||
", occupation_name='" + occupation_name + '\'' +
|
||||
", groups=" + groups +
|
||||
", user_permissions=" + user_permissions +
|
||||
'}';
|
||||
public List<?> getIllness() {
|
||||
return illness;
|
||||
}
|
||||
|
||||
public void setIllness(List<?> illness) {
|
||||
this.illness = illness;
|
||||
}
|
||||
|
||||
public static class EatenElementsBean {
|
||||
/**
|
||||
* id : 12127
|
||||
* calorie : 1046
|
||||
* carbohydrate : 33.56923076923077
|
||||
* fat : 17.138461538461538
|
||||
* protein : 13.492307692307692
|
||||
* cellulose : 5.723076923076923
|
||||
* vitaminA : 16.307692307692307
|
||||
* vitaminB1 : 0
|
||||
* vitaminB2 : 0.16
|
||||
* vitaminB6 : 0
|
||||
* vitaminC : 9.692307692307692
|
||||
* vitaminE : 7.483076923076923
|
||||
* carotene : 84.61538461538461
|
||||
* cholesterol : 29.692307692307693
|
||||
* Mg : 116.61538461538461
|
||||
* Ca : 230.76923076923077
|
||||
* Fe : 7.523076923076923
|
||||
* Zn : 1.209230769230769
|
||||
* Cu : 0.4138461538461539
|
||||
* Mn : 1.5138461538461538
|
||||
* K : 285.6923076923077
|
||||
* P : 92
|
||||
* Na : 15580.876923076923
|
||||
* Se : 7.636923076923078
|
||||
* niacin : 1.169230769230769
|
||||
* thiamine : 0.06307692307692307
|
||||
*/
|
||||
|
||||
private double id;
|
||||
private double calorie;
|
||||
private double carbohydrate;
|
||||
private double fat;
|
||||
private double protein;
|
||||
private double cellulose;
|
||||
private double vitaminA;
|
||||
private double vitaminB1;
|
||||
private double vitaminB2;
|
||||
private double vitaminB6;
|
||||
private double vitaminC;
|
||||
private double vitaminE;
|
||||
private double carotene;
|
||||
private double cholesterol;
|
||||
private double Mg;
|
||||
private double Ca;
|
||||
private double Fe;
|
||||
private double Zn;
|
||||
private double Cu;
|
||||
private double Mn;
|
||||
private double K;
|
||||
private double P;
|
||||
private double Na;
|
||||
private double Se;
|
||||
private double niacin;
|
||||
private double thiamine;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "EatenElementsBean{" +
|
||||
"id=" + id +
|
||||
", calorie=" + calorie +
|
||||
", carbohydrate=" + carbohydrate +
|
||||
", fat=" + fat +
|
||||
", protein=" + protein +
|
||||
", cellulose=" + cellulose +
|
||||
", vitaminA=" + vitaminA +
|
||||
", vitaminB1=" + vitaminB1 +
|
||||
", vitaminB2=" + vitaminB2 +
|
||||
", vitaminB6=" + vitaminB6 +
|
||||
", vitaminC=" + vitaminC +
|
||||
", vitaminE=" + vitaminE +
|
||||
", carotene=" + carotene +
|
||||
", cholesterol=" + cholesterol +
|
||||
", Mg=" + Mg +
|
||||
", Ca=" + Ca +
|
||||
", Fe=" + Fe +
|
||||
", Zn=" + Zn +
|
||||
", Cu=" + Cu +
|
||||
", Mn=" + Mn +
|
||||
", K=" + K +
|
||||
", P=" + P +
|
||||
", Na=" + Na +
|
||||
", Se=" + Se +
|
||||
", niacin=" + niacin +
|
||||
", thiamine=" + thiamine +
|
||||
'}';
|
||||
}
|
||||
|
||||
public double getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public double getCalorie() {
|
||||
return calorie;
|
||||
}
|
||||
|
||||
public void setCalorie(int calorie) {
|
||||
this.calorie = calorie;
|
||||
}
|
||||
|
||||
public double getCarbohydrate() {
|
||||
return carbohydrate;
|
||||
}
|
||||
|
||||
public void setCarbohydrate(double carbohydrate) {
|
||||
this.carbohydrate = carbohydrate;
|
||||
}
|
||||
|
||||
public double getFat() {
|
||||
return fat;
|
||||
}
|
||||
|
||||
public void setFat(double fat) {
|
||||
this.fat = fat;
|
||||
}
|
||||
|
||||
public double getProtein() {
|
||||
return protein;
|
||||
}
|
||||
|
||||
public void setProtein(double protein) {
|
||||
this.protein = protein;
|
||||
}
|
||||
|
||||
public double getCellulose() {
|
||||
return cellulose;
|
||||
}
|
||||
|
||||
public void setCellulose(double cellulose) {
|
||||
this.cellulose = cellulose;
|
||||
}
|
||||
|
||||
public double getVitaminA() {
|
||||
return vitaminA;
|
||||
}
|
||||
|
||||
public void setVitaminA(double vitaminA) {
|
||||
this.vitaminA = vitaminA;
|
||||
}
|
||||
|
||||
public double getVitaminB1() {
|
||||
return vitaminB1;
|
||||
}
|
||||
|
||||
public void setVitaminB1(int vitaminB1) {
|
||||
this.vitaminB1 = vitaminB1;
|
||||
}
|
||||
|
||||
public double getVitaminB2() {
|
||||
return vitaminB2;
|
||||
}
|
||||
|
||||
public void setVitaminB2(double vitaminB2) {
|
||||
this.vitaminB2 = vitaminB2;
|
||||
}
|
||||
|
||||
public double getVitaminB6() {
|
||||
return vitaminB6;
|
||||
}
|
||||
|
||||
public void setVitaminB6(int vitaminB6) {
|
||||
this.vitaminB6 = vitaminB6;
|
||||
}
|
||||
|
||||
public double getVitaminC() {
|
||||
return vitaminC;
|
||||
}
|
||||
|
||||
public void setVitaminC(double vitaminC) {
|
||||
this.vitaminC = vitaminC;
|
||||
}
|
||||
|
||||
public double getVitaminE() {
|
||||
return vitaminE;
|
||||
}
|
||||
|
||||
public void setVitaminE(double vitaminE) {
|
||||
this.vitaminE = vitaminE;
|
||||
}
|
||||
|
||||
public double getCarotene() {
|
||||
return carotene;
|
||||
}
|
||||
|
||||
public void setCarotene(double carotene) {
|
||||
this.carotene = carotene;
|
||||
}
|
||||
|
||||
public double getCholesterol() {
|
||||
return cholesterol;
|
||||
}
|
||||
|
||||
public void setCholesterol(double cholesterol) {
|
||||
this.cholesterol = cholesterol;
|
||||
}
|
||||
|
||||
public double getMg() {
|
||||
return Mg;
|
||||
}
|
||||
|
||||
public void setMg(double Mg) {
|
||||
this.Mg = Mg;
|
||||
}
|
||||
|
||||
public double getCa() {
|
||||
return Ca;
|
||||
}
|
||||
|
||||
public void setCa(double Ca) {
|
||||
this.Ca = Ca;
|
||||
}
|
||||
|
||||
public double getFe() {
|
||||
return Fe;
|
||||
}
|
||||
|
||||
public void setFe(double Fe) {
|
||||
this.Fe = Fe;
|
||||
}
|
||||
|
||||
public double getZn() {
|
||||
return Zn;
|
||||
}
|
||||
|
||||
public void setZn(double Zn) {
|
||||
this.Zn = Zn;
|
||||
}
|
||||
|
||||
public double getCu() {
|
||||
return Cu;
|
||||
}
|
||||
|
||||
public void setCu(double Cu) {
|
||||
this.Cu = Cu;
|
||||
}
|
||||
|
||||
public double getMn() {
|
||||
return Mn;
|
||||
}
|
||||
|
||||
public void setMn(double Mn) {
|
||||
this.Mn = Mn;
|
||||
}
|
||||
|
||||
public double getK() {
|
||||
return K;
|
||||
}
|
||||
|
||||
public void setK(double K) {
|
||||
this.K = K;
|
||||
}
|
||||
|
||||
public double getP() {
|
||||
return P;
|
||||
}
|
||||
|
||||
public void setP(int P) {
|
||||
this.P = P;
|
||||
}
|
||||
|
||||
public double getNa() {
|
||||
return Na;
|
||||
}
|
||||
|
||||
public void setNa(double Na) {
|
||||
this.Na = Na;
|
||||
}
|
||||
|
||||
public double getSe() {
|
||||
return Se;
|
||||
}
|
||||
|
||||
public void setSe(double Se) {
|
||||
this.Se = Se;
|
||||
}
|
||||
|
||||
public double getNiacin() {
|
||||
return niacin;
|
||||
}
|
||||
|
||||
public void setNiacin(double niacin) {
|
||||
this.niacin = niacin;
|
||||
}
|
||||
|
||||
public double getThiamine() {
|
||||
return thiamine;
|
||||
}
|
||||
|
||||
public void setThiamine(double thiamine) {
|
||||
this.thiamine = thiamine;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
package com.example.ninefourone.nutritionmaster.bean;
|
||||
|
||||
public class Trick {
|
||||
|
||||
/**
|
||||
* id : 124
|
||||
* title : 一天喝一杯红酒 真能降血脂降固醇吗
|
||||
* content : 随着高血脂、高固醇患者人数不但增长,关于如何对这类疾病进行有效地预防,成了越来越多人关注的问题,坊间关于预防的方式也多种多样,让人眼花缭乱,真假难辨。其中每天坚持喝一杯
|
||||
能降血脂降固醇的说法被很多人奉为圭臬,并在生活中践行。
|
||||
事实果真如此吗?红酒有这么突出的功效吗?下面为大家详细解答一番。
|
||||
首先,可以确定的是,红酒的确是一种健康饮品,它含有丰富的营养物质,
|
||||
功效也不容忽视。红酒中所含的多酚、白藜芦醇、花色苷等营养物质,的确有助于降低体内的胆固醇、血脂;非但如此,这些物质还能起到软化血管的作用;此外,红酒中的有机酸,还能增强我们的消化系统,帮助我们消化食物。再者,红酒中含有的多酚、黄酮等植物化学成分,有助于清除体内自由基,预防衰老。
|
||||
由此可见,饮用红酒的确对我们降脂、降固醇有很大的帮助,但是要想完全通过每天一杯红酒的方式实现预防目的,并不可取,因为红酒虽好,但同样存在下面这些隐患。
|
||||
首先对红酒的选择,市场上各种质量的红酒类型鱼目混杂,如果选择了低劣的红酒,不但不能起到养生作用,反而会危害健康;此外,红酒中含有酒精,一旦饮用过量,对高血脂、高固醇患者的健康也会造成影响;再者,红酒中能降血脂、降固醇的营养物质含量较低,每天仅喝一杯,很难奏效。
|
||||
可见,仅仅通过每天饮用一杯红酒的方式降血脂、降固醇并不是明智之选。那么,还有哪些方式可以帮助我们更好地实现养生目标呢?
|
||||
在日常饮食方面,做到膳食结构完整,营养摄入全面,保证肉质、蔬菜、水果、蛋类等各类食材的均衡摄入;再此基础上,减少食盐、食用油的摄入量,还可以尝试用鸡肉、鱼肉等“白肉”取代猪肉等“红肉”。
|
||||
高血脂、高固醇的出现,和体内过量的脂肪密不可分,每天坚持适量的体育锻炼,将体内多余的热量和脂肪消耗掉,对降低体内的血脂、固醇也大有裨益。
|
||||
养生是一个循序渐进的过程,不能急功近利,更不能偏信,某一种食材具有特殊功效这种说法,只有长期坚持健康的生活方式才能拥有健康的身体。
|
||||
*/
|
||||
|
||||
private int id;
|
||||
private String title;
|
||||
private String content;
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(int id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public String getContent() {
|
||||
return content;
|
||||
}
|
||||
|
||||
public void setContent(String content) {
|
||||
this.content = content;
|
||||
}
|
||||
}
|
||||
@@ -1,10 +1,14 @@
|
||||
package com.example.ninefourone.nutritionmaster.utils;
|
||||
|
||||
|
||||
import android.support.annotation.Nullable;
|
||||
import com.google.gson.Gson;
|
||||
import com.sun.istack.internal.Nullable;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import model.MyUser;
|
||||
import okhttp3.Call;
|
||||
import okhttp3.Callback;
|
||||
import okhttp3.FormBody;
|
||||
@@ -13,9 +17,19 @@ import okhttp3.Request;
|
||||
import okhttp3.RequestBody;
|
||||
import okhttp3.Response;
|
||||
|
||||
public class WebUtils {
|
||||
public class WebUtil {
|
||||
private static WebUtil instance = new WebUtil();
|
||||
private OkHttpClient mClient = new OkHttpClient();
|
||||
|
||||
private WebUtil() {
|
||||
}
|
||||
|
||||
public static WebUtil getInstance() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取菜谱信息
|
||||
* 获取具体的菜谱信息
|
||||
* {
|
||||
* "flavor": "咸鲜味",
|
||||
* "calorie": 234,
|
||||
@@ -35,52 +49,34 @@ public class WebUtils {
|
||||
* },
|
||||
* }
|
||||
*/
|
||||
public static void getMenu(String menuName, Callback callback) {
|
||||
OkHttpClient mClient = new OkHttpClient();
|
||||
public void getMenu(String menuName, Callback callback) {
|
||||
Request request = new Request.Builder().url("http://120.77.182.38/menus/" + menuName + "/").build();
|
||||
mClient.newCall(request).enqueue(callback);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取病相关的菜谱和元素信息
|
||||
* 传入含有病的意义的菜谱分类名称,比如青少年食谱
|
||||
* 获取count个随机菜谱,在回调中解析为一个Menu数组
|
||||
*
|
||||
* {
|
||||
* "menu_classification": {
|
||||
* "classification": "青少年食谱",
|
||||
* "cure_occupation": [
|
||||
* "学生"
|
||||
* ],
|
||||
* "menu_effect": [
|
||||
* "三鲜鳝汤",
|
||||
* "上海糖醋小排骨",
|
||||
* ...
|
||||
* ]
|
||||
* },
|
||||
* "elements": {
|
||||
* "id": 84,
|
||||
* "calorie": 1.1,
|
||||
* ...
|
||||
* }
|
||||
* }
|
||||
* @param count
|
||||
* @param callback
|
||||
*/
|
||||
public static void getIllness(String illnessClassification, Callback callback) {
|
||||
OkHttpClient mClient = new OkHttpClient();
|
||||
Request request = new Request.Builder().url("http://120.77.182.38/illness/" + illnessClassification + "/").build();
|
||||
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();
|
||||
mClient.newCall(request).enqueue(callback);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取count个随机菜谱,在回调中解析为一个Menu数组
|
||||
* 随机获取一定数量的小知识
|
||||
*
|
||||
* @param count
|
||||
* @param callback
|
||||
*/
|
||||
public static void getRandomMenus(int count, Callback callback) {
|
||||
OkHttpClient mClient = new OkHttpClient();
|
||||
Request request = new Request.Builder().url("http://127.0.0.1:8000/menus/get_random_menus/?count=" + String.valueOf(count)).build();
|
||||
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();
|
||||
mClient.newCall(request).enqueue(callback);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取某食材可以做的菜
|
||||
* [
|
||||
@@ -104,8 +100,7 @@ public class WebUtils {
|
||||
* @param materialName
|
||||
* @param callback
|
||||
*/
|
||||
public static void getFoodMaterial(String materialName, Callback callback) {
|
||||
OkHttpClient mClient = new OkHttpClient();
|
||||
public void getFoodMaterial(String materialName, Callback callback) {
|
||||
Request request = new Request.Builder().url("http://120.77.182.38/foodmaterial/" + materialName + "/").build();
|
||||
mClient.newCall(request).enqueue(callback);
|
||||
}
|
||||
@@ -130,8 +125,7 @@ public class WebUtils {
|
||||
* "冬苋菜豆腐汤",
|
||||
* "冬菜排骨汤",
|
||||
*/
|
||||
public static void getMenuClassification(String classificationName, Callback callback) {
|
||||
OkHttpClient mClient = new OkHttpClient();
|
||||
public void getMenuClassification(String classificationName, Callback callback) {
|
||||
Request request = new Request.Builder().url("http://120.77.182.38/menuclassification/" + classificationName + "/").build();
|
||||
mClient.newCall(request).enqueue(callback);
|
||||
}
|
||||
@@ -149,8 +143,7 @@ public class WebUtils {
|
||||
* ]
|
||||
* }
|
||||
*/
|
||||
public static void getOccupation(String occupationName, Callback callback) {
|
||||
OkHttpClient mClient = new OkHttpClient();
|
||||
public void getOccupation(String occupationName, Callback callback) {
|
||||
Request request = new Request.Builder().url("http://120.77.182.38/occupation/" + occupationName + "/").build();
|
||||
mClient.newCall(request).enqueue(callback);
|
||||
}
|
||||
@@ -169,21 +162,48 @@ public class WebUtils {
|
||||
* ]
|
||||
* }
|
||||
*/
|
||||
public static void getPhysique(String physiqueName, Callback callback) {
|
||||
OkHttpClient mClient = new OkHttpClient();
|
||||
public void getPhysique(String physiqueName, Callback callback) {
|
||||
Request request = new Request.Builder().url("http://120.77.182.38/physique/" + physiqueName + "/").build();
|
||||
mClient.newCall(request).enqueue(callback);
|
||||
}
|
||||
|
||||
public static void getUser(String username, Callback callback) {
|
||||
OkHttpClient mClient = new OkHttpClient();
|
||||
/**
|
||||
* 获取病相关的菜谱和元素信息
|
||||
* 传入含有病的意义的菜谱分类名称,比如青少年食谱
|
||||
* <p>
|
||||
* {
|
||||
* "menu_classification": {
|
||||
* "classification": "青少年食谱",
|
||||
* "cure_occupation": [
|
||||
* "学生"
|
||||
* ],
|
||||
* "menu_effect": [
|
||||
* "三鲜鳝汤",
|
||||
* "上海糖醋小排骨",
|
||||
* ...
|
||||
* ]
|
||||
* },
|
||||
* "elements": {
|
||||
* "id": 84,
|
||||
* "calorie": 1.1,
|
||||
* ...
|
||||
* }
|
||||
* }
|
||||
*/
|
||||
public void getIllness(String illnessClassification, Callback callback) {
|
||||
Request request = new Request.Builder().url("http://120.77.182.38/illness/" + illnessClassification + "/").build();
|
||||
mClient.newCall(request).enqueue(callback);
|
||||
}
|
||||
|
||||
public void getUser(String username, Callback callback) {
|
||||
mClient = new OkHttpClient();
|
||||
Request request = new Request.Builder().url("http://120.77.182.38/myuser/" + username + "/").build();
|
||||
mClient.newCall(request).enqueue(callback);
|
||||
}
|
||||
|
||||
/**
|
||||
* 注意在回调中处理username重复的情况
|
||||
*/
|
||||
*//*
|
||||
public static void postUser(String username, String password, String sex, @Nullable String occupationName, @Nullable String physicalName, Callback callback) {
|
||||
RequestBody formBody = new FormBody.Builder()
|
||||
.add("username", username)
|
||||
@@ -199,9 +219,9 @@ public class WebUtils {
|
||||
|
||||
OkHttpClient mClient = new OkHttpClient();
|
||||
mClient.newCall(request).enqueue(callback);
|
||||
}
|
||||
}*/
|
||||
|
||||
public static void changeUserPassword(String username, String password, Callback callback) {
|
||||
/*public static void changeUserPassword(String username, String password, Callback callback) {
|
||||
String url = "http://120.77.182.38/myuser/" + username + "/";
|
||||
RequestBody formBody = new FormBody.Builder()
|
||||
.add("username", username)
|
||||
@@ -210,50 +230,234 @@ public class WebUtils {
|
||||
|
||||
Request request = new Request.Builder()
|
||||
.url(url)
|
||||
.put(formBody)
|
||||
.patch(formBody)
|
||||
.build();
|
||||
|
||||
OkHttpClient mClient = new OkHttpClient();
|
||||
mClient.newCall(request).enqueue(callback);
|
||||
}
|
||||
|
||||
public static void changeUserOccupation(String username,String password, String occupation, Callback callback) {
|
||||
*//**
|
||||
* 修改职业
|
||||
* 传入职业名称参数
|
||||
*//*
|
||||
public static void changeUserOccupation(String username, String occupation, Callback callback) {
|
||||
String url = "http://120.77.182.38/myuser/" + username + "/";
|
||||
RequestBody formBody = new FormBody.Builder()
|
||||
.add("username", username)
|
||||
.add("password",password)
|
||||
.add("occupation", occupation)
|
||||
.build();
|
||||
|
||||
Request request = new Request.Builder()
|
||||
.url(url)
|
||||
.put(formBody)
|
||||
.patch(formBody)
|
||||
.build();
|
||||
|
||||
OkHttpClient mClient = new OkHttpClient();
|
||||
mClient.newCall(request).enqueue(callback);
|
||||
}
|
||||
|
||||
public static void changeUserPhysique(String username,String password, String physique, Callback callback) {
|
||||
*//**
|
||||
* 修改体质
|
||||
*
|
||||
* @param physique 体质名称
|
||||
*//*
|
||||
public static void changeUserPhysique(String username, String physique, Callback callback) {
|
||||
String url = "http://120.77.182.38/myuser/" + username + "/";
|
||||
RequestBody formBody = new FormBody.Builder()
|
||||
.add("username", username)
|
||||
.add("password",password)
|
||||
.add("physique", physique)
|
||||
.build();
|
||||
|
||||
Request request = new Request.Builder()
|
||||
.url(url)
|
||||
.put(formBody)
|
||||
.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 + "/";
|
||||
|
||||
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);
|
||||
}*/
|
||||
private static RequestBody buildUserRequestBody(MyUser user) {
|
||||
try {
|
||||
FormBody.Builder builder = new FormBody.Builder();
|
||||
|
||||
Class<?> c = Class.forName("model.MyUser");
|
||||
Field[] fields = c.getDeclaredFields();
|
||||
for (Field f : fields) {
|
||||
String fieldName = f.toString().substring(f.toString().lastIndexOf(".") + 1);
|
||||
f.setAccessible(true);
|
||||
Object object = f.get(user);//获取属性的值
|
||||
if (object != null ) {
|
||||
//illness属性是一个list,需要加入每个list的值,而不是list对象
|
||||
if (fieldName.equals("illness")) {
|
||||
List<String> illnessList = (List<String>) object;
|
||||
for (String ill : illnessList) {
|
||||
builder.add("illness", ill);
|
||||
}
|
||||
} else {
|
||||
builder.add(fieldName, String.valueOf(object));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
RequestBody formBody = builder.build();
|
||||
// for (int i = 0; i < ((FormBody) formBody).size(); i++) {
|
||||
// System.out.println(((FormBody) formBody).name(i) + " : " + ((FormBody) formBody).value(i));
|
||||
// }
|
||||
return formBody;
|
||||
|
||||
|
||||
} catch (ClassNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 注册用户注意username必须要有
|
||||
*
|
||||
* @param user
|
||||
*/
|
||||
public void createUser(MyUser user, Callback callback) {
|
||||
String url = "http://120.77.182.38/myuser/";
|
||||
RequestBody formBody = buildUserRequestBody(user);
|
||||
Request request = new Request.Builder()
|
||||
.url(url)
|
||||
.post(formBody)
|
||||
.build();
|
||||
|
||||
mClient.newCall(request).enqueue(callback);
|
||||
}
|
||||
|
||||
/**
|
||||
* 把user要更新的信息传入, 注意username必须要有
|
||||
*
|
||||
* @param user
|
||||
*/
|
||||
public void changeUserInfo(MyUser user, Callback callback) {
|
||||
String url = "http://120.77.182.38/myuser/" + user.getUsername() + "/";
|
||||
RequestBody formBody = buildUserRequestBody(user);
|
||||
Request request = new Request.Builder()
|
||||
.url(url)
|
||||
.patch(formBody)
|
||||
.build();
|
||||
|
||||
mClient.newCall(request).enqueue(callback);
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户吃了一个菜,更新用户本周已吃摄入的营养元素的量
|
||||
* 返回当前user的最新信息,用MyUser类解析json
|
||||
* @param username
|
||||
* @param menuName
|
||||
*/
|
||||
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)
|
||||
.add("menu_name", menuName)
|
||||
.build();
|
||||
Request request = new Request.Builder()
|
||||
.url(url)
|
||||
.post(formBody)
|
||||
.build();
|
||||
mClient.newCall(request).enqueue(callback);
|
||||
}
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
/*WebUtils.getMenu("雪丽对虾", new Callback() {
|
||||
/*
|
||||
MyUser testUser = new MyUser();
|
||||
testUser.setUsername("test6");
|
||||
testUser.setPassword("66666");
|
||||
testUser.setAge(8);
|
||||
testUser.setHeight(175);
|
||||
testUser.setPhysical_name("平和质");
|
||||
List<String> ills = new ArrayList<>();
|
||||
ills.add("乌发食谱");
|
||||
ills.add("失眠食谱");
|
||||
testUser.setIllness(ills);
|
||||
|
||||
//创建用户
|
||||
WebUtil.getInstance().createUser(testUser, new Callback() {
|
||||
@Override
|
||||
public void onFailure(Call call, IOException e) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResponse(Call call, Response response) throws IOException {
|
||||
String responseJson = response.body().string();
|
||||
System.out.println(new Gson().fromJson(responseJson, MyUser.class));
|
||||
}
|
||||
});
|
||||
|
||||
//修改用户信息
|
||||
WebUtil.getInstance().changeUserInfo(testUser, new Callback() {
|
||||
@Override
|
||||
public void onFailure(Call call, IOException e) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResponse(Call call, Response response) throws IOException {
|
||||
System.out.println(new Gson().fromJson(response.body().string(), MyUser.class));
|
||||
}
|
||||
});*/
|
||||
|
||||
|
||||
|
||||
/*WebUtil.getInstance().eatenMenu("test5", "软熘虾片", new Callback() {
|
||||
@Override
|
||||
public void onFailure(Call call, IOException e) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResponse(Call call, Response response) throws IOException {
|
||||
String responseJson = response.body().string();
|
||||
System.out.println(responseJson);
|
||||
MyUser testUser = new Gson().fromJson(responseJson, MyUser.class);
|
||||
System.out.println(testUser);
|
||||
}
|
||||
});*/
|
||||
|
||||
/*WebUtil.getIllness("青少年食谱", new Callback() {
|
||||
@Override
|
||||
public void onFailure(Call call, IOException e) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResponse(Call call, Response response) throws IOException {
|
||||
System.out.println(new Gson().fromJson(response.body().string(),Illness.class));
|
||||
}
|
||||
});*/
|
||||
|
||||
|
||||
/* WebUtil.getMenu("雪丽对虾", new Callback() {
|
||||
@Override
|
||||
public void onFailure(Call call, IOException e) {
|
||||
|
||||
@@ -281,7 +485,7 @@ public class WebUtils {
|
||||
}
|
||||
});*/
|
||||
|
||||
/* WebUtils.getFoodMaterial("西红柿", new Callback() {
|
||||
/*WebUtil.getFoodMaterial("西红柿", new Callback() {
|
||||
@Override
|
||||
public void onFailure(Call call, IOException e) {
|
||||
|
||||
@@ -290,12 +494,12 @@ public class WebUtils {
|
||||
@Override
|
||||
public void onResponse(Call call, Response response) throws IOException {
|
||||
String json = response.body().string();
|
||||
FoodMaterial[] foodMaterialList = new Gson().fromJson(json, FoodMaterial[].class);
|
||||
System.out.println(Arrays.toString(foodMaterialList));
|
||||
FoodMaterial foodMaterial = new Gson().fromJson(json, FoodMaterial.class);
|
||||
System.out.println(foodMaterial);
|
||||
}
|
||||
});*/
|
||||
|
||||
/*WebUtils.getMenuClassification("川菜", new Callback() {
|
||||
/*WebUtil.getMenuClassification("川菜", new Callback() {
|
||||
@Override
|
||||
public void onFailure(Call call, IOException e) {
|
||||
|
||||
@@ -308,7 +512,7 @@ public class WebUtils {
|
||||
}
|
||||
});*/
|
||||
|
||||
/*WebUtils.getOccupation("程序员", new Callback() {
|
||||
/*WebUtil.getOccupation("程序员", new Callback() {
|
||||
@Override
|
||||
public void onFailure(Call call, IOException e) {
|
||||
|
||||
@@ -316,11 +520,13 @@ public class WebUtils {
|
||||
|
||||
@Override
|
||||
public void onResponse(Call call, Response response) throws IOException {
|
||||
System.out.println(response.body().string());
|
||||
String json = response.body().string();
|
||||
System.out.println(new Gson().fromJson(json, Occupation.class));
|
||||
|
||||
}
|
||||
});*/
|
||||
|
||||
/*WebUtils.getPhysique("气虚质", new Callback() {
|
||||
/*WebUtil.getPhysique("气虚质", new Callback() {
|
||||
@Override
|
||||
public void onFailure(Call call, IOException e) {
|
||||
|
||||
@@ -328,11 +534,11 @@ public class WebUtils {
|
||||
|
||||
@Override
|
||||
public void onResponse(Call call, Response response) throws IOException {
|
||||
System.out.println(new Gson().fromJson(response.body().string(),Physique.class));
|
||||
System.out.println(new Gson().fromJson(response.body().string(), Physique.class));
|
||||
}
|
||||
});*/
|
||||
|
||||
/*WebUtils.getUser("okhttptest", new Callback() {
|
||||
/*WebUtil.instance.getUser("test5", new Callback() {
|
||||
@Override
|
||||
public void onFailure(Call call, IOException e) {
|
||||
|
||||
@@ -340,21 +546,21 @@ public class WebUtils {
|
||||
|
||||
@Override
|
||||
public void onResponse(Call call, Response response) throws IOException {
|
||||
System.out.println(new Gson().fromJson(response.body().string(),MyUser.class));
|
||||
}
|
||||
});*/
|
||||
|
||||
WebUtils.changeUserOccupation("updatatest","1234" ,"气虚质", new Callback() {
|
||||
@Override
|
||||
public void onFailure(Call call, IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResponse(Call call, Response response) throws IOException {
|
||||
System.out.println(response.body().string());
|
||||
System.out.println(new Gson().fromJson(response.body().string(), MyUser.class));
|
||||
}
|
||||
});
|
||||
*/
|
||||
|
||||
/* WebUtil.getRandomTricks(10, new Callback() {
|
||||
@Override
|
||||
public void onFailure(Call call, IOException e) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResponse(Call call, Response response) throws IOException {
|
||||
System.out.println(response.body().string());
|
||||
}
|
||||
});*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user