Commit 5a2b8fe9 authored by June's avatar June

v2- 新增base-data

parent 0a3178e7
......@@ -41,6 +41,17 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.jiankangyouyi.cloud</groupId>
<artifactId>health-cloud-data-center-api</artifactId>
<version>2.2.1.1-TK-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
......
package com.jiankangyouyi.cloud.basedata.constant;
/**
* 公共参数常量
*
* @author yangsongbo
*/
public interface BaseParamConstants {
/**
* 七牛链接刷新参数组
*/
String PARAM_GROUP_QINIU_URL_REFRESH_SECONDS = "QINIU_URL_REFRESH_SECONDS";
/**
* 七牛链接刷新到期时间 yyyy-MM-dd HH:mm:ss
*/
String PARAM_GROUP_QINIU_URL_EXPIRE_TIME = "QINIU_URL_EXPIRE_TIME";
}
package com.jiankangyouyi.cloud.basedata.constant;
import java.math.BigDecimal;
/**
* 常量
*
* @author yangsongbo
*/
public interface Constants {
/**
* 英文逗号
*/
String SEPARATOR_COMMA = ",";
/**
* http
*/
String HTTP_LOWER_CASE = "http";
/**
* HTTP
*/
String HTTP_UPPER_CASE = "HTTP";
/**
* 登录令牌属性
*/
String FIELD_MANAGER_LOGIN_TOKEN = "loginToken";
/**
* 验证码长度
*/
Integer VERIFY_CODE_SIZE = 6;
/**
* 验证码渠道
*/
String VERIFY_CODE_CHANNEL = "health-cloud-base-data";
/**
* 短信发送成功
*/
String SMS_SEND_SUCCESS = "0";
/**
* 每页最大条数
*/
int MAX_PAGE_SIZE = 99;
/**
* 年龄最小值
*/
int MIN_AGE = 0;
/**
* 年龄最大值
*/
int MAX_AGE = 150;
/**
* Excel导出间隔时间 秒
*/
int EXPORT_EXCEL_INTERVAL = 25;
/**
* kcal转换kj的系数
*/
BigDecimal KCAL_TO_KJ = BigDecimal.valueOf(4.184);
/**
* 查询条件 勾选全部选项
*/
Integer SELECT_ALL = 1;
/**
* 默认字典大类
*/
String DEFAULT_DICT_TYPE = "01";
/**
* 默认字典子类
*/
String DEFAULT_DICT_SUB_TYPE = "0101";
/**
* 默认appId 值
*/
String DEFAULT_APPID_VALUE = "jiankangyouyi";
/**
* 食物识别横向扩充兜底方案接口
*/
String FOOD_FEATURE_CALCULATE_URL = "http://120.132.33.151:8600/v3/food/feature/calculate";
/**
* requestId
*/
String REQUEST_ID="requestId";
/**
* 小于64 bmi 建议
*/
String BMI_LESS_THAN_64_ADVICE = "根据您的身高和体重,您的BMI为#公式1#,肥胖程度为#判断结果#。健康专家建议您将体重保持在#公式2#-#公式3#公斤之间,相应的您的BMI应该保持在18.5-23.9之间。";
/**
* 大于64 bmi 建议
*/
String BMI_MORE_THAN_64_ADVICE = "根据您的身高和体重,您的BMI为#公式1#,肥胖程度为#判断结果#。健康专家建议您将体重保持在#公式21#-#公式22#公斤之间,相应的您的BMI应该保持在20-26.9之间。";
/**
* 男 腹型肥胖 建议
*/
String MALE_ABDOMINAL_OBESITY_ADVICE = "根据您的腰围和臀围,您的腰臀比为#公式4#,腰臀比属于#判断结果#。健康专家建议您将腰臀比保持在0.9以下,相应的您的腰围应减少#公式5#厘米。";
/**
* 男 正常 建议
*/
String MALE_NORMAL_ADVICE = "根据您的腰围和臀围,您的腰臀比为#公式4#,腰臀比属于#判断结果#。健康专家建议您将腰臀比保持在0.9以下,请继续保持。";
/**
* 女 腹型肥胖 建议
*/
String FEMALE_ABDOMINAL_OBESITY_ADVICE = "根据您的腰围和臀围,您的腰臀比为#公式4#,腰臀比属于#判断结果#。健康专家建议您将腰臀比保持在0.85以下,相应的您的腰围应减少#公式6#厘米。";
/**
* 女 正常 建议
*/
String FEMALE_NORMAL_ADVICE = "根据您的腰围和臀围,您的腰臀比为#公式4#,腰臀比属于#判断结果#。健康专家建议您将腰臀比保持在0.85以下,请继续保持。";
/**
* 理想体重 建议
*/
String IDEAL_WEIGHT_ADVICE = "您的理想体重是#公式7#公斤。体重是衡量身体健康状况的重要指标,超重和肥胖会增加您的患病风险。如果想要达到和维持理想体重,您的体力活动消耗量与您每天的食物摄入量需保持相对平衡。";
/**
* 如何减掉1公斤? 建议
*/
String SUBTRACTION_WEIGHT_ADVICE = "您需要运动#公式8#分钟。根据您的体力活动方式,为了消耗掉1公斤脂肪,以上是您需要去运动的时间。健康专家建议,减重应多采取有氧运动的方式,每次连续运动时间不应少于10分钟,同时应根据个人情况量力而行,合理分配运动时间。";
/**
* BMR 建议话术,每天能量需求
*/
String BMR_ADVICE = "您一天的能量摄入需求量是%dKcal。根据您提供的个人信息,我们为您估算出每日所需的能量,作为合理安排您的膳食摄入的科学依据。此能量摄入量足以保证您的机体正常代谢,以及维持日常的学习、工作、生活等活动所需。";
/**
* 运动消耗计算 话术
*/
String EXERCISE_DURATION_ENERGY_ADVICE = "您的能量消耗是%dKcal。按照您的体力活动方式与活动时间,以上是我们为您估算出的能耗量。要维持理想体重的一个重要的原则是:您的体力活动能耗量应与您每天的食物摄入量相当。";
/**
* 碳水化物质量(g)转热量(kcal)的系数
*/
int CARBOHYDRATE_G_TO_KCAL_COEFFICIENT = 4;
/**
* 蛋白质质量(g)转热量(kcal)的系数
*/
int PROTEIN_G_TO_KCAL_COEFFICIENT = 4;
/**
* 脂肪质量(g)转热量(kcal)的系数
*/
int FAT_G_TO_KCAL_COEFFICIENT = 9;
}
\ No newline at end of file
package com.jiankangyouyi.cloud.basedata.constant;
/**
* 字典编码
*
* @author yangsongbo
*/
public interface DictCodeConstants {
/**
* 富含营养素 01 维生素A
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_VITAMIN_A = "01";
/**
* 富含营养素 02 维生素B1
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_VITAMIN_B1 = "02";
/**
* 富含营养素 03 维生素B2
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_VITAMIN_B2 = "03";
/**
* 富含营养素 04 维生素B3(烟酸、尼克酸)
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_VITAMIN_B3 = "04";
/**
* 富含营养素 05 维生素B5(泛酸)
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_VITAMIN_B5 = "05";
/**
* 富含营养素 06 维生素B6
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_VITAMIN_B6 = "06";
/**
* 富含营养素 07 维生素B9(叶酸、维生素M)
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_VITAMIN_B9 = "07";
/**
* 富含营养素 08 维生素B12
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_VITAMIN_B12 = "08";
/**
* 富含营养素 09 维生素C
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_VITAMIN_C = "09";
/**
* 富含营养素 10 维生素D
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_VITAMIN_D = "10";
/**
* 富含营养素 11 钙
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_CALCIUM = "11";
/**
* 富含营养素 12 钾
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_POTASSIUM = "12";
/**
* 富含营养素 13 镁
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_MAGNESIUM = "13";
/**
* 富含营养素 14 铁
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_IRON = "14";
/**
* 富含营养素 15 锌
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_ZINC = "15";
/**
* 富含营养素 16 硒
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_SELENIUM = "16";
/**
* 富含营养素 17 铬
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_CHROMIUM = "17";
/**
* 富含营养素 18 碘
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_IODINE = "18";
/**
* 富含营养素 19 磷
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_PHOSPHORUS = "19";
/**
* 富含营养素 20 铜
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_COPPER = "20";
/**
* 富含营养素 21 氟
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_FLUORINE = "21";
/**
* 富含营养素 22 锰
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_MANGANESE = "22";
/**
* 富含营养素 23 n-3脂肪酸
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_OMEGA_3 = "23";
/**
* 富含营养素 24 胡萝卜素
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_CAROTENE = "24";
/**
* 富含营养素 25 维生素E
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_VITAMIN_E = "25";
/**
* 富含营养素 26 维生素K
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_VITAMIN_K = "26";
/**
* 富含营养素 27 维生素H(生物素)
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_VITAMIN_H = "27";
/**
* 富含营养素 28 胆碱
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_CHOLINE = "28";
/**
* 富含营养素 30 钠
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_SODIUM = "30";
/**
* 富含营养素 32 饱和脂肪酸
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_SATURATED_FATTY_ACID = "32";
/**
* 富含营养素 33 不饱和脂肪酸
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_UNSATURATED_FATTY_ACID = "33";
/**
* 富含营养素 34 单不饱和脂肪酸
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_MONOUNSATURATED_FATTY_ACID = "34";
/**
* 富含营养素 35 多不饱和脂肪酸
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_POLYUNSATURATED_FATTY_ACID = "35";
/**
* 富含营养素 36 胆固醇
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_CHOLESTEROL = "36";
/**
* 富含营养素 37 膳食纤维
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_DIETARY_FIBER = "37";
/**
* 富含营养素 38 热量
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_ENERGY = "38";
/**
* 富含营养素 39 脂肪
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_FAT = "39";
/**
* 富含营养素 40 蛋白质
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_PROTEIN = "40";
/**
* 富含营养素 41 碳水化合物
*/
String FOOD_HIGH_CONTENT_NUTRIENTS_DICT_CODE_CARBOHYDRATE = "41";
/**
* 低量营养素 30 钠
*/
String FOOD_LOW_CONTENT_NUTRIENTS_DICT_CODE_SODIUM = "30";
/**
* 低量营养素 18 碘
*/
String FOOD_LOW_CONTENT_NUTRIENTS_DICT_CODE_IODINE = "18";
/**
* 低量营养素 31 热量
*/
String FOOD_LOW_CONTENT_NUTRIENTS_DICT_CODE_HEAT = "31";
/**
* 低量营养素 32 糖
*/
String FOOD_LOW_CONTENT_NUTRIENTS_DICT_CODE_SUGAR = "32";
/**
* 推荐/禁忌人群 4 2型糖尿病
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_DIABETES = "4";
/**
* 推荐/禁忌人群 5 痛风
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_GOUT = "5";
/**
* 推荐/禁忌人群 7 骨质疏松
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_OSTEOPOROSIS = "7";
/**
* 推荐/禁忌人群 8 血脂异常/高血脂
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_DYSLIPIDEMIA = "8";
/**
* 推荐/禁忌人群 9 脂肪肝
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_FATTY_LIVER = "9";
/**
* 推荐/禁忌人群 10 脑卒中
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_STROKE = "10";
/**
* 推荐/禁忌人群 12 高血压
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_HYPERTENSION = "12";
/**
* 推荐/禁忌人群 13 肥胖人群
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_OBESITY = "13";
/**
* 推荐/禁忌人群 14 健康人群
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_HEALTHY_PERSON = "14";
/**
* 推荐/禁忌人群 15-1 营养不良-反式脂肪酸过量
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_TRANSFATTYACID_OVERDOSE = "15-1";
/**
* 推荐/禁忌人群 15-2 营养不良-饱和脂肪酸过量
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_SATURATEDFATTYACID_OVERDOSE = "15-2";
/**
* 推荐/禁忌人群 15-3 营养不良-n-3脂肪酸缺乏
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_OMEGA_3_DEFICIENCY = "15-3";
/**
* 推荐/禁忌人群 15-4 营养不良-胆固醇过量
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_CHOLESTEROL_OVERDOSE = "15-4";
/**
* 推荐/禁忌人群 15-5 营养不良-膳食纤维缺乏
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_DIETARY_FIBER_DEFICIENCY = "15-5";
/**
* 推荐/禁忌人群 15-6 营养不良-优质蛋白缺乏
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_SUPERIOR_PROTEIN_DEFICIENCY = "15-6";
/**
* 推荐/禁忌人群 15-7 营养不良-维生素A缺乏
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_VITAMIN_A_DEFICIENCY = "15-7";
/**
* 推荐/禁忌人群 15-8 营养不良-维生素D缺乏
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_VITAMIN_D_DEFICIENCY = "15-8";
/**
* 推荐/禁忌人群 15-9 营养不良-维生素E缺乏
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_VITAMIN_E_DEFICIENCY = "15-9";
/**
* 推荐/禁忌人群 15-10 营养不良-维生素K缺乏
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_VITAMIN_K_DEFICIENCY = "15-10";
/**
* 推荐/禁忌人群 15-11 营养不良-维生素C缺乏
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_VITAMIN_C_DEFICIENCY = "15-11";
/**
* 推荐/禁忌人群 15-12 营养不良-维生素B1缺乏
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_VITAMIN_B1_DEFICIENCY = "15-12";
/**
* 推荐/禁忌人群 15-13 营养不良-维生素B2缺乏
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_VITAMIN_B2_DEFICIENCY = "15-13";
/**
* 推荐/禁忌人群 15-14 营养不良-烟酸缺乏
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_VITAMIN_B3_DEFICIENCY = "15-14";
/**
* 推荐/禁忌人群 15-15 营养不良-维生素B6缺乏
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_VITAMIN_B6_DEFICIENCY = "15-15";
/**
* 推荐/禁忌人群 15-16 营养不良-叶酸缺乏
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_VITAMIN_B9_DEFICIENCY = "15-16";
/**
* 推荐/禁忌人群 15-17 营养不良-维生素B12缺乏
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_VITAMIN_B12_DEFICIENCY = "15-17";
/**
* 推荐/禁忌人群 15-18 营养不良-生物素缺乏
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_VITAMIN_H_DEFICIENCY = "15-18";
/**
* 推荐/禁忌人群 15-19 营养不良-钙缺乏
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_CALCIUM_DEFICIENCY = "15-19";
/**
* 推荐/禁忌人群 15-20 营养不良-镁缺乏
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_MAGNESIUM_DEFICIENCY = "15-20";
/**
* 推荐/禁忌人群 15-21 营养不良-钾缺乏
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_POTASSIUM_DEFICIENCY = "15-21";
/**
* 推荐/禁忌人群 15-22 营养不良-铁缺乏
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_IRON_DEFICIENCY = "15-22";
/**
* 推荐/禁忌人群 15-23 营养不良-碘缺乏
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_IODINE_DEFICIENCY = "15-23";
/**
* 推荐/禁忌人群 15-24 营养不良-碘过量
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_IODINE_OVERDOSE = "15-24";
/**
* 推荐/禁忌人群 15-25 营养不良-锌缺乏
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_ZINC_DEFICIENCY = "15-25";
/**
* 推荐/禁忌人群 15-26 营养不良-硒缺乏
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_SELENIUM_DEFICIENCY = "15-26";
/**
* 推荐/禁忌人群 15-27 营养不良-铜缺乏
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_COPPER_DEFICIENCY = "15-27";
/**
* 推荐/禁忌人群 15-28 营养不良-铬缺乏
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_CHROMIUM_DEFICIENCY = "15-28";
/**
* 推荐/禁忌人群 16 免疫力
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_HYPOIMMUNITY = "16";
/**
* 推荐/禁忌人群 21 缺血性心血管病
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_ICVD = "21";
/**
* 推荐/禁忌人群 22 高尿酸血症
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_HYPERURICEMIA = "22";
/**
* 推荐/禁忌人群 23 动脉粥样硬化性心血管病
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_ASCVD = "23";
/**
* 推荐/禁忌人群 24 慢性失眠症
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_INSOMNIA = "24";
/**
* 推荐/禁忌人群 25 慢阻肺
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_COPD = "25";
/**
* 推荐/禁忌人群 26 甲减
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_TSH = "26";
/**
* 推荐/禁忌人群 27 甲亢
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_IIH = "27";
/**
* 推荐/禁忌人群 28 阿尔茨海默症
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_AD = "28";
/**
* 推荐/禁忌人群 31 功能性胃肠病
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_FUNCTIONAL_GASTROENTEROPATHY = "31";
/**
* 推荐/禁忌人群 32 慢性疲劳综合征
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_CHRONIC_FATIGUE_SYNDROME = "32";
/**
* 推荐/禁忌人群 33-1 产后(≤7天)
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_AFTER_CHILDBIRTH_LTE_7_DAYS = "33-1";
/**
* 推荐/禁忌人群 33-2 产后哺乳期(>7天)
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_AFTER_CHILDBIRTH_LACTATION_GT_7_DAYS = "33-2";
/**
* 推荐/禁忌人群 33-3 产后非哺乳期(>7天)
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_AFTER_CHILDBIRTH_NON_LACTATION_GT_7_DAYS = "33-3";
/**
* 推荐/禁忌人群 34 心血管疾病
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_CVD = "34";
/**
* 推荐/禁忌人群 健康(增肌)
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_HEALTH_35_1 = "35-1";
/**
* 推荐/禁忌人群 健康(保持健康)
*/
String FOOD_RECOMMEND_TABOO_CROWDS_DICT_CODE_HEALTH_35_2 = "35-2";
/**
* 食物性质 - 07 辛辣刺激
*/
String FOOD_NATURES_DICT_CODE_07 = "07";
/**
* 食物性质 - 17 家常菜
*/
String FOOD_NATURES_DICT_CODE_17 = "17";
/**
* 食物性质 - 18 产气
*/
String FOOD_NATURES_DICT_CODE_18 = "18";
/**
* 食物性质 - 19 低热量配餐
*/
String FOOD_NATURES_DICT_CODE_19 = "19";
/**
* 食物性质 - 20 排行榜推荐
*/
String FOOD_NATURES_DICT_CODE_20 = "20";
/**
* 膳食特点 01 优质蛋白质
*/
String FOOD_SPECIALTIES_DICT_CODE_01 = "01";
/**
* 膳食特点 20 全谷物
*/
String FOOD_SPECIALTIES_DICT_CODE_20 = "20";
/**
* 膳食特点 27 瘦肉
*/
String FOOD_SPECIALTIES_DICT_CODE_27 = "27";
/**
* 膳食特点 28 深色蔬菜
*/
String FOOD_SPECIALTIES_DICT_CODE_28 = "28";
/**
* 烹饪特点 01 干
*/
String COOKING_SPECIALTIES_DICT_CODE_01 = "01";
/**
* 烹饪特点 02 湿
*/
String COOKING_SPECIALTIES_DICT_CODE_02 = "02";
/**
* 烹饪特点 03 生
*/
String COOKING_SPECIALTIES_DICT_CODE_03 = "03";
/**
* 烹饪特点 04 熟
*/
String COOKING_SPECIALTIES_DICT_CODE_04 = "04";
/**
* 烹饪特点 05 热 (菜类)
*/
String COOKING_SPECIALTIES_DICT_CODE_05 = "05";
/**
* 烹饪特点 06 凉 (菜类)
*/
String COOKING_SPECIALTIES_DICT_CODE_06 = "06";
/**
* 烹饪方式-炒
*/
String COOKING_STYLE_1 = "1";
/**
* 烹饪方式-蒸
*/
String COOKING_STYLE_2 = "2";
/**
* 烹饪方式-煮
*/
String COOKING_STYLE_3 = "3";
/**
* 烹饪方式-炖
*/
String COOKING_STYLE_4 = "4";
/**
* 烹饪方式-拌
*/
String COOKING_STYLE_5 = "5";
/**
* 烹饪方式-烧
*/
String COOKING_STYLE_6 = "6";
/**
* 烹饪方式-煎
*/
String COOKING_STYLE_7 = "7";
/**
* 烹饪方式-炸
*/
String COOKING_STYLE_8 = "8";
/**
* 烹饪方式-烘焙
*/
String COOKING_STYLE_9 = "9";
/**
* 烹饪方式-微波
*/
String COOKING_STYLE_10 = "10";
/**
* 烹饪方式-烤
*/
String COOKING_STYLE_11 = "11";
/**
* 烹饪方式-焖
*/
String COOKING_STYLE_12 = "12";
/**
* 烹饪方式-冻
*/
String COOKING_STYLE_13 = "13";
/**
* 烹饪方式-烙
*/
String COOKING_STYLE_14 = "14";
/**
* 烹饪方式-腌
*/
String COOKING_STYLE_15 = "15";
/**
* 烹饪方式-卤
*/
String COOKING_STYLE_16 = "16";
/**
* 烹饪方式-酱
*/
String COOKING_STYLE_17 = "17";
/**
* 烹饪方式-烩
*/
String COOKING_STYLE_18 = "18";
/**
* 烹饪方式-爆
*/
String COOKING_STYLE_19 = "19";
/**
* 烹饪方式-炝
*/
String COOKING_STYLE_20 = "20";
/**
* 烹饪方式-熘
*/
String COOKING_STYLE_21 = "21";
/**
* 烹饪方式-熏
*/
String COOKING_STYLE_22 = "22";
/**
* 烹饪方式-汆
*/
String COOKING_STYLE_23 = "23";
/**
* 烹饪方式-拔丝
*/
String COOKING_STYLE_24 = "24";
/**
* 烹饪方式-榨汁
*/
String COOKING_STYLE_25 = "25";
/**
* 烹饪方式-白灼
*/
String COOKING_STYLE_26 = "26";
/**
* 烹饪方式-泡
*/
String COOKING_STYLE_27 = "27";
/**
* 烹饪方式-焗
*/
String COOKING_STYLE_28 = "28";
/**
* 烹饪方式-煸
*/
String COOKING_STYLE_29 = "20";
/**
* 烹饪方式-煨
*/
String COOKING_STYLE_30 = "30";
/**
* 烹饪方式-烫
*/
String COOKING_STYLE_31 = "31";
/**
* 烹饪方式-涮
*/
String COOKING_STYLE_32 = "32";
/**
* 烹饪方式-贴
*/
String COOKING_STYLE_33 = "33";
/**
* 烹饪方式-蜜汁
*/
String COOKING_STYLE_34 = "34";
/**
* 烹饪方式-烹
*/
String COOKING_STYLE_35 = "35";
/**
* 烹饪方式-醉
*/
String COOKING_STYLE_36 = "36";
/**
* 烹饪方式-扒
*/
String COOKING_STYLE_37 = "37";
/**
* 烹饪方式-溜
*/
String COOKING_STYLE_38 = "38";
/**
* 烹饪方式-其他
*/
String COOKING_STYLE_39 = "39";
/**
* 加工食品-膳食特点-含全谷物
*/
String PROCESS_FOOD_SPECIALTIES_20 = "20";
/**
* 加工食品-膳食特点-含优质蛋白
*/
String PROCESS_FOOD_SPECIALTIES_01 = "01";
/**
* 加工食品-膳食特点-含深色蔬菜
*/
String PROCESS_FOOD_SPECIALTIES_28 = "28";
/**
* 加工食品-膳食特点-荤(主食)
*/
String PROCESS_FOOD_SPECIALTIES_29 = "29";
/**
* 加工食品-膳食特点-素(主食)
*/
String PROCESS_FOOD_SPECIALTIES_30 = "30";
}
package com.jiankangyouyi.cloud.basedata.constant;
import java.math.BigDecimal;
/**
* 食物常量
*
* @author yangsongbo
*/
public interface FoodConstants {
/**
* 食材一级分类-谷类及其制品
*/
String FOOD_MATERIAL_CLASSIFY1_0102 = "0102";
/**
* 食材一级分类-大豆类及制品
*/
String FOOD_MATERIAL_CLASSIFY1_0103 = "0103";
/**
* 食材一级分类-杂豆类及制品
*/
String FOOD_MATERIAL_CLASSIFY1_0104 = "0104";
/**
* 食材一级分类-薯类及制品
*/
String FOOD_MATERIAL_CLASSIFY1_0105 = "0105";
/**
* 食材一级分类-蔬菜类及制品
*/
String FOOD_MATERIAL_CLASSIFY1_0107 = "0107";
/**
* 食材一级分类-菌藻类及制品
*/
String FOOD_MATERIAL_CLASSIFY1_0108 = "0108";
/**
* 食材一级分类-水果类及制品
*/
String FOOD_MATERIAL_CLASSIFY1_0109 = "0109";
/**
* 食材一级分类-禽肉类及制品
*/
String FOOD_MATERIAL_CLASSIFY1_0110 = "0110";
/**
* 食材一级分类-畜肉类及制品
*/
String FOOD_MATERIAL_CLASSIFY1_0111 = "0111";
/**
* 食材一级分类-水产类及制品
*/
String FOOD_MATERIAL_CLASSIFY1_0112 = "0112";
/**
* 食材一级分类-乳类及制品
*/
String FOOD_MATERIAL_CLASSIFY1_0113 = "0113";
/**
* 食材一级分类-蛋类及制品
*/
String FOOD_MATERIAL_CLASSIFY1_0114 = "0114";
/**
* 食材一级分类-坚果、种子类
*/
String FOOD_MATERIAL_CLASSIFY1_0115 = "0115";
/**
* 食材一级分类-零食类
*/
String FOOD_MATERIAL_CLASSIFY1_0116 = "0116";
/**
* 食材一级分类-饮品类
*/
String FOOD_MATERIAL_CLASSIFY1_0117 = "0117";
/**
* 食材一级分类-油脂类
*/
String FOOD_MATERIAL_CLASSIFY1_0118 = "0118";
/**
* 食材一级分类-调味品
*/
String FOOD_MATERIAL_CLASSIFY1_0119 = "0119";
/**
* 食材一级分类-药材类
*/
String FOOD_MATERIAL_CLASSIFY1_0120 = "0120";
/**
* 食材二级分类-全谷物及制品
*/
String FOOD_MATERIAL_CLASSIFY2_010202 = "010202";
/**
* 食材二级分类-精细谷物及制品
*/
String FOOD_MATERIAL_CLASSIFY2_010203 = "010203";
/**
* 食材二级分类-糖
*/
String FOOD_MATERIAL_CLASSIFY2_011602 = "011602";
/**
* 食材二级分类-糖果
*/
String FOOD_MATERIAL_CLASSIFY2_011603 = "011603";
/**
* 食材二级分类-蜜饯
*/
String FOOD_MATERIAL_CLASSIFY2_011604 = "011604";
/**
* 食材二级分类-蜂蜜
*/
String FOOD_MATERIAL_CLASSIFY2_011605 = "011605";
/**
* 食材二级分类-碳酸饮料
*/
String FOOD_MATERIAL_CLASSIFY2_011705 = "011705";
/**
* 食材二级分类-酒精饮料
*/
String FOOD_MATERIAL_CLASSIFY2_011706 = "011706";
/**
* 食材二级分类-果蔬汁
*/
String FOOD_MATERIAL_CLASSIFY2_011707 = "011707";
/**
* 食材二级分类-运动功能性
*/
String FOOD_MATERIAL_CLASSIFY2_011708 = "011708";
/**
* 食材二级分类-棒冰|冰激凌类
*/
String FOOD_MATERIAL_CLASSIFY2_011709 = "011709";
/**
* 食材二级分类-植物蛋白饮料
*/
String FOOD_MATERIAL_CLASSIFY2_011710 = "011710";
/**
* 食材二级分类-固体饮料
*/
String FOOD_MATERIAL_CLASSIFY2_011711 = "011711";
/**
* 食材二级分类-海产类及制品
*/
String FOOD_MATERIAL_CLASSIFY2_011202 = "011202";
/**
* 食材二级分类-根茎类
*/
String FOOD_MATERIAL_CLASSIFY2_010702 = "010702";
/**
* 食材二级分类-鲜豆类
*/
String FOOD_MATERIAL_CLASSIFY2_010703 = "010703";
/**
* 食材二级分类-茄果/瓜果类
*/
String FOOD_MATERIAL_CLASSIFY2_010704 = "010704";
/**
* 食材二级分类-葱蒜类
*/
String FOOD_MATERIAL_CLASSIFY2_010705 = "010705";
/**
* 食材二级分类-嫩茎|叶|花菜类
*/
String FOOD_MATERIAL_CLASSIFY2_010706 = "010706";
/**
* 食材二级分类-水生蔬菜类
*/
String FOOD_MATERIAL_CLASSIFY2_010707 = "010707";
/**
* 食材二级分类-薯芋类
*/
String FOOD_MATERIAL_CLASSIFY2_010708 = "010708";
/**
* 食材二级分类-野生蔬菜类
*/
String FOOD_MATERIAL_CLASSIFY2_010709 = "010709";
/**
* 加工食品一级分类-蛋类
*/
String FOOD_PROCESS_CLASSIFY1_0224 = "0224";
/**
* 加工食品一级分类-菜类
*/
String FOOD_PROCESS_CLASSIFY1_0221 = "0221";
/**
* 加工食品一级分类-流食类
*/
String FOOD_PROCESS_CLASSIFY1_0222 = "0222";
/**
* 加工食品一级分类-汤类
*/
String FOOD_PROCESS_CLASSIFY1_0223 = "0223";
/**
* 加工食品一级分类-主食类
*/
String FOOD_PROCESS_CLASSIFY1_0220 = "0220";
/**
* 加工食品二级分类-菜类-荤菜
*/
String FOOD_PROCESS_CLASSIFY2_022101 = "022101";
/**
* 加工食品二级分类-菜类-次荤菜
*/
String FOOD_PROCESS_CLASSIFY2_022102 = "022102";
/**
* 加工食品二级分类-菜类-素菜
*/
String FOOD_PROCESS_CLASSIFY2_022103 = "022103";
/**
* 加工食品二级分类-汤类-素汤
*/
String FOOD_PROCESS_CLASSIFY2_022302 = "022302";
/**
* 加工食品三级分类-菜类-荤菜-动物内脏类荤菜
*/
String FOOD_PROCESS_CLASSIFY3_02210101 = "02210101";
/**
* 加工食品三级分类-菜类-次荤菜-动物内脏类次荤
*/
String FOOD_PROCESS_CLASSIFY3_02210201 = "02210201";
/**
* 加工食品三级分类-菜类-荤菜-禽肉类荤菜
*/
String FOOD_PROCESS_CLASSIFY3_02210102 = "02210102";
/**
* 加工食品三级分类-菜类-次荤菜-禽肉类次荤菜
*/
String FOOD_PROCESS_CLASSIFY3_02210202 = "02210202";
/**
* 加工食品三级分类-菜类-荤菜-水产品类荤菜
*/
String FOOD_PROCESS_CLASSIFY3_02210104 = "02210104";
/**
* 加工食品三级分类-菜类-次荤菜-水产品类次荤
*/
String FOOD_PROCESS_CLASSIFY3_02210204 = "02210204";
/**
* 加工食品三级分类-菜类-素菜-大豆类
*/
String FOOD_PROCESS_CLASSIFY3_02210310 = "02210310";
/**
* 加工食品三级分类-菜类-素菜-葱蒜类
*/
String FOOD_PROCESS_CLASSIFY3_02210304 = "02210304";
/**
* 加工食品三级分类-菜类-素菜-嫩茎/叶/花菜类
*/
String FOOD_PROCESS_CLASSIFY3_02210305 = "02210305";
/**
* 加工食品三级分类-菜类-素菜-薯芋类
*/
String FOOD_PROCESS_CLASSIFY3_02210307 = "02210307";
/**
* 加工食品三级分类-菜类-素菜-菌藻类
*/
String FOOD_PROCESS_CLASSIFY3_02210309 = "02210309";
/**
* 高含量营养素 100g含钠≥450mg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_SODIUM_LIMIT = BigDecimal.valueOf(450);
/**
* 高含量营养素 100g含碘≥80μg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_IODINE_LIMIT = BigDecimal.valueOf(80);
/**
* 高含量营养素 100g含磷≥216mg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_PHOSPHORUS_LIMIT = BigDecimal.valueOf(216);
/**
* 高含量营养素 100g含铜≥0.24mg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_COPPER_LIMIT = BigDecimal.valueOf(0.24);
/**
* 高含量营养素 100g含氟≥0.45mg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_FLUORINE_LIMIT = BigDecimal.valueOf(0.45);
/**
* 高含量营养素 100g含锰≥1.35mg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_MANGANESE_LIMIT = BigDecimal.valueOf(1.35);
/**
* 高含量营养素 100g含钙≥100mg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_CALCIUM_LIMIT = BigDecimal.valueOf(100);
/**
* 高含量营养素 100g含钾≥330mg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_POTASSIUM_LIMIT = BigDecimal.valueOf(330);
/**
* 高含量营养素 100g含镁≥99mg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_MAGNESIUM_LIMIT = BigDecimal.valueOf(99);
/**
* 高含量营养素 100g含铁≥3.6mg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_IRON_LIMIT = BigDecimal.valueOf(3.6);
/**
* 高含量营养素 100g含锌≥3.75mg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_ZINC_LIMIT = BigDecimal.valueOf(3.75);
/**
* 高含量营养素 100g含硒≥18μg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_SELENIUM_LIMIT = BigDecimal.valueOf(18);
/**
* 高含量营养素 100g含铬≥9μg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_CHROMIUM_LIMIT = BigDecimal.valueOf(9);
/**
* 高含量营养素 100g含胡萝卜素≥1440μg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_TOTAL_CAROTENE_LIMIT = BigDecimal.valueOf(1440);
/**
* 高含量营养素 100g含维生素A≥240μg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_VITAMIN_A_LIMIT = BigDecimal.valueOf(240);
/**
* 高含量营养素 100g含维生素B1≥0.42mg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_VITAMIN_B1_LIMIT = BigDecimal.valueOf(0.42);
/**
* 高含量营养素 100g含维生素B2≥0.21mg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_VITAMIN_B2_LIMIT = BigDecimal.valueOf(0.21);
/**
* 高含量营养素 100g含烟酸(别名维生素B3)≥4.5mg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_VITAMIN_B3_LIMIT = BigDecimal.valueOf(4.5);
/**
* 高含量营养素 100g含泛酸(别名维生素B5)≥1.5mg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_VITAMIN_B5_LIMIT = BigDecimal.valueOf(1.5);
/**
* 高含量营养素 100g含维生素B6≥0.42mg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_VITAMIN_B6_LIMIT = BigDecimal.valueOf(0.42);
/**
* 高含量营养素 100g含生物素(别名维生素H)≥12μg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_VITAMIN_H_LIMIT = BigDecimal.valueOf(12);
/**
* 高含量营养素 100g含叶酸(别名维生素B9)≥120μg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_VITAMIN_B9_LIMIT = BigDecimal.valueOf(120);
/**
* 高含量营养素 100g含维生素B12≥0.72μg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_VITAMIN_B12_LIMIT = BigDecimal.valueOf(0.72);
/**
* 高含量营养素 100g含维生素C≥30mg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_VITAMIN_C_LIMIT = BigDecimal.valueOf(30);
/**
* 高含量营养素 100g含维生素D≥3μg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_VITAMIN_D_LIMIT = BigDecimal.valueOf(3);
/**
* 高含量营养素 100g含维生素E≥2.1mg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_VITAMIN_E_LIMIT = BigDecimal.valueOf(2.1);
/**
* 高含量营养素 100g含维生素K≥24μg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_VITAMIN_K_LIMIT = BigDecimal.valueOf(24);
/**
* 高含量营养素 100g含胆碱≥150mg的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_CHOLINE_LIMIT = BigDecimal.valueOf(150);
/**
* 高含量营养素 n-3脂肪酸 100g含DHA+EPA≥0.1g的食物
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_OMEGA_3_LIMIT = BigDecimal.valueOf(0.1);
/**
* 高含量营养素 饱和脂肪酸 饱和脂肪酸/总脂肪酸>30%
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_SATURATED_FATTY_ACID_LIMIT = BigDecimal.valueOf(30);
/**
* 高含量营养素 不饱和脂肪酸 (单不饱和脂肪酸+多不饱和脂肪酸)/总脂肪酸>50%
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_UNSATURATED_FATTY_ACID_LIMIT = BigDecimal.valueOf(50);
/**
* 高含量营养素 单不饱和脂肪酸 (单不饱和脂肪酸+多不饱和脂肪酸)/总脂肪酸>50%&且单不饱和脂肪酸/不饱和脂肪酸>75%
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_MONOUNSATURATED_FATTY_ACID_LIMIT = BigDecimal.valueOf(75);
/**
* 高含量营养素 多不饱和脂肪酸 多不饱和脂肪酸/总脂肪酸>50%
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_POLYUNSATURATED_FATTY_ACID_LIMIT = BigDecimal.valueOf(50);
/**
* 高含量营养素 每100g食物中胆固醇含量≥200mg
* <p>
* 备注*加工食品:蛋类(早餐)除外;食材:蛋类及制品除外(蛋类不打高胆固醇的标签)
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_CHOLESTEROL_LIMIT = BigDecimal.valueOf(200);
/**
* 高含量营养素 100g食物中膳食纤维≥7.5g或100g食物中不溶性膳食纤维≥7.5g
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_DIETARY_FIBER_LIMIT = new BigDecimal("7.5");
/**
* 高含量营养素 100g含能量≥400kcal的食物
*/
Integer HIGH_CONTENT_NUTRIENTS_ENERGY_LIMIT = 400;
/**
* 高含量营养素 每100g食物中脂肪含量≥20g;
*/
BigDecimal HIGH_CONTENT_NUTRIENTS_FAT_LIMIT = BigDecimal.valueOf(20);
/**
* 蛋白质 每100g食物中脂肪含量≥18g;
*/
BigDecimal PROTEIN = BigDecimal.valueOf(18);
/**
* 碳水化合物 每100g食物中脂肪含量≥60g;
*/
BigDecimal CARBOHYDRATE = BigDecimal.valueOf(60);
/**
* 低量营养素 30 钠 100g含钠<120mg的食物
*/
BigDecimal LOW_CONTENT_NUTRIENTS_SODIUM_LIMIT = BigDecimal.valueOf(120);
/**
* 低量营养素 18 碘 100g含碘<12μg的食物
*/
BigDecimal LOW_CONTENT_NUTRIENTS_IODINE_LIMIT = BigDecimal.valueOf(12);
/**
* 低量营养素 31 热量 100g < 100 kcal(加工食品) 100g < 40 kcal(食材)
*/
int LOW_HEAT_LIMIT = 100;
int LOW_HEAT_FOOD_LIMIT = 40;
/**
* 低量营养素 32 糖 100g食物中碳水化合物含糖<=5g
*/
BigDecimal LOW_SUGAR_LIMIT = BigDecimal.valueOf(5);
/**
* 升糖指数等级 低 GI值≤55
*/
BigDecimal GI_LEVEL_LOW_LIMIT = BigDecimal.valueOf(55);
/**
* 升糖指数等级 高 GI值≥70
*/
BigDecimal GI_LEVEL_HIGH_LIMIT = BigDecimal.valueOf(70);
/**
* 血糖负荷等级 低 GL值≤10
*/
BigDecimal GL_LEVEL_LOW_LIMIT = BigDecimal.valueOf(10);
/**
* 血糖负荷等级 高 GL值 ≥20
*/
BigDecimal GL_LEVEL_HIGH_LIMIT = BigDecimal.valueOf(20);
/**
* 嘌呤等级 低 每100g食物嘌呤含量<50mg
*/
BigDecimal PURINE_LEVEL_LOW_LIMIT = BigDecimal.valueOf(50);
/**
* 嘌呤等级 高 每100g食物嘌呤含量>150mg
*/
BigDecimal PURINE_LEVEL_HIGH_LIMIT = BigDecimal.valueOf(150);
/**
* 单位 g
*/
String UNIT_G = "g";
/**
* 单位 mg
*/
String UNIT_MG = "mg";
/**
* 单位 μg
*/
String UNIT_UG = "μg";
/**
* 单位 μgRAE
*/
String UNIT_UG_RAE = "μgRAE";
/**
* 食物版本号 3.7
*/
String FOOD_VERSION_3_7 = "3.7";
}
package com.jiankangyouyi.cloud.basedata.constant;
/**
* MQ 常量
*
* @author yangsongbo
*/
public interface MqConstants {
/**
* 细粒度食物识别MQ EXCHANGE
*/
String MQ_AI_IMAGE_EXCHANGE = "ai_image_exchange";
/**
* 细粒度食物识别MQ ROUTER_KEY
*/
String MQ_AI_IMAGE_ROUTER_KEY = "ai_image";
/**
* 细粒度食物识别MQ 队列
*/
String MQ_AI_IMAGE_QUEUE = "ai_image_queue";
}
\ No newline at end of file
package com.jiankangyouyi.cloud.basedata.enums;
import com.jiankangyouyi.cloud.data.center.api.enums.ActivityLevelEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 活动强度Enum
* <p>
* 活动强度 0 未知 1 极轻 2 轻度 3 中度 4 重度
*
* @author yangsongbo
*/
@AllArgsConstructor
@Getter
public class ActivityLevelPalUtil {
private final static int AGE7 = 7;
private final static int AGE18 = 18;
/**
* 根据活动等级与年龄获取枚举
*
* @param activityLevel 活动等级
* @param age 年龄
* @return 活动等级枚举
*/
public static double getEnumPal(String activityLevel, int age) {
ActivityLevelEnum activityLevelEnum = ActivityLevelEnum.getEnum(activityLevel);
double pal = activityLevelEnum.getRate();
if (age < AGE7) {
return 1;
} else if (age < AGE18) {
if (activityLevelEnum == ActivityLevelEnum.ACTIVITY_LEVEL_LIGHT) {
return 1.375;
}
}
return pal;
}
}
package com.jiankangyouyi.cloud.basedata.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NonNull;
import java.math.BigDecimal;
import static com.jiankangyouyi.cloud.basedata.constant.Constants.BMI_LESS_THAN_64_ADVICE;
import static com.jiankangyouyi.cloud.basedata.constant.Constants.BMI_MORE_THAN_64_ADVICE;
/**
* bmi 状态
*
* @author : lvhaoran
* @date Date : 2022年01月18日
*/
@AllArgsConstructor
@Getter
public enum BMIStatusEnum {
/**
* 消瘦
*/
THIN("1", "消瘦"),
/**
* 正常
*/
NORMAL("2", "正常"),
/**
* 超重
*/
OVERWEIGHT("3", "超重"),
/**
* 肥胖
*/
OBESITY("4", "肥胖"),
;
private String status;
/**
* 描述
*/
private String description;
public static BMIStatusEnum getEnum(String status) {
BMIStatusEnum[] values = values();
if (status == null) {
return null;
}
for (BMIStatusEnum value : values) {
if (status.equals(value.status)) {
return value;
}
}
return null;
}
/**
* 获取小于64 bmi 状态
*
* @param bmi bmi
* @return BMIStatusEnum
*/
public static BMIStatusEnum getLessThan64BmiStatus(@NonNull BigDecimal bmi) {
BigDecimal bmiUpperLimit = new BigDecimal("18.5");
BigDecimal bmiLowerLimit = new BigDecimal("23.9");
BigDecimal bmiUpperLimit1 = new BigDecimal("24");
BigDecimal bmiLowerLimit1 = new BigDecimal("27.9");
if (bmi.compareTo(bmiUpperLimit) < 0) {
return BMIStatusEnum.THIN;
} else if (bmi.compareTo(bmiUpperLimit) >= 0 && bmi.compareTo(bmiLowerLimit) <= 0) {
return BMIStatusEnum.NORMAL;
} else if (bmi.compareTo(bmiUpperLimit1) >= 0 && bmi.compareTo(bmiLowerLimit1) <= 0) {
return BMIStatusEnum.OVERWEIGHT;
}
return BMIStatusEnum.OBESITY;
}
/**
* 获取大于64 bmi 状态
*
* @param bmi bmi
* @return BMIStatusEnum
*/
public static BMIStatusEnum getMoreThan64BmiStatus(@NonNull BigDecimal bmi) {
BigDecimal bmiUpperLimit = new BigDecimal("20");
BigDecimal bmiLowerLimit = new BigDecimal("26.9");
BigDecimal bmiUpperLimit1 = new BigDecimal("27");
BigDecimal bmiLowerLimit1 = new BigDecimal("27.9");
if (bmi.compareTo(bmiUpperLimit) < 0) {
return BMIStatusEnum.THIN;
} else if (bmi.compareTo(bmiUpperLimit) >= 0 && bmi.compareTo(bmiLowerLimit) <= 0) {
return BMIStatusEnum.NORMAL;
} else if (bmi.compareTo(bmiUpperLimit1) >= 0 && bmi.compareTo(bmiLowerLimit1) <= 0) {
return BMIStatusEnum.OVERWEIGHT;
}
return BMIStatusEnum.OBESITY;
}
/**
* 获取bmi 建议话术
*/
public static BMIStatusEnum getBmiStatus(@NonNull BigDecimal age, @NonNull BigDecimal bmi) {
BigDecimal ageLimit = new BigDecimal("64");
if (age.compareTo(ageLimit) <= 0) {
return getLessThan64BmiStatus(bmi);
} else {
return getMoreThan64BmiStatus(bmi);
}
}
/**
* 获取bmi 建议话术
*/
public static String getBmiAdvice(@NonNull BigDecimal age) {
BigDecimal ageLimit = new BigDecimal("64");
if (age.compareTo(ageLimit) <= 0) {
return BMI_LESS_THAN_64_ADVICE;
} else {
return BMI_MORE_THAN_64_ADVICE;
}
}
}
package com.jiankangyouyi.cloud.basedata.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 字典code enum
*
* @author fengxuanjun
*/
@AllArgsConstructor
@Getter
public enum BaseDictEnum {
/**
* 硬件库_品牌
*/
BRAND("10", "1001", "品牌"),
/**
* 硬件库_型号
*/
MODEL("10", "1002", "型号"),
/**
* 硬件库_通讯方式
*/
COMMUNICATION("10", "1003", "通讯方式"),
/**
* 硬件库_业务类型
*/
BIZ_TYPE("10", "1004", "业务类型"),
/**
* 食物_推荐/禁忌人群
*/
FOOD_RECOMMEND_TABOO_CROWDS("02", "0205", "食物推荐/禁忌人群"),
/**
* 食物_富含营养素
*/
FOOD_HIGH_CONTENT_NUTRIENTS("02", "0206", "食物富含营养素"),
/**
* 食物_低量营养素
*/
FOOD_LOW_CONTENT_NUTRIENTS("02", "0218", "食物低量营养素"),
/**
* 膳食特点(食材)
*/
FOOD_MATERIAL_SPECIALTIES("02", "0214", "膳食特点(食材)"),
/**
* 膳食特点(加工食品)
*/
FOOD_PROCESS_SPECIALTIES("02", "0224", "膳食特点(加工食品)"),
/**
* 食物_烹饪特点
*/
FOOD_COOKING_SPECIALTIES("02", "0219", "食物烹饪特点"),
/**
* 性质(加工食品)
*/
FOOD_PROCESS_NATURES("02", "0215", "性质(加工食品)"),
/**
* 性质(食材)
*/
FOOD_MATERIAL_NATURES("02", "0225", "性质(加工食品)"),
/**
* 食物-国家及地区
*/
FOOD_COUNTRY_DISTRICTS("02", "0202", "国家及地区"),
/**
* 食物-时令
*/
FOOD_MONTHS("02", "0204", "时令"),
/**
* 食物-禁忌民族
*/
FOOD_TABOO_NATIONS("02", "0207", "禁忌民族"),
/**
* 口味(加工食品)
*/
FOOD_TASTES("02", "0201", "口味(加工食品)"),
/**
* 食物-烹饪方式
*/
FOOD_COOKING_STYLE("02", "0203", "烹饪方式"),
/**
* 食物-净含量单位
*/
FOOD_NET_CONTENT_UNIT("02", "0220", "净含量单位"),
/**
* 食物-品牌
*/
FOOD_BRAND("02", "0221", "品牌"),
/**
* 食物-甲减禁忌食材
*/
FOOD_TSH_TABOO_FOOD_IDS("02", "0222", "甲减禁忌食材"),
/**
* 食物-扩展单位
*/
FOOD_EXTENSION_UNIT("02", "0208", "食物扩展单位"),
/**
* 食物-驳回理由
*/
FOOD_REASONS_FOR_REJECTION("02", "0223", "食物驳回理由"),
/**
* 华为食物-扩展单位
*/
HW_EXTENSION_UNIT("90", "9001", "华为食物扩展单位"),
/**
* 华为食物-驳回理由
*/
HW_AUDIT_MSG("90", "9002", "华为食物驳回理由"),
/**
* 华为食物-烹饪方式
*/
HW_COOK_STYLE("90", "9003", "华为加工食品烹饪方式"),
/**
* 国外食物库版本号
*/
FOREIGN_FOOD_VERSIONS("90", "9006", "国外食物库版本号"),
/**
* 食物-配餐版本号(适用于:食材/加工食品/预加工食品)
*/
FOOD_VERSIONS("02", "0229", "配餐版本号"),
/**
* 致敏原,适用于食材、加工食品
*/
FOOD_ALLERGEN("02", "0234", "致敏原"),
/**
* 适合餐别 字典大类 02 字典子类 0226(加工食品)
*/
FOOD_SUITABLE_FOR_MEALS("02", "0226", "适合餐别"),
/**
* 节日 字典大类 02 字典子类 0227(加工食品)
*/
FOOD_FESTIVAL("02", "0227", "节日"),
/**
* 节气 字典大类 02 字典子类 0228(加工食品)
*/
FOOD_SOLAR_TERM("02", "0228", "节气"),
/**
* 高尿酸败血症、痛风禁忌食材
*/
HYPERURICEMIA_AND_GOUT_TABOO_FOOD_IDS("02", "0230", "高尿酸败血症、痛风禁忌食材"),
/**
* 甲亢、碘过量禁忌食材
*/
IODINE_OVERDOSE_TABOO_FOOD_IDS("02", "0231", "甲亢、碘过量禁忌食材"),
;
private final String dictType;
private final String dictSubType;
private final String description;
public static BaseDictEnum getEnum(String dictType) {
BaseDictEnum[] values = values();
if (dictType == null) {
return null;
}
for (BaseDictEnum value : values) {
if (dictType.equals(value.dictType)) {
return value;
}
}
return null;
}
}
package com.jiankangyouyi.cloud.basedata.enums;
/**
* 七牛空间
*
* @author :wangyalei
* @date :Created in 2021/4/25 4:38 下午
* @description:
*/
public enum BucketScopeEnum {
/**
* 健康有益公开空间
*/
SCOPE_PUBLIC("jkyy", "公开"),
/**
* 健康有益私有空间
*/
SCOPE_PRIVATE("jkyy-private", "私有"),
/**
* 健康有益视频私有空间
*/
SCOPE_VIDEO_PRIVATE("jkyy-video-private", "健康有益视频私有空间"),
/**
* 健康有益音视频公开空间
*/
SCOPE_AV("jkyy-av", "健康有益音视频公开空间"),
/**
* 健康有益音视频公开空间
*/
SCOPE_FOOD_RECOGNITION("jkyy-av", "健康有益音视频公开空间"),
;
private String value;
private String displayName;
public String getValue() {
return this.value;
}
public String getDisplayName() {
return this.displayName;
}
private BucketScopeEnum(String value, String displayName) {
this.value = value;
this.displayName = displayName;
}
public static BucketScopeEnum getEnum(String value) {
BucketScopeEnum[] es = values();
BucketScopeEnum[] var2 = es;
int var3 = es.length;
for (int var4 = 0; var4 < var3; ++var4) {
BucketScopeEnum e = var2[var4];
if (e.getValue().equalsIgnoreCase(value)) {
return e;
}
}
return null;
}
}
package com.jiankangyouyi.cloud.basedata.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 食物状态 类型
*
* @author :wangyalei
* @date :Created in 2021/4/28 5:41 下午
* @deprecated 使用api包中的FoodStatusEnum
*/
@Deprecated
@Getter
@AllArgsConstructor
public enum FoodStatusEnum {
/**
* 有效
*/
VALID("0", "有效"),
/**
* 无效
*/
INVALID("1", "无效"),
/**
* 草稿
*/
DRAFT("2", "草稿");
private final String status;
private final String describe;
public static FoodStatusEnum getEnum(String status) {
FoodStatusEnum[] values = values();
if (status == null) {
return null;
}
for (FoodStatusEnum value : values) {
if (status.equals(value.getStatus())) {
return value;
}
}
return null;
}
}
package com.jiankangyouyi.cloud.basedata.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 菜单等级枚举
*/
@Getter
@AllArgsConstructor
public enum GadgetsMenuLevelEnum {
/**
* 菜单等级枚举
*/
ONE("1", "一级"),
TWO("2", "二级"),
THREE("3", "三级"),
FOUR("4", "四级");
/**
*
*/
private String code;
/**
* 描述
*/
private String describe;
public String getDescribe() {
return this.describe;
}
public String getKey() {
return this.code;
}
}
package com.jiankangyouyi.cloud.basedata.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 健康小工具头图位置枚举
*/
@Getter
@AllArgsConstructor
public enum GadgetsTopImageTypeEnum {
YYPK("1", "营养pk"),
SCZSXZSC("2", "私厨助手选择食材"),
SCZSCD("3", "私厨助手菜单"),
MRZSTZ("4", "每日知识挑战"),
;
/**
* redis key
*/
private String code;
/**
* 描述
*/
private String describe;
public String getDescribe() {
return this.describe;
}
public String getKey() {
return this.code;
}
public static GadgetsTopImageTypeEnum getEnum(String code) {
GadgetsTopImageTypeEnum[] values = values();
if (code == null) {
return null;
}
for (GadgetsTopImageTypeEnum value : values) {
if (code.equals(value.code)) {
return value;
}
}
return null;
}
}
package com.jiankangyouyi.cloud.basedata.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 通用的有效标识
* @author :wangyalei
* @date :Created in 2021/5/6 11:51 上午
*/
@Getter
@AllArgsConstructor
public enum GenericValidStatusEnum {
/**
* 有效
*/
VALID("1", "启用"),
/**
* 无效
*/
INVALID("2", "停用");
private final String status;
private final String describe;
public static GenericValidStatusEnum getEnum(String status) {
GenericValidStatusEnum[] values = values();
if (status == null) {
return null;
}
for (GenericValidStatusEnum value : values) {
if (status.equals(value.getStatus())) {
return value;
}
}
return null;
}
}
package com.jiankangyouyi.cloud.basedata.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author :wangyalei
* @date :2021/11/21 4:08 下午
*/
@Getter
@AllArgsConstructor
public enum HealthAssessmentCoverConfigEnum {
/**
* 运动干预方案
*/
EXERCISE("032501", "运动干预方案"),
/**
* 生活方式
*/
LIFE_STYLE("190101", "生活方式"),
/**
* 效果评估
*/
EFFECT_APPRAISAL("200101", "效果评估"),
/**
* 健康评估
*/
HEALTH_ASSESSMENT("012502", "健康评估"),
/**
* 饮食干预方案
*/
DIET("020501", "饮食干预方案");
private final String type;
private final String describe;
public static HealthAssessmentCoverConfigEnum getEnum(String type) {
HealthAssessmentCoverConfigEnum[] values = values();
if (type == null) {
return null;
}
for (HealthAssessmentCoverConfigEnum value : values) {
if (type.equals(value.getType())) {
return value;
}
}
return null;
}
}
package com.jiankangyouyi.cloud.basedata.enums;
import com.jiankangyouyi.cloud.basedata.api.model.entity.questionnaire.SingleChoiceMainOption;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* 民族枚举
*
* @author jingpeng
*/
@Getter
@AllArgsConstructor
public enum NationEnum {
/**
* 汉族
*/
HAN("1","汉族"),
/**
* 蒙古族
*/
MENGGU("2","蒙古族"),
/**
* 回族
*/
HUI("3","回族"),
/**
* 藏族
*/
ZANG("4","藏族"),
/**
* 维吾尔族
*/
WEI_WU_ER("5","维吾尔族"),
/**
* 苗族
*/
MIAO("6","苗族"),
/**
* 彝族
*/
LI("7","彝族"),
/**
* 壮族
*/
ZHUANG("8","壮族"),
/**
* 布依族
*/
BU_YI("9","布依族"),
/**
* 朝鲜族
*/
CHAO_XIAN("10","朝鲜族"),
/**
* 满族
*/
MAN("11","满族"),
/**
* 侗族
*/
TONG("12","侗族"),
/**
* 瑶族
*/
YAO("13","瑶族"),
/**
* 白族
*/
BAI("14","白族"),
/**
* 土家族
*/
TU_JIA("15","土家族"),
/**
* 哈尼族
*/
HA_NI("16","哈尼族"),
/**
* 哈萨克族
*/
HA_SA_KE("17","哈萨克族"),
/**
* 傣族
*/
DAI("18","傣族"),
/**
* 黎族
*/
LI_ZU("19","黎族"),
/**
* 傈僳族
*/
LISU("20","傈僳族"),
/**
* 佤族
*/
WA("21","佤族"),
/**
* 畲族
*/
SHE("22","畲族"),
/**
* 高山族
*/
GAO_SHAN("23","高山族"),
/**
* 拉祜族
*/
LA_HU("24","拉祜族"),
/**
* 水族
*/
SHUI("25","水族"),
/**
* 东乡族
*/
DONG_XIANG("26","东乡族"),
/**
* 纳西族
*/
NA_XI("27","纳西族"),
/**
* 景颇族
*/
JINGPO("28","景颇族"),
/**
* 柯尔克孜族
*/
KE_ER_KE_ZI("29","柯尔克孜族"),
/**
* 土族
*/
TU("30","土族"),
/**
* 达斡尔族
*/
DAUR("31","达斡尔族"),
/**
* 仫佬族
*/
MULAM("32","仫佬族"),
/**
* 羌族
*/
WU("33","羌族"),
/**
* 布朗族
*/
BU_LANG("34","布朗族"),
/**
* 撒拉族
*/
SA_LA("35","撒拉族"),
/**
* 毛难族
*/
MAO_NAN("36","毛难族"),
/**
* 仡佬族
*/
YI_LAO("37","仡佬族"),
/**
* 锡伯族
*/
XI_BO("38","锡伯族"),
/**
* 阿昌族
*/
A_CHANG("39","阿昌族"),
/**
* 普米族
*/
PU_MI("40","普米族"),
/**
* 塔吉克族
*/
TA_JI_KE("41","塔吉克族"),
/**
* 怒族
*/
NU("42","怒族"),
/**
* 乌孜别克族
*/
WU_ZI_BIE_KE("43","乌孜别克族"),
/**
* 俄罗斯族
*/
E_LUO_SI("44","俄罗斯族"),
/**
* 鄂温克族
*/
E_WEN_KE("45","鄂温克族"),
/**
* 崩龙族
*/
BENG_LONG("46","崩龙族"),
/**
* 保安族
*/
BAO_AN("47","保安族"),
/**
* 裕固族
*/
YU_GU("48","裕固族"),
/**
* 京族
*/
JING("49","京族"),
/**
* 塔塔尔族
*/
TA_TA_ER("50","塔塔尔族"),
/**
* 独龙族
*/
DU_LONG("51","独龙族"),
/**
* 鄂伦春族
*/
E_LUN_CHUN("52","鄂伦春族"),
/**
* 赫哲族
*/
HE_ZHE("53","赫哲族"),
/**
* 门巴族
*/
MEN_BA("54","门巴族"),
/**
* 珞巴族
*/
LUO_BA("55","珞巴族"),
/**
* 基诺族
*/
JI_NUO("56","基诺族"),
;
private String code;
private String comment;
public String code() {
return code;
}
public String comment() {
return comment;
}
public static List<SingleChoiceMainOption> getChoiceOptions(){
List<SingleChoiceMainOption> list = new ArrayList<>();
int i=0;
for (NationEnum type : NationEnum.values()){
i++;
list.add( SingleChoiceMainOption.builder()
.optionCode(String.valueOf(i))
.optionValue(String.valueOf(i))
.optionContents(Collections.singletonList(type.getComment()))
.imageUrls(null)
.supplementContents(null)
.build());
}
return list;
}
}
package com.jiankangyouyi.cloud.basedata.enums;
import com.jiankangyouyi.cloud.core.constant.BaseEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 启用禁用状态
*
* @author : wangyalei
* @date Date : 2022年01月18日
*/
@AllArgsConstructor
@Getter
public enum OnOffStatusEnum{
/**
* 禁用
*/
OFF(0, "禁用"),
/**
* 启用
*/
ON(1, "启用"),
;
private Integer status;
/**
* 描述
*/
private String description;
public static OnOffStatusEnum getEnum(Integer status) {
OnOffStatusEnum[] values = values();
if (status == null) {
return null;
}
for (OnOffStatusEnum value : values) {
if (status.equals(value.status)) {
return value;
}
}
return null;
}
}
package com.jiankangyouyi.cloud.basedata.enums;
import com.jiankangyouyi.cloud.core.constant.BaseEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 记录日志操作类型
*
* @author fengxuanjun
*/
@Getter
@AllArgsConstructor
public enum OperateTypeEnum implements BaseEnum {
/**
* 账号保存
*/
ACCOUNT_SAVE("ACCOUNT_SAVE", "保存"),
/**
* 账号修改
*/
ACCOUNT_UPDATE("ACCOUNT_UPDATE", "修改"),
/**
* 账号删除
*/
ACCOUNT_DELETE("ACCOUNT_DELETE", "删除"),
/**
* 食材状态修改
*/
FOOD_MATERIAL_STATUS_UPDATE("FOOD_MATERIAL_STATUS_UPDATE", "食材状态修改"),
/**
* 加工食品状态修改
*/
FOOD_PROCESS_STATUS_UPDATE("FOOD_PROCESS_STATUS_UPDATE", "加工食品状态修改"),
/**
* 预包装食品修改
*/
FOOD_PACKAGE_STATUS_UPDATE("FOOD_PACKAGE_STATUS_UPDATE", "预包装食品修改"),
/**
* 食材审核状态修改
*/
FOOD_MATERIAL_AUDIT_STATUS_UPDATE("FOOD_MATERIAL_AUDIT_STATUS_UPDATE", "食材审核状态修改"),
/**
* 加工食品审核状态修改
*/
FOOD_PROCESS_AUDIT_STATUS_UPDATE("FOOD_PROCESS_AUDIT_STATUS_UPDATE", "加工食品审核状态修改"),
/**
* 预包装食品审核状态修改
*/
FOOD_PACKAGE_AUDIT_STATUS_UPDATE("FOOD_PACKAGE_AUDIT_STATUS_UPDATE", "预包装食品审核状态修改"),
/**
* 食材保存
*/
FOOD_MATERIAL_SAVE("FOOD_MATERIAL_SAVE", "食材保存"),
/**
* 食材保存草稿
*/
FOOD_MATERIAL_SAVE_DRAFT("FOOD_MATERIAL_SAVE_DRAFT", "食材保存草稿"),
/**
* 加工食品保存
*/
FOOD_PROCESS_SAVE("FOOD_PROCESS_SAVE", "加工食品保存"),
/**
* 加工食品保存草稿
*/
FOOD_PROCESS_SAVE_DRAFT("FOOD_PROCESS_SAVE_DRAFT", "加工食品保存草稿"),
/**
* 预包装食品保存
*/
FOOD_PACKAGE_SAVE("FOOD_PACKAGE_SAVE", "预包装食品保存"),
/**
* 预包装食品保存草稿
*/
FOOD_PACKAGE_SAVE_DRAFT("FOOD_PACKAGE_SAVE_DRAFT", "预包装食品保存草稿"),
/**
* 运动现代库修改
*/
EXERCISE_MODERN_ACTION_UPDATE("EXERCISE_MODERN_ACTION_UPDATE", "运动现代库修改"),
/**
* 现代运动库启用禁用
*/
EXERCISE_MODERN_ACTION_ON_OFF("EXERCISE_MODERN_ACTION_ON_OFF", "现代运动库启用禁用"),
/**
* 休息视频库更新
*/
REST_VIDEO_UPDATE("REST_VIDEO_UPDATE", "休息视频库更新"),
/**
* 休息视频库删除
*/
REST_VIDEO_DELETE("REST_VIDEO_DELETE", "休息视频库删除"),
;
private final String code;
private final String message;
@Override
public String code() {
return code;
}
@Override
public String message() {
return message;
}
public static OperateTypeEnum getEnum(String code) {
OperateTypeEnum[] values = values();
if (code == null) {
return null;
}
for (OperateTypeEnum value : values) {
if (code.equals(value.code)) {
return value;
}
}
return null;
}
}
package com.jiankangyouyi.cloud.basedata.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 七牛云存储空间
*
* @author yangsongbo
*/
@Getter
@AllArgsConstructor
public enum QiniuBucketEnum {
/**
* jkyy
*/
JKYY("jkyy"),
/**
* jkyy-private
*/
JKYY_PRIVATE("jkyy-private"),
/**
* jkyy-av
*/
JKYY_AV("jkyy-av"),
/**
* jkyy-video-private
*/
JKYY_VIDEO_PRIVATE("jkyy-video-private"),
/**
* 食物识别图片存储,使用低频存储
*/
JKYY_FOOD_RECOGNITION("jkyy-food-recognition"),
/**
* 健康有益
*/
JKYY_FOREIGN("jkyy-foreign");
private String bucket;
public static QiniuBucketEnum getEnum(String bucket) {
QiniuBucketEnum[] values = values();
if (bucket == null) {
return null;
}
for (QiniuBucketEnum value : values) {
if (bucket.equals(value.bucket)) {
return value;
}
}
return null;
}
}
package com.jiankangyouyi.cloud.basedata.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 问题类型
*
* @author yangsongbo
*/
@AllArgsConstructor
@Getter
public enum QuestionTypeEnum {
/**
* 单选题
*/
SINGLE_CHOICE("1", "单选题"),
/**
* 多选题
*/
MULTIPLE_CHOICE("2", "多选题"),
/**
* 性别题
*/
GENDER_CHOICE("3", "性别题"),
/**
* 出生日期题
*/
BIRTHDAY_CHOICE("4", "出生日期题"),
/**
* 单项数字题
*/
SINGLE_NUMBER_CHOICE("5", "单项数字题"),
/**
* 多项数字题
*/
MULTIPLE_NUMBER_CHOICE("6", "多项数字题"),
/**
* BMI题
*/
BMI_CHOICE("7", "BMI题"),
/**
* 日期题
*/
DATE_CHOICE("8", "日期题"),
;
private String questionType;
private String describe;
public static QuestionTypeEnum getEnum(String questionType) {
QuestionTypeEnum[] values = values();
if (questionType == null) {
return null;
}
for (QuestionTypeEnum value : values) {
if (questionType.equals(value.questionType)) {
return value;
}
}
return null;
}
}
package com.jiankangyouyi.cloud.basedata.enums;
import lombok.AllArgsConstructor;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
/**
* Redis Key Enum
*
* @author yangsongbo
*/
@AllArgsConstructor
public enum RedisKeyEnum {
/**
* <p>公共参数缓存,后缀为paramGroup、paramKey</p>
*/
STRING_PARAM_VALUE("string_param_value", "公共参数缓存,后缀为paramGroup、paramKey"),
/**
* <p>公共参数缓存,后缀为paramGroup</p>
*/
LIST_PARAM_VALUE("list_param_value", "公共参数缓存,后缀为paramGroup"),
/**
* 问卷缓存,存储为序列化对象,后缀为bizType
*/
STRING_QUESTIONNAIRE("string_base_data_questionnaire", "问卷缓存,存储为序列化对象,后缀为bizType"),
/**
* 身体指标缓存,存储为序列化对象,后缀为indicator
*/
STRING_BODY_INDICATOR("string_base_data_body_indicator", "身体指标缓存,存储为序列化对象,后缀为indicator"),
/**
* 字典缓存 后缀为dictType,dictSubType
*/
LIST_BASE_DICT("list_base_dict", "字典数据缓存,后缀为dictType,dictSubType"),
/**
* 字典分类缓存 后缀为dictType
*/
LIST_BASE_DICT_TYPE("list_base_dict_type", "字典分类数据缓存,后缀为dictType"),
/**
* 指标写锁缓存,存储为指定信息,后缀为classify1
*/
STRING_INDICATOR_LOCK("string_base_data_indicator_lock", "指标写锁缓存,存储为指定信息,后缀为classify1"),
/**
* 身体指标缓存,存储为序列化对象,后缀为indicatorId
*/
STRING_INDICATOR_CACHE("string_base_data_indicator_cache", "指标缓存,存储为序列化对象,后缀为indicatorId"),
/**
* 运动库锁,后缀为exerciseId
*/
STRING_EXERCISE_LOCK("string_base_data_exercise_lock", "运动库锁,后缀为exerciseId"),
/**
* 运动库缓存,存储为序列化对象,后缀为后缀为exerciseId"
*/
STRING_EXERCISE_CACHE("string_base_data_exercise_cache", "运动库缓存,存储为序列化对象,后缀为后缀为exerciseId"),
/**
* 导出数据间隔时间,后缀为account,exportType
*/
STRING_EXPORT_DATA_INTERVAL("string_base_data_export_data_interval", "导出数据间隔时间,后缀为account,exportType"),
/**
* 分类数据列表缓存,后缀为bizProperty
*/
LIST_BASE_CLASSIFY("list_base_data_classify", "分类数据列表缓存,后缀为bizProperty"),
/**
* 问卷缓存,存储为序列化对象,后缀为bizType+版本号
*/
STRING_QUESTIONNAIRE_VERSION("string_base_data_questionnaire_version", "问卷缓存,存储为序列化对象,后缀为bizType+版本号"),
/**
* 运动梅脱值列表缓存,后缀为bizProperty
*/
LIST_SPORT_METRE("list_sport_metre", "运动梅脱值列表缓存,后缀为bizProperty"),
/**
* 食物排行榜-碳水化合物, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量
*/
LIST_FOOD_RANK_LIST_CARBOHYDRATE("list_food_rank_list_carbohydrate", "食物排行榜-碳水化合物, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量"),
/**
* 食物排行榜-蛋白质, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量
*/
LIST_FOOD_RANK_LIST_PROTEIN("list_food_rank_list_protein", "食物排行榜-蛋白质, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量"),
/**
* 食物排行榜-脂肪, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量
*/
LIST_FOOD_RANK_LIST_FAT("list_food_rank_list_fat", "食物排行榜-脂肪, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量"),
/**
* 食物排行榜-膳食纤维, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量
*/
LIST_FOOD_RANK_LIST_DIETARY_FIBER("list_food_rank_list_dietary_fiber", "食物排行榜-膳食纤维, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量"),
/**
* 食物排行榜-胆固醇, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量
*/
LIST_FOOD_RANK_LIST_CHOLESTEROL("list_food_rank_list_cholesterol", "食物排行榜-胆固醇, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量"),
/**
* 食物排行榜-钙, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量
*/
LIST_FOOD_RANK_LIST_CALCIUM("list_food_rank_list_calcium", "食物排行榜-钙, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量"),
/**
* 食物排行榜-铁, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量
*/
LIST_FOOD_RANK_LIST_IRON("list_food_rank_list_iron", "食物排行榜-铁, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量"),
/**
* 食物排行榜-锌, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量
*/
LIST_FOOD_RANK_LIST_ZINC("list_food_rank_list_zinc", "食物排行榜-锌, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量"),
/**
* 食物排行榜-锰, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量
*/
LIST_FOOD_RANK_LIST_MANGANESE("list_food_rank_list_manganese", "食物排行榜-锰, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量"),
/**
* 食物排行榜-镁, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量
*/
LIST_FOOD_RANK_LIST_MAGNESIUM("list_food_rank_list_magnesium", "食物排行榜-镁, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量"),
/**
* 食物排行榜-铬, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量
*/
LIST_FOOD_RANK_LIST_CHROMIUM("list_food_rank_list_chromium", "食物排行榜-铬, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量"),
/**
* 食物排行榜-钾, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量
*/
LIST_FOOD_RANK_LIST_POTASSIUM("list_food_rank_list_potassium", "食物排行榜-钾, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量"),
/**
* 食物排行榜-硒, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量
*/
LIST_FOOD_RANK_LIST_SELENIUM("list_food_rank_list_selenium", "食物排行榜-硒, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量"),
/**
* 食物排行榜-钠, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量
*/
LIST_FOOD_RANK_LIST_SODIUM("list_food_rank_list_sodium", "食物排行榜-钠, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量"),
/**
* 食物排行榜-碘, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量
*/
LIST_FOOD_RANK_LIST_IODINE("list_food_rank_list_iodine", "食物排行榜-碘, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量"),
/**
* 食物排行榜-维生素C, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量
*/
LIST_FOOD_RANK_LIST_VITAMIN_C("list_food_rank_list_vitamin_c", "食物排行榜-维生素C, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量"),
/**
* 食物排行榜-维生素A, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量
*/
LIST_FOOD_RANK_LIST_VITAMIN_A("list_food_rank_list_vitamin_a", "食物排行榜-维生素A, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量"),
/**
* 食物排行榜-维生素B1(硫胺素), 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量
*/
LIST_FOOD_RANK_LIST_VITAMIN_B1("list_food_rank_list_vitamin_b1", "食物排行榜-维生素B1(硫胺素), 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量"),
/**
* 食物排行榜-维生素D, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量
*/
LIST_FOOD_RANK_LIST_VITAMIN_D("list_food_rank_list_vitamin_d", "食物排行榜-维生素D, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量"),
/**
* 食物排行榜-维生素E, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量
*/
LIST_FOOD_RANK_LIST_VITAMIN_E("list_food_rank_list_vitamin_e", "食物排行榜-维生素E, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量"),
/**
* 食物排行榜-维生素B2(核黄素), 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量
*/
LIST_FOOD_RANK_LIST_VITAMIN_B2("list_food_rank_list_vitamin_b2", "食物排行榜-维生素B2(核黄素), 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量"),
/**
* 食物排行榜-维生素B3(烟酸), 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量
*/
LIST_FOOD_RANK_LIST_VITAMIN_B3("list_food_rank_list_vitamin_b3", "食物排行榜-维生素B3(烟酸), 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量"),
/**
* 食物排行榜-维生素B9(叶酸), 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量
*/
LIST_FOOD_RANK_LIST_VITAMIN_B9("list_food_rank_list_vitamin_b9", "食物排行榜-维生素B9(叶酸), 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量"),
/**
* 食物排行榜-维生素B6, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量
*/
LIST_FOOD_RANK_LIST_VITAMIN_B6("list_food_rank_list_vitamin_b6", "食物排行榜-维生素B6, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量"),
/**
* 食物排行榜-维生素B12, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量
*/
LIST_FOOD_RANK_LIST_VITAMIN_B12("list_food_rank_list_vitamin_b12", "食物排行榜-维生素B12, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量"),
/**
* 食物排行榜-嘌呤, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量
*/
LIST_FOOD_RANK_LIST_PURINE("list_food_rank_list_purine", "食物排行榜-嘌呤, 后缀为 LOW (低含量) 或 HIGH (高含量),推荐数量"),
/**
* 标签库锁
*/
LOCK_TAG("string_base_data_tag_lock", "标签库锁"),
/**
* 食物库同步ES锁
*/
LOCK_FOOD_TO_ES("lock_food_to_es", "食物库同步ES锁"),
/**
* 刷新加工食品库锁
*/
LOCK_FOOD_PROCESS_REFRESH("lock_food_process_refresh", "刷新加工食品库锁"),
/**
* 刷新食材库锁
*/
LOCK_FOOD_MATERIAL_REFRESH("lock_food_material_refresh", "刷新食材库锁"),
;
/**
* redis key
*/
private String key;
/**
* 描述
*/
private String describe;
public String getDescribe() {
return this.describe;
}
public String getKey() {
return this.key;
}
/**
* 获取key
*
* @param keySuffixes key后缀
* @return redis key
*/
public String getKey(String... keySuffixes) {
StringBuilder builder = new StringBuilder(this.key);
if (ArrayUtils.isNotEmpty(keySuffixes)) {
for (String keySuffix : keySuffixes) {
if (StringUtils.isNotBlank(keySuffix)) {
builder.append("_").append(keySuffix);
}
}
}
return builder.toString();
}
}
package com.jiankangyouyi.cloud.basedata.enums;
import com.jiankangyouyi.cloud.basedata.api.model.entity.questionnaire.SingleChoiceMainOption;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* 地区枚举
*
* @author jingpeng
*/
@Getter
@AllArgsConstructor
public enum RegionEnum {
/**
* 北京市
*/
BJ("110000","北京市"),
/**
* 天津市
*/
TJ("120000","天津市"),
/**
* 河北省
*/
HE("130000","河北省"),
/**
* 山西省
*/
SX("140000","山西省"),
/**
* 内蒙古自治区
*/
NM("150000","内蒙古自治区"),
/**
* 辽宁省
*/
LN("210000","辽宁省"),
/**
* 吉林省
*/
JL("220000","吉林省"),
/**
* 黑龙江省
*/
HL("230000","黑龙江省"),
/**
* 上海市
*/
SH("310000","上海市"),
/**
* 江苏省
*/
JS("320000","江苏省"),
/**
* 浙江省
*/
ZJ("330000","浙江省"),
/**
* 安徽省
*/
AH("340000","安徽省"),
/**
* 福建省
*/
FJ("350000","福建省"),
/**
* 江西省
*/
JX("360000","江西省"),
/**
* 山东省
*/
SD("370000","山东省"),
/**
* 河南省
*/
HA("410000","河南省"),
/**
* 湖北省
*/
HB("420000","湖北省"),
/**
* 湖南省
*/
HM("430000","湖南省"),
/**
* 广东省
*/
GD("440000","广东省"),
/**
* 广西壮族自治区
*/
GX("450000","广西壮族自治区"),
/**
* 海南省
*/
HI("460000","海南省"),
/**
* 重庆市
*/
CQ("500000","重庆市"),
/**
* 四川省
*/
SC("510000","四川省"),
/**
* 贵州省
*/
GZ("520000","贵州省"),
/**
* 云南省
*/
YN("530000","云南省"),
/**
* 西藏自治区
*/
XZ("540000","西藏自治区"),
/**
* 陕西省
*/
SN("610000","陕西省"),
/**
* 甘肃省
*/
GS("620000","甘肃省"),
/**
* 青海省
*/
QH("630000","青海省"),
/**
* 宁夏回族自治区
*/
NX("640000","宁夏回族自治区"),
/**
* 新疆维吾尔自治区
*/
XJ("650000","新疆维吾尔自治区"),
/**
* 台湾省
*/
TW("710000","台湾省"),
/**
* 香港特别行政区
*/
HK("810000","香港特别行政区"),
/**
* 澳门特别行政
*/
MO("820000","澳门特别行政"),
;
private String code;
private String comment;
public String code() {
return code;
}
public String comment() {
return comment;
}
public static RegionEnum parseCode(String code) {
for (RegionEnum enumItem : RegionEnum.values()) {
if (enumItem.getCode().equals(code)) {
return enumItem;
}
}
return null;
}
public static RegionEnum parseComment(String comment) {
for (RegionEnum enumItem : RegionEnum.values()) {
if (enumItem.getComment().equals(comment)) {
return enumItem;
}
}
return null;
}
public static Boolean contains(String code) {
return parseCode(code) !=null || parseComment(code)!=null;
}
/**
* 返回地区枚举的选择器选项
* @return
*/
public static List<SingleChoiceMainOption> getChoiceOptions(){
List<SingleChoiceMainOption> list = new ArrayList<>();
int i =0;
for (RegionEnum type : RegionEnum.values()){
i++;
list.add(SingleChoiceMainOption.builder()
.optionCode(String.valueOf(i))
.optionValue(String.valueOf(i))
.optionContents(Collections.singletonList(type.getComment()))
.imageUrls(null)
.supplementContents(null)
.build());
}
return list;
}
}
package com.jiankangyouyi.cloud.basedata.enums;
import com.jiankangyouyi.cloud.core.constant.BaseEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 处理码定义
*
* @author yangsongbo
*/
@Getter
@AllArgsConstructor
public enum ResultCodeEnum implements BaseEnum {
/**
* 成功
*/
SUCCESS("0", "成功"),
/**
* 登出
*/
LOGOUT("LOGOUT", "登出"),
/**
* 处理失败
*/
ERROR("ERROR", "处理失败"),
/**
* 获取问卷失败
*/
HBD0001("HBD0001", "获取问卷失败"),
/**
* 上传文件失败
*/
HBD0002("HBD0002", "上传文件失败"),
/**
* 保存失败
*/
HBD0003("HBD0003", "保存失败,请重新尝试"),
/**
* 更新失败
*/
HBD0004("HBD0004", "更新失败,请重新尝试"),
/**
* 删除失败
*/
HBD0005("HBD0005", "删除失败,请重新尝试"),
/**
* 参数不合法
*/
HBD0006("HBD0006", "参数不合法"),
/**
* 问题分类不存在
*/
HBD0007("HBD0007", "分类不存在"),
/**
* 上传文件失败/七牛云返回 qiniuKey 为 NULL
*/
HBD0008("HBD0008", "上传文件失败"),
/**
* 问题详情解析失败
*/
HBD0009("HBD0009", "问题详情解析失败"),
/**
* 食物批量启用停用操作存在失败条数
*/
HBD0010("HBD0010", "食物批量启用停用操作存在失败条数"),
/**
* 列表数据为空,无法导出
*/
HBD0011("HBD0011", "列表数据为空,无法导出"),
/**
* 导出数据失败
*/
HBD0012("HBD0012", "导出数据失败"),
/**
* 当前数据已存在,保存失败
*/
HBD0013("HBD0013", "当前数据已存在,保存失败"),
/**
* 待操作的数据不存在,操作失败
*/
HBD0014("HBD0014", "待操作的数据不存在,操作失败"),
/**
* 食物识别横向扩充兜底方案接口操作失败
*/
HBD0015("HBD0015", "食物识别横向扩充兜底方案接口操作失败"),
/**
* 操作过于频繁,请稍后再试
*/
HBD0016("HBD0016", "操作过于频繁,请稍后再试"),
/**
* 食材数据不存在
*/
HBD0100("HBD0100", "食材数据不存在"),
/**
* 加工食品数据不存在
*/
HBD0101("HBD0101", "加工食品数据不存在"),
/**
* 预包装食品数据不存在
*/
HBD0102("HBD0102", "预包装食品数据不存在"),
/**
* 数据已被删除
*/
HBD0103("HBD0103", "数据已被删除"),
/**
* 图片读取失败
*/
IMG0001("IMG0001", "图片读取失败"),
/**
* 图片大小错误
*/
IMG0002("IMG0002", "图片大小错误"),
/**
* 图片尺寸错误
*/
IMG0003("IMG0003", "图片尺寸错误"),
/**
* 图片格式读取失败
*/
IMG0004("IMG0004", "图片格式读取失败"),
/**
* 图片格式错误
*/
IMG0005("IMG0005", "图片格式错误"),
/**
* 食物识别失败
*/
IMG0006("IMG0006", "食物识别失败"),
/**
* HTTP BODY参数错误
*/
SSP0002("SSP0002", "HTTP BODY参数错误"),
/**
* 尚未匹配可用的封面信息
*/
HBD0104("HBD0104", "尚未匹配可用的封面信息"),
/**
* 尚未配置权限
*/
HBD0105("HBD0105", "尚未配置权限"),
/**
* 非法操作
*/
HBD0106("HBD0106", "非法操作"),
/**
* 处理失败
*/
DATA0035("DATA0035", "食物识别失败"),
/**
* 翻译失败
*/
TRANSLATE0001("TRANSLATE0001", "翻译失败"),
/**
* 文本纠错失败
*/
DATA0036("DATA0036", "文本纠错失败"),
/**
* 图像超分辨率识别失败
*/
DATA0037("DATA0037", "图像超分辨率识别失败"),
/**
* 语句重复度计算失败
*/
DATA0038("DATA0038", "语句重复度计算失败"),
;
private final String code;
private final String message;
@Override
public String code() {
return code;
}
@Override
public String message() {
return message;
}
public static ResultCodeEnum getEnum(String code) {
ResultCodeEnum[] values = values();
if (code == null) {
return null;
}
for (ResultCodeEnum value : values) {
if (code.equals(value.code)) {
return value;
}
}
return null;
}
}
package com.jiankangyouyi.cloud.basedata.enums;
import com.jiankangyouyi.cloud.core.constant.BaseEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 保存类型
*
* @author 王亚雷
*/
@Getter
@AllArgsConstructor
public enum SaveTypeEnum implements BaseEnum {
/**
* 普通保存
*/
COMMON_SAVE("1", "普通保存"),
/**
* 草稿保存
*/
DRAFT_SAVE("2", "草稿保存"),
;
private final String code;
private final String message;
@Override
public String code() {
return code;
}
@Override
public String message() {
return message;
}
public static SaveTypeEnum getEnum(String code) {
SaveTypeEnum[] values = values();
if (code == null) {
return null;
}
for (SaveTypeEnum value : values) {
if (code.equals(value.code)) {
return value;
}
}
return null;
}
}
package com.jiankangyouyi.cloud.basedata.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 启用/禁用状态
*/
@Getter
@AllArgsConstructor
public enum UseFlagEnum {
/**
* 单选题
*/
USS_ABLE("1", "启用"),
DISABLE("0", "禁用");
/**
* redis key
*/
private String code;
/**
* 描述
*/
private String describe;
public String getDescribe() {
return this.describe;
}
public String getKey() {
return this.code;
}
public static UseFlagEnum getEnum(String code) {
UseFlagEnum[] values = values();
if (code == null) {
return null;
}
for (UseFlagEnum value : values) {
if (code.equals(value.code)) {
return value;
}
}
return null;
}
}
package com.jiankangyouyi.cloud.basedata.enums;
import com.jiankangyouyi.cloud.basedata.api.enums.GenderEnum;
import com.jiankangyouyi.cloud.basedata.constant.Constants;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NonNull;
import org.apache.commons.lang3.StringUtils;
import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
/**
* 腰臀比 状态
*
* @author : lvhaoran
* @date Date : 2022年01月19日
*/
@AllArgsConstructor
@Getter
public enum WaistHipRatioEnum {
/**
* 腹型肥胖
*/
ABDOMINAL_OBESITY("1", "腹型肥胖"),
/**
* 正常
*/
NORMAL("2", "正常"),
;
private String status;
/**
* 描述
*/
private String description;
public static WaistHipRatioEnum getEnum(String status) {
WaistHipRatioEnum[] values = values();
if (status == null) {
return null;
}
for (WaistHipRatioEnum value : values) {
if (status.equals(value.status)) {
return value;
}
}
return null;
}
/**
* 获取腰臀比 状态
*
* @param gender 性别
* @param waistHipRatio 腰臀比
* @return WaistHipRatioEnum
*/
public static WaistHipRatioEnum getWaistHipRatioStatus(@NotBlank String gender, @NonNull BigDecimal waistHipRatio) {
BigDecimal waistHipRatioMaleLimit = new BigDecimal("0.9");
BigDecimal waistHipRatioFemaleLimit = new BigDecimal("0.85");
if (StringUtils.equals(gender, GenderEnum.MALE.getGender())) {
if (waistHipRatio.compareTo(waistHipRatioMaleLimit) > 0) {
return WaistHipRatioEnum.ABDOMINAL_OBESITY;
} else {
return WaistHipRatioEnum.NORMAL;
}
} else {
if (waistHipRatio.compareTo(waistHipRatioFemaleLimit) > 0) {
return WaistHipRatioEnum.ABDOMINAL_OBESITY;
} else {
return WaistHipRatioEnum.NORMAL;
}
}
}
/**
* 获取腰臀比话术
*
* @param gender 性别
* @param waistHipRatioEnum 腰臀比状态
* @return String
*/
public static String getWaistHipRatioAdvice(@NotBlank String gender, @NonNull WaistHipRatioEnum waistHipRatioEnum) {
String advice = "";
switch (waistHipRatioEnum) {
case ABDOMINAL_OBESITY:
if (StringUtils.equals(gender, GenderEnum.MALE.getGender())) {
advice = Constants.MALE_ABDOMINAL_OBESITY_ADVICE;
} else {
advice = Constants.FEMALE_ABDOMINAL_OBESITY_ADVICE;
}
break;
case NORMAL:
if (StringUtils.equals(gender, GenderEnum.MALE.getGender())) {
advice = Constants.MALE_NORMAL_ADVICE;
} else {
advice = Constants.FEMALE_NORMAL_ADVICE;
}
break;
default:
break;
}
return advice;
}
}
package com.jiankangyouyi.cloud.basedata.enums.baidu;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 百度鉴权认证机制 错误信息
*
* @author fengxuanjun
*/
@AllArgsConstructor
@Getter
public enum AccessTokenErrorEnum {
/**
* API Key不正确
*/
API_KEY_ERROR("unknown client id", "API Key不正确"),
/**
* Secret Key不正确
*/
SECRET_KEY_ERROR("Client authentication failed", "Secret Key不正确"),
;
private String error;
private String description;
public static AccessTokenErrorEnum getEnum(String error) {
AccessTokenErrorEnum[] values = values();
if (error == null) {
return null;
}
for (AccessTokenErrorEnum value : values) {
if (error.equals(value.error)) {
return value;
}
}
return null;
}
}
package com.jiankangyouyi.cloud.basedata.enums.classify;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 问题分类级别
*
* @author fengxuanjun
*/
@AllArgsConstructor
@Getter
public enum BaseDataClassifyEnum {
/**
* 顶级分类parentId值
*/
PARENT("0", "顶级分类parentId值"),
;
private final String classifyValue;
private final String describe;
public static BaseDataClassifyEnum getEnum(String classifyValue) {
BaseDataClassifyEnum[] values = values();
if (classifyValue == null) {
return null;
}
for (BaseDataClassifyEnum value : values) {
if (classifyValue.equals(value.classifyValue)) {
return value;
}
}
return null;
}
}
package com.jiankangyouyi.cloud.basedata.enums.classify;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 分类业务属性
*
* @author fengxuanjun
*/
@AllArgsConstructor
@Getter
public enum BizPropertyEnum {
/**
* 食材库
*/
FOOD("1", "食材库"),
/**
* 加工食品库
*/
PROCESSED_FOOD("2", "加工食品库"),
/**
* 包装食品库
*/
PACKING_FOOD("3", "包装食品库"),
/**
* 中医药材库
*/
TCM_DRUG("4", "中医药材库"),
/**
* 问题库
*/
QUESTION("5", "问题库"),
/**
* 指标库
*/
TARGET("6", "指标库"),
/**
* 科普知识问答
*/
KPZSWD("7", "科普知识问答"),
/**
* 硬件库
*/
HARDWARE("8", "硬件库"),
/**
* 文章库
*/
ARTICLE("9", "文章库"),
/**
* 项目权限管理
*/
PROJECT("10", "项目权限管理"),
/**
* 疾病库
*/
DISEASE("11", "疾病库"),
/**
* 新科普知识问答
*/
XKPZSWD("12", "新科普知识问答"),
/**
* 基础库
*/
BASE_LIBRARY("13", "基础库"),
/**
* 标签库
*/
TAG_LIBRARY("14", "标签库"),
/**
* 海外-食材库
*/
HW_MATERIA_FOOD("90", "海外-食材库"),
/**
* 海外-加工食品库
*/
HW_PROCESS_FOOD("91", "海外-加工食品库"),
/**
* 海外-预包装食品库
*/
HW_PACKAGE_FOOD("92", "海外-预包装食品库"),
;
private String bizProperty;
private String describe;
public static BizPropertyEnum getEnum(String bizProperty) {
BizPropertyEnum[] values = values();
if (bizProperty == null) {
return null;
}
for (BizPropertyEnum value : values) {
if (bizProperty.equals(value.bizProperty)) {
return value;
}
}
return null;
}
}
package com.jiankangyouyi.cloud.basedata.enums.disease;
import com.jiankangyouyi.cloud.core.constant.BaseEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 排序方式
*
* @author fengxuanjun
*/
@AllArgsConstructor
@Getter
public enum OrderSortEnum implements BaseEnum {
/**
* 创建时间
*/
DESC("DESC", "降序"),
/**
* 升序
*/
ASC("ASC", "升序"),
;
private String sortType;
private String describe;
public static OrderSortEnum getEnum(String sortType) {
OrderSortEnum[] values = values();
if (sortType == null) {
return null;
}
for (OrderSortEnum value : values) {
if (sortType.equals(value.sortType)) {
return value;
}
}
return null;
}
@Override
public String code() {
return this.getSortType();
}
@Override
public String message() {
return this.getDescribe();
}
}
package com.jiankangyouyi.cloud.basedata.enums.disease;
import com.jiankangyouyi.cloud.core.constant.BaseEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 排序字段
*
* @author fengxuanjun
*/
@AllArgsConstructor
@Getter
public enum SortFieldEnum implements BaseEnum {
/**
* 创建时间
*/
CREATE_TIME("createTime", "创建时间"),
/**
* 修改时间
*/
UPDATE_TIME("updateTime", "修改时间"),
;
private String field;
private String describe;
public static SortFieldEnum getEnum(String field) {
SortFieldEnum[] values = values();
if (field == null) {
return null;
}
for (SortFieldEnum value : values) {
if (field.equals(value.field)) {
return value;
}
}
return null;
}
@Override
public String code() {
return this.getField();
}
@Override
public String message() {
return this.describe;
}
}
package com.jiankangyouyi.cloud.basedata.enums.export;
import com.jiankangyouyi.cloud.core.constant.BaseEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 后台管理数据导出位置
*
* @author yangsongbo
*/
@AllArgsConstructor
@Getter
public enum ExportLocationEnum implements BaseEnum {
/**
* 食物库
*/
FOOD("FOOD", "食物库"),
/**
* 海外食物库
*/
FOREIGN_FOOD("FOREIGN_FOOD", "海外食物库"),
/**
* 知识问答库
*/
KNOWLEDGE("KNOWLEDGE", "知识问答库"),
;
private final String code;
private final String message;
public static ExportLocationEnum getEnum(String exportStatus) {
ExportLocationEnum[] values = values();
if (exportStatus == null) {
return null;
}
for (ExportLocationEnum value : values) {
if (exportStatus.equals(value.name())) {
return value;
}
}
return null;
}
@Override
public String code() {
return this.code;
}
@Override
public String message() {
return this.message;
}
}
package com.jiankangyouyi.cloud.basedata.enums.export;
import com.jiankangyouyi.cloud.core.constant.BaseEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 后台管理数据导出状态
*
* @author yangsongbo
*/
@AllArgsConstructor
@Getter
public enum ExportStatusEnum implements BaseEnum {
/**
* 开始处理
*/
START("START", "开始处理"),
/**
* 查询数据中
*/
FETCH_DATA("FETCH_DATA", "查询数据中"),
/**
* EXCEL生成中
*/
BUILD_EXCEL("BUILD_EXCEL", "EXCEL生成中"),
/**
* 处理完成
*/
FINISH("FINISH", "处理完成"),
/**
* 处理异常
*/
ERROR("ERROR", "处理异常"),
;
private final String code;
private final String message;
public static ExportStatusEnum getEnum(String exportStatus) {
ExportStatusEnum[] values = values();
if (exportStatus == null) {
return null;
}
for (ExportStatusEnum value : values) {
if (exportStatus.equals(value.name())) {
return value;
}
}
return null;
}
@Override
public String code() {
return this.code;
}
@Override
public String message() {
return this.message;
}
}
package com.jiankangyouyi.cloud.basedata.enums.export;
import com.jiankangyouyi.cloud.core.constant.BaseEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 后台管理数据导出类型
*
* @author yangsongbo
*/
@AllArgsConstructor
@Getter
public enum ExportTypeEnum implements BaseEnum {
/**
* 食材库
*/
FOOD_MATERIAL("FOOD_MATERIAL", "食材库"),
/**
* 加工食品库
*/
FOOD_PROCESS("FOOD_PROCESS", "加工食品库"),
/**
* 预包装食品库
*/
FOOD_PACKAGE("FOOD_PACKAGE", "预包装食品库"),
/**
* 海外食材库
*/
FOREIGN_FOOD_MATERIAL("FOREIGN_FOOD_MATERIAL", "海外食材库"),
/**
* 海外加工食品库
*/
FOREIGN_FOOD_PROCESS("FOREIGN_FOOD_PROCESS", "海外加工食品库"),
/**
* 海外预包装食品库
*/
FOREIGN_FOOD_PACKAGE("FOREIGN_FOOD_PACKAGE", "海外预包装食品库"),
/**
* 知识问答库
*/
QUESTIONS_AND_ANSWERS("QUESTIONS_AND_ANSWERS", "知识问答库"),
;
private final String code;
private final String message;
public static ExportTypeEnum getEnum(String exportStatus) {
ExportTypeEnum[] values = values();
if (exportStatus == null) {
return null;
}
for (ExportTypeEnum value : values) {
if (exportStatus.equals(value.name())) {
return value;
}
}
return null;
}
@Override
public String code() {
return this.code;
}
@Override
public String message() {
return this.message;
}
}
package com.jiankangyouyi.cloud.basedata.enums.food;
import com.jiankangyouyi.cloud.core.constant.BaseEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 食物排行榜-排序方向
*
* @author yangsongbo
*/
@AllArgsConstructor
@Getter
public enum FoodRankListDirectionEnum implements BaseEnum {
/**
* 低含量排行
*/
LOW("LOW", "低含量排行"),
/**
* 高含量排行
*/
HIGH("HIGH", "高含量排行");
private final String code;
private final String message;
public static FoodRankListDirectionEnum getEnum(String code) {
FoodRankListDirectionEnum[] values = values();
if (code == null) {
return null;
}
for (FoodRankListDirectionEnum value : values) {
if (code.equals(value.getCode())) {
return value;
}
}
return null;
}
@Override
public String code() {
return this.code;
}
@Override
public String message() {
return this.message;
}
}
package com.jiankangyouyi.cloud.basedata.enums.food;
import com.jiankangyouyi.cloud.core.constant.BaseEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 食物排行榜营养素Enum
*
* @author yangsongbo
*/
@AllArgsConstructor
@Getter
public enum FoodRankListNutrientEnum implements BaseEnum {
/**
* 碳水化合物
*/
CARBOHYDRATE("carbohydrate", "碳水化合物"),
/**
* 脂肪
*/
FAT("fat", "脂肪"),
/**
* 脂肪
*/
PROTEIN("protein", "蛋白质"),
/**
* 膳食纤维
*/
DIETARY_FIBER("dietaryFiber", "膳食纤维"),
/**
* 胆固醇
*/
CHOLESTEROL("cholesterol", "胆固醇"),
/**
* 钙
*/
CALCIUM("calcium", "钙"),
/**
* 铁
*/
IRON("iron", "铁"),
/**
* 锌
*/
ZINC("zinc", "锌"),
/**
* 锰
*/
MANGANESE("manganese", "锰"),
/**
* 镁
*/
MAGNESIUM("magnesium", "镁"),
/**
* 铬
*/
CHROMIUM("chromium", "铬"),
/**
* 钾
*/
POTASSIUM("potassium", "钾"),
/**
* 硒
*/
SELENIUM("selenium", "硒"),
/**
* 钠
*/
SODIUM("sodium", "钠"),
/**
* 碘
*/
IODINE("iodine", "碘"),
/**
* 维生素C
*/
VITAMIN_C("vitaminC", "维生素C"),
/**
* 维生素A
*/
VITAMIN_A("vitaminA", "维生素A"),
/**
* 维生素B1(硫胺素)
*/
VITAMIN_B1("vitaminB1", "维生素B1(硫胺素)"),
/**
* 维生素D
*/
VITAMIN_D("vitaminD", "维生素D"),
/**
* 维生素E
*/
VITAMIN_E("vitaminE", "维生素E"),
/**
* 维生素B2(核黄素)
*/
VITAMIN_B2("vitaminB2", "维生素B2(核黄素)"),
/**
* 维生素B3
*/
VITAMIN_B3("vitaminB3", "维生素B3"),
/**
* 维生素B9(叶酸)
*/
VITAMIN_B9("vitaminB9", "维生素B9(叶酸)"),
/**
* 维生素B6
*/
VITAMIN_B6("vitaminB6", "维生素B6"),
/**
* 维生素B12
*/
VITAMIN_B12("vitaminB12", "维生素B12"),
/**
* 嘌呤
*/
PURINE("purine", "嘌呤");
private final String code;
private final String message;
public static FoodRankListNutrientEnum getEnum(String code) {
FoodRankListNutrientEnum[] values = values();
if (code == null) {
return null;
}
for (FoodRankListNutrientEnum value : values) {
if (code.equals(value.getCode())) {
return value;
}
}
return null;
}
@Override
public String code() {
return this.code;
}
@Override
public String message() {
return this.message;
}
}
package com.jiankangyouyi.cloud.basedata.enums.hw_food;
import com.jiankangyouyi.cloud.core.constant.BaseEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 华为食材分类code映射枚举
* @description: 华为食材一级分类code映射枚举
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2022/4/11 4:59 下午
*/
@AllArgsConstructor
@Getter
public enum HWFoodMaterialClsEnum implements BaseEnum {
//region 一级分类
/**
* 谷物
*/
CEREAL("9062","谷物"),
/**
* 杂豆类及制品
*/
MIXEDBEANS("9063","杂豆类及制品"),
/**
* 薯类
*/
POTATO("9064","薯类"),
/**
* 菌藻类
*/
ALGAEFUNGI("9065","菌藻类"),
/**
* 蔬菜类及制品
*/
VEGETABLE("9066","蔬菜类及制品"),
/**
* 水果类及制品
*/
FRUITS("9067","水果类及制品"),
/**
* 乳类及制品
*/
MILK("9068","乳类及制品"),
/**
* 畜肉类及制品
*/
MEAT("9069","畜肉类及制品"),
/**
* 禽肉类及制品
*/
POULTRY("9070","禽肉类及制品"),
/**
* 水产类及制品
*/
AQUATIC("9071","水产类及制品"),
/**
* 蛋类及制品
*/
EGG("9072","蛋类及制品"),
/**
* 大豆类及制品
*/
BEANS("9073","大豆类及制品"),
/**
* 坚果类及制品
*/
NUT("9074","坚果类及制品"),
/**
* 油脂类及制品
*/
OIL("9075","油脂类及制品"),
/**
* 饮料类
*/
BEVERAGES("9076","饮料类"),
/**
* 调味品
*/
CONDIMENTS("9077","调味品"),
/**
* 糖果/糖/蜂蜜
*/
SUGARANDHONEY("9078","糖果/糖/蜂蜜"),
/**
* 零食
*/
SNACKS("9079","零食"),
/**
* 其他
*/
OTHER("9080","其他"),
//endregion
//region 二级分类
/**
* 马铃薯及其制品
*/
SPUDS("906401","马铃薯和马铃薯制品"),
//endregion
;
private final String clsCode;
private final String clsName;
@Override
public String code() {
return getClsCode();
}
@Override
public String message() {
return getClsName();
}
}
package com.jiankangyouyi.cloud.basedata.model.bean;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author wangyalei
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ActionVideoBean {
/**
* 视频封面图 地址
*/
private String coverImageKeyUrl;
/**
* 视频列表
*/
private List<VideoSourceBean> videoList;
}
package com.jiankangyouyi.cloud.basedata.model.bean;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* 问答词条语意查重
*
* @author : lvhaoran
* @date Date : 2022年07月14日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class AiNlpTextBean {
/**
* 相似度
*/
private BigDecimal similarity;
/**
* 重复词条id
*/
private String repeatEntryId;
/**
* 重复词条内容
*/
private String repeatEntryContent;
}
package com.jiankangyouyi.cloud.basedata.model.bean;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 问答词条语意查重
*
* @author : lvhaoran
* @date Date : 2022年07月14日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class AiNlpTextRecheckingBean {
/**
* 唯一标识
*/
private String id;
/**
* 问题查重结果
*/
private List<AiNlpTextBean> rq;
/**
* 答案查重结果
*/
private List<AiNlpTextBean> ra;
}
package com.jiankangyouyi.cloud.basedata.model.bean;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 公共参数对象
*
* @author yangsongbo
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BaseParam {
/**
* 参数组
*/
private String paramGroup;
/**
* 参数Key
*/
private String paramKey;
}
package com.jiankangyouyi.cloud.basedata.model.bean;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 错误结果
*
* @author : lvhaoran
* @date Date : 2022年07月14日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ErrorInfosBean {
/**
* 错误字符
*/
private String errorChar;
/**
* 纠正后字符
*/
private String rightChar;
/**
* 错误字符索引
*/
private int index;
}
package com.jiankangyouyi.cloud.basedata.model.bean;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.jiankangyouyi.cloud.core.util.json.serialize.QiniuKeyToUrlJsonSerialize;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* 精选食谱详情
*
* @author : lvhaoran
* @date Date : 2022年08月01日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FeaturedRecipesBean {
/**
* 食物名称
*/
private String foodName;
/**
* 食物id
*/
private String foodId;
/**
* 食物图片
*/
@JsonSerialize(using = QiniuKeyToUrlJsonSerialize.class)
private String imageUrl;
/**
* 食物质量
*/
private BigDecimal count;
/**
* 食物单位
*/
private String unit;
/**
* 食物热量
*/
private int energy;
}
package com.jiankangyouyi.cloud.basedata.model.bean;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 精选食谱标签
*
* @author : lvhaoran
* @date Date : 2022年08月04日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FeaturedRecipesTagBean {
/**
* icon
*/
private String icon;
/**
* 标签
*/
private String tag;
/**
* 标签名
*/
private String tagName;
/**
* 标签描述
*/
private String describe;
/**
* 背景图
*/
private String imageUrl;
}
package com.jiankangyouyi.cloud.basedata.model.bean;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 食谱对象
*
* @author : lvhaoran
* @date Date : 2022年08月05日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class MealInfoBean {
/**
* 图标
*/
private String icon;
/**
* 餐别名称
*/
private String mealTypeName;
/**
* 配餐食物信息
*/
private List<FeaturedRecipesBean> foodList;
}
package com.jiankangyouyi.cloud.basedata.model.bean;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* TODO:功能描述
*
* @author : lvhaoran
* @date Date : 2022年07月14日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class RecheckResInfo {
private List<List<Object>> rq;
private List<List<Object>> ra;
}
package com.jiankangyouyi.cloud.basedata.model.bean;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* 文本
*
* @author : lvhaoran
* @date Date : 2022年07月14日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class RecheckResInfoBean {
/**
* 问题
*/
@NotBlank(message = "请求的question不能为空")
@Size(min = 1, max = 50, message = "请求的question长度不合法,合理范围1-50")
private String question;
/**
* 答案
*/
@NotBlank(message = "请求的answer不能为空")
@Size(min = 1, max = 200, message = "请求的answer长度不合法,合理范围1-200")
private String answer;
}
package com.jiankangyouyi.cloud.basedata.model.bean;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 推荐的标签
*
* @author : lvhaoran
* @date Date : 2022年08月04日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class RecipesTagBean {
/**
* 推荐的标签
*/
private String recipesTag;
/**
* 推荐的标签名
*/
private String recipesTagName;
}
package com.jiankangyouyi.cloud.basedata.model.bean;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* 运动梅脱值
*
* @author : lvhaoran
* @date Date : 2022年01月19日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class SportMetreBean {
private static final long serialVersionUID = 1L;
/**
* 类别
*/
private String category;
/**
* 目录
*/
private String content;
/**
* 运动梅脱值
*/
private BigDecimal metre;
}
package com.jiankangyouyi.cloud.basedata.model.bean;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 梅脱脂列表
*
* @author : lvhaoran
* @date Date : 2022年01月20日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class SportMetreListBean {
/**
* 类别
*/
private String category;
/**
* 梅脱值集合
*/
private List<SportMetreBean> sportMetres;
}
package com.jiankangyouyi.cloud.basedata.model.bean;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Map;
/**
* 文本
*
* @author : lvhaoran
* @date Date : 2022年07月14日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class TextBaseBean {
private Map<String, RecheckResInfoBean> recheckResInfoMap;
}
package com.jiankangyouyi.cloud.basedata.model.bean;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* TODO:功能描述
*
* @author : lvhaoran
* @date Date : 2022年07月14日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class TexterrorcorrectBean {
/**
* 纠错后的正确文本
*/
private String rightText;
/**
* 所有错误字符信息
*/
private List<ErrorInfosBean> errorInfos;
}
package com.jiankangyouyi.cloud.basedata.model.bean;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author wangyalei
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class VideoSourceBean {
/**
* 视频规格
*/
private String videoSize;
/**
* 视频时长 /ms
*/
private Long videoMilliseconds;
/**
* 跟随练时长 /ms
*/
private Long followMilliseconds;
/**
* 梅脱值
*/
private Double mets;
/**
* 视频预览(MP4)地址
*/
private String videoMP4KeyUrl;
/**
* m3u8 * 1080 格式视频 地址
*/
private String videoTs1080PKeyUrl;
/**
* m3u8 * 720 格式视频 地址
*/
private String videoTs720PKeyUrl;
/**
* m3u8 * 480 格式视频 地址
*/
private String videoTs480PKeyUrl;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* Http 请求DTO
*
* @author yangsongbo
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public abstract class AbstractHttpApiRequestDTO implements ValidDTO {
private static final long serialVersionUID = 1L;
public static final String FIELD_BIZ_TYPE = "bizType";
public static final String FIELD_APP_ID = "appId";
public static final String FIELD_IP = "ip";
public static final String FIELD_TOKEN = "token";
/**
* 业务类型
*/
@NotBlank(message = "请求参数bizType不能为空")
@Size(max = 10, message = "请求参数bizType长度不合法")
private String bizType;
/**
* IP地址
*/
private String ip;
/**
* 应用ID
*/
@NotBlank(message = "获取appId失败")
@Size(max = 32, message = "appId长度不合法")
private String appId;
/**
* token
*/
private String token;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api;
import com.jiankangyouyi.cloud.core.entity.page.Page;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* 动作库搜索
*
* @author : lvhaoran
* @date Date : 2022年04月25日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ActionSearchDTO extends AbstractHttpApiRequestDTO {
@NotBlank(message = "请求参数 keyword 不能为空")
private String keyword;
@NotNull(message = "请求参数 pageInfo 不能为空")
private Page pageInfo;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
/**
* 图像超分辨率
*
* @author : lvhaoran
* @date Date : 2022年07月14日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class AiImageSuperresolutionDTO extends AbstractHttpApiRequestDTO {
/**
* 进行分辨的图片
*/
@NotBlank(message = "请求的image不能为空")
private String image;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
/**
* 文本纠错
*
* @author : lvhaoran
* @date Date : 2022年07月14日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class AiNlpTextCorrectDTO extends AbstractHttpApiRequestDTO {
/**
* 需要纠错的文本
*/
@NotNull(message = "请求的text不能为空")
@Size(min = 1, max = 20000, message = "请求的text长度不合法,合理范围1-20000")
private List<String> text;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api;
import com.jiankangyouyi.cloud.basedata.model.bean.RecheckResInfoBean;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
/**
* 语句重复度计算
*
* @author : lvhaoran
* @date Date : 2022年07月14日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class AiNlpTextRecheckingDTO extends AbstractHttpApiRequestDTO {
/**
* 基本词条数据
*/
@NotNull(message = "请求的textBase不能为空")
@Size(min = 1, max = 200000, message = "请求的textBase长度不合法,合理范围1-20000")
private List<RecheckResInfoBean> textBase;
/**
* 待查重的词条数据
*/
@NotNull(message = "请求的text不能为空")
@Size(min = 1, max = 100, message = "请求的text长度不合法,合理范围1-100")
private List<RecheckResInfoBean> text;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* @author :wangyalei
* @date :2022/2/15 11:36 上午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class AssessmentCoverConfigInfoDTO extends AbstractHttpApiRequestDTO {
/**
* 权限配置ID
*/
@NotBlank(message = "请求参数 configId 不能为空")
@Size(max =32, message = "请求参数 configId 超过有效长度32")
private String configId;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.Digits;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
/**
* 计算体重指数BMI
*
* @author : lvhaoran
* @date Date : 2022年01月18日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CalculationBmiAdviceDTO extends AbstractHttpApiRequestDTO {
private static final long serialVersionUID = 1L;
@NotBlank(message = "年龄不能为空")
@Pattern(regexp = "^\\+?[1-9][0-9]*$", message = "年龄格式不合法")
@Range(min = 18, max = 80, message = "年龄输入范围18岁-80岁")
private String age;
/**
* 身高 CM 限制范围 100-230
*/
@NotBlank(message = "身高不能为空")
@Pattern(regexp = "^\\+?[1-9][0-9]*$", message = "身高必须为整数")
@Range(min = 100, max = 230, message = "身高输入范围100cm-230cm")
private String height;
/**
* 体重 KG 限制范围 25-200
*/
@NotBlank(message = "体重不能为空")
@Digits(integer = 3, fraction = 1, message = "体重支持1位小数")
@Range(min = 25, max = 200, message = "体重输入范围25kg-200kg")
private String weight;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api;
import lombok.*;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.Digits;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
/**
* 计算体重指数BMI
*
* @author : lvhaoran
* @date Date : 2022年01月18日
*/
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CalculationBmrAdviceRequestDTO extends AbstractHttpApiRequestDTO {
private static final long serialVersionUID = 1L;
/**
* 身高 CM 限制范围 50-230
*/
@NotBlank(message = "请求参数height不能为空")
@Range(min = 50, max = 230, message = "身高输入范围50cm-230cm")
private String height;
/**
* 体重 KG 限制范围 10-200
*/
@NotBlank(message = "请求参数weight不能为空")
@Digits(integer = 3, fraction = 1, message = "体重支持1位小数")
@Range(min = 10, max = 200, message = "体重输入范围10kg-200kg")
private String weight;
/**
* 年龄 限制范围 1-100
*/
@NotBlank(message = "请求参数age不能为空")
@Range(min = 1, max = 100, message = "年龄输入范围1-100")
private String age;
/**
* 性别 限制范围 1男 2女
* {@link GenderEnum}
*/
@NotBlank(message = "请求参数gender不能为空")
@Pattern(regexp = "(1|2)", message = "性别格式不合法")
private String gender;
/**
* 体力活动等级 限制范围 1,2,3
*/
@NotBlank(message = "请求参数activityLevel不能为空")
@Range(min = 1,max = 4, message = "体力活动等级不合法")
private String activityLevel;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api;
import com.jiankangyouyi.cloud.basedata.model.dto.api.component.MetDurationBean;
import lombok.*;
import org.hibernate.validator.constraints.Range;
import javax.validation.Valid;
import javax.validation.constraints.Digits;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Size;
import java.util.List;
/**
* 计算体重指数BMI
*
* @author : jingpeng
* @date Date : 2022年01月18日
*/
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CalculationExerciseEnergyAdviceRequestDTO extends AbstractHttpApiRequestDTO {
private static final long serialVersionUID = 1L;
/**
* 体重 KG 限制范围 10-200
*/
@NotBlank(message = "请求参数weight不能为空")
@Digits(integer = 3, fraction = 1, message = "体重支持1位小数")
@Range(min = 10, max = 200, message = "体重输入范围10kg-200kg")
private String weight;
/**
* 运动ID与时长集合
*/
@Valid
@NotEmpty(message = "请求参数metList不能为空")
@Size(max = 10000, message = "运动集合metList过多")
private List<MetDurationBean> metList;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
/**
* 理想体重
*
* @author : lvhaoran
* @date Date : 2022年01月19日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CalculationIdealWeightAdviceDTO extends AbstractHttpApiRequestDTO {
private static final long serialVersionUID = 1L;
@NotBlank(message = "年龄不能为空")
@Pattern(regexp = "^\\+?[1-9][0-9]*$", message = "年龄格式不合法")
@Range(min = 18, max = 80, message = "年龄输入范围18岁-80岁")
private String age;
/**
* 身高 CM 限制范围 100-230
*/
@NotBlank(message = "身高不能为空")
@Pattern(regexp = "^\\+?[1-9][0-9]*$", message = "身高格式不合法")
@Range(min = 100, max = 230, message = "身高输入范围100cm-230cm")
private String height;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.Digits;
import javax.validation.constraints.NotBlank;
/**
* 如何减掉1公斤?
*
* @author : lvhaoran
* @date Date : 2022年01月19日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CalculationSubtractionWeightAdviceDTO extends AbstractHttpApiRequestDTO {
private static final long serialVersionUID = 1L;
/**
* 体重
*/
@NotBlank(message = "体重不能为空")
@Range(min = 25, max = 200, message = "体重输入范围25kg-200kg")
@Digits(integer = 3, fraction = 1, message = "体重支持1位小数")
private String weight;
/**
* 运动梅脱值
*/
@NotBlank(message = "运动梅脱值不能为空")
@DecimalMin(value = "0", message = "运动梅脱值不能小于0")
@Digits(integer = 3, fraction = 1, message = "运动梅脱值支持1位小数")
private String metre;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.Digits;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
/**
* 腰臀比计算
*
* @author : lvhaoran
* @date Date : 2022年01月19日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CalculationWaistHipRatioAdviceDTO extends AbstractHttpApiRequestDTO {
private static final long serialVersionUID = 1L;
/**
* 性别
*/
@NotBlank(message = "性别不能为空")
@Pattern(regexp = "(1|2)", message = "性别格式不合法")
private String gender;
/**
* 腰围
*/
@NotBlank(message = "腰围不能为空")
@Digits(integer = 3, fraction = 1, message = "腰围支持1位小数")
@Range(min = 50, max = 200, message = "腰围输入范围50cm-200cm")
private String waistline;
/**
* 臀围
*/
@NotBlank(message = "臀围不能为空")
@Digits(integer = 3, fraction = 1, message = "臀围支持1位小数")
@Range(min = 50, max = 200, message = "臀围输入范围50cm-200cm")
private String hipCircumference;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api;
import lombok.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* 精选食谱
*
* @author : lvhaoran
* @date Date : 2022年08月04日
*/
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FeaturedRecipesDTO extends AbstractHttpApiRequestDTO {
private static final long serialVersionUID = 1L;
/**
* 用户id
*/
@NotBlank(message = "请求的userId不能为空")
@Size(max = 64, message = "请求参数userId长度不合法")
private String userId;
/**
* 标签
*/
@NotBlank(message = "请求的tag不能为空")
@Size(max = 64, message = "请求参数tag长度不合法")
private String tag;
/**
* 推荐的标签
*/
private String recipesTag;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api;
import com.jiankangyouyi.cloud.core.entity.page.Page;
import lombok.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
* 精选食谱标签
*
* @author : lvhaoran
* @date Date : 2022年08月04日
*/
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FeaturedRecipesTagDTO extends AbstractHttpApiRequestDTO {
private static final long serialVersionUID = 1L;
/**
* 用户id
*/
@NotBlank(message = "请求的userId不能为空")
@Size(max = 64, message = "请求参数userId长度不合法")
private String userId;
/**
* 分页信息
*/
@NotNull(message = "请求的page不能为空")
private Page page;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api;
import com.jiankangyouyi.cloud.core.entity.page.Page;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.Set;
/**
* @description: 查询文章api
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/10/27 9:47 上午
*/
@Data
public class FindSensitiveApiRequestDTO extends AbstractHttpApiRequestDTO {
/**
* 分页参数
*/
@NotNull(message = "请求参数page不能为空")
@Valid
private Page page;
/**
* 1级分类codes
*/
private Set<String> cls1Codes;
/**
* 2级分类codes
*/
private Set<String> cls2Codes;
/**
* 标签
*/
private Set<String> tags;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
/**
* 食物详情工具
*
* @author : lvhaoran
* @date Date : 2022年05月13日
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class FoodDetailToolDTO extends AbstractHttpApiRequestDTO {
@NotBlank(message = "请求参数classification3不能为空")
private String classification3;
private String classification4;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class FoodIdsDTO extends AbstractHttpApiRequestDTO {
@NotEmpty(message = "foodIds is must not be null")
private List<String> foodIds;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* 描述
*
* @author qxy
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class FoodNameDTO extends AbstractHttpApiRequestDTO{
@NotBlank(message = "foodName is not be null")
private String foodName;
/**
* 分页参数
*/
@NotNull(message = "请求参数page不能为空")
@Valid
private PageInfo pageInfo;
@Data
@AllArgsConstructor
@NoArgsConstructor
public static class PageInfo{
@NotNull(message = "pageNum不能为空")
@Min(value = 1, message = "pageNum必须大于0")
private int pageNum;
@NotNull(message = "pageSize不能为空")
@Min(value = 1, message = "pageSize必须大于0")
private int pageSize;
}
}
package com.jiankangyouyi.cloud.basedata.model.dto.api;
import com.jiankangyouyi.cloud.basedata.model.dto.api.component.FoodRankListQuery;
import com.jiankangyouyi.cloud.core.validator.annotation.IntValHC;
import com.jiankangyouyi.cloud.core.validator.annotation.MaxHC;
import com.jiankangyouyi.cloud.core.validator.annotation.MinHC;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
* 食物排行榜DTO
*
* @author yangsongbo
**/
@Data
@EqualsAndHashCode(callSuper = false)
@AllArgsConstructor
@NoArgsConstructor
public class FoodRankListDTO extends AbstractHttpApiRequestDTO {
/**
* 返回条数,默认为20,范围[1,20]
*/
@MaxHC(value = 20, message = "请求参数top合理范围为[1,20]")
@MinHC(value = 1, message = "请求参数top合理范围为[1,20]")
@IntValHC(message = "请求参数top必须为整数")
private String top;
/**
* 查询列表
*/
@Valid
@NotEmpty(message = "请求参数queryList不能为空")
private List<FoodRankListQuery> queryList;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api;
/**
* 加载运动梅脱值
*
* @author : lvhaoran
* @date Date : 2022年01月19日
*/
public class LoadSportMetreDTO extends AbstractHttpApiRequestDTO {
}
package com.jiankangyouyi.cloud.basedata.model.dto.api;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Size;
import java.util.List;
/**
* 刷新七牛URL,适用于私有链接的URL有效期刷新
*
* @author yangsongbo
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class QiniuUrlRefreshDTO extends AbstractHttpApiRequestDTO {
/**
* 传入的URL链接集合
*/
@Size(max = 100, message = "请求参数urls size不合法")
@NotEmpty(message = "请求参数urls不能为空")
private List<String> urls;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api;
import com.jiankangyouyi.cloud.core.validator.annotation.IntValHC;
import com.jiankangyouyi.cloud.core.validator.annotation.MaxHC;
import com.jiankangyouyi.cloud.core.validator.annotation.MinHC;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* 细粒度食物识别
*
* @author lvqidong
* @date 2022/02/28 13:08
**/
@Data
@EqualsAndHashCode(callSuper = true)
public class RecognitionFoodDTO extends AbstractHttpApiRequestDTO implements Serializable {
/**
* 食物图片Base64
*/
private String image;
/**
* 食物图片URL
*/
private String imageUrl;
/**
* top 返回数量
*/
@IntValHC(message = "请求参数top不合法")
@MaxHC(value = 5, message = "请求参数top范围为[1,5]")
@MinHC(value = 1, message = "请求参数top范围为[1,5]")
private String top;
/**
* 返回食物图像宽度
*/
@IntValHC(message = "请求参数imageWidth不合法")
@MaxHC(value = 9999, message = "请求参数imageWidth范围为[0,9999]")
@MinHC(value = 0, message = "请求参数imageWidth范围为[0,9999]")
private String imageWidth;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api;
import com.jiankangyouyi.cloud.core.validator.annotation.IntValHC;
import com.jiankangyouyi.cloud.core.validator.annotation.MaxHC;
import com.jiankangyouyi.cloud.core.validator.annotation.MinHC;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* 细粒度食物识别
*
* @author june
* @date 2022/02/28 13:08
**/
@Data
@EqualsAndHashCode(callSuper = true)
public class RecognitionFoodNewDTO extends AbstractHttpApiRequestDTO implements Serializable {
/**
* 食物图片Base64
*/
private String image;
/**
* 食物图片URL
*/
private String imageUrl;
/**
* top 返回数量
*/
@IntValHC(message = "请求参数top不合法")
@MaxHC(value = 5, message = "请求参数top范围为[1,5]")
@MinHC(value = 1, message = "请求参数top范围为[1,5]")
private String top;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api.component;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* 排行榜查询对象
*
* @author yangsongbo
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FoodRankListQuery implements Serializable {
/**
* 指定的营养素
* <p>
* {@link com.jiankangyouyi.cloud.basedata.enums.food.FoodRankListNutrientEnum}
*/
@NotBlank(message = "请求参数nutrient不能为空")
private String nutrient;
/**
* 方向: LOW 低含量排行 HIGH 高含量排行
* <p>
* {@link com.jiankangyouyi.cloud.basedata.enums.food.FoodRankListDirectionEnum}
*/
@NotBlank(message = "请求参数direction不能为空")
private String direction;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api.component;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.NotBlank;
/**
* @author jingpeng
* @description 梅脱值 与对应的时长
* @date 2022-01-19
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MetDurationBean {
/**
* 梅脱值
*/
@NotBlank(message = "请求参数 met 不能为空")
@Range(min = 0, max = 10000, message = "梅脱值非法")
private String met;
/**
* 运动时长 分钟
*/
@NotBlank(message = "请求参数 duration 不能为空")
@Range(min = 1, max = 1500, message = "运动时长范围 1-1500")
private String duration;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api.food;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* 食物识别结果对象
*
* @author june
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class FoodDistinguishVo {
/**
* 食物ID
*/
private String foodId;
/**
* 置信度
*/
private BigDecimal score;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api.food;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class GetFoodNutrientInfoV2RequestDTO {
private static final long serialVersionUID = 1L;
/**
* 食物id
*/
private String foodId;
/**
* 克数
*/
private int gram;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api.food;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* 关键 营养素 质量
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class MasterKeyNutrientVO {
/**
* 谷类
*/
private BigDecimal cerealWight = BigDecimal.ZERO;
/**
* 薯类
*/
private BigDecimal potatoWight = BigDecimal.ZERO;
/**
* 蔬菜类
*/
private BigDecimal vegetablesWight = BigDecimal.ZERO;
/**
* 水果类
*/
private BigDecimal fruitClassWight = BigDecimal.ZERO;
/**
* 禽畜肉蛋类
*/
private BigDecimal poultryMeatAndEggsWight = BigDecimal.ZERO;
/**
* 鱼虾类
*/
private BigDecimal shrimpfishesWight = BigDecimal.ZERO;
//
/**
* 奶类
*/
private BigDecimal flesvoedingWight = BigDecimal.ZERO;
/**
* 大豆类
*/
private BigDecimal soyWight = BigDecimal.ZERO;
/**
* 坚果
*/
private BigDecimal nutWight = BigDecimal.ZERO;
/**
* 烹调油
*/
private BigDecimal oilWight = BigDecimal.ZERO;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api.gadgets;
import com.jiankangyouyi.cloud.basedata.model.dto.api.AbstractHttpApiRequestDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
/**
* 描述
*
* @author qxy
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class KnowledgeChallengesDTO extends AbstractHttpApiRequestDTO {
@NotBlank(message = "userId is not be null")
private String userId;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api.gadgets;
import com.jiankangyouyi.cloud.basedata.model.dto.api.AbstractHttpApiRequestDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class KnowledgeChallengesUserDTO extends AbstractHttpApiRequestDTO {
/**
* 用户选择的选项编号 有可能是多选题 所以采用集合
*/
@NotEmpty(message = "userOptionCodes is not be null")
private List<String> userOptionCodes;
@NotBlank(message = "questionId is not be null")
private String questionId;
@NotBlank(message = "userId is not be null")
private String userId;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api.gadgets;
import com.jiankangyouyi.cloud.basedata.model.dto.api.AbstractHttpApiRequestDTO;
import com.jiankangyouyi.cloud.core.entity.page.Page;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
/**
* 描述
*
* @author qxy
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class MaterialSearchDTO extends AbstractHttpApiRequestDTO {
/**
* 名称
*/
private String name;
/**
* 分页参数
*/
@NotNull(message = "请求参数page不能为空")
@Valid
private Page page;
}
\ No newline at end of file
package com.jiankangyouyi.cloud.basedata.model.dto.api.gadgets;
import com.jiankangyouyi.cloud.basedata.model.dto.api.AbstractHttpApiRequestDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
/**
* 描述
*
* @author qxy
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class NutritionPkDTO extends AbstractHttpApiRequestDTO {
@NotBlank(message = "foodAId is not be null")
private String foodAId;
@NotBlank(message = "foodBId is not be null")
private String foodBId;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api.gadgets;
import com.jiankangyouyi.cloud.basedata.model.dto.api.AbstractHttpApiRequestDTO;
import com.jiankangyouyi.cloud.core.entity.page.Page;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class PrivateKitchenDTO extends AbstractHttpApiRequestDTO {
@NotEmpty(message = "materialIds is not be null")
private List<String> materialIds;
/**
* 分页参数
*/
@NotNull(message = "请求参数page不能为空")
@Valid
private Page page;
}
package com.jiankangyouyi.cloud.basedata.model.dto.api.gadgets;
import com.jiankangyouyi.cloud.basedata.model.dto.api.AbstractHttpApiRequestDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
/**
* 描述
*
* @author qxy
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class TopImageDTO extends AbstractHttpApiRequestDTO {
/**
* 类型 {@link com.jiankangyouyi.cloud.basedata.enums.GadgetsTopImageTypeEnum}
*/
@NotBlank(message = "type is not be null")
private String type;
}
package com.jiankangyouyi.cloud.basedata.model.dto.external;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 图像超分辨率
*
* @author : lvhaoran
* @date Date : 2022年07月14日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class AiImageSuperresolutionReqDTO implements Serializable {
private static final long serialVersionUID = 1L;
private ReqData reqData;
@Data
public static class ReqData {
private String image;
}
}
package com.jiankangyouyi.cloud.basedata.model.dto.external;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* 文本纠错
*
* @author : lvhaoran
* @date Date : 2022年07月14日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class AiNlpTextCorrectReqDTO implements Serializable {
private static final long serialVersionUID = 1L;
private ReqData reqData;
@Data
public static class ReqData {
private List<String> text;
}
}
package com.jiankangyouyi.cloud.basedata.model.dto.external;
import com.jiankangyouyi.cloud.basedata.model.bean.RecheckResInfoBean;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Map;
/**
* 语句重复度计算
*
* @author : lvhaoran
* @date Date : 2022年07月14日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class AiNlpTextRecheckingReqDTO implements Serializable {
private static final long serialVersionUID = 1L;
private ReqData reqData;
@Data
public static class ReqData {
private Map<String, RecheckResInfoBean> text_base;
private Map<String, RecheckResInfoBean> text;
}
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* Http 请求DTO
*
* @author yangsongbo
*/
@Data
@AllArgsConstructor
public abstract class AbstractManagerRequestDTO implements ValidDTO {
private static final long serialVersionUID = 1L;
public static final String LOGIN_INFO = "loginInfo";
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager;
import com.jiankangyouyi.cloud.basedata.model.dto.api.AbstractHttpApiRequestDTO;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description: 管理平台id入参通用dto
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/10/25 2:16 下午
*/
@Data
public class ArticleIdRequestDTO extends AbstractHttpApiRequestDTO {
/**
* id
*/
@NotBlank(message = "请求参数文章id 不能为空")
private String id;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.component.ServiceArea;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.component.ServiceValue;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Size;
import java.util.List;
/**
* @author :wangyalei
* @date :2022/2/14 10:21 上午
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class HealthAssessmentCoverConfigDeleteOnOffDTO extends AbstractManagerRequestDTO implements ValidDTO {
/**
* 封面id
*/
@NotBlank(message = "请求参数 coverId 不能为空")
@Size(max = 32,message = "请求参数coverId 超过有效长度 32")
private String coverId;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager;
import com.jiankangyouyi.cloud.basedata.model.dto.api.AbstractHttpApiRequestDTO;
import com.jiankangyouyi.cloud.core.entity.page.Page;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import com.jiankangyouyi.cloud.core.validator.annotation.DateValHC;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
/**
* @author :wangyalei
* @date :2022/2/14 10:21 上午
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class HealthAssessmentCoverConfigListPageDTO extends AbstractManagerRequestDTO implements ValidDTO {
/**
* 应用ID列表
*/
private List<String> appIds;
/**
* 封面类型 {@link com.jiankangyouyi.cloud.basedata.enums.HealthAssessmentCoverConfigEnum}
*/
@Size(max = 32,message = "请求参数 coverType 超过有效长度 32")
private String coverType;
/**
* 1、启用 2、禁用 {@link com.jiankangyouyi.cloud.core.base.enums.ValidStatusEnum}
*/
@Size(max = 1,message = "请求参数 validStatus 超过有效长度 1")
private String validStatus;
/**
* 开始时间
*/
@DateValHC(message = "请求参数 startDate 格式不正确,要求 yyyy-MM-dd HH:mm:ss")
private String startDate;
/**
* 结束时间
*/
@DateValHC(message = "请求参数 startDate 格式不正确,要求 yyyy-MM-dd HH:mm:ss")
private String endDate;
/**
* 排序 ASC 生序 , DESC 降序
*/
@Size(max = 4,message = "请求参数 sort 超过有效长度 4")
private String sort;
/**
* 分页信息
*/
@NotNull(message = "请求参数 page 不能为空")
private Page page;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.component.ServiceArea;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.component.ServiceValue;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Size;
import java.util.List;
/**
* @author :wangyalei
* @date :2022/2/14 10:21 上午
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class HealthAssessmentCoverConfigSaveDTO extends AbstractManagerRequestDTO implements ValidDTO {
/**
* 封面id
*/
private String coverId;
/**
* 应用ID
*/
private String appId;
/**
* 封面类型 {@link com.jiankangyouyi.cloud.basedata.enums.HealthAssessmentCoverConfigEnum}
*/
@NotBlank(message = "请求参数 coverType 不能为空")
@Size(max = 32,message = "请求参数 coverType 超过有效长度 32")
private String coverType;
/**
* 服务简介
*/
@NotBlank(message = "请求参数 serviceProfile 不能为空")
@Size(max = 200,message = "请求参数 serviceProfile 超过有效长度 200")
private String serviceProfile;
/**
* 服务范围
*/
@NotEmpty(message = "请求参数 serviceAreas 不能为空")
@Valid
private List<ServiceArea> serviceAreas;
/**
* 服务价值
*/
@NotEmpty(message = "请求参数 serviceValues 不能为空")
@Valid
private List<ServiceValue> serviceValues;
/**
* 提示信息
*/
@Size(max = 50,message = "请求参数 reminder 超过有效长度 50")
private String reminder;
/**
* 1、启用 2、禁用 {@link com.jiankangyouyi.cloud.core.base.enums.ValidStatusEnum}
*/
@NotBlank(message = "请求参数 validStatus 不能为空")
@Size(max = 1,message = "请求参数 validStatus 超过有效长度 1")
private String validStatus;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager;
import com.jiankangyouyi.cloud.basedata.api.enums.OpenStatusEnum;
import com.jiankangyouyi.cloud.core.entity.page.Page;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import com.jiankangyouyi.cloud.core.validator.annotation.DateValHC;
import com.jiankangyouyi.cloud.core.validator.annotation.EnumHC;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
/**
* @author :wangyalei
* @date :2022/8/4 5:41 下午
*/
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
public class HealthTipListPageDTO extends AbstractManagerRequestDTO implements ValidDTO {
/**
* 小贴士ID (知识ID)
*/
@Size(max = 32,message = "请求参数 tipId 超过有效长度 32")
private String tipId;
/**
* 小贴士标题
*/
@Size(max = 50,message = "请求参数 tipTitle 超过有效长度 50")
private String tipTitle;
/**
* 小贴士内容
*/
@Size(max = 200,message = "请求参数 content 超过有效长度 200")
private String content;
/**
* 自定义标签
*/
private List<String> customTags;
/**
* 启用状态 1、启用 2、禁用
*/
@EnumHC(enumTypes = OpenStatusEnum.class)
private String openStatus;
/**
* 更新开始时间,yyyy-MM-dd HH:mm:ss
*/
@DateValHC(message = "请求参数updateTimeStart不合法")
private String updateTimeStart;
/**
* 更新结束始时间,yyyy-MM-dd HH:mm:ss
*/
@DateValHC(message = "请求参数updateTimeEnd不合法")
private String updateTimeEnd;
/**
* 分页信息
*/
@NotNull(message = "请求参数 page 不能为空")
private Page page;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager;
import com.jiankangyouyi.cloud.basedata.api.enums.OpenStatusEnum;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import com.jiankangyouyi.cloud.core.validator.annotation.EnumHC;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
* @author :wangyalei
* @date :2022/8/4 5:58 下午
*/
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
public class HealthTipOpenStatusUpdateDTO extends AbstractManagerRequestDTO implements ValidDTO {
/**
* 小贴士ID (知识ID) 列表
*/
@NotEmpty(message = "请求参数 tipIds 不能为空")
private List<String> tipIds;
/**
* 启用状态 1、启用 2、禁用
*/
@EnumHC(enumTypes = OpenStatusEnum.class,message = "请求参数 openStatus 不合法")
@NotBlank(message = "请求参数 openStatus 不能为空")
private String openStatus;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.List;
/**
* @author :wangyalei
* @date :2022/8/4 10:04 上午
*/
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
public class HealthTipSaveDTO extends AbstractManagerRequestDTO implements ValidDTO {
/**
* 小贴士ID (知识ID)
*/
@Size(max = 32,message = "请求参数 tipId 超过有效长度 32")
private String tipId;
/**
* 小贴士标题
*/
@NotBlank(message = "请求参数 tipTitle 不能为空")
@Size(max = 50,message = "请求参数 tipTitle 超过有效长度 50")
private String tipTitle;
/**
* 小贴士内容
*/
@NotBlank(message = "请求参数 content 不能为空")
@Size(max = 200,message = "请求参数 content 超过有效长度 200")
private String content;
/**
* 自定义标签
*/
private List<String> customTags;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.FieldNameConstants;
import javax.validation.constraints.NotEmpty;
import java.util.Set;
/**
* @description: 管理平台接口ids通用dto
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/10/25 1:28 下午
*/
@EqualsAndHashCode(callSuper = true)
@Data
@FieldNameConstants
public class IdsManagerRequestDTO extends AbstractManagerRequestDTO{
@NotEmpty(message = "ids not empty")
private Set<String> ids;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* 生活方式方案组合详情
* @author :wangyalei
* @date :2022/8/4 5:58 下午
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AllArgsConstructor
@NoArgsConstructor
public class LifeStyleSchemeDetailDTO extends AbstractManagerRequestDTO implements ValidDTO {
/**
* 方案ID
*/
@NotBlank(message = "请求参数 schemeId 不能为空")
@Size(max = 32,message = "请求参数 schemeId 超过有效长度 32")
private String schemeId;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager;
import com.jiankangyouyi.cloud.basedata.api.enums.LifeStyleSchemeTypeEnum;
import com.jiankangyouyi.cloud.basedata.api.enums.OpenStatusEnum;
import com.jiankangyouyi.cloud.basedata.api.model.component.CrowdType;
import com.jiankangyouyi.cloud.core.entity.page.Page;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import com.jiankangyouyi.cloud.core.validator.annotation.BigDecimalValHC;
import com.jiankangyouyi.cloud.core.validator.annotation.DateValHC;
import com.jiankangyouyi.cloud.core.validator.annotation.EnumHC;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
/**
* @author :wangyalei
* @date :2022/8/5 9:11 上午
*/
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
public class LifeStyleSchemeListPageDTO extends AbstractManagerRequestDTO implements ValidDTO {
/**
* 方案ID
*/
@Size(max = 32,message = "请求参数 schemeId 超过有效长度 32")
private String schemeId;
/**
* 小贴士标题
*/
@Size(max = 20,message = "请求参数 schemeName 超过有效长度 20")
private String schemeName;
/**
* 方案类型
*/
@Size(max = 32,message = "请求参数 schemeType 超过有效长度 32")
@EnumHC(enumTypes = LifeStyleSchemeTypeEnum.class,message = "请求参数 schemeType 不合法")
private String schemeType;
/**
* 方案标题
*/
@Size(max = 50,message = "请求参数 schemeTitle 超过有效长度 50")
private String schemeTitle;
/**
* 不良标签
*/
@Size(max = 32,message = "请求参数 unhealthyLabel 超过有效长度 32")
private String unhealthyLabel;
/**
* 人群类型
*/
private List<CrowdType> crowdTypes;
/**
* 小贴士ID(知识ID)
*/
@Size(max = 32,message = "请求参数 tipId 超过有效长度 32")
private String tipId;
/**
* 启用状态 1、启用 2、禁用
*/
@EnumHC(enumTypes = OpenStatusEnum.class)
private String openStatus;
/**
* 更新开始时间,yyyy-MM-dd HH:mm:ss
*/
@DateValHC(message = "请求参数updateTimeStart不合法")
private String updateTimeStart;
/**
* 更新结束始时间,yyyy-MM-dd HH:mm:ss
*/
@DateValHC(message = "请求参数updateTimeEnd不合法")
private String updateTimeEnd;
/**
* 哺乳状态 1:哺乳期 2:非哺乳期
*/
private String lactationStatus;
/**
* 产后阶段天数 起
*/
@BigDecimalValHC()
private Integer postpartumStartDays;
/**
* 产后阶段天数 止
*/
@BigDecimalValHC()
private Integer postpartumEndDays;
/**
* 分页信息
*/
@NotNull(message = "请求参数 page 不能为空")
private Page page;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager;
import com.jiankangyouyi.cloud.basedata.api.enums.OpenStatusEnum;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import com.jiankangyouyi.cloud.core.validator.annotation.EnumHC;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
* 生活方式方案组合启用禁用
* @author :wangyalei
* @date :2022/8/4 5:58 下午
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AllArgsConstructor
@NoArgsConstructor
public class LifeStyleSchemeOpenStatusUpdateDTO extends AbstractManagerRequestDTO implements ValidDTO {
/**
* 方案ID 列表
*/
@NotEmpty(message = "请求参数 schemeIds 不能为空")
private List<String> schemeIds;
/**
* 启用状态 1、启用 2、禁用
*/
@EnumHC(enumTypes = OpenStatusEnum.class,message = "请求参数 openStatus 不合法")
@NotBlank(message = "请求参数 openStatus 不能为空")
private String openStatus;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager;
import com.jiankangyouyi.cloud.basedata.api.enums.LifeStyleSchemeTypeEnum;
import com.jiankangyouyi.cloud.basedata.api.model.component.CrowdType;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.component.PunchCardContent;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.component.RuleLimit;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import com.jiankangyouyi.cloud.core.validator.annotation.BigDecimalValHC;
import com.jiankangyouyi.cloud.core.validator.annotation.EnumHC;
import com.jiankangyouyi.cloud.data.center.api.enums.LactationStatusEnum;
import lombok.*;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
/**
* @author :wangyalei
* @date :2022/8/5 9:11 上午
*/
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class LifeStyleSchemeSaveDTO extends AbstractManagerRequestDTO implements ValidDTO {
/**
* 方案ID
*/
@Size(max = 32,message = "请求参数 schemeId 超过有效长度 32")
private String schemeId;
/**
* 小贴士标题
*/
@NotBlank(message = "请求参数 schemeName 不能为空")
@Size(max = 20,message = "请求参数 schemeName 超过有效长度 20")
private String schemeName;
/**
* 方案类型
*/
@NotBlank(message = "请求参数 schemeType 不能为空")
@Size(max = 32,message = "请求参数 schemeType 超过有效长度 32")
@EnumHC(enumTypes = LifeStyleSchemeTypeEnum.class,message = "请求参数 schemeType 不合法")
private String schemeType;
/**
* 方案标题
*/
@NotBlank(message = "请求参数 schemeTitle 不能为空")
@Size(max = 50,message = "请求参数 schemeTitle 超过有效长度 50")
private String schemeTitle;
/**
* 人群类型
*/
@NotEmpty(message = "请求参数 crowdTypes 不能为空")
@Valid
private List<CrowdType> crowdTypes;
/**
* 哺乳状态 1:哺乳期,2:非哺乳期
*/
@EnumHC(enumTypes = LactationStatusEnum.class,message = "请求参数 lactationStatus 不合法")
private String lactationStatus;
/**
* 产后阶段天数 起
*/
@BigDecimalValHC()
private Integer postpartumStartDays;
/**
* 产后阶段天数 止
*/
@BigDecimalValHC()
private Integer postpartumEndDays;
/**
* 规则组合
*/
@Valid
private List<RuleLimit> ruleLimits;
/**
* 打卡内容
*/
@NotNull(message = "请求参数 punchCardContent 不能为空")
@Valid
private PunchCardContent punchCardContent;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.action;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* @author :wangyalei
* @date :Created in 2021/6/10 6:24 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class DeveloperInfoDTO implements ValidDTO {
/**
* appId 应用id
*/
@NotBlank(message = "请求参数actionId不能为空")
@Size(max = 32,message = "请求参数actionId有效长度为32")
private String appId;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.action;
import com.jiankangyouyi.cloud.core.entity.page.Page;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* 现代运动库(新) 列表请求参数
* @author wangyalei
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ExerciseModern2ListDTO implements ValidDTO {
/**
* 动作编号
*/
private String actionId;
/**
* 动作名称
*/
private String actionName;
/**
* 器械名称
*/
private List<String> equipments;
/**
* 是否 无动作特点筛选
*/
private Boolean noActionFeatures;
/**
* 动作特点
*/
private List<String> actionFeatures;
/**
* 动作分类
*/
private List<String> actionClassifications;
/**
* 训练肌群/部位
*/
private List<String> trainPositions;
/**
* 动作体位
*/
private List<String> actionPositions;
/**
* 动作难度
*/
private List<String> actionDifficulties;
/**
* 动作强度
*/
private List<String> actionIntensity;
/**
* 视频规格标签
*/
private List<String> videoLabels;
/**
* 教练性别
*/
private List<String> coachGenders;
/**
* 当前状态 (启用、禁用)
*/
private Integer status;
/**
* 分页参数
*/
@NotNull(message = "请求参数page不能为空")
@Valid
private Page page;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.action;
import com.jiankangyouyi.cloud.basedata.api.enums.action.RelationActionOrderTypeEnum;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import com.jiankangyouyi.cloud.core.validator.annotation.EnumHC;
import lombok.*;
import javax.validation.constraints.*;
import java.util.List;
/**
* @author :wangyalei
* @date :Created in 2021/6/4 10:42 上午
*/
@EqualsAndHashCode(callSuper = true)
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ExerciseModern2UpdateDTO extends AbstractManagerRequestDTO implements ValidDTO {
/**
* 动作编号
*/
@NotBlank(message = "请求参数actionId不能为空")
@Size(max = 20,message = "请求参数actionId有效长度为20")
private String actionId;
/**
* 动作名称
*/
@NotBlank(message = "请求参数actionName不能为空")
@Size(max = 20,message = "请求参数actionName有效长度为20")
private String actionName;
/**
* 是否为被关联动作
*/
@EnumHC(enumTypes = RelationActionOrderTypeEnum.class)
private String relationActionOrder;
/**
* 是否为被关联动作
*/
private Boolean relation;
/**
* 关联动作编号
*/
private String relationId;
/**
* 动作特点
*/
private List<String> actionFeatures;
/**
* 动作分类
*/
@NotBlank(message = "请求参数actionClassification不能为空")
@Size(max = 16,message = "请求参数actionClassification最大有效长度为16")
private String actionClassification;
/**
* 动作难度
*/
@NotBlank(message = "请求参数actionDifficulty不能为空")
@Size(max = 16,message = "请求参数actionDifficulty最大有效长度为16")
private String actionDifficulty;
/**
* 梅脱值
*/
@NotNull(message = "请求参数met不能为空")
private Double met;
/**
* 动作强度
*/
@NotBlank(message = "请求参数actionIntensity不能为空")
@Size(max = 16,message = "请求参数actionIntensity最大有效长度为16")
private String actionIntensity;
/**
* 动作体位
*/
@NotBlank(message = "请求参数actionPosition不能为空")
@Size(max = 16,message = "请求参数actionPosition最大有效长度为16")
private String actionPosition;
/**
* 训练肌群/锻炼部位
*/
@NotEmpty(message = "请求参数trainPositions不能为空")
private List<String> trainPositions;
/**
* 器械名称
*/
@NotEmpty(message = "请求参数equipments不能为空")
private List<String> equipments;
/**
* 动作讲解
*/
@NotEmpty(message = "请求参数actionExplains不能为空")
private List<String> actionExplains;
/**
* 注意事项
*/
@NotEmpty(message = "请求参数attentions不能为空")
private List<String> attentions;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.action;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* @author :wangyalei
* @date :Created in 2021/6/4 10:28 上午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ExerciseModernInfoDTO implements ValidDTO {
/**
* 动作编号
*/
@NotBlank(message = "请求参数actionId不能为空")
@Size(max = 20,message = "请求参数actionId有效长度为20")
private String actionId;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.action;
import com.jiankangyouyi.cloud.core.entity.page.Page;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
*
* @author wangyalei
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ExerciseModernListDTO implements ValidDTO {
/**
* 动作编号
*/
private String actionId;
/**
* 动作名称
*/
private String actionName;
/**
* 器械名称
*/
private List<String> equipments;
/**
* 动作特点
*/
private List<String> actionFeatures;
/**
* 动作分类
*/
private List<String> actionClassifications;
/**
* 训练肌群/部位
*/
private List<String> trainPositions;
/**
* 动作体位
*/
private List<String> actionPositions;
/**
* 动作难度
*/
private List<String> actionDifficulties;
/**
* 视频规格
*/
private List<String> videoSizes;
/**
* 分页参数
*/
@NotNull(message = "请求参数page不能为空")
@Valid
private Page page;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.action;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* @author :wangyalei
* @date :Created in 2021/6/4 10:28 上午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ExerciseModernOnOffDTO extends AbstractManagerRequestDTO implements ValidDTO {
/**
* 动作编号
*/
@NotBlank(message = "请求参数actionId不能为空")
@Size(max = 20,message = "请求参数actionId有效长度为20")
private String actionId;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.action;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.action.ExerciseModernActionDO;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
/**
* @author :wangyalei
* @date :Created in 2021/6/4 10:42 上午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ExerciseModernUpdateDTO extends AbstractManagerRequestDTO implements ValidDTO {
/**
* 现代动作库信息
*/
@NotNull(message = "请求参数 exerciseModernAction 不能为空")
@Valid
private ExerciseModernActionDO exerciseModernAction;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.action;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* @author :wangyalei
* @date :Created in 2021/6/4 11:12 上午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ExerciseTraditionalInfoDTO implements ValidDTO {
/**
* 动作编号
*/
@NotBlank(message = "请求参数actionId不能为空")
@Size(max = 20,message = "请求参数actionId有效长度为20")
private String actionId;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.action;
import com.jiankangyouyi.cloud.core.entity.page.Page;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
*
* @author wangyalei
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ExerciseTraditionalListDTO implements ValidDTO {
/**
* 动作编号
*/
private String actionId;
/**
* 动作名称
*/
private String actionName;
/**
* 动作类型
*/
private List<String> actionType;
/**
* 动作分类
*/
private List<String> actionClassifications;
/**
* 视频规格
*/
private List<String> videoSizes;
/**
* 分页参数
*/
@NotNull(message = "请求参数page不能为空")
@Valid
private Page page;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.action;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.action.ExerciseTraditionalActionDO;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
/**
* @author :wangyalei
* @date :Created in 2021/6/4 11:18 上午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ExerciseTraditionalUpdateDTO extends AbstractManagerRequestDTO implements ValidDTO {
/**
* 现代动作库信息
*/
@NotNull(message = "请求参数 exerciseTraditionalAction 不能为空")
@Valid
private ExerciseTraditionalActionDO exerciseTraditionalAction;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.action;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.action.VideoRestDO;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
/**
* @author :wangyalei
* @date :Created in 2021/6/4 4:04 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class VideoRestAddDTO extends AbstractManagerRequestDTO implements ValidDTO {
/**
* 休息视频库信息
*/
@NotNull(message = "请求参数 videoRest 不能为空")
@Valid
private VideoRestDO videoRest;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.action;
import com.jiankangyouyi.cloud.basedata.api.model.entity.action.v4.ExerciseModernAction;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.action.ExerciseModernActionDO2;
import com.jiankangyouyi.cloud.core.util.json.JsonUtils;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* @author :wangyalei
* @date :Created in 2021/6/4 4:09 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class VideoRestDeleteDTO extends AbstractManagerRequestDTO implements ValidDTO {
/**
* 视频编号
*/
@NotEmpty(message = "请求参数videoIds不能为空")
private List<String> videoIds;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.action;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* @author :wangyalei
* @date :Created in 2021/6/4 3:28 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class VideoRestInfoDTO implements ValidDTO {
/**
* 视频编号
*/
@NotBlank(message = "请求参数videoId不能为空")
@Size(max = 20,message = "请求参数videoId有效长度为20")
private String videoId;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.action;
import com.jiankangyouyi.cloud.core.entity.page.Page;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
*
* @author wangyalei
*/
@Data
public class VideoRestListDTO implements ValidDTO {
/**
* 视频ID
*/
private String videoId;
/**
* 应用ID
*/
private String appId;
/**
* 视频名称
*/
private String videoName;
/**
* 休息视频类型 1、现代类型 2、传统类型
*/
private List<String> restVideoType;
/**
* 视频规格
*/
private List<String> videoSizes;
/**
* 教练性别
*/
private List<String> coachGenders;
/**
* 分页参数
*/
@NotNull(message = "请求参数page不能为空")
@Valid
private Page page;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.action;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
*
* @author wangyalei
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class VideoRestUpdateDTO extends AbstractManagerRequestDTO implements ValidDTO {
/**
* 视频ID
*/
@NotBlank(message = "请求参数videoId不能为空")
@Size(max = 20,message = "请求参数videoId有效长度为20")
private String videoId;
/**
* 视频名称
*/
@NotBlank(message = "请求参数videoName不能为空")
@Size(max = 20,message = "请求参数videoName有效长度为20")
private String videoName;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.article;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jiankangyouyi.cloud.basedata.api.enums.food.AuditStatusEnum;
import com.jiankangyouyi.cloud.basedata.api.enums.food.AuditStatusValidEnum;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.core.entity.page.Page;
import com.jiankangyouyi.cloud.core.validator.annotation.EnumHC;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
import java.util.Set;
/**
* @description: 分页查询文章库请求dto
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/10/25 3:34 下午
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class FindArticleRequestDTO extends AbstractManagerRequestDTO {
/**
* 分页条件
*/
@NotNull(message = "page not null")
@Valid
private Page page;
/**
* 文章id
*/
private String articleId;
/**
* 1级分类codes
*/
private Set<String> cls1Codes;
/**
* 2级分类codes
*/
private Set<String> cls2Codes;
/**
* 标签
*/
private Set<String> tags;
/**
* 标签 是否选择空选项 默认false
*/
private Boolean tagsSelectNull = false;
/**
* 状态 [1:启用][3:停用]
*/
private Set<Integer> status;
/**
* 审核状态
* {@link AuditStatusEnum}
*/
private List<String> auditStatus;
/**
* 关键字
*/
private String keyword;
/**
* 创建时间起 yyyy-MM-dd HH:mm:ss
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTimeStart;
/**
* 创建时间止 yyyy-MM-dd HH:mm:ss
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTimeEnd;
/**
* 修改时间起 yyyy-MM-dd HH:mm:ss
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTimeStart;
/**
* 修改时间止 yyyy-MM-dd HH:mm:ss
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTimeEnd;
/**
* 采纳时间起 yyyy-MM-dd HH:mm:ss
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date adoptTimeStart;
/**
* 采纳时间止 yyyy-MM-dd HH:mm:ss
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date adoptTimeEnd;
/**
* 排序字段 默认为updateTime
*/
private String orderColumn;
/**
* 是否升序 默认false
*/
private boolean asc;
/**
* 创建人
*/
private String createAccount;
/**
* 采纳人
*/
private String adoptAccount;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.article;
import com.jiankangyouyi.cloud.basedata.api.model.entity.article.ArticleInfo;
import com.jiankangyouyi.cloud.basedata.enums.SaveTypeEnum;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.core.validator.annotation.EnumHC;
import lombok.Data;
import lombok.experimental.FieldNameConstants;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @description: 保存文章库
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/10/25 10:26 上午
*/
@Data
@FieldNameConstants
public class SaveArticleRequestDTO extends AbstractManagerRequestDTO {
/**
* 保存类型
* {@link com.jiankangyouyi.cloud.basedata.enums.SaveTypeEnum}
*/
@NotBlank(message = "请求参数 saveType 不能为空")
@EnumHC(enumTypes = SaveTypeEnum.class, message = "请求参数auditStatus不合法")
private String saveType;
/**
* 保存信息
*/
@NotNull(message = "saveInfo not null")
@Valid
private ArticleInfo saveInfo;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.article;
import com.jiankangyouyi.cloud.basedata.api.enums.food.AuditStatusValidEnum;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.core.validator.annotation.EnumHC;
import lombok.Data;
import javax.validation.constraints.*;
import java.util.List;
import java.util.Set;
/**
* @description: 修改审核状态请求dto
* @author: wangyalei
* @date: 2021/10/25 1:44 下午
*/
@Data
public class UpdateAuditStatusRequestDTO extends AbstractManagerRequestDTO {
/**
* 文章id
*/
@NotBlank(message = "请求参数 articleId 不能为空")
@Size(max = 32,message = "请求参数 articleId 超过有效长度 32")
private String articleId;
/**
* 审核状态
*/
@NotNull(message = "请求参数 auditStatus 不能为空")
@EnumHC(enumTypes = AuditStatusValidEnum.class, message = "请求参数auditStatus不合法")
private String auditStatus;
/**
* 驳回理由
*/
private List<String> reasonsForRejection;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.article;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import lombok.Data;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Set;
/**
* @description: 修改状态请求dto
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/10/25 1:44 下午
*/
@Data
public class UpdateStatusRequestDTO extends AbstractManagerRequestDTO {
/**
* 文章ids
*/
@NotEmpty(message = "ids not empty")
private Set<String> ids;
/**
* 状态 [1:启用][3:停用]
*/
@NotNull(message = "status not null")
@Min(value = 1, message = "status [1:启用][3:停用]")
@Max(value = 3, message = "status [1:启用][3:停用]")
private Integer status;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.baidu;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
/**
* 百度 文本翻译-通用版请求DTO
*
* @author qxy
**/
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BaiduTexttransRequestDTO extends AbstractManagerRequestDTO{
private static final long serialVersionUID = 1L;
/**
* 翻译源语言 可设置为auto
*/
@NotBlank(message = "请求参数from不能为空")
private String from;
/**
* 翻译目标语言 不可设置为auto
*/
@NotBlank(message = "请求参数to不能为空")
private String to;
/**
* 请求翻译query
*/
@NotBlank(message = "请求参数query不能为空")
@JsonProperty("query")
private String q;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.common;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
/**
* 分类删除参数
*
* @author fengxuanjun
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class BaseDataClassifyDeleteDTO extends AbstractManagerRequestDTO implements ValidDTO {
private static final long serialVersionUID = 1L;
/**
* 需要删除的分类Id集合
*/
@NotNull(message = "请求参数classifyIds不能为空")
@Size(min = 1, message = "请求参数classifyIds长度不合法")
private List<String> classifyIds;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.common;
import com.jiankangyouyi.cloud.basedata.model.dto.api.AbstractHttpApiRequestDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
/**
* 分类查询
*
* @author fengxuanjun
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BaseDataClassifyQueryDTO extends AbstractHttpApiRequestDTO {
private static final long serialVersionUID = 1L;
/**
* 业务属性
* 1 食材库
* 2 加工食品库
* 3 包装食品库
* 4 中医药材库
* 5 问题库
* 6 指标库
* 7 科普问答库
* 8 硬件库
*/
@NotBlank(message = "请求参数bizProperty 不能为空")
@Pattern(regexp = "(7|9|12)", message = "请求参数bizProperty格式不合法")
private String bizProperty;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.common;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
* 分类保存参数
*
* @author fengxuanjun
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class BaseDataClassifySaveDTO extends AbstractManagerRequestDTO implements ValidDTO {
private static final long serialVersionUID = 1L;
/**
* 分类ID,新增是null,修改时必传)
*/
@Size(max = 32, message = "请求参数classifyId长度不合法")
private String classifyId;
/**
* 业务属性
* 1 食材库
* 2 加工食品库
* 3 包装食品库
* 4 中医药材库
* 5 问题库
* 6 指标库
*/
@NotBlank(message = "请求参数bizProperty不能为空")
@Size(max = 3, message = "请求参数bizProperty长度不合法")
private String bizProperty;
/**
* 分类编码,修改时必传
*/
@Size(max = 4, message = "请求参数classifyCode长度不合法")
private String classifyCode;
/**
* 上级分类ID
*/
@NotBlank(message = "请求参数parentId不能为空")
@Size(max = 32, message = "请求参数parentId长度不合法")
private String parentId;
/**
* 分类名称
*/
@NotBlank(message = "请求参数classifyName不能为空")
@Size(max = 20, message = "请求参数classifyName长度不合法")
private String classifyName;
/**
* 等级
*/
@NotNull(message = "请求参数level不能为空")
@Max(value = 10, message = "请求参数classifyLevel长度不合法")
private Integer classifyLevel;
/**
* 排序,默认 9999
*/
@NotNull(message = "请求参数rowOrder不能为空")
@Max(value = 9999, message = "请求参数rowOrder长度不合法")
private Integer rowOrder;
/**
* 是否有效 1:有效,2:无效
*/
@NotBlank(message = "请求参数validStatus不能为空")
@Size(max = 1, message = "请求参数validStatus长度不合法")
private String validStatus;
/**
* NULL 分类图片
*/
@Size(max = 255, message = "请求参数imageUrl长度不合法")
private String imageUrl;
/**
* 分类简介
*/
@Size(max = 500, message = "请求参数description长度不合法")
private String description;
/**
* 临床意义
*/
@Size(max = 500, message = "请求参数meaning长度不合法")
private String meaning;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.common;
import com.jiankangyouyi.cloud.basedata.enums.export.ExportLocationEnum;
import com.jiankangyouyi.cloud.basedata.enums.export.ExportStatusEnum;
import com.jiankangyouyi.cloud.basedata.enums.export.ExportTypeEnum;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.core.entity.page.Page;
import com.jiankangyouyi.cloud.core.validator.annotation.DateValHC;
import com.jiankangyouyi.cloud.core.validator.annotation.EnumHC;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
* 数据导出结果列表
*
* @author yangsongbo
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class ManagerDataExportResultDTO extends AbstractManagerRequestDTO {
private static final long serialVersionUID = 1L;
/**
* 分页参数
*/
@NotNull(message = "分页参数page不能为空")
@Valid
private Page page;
/**
* 导出数据ID
*/
@Size(max = 32, message = "请求参数exportId长度不合法")
private String exportId;
/**
* 导出类型
* <p>
* {@link com.jiankangyouyi.cloud.basedata.enums.export.ExportTypeEnum}
*/
@EnumHC(enumTypes = ExportTypeEnum.class, message = "请求参数exportType不合法")
private String exportType;
/**
* 导出位置
* <p>
* {@link com.jiankangyouyi.cloud.basedata.enums.export.ExportLocationEnum}
*/
@EnumHC(enumTypes = ExportLocationEnum.class, message = "请求参数exportLocation不合法")
private String exportLocation;
/**
* 导出状态
* <p>
* {@link com.jiankangyouyi.cloud.basedata.enums.export.ExportStatusEnum}
*/
@EnumHC(enumTypes = ExportStatusEnum.class, message = "请求参数exportStatus不合法")
private String exportStatus;
/**
* 开始时间,yyyy-MM-dd HH:mm:ss
*/
@DateValHC(pattern = "yyyy-MM-dd HH:mm:ss", message = "请求参数beginTime不合法")
private String beginCreateTime;
/**
* 结束时间,yyyy-MM-dd HH:mm:ss
*/
@DateValHC(pattern = "yyyy-MM-dd HH:mm:ss", message = "请求参数endTime不合法")
private String endCreateTime;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.dict;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Size;
/**
* @author :wangyalei
* @date :Created in 2021/5/6 12:37 下午
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BaseDictInfoQueryDTO implements ValidDTO {
/**
* 业务主键
*/
@NotEmpty(message = "请求参数dictId不能为空")
@Size(max = 32, message = "请求参数dictId长度不合法,最大合法长度为32")
private String dictId;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.dict;
import com.jiankangyouyi.cloud.core.entity.page.Page;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
* @author :wangyalei
* @date :Created in 2021/5/6 12:37 下午
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BaseDictListByPageQueryDTO implements ValidDTO {
/**
* 字典大类
*/
@Size(max = 16, message = "请求参数dictType最大有效长度为16")
private String dictType;
/**
* 字典子类
*/
@Size(max = 16, message = "请求参数dictSubType最大有效长度为16")
private String dictSubType;
/**
* 字典编码
*/
@Size(max = 32, message = "请求参数dictCode最大有效长度为32")
private String dictCode;
/**
* 搜索关键字
*/
@Size(max = 256, message = "请求参数queryKeyword最大有效长度为50")
private String queryKeyword;
/**
* 分页参数
*/
@Valid
@NotNull(message = "请求参数page不能为空")
private Page page;
public int getStart() {
return page.start();
}
public int getPageSize() {
return page.getPageSize();
}
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.dict;
import com.jiankangyouyi.cloud.basedata.model.dto.api.AbstractHttpApiRequestDTO;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.dict.component.BaseDictTypeInfo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
* @author :wangyalei
* @date :Created in 2021/5/6 2:11 下午
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BaseDictListQueryDTO extends AbstractHttpApiRequestDTO {
/**
* 查询参数
*/
@NotEmpty(message = "请求参数queryParams不能为空")
@Valid
private List<BaseDictTypeInfo> queryParams;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.dict;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.*;
/**
* @author :wangyalei
* @date :Created in 2021/5/6 10:02 上午
*/
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BaseDictSaveDTO extends AbstractManagerRequestDTO {
/**
* 业务主键id
*/
@Size(max = 32,message = "请求参数dictId最大有效长度为32")
private String dictId;
/**
* 字典大类
*/
@NotBlank(message = "请求参数dictType不能为空")
@Size(max = 16,message = "请求参数dictType最大有效长度为16")
private String dictType;
/**
* 字典子类
*/
@NotBlank(message = "请求参数dictSubType不能为空")
@Size(max = 16,message = "请求参数dictSubType最大有效长度为16")
private String dictSubType;
/**
* 字典编码
*/
@NotBlank(message = "请求参数dictCode不能为空")
@Size(max = 32,message = "请求参数dictCode最大有效长度为32")
private String dictCode;
/**
* 字典名称
*/
@NotBlank(message = "请求参数dictName不能为空")
@Size(max = 256,message = "请求参数dictName最大有效长度为256")
private String dictName;
/**
* 排序
*/
@Max(value= 9999,message = "请求参数rowOrder最大有效长度为4")
private Integer rowOrder;
/**
* 字典描述
*/
@Size(max = 200,message = "请求参数description最大有效长度为200")
private String description;
/**
* 启用禁用状态 1启用 2禁用
*/
@NotBlank(message = "请求参数validStatus不能为空")
@Size(max = 1,message = "请求参数validStatus最大有效长度为1")
private String validStatus;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.dict;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* @author :wangyalei
* @date :Created in 2021/5/6 11:09 上午
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BaseDictStatusUpdateDTO extends AbstractManagerRequestDTO {
/**
* 自定义主键id
*/
@NotBlank(message = "请求参数dictId不能为空")
@Size(max = 32, message = "请求参数dictId长度不合法,最大合法长度为32")
private String dictId;
/**
* 启用禁用状态 1启用 2禁用
*/
@NotBlank(message = "请求参数validStatus不能为空")
@Size(max = 1, message = "请求参数validStatus长度不合法,最大合法长度为1")
private String validStatus;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.dict;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Size;
/**
* @author :wangyalei
* @date :Created in 2021/5/6 9:00 下午
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BaseDictSubTypeListQueryDTO implements ValidDTO {
/**
* 业务主键
*/
@NotEmpty(message = "请求参数dictTyped不能为空")
@Size(max = 16, message = "请求参数dictType长度不合法,最大合法长度为16")
private String dictType;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.dict;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Size;
/**
* @author :wangyalei
* @date :Created in 2021/5/6 8:49 下午
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BaseDictTypeInfoQueryDTO implements ValidDTO {
/**
* 业务主键
*/
@NotEmpty(message = "请求参数dictTypeId不能为空")
@Size(max = 32, message = "请求参数dictTypeId长度不合法,最大合法长度为32")
private String dictTypeId;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.dict;
import com.jiankangyouyi.cloud.core.entity.page.Page;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
* @author :wangyalei
* @date :Created in 2021/5/6 5:04 下午
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BaseDictTypeListByPageQueryDTO implements ValidDTO {
/**
* 字典大类
*/
@Size(max = 16, message = "请求参数dictType最大有效长度为16")
private String dictType;
/**
* 字典子类
*/
@Size(max = 16, message = "请求参数dictSubType最大有效长度为16")
private String dictSubType;
/**
* 搜索关键字
*/
@Size(max = 50, message = "请求参数queryKeyword最大有效长度为50")
private String queryKeyword;
/**
* 分页参数
*/
@Valid
@NotNull(message = "请求参数page不能为空")
private Page page;
public int getStart() {
return page.start();
}
public int getPageSize() {
return page.getPageSize();
}
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.dict;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* @author :wangyalei
* @date :Created in 2021/5/6 2:51 下午
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BaseDictTypeSaveDTO extends AbstractManagerRequestDTO {
/**
* 业务主键 ID
*/
@Size(max = 32,message = "请求参数dictTypeId最大有效长度为32")
private String dictTypeId;
/**
* 字典大类
*/
@NotBlank(message = "请求参数dictType不能为空")
@Size(max = 16, message = "请求参数dictType长度不合法,最大合法长度为16")
private String dictType;
/**
* 字典子类
*/
@NotBlank(message = "请求参数dictSubType不能为空")
@Size(max = 16, message = "请求参数dictSubType长度不合法,最大合法长度为16")
private String dictSubType;
/**
* 字典子类名称
*/
@NotBlank(message = "请求参数dictSubTypeName不能为空")
@Size(max = 32, message = "请求参数dictSubTypeName长度不合法,最大合法长度为32")
private String dictSubTypeName;
/**
* 排序
*/
@Max(value= 9999,message = "请求参数rowOrder最大有效长度为4")
private Integer rowOrder;
/**
* 启用禁用状态 : 1 启用 2 禁用
*/
@NotBlank(message = "请求参数validStatus不能为空")
@Size(max = 1, message = "请求参数validStatus长度不合法,最大合法长度为1")
private String validStatus;
/**
* 字典分类描述
*/
@Size(max = 20, message = "请求参数description长度不合法,最大合法长度为20")
private String description;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.dict;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* @author :wangyalei
* @date :Created in 2021/5/6 4:51 下午
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BaseDictTypeStatusUpdateDTO extends AbstractManagerRequestDTO {
/**
* 业务主键
*/
@NotBlank(message = "请求参数dictTypeId不能为空")
@Size(max = 32, message = "请求参数dictTypeId长度不合法,最大合法长度为32")
private String dictTypeId;
/**
* 启用禁用状态 1启用 2禁用
*/
@NotBlank(message = "请求参数validStatus不能为空")
@Size(max = 1, message = "请求参数validStatus长度不合法,最大合法长度为1")
private String validStatus;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.dict.component;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
/**
* @author :wangyalei
* @date :Created in 2021/5/6 2:19 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class BaseDictTypeInfo {
/**
* 字典大类
*/
@NotNull(message = "请求参数dictType不能为空")
@Size(max = 16, message = "请求参数dictType最大有效长度为16")
@Pattern(regexp = "(25|11)", message = "请求参数dictType格式不合法")
private String dictType;
/**
* 字典子类
*/
@NotNull(message = "请求参数dictSubType不能为空")
@Size(max = 16, message = "请求参数dictSubType最大有效长度为16")
@Pattern(regexp = "(2504|1101)", message = "请求参数dictSubType格式不合法")
private String dictSubType;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import lombok.Builder;
import lombok.Data;
/**
* @author :wangyalei
* @date :Created in 2021/4/26 11:10 下午
* @description:食物库保存草稿操作
*/
@Data
@Builder
public class FoodDraftOperationDTO extends AbstractManagerRequestDTO {
// /**
// * 食物基本信息数据
// */
// @NotNull(message = "请求参数foodBasic信息不能为空")
// @Valid
// private FoodBasicDO foodBasic;
// /**
// * 食材信息数据
// */
// private FoodMaterialDO foodMaterial;
// /**
// * 加工食品数据
// */
// private FoodProcessDO foodProcess;
// /**
// * 包装食品数据
// */
// private FoodPackageDO foodPackage;
// /**
// * 食品中医药材数据
// */
// private FoodMedicinalMaterialDO foodMedicinalMaterial;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.food.component.FoodProcessMaterialInfo;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
* 食物元素组成计算请求实体
*
* @author :wangyalei
* @date :Created in 2021/4/29 2:45 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FoodElementComponentCalculateDTO implements ValidDTO {
/**
* 食物基本信息列表
*/
@NotEmpty(message = "请求参数foodBasicList不能为空")
@Valid
private List<FoodProcessMaterialInfo> foodBasicList;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
/**
* 描述
*
* @author qxy
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FoodImageDTO extends AbstractManagerRequestDTO {
/**
* base64
*/
@NotBlank(message = "base64 not null")
private String base64;
@NotBlank(message = "foodId not null")
private String foodId;
@NotBlank(message = "foodName not null")
private String foodName;
@NotBlank(message = "foodProperty not null")
private String foodProperty;
@NotBlank(message = "classify1 not null")
private String classify1;
private String classify2;
private String classify3;
private String uid;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FoodImageDeleteDTO extends AbstractManagerRequestDTO {
@NotEmpty(message = "foodImageName not null")
private List<String> foodImageName;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FoodImageInfoDTO extends AbstractManagerRequestDTO {
@NotBlank(message = "foodImageName not null")
private String foodImageName;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.food.component.ClassifyQuery;
import com.jiankangyouyi.cloud.core.entity.page.Page;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FoodImageListDTO extends AbstractManagerRequestDTO {
/**
* 图片名称 hash
*/
private String foodImageName;
/**
* 食物id
*/
private String foodId;
/**
* 图片特征
*/
// private List<Float> imgFeatures;
/**
* 食物名称
*/
private String foodName;
/**
* 食物类型
*/
private String foodProperty;
/**
* 分类查询
*/
private List<ClassifyQuery> classifyQueryList;
/**
* 修改开始时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTimeBegin;
/**
* 修改结束时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTimeEnd;
/**
* 创建开始时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTimeBegin;
/**
* 创建结束时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTimeEnd;
/**
* 分页参数
*/
@NotNull(message = "请求参数page不能为空")
@Valid
private Page page;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.Builder;
import lombok.Data;
/**
* @author :wangyalei
* @date :Created in 2021/4/27 9:24 下午
*/
@Data
@Builder
public class FoodListQueryDTO implements ValidDTO {
// /**
// * 食物ID 业务唯一id
// */
// private String foodId;
// /**
// * 食物名称
// */
// private String foodName;
// /**
// * 食物属性
// */
// private String foodProperty;
// /**
// * 食物属性 是否勾选全部 是否勾选全部 1 是 、非1 否
// */
// private Integer foodPropertySelectALL;
// /**
// * 食物一级分类
// */
// private String classify1;
// /**
// * 食物二级分类
// */
// private String classify2;
// /**
// * 食物三级分类
// */
// private String classify3;
// /**
// * 是否参与配餐 选项 是否勾选全部 1 是 、非1 否
// */
// private Integer cateringSelectALL;
// /**
// * 是否参与配餐 true 是 false 否
// */
// private Boolean catering;
// /**
// * 配餐适用人群是否勾选全部 1 是 、非1 否
// */
// private Integer cateringCrowdSelectALL;
// /**
// * 配餐适用人群
// */
// private List<CrowdEatAdvice> crowdEatAdvices;
// /**
// * 当前状态是否勾选全部 1 是 、非1 否
// */
// private Integer foodStatusSelectALL;
// /**
// * 当前状态 0 有效 1无效 2草稿
// */
// private List<String> foodStatus;
// /**
// * 中医标签
// */
// private List<String> tcmEfficaciousTags;
// /**
// * 中医属性
// */
// private List<TcmProperty> tcmProperties;
// /**
// * 最后操作时间 开始时间
// */
// private String startTime;
// /**
// * 最后操作时间 结束时间
// */
// private String endTime;
// /**
// * 分页参数
// */
// @NotNull(message = "请求参数page不能为空")
// @Valid
// private Page page;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author :wangyalei
* @date :Created in 2021/4/27 9:24 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FoodListQueryImageDTO implements ValidDTO {
/**
* 食物名称
*/
private String foodName;
/**
* 食物属性
*/
private String foodProperty;
/**
* 查询条数
*/
private Integer pageSize;
/**
* 食物状态: 1 启用 2 停用 3 草稿
*/
private List<String> foodStatus;
/**
* 食物一级分类
*/
private List<String> classify1;
/**
* 食物二级分类
*/
private List<String> classify2;
/**
* 食物三级分类
*/
private List<String> classify3;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.food.FoodBasicDO;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.food.FoodMaterialDO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
/**
* @author :wangyalei
* @date :Created in 2021/4/26 10:36 下午
* @description:食材类型操作
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FoodMaterialOperationDTO extends AbstractManagerRequestDTO {
/**
* 食物基本信息数据
*/
@NotNull(message = "请求参数 foodBasic 不能为空")
@Valid
protected FoodBasicDO foodBasic;
/**
* 食材信息数据
*/
@NotNull(message = "请求参数 foodMaterial 不能为空")
@Valid
private FoodMaterialDO foodMaterial;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import lombok.Builder;
import lombok.Data;
/**
* @author :wangyalei
* @date :Created in 2021/4/27 3:03 下午
* @description:食物中医药材类型操作
*/
@Data
@Builder
public class FoodMedicinalMaterialOperationDTO extends AbstractManagerRequestDTO {
// /**
// * 食物基本信息数据
// */
// @NotNull(message = "请求参数 foodBasic 不能为空")
// @Valid
// protected FoodBasicDO foodBasic;
// /**
// * 药材信息数据
// */
// @NotNull(message = "请求参数 foodMedicinalMaterial 不能为空")
// @Valid
// private FoodMedicinalMaterialDO foodMedicinalMaterial;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.food.FoodBasicDO;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.food.FoodPackageDO;
import lombok.*;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
/**
* @author :wangyalei
* @date :Created in 2021/4/26 12:41 下午
* @description:食物库操作
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FoodPackageOperationDTO extends AbstractManagerRequestDTO {
/**
* 食物基本信息数据
*/
@NotNull(message = "请求参数 foodBasic 不能为空")
@Valid
protected FoodBasicDO foodBasic;
/**
* 包装食品数据
*/
@NotNull(message = "请求参数 foodPackage 不能为空")
@Valid
private FoodPackageDO foodPackage;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.food.FoodBasicDO;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.food.FoodProcessDO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
/**
* 加工食品类型操作
*
* @author :wangyalei
* @date :Created in 2021/4/26 10:38 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FoodProcessOperationDTO extends AbstractManagerRequestDTO {
/**
* 食物基本信息数据
*/
@NotNull(message = "请求参数 foodBasic 不能为空")
@Valid
protected FoodBasicDO foodBasic;
/**
* 加工食品数据
*/
@NotNull(message = "请求参数 foodProcess 不能为空")
@Valid
private FoodProcessDO foodProcess;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import lombok.Builder;
import lombok.Data;
/**
* @author :wangyalei
* @date :Created in 2021/4/27 11:05 下午
*/
@Data
@Builder
public class FoodStatusEnableOrDisableDTO extends AbstractManagerRequestDTO {
// /**
// * 操作类型 0启用 1停用
// */
// @NotNull(message = "请求参数foodStatus不能为空")
// @Size(max = 1, message = "请求参数foodStatus最大有效长度为1")
// private String foodStatus;
// /**
// * 要操作的食物集合
// */
// @NotEmpty(message = "请求参数foodBasics不能为空")
// @Valid
// private List<FoodBasic> foodBasics;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.basedata.api.enums.food.AuditStatusValidEnum;
import com.jiankangyouyi.cloud.basedata.api.enums.food.FoodStatusEnum;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.core.validator.annotation.EnumHC;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Size;
import java.util.List;
/**
* 底层库管理-修改食物审核状态
*
* @author yangsongbo
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ManagerFoodAuditStatusUpdateDTO extends AbstractManagerRequestDTO {
/**
* 食物ID
*/
@NotBlank(message = "请求参数foodId不能为空")
@Size(max = 32, message = "请求参数foodId size不合法")
private String foodId;
/**
* 食物审核状态
*/
@NotBlank(message = "请求参数auditStatus不能为空")
@EnumHC(enumTypes = AuditStatusValidEnum.class, message = "请求参数auditStatus不合法")
private String auditStatus;
/**
* 驳回理由
*/
private List<String> reasonsForRejection;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
/**
* 底层库管理-食材详情
*
* @author yangsongbo
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ManagerFoodIdDTO extends AbstractManagerRequestDTO {
/**
* 食物ID
*/
@NotBlank(message = "请求参数foodId不能为空")
@Length(max = 32, message = "请求参数foodId长度不合法")
private String foodId;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.basedata.api.model.entity.foodv4.component.FoodComposition;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* 底层库管理-食物库-食材计算
*
* @author yangsongbo
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ManagerFoodMaterialCalculateDTO extends AbstractManagerRequestDTO {
/**
* 食物ID
*/
@Length(max = 32, message = "请求参数foodId不能为空")
private String foodId;
/**
* 食材一级分类
*/
@NotBlank(message = "请求参数classify1不能为空")
private String classify1;
/**
* 食材二级分类
*/
private String classify2;
/**
* 食材三级分类
*/
private String classify3;
/**
* 性质(食材) 字典大类 02 字典子类 0225
*/
private List<String> natures;
/**
* 膳食特点:字典大类02,字典子类0214
*/
private List<String> foodSpecialties;
/**
* 食材食物成分
*/
@Valid
@NotNull(message = "请求参数composition不能为空")
private FoodComposition composition;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.basedata.api.enums.food.*;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.food.component.ClassifyQuery;
import com.jiankangyouyi.cloud.core.validator.annotation.DateValHC;
import com.jiankangyouyi.cloud.core.validator.annotation.EnumHC;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import java.util.List;
/**
* 底层库管理-查询食材列表
*
* @author yangsongbo
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ManagerFoodMaterialListDTO extends AbstractManagerRequestDTO {
/**
* 食物ID
*/
@Length(max = 32, message = "请求参数foodId长度不合法")
private String foodId;
/**
* 食物名称
*/
@Length(max = 50, message = "请求参数foodName长度不合法")
private String foodName;
/**
* 食物状态
*/
@EnumHC(enumTypes = FoodStatusValidEnum.class, message = "请求参数foodStatus不合法")
private List<String> foodStatus;
/**
* 审核状态 0、草稿 1、待审核 2、已审核 3、已驳回
*/
private List<String> auditStatus;
/**
* 分类查询
*/
private List<ClassifyQuery> classifyQueryList;
/**
* 是否参与配餐: true/false
*/
private Boolean catering;
/**
* 配餐版本号:字典大类02,字典子类0229
*/
private List<String> versions;
/**
* 推荐人群:字典大类02,字典子类0205
*/
private List<String> recommendCrowds;
/**
* 禁忌人群:字典大类02,字典子类0205
*/
private List<String> tabooCrowds;
/**
* 推荐人群 是否选择空选项 默认false
*/
private Boolean recommendCrowdsSelectNull = false;
/**
* 禁忌人群 是否选择空选项 默认false
*/
private Boolean tabooCrowdsSelectNull = false;
/**
* 富含营养素:字典大类02,字典子类0206
*/
private List<String> highContentNutrients;
/**
* 低量营养素:字典大类02,字典子类0218
*/
private List<String> lowContentNutrients;
/**
* 致敏原: 字典大类02,字典子类 0234
*/
private List<String> allergen;
/**
* 升糖指数等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知
*/
@EnumHC(enumTypes = GiLevelEnum.class, message = "请求参数giLevel不合法")
private List<String> giLevel;
/**
* 血糖负荷等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知
*/
@EnumHC(enumTypes = GlLevelEnum.class, message = "请求参数glLevel不合法")
private List<String> glLevel;
/**
* 嘌呤等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知
*/
@EnumHC(enumTypes = PurineLevelEnum.class, message = "请求参数purineLevel不合法")
private List<String> purineLevel;
/**
* 果糖含量等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知
*/
@EnumHC(enumTypes = FructoseLevelEnum.class, message = "请求参数fructoseLevel不合法")
private List<String> fructoseLevel;
/**
* 性质:字典大类02,字典子类0225
*/
private List<String> natures;
/**
* 膳食特点:字典大类02,字典子类0214
*/
private List<String> foodSpecialties;
/**
* 修改开始时间,yyyy-MM-dd HH:mm:ss
*/
@DateValHC(message = "请求参数updateBeginTime不合法")
private String updateBeginTime;
/**
* 修改结束时间,yyyy-MM-dd HH:mm:ss
*/
@DateValHC(message = "请求参数updateEndTime不合法")
private String updateEndTime;
/**
* 排序方式,DESC 降序 、ASC 生序 默认为 DESC
*/
private String sort;
/**
* 排序字段 默认为 updateTime 更新时间排序
*/
private String sortField;
/**
* 创建人
*/
private String createAccount;
/**
* 采纳人
*/
private String adoptAccount;
/**
* 修改人
*/
private String updateAccount;
/**
* 创建开始时间,yyyy-MM-dd HH:mm:ss
*/
@DateValHC(message = "请求参数createBeginTime不合法")
private String createBeginTime;
/**
* 创建结束时间,yyyy-MM-dd HH:mm:ss
*/
@DateValHC(message = "请求参数createEndTime不合法")
private String createEndTime;
/**
* 采纳开始时间,yyyy-MM-dd HH:mm:ss
*/
@DateValHC(message = "请求参数adoptBeginTime不合法")
private String adoptBeginTime;
/**
* 采纳结束时间,yyyy-MM-dd HH:mm:ss
*/
@DateValHC(message = "请求参数adoptEndTime不合法")
private String adoptEndTime;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.Size;
import java.util.List;
/**
* 底层库管理-查询食材列表
*
* @author yangsongbo
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ManagerFoodMaterialListExportDTO extends ManagerFoodMaterialListDTO {
/**
* 选中的食物ID集合
*/
@Size(max = 99, message = "请求参数selectedFoodIds size不合法")
private List<String> selectedFoodIds;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.core.entity.page.Page;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
/**
* 底层库管理-查询食材列表
*
* @author yangsongbo
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ManagerFoodMaterialListWithPageDTO extends ManagerFoodMaterialListDTO {
/**
* 分页参数
*/
@NotNull(message = "请求参数page不能为空")
@Valid
private Page page;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.basedata.api.enums.food.AuditStatusValidEnum;
import com.jiankangyouyi.cloud.basedata.api.model.entity.foodv4.FoodMaterial;
import com.jiankangyouyi.cloud.basedata.enums.SaveTypeEnum;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.core.validator.annotation.EnumHC;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
* 底层库管理-食物库-保存食材
*
* @author yangsongbo
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ManagerFoodMaterialSaveDTO extends AbstractManagerRequestDTO {
/**
* 保存类型
* {@link com.jiankangyouyi.cloud.basedata.enums.SaveTypeEnum}
*/
@NotBlank(message = "请求参数 saveType 不能为空")
@EnumHC(enumTypes = SaveTypeEnum.class, message = "请求参数saveType不合法")
private String saveType;
/**
* 食材信息
*/
@Valid
@NotNull(message = "请求参数foodMaterial不能为空")
private FoodMaterial foodMaterial;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.basedata.api.enums.food.FoodStatusValidEnum;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.food.component.ClassifyQuery;
import com.jiankangyouyi.cloud.core.validator.annotation.DateValHC;
import com.jiankangyouyi.cloud.core.validator.annotation.EnumHC;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import java.util.List;
/**
* 底层库管理-查询预包装食品列表
*
* @author yangsongbo
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ManagerFoodPackageListDTO extends AbstractManagerRequestDTO {
/**
* 食物ID
*/
@Length(max = 32, message = "请求参数foodId长度不合法")
private String foodId;
/**
* 食物名称
*/
@Length(max = 50, message = "请求参数foodName长度不合法")
private String foodName;
/**
* 食物状态
*/
@EnumHC(enumTypes = FoodStatusValidEnum.class, message = "请求参数foodStatus不合法")
private List<String> foodStatus;
/**
* 审核状态 0、草稿 1、待审核 2、已审核 3、已驳回
*/
private List<String> auditStatus;
/**
* 分类查询
*/
private List<ClassifyQuery> classifyQueryList;
/**
* 开始时间,yyyy-MM-dd HH:mm:ss
*/
@DateValHC(message = "请求参数updateBeginTime不合法")
private String updateBeginTime;
/**
* 结束时间,yyyy-MM-dd HH:mm:ss
*/
@DateValHC( message = "请求参数updateEndTime不合法")
private String updateEndTime;
/**
* 排序方式,DESC 降序 、ASC 生序 默认为 DESC
*/
private String sort;
/**
* 排序字段 默认为 updateTime 更新时间排序
*/
private String sortField;
/**
* 条形码
*/
private String barCode;
/**
* 创建人
*/
private String createAccount;
/**
* 采纳人
*/
private String adoptAccount;
/**
* 修改人
*/
private String updateAccount;
/**
* 创建开始时间,yyyy-MM-dd HH:mm:ss
*/
@DateValHC(message = "请求参数createBeginTime不合法")
private String createBeginTime;
/**
* 创建结束时间,yyyy-MM-dd HH:mm:ss
*/
@DateValHC(message = "请求参数createEndTime不合法")
private String createEndTime;
/**
* 采纳开始时间,yyyy-MM-dd HH:mm:ss
*/
@DateValHC(message = "请求参数adoptBeginTime不合法")
private String adoptBeginTime;
/**
* 采纳结束时间,yyyy-MM-dd HH:mm:ss
*/
@DateValHC(message = "请求参数adoptEndTime不合法")
private String adoptEndTime;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.Size;
import java.util.List;
/**
* 底层库管理-查询预包装食品列表
*
* @author yangsongbo
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ManagerFoodPackageListExportDTO extends ManagerFoodPackageListDTO {
/**
* 选中的食物ID集合
*/
@Size(max = 99, message = "请求参数selectedFoodIds size不合法")
private List<String> selectedFoodIds;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.core.entity.page.Page;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
/**
* 底层库管理-查询预包装食品列表
*
* @author yangsongbo
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ManagerFoodPackageListWithPageDTO extends ManagerFoodPackageListDTO {
/**
* 分页参数
*/
@NotNull(message = "请求参数page不能为空")
@Valid
private Page page;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.basedata.api.model.entity.foodv4.FoodPackage;
import com.jiankangyouyi.cloud.basedata.enums.SaveTypeEnum;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.core.validator.annotation.EnumHC;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
* 底层库管理-食物库-保存预包装食品
*
* @author yangsongbo
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ManagerFoodPackageSaveDTO extends AbstractManagerRequestDTO {
/**
* 保存类型
* {@link com.jiankangyouyi.cloud.basedata.enums.SaveTypeEnum}
*/
@NotBlank(message = "请求参数 operateType 不能为空")
@EnumHC(enumTypes = SaveTypeEnum.class, message = "请求参数saveType不合法")
private String saveType;
/**
* 加工食品数据
*/
@Valid
@NotNull(message = "请求参数foodPackage不能为空")
private FoodPackage foodPackage;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.basedata.api.model.entity.foodv4.component.MajorMinorMaterial;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
* 底层库管理-食物库-加工食品计算
*
* @author yangsongbo
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ManagerFoodProcessCalculateDTO extends AbstractManagerRequestDTO {
/**
* 食材一级分类
*/
@NotBlank(message = "请求参数classify1不能为空")
private String classify1;
/**
* 食材二级分类
*/
private String classify2;
/**
* 食材三级分类
*/
private String classify3;
/**
* 烹饪方式:字典大类02,字典子类0203
*/
private String cookingStyle;
/**
* 食物性质
*/
private List<String> natures;
/**
* 烹饪特点 字典大类 02 字典子类 0219
*/
private List<String> cookingSpecialties;
/**
* 主料
*/
@Valid
@NotEmpty(message = "请求参数majorMaterials不能为空")
private List<MajorMinorMaterial> majorMaterials;
/**
* 辅料
*/
@Valid
private List<MajorMinorMaterial> minorMaterials;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.basedata.api.enums.food.*;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.food.component.ClassifyQuery;
import com.jiankangyouyi.cloud.core.validator.annotation.DateValHC;
import com.jiankangyouyi.cloud.core.validator.annotation.EnumHC;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import java.util.List;
/**
* 底层库管理-查询加工食品列表
*
* @author yangsongbo
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ManagerFoodProcessListDTO extends AbstractManagerRequestDTO {
/**
* 食物ID
*/
@Length(max = 32, message = "请求参数foodId长度不合法")
private String foodId;
/**
* 食物名称,模糊匹配,非必输
*/
@Length(max = 50, message = "请求参数foodName长度不合法")
private String foodName;
/**
* 食物状态: 0 启用 1 禁用
*/
@EnumHC(enumTypes = FoodStatusValidEnum.class, message = "请求参数foodStatus不合法")
private List<String> foodStatus;
/**
* 审核状态 0、草稿 1、待审核 2、已审核 3、已驳回
*/
private List<String> auditStatus;
/**
* 分类查询
*/
private List<ClassifyQuery> classifyQueryList;
/**
* 是否参与配餐: true/false,非必输
*/
private Boolean catering;
/**
* 配餐版本号:字典大类02,字典子类0229
*/
private List<String> versions;
/**
* 推荐人群:字典大类02,字典子类0205,非必输
*/
private List<String> recommendCrowds;
/**
* 禁忌人群:字典大类02,字典子类0205,非必输
*/
private List<String> tabooCrowds;
/**
* 适合餐别 字典大类 02 字典子类 0226
*/
private List<String> suitableForMeals;
/**
* 推荐人群 是否选择空选项
*/
private Boolean recommendCrowdsSelectNull = false;
/**
* 禁忌人群 是否选择空选项
*/
private Boolean tabooCrowdsSelectNull = false;
/**
* 富含营养素:字典大类02,字典子类0206,非必输
*/
private List<String> highContentNutrients;
/**
* 低量营养素:字典大类02,字典子类0218,非必输
*/
private List<String> lowContentNutrients;
/**
* 致敏原: 字典大类02,字典子类 0234
*/
private List<String> allergen;
/**
* 升糖指数等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知
*/
@EnumHC(enumTypes = GiLevelEnum.class, message = "请求参数giLevel不合法")
private List<String> giLevel;
/**
* 血糖负荷等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知
*/
@EnumHC(enumTypes = GlLevelEnum.class, message = "请求参数glLevel不合法")
private List<String> glLevel;
/**
* 嘌呤等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知
*/
@EnumHC(enumTypes = PurineLevelEnum.class, message = "请求参数purineLevel不合法")
private List<String> purineLevel;
/**
* 果糖含量等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知
*/
@EnumHC(enumTypes = FructoseLevelEnum.class, message = "请求参数fructoseLevel不合法")
private List<String> fructoseLevel;
/**
* 性质:字典大类02,字典子类0215,非必输
*/
private List<String> natures;
/**
* 膳食特点:字典大类02,字典子类0214,非必输
*/
private List<String> foodSpecialties;
/**
* 烹饪特点:字典大类02,字典子类0214,非必输
*/
private List<String> cookingSpecialties;
/**
* 口味 字典大类 02 字典子类 0201 , 非必输
*/
private List<String> tastes;
/**
* 主料食物ID
*/
private String majorFoodId;
/**
* 辅料食物ID
*/
private String minorFoodId;
/**
* 修改开始时间,yyyy-MM-dd HH:mm:ss
*/
@DateValHC(message = "请求参数updateBeginTime不合法")
private String updateBeginTime;
/**
* 修改结束时间,yyyy-MM-dd HH:mm:ss
*/
@DateValHC(message = "请求参数updateEndTime不合法")
private String updateEndTime;
/**
* 排序方式,DESC 降序 、ASC 生序 默认为 DESC
*/
private String sort;
/**
* 排序字段 默认为 updateTime 更新时间排序
*/
private String sortField;
/**
* 创建人
*/
private String createAccount;
/**
* 采纳人
*/
private String adoptAccount;
/**
* 修改人
*/
private String updateAccount;
/**
* 创建开始时间,yyyy-MM-dd HH:mm:ss
*/
@DateValHC(message = "请求参数createBeginTime不合法")
private String createBeginTime;
/**
* 创建结束时间,yyyy-MM-dd HH:mm:ss
*/
@DateValHC(message = "请求参数createEndTime不合法")
private String createEndTime;
/**
* 采纳开始时间,yyyy-MM-dd HH:mm:ss
*/
@DateValHC(message = "请求参数adoptBeginTime不合法")
private String adoptBeginTime;
/**
* 采纳结束时间,yyyy-MM-dd HH:mm:ss
*/
@DateValHC(message = "请求参数adoptEndTime不合法")
private String adoptEndTime;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.Size;
import java.util.List;
/**
* 底层库管理-查询加工食品列表
*
* @author yangsongbo
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ManagerFoodProcessListExportDTO extends ManagerFoodProcessListDTO {
/**
* 选中的食物ID集合
*/
@Size(max = 99, message = "请求参数selectedFoodIds size不合法")
private List<String> selectedFoodIds;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.core.entity.page.Page;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
/**
* 底层库管理-查询加工食品列表
*
* @author yangsongbo
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ManagerFoodProcessListWithPageDTO extends ManagerFoodProcessListDTO {
/**
* 分页参数
*/
@NotNull(message = "请求参数page不能为空")
@Valid
private Page page;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.basedata.api.model.entity.foodv4.FoodProcess;
import com.jiankangyouyi.cloud.basedata.enums.SaveTypeEnum;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.core.validator.annotation.EnumHC;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
* 底层库管理-食物库-保存加工食品
*
* @author yangsongbo
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ManagerFoodProcessSaveDTO extends AbstractManagerRequestDTO {
/**
* 保存类型
* {@link com.jiankangyouyi.cloud.basedata.enums.SaveTypeEnum}
*/
@NotBlank(message = "请求参数 saveType 不能为空")
@EnumHC(enumTypes = SaveTypeEnum.class, message = "请求参数saveType不合法")
private String saveType;
/**
* 加工食品数据
*/
@Valid
@NotNull(message = "请求参数foodProcess不能为空")
private FoodProcess foodProcess;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.basedata.api.enums.food.FoodStatusValidEnum;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.core.validator.annotation.EnumHC;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* 底层库管理-食物快速查询
*
* @author yangsongbo
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ManagerFoodQuickQueryDTO extends AbstractManagerRequestDTO {
/**
* 食物ID
*/
@Length(max = 32, message = "请求参数foodId长度不合法")
private String foodId;
/**
* 食物名称
*/
@Length(max = 50, message = "请求参数foodName长度不合法")
private String foodName;
/**
* 食物状态
*/
@EnumHC(enumTypes = FoodStatusValidEnum.class, message = "请求参数foodStatus不合法")
private List<String> foodStatus;
/**
* 审核状态 0、草稿 1、待审核 2、已审核 3、已驳回
*/
private List<String> auditStatus;
/**
* 是否参与配餐: true/false
*/
private Boolean catering;
/**
* 每页条数
*/
@NotNull(message = "请求参数pageSize不能为空")
@Max(value = 99, message = "请求参数pageSize不合法")
private Integer pageSize;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.basedata.api.enums.food.FoodStatusEnum;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.core.validator.annotation.EnumHC;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Size;
import java.util.List;
/**
* 底层库管理-修改食物状态
*
* @author yangsongbo
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ManagerFoodStatusUpdateDTO extends AbstractManagerRequestDTO {
/**
* 食物ID集合
*/
@NotEmpty(message = "请求参数foodId不能为空")
@Size(max = 99, message = "请求参数foodId size不合法")
private List<String> foodIds;
/**
* 食物状态
*/
@NotBlank(message = "请求参数foodStatus不能为空")
@EnumHC(enumTypes = FoodStatusEnum.class, message = "请求参数foodStatus不合法")
private String foodStatus;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.basedata.api.enums.food.FoodPropertyEnum;
import com.jiankangyouyi.cloud.basedata.api.enums.food.FoodStatusValidEnum;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.food.component.ClassifyQuery;
import com.jiankangyouyi.cloud.core.validator.annotation.EnumHC;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* 底层库管理-食物名称模糊查询
*
* @author yangsongbo
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ManagerQueryFuzzyByFoodNameDTO extends AbstractManagerRequestDTO {
/**
* 食物名称
*/
@NotBlank(message = "请求参数foodName不能为空")
@Length(max = 50, message = "请求参数foodName长度不合法")
private String foodName;
/**
* 查询条数
*/
@NotNull(message = "请求参数pageSize不能为空")
@Max(value = 99, message = "请求参数pageSize不合法")
private Integer pageSize;
/**
* 食物属性 : 1 食材 2 加工食品 3 包装食品
*/
@NotBlank(message = "请求参数foodProperty不能为空")
@EnumHC(enumTypes = FoodPropertyEnum.class, message = "请求参数foodProperty不合法")
private String foodProperty;
/**
* 食物状态: 1 启用 2 停用 3 草稿
*/
@EnumHC(enumTypes = FoodStatusValidEnum.class, message = "请求参数foodStatus不合法")
private List<String> foodStatus;
/**
* 分类查询
*/
private List<ClassifyQuery> classifyQueryList;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
/**
* 底层库管理-食物名称精准查询
*
* @author yangsongbo
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ManagerQueryPreciseByFoodNameDTO extends AbstractManagerRequestDTO {
/**
* 食物名称
*/
@NotBlank(message = "请求参数foodName不能为空")
@Length(max = 50, message = "请求参数foodName长度不合法")
private String foodName;
/**
* 食物属性 (1、食材 2、加工食品 3、预包装食品)
*/
private String foodProperty;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food.component;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author :wangyalei
* @date :2022/7/20 2:55 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ClassifyQuery implements Serializable {
/**
* 一级分类
*/
private String classify1;
/**
* 二级分类
*/
private String classify2;
/**
* 三级分类
*/
private String classify3;
/**
* 四级分类
*/
private String classify4;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food.component;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 描述
*
* @author qxy
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FoodImageInfo {
/**
* appId
*/
private String appId;
/**
* nonceStr
*/
private String nonceStr;
/**
* sign 验签
*/
private String sign;
/**
* 时间
*/
private String timestamp;
/**
* version
*/
private String version;
/**
* image对象
*/
private FoodImageInfoData reqData;
/**
*
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public static class FoodImageInfoData implements Serializable {
private static final long serialVersionUID = 1L;
/**
* imagebase64
*/
private String image;
}
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.food.component;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.*;
/**
* 加工食品类型 材料信息 (主料、辅料 、药材)
* @author :wangyalei
* @date :Created in 2021/4/29 3:33 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FoodProcessMaterialInfo {
/**
* 食物类型 1食材 2加工食品 3包装食品 4 药材
*/
@NotEmpty(message = "请求参数foodProperty不能为空")
@Size(max = 1,message = "请求参数foodProperty有效长度为1")
private String foodProperty;
/**
* 食物id
*/
@NotEmpty(message = "请求参数foodId不能为空")
@Size(max = 32,message = "请求参数foodId有效长度为32")
private String foodId;
/**
* 数量
*/
@NotNull(message = "请求参数count不能为空")
@Max(value = 9999,message = "请求参数最大值为9999")
@Min(value = 1,message = "请求参数最小值为1")
private Integer count;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.knowledge;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.web.multipart.MultipartFile;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ImportQuestionDTO implements ValidDTO {
/**
* 上传的excel
*/
private MultipartFile file;
/**
* 登陆管理员名称
*/
private String updateName;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.knowledge;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
* 科普选择库 删除请求参数
* @author :wangyalei
* @date :2022/7/4 10:57 上午
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class KnowledgeQuestionDeleteDTO extends AbstractManagerRequestDTO implements ValidDTO {
/**
* 问题ID
*/
@NotEmpty(message = "请求参数questionIds不能为空")
private List<String> questionIds;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.knowledge;
import com.jiankangyouyi.cloud.basedata.model.dto.api.AbstractHttpApiRequestDTO;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
@Data
public class KnowledgeQuestionIdDTO extends AbstractHttpApiRequestDTO {
/**
* 问题ID
*/
@NotEmpty(message = "请求参数questionId不能为空")
private String questionId;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.knowledge;
import com.jiankangyouyi.cloud.basedata.model.dto.api.AbstractHttpApiRequestDTO;
import com.jiankangyouyi.cloud.core.entity.page.Page;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class ListPageKnowledgeQuestionDTO extends AbstractHttpApiRequestDTO {
private static final long serialVersionUID = 1L;
/**
* 问题id
*/
private String questionId;
/**
* 问题分类
*/
private List<String> questionCategory;
/**
* 题目
*/
private String questionContents;
/**
* 解析
*/
private String answerInterprets;
/**
* 有效状态
*/
private String useFlag;
/**
* 创建时间-开始
*/
private Long createTimeStart;
/**
* 创建时间-结束
*/
private Long createTimeEnd;
/**
* 修改时间 -开始
*/
private Long updateTimeStart;
/**
* 修改时间 -开始
*/
private Long updateTimeEnd;
/**
* 选择提类型 1 单选 2 多选
*/
private String optionFlag;
/**
* 分页信息
*/
@Valid
@NotNull(message = "请求参数page不能为空")
private Page page;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.knowledge;
import com.jiankangyouyi.cloud.basedata.model.dto.api.AbstractHttpApiRequestDTO;
import com.jiankangyouyi.cloud.core.entity.page.Page;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ListPageQuestionsAndAnswersDTO extends AbstractHttpApiRequestDTO {
/**
* 分类
*/
private List<String> classify1;
private List<String> classify2;
/**
* 人群
*/
private List<String> crowd;
/**
* 疾病
*/
private List<String> disease;
/**
* 标签
*/
private String tag;
/**
* 分页参数
*/
@NotNull(message = "请求参数page不能为空")
@Valid
private Page page;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.knowledge;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ListPageQuestionsAndAnswersExportDTO extends AbstractManagerRequestDTO implements Serializable, ValidDTO {
/**
* id
*/
List<String> questionsAndAnswersIds;
/**
* 问题
*/
@Size(max = 20, message = "请求参数 question 长度不合法")
private String question;
/**
* 状态(1)草稿:所以角色均可删除
*
* (2)待审核:所有角色均可删除
*
* (3)已采纳:录入人员不可删除,审核人员可删除
*
* (4)已驳回:所有角色均可删除
*/
@Size(max = 3, message = "请求参数 status 长度不合法")
private String status;
/**
* 分类
*/
private List<String> classify1;
private List<String> classify2;
private List<String> classify3;
/**
* 人群
*/
private List<String> crowd;
/**
* 参考文献
*/
private List<String> reference;
/**
* 疾病
*/
private List<String> disease;
/**
* 食材
*/
private List<String> foodMaterial;
/**
* 标签
*/
private String tag;
/**
* 创建时间排序状态 1 asc 2 desc
*/
@Size(max = 3, message = "请求参数 createSortStatus 长度不合法")
private String createSortStatus;
/**
* 采纳时间排序状态 1 asc 2 desc
*/
@Size(max = 3, message = "请求参数 updateSortStatus 长度不合法")
private String adoptSortStatus;
/**
* 创建开始时间
*/
@Size(max = 19, message = "请求参数 createTimeBegin 长度不合法")
private String createTimeBegin;
/**
* 创建结束时间
*/
@Size(max = 19, message = "请求参数 createTimeEnd 长度不合法")
private String createTimeEnd;
/**
* 采纳时间
*/
@Size(max = 19, message = "请求参数 adoptTime 长度不合法")
private String adoptTimeBegin;
/**
* 采纳时间
*/
@Size(max = 19, message = "请求参数 adoptTime 长度不合法")
private String adoptTimeEnd;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.knowledge;
import com.jiankangyouyi.cloud.basedata.api.model.entity.knowledge.KnowledgeQuestionOption;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class ModifyKnowledgeQuestionDTO extends AbstractManagerRequestDTO implements ValidDTO {
/**
* 问题id
*/
private String questionId;
/**
* 问题分类
*/
@NotEmpty(message = "请求参数questionCategory不能为空")
private String questionCategory;
/**
*选择提类型 1 单选 2 多选
*/
private String optionFlag;
/**
* 标签
*/
private List<String> tags;
/**
* 问题内容-换行(为数组)
*/
@NotNull(message = "请求参数questionContents不能为空")
private List<String> questionContents;
/**
* 选项列表
*/
@NotNull(message = "请求参数options不能为空")
private List<KnowledgeQuestionOption> options;
/**
* 答案解读 换行
*/
@NotNull(message = "请求参数answerInterprets不能为空")
private List<String> answerInterprets;
/**
* 有效状态
*/
@NotEmpty(message = "请求参数useFlag不能为空")
private String useFlag;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.knowledge;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.*;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ModifyQuestionsAndAnswersDTO extends AbstractManagerRequestDTO implements ValidDTO {
@Size(max = 32, message = "请求参数questionsAndAnswersId长度不合法")
private String questionsAndAnswersId;
/**
* 一级分类
*/
@Size(max = 32, message = "请求参数 classify1 长度不合法")
// @NotBlank(message = "classify1 不能为空")
private String classify1;
/**
* 二级分类
*/
@Size(max = 32, message = "请求参数 classify2 长度不合法")
// @NotBlank(message = "classify1 不能为空")
private String classify2;
/**
* 三级分类
*/
@Size(max = 32, message = "请求参数 classify3 长度不合法")
private String classify3;
/**
* 问题
*/
@Size(max = 20, message = "请求参数 question 长度不合法")
// @NotBlank(message = "question 不能为空")
private String question;
/**
* 答案
*/
@Size(max = 200, message = "请求参数 question 长度不合法")
// @NotBlank(message = "answer 不能为空")
private String answer;
/**
* 人群
*/
// @NotEmpty(message = "crowd 不能为空")
private List<String> crowd;
/**
* 标签 必填项,可添加多个标签,标签个数最多不能超过10个,每个标签限制1-10个字,不能含有空格、标点符号、特殊符号
*/
// @NotEmpty(message = "tags 不能为空")
private List<String> tags;
/**
* 食材
*/
private List<String> foodMaterial;
/**
* 参考文献
*/
// @NotEmpty(message = "reference 不能为空")
private List<String> reference;
/**
* 状态 1)草稿:所以角色均可删除
*
* (2)待审核:所有角色均可删除
*
* (3)已采纳:录入人员不可删除,审核人员可删除
*
* (4)已驳回:所有角色均可删除
*/
@NotBlank(message = "status not null")
@Min(value = 1, message = "status [1:草稿][2:待审核][3:已采纳][4:已驳回]")
@Max(value = 4, message = "status [1:草稿][2:待审核][3:已采纳][4:已驳回]")
private String status;
/**
* 疾病
*/
private List<String> disease;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.knowledge;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class QuestionsAndAnswersDeleteDTO extends AbstractManagerRequestDTO implements ValidDTO {
/**
* 试题ids
*/
@NotEmpty(message = "questionsAndAnswersIds 不能为空")
private List<String> questionsAndAnswersIds;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.knowledge;
import com.jiankangyouyi.cloud.basedata.model.dto.api.AbstractHttpApiRequestDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* 描述
*
* @author qxy
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class QuestionsAndAnswersIdDTO extends AbstractHttpApiRequestDTO {
@Size(max = 32, message = "请求参数questionsAndAnswersId长度不合法")
@NotBlank(message = "questionsAndAnswersId 不能为空")
private String questionsAndAnswersId;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.knowledge;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class QuestionsAndAnswersUseStatusDTO extends AbstractManagerRequestDTO implements ValidDTO {
/**
* 驳回理由
*/
private List<String> reasonsForRejection;
/**
* id
*/
@NotBlank(message = "questionsAndAnswersId 不能为空")
private String questionsAndAnswersId;
/**
* 有效标识符
*/
@NotBlank(message = "status 不能为空")
private String status;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.knowledge;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.Data;
import java.util.List;
@Data
public class UpdateKnowledgeQuestionUseStatusDTO extends AbstractManagerRequestDTO implements ValidDTO {
/**
* 试题ids
*/
private List<String> questionIds;
/**
* 有效标识符
*/
private String useFlag;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.literature;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
/**
* @author lvqidong
* @date 2022/02/09 11:12
**/
@Data
public class LiteratureIdDTO implements ValidDTO {
/**
* 文献id
*/
@NotEmpty(message = "文献id不能为空")
private String literatureId;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.literature;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.ServiceNodes;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.Data;
import org.hibernate.validator.constraints.Range;
import org.springframework.validation.annotation.Validated;
import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Size;
import java.util.List;
/**
* 新增修改文献
*
* @author lvqidong
* @date 2022/02/09 10:58
**/
@Data
public class ModifyLiteratureDTO implements ValidDTO {
/**
* 文献id
*/
private String literatureId;
/**
* 文献标题内容
*/
@NotEmpty(message = "文献标题内容不能为空")
private String literatureContext;
/**
* 启用/禁用 1启用 2 禁用
*/
@NotEmpty(message = "启用/禁用不能为空")
private String useFlag;
/**
* 排序值
*/
@Range( min = 1, message = "排序值必须为大于0的自然数")
private Integer literatureSort;
/**
* 附件名称
*/
private String attachmentName;
/**
* 附件地址
*/
private String attachmentUrl;
/**
* 关联服务
*/
@NotEmpty
@Valid
private List<ServiceNodes> serviceNodes;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.literature;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jiankangyouyi.cloud.core.entity.page.Page;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
* @author lvqidong
* @date 2022/02/09 10:54
**/
@Data
public class QueryPageDTO implements Serializable, ValidDTO {
/**
* 文献id
*/
private String literatureId;
/**
* 文献标题内容
*/
private String literatureContext;
/**
* 创建时间 开始时间
*/
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeStart;
/**
* 创建时间 结束时间
*/
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeEnd;
/**
* 分页信息
*/
@NotNull(message = "请求参数page不能为空")
private Page page;
/**
* 排序 1正序 2倒叙
*/
private String orderSort;
/**
* 分类codes 字典
*/
private List<String> classifyCodes;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.literature;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
/**
* @author lvqidong
* @date 2022/02/09 11:08
**/
@Data
public class UseFlagDTO implements ValidDTO {
/**
* 文献id
*/
@NotEmpty(message = "文献id不能为空")
private String literatureId;
/**
* 启用/禁用 1启用 2 禁用
*/
@NotEmpty(message = "启用/禁用不能为空")
private String useFlag;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.question;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
/**
* 问题库——删除问题请求数据
*
* @author fengxuanjun
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class QuestionDeleteDTO extends AbstractManagerRequestDTO implements ValidDTO {
private static final long serialVersionUID = 1L;
/**
* 问题ID集合
*/
@Size(min=1,max = 99, message = "请求参数questionId长度不合法")
@NotNull(message ="请求参数questionIds不能为空" )
private List<String> questionIds;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.question;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* 问题详情请求数据
*
* @author fengxuanjun
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class QuestionDetailQueryDTO implements ValidDTO {
private static final long serialVersionUID = 1L;
/**
* 问题ID
*/
@NotBlank(message = "请求参数questionId不能为空")
@Size(max = 32, message = "请求参数questionId长度不合法")
private String questionId;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.question;
import com.jiankangyouyi.cloud.core.entity.page.Page;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
/**
* 问题列表查询条件请求数据
*
* @author fengxuanjun
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class QuestionListQueryDTO implements ValidDTO {
private static final long serialVersionUID = 1L;
/**
* 分页请求信息
*/
@Valid
@NotNull(message ="请求参数page不能为空")
private Page page;
/**
* 一级分类ID
*/
@Size(max = 32, message = "请求参数classify1长度不合法")
private String classify1;
/**
* 二级分裂ID
*/
@Size(max = 32, message = "请求参数classify2长度不合法")
private String classify2;
/**
* 题型
* 1:单选题
* 2:多选题
* 3:性别题
* 4:出生日期题
* 5:单项数字题
* 6:多项数字题
* 7:BMI题
*/
@Size(max = 2, message = "请求参数questionType长度不合法")
private String questionType;
/**
* 相关疾病
*/
private List<String> relatedDiseases;
@Size(max = 50, message = "请求参数questionContent长度不合法")
private String questionContent;
/**
* 开始时间-问题时间 yyyy-MM-dd HH:mm:ss
*/
@Size(max = 19, message = "请求参数beginTime长度不合法")
private String beginTime;
/**
* 开始时间-问题时间 yyyy-MM-dd HH:mm:ss
*/
@Size(max = 19, message = "请求参数endTime长度不合法")
private String endTime;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.question;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.AbstractManagerRequestDTO;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.question.component.MainQuestionParam;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
/**
* 问题保存请求数据
*
* @author fengxuanjun
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class QuestionSaveDTO extends AbstractManagerRequestDTO implements ValidDTO {
private static final long serialVersionUID = 1L;
/**
* 问题ID,新增是为null,修改时必传
*/
@Size(max = 32, message = "请求参数questionId长度不合法")
private String questionId;
/**
* 一级分类Code
*/
@Size(max = 32, message = "请求参数classify1长度不合法")
@NotBlank(message = "请求参数classify1不能为空")
private String classify1;
/**
* 二级分裂Code
*/
@Size(max = 32, message = "请求参数classify2长度不合法")
private String classify2;
/**
* 题型
* 1:单选题
* 2:多选题
* 3:性别题
* 4:出生日期题
* 5:单项数字题
* 6:多项数字题
* 7:BMI题
*/
@NotBlank(message = "请求参数questionType不能为空")
@Size(max = 2, message = "请求参数questionType长度不合法")
private String questionType;
/**
* 相关疾病
*/
private List<String> relatedDiseases;
/**
* 问题对象
*/
@Valid
@NotNull(message ="请求参数mainQuestion不能为空")
private MainQuestionParam mainQuestion;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.question;
import com.jiankangyouyi.cloud.core.entity.page.Page;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
* 问卷列表查询条件请求数据
*
* @author fengxuanjun
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class QuestionnairesListQueryDTO implements ValidDTO {
private static final long serialVersionUID = 1L;
/**
* 分页请求信息
*/
@Valid
@NotNull(message ="请求参数page不能为空")
private Page page;
/**
* 一级分类ID
*/
@Size(max = 1, message = "请求参数validStatus长度不合法")
private String validStatus;
/**
* 二级分裂ID
*/
@Size(max = 50, message = "请求参数questionnaireName长度不合法")
private String questionnaireName;
/**
* 开始时间-问题时间 yyyy-MM-dd HH:mm:ss
*/
private String beginTime;
/**
* 开始时间-问题时间 yyyy-MM-dd HH:mm:ss
*/
private String endTime;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.question;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* 问卷预览请求数据
*
* @author fengxuanjun
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class QuestionnairesPreviewQueryDTO implements ValidDTO {
private static final long serialVersionUID = 1L;
@NotBlank(message = "请求参数bizType不能为空")
@Size(max = 10, message = "请求参数bizType长度不合法")
private String bizType;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.question.component;
import com.jiankangyouyi.cloud.basedata.api.model.entity.questionnaire.BirthdayChoiceOptionBuilder;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* 出生日期题
*
* @author fengxuanjun
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class BirthdayChoiceMainQuestionParam extends MainQuestionParam {
private static final long serialVersionUID = 1L;
/**
* NOT NULL 问题内容
*/
@NotBlank(message = "请求参数questionContent不能为空")
private String questionContent;
/**
* NOT NULL 出生日期题构建对象
*/
@NotNull(message = "请求参数optionBuilder不能为空")
private BirthdayChoiceOptionBuilder optionBuilder;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.question.component;
import com.jiankangyouyi.cloud.basedata.api.model.entity.questionnaire.BmiChoiceOptionBuilder;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
/**
* BMI题
*
* @author fengxuanjun
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class BmiChoiceMainQuestionParam extends MainQuestionParam {
private static final long serialVersionUID = 1L;
/**
* NOT NULL 问题内容
*/
@NotBlank(message = "请求参数questionContent不能为空")
private String questionContent;
/**
* NULL 补充内容
*/
private String supplementContent;
/**
* BMI题构建对象
*/
@NotNull(message = "请求参数optionBuilders不能为空")
@Size(min = 1,message = "请求参数optionBuilders长度不合法")
private List<BmiChoiceOptionBuilder> optionBuilders;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.question.component;
import com.jiankangyouyi.cloud.basedata.api.model.entity.questionnaire.GenderChoiceMainOption;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
/**
* 性别题
*
* @author fengxuanjun
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class GenderChoiceMainQuestionParam extends MainQuestionParam {
private static final long serialVersionUID = 1L;
/**
* NOT NULL 问题内容
*/
@NotBlank(message = "请求参数questionContent不能为空")
private String questionContent;
/**
* 选项列表,不能为空
*/
@NotNull(message = "请求参数mainOptions不能为空")
@Size(min = 1,max = 2,message = "请求参数mainOptions长度不合法")
private List<GenderChoiceMainOption> mainOptions;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.question.component;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.Data;
/**
* 问题保存请求问题对象
*
* @author fengxuanjun
*/
@Data
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.EXISTING_PROPERTY,
property = "questionType",
visible = true)
@JsonSubTypes({
@JsonSubTypes.Type(value = SingleChoiceMainQuestionParam.class, name = MainQuestionParam.SINGLE_CHOICE),
@JsonSubTypes.Type(value = MultipleChoiceMainQuestionParam.class, name = MainQuestionParam.MULTIPLE_CHOICE),
@JsonSubTypes.Type(value = GenderChoiceMainQuestionParam.class, name = MainQuestionParam.GENDER_CHOICE),
@JsonSubTypes.Type(value = BirthdayChoiceMainQuestionParam.class, name = MainQuestionParam.BIRTHDAY_CHOICE),
@JsonSubTypes.Type(value = SingleNumberChoiceMainQuestionParam.class, name = MainQuestionParam.SINGLE_NUMBER_CHOICE),
@JsonSubTypes.Type(value = MultipleNumberChoiceMainQuestionParam.class, name = MainQuestionParam.MULTIPLE_NUMBER_CHOICE),
@JsonSubTypes.Type(value = BmiChoiceMainQuestionParam.class, name = MainQuestionParam.BMI_CHOICE),
})
public abstract class MainQuestionParam implements ValidDTO {
protected static final String SINGLE_CHOICE = "1";
protected static final String MULTIPLE_CHOICE = "2";
protected static final String GENDER_CHOICE = "3";
protected static final String BIRTHDAY_CHOICE = "4";
protected static final String SINGLE_NUMBER_CHOICE = "5";
protected static final String MULTIPLE_NUMBER_CHOICE = "6";
protected static final String BMI_CHOICE = "7";
protected String questionType;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.question.component;
import com.jiankangyouyi.cloud.basedata.api.model.entity.questionnaire.MultipleChoiceMainOption;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
/**
* 多选题
*
* @author fengxuanjun
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class MultipleChoiceMainQuestionParam extends MainQuestionParam {
/**
* NOT NULL 问题内容,存在换行时为多条记录
*/
@NotNull(message = "请求参数questionContents不能为空")
@Size(min = 1,message = "请求参数questionContents长度不合法")
private List<String> questionContents;
/**
* NULL 补充内容
*/
private List<String> supplementContents;
/**
* NULL 补充图片,最多3张图片
*/
@Size(max = 3,message = "请求参数imageUrls长度不合法")
private List<String> imageUrls;
/**
* NOT NULL 选项列表
*/
@NotNull(message = "请求参数mainOptions不能为空")
@Size(min = 1,message = "请求参数mainOptions长度不合法")
private List<MultipleChoiceMainOption> mainOptions;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.question.component;
import com.jiankangyouyi.cloud.basedata.api.model.entity.questionnaire.MultipleNumberChoiceOptionBuilder;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
/**
* 多项数字题
*
* @author fengxuanjun
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class MultipleNumberChoiceMainQuestionParam extends MainQuestionParam {
private static final long serialVersionUID = 1L;
/**
* NOT NULL List<String> 问题内容
*/
@NotNull(message = "请求参数questionContents不能为空")
@Size(min = 1,message = "请求参数questionContents长度不合法")
private List<String> questionContents;
/**
* NULL 补充内容
*/
private List<String> supplementContents;
/**
* NOT NULL 多项数字题构建对象
*/
@NotNull(message = "请求参数optionBuilders不能为空")
@Size(min = 1,message = "请求参数optionBuilders长度不合法")
private List<MultipleNumberChoiceOptionBuilder> optionBuilders;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.question.component;
import com.jiankangyouyi.cloud.basedata.api.model.entity.questionnaire.SingleChoiceMainOption;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
/**
* 单选题
*
* @author fengxuanjun
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class SingleChoiceMainQuestionParam extends MainQuestionParam {
private static final long serialVersionUID = 1L;
/**
* NOT NULL 测评题内容,存在换行时为多条记录
*/
@NotNull(message = "请求参数questionContents不能为空")
@Size(min = 1,message = "请求参数questionContents长度不合法")
private List<String> questionContents;
/**
* NULL 补充内容,存在换行时为多条记录
*/
private List<String> supplementContents;
/**
* NULL 补充图片,最多3张图片
*/
@Size(max = 3,message = "请求参数imageUrls长度不合法")
private List<String> imageUrls;
/**
* 选项列表,不能为空
*/
@NotNull(message = "请求参数mainOptions不能为空")
@Size(min = 1,message = "请求参数mainOptions长度不合法")
private List<SingleChoiceMainOption> mainOptions;
}
package com.jiankangyouyi.cloud.basedata.model.dto.manager.question.component;
import com.jiankangyouyi.cloud.basedata.api.model.entity.questionnaire.SingleNumberChoiceOptionBuilder;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
/**
* 单项数字题
*
* @author fengxuanjun
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class SingleNumberChoiceMainQuestionParam extends MainQuestionParam {
private static final long serialVersionUID = 1L;
/**
* NOT NULL List<String> 问题内容
*/
@NotNull(message = "请求参数questionContents不能为空")
@Size(min = 1,message = "请求参数questionContents长度不合法")
private List<String> questionContents;
/**
* NULL 补充内容
*/
private List<String> supplementContents;
/**
* NOT NULL 单项数字题构建对象
*/
@NotNull(message = "请求参数optionBuilder不能为空")
private SingleNumberChoiceOptionBuilder optionBuilder;
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo;
import com.jiankangyouyi.cloud.basedata.api.model.entity.knowledge.QaKnowledgeQuestion;
import com.jiankangyouyi.cloud.core.base.entity.BaseMongoEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.mapping.Document;
import java.io.Serializable;
import java.util.List;
/**
* 知识竞赛问卷表
*
* @author jingpeng
*/
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@CompoundIndexes(
value = {
@CompoundIndex(
name = "questionnaireId_1_validStatus_-1",
def = "{'questionnaireId' : 1, 'validStatus': -1}"
),
@CompoundIndex(
name = "questionnaireId_1",
def = "{'questionnaireId' : 1 }",
unique = true
)
}
)
@Document(collection = "v3.activity.qa.questionnaire")
public class ActivityQaQuestionnaireDO extends BaseMongoEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 问卷id NOT NULL
*/
private String questionnaireId;
/**
* 问题对象集合
*/
private List<QaKnowledgeQuestion> questions;
public static final String FIELD_QUESTIONNAIREID = "questionnaireId";
public static final String FIELD_QUESTIONS = "questions";
public static final String FIELD_QUESTIONS_QUESTIONID = "questions.questionId";
public static final String FIELD_QUESTIONS_QUESTIONCATEGORY = "questions.questionCategory";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo;
import com.jiankangyouyi.cloud.core.base.entity.BaseMongoEntity;
import lombok.*;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
/**
* 分类表
*
* @author fengxuanjun
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@CompoundIndexes(
value = {
@CompoundIndex(
name = "classifyId_-1",
def = "{'classifyId' : -1}"
)
}
)
@Document(collection = "v3.base.data.classify")
public class BaseDataClassifyDO extends BaseMongoEntity {
private static final long serialVersionUID = 1L;
/**
* NOT NULL 分类业务ID
*/
@Indexed(unique = true)
private String classifyId;
/**
* NOT NULL
* 业务属性
* 1 食材库
* 2 加工食品库
* 3 包装食品库
* 4 中医药材库
* 5 问题库
* 6 指标库
*/
private String bizProperty;
/**
* NOT NULL 上级业务ID 一级默认为”0“
*/
private String parentId;
/**
* NOT NULL 分类等级(例:一级:1,二级:2)
*/
private Integer classifyLevel;
/**
* NOT NULL 分类名称
*/
private String classifyName;
/**
* NOT NULL 分类编码(例:一级01,二级0101)
*/
private String classifyCode;
/**
* NOT NULL 排序(默认9999)
*/
private Integer rowOrder;
/**
* NULL 分类图片
*/
private String imageUrl;
/**
* 分类简介
*/
private String description;
/**
* 临床意义
*/
private String meaning;
public static final String FIELD_CLASSIFYID = "classifyId";
public static final String FIELD_BIZPROOERTY = "bizProperty";
public static final String FIELD_PARENTID = "parentId";
public static final String FIELD_CLASSIFYLEVEL = "classifyLevel";
public static final String FIELD_CLASSIFYNAME = "classifyName";
public static final String FIELD_CLASSIFYCODE = "classifyCode";
public static final String FIELD_ROWORDER = "rowOrder";
public static final String FIELD_IMAGEURL = "imageUrl";
public static final String FIELD_DESCRIPTION = "description";
public static final String FIELD_MEANING = "meaning";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jiankangyouyi.cloud.basedata.enums.export.ExportStatusEnum;
import com.jiankangyouyi.cloud.core.base.enums.ValidStatusEnum;
import com.jiankangyouyi.cloud.core.util.time.TimeUtils;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* 数据导出表
*
* @author yangsongbo
*/
@Data
@Builder
@AllArgsConstructor
@CompoundIndexes(
value = {
@CompoundIndex(
name = "account_-1_createTime_-1_exportStatus_1",
def = "{ 'account': -1,'createTime': -1,'exportStatus': 1}"
)
}
)
@Document(collection = "v3.base.data.export")
public class BaseDataExportDO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@Id
private ObjectId _id;
/**
* 有效标识符
*/
private String validStatus;
/**
* 修改时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/**
* 创建时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
* 创建日期 yyyy-MM-dd
*/
private String createDate;
/**
* 导出ID,主键
*/
@Indexed(unique = true)
private String exportId;
/**
* 登录帐号
*/
private String account;
/**
* 导出类型
* <p>
* {@link com.jiankangyouyi.cloud.basedata.enums.export.ExportTypeEnum}
*/
private String exportType;
/**
* 导出位置
* <p>
* {@link com.jiankangyouyi.cloud.basedata.enums.export.ExportTypeEnum}
*/
private String exportLocation;
/**
* 请求数据
*/
private String requestJson;
/**
* 已处理数据量
*/
private Integer processCount;
/**
* 总数据量
*/
private Integer totalCount;
/**
* 下载链接
*/
private String downloadUrl;
/**
* 耗时,毫秒
*/
private Long costTime;
/**
* 导出状态
* <p>
* {@link ExportStatusEnum}
*/
private String exportStatus;
/**
* 处理信息
*/
private String message;
public BaseDataExportDO() {
Date curDate = TimeUtils.getCurrentDate();
this.updateTime = curDate;
this.createTime = curDate;
this.createDate = TimeUtils.getStringOfCurrentDate(TimeUtils.FORMAT_STANDARD_DATE);
this.validStatus = ValidStatusEnum.VALID.getCode();
}
public static final String FIELD_ID = "_id";
public static final String FIELD_VALIDSTATUS = "validStatus";
public static final String FIELD_UPDATETIME = "updateTime";
public static final String FIELD_CREATETIME = "createTime";
public static final String FIELD_CREATEDATE = "createDate";
public static final String FIELD_EXPORTID = "exportId";
public static final String FIELD_ACCOUNT = "account";
public static final String FIELD_EXPORTTYPE = "exportType";
public static final String FIELD_EXPORTLOCATION = "exportLocation";
public static final String FIELD_REQUESTJSON = "requestJson";
public static final String FIELD_PROCESSCOUNT = "processCount";
public static final String FIELD_TOTALCOUNT = "totalCount";
public static final String FIELD_DOWNLOADURL = "downloadUrl";
public static final String FIELD_COSTTIME = "costTime";
public static final String FIELD_EXPORTSTATUS = "exportStatus";
public static final String FIELD_MESSAGE = "message";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jiankangyouyi.cloud.basedata.api.model.entity.indicator.BodyIndicator;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 身体指标库
*
* @author yangsongbo
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@CompoundIndexes(
value = {
@CompoundIndex(
name = "indicator_-1_validStatus_1",
def = "{'indicator' : -1, 'validStatus' : 1}"
)
}
)
@Document(collection = "v3.body.indicator")
public class BodyIndicatorDO extends BodyIndicator {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@Id
private ObjectId id;
/**
* 有效标识符,无效时使用UUID
*/
private String validStatus;
/**
* 修改时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/**
* 修改时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
* NULL 备注
*/
private String remark;
public static final String FIELD_ID = "_id";
public static final String FIELD_VALID_STATUS = "validStatus";
public static final String FIELD_UPDATE_TIME = "updateTime";
public static final String FIELD_CREATE_TIME = "createTime";
public static final String FIELD_REMARK = "remark";
public static final String FIELD_INDICATOR = "indicator";
public static final String FIELD_INDICATOR_NAME = "indicatorName";
public static final String FIELD_UNIT = "unit";
public static final String FIELD_RANGE_TYPE = "rangeType";
public static final String FIELD_RANGE = "range";
}
/*
* Copyright 2019 health hope
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.jiankangyouyi.cloud.basedata.model.entity.mongo;
import lombok.*;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
/**
* developer app information
*
* @author wangyalei
*/
@Data
@AllArgsConstructor
@Document(collection = "developer.app.info2")
public class DeveloperAppInfo2MongoDO {
/**
* 主键
*/
@Id
private ObjectId _id;
/**
* 应用ID 为了兼容之前的非ObjectId 型字符串
*/
private String appId;
/**
* 应用名称
*/
private String appName;
/**
* 应用描述
*/
private String description;
/**
* 开发者ID
*/
private String developerId;
public static final String field__id = "_id";
public static final String field_appId = "appId";
public static final String field_appName = "appName";
public static final String field_description = "description";
public static final String field_developerId = "developerId";
public static final String field_appLevel = "appLevel";
public static final String field_publicKey = "publicKey";
public static final String field_apiKey = "apiKey";
public static final String field_appType = "appType";
// public static final String field_productInfoList = "productInfoList";
public static final String field_platform = "platform";
public static final String field_scene = "scene";
public static final String field_validStatus = "validStatus";
public static final String field_beginTime = "beginTime";
public static final String field_endTime = "endTime";
public static final String field_updateTime = "updateTime";
public static final String field_createTime = "createTime";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo;
import com.jiankangyouyi.cloud.basedata.api.model.entity.exercise.ExeciseInfo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.Version;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.mapping.Document;
/**
* @description: 运动锻炼库do
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/5/14 10:39 上午
*/
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@CompoundIndexes(
value = {
@CompoundIndex(
name = "exerciseId_1_validStatus_1",
def = "{'exerciseId' : 1, 'validStatus':1}"
),
@CompoundIndex(
name = "exerciseName_1_validStatus_1",
def = "{'exerciseName' : 1, 'validStatus':1}"
)
}
)
@Document(collection = "v3.exercise")
public class ExerciseDO extends ExeciseInfo {
private static final long serialVersionUID = 1L;
@Id
private ObjectId id;
@Version
private Long version;
public static final String FIELD_ID = "_id";
public static final String FIELD_VALIDSTATUS = "validStatus";
public static final String FIELD_VERSION = "version";
public static final String FIELD_UPDATETIME = "updateTime";
public static final String FIELD_CREATETIME = "createTime";
public static final String FIELD_EXERCISEID = "exerciseId";
public static final String FIELD_EXERCISENAME = "exerciseName";
public static final String FIELD_ALIAS = "alias";
public static final String FIELD_EXERCISETYPE = "exerciseType";
public static final String FIELD_METS = "mets";
public static final String FIELD_MINCOUNT = "minCount";
public static final String FIELD_UNIT = "unit";
public static final String FIELD_BASICUPTAKEOXYMALE = "basicUptakeOxyMale";
public static final String FIELD_BASICUPTAKEOXYFEMALE = "basicUptakeOxyFemale";
public static final String FIELD_OXYCONSUME = "oxyConsume";
public static final String FIELD_RER = "rer";
public static final String FIELD_IMAGEKEY = "imageKey";
public static final String FIELD_DESCRIPTION = "description";
public static final String FIELD_ORDER = "order";
public static final String FIELD_ACTION_DIFFICULTY = "actionDifficulty";
public static final String FIELD_ACTION_FEATURES = "actionFeatures";
public static final String FIELD_IS_RECOMMEND = "isRecommend";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo;
import com.jiankangyouyi.cloud.basedata.model.bean.MealInfoBean;
import com.jiankangyouyi.cloud.core.base.entity.BaseMongoEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.springframework.data.mongodb.core.mapping.Document;
import java.math.BigDecimal;
/**
* 精选食谱
*
* @author : lvhaoran
* @date Date : 2022年08月01日
*/
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Document(collection = "v3.featured.recipes")
public class FeaturedRecipesDO extends BaseMongoEntity {
private static final long serialVersionUID = 1L;
/**
* 标签
*/
private String tag;
/**
* 推荐的标签
*/
private String recipesTag;
/**
* 热量
*/
private Integer energy;
/**
* 蛋白质,单位 g
*/
private BigDecimal protein;
/**
* 脂肪,单位 g
*/
private BigDecimal fat;
/**
* 碳水化合物,单位 g
*/
private BigDecimal carbohydrate;
/**
* 蛋白质NRV
*/
private BigDecimal proteinNrv;
/**
* 脂肪NRV
*/
private BigDecimal fatNrv;
/**
* 碳水化合物NRV
*/
private BigDecimal carbohydrateNrv;
/**
* 推荐早餐
*/
private MealInfoBean breakfastRes;
/**
* 推荐早加餐
*/
private MealInfoBean breakfastExtraRes;
/**
* 推荐午餐
*/
private MealInfoBean lunchRes;
/**
* 推荐午加餐
*/
private MealInfoBean lunchExtraRes;
/**
* 推荐晚餐
*/
private MealInfoBean supperRes;
/**
* 推荐晚加餐
*/
private MealInfoBean supperExtraRes;
public static final String FIELD_TAG = "tag";
public static final String FIELD_RECIPESTAG = "recipesTag";
public static final String FIELD_ENERGY = "energy";
public static final String FIELD_PROTEIN = "protein";
public static final String FIELD_FAT = "fat";
public static final String FIELD_CARBOHYDRATE = "carbohydrate";
public static final String FIELD_PROTEINNRV = "proteinNrv";
public static final String FIELD_FATNRV = "fatNrv";
public static final String FIELD_CARBOHYDRATENRV = "carbohydrateNrv";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo;
import com.jiankangyouyi.cloud.basedata.model.bean.RecipesTagBean;
import com.jiankangyouyi.cloud.core.base.entity.BaseMongoEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.springframework.data.mongodb.core.mapping.Document;
import java.util.List;
/**
* 精选食谱标签
*
* @author : lvhaoran
* @date Date : 2022年08月01日
*/
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Document(collection = "v3.featured.recipes.tag")
public class FeaturedRecipesTagDO extends BaseMongoEntity {
private static final long serialVersionUID = 1L;
/**
* icon
*/
private String icon;
/**
* 标签
*/
private String tag;
/**
* 标签名
*/
private String tagName;
/**
* 推荐的标签
*/
private List<RecipesTagBean> recipesTags;
/**
* 标签描述
*/
private String describe;
/**
* 注释
*/
private String notes;
/**
* 提示
*/
private String translation;
/**
* 背景图
*/
private String imageUrl;
public static final String FIELD_ICON = "icon";
public static final String FIELD_TAG = "tag";
public static final String FIELD_TAGNAME = "tagName";
public static final String FIELD_DESCRIBE = "describe";
public static final String FIELD_NOTES = "notes";
public static final String FIELD_TRANSLATION = "translation";
public static final String FIELD_IMAGEURL = "imageUrl";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo;
import com.jiankangyouyi.cloud.core.base.entity.BaseMongoEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.springframework.data.mongodb.core.mapping.Document;
/**
* 食物详情榜单
*
* @author : lvhaoran
* @date Date : 2022年05月16日
*/
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Document(collection = "v3.food.detail.billboard")
public class FoodDetailBillboardDO extends BaseMongoEntity {
private static final long serialVersionUID = 1L;
/**
* 食物id
*/
private String foodId;
/**
* 食物名称
*/
private String foodName;
/**
* 3级分类
*/
private String classification3;
/**
* 4级分类
*/
private String classification4;
/**
* 食物图片
*/
private String imageUrl;
/**
* 值
*/
private String value;
/**
* 食物描述
*/
private String describe;
public static final String FIELD_FOODID = "foodId";
public static final String FIELD_FOODNAME = "foodName";
public static final String FIELD_CLASSIFICATION3 = "classification3";
public static final String FIELD_CLASSIFICATION4 = "classification4";
public static final String FIELD_IMAGEURL = "imageUrl";
public static final String FIELD_VALUE = "value";
public static final String FIELD_DESCRIBE = "describe";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo;
import com.jiankangyouyi.cloud.basedata.api.model.vo.food.RecognitionFoodVO;
import com.jiankangyouyi.cloud.basedata.model.vo.external.AiFoodRecognitionResVO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import java.io.Serializable;
import java.util.List;
/**
* 食物识别调用记录
*
* @author lvqidong
* @date 2022/03/02 11:16
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@CompoundIndexes(
value = {
@CompoundIndex(
name = "appId_-1_createDate_-1_createTime_-1_success_1",
def = "{'appId' : -1, 'createDate' : -1 , 'createTime' : -1,'success' : 1}"
),
@CompoundIndex(
name = "aiRecognitionRes.sn_-1",
def = "{'aiRecognitionRes.sn' : -1}"
),
@CompoundIndex(
name = "recognition_food_id_index",
def = "{'recognitionFoodList.foodId' : -1, 'recognitionFoodList.confidence' : -1 , 'appId' : -1, 'createDate' : -1 , 'createTime' : -1}"
)
}
)
@Document(collection = "v3.food.recognition.record")
public class FoodRecognitionRecordDO implements Serializable {
/**
* 主键
*/
@Id
private ObjectId _id;
/**
* 请求ID
*/
@Indexed(unique = true)
private String requestId;
/**
* 应用ID
*/
private String appId;
/**
* 创建日期 yyyy-MM-dd
*/
private String createDate;
/**
* 创建时间 yyyy-MM-dd HH:mm:ss
*/
private String createTime;
/**
* 食物识别图片URL
*/
private String imageUrl;
/**
* 返回结果数,取值范围[1,5],为空默认为1,结果按照置信度倒序排列
*/
private Integer top;
/**
* 图片宽度
*/
private Integer imageWidth;
/**
* 是否识别成功 recognitionFoodList不为空视为成功
*/
private Boolean success;
/**
* AI算法返回结果
*/
private AiFoodRecognitionResVO aiRecognitionRes;
/**
* 食物识别返回信息
*/
private List<RecognitionFoodVO> recognitionFoodList;
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo;
import com.jiankangyouyi.cloud.core.base.entity.BaseMongoEntity;
import lombok.*;
import org.springframework.data.mongodb.core.mapping.Document;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Document(collection = "v3.gadgets.menu")
public class GadgetsMenuDO extends BaseMongoEntity {
private static final long serialVersionUID = 1L;
private String menuId;
/**
* 名称
*/
private String name;
/**
* 名称
*/
private String imageUrl;
/**
* 规则
*/
private String rule;
/**
* 级别
*
*/
private String level;
private String content;
private Integer sort;
public static final String FIELD_SORT = "sort";
public static final String FIELD_MENUID = "menuId";
public static final String FIELD_NAME = "name";
public static final String FIELD_IMAGEURL = "imageUrl";
public static final String FIELD_RULE = "rule";
public static final String FIELD_LEVEL = "level";
public static final String FIELD_CONTENT = "content";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo;
import com.jiankangyouyi.cloud.core.base.entity.BaseMongoEntity;
import lombok.*;
import org.springframework.data.mongodb.core.mapping.Document;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Document(collection = "v3.gadgets.menu.relation")
public class GadgetsMenuRelationDO extends BaseMongoEntity {
private static final long serialVersionUID = 1L;
private String menuId;
private String childId;
public static final String FIELD_MENUID = "menuId";
public static final String FIELD_CHILDID = "childId";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo;
import com.jiankangyouyi.cloud.core.base.entity.BaseMongoEntity;
import lombok.*;
import org.springframework.data.mongodb.core.mapping.Document;
/**
* 描述
*
* @author qxy
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Document(collection = "v3.gadgets.top.image")
public class GadgetsTopImageDO extends BaseMongoEntity {
private static final long serialVersionUID = 1L;
/**
* 类型 {@link com.jiankangyouyi.cloud.basedata.enums.GadgetsTopImageTypeEnum}
*/
private String type;
/**
* 名称
*/
private String imageUrl;
public static final String FIELD_TYPE = "type";
public static final String FIELD_IMAGEURL = "imageUrl";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo;
import com.jiankangyouyi.cloud.core.base.entity.BaseMongoEntity;
import lombok.*;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import java.util.List;
/**
* 硬件表
*
* @author fengxuanjun
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@CompoundIndexes(
value = {
@CompoundIndex(
name = "hardwareId_-1_bizType_1_classify1-1_classify2-1",
def = "{'hardwareId_' : -1,'bizType':1,'classify1':1,'classify2':1}"
)
}
)
@Document(collection = "v3.base.data.hardware")
public class HardwareDO extends BaseMongoEntity {
private static final long serialVersionUID = 1L;
/**
* NOT NULL 硬件业务ID
*/
@Indexed(unique = true)
private String hardwareId;
/**
* 一级分类
*/
private String classify1;
/**
* 二级分类
*/
private String classify2;
/**
* 品牌 对应字典code
*/
private String brand;
/**
* 型号 对应字典code
*/
private String model;
/**
* 通讯方式 对应字典code
*/
private String communication;
/**
* 数据项 例:蓝牙、Wi-Fi...
*/
private List<String> dataItems;
/**
* 业务类型 对应字典code
*/
private String bizType;
/**
* 产品图片 七牛文件Key
*/
private List<String> images;
/**
* 产品文档 七牛文件Key
*/
private String documentKey;
/**
* 技术文档 接口文档链接地址
*/
private String apiUrl;
/**
* 功能简述 文本,不超过500字
*/
private String description;
public static final String FIELD_HARDWAREID = "hardwareId";
public static final String FIELD_CLASSIFY1 = "classify1";
public static final String FIELD_CLASSIFY2 = "classify2";
public static final String FIELD_BRAND = "brand";
public static final String FIELD_MODEL = "model";
public static final String FIELD_COMMUNICATION = "communication";
public static final String FIELD_DATAITEMS = "dataItems";
public static final String FIELD_BIZTYPE = "bizType";
public static final String FIELD_IMAGES = "images";
public static final String FIELD_DOCUMENTKEY = "documentKey";
public static final String FIELD_APIURL = "apiUrl";
public static final String FIELD_DESCRIPTION = "description";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.component.ServiceArea;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.component.ServiceValue;
import com.jiankangyouyi.cloud.core.base.enums.ValidStatusEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
* @author :wangyalei
* @date :Created in 2021/7/12 6:39 下午
*/
@Data
@AllArgsConstructor
@Document(collection = "v3.health.assessment.cover.config")
@CompoundIndexes(
value = {
@CompoundIndex(
name = "appId_1_coverType_1",
def = "{'appId' : 1, 'coverType' : 1}",
unique = true
)
}
)
public class HealthAssessmentCoverConfigDO {
@Id
private ObjectId id;
/**
* 1、启用 2、禁用 {@link ValidStatusEnum}
*/
private String validStatus;
@DateTimeFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date updateTime;
@DateTimeFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date createTime;
/**
* 封面id
*/
@Indexed(unique = true)
private String coverId;
/**
* 应用 id
*/
private String appId;
/**
* 封面类型 {@link com.jiankangyouyi.cloud.basedata.enums.HealthAssessmentCoverConfigEnum}
*/
private String coverType;
/**
* 服务简介
*/
private String serviceProfile;
/**
* 服务范围
*/
private List<ServiceArea> serviceAreas;
/**
* 服务价值
*/
private List<ServiceValue> serviceValues;
/**
* 提示
*/
private String reminder;
public HealthAssessmentCoverConfigDO() {
Date date = new Date();
this.validStatus = ValidStatusEnum.VALID.getCode();
this.updateTime = date;
this.createTime = date;
}
public static final String FIELD_ID = "_id";
public static final String FIELD_VALIDSTATUS = "validStatus";
public static final String FIELD_UPDATETIME = "updateTime";
public static final String FIELD_CREATETIME = "createTime";
public static final String FIELD_APPID = "appId";
public static final String FIELD_COVER_ID = "coverId";
public static final String FIELD_COVER_TYPE = "coverType";
public static final String FIELD_SERVICEPROFILE = "serviceProfile";
public static final String FIELD_SERVICEAREAS = "serviceAreas";
public static final String FIELD_SERVICEAREAS_TITLE = "serviceAreas.title";
public static final String FIELD_SERVICEAREAS_IMAGE = "serviceAreas.image";
public static final String FIELD_SERVICEAREAS_DESCRIPTION = "serviceAreas.description";
public static final String FIELD_SERVICEVALUES = "serviceValues";
public static final String FIELD_SERVICEVALUES_TITLE = "serviceValues.title";
public static final String FIELD_SERVICEVALUES_DESCRIPTION = "serviceValues.description";
public static final String FIELD_REMINDER = "reminder";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
* 健康小贴士
* @author :wangyalei
* @date :2022/8/1 2:21 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Document(collection = "v3.health.tips")
public class HealthTipDO {
@Id
private ObjectId id;
/**
* 有效状态 1、有效 2、无效
*/
private String validStatus;
@DateTimeFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date updateTime;
@DateTimeFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date createTime;
/**
* 操作人账号
*/
private String optionAccount;
/**
* 小贴士ID (知识ID)
*/
@Indexed(unique = true)
private String tipId;
/**
* 小贴士标题
*/
private String tipTitle;
/**
* 小贴士内容
*/
private String content;
/**
* 自定义标签 (字典Code)
*/
private List<String> customTags;
/**
* 启用状态 1、启用 2、禁用
*/
private String openStatus;
public static final String FIELD_ID = "_id";
public static final String FIELD_VALIDSTATUS = "validStatus";
public static final String FIELD_UPDATETIME = "updateTime";
public static final String FIELD_CREATETIME = "createTime";
public static final String FIELD_OPTIONACCOUNT = "optionAccount";
public static final String FIELD_TIPID = "tipId";
public static final String FIELD_TIPTITLE = "tipTitle";
public static final String FIELD_CONTENT = "content";
public static final String FIELD_CUSTOMTAGS = "customTags";
public static final String FIELD_OPENSTATUS = "openStatus";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo;
import com.jiankangyouyi.cloud.basedata.api.model.entity.indicator.IndicatorConstraint;
import com.jiankangyouyi.cloud.basedata.api.model.entity.indicator.IndicatorInfo;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.Version;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.mapping.Document;
import javax.validation.constraints.*;
import java.util.Date;
import java.util.List;
/**
* 指标模型
* 中文名+indicatorName
*/
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@CompoundIndexes(
value = {
@CompoundIndex(
name = "indicatorName_-1_detectionMethod_1_validStatus_1",
def = "{'indicatorName' : -1, 'detectionMethod' : 1,'validStatus':1}"
),
@CompoundIndex(
name = "indicatorId_1_detectionMethod_1",
def = "{'indicatorId' : 1, 'validStatus':1}"
)
}
)
@Document(collection = "v3.indicator")
public class IndicatorDO extends IndicatorInfo {
private static final long serialVersionUID = 1L;
@Id
private ObjectId id;
@Version
private Long version;
/**
* 预留备注字段
*/
private String remark;
public static final String FIELD_ID = "_id";
public static final String FIELD_VALIDSTATUS = "validStatus";
public static final String FIELD_VERSION = "version";
public static final String FIELD_REMARK = "remark";
public static final String FIELD_INDICATORID = "indicatorId";
public static final String FIELD_INDICATOR = "indicator";
public static final String FIELD_INDICATORNAME = "indicatorName";
public static final String FIELD_DETECTIONMETHOD = "detectionMethod";
public static final String FIELD_UNIT = "unit";
public static final String FIELD_CLASSIFY1 = "classify1";
public static final String FIELD_CLASSIFY2 = "classify2";
public static final String FIELD_CLASSIFY3 = "classify3";
public static final String FIELD_DESCRIPTION = "description";
public static final String FIELD_BEFOREATTENTIONS = "beforeAttentions";
public static final String FIELD_ATTENTIONSING = "attentionsIng";
public static final String FIELD_AFTERATTENTIONS = "afterAttentions";
public static final String FIELD_RECOMMENDCHECKS = "recommendChecks";
public static final String FIELD_UNRECOMMENDCHECKS = "unRecommendChecks";
public static final String FIELD_INDICATORTYPE = "indicatorType";
public static final String FIELD_INDICATORCONSTRAINTS = "indicatorConstraints";
public static final String FIELD_UPDATETIME = "updateTime";
public static final String FIELD_CREATETIME = "createTime";
// @Builder(builderMethodName = "indicatorDOBuilder")
// public IndicatorDO(String indicatorId, @NotEmpty(message = "indicator不可为空") @Size(max = 25, message = "indicator最大长度为25") String indicator, @NotEmpty(message = "indicatorName不可为空") @Size(max = 25, message = "indicatorName最大长度为25") String indicatorName, @NotEmpty(message = "detectionMethod不可为空") String detectionMethod, @NotEmpty(message = "unit不可为空") String unit, @NotEmpty(message = "classify1不可为空") String classify1, String classify2, String classify3, List<String> description, String judgingCriteria, List<String> beforeAttentions, List<String> attentionsIng, List<String> afterAttentions, List<String> recommendChecks, List<String> unRecommendChecks, @NotNull(message = "indicatorType不可为空") @Min(value = 1, message = "indicatorType最小为1") @Max(value = 3, message = "indicatorType最大为3") Integer indicatorType, List<IndicatorConstraint> indicatorConstraints, @NotEmpty(message = "validStatus不可为空") String validStatus, Date updateTime, Date createTime, ObjectId id, Long version, String remark) {
// super(indicatorId, indicator, indicatorName, detectionMethod, unit, classify1, classify2, classify3, description, judgingCriteria, beforeAttentions, attentionsIng, afterAttentions, recommendChecks, unRecommendChecks, indicatorType, indicatorConstraints, validStatus, updateTime, createTime);
// this.id = id;
// this.version = version;
// this.remark = remark;
// }
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo;
import com.jiankangyouyi.cloud.basedata.api.model.entity.knowledge.KnowledgeQuestion;
import com.jiankangyouyi.cloud.core.base.entity.BaseMongoEntity;
import lombok.*;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.mapping.Document;
import java.util.List;
/**
* 知识竞赛问题表
*
* @author jingpeng
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@CompoundIndexes(
value = {
@CompoundIndex(
name = "questionCategory_1",
def = "{'questionCategory' : 1, 'validStatus':1}"
),
@CompoundIndex(
name = "questionId_-1",
def = "{'questionId' : -1}",
unique = true
)
}
)
@Document(collection = "v3.knowledge.question")
public class KnowledgeQuestionDO extends BaseMongoEntity {
/**
* 问题id
*/
private String questionId;
/**
* 问题分类
*/
private String questionCategory;
/**
* 标签
*
*/
private List<String> tags;
/**
* 问题对象
*/
private KnowledgeQuestion question;
/**
* 备注信息
*/
private String remark;
/**
* 最后修改人
*/
private String updateName;
/**
* 启用/禁用 1启用 2 禁用
*/
private String useFlag;
/**
*选择提类型 1 单选 2 多选
*/
private String optionFlag;
public static final String FIELD_TAGS = "tags";
public static final String FIELD_QUESTIONID = "questionId";
public static final String FIELD_QUESTIONCATEGORY = "questionCategory";
public static final String FIELD_QUESTION = "question";
public static final String FIELD_REMARK = "remark";
public static final String FIELD_QUESTIONCONTENTS = "question.questionContents";
public static final String FIELD_SUPPLEMENTCONTENTS = "supplementContents";
public static final String FIELD_IMAGEURLS = "imageUrls";
public static final String FIELD_OPTIONS = "options";
public static final String FIELD_OPTIONS_OPTIONCODE = "options.optionCode";
public static final String FIELD_OPTIONS_OPTIONCONTENTS = "options.optionContents";
public static final String FIELD_OPTIONS_SUPPLEMENTCONTENTS = "options.supplementContents";
public static final String FIELD_OPTIONS_IMAGEURLS = "options.imageUrls";
public static final String FIELD_OPTIONS_RIGHT = "options.right";
public static final String FIELD_ANSWERINTERPRETS = "answerInterprets";
public static final String FIELD_UPDATENAME = "updateName";
public static final String FIELD_USER_FLAG = "useFlag";
public static final String FIELD_OPTION_FLAG = "optionFlag";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo;
import com.jiankangyouyi.cloud.basedata.model.vo.api.component.KnowledgeQuestionData;
import com.jiankangyouyi.cloud.core.base.entity.BaseMongoEntity;
import lombok.*;
import org.springframework.data.mongodb.core.mapping.Document;
import java.util.Date;
import java.util.List;
/**
* 知识竞赛问题表
*
* @author jingpeng
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Document(collection = "v3.knowledge.question.user")
public class KnowledgeQuestionUserDO extends BaseMongoEntity {
/**
* 问题对象
*/
private KnowledgeQuestionData knowledgeQuestionData;
/**
* 用户选择的选项编号 有可能是多选题 所以采用集合
*/
private List<String> userOptionCodes;
private String userId;
private Date date;
public static final String FIELD_KNOWLEDGEQUESTIONDATA = "knowledgeQuestionData";
public static final String FIELD_KNOWLEDGEQUESTIONDATA_QUESTIONID = "knowledgeQuestionData.questionId";
public static final String FIELD_KNOWLEDGEQUESTIONDATA_QUESTIONCATEGORY = "knowledgeQuestionData.questionCategory";
public static final String FIELD_KNOWLEDGEQUESTIONDATA_TAGS = "knowledgeQuestionData.tags";
public static final String FIELD_KNOWLEDGEQUESTIONDATA_QUESTION = "knowledgeQuestionData.question";
public static final String FIELD_KNOWLEDGEQUESTIONDATA_QUESTION_QUESTIONCONTENTS = "knowledgeQuestionData.question.questionContents";
public static final String FIELD_KNOWLEDGEQUESTIONDATA_QUESTION_SUPPLEMENTCONTENTS = "knowledgeQuestionData.question.supplementContents";
public static final String FIELD_KNOWLEDGEQUESTIONDATA_QUESTION_IMAGEURLS = "knowledgeQuestionData.question.imageUrls";
public static final String FIELD_KNOWLEDGEQUESTIONDATA_QUESTION_OPTIONS = "knowledgeQuestionData.question.options";
public static final String FIELD_KNOWLEDGEQUESTIONDATA_QUESTION_OPTIONS_OPTIONCODE = "knowledgeQuestionData.question.options.optionCode";
public static final String FIELD_KNOWLEDGEQUESTIONDATA_QUESTION_OPTIONS_OPTIONCONTENTS = "knowledgeQuestionData.question.options.optionContents";
public static final String FIELD_KNOWLEDGEQUESTIONDATA_QUESTION_OPTIONS_SUPPLEMENTCONTENTS = "knowledgeQuestionData.question.options.supplementContents";
public static final String FIELD_KNOWLEDGEQUESTIONDATA_QUESTION_OPTIONS_IMAGEURLS = "knowledgeQuestionData.question.options.imageUrls";
public static final String FIELD_KNOWLEDGEQUESTIONDATA_QUESTION_OPTIONS_RIGHT = "knowledgeQuestionData.question.options.right";
public static final String FIELD_KNOWLEDGEQUESTIONDATA_QUESTION_OPTIONS_SELECTED = "knowledgeQuestionData.question.options.selected";
public static final String FIELD_KNOWLEDGEQUESTIONDATA_QUESTION_ANSWERINTERPRETS = "knowledgeQuestionData.question.answerInterprets";
public static final String FIELD_KNOWLEDGEQUESTIONDATA_OPTIONFLAG = "knowledgeQuestionData.optionFlag";
public static final String FIELD_USEROPTIONCODES = "userOptionCodes";
public static final String FIELD_USERID = "userId";
public static final String FIELD_DATE = "date";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jiankangyouyi.cloud.basedata.api.model.component.CrowdType;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.component.PunchCardContent;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.component.RuleLimit;
import com.jiankangyouyi.cloud.core.validator.annotation.BigDecimalValHC;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
* 生活方式方案组合配置
* @author :wangyalei
* @date :2022/8/1 2:27 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Document(collection = "v3.ls.scheme.group.config")
public class LifeStyleSchemeGroupConfigDO {
@Id
private ObjectId id;
/**
* 有效状态 1、有效 2、无效
*/
private String validStatus;
@DateTimeFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date updateTime;
@DateTimeFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date createTime;
/**
* 操作人账号
*/
private String optionAccount;
/**
* 方案ID
*/
@Indexed(unique = true)
private String schemeId;
/**
* 方案名称
*/
private String schemeName;
/**
* 方案类别
*/
private String schemeType;
/**
* 方案标题
*/
private String schemeTitle;
/**
* 人群类型
*/
private List<CrowdType> crowdTypes;
/**
* 哺乳状态
* 1:哺乳期
* 2:非哺乳期
*/
private String lactationStatus;
/**
* 产后阶段天数 起
*/
private Integer postpartumStartDays;
/**
* 产后阶段天数 止
*/
private Integer postpartumEndDays;
/**
* 不良标签
*/
private String unhealthyTag;
/**
* 规则限制 (规则组合)
*/
private List<RuleLimit> ruleLimits;
/**
* 打卡内容
*/
private PunchCardContent punchCardContent;
/**
* 启用状态 1、启用 2、禁用
*/
private String openStatus;
public static final String FIELD_ID = "_id";
public static final String FIELD_VALIDSTATUS = "validStatus";
public static final String FIELD_UPDATETIME = "updateTime";
public static final String FIELD_CREATETIME = "createTime";
public static final String FIELD_OPTIONACCOUNT = "optionAccount";
public static final String FIELD_SCHEMEID = "schemeId";
public static final String FIELD_SCHEMENAME = "schemeName";
public static final String FIELD_SCHEMETYPE = "schemeType";
public static final String FIELD_SCHEMETITLE = "schemeTitle";
public static final String FIELD_CROWDTYPES = "crowdTypes";
public static final String FIELD_CROWDTYPES_CROWD = "crowdTypes.crowd";
public static final String FIELD_CROWDTYPES_RISKLEVELS = "crowdTypes.riskLevels";
public static final String FIELD_UNHEALTHYTAG = "unhealthyTag";
public static final String FIELD_RULELIMITS = "ruleLimits";
public static final String FIELD_RULELIMITS_AGETYPERULECONDITION = "ruleLimits.ageTypeRuleCondition";
public static final String FIELD_RULELIMITS_AGETYPERULECONDITION_STARTVALUE = "ruleLimits.ageTypeRuleCondition.startValue";
public static final String FIELD_RULELIMITS_AGETYPERULECONDITION_INCLUDESTART = "ruleLimits.ageTypeRuleCondition.includeStart";
public static final String FIELD_RULELIMITS_AGETYPERULECONDITION_ENDVALUE = "ruleLimits.ageTypeRuleCondition.endValue";
public static final String FIELD_RULELIMITS_AGETYPERULECONDITION_INCLUDEEND = "ruleLimits.ageTypeRuleCondition.includeEnd";
public static final String FIELD_RULELIMITS_GENDERTYPERULECONDITION = "ruleLimits.genderTypeRuleCondition";
public static final String FIELD_RULELIMITS_GENDERTYPERULECONDITION_GENDER = "ruleLimits.genderTypeRuleCondition.gender";
public static final String FIELD_RULELIMITS_WAISTTYPERULECONDITION = "ruleLimits.waistTypeRuleCondition";
public static final String FIELD_RULELIMITS_WAISTTYPERULECONDITION_STARTVALUE = "ruleLimits.waistTypeRuleCondition.startValue";
public static final String FIELD_RULELIMITS_WAISTTYPERULECONDITION_INCLUDESTART = "ruleLimits.waistTypeRuleCondition.includeStart";
public static final String FIELD_RULELIMITS_WAISTTYPERULECONDITION_ENDVALUE = "ruleLimits.waistTypeRuleCondition.endValue";
public static final String FIELD_RULELIMITS_WAISTTYPERULECONDITION_INCLUDEEND = "ruleLimits.waistTypeRuleCondition.includeEnd";
public static final String FIELD_RULELIMITS_BMITYPERULECONDITION = "ruleLimits.bmiTypeRuleCondition";
public static final String FIELD_RULELIMITS_BMITYPERULECONDITION_STARTVALUE = "ruleLimits.bmiTypeRuleCondition.startValue";
public static final String FIELD_RULELIMITS_BMITYPERULECONDITION_INCLUDESTART = "ruleLimits.bmiTypeRuleCondition.includeStart";
public static final String FIELD_RULELIMITS_BMITYPERULECONDITION_ENDVALUE = "ruleLimits.bmiTypeRuleCondition.endValue";
public static final String FIELD_RULELIMITS_BMITYPERULECONDITION_INCLUDEEND = "ruleLimits.bmiTypeRuleCondition.includeEnd";
public static final String FIELD_PUNCHCARDCONTENT = "punchCardContent";
public static final String FIELD_PUNCHCARDCONTENT_FIRSTPHASECONTENTS = "punchCardContent.firstPhaseContents";
public static final String FIELD_PUNCHCARDCONTENT_FIRSTPHASECONTENTS_TIPID = "punchCardContent.firstPhaseContents.tipId";
public static final String FIELD_PUNCHCARDCONTENT_FIRSTPHASECONTENTS_TIPCONTENT = "punchCardContent.firstPhaseContents.tipContent";
public static final String FIELD_PUNCHCARDCONTENT_SECONDPHASECONTENTS = "punchCardContent.secondPhaseContents";
public static final String FIELD_PUNCHCARDCONTENT_SECONDPHASECONTENTS_TIPID = "punchCardContent.secondPhaseContents.tipId";
public static final String FIELD_PUNCHCARDCONTENT_SECONDPHASECONTENTS_TIPCONTENT = "punchCardContent.secondPhaseContents.tipContent";
public static final String FIELD_PUNCHCARDCONTENT_THIRDPHASECONTENTS = "punchCardContent.thirdPhaseContents";
public static final String FIELD_PUNCHCARDCONTENT_THIRDPHASECONTENTS_TIPID = "punchCardContent.thirdPhaseContents.tipId";
public static final String FIELD_PUNCHCARDCONTENT_THIRDPHASECONTENTS_TIPCONTENT = "punchCardContent.thirdPhaseContents.tipContent";
public static final String FIELD_PUNCHCARDCONTENT_FOURTHPHASECONTENTS = "punchCardContent.fourthPhaseContents";
public static final String FIELD_PUNCHCARDCONTENT_FOURTHPHASECONTENTS_TIPID = "punchCardContent.fourthPhaseContents.tipId";
public static final String FIELD_PUNCHCARDCONTENT_FOURTHPHASECONTENTS_TIPCONTENT = "punchCardContent.fourthPhaseContents.tipContent";
public static final String FIELD_OPENSTATUS = "openStatus";
public static final String FIELD_LACTATIONSTATUS = "lactationStatus";
public static final String FIELD_POSTPARTUMSTARTDAYS = "postpartumStartDays";
public static final String FIELD_POSTPARTUMENDDAYS = "postpartumEndDays";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo;
import com.jiankangyouyi.cloud.basedata.model.vo.manager.literature.ServiceNodesVO;
import com.jiankangyouyi.cloud.core.base.entity.BaseMongoEntity;
import lombok.*;
import lombok.experimental.FieldNameConstants;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.mapping.Document;
import java.util.List;
/**
* 参考文献
*
* @author lvqidong
* @date 2022/02/09 10:34
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@CompoundIndexes(
value = {
@CompoundIndex(
name = "literatureId_-1",
def = "{'literatureId' : -1}",
unique = true
)
}
)
@Document(collection = "v3.literature")
@FieldNameConstants
public class LiteratureDO extends BaseMongoEntity {
/**
* 文献id
*/
private String literatureId;
/**
* 文献标题内容
*/
private String literatureContext;
/**
* 启用/禁用 1启用 2 禁用
*/
private String useFlag;
/**
* 排序值
*/
private Integer literatureSort;
/**
* 附件名称
*/
private String attachmentName;
/**
* 附件地址
*/
private String attachmentUrl;
/**
* 关联服务
*/
private List<ServiceNodesVO> serviceNodes;
public static final String FIELD_LITERATUREID = "literatureId";
public static final String FIELD_LITERATURECONTEXT = "literatureContext";
public static final String FIELD_USEFLAG = "useFlag";
public static final String FIELD_LITERATURESORT = "literatureSort";
public static final String FIELD_ATTACHMENTNAME = "attachmentName";
public static final String FIELD_ATTACHMENTURL = "attachmentUrl";
public static final String FIELD_SERVICENODES = "serviceNodes";
public static final String FIELD_SERVICENODES_SERVICECODE = "serviceNodes.serviceCode";
public static final String FIELD_SERVICENODES_SERVICENAME = "serviceNodes.serviceName";
public static final String FIELD_SERVICENODES_CLASSIFYCODE = "serviceNodes.classifyCode";
public static final String FIELD_SERVICENODES_CLASSIFYNAME = "serviceNodes.classifyName";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jiankangyouyi.cloud.basedata.api.model.entity.questionnaire.QuestionnaireConfig;
import com.jiankangyouyi.cloud.core.base.entity.BaseMongoEntity;
import com.jiankangyouyi.cloud.core.base.enums.ValidStatusEnum;
import lombok.*;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.Transient;
import org.springframework.data.annotation.Version;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 问卷表
*
* @author yangsongbo
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@CompoundIndexes(
value = {
@CompoundIndex(
name = "questionnaires_questionId_-1_validStatus_1",
def = "{'questionnaires.questionId' : -1, 'validStatus' : -1}"
),
@CompoundIndex(
name = "questionnaire_bizType_-1_validStatus_1",
def = "{'bizType' : -1, 'validStatus' : -1}"
),
@CompoundIndex(
name = "questionnaire_bizType_-1_version_-1",
def = "{'bizType' : -1,'version':-1}",
unique = true
)
}
)
@Document(collection = "v3.questionnaire")
public class QuestionnaireDO implements Serializable {
private static final long serialVersionUID = 1L;
@Id
private ObjectId id;
/**
* 有效标识:{@link ValidStatusEnum}
*/
@Builder.Default
private String validStatus=ValidStatusEnum.VALID.getCode();
/**
* 问卷版本号
*/
private String version;
/**
* 修改时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@Builder.Default
private Date updateTime=new Date();
/**
* 创建时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@Builder.Default
private Date createTime=new Date();
/**
* NOT NULL 业务类型 见《开放平台业务类型设计.xlsx》)
*/
// @Indexed(unique = true)
private String bizType;
/**
* 问卷名称
*/
private String questionnaireName;
/**
* NOT NULL 问卷配置
*/
private List<QuestionnaireConfig> questionnaireConfigs;
/**
* NOT NULL 测评题数
*/
private Integer questionCount;
/**
* NULL 备注
*/
private String remark;
public static final String FIELD_BIZTYPE = "bizType";
public static final String FIELD_QUESTIONNAIRENAME = "questionnaireName";
public static final String FIELD_QUESTIONNAIRECONFIGS = "questionnaires";
public static final String FIELD_QUESTIONNAIRECONFIGS_QUESTIONID = "questionnaireConfigs.questionId";
public static final String FIELD_QUESTIONNAIRECONFIGS_QUESTIONCODE = "questionnaireConfigs.questionCode";
public static final String FIELD_QUESTIONNAIRECONFIGS_QUESTIONTYPE = "questionnaireConfigs.questionType";
public static final String FIELD_QUESTIONNAIRECONFIGS_QUESTIONCONFIG = "questionnaireConfigs.questionConfig";
public static final String FIELD_QUESTIONNAIRECONFIGS_NEXTSELECTORS = "questionnaireConfigs.nextSelectors";
public static final String FIELD_QUESTIONNAIRECONFIGS_NEXTSELECTORS_CONDITIONS = "questionnaireConfigs.nextSelectors.conditions";
public static final String FIELD_QUESTIONNAIRECONFIGS_NEXTSELECTORS_CONDITIONS_QUESTIONCODE = "questionnaireConfigs.nextSelectors.conditions.questionCode";
public static final String FIELD_QUESTIONNAIRECONFIGS_NEXTSELECTORS_CONDITIONS_CONDITIONVALUE = "questionnaireConfigs.nextSelectors.conditions.conditionValue";
public static final String FIELD_QUESTIONNAIRECONFIGS_NEXTSELECTORS_NEXTQUESTIONCODE = "questionnaireConfigs.nextSelectors.nextQuestionCode";
public static final String FIELD_QUESTIONNAIRECONFIGS_NEXTSELECTORS_SKIPQUESTIONCOUNT = "questionnaireConfigs.nextSelectors.skipQuestionCount";
public static final String FIELD_QUESTIONCOUNT = "questionCount";
public static final String FIELD_REMARK = "remark";
public static final String FIELD_ID = "_id";
public static final String FIELD_VALIDSTATUS = "validStatus";
public static final String FIELD_VERSION = "version";
public static final String FIELD_UPDATETIME = "updateTime";
public static final String FIELD_CREATETIME = "createTime";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo;
import com.bol.secure.Encrypted;
import com.jiankangyouyi.cloud.basedata.api.model.entity.questionnaire.MainQuestion;
import com.jiankangyouyi.cloud.core.base.entity.BaseMongoEntity;
import lombok.*;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import java.util.List;
/**
* 测评题表
*
* @author yangsongbo
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Document(collection = "v3.questionnaire.question")
public class QuestionnaireQuestionDO extends BaseMongoEntity {
private static final long serialVersionUID = 1L;
/**
* NOT NULL 问题ID
*/
@Indexed(unique = true)
private String questionId;
/**
* 一级分类
*/
private String classify1;
/**
* 二级分类
*/
private String classify2;
/**
* 相关疾病
*/
@Encrypted
private List<String> relatedDiseases;
/**
* 标签 (标签库标签id)
*/
@Encrypted
private String tag;
/**
* NOT NULL 问题类型 {@link com.jiankangyouyi.cloud.basedata.enums.QuestionTypeEnum}
*/
private String questionType;
/**
* NOT NULL 问题主干对象
*/
@Encrypted
private MainQuestion mainQuestion;
/**
* NULL 备注
*/
private String remark;
public static final String FIELD_QUESTIONID = "questionId";
public static final String FIELD_CLASSIFY1 = "classify1";
public static final String FIELD_CLASSIFY2 = "classify2";
public static final String FIELD_RELATEDDISEASES = "relatedDiseases";
public static final String FIELD_QUESTIONTYPE = "questionType";
public static final String FIELD_MAINQUESTION = "mainQuestion";
public static final String FIELD_REMARK = "remark";
public static final String FIELD_MAINQUESTION_QUESTIONCONTENTS="mainQuestion.questionContents";
public static final String FIELD_MAINQUESTION_QUESTIONCONTENT="mainQuestion.questionContent";
public static final String FIELD_MAINQUESTION_MAINOPTIONS_RELATEDDISEASE="mainQuestion.mainOptions.relatedDiseases";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo;
import com.bol.secure.Encrypted;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jiankangyouyi.cloud.core.base.entity.BaseMongoEntity;
import lombok.*;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Document(collection = "v3.question.answers")
public class QuestionsAndAnswersDO extends BaseMongoEntity {
/**
* 一级分类
*/
private String classify1;
/**
* 二级分类
*/
private String classify2;
/**
* 三级分类
*/
private String classify3;
/**
* 问题
*/
@Encrypted
private String question;
/**
* 答案
*/
@Encrypted
private String answer;
/**
* 人群
*/
private List<String> crowd;
/**
* 标签
*/
private List<String> tags;
/**
* 食材 必填项,可添加多个标签,标签个数最多不能超过10个,每个标签限制1-10个字,不能含有空格、标点符号、特殊符号
*/
private List<String> foodMaterial;
/**
* 参考文献
*/
@Encrypted
private List<String> reference;
/**
* 疾病
*/
private List<String> disease;
/**
* 状态 1)草稿:所以角色均可删除
*
* (2)待审核:所有角色均可删除
*
* (3)已采纳:录入人员不可删除,审核人员可删除
*
* (4)已驳回:所有角色均可删除
*
* (5) 已删除
*/
private String status;
/**
* 用户id
*/
private String accountId;
/**
* 操作这一刻的用户名称
*/
private String accountName;
/**
* 驳回理由
*/
private List<String> reasonsForRejection;
/**
* 采纳时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date adoptTime;
/**
* 采纳人
*/
private String adoptAccountId;
/**
* 采纳人
*/
private String adoptAccountName;
public static final String FIELD_CLASSIFY1 = "classify1";
public static final String FIELD_CLASSIFY2 = "classify2";
public static final String FIELD_CLASSIFY3 = "classify3";
public static final String FIELD_QUESTION = "question";
public static final String FIELD_ANSWER = "answer";
public static final String FIELD_CROWD = "crowd";
public static final String FIELD_TAGS = "tags";
public static final String FIELD_FOODMATERIAL= "foodMaterial";
public static final String FIELD_REFERENCE = "reference";
public static final String FIELD_DISEASE = "disease";
public static final String FIELD_STATUS = "status";
public static final String FIELD_ACCOUNTID = "accountId";
public static final String FIELD_ACCOUNTNAME = "accountName";
public static final String FIELD_REASONSFORREJECTION = "reasonsForRejection";
public static final String FIELD_ADOPTTIME = "adoptTime";
public static final String FIELD_ADOPTACCOUNTID = "adoptAccountId";
public static final String FIELD_ADOPTACCOUNTNAME = "adoptAccountName";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo;
import lombok.Data;
/**
* 参考文献关联服务
*
* @author lvqidong
* @date 2022/02/10 17:36
**/
@Data
public class ServiceNodes {
/**
* 关联服务
*/
private String serviceCode;
/**
* 分类codes 字典
*/
private String classifyCode;
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo;
import com.jiankangyouyi.cloud.core.base.entity.BaseMongoEntity;
import lombok.*;
import org.springframework.data.mongodb.core.mapping.Document;
import java.math.BigDecimal;
/**
* 运动梅脱值
*
* @author : lvhaoran
* @date Date : 2022年01月19日
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Document(collection = "sport.metre")
public class SportMetreDO extends BaseMongoEntity {
private static final long serialVersionUID = 1L;
/**
* 类别
*/
private String category;
/**
* 目录
*/
private String content;
/**
* 运动梅脱值
*/
private BigDecimal metre;
public static final String FIELD_CATEGORY = "category";
public static final String FIELD_CONTENT = "content";
public static final String FIELD_METRE = "metre";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo.action;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jiankangyouyi.cloud.basedata.api.model.entity.action.ExerciseModernAction;
import com.jiankangyouyi.cloud.core.base.enums.ValidStatusEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 现代动作库
* @author :wangyalei
* @date :Created in 2021/6/3 9:53 上午
*/
@Data
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Document(collection = "v3.exercise.modern.action")
public class ExerciseModernActionDO extends ExerciseModernAction {
private static final long serialVersionUID = 1L;
public static final String FIELD_DATE = "date";
public static final String FIELD_ID = "_id";
public static final String FIELD_VALIDSTATUS = "validStatus";
public static final String FIELD_VERSION = "version";
public static final String FIELD_UPDATETIME = "updateTime";
public static final String FIELD_CREATETIME = "createTime";
public static final String FIELD_CREATEDATE = "createDate";
public static final String FIELD_REMARK = "remark";
public static final String FIELD_OPTIONACCOUNT = "optionAccount";
@Id
private ObjectId id;
private String validStatus;
// @Version
// private Long version;
@DateTimeFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date updateTime;
@DateTimeFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date createTime;
/**
* 备注
*/
private String remark;
/**
* 操作人账号
*/
private String optionAccount;
public ExerciseModernActionDO() {
Date date = new Date();
this.validStatus = ValidStatusEnum.VALID.getCode();
this.updateTime = date;
this.createTime = date;
}
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo.action;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jiankangyouyi.cloud.basedata.api.model.entity.action.v4.ExerciseModernAction;
import com.jiankangyouyi.cloud.core.base.enums.ValidStatusEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 现代动作库(新)
* @author :wangyalei
* @date :Created in 2021/6/3 9:53 上午
*/
@CompoundIndexes(
value = {
@CompoundIndex(
name = "actionId_-1",
def = "{'actionId' : -1}",
unique = true
),
@CompoundIndex(
name = "met_1",
def = "{'met' : 1}"
),
@CompoundIndex(
name = "updateTime_-1__id_-1",
def = "{'updateTime' : -1,'_id' : -1}"
)
}
)
@Data
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Document(collection = "v4.exercise.modern.action")
public class ExerciseModernActionDO2 extends ExerciseModernAction {
private static final long serialVersionUID = 1L;
public static final String FIELD_DATE = "date";
public static final String FIELD_ID = "_id";
public static final String FIELD_VALIDSTATUS = "validStatus";
public static final String FIELD_VERSION = "version";
public static final String FIELD_UPDATETIME = "updateTime";
public static final String FIELD_CREATETIME = "createTime";
public static final String FIELD_CREATEDATE = "createDate";
public static final String FIELD_REMARK = "remark";
public static final String FIELD_OPTIONACCOUNT = "optionAccount";
@Id
private ObjectId id;
private String validStatus;
// @Version
// private Long version;
@DateTimeFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date updateTime;
@DateTimeFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date createTime;
/**
* 备注
*/
private String remark;
/**
* 操作人账号
*/
private String optionAccount;
public ExerciseModernActionDO2() {
Date date = new Date();
this.validStatus = ValidStatusEnum.VALID.getCode();
this.updateTime = date;
this.createTime = date;
}
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo.action;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jiankangyouyi.cloud.basedata.api.model.entity.action.ExerciseTraditionalAction;
import com.jiankangyouyi.cloud.core.base.enums.ValidStatusEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 传统动作库
* @author :wangyalei
* @date :Created in 2021/6/3 11:22 上午
*/
@Data
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Document(collection = "v3.exercise.traditional.action")
public class ExerciseTraditionalActionDO extends ExerciseTraditionalAction {
private static final long serialVersionUID = 1L;
public static final String FIELD_DATE = "date";
public static final String FIELD_ID = "_id";
public static final String FIELD_VALIDSTATUS = "validStatus";
public static final String FIELD_VERSION = "version";
public static final String FIELD_UPDATETIME = "updateTime";
public static final String FIELD_CREATETIME = "createTime";
public static final String FIELD_CREATEDATE = "createDate";
public static final String FIELD_REMARK = "remark";
public static final String FIELD_OPTIONACCOUNT = "optionAccount";
@Id
private ObjectId id;
private String validStatus;
// @Version
// private Long version;
@DateTimeFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date updateTime;
@DateTimeFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date createTime;
/**
* 备注
*/
private String remark;
/**
* 操作人账号
*/
private String optionAccount;
public ExerciseTraditionalActionDO() {
Date date = new Date();
this.validStatus = ValidStatusEnum.VALID.getCode();
this.updateTime = date;
this.createTime = date;
}
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo.action;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jiankangyouyi.cloud.basedata.api.model.entity.action.VideoRest;
import com.jiankangyouyi.cloud.core.base.enums.ValidStatusEnum;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* @author :wangyalei
* @date :Created in 2021/6/3 1:39 下午
*/
@Data
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Document(collection = "v3.video.rest")
public class VideoRestDO extends VideoRest {
private static final long serialVersionUID = 1L;
public static final String FIELD_DATE = "date";
public static final String FIELD_ID = "_id";
public static final String FIELD_VALIDSTATUS = "validStatus";
public static final String FIELD_VERSION = "version";
public static final String FIELD_UPDATETIME = "updateTime";
public static final String FIELD_CREATETIME = "createTime";
public static final String FIELD_CREATEDATE = "createDate";
public static final String FIELD_REMARK = "remark";
public static final String FIELD_OPTIONACCOUNT = "optionAccount";
@Id
private ObjectId id;
private String validStatus;
// @Version
// private Long version;
@DateTimeFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date updateTime;
@DateTimeFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date createTime;
/**
* 备注
*/
private String remark;
/**
* 操作人账号
*/
private String optionAccount;
public VideoRestDO() {
Date date = new Date();
this.validStatus = ValidStatusEnum.VALID.getCode();
this.updateTime = date;
this.createTime = date;
}
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo.article;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jiankangyouyi.cloud.basedata.api.enums.food.AuditStatusValidEnum;
import com.jiankangyouyi.cloud.basedata.api.model.entity.article.ArticleInfo;
import com.jiankangyouyi.cloud.core.base.enums.ValidStatusEnum;
import com.jiankangyouyi.cloud.core.validator.annotation.EnumHC;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.FieldNameConstants;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.annotation.Version;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Stack;
/**
* @description: 文章库do
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/10/25 9:53 上午
*/
@EqualsAndHashCode(callSuper = true)
@Data
@FieldNameConstants
@CompoundIndexes(
value = {
@CompoundIndex(
name = "articleId_1_validStatus_1",
def = "{'articleId' : 1, 'validStatus':1}"
)
}
)
@Document(collection = "v3.article.library")
public class ArticleDO extends ArticleInfo {
@Id
private ObjectId id;
@Version
private Long version;
/**
* 状态1:有效2:无效 其他:已删除
*/
@NotBlank(message = "validStatus 不可为空")
private String validStatus = ValidStatusEnum.VALID.getCode();
/**
* 删除人id
*/
private String delAccountId;
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo.article;
import com.jiankangyouyi.cloud.core.base.entity.BaseMongoEntity;
import lombok.*;
import org.springframework.data.mongodb.core.mapping.Document;
/**
* 文章首页记录模型
*
* @author qxy
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Document(collection = "v3.article.index")
public class ArticleIndexDO extends BaseMongoEntity {
/**
* 记录时间
*
*/
private String recordDate;
/**
* 当天首页展示的文章id
*
*/
private String articleId;
/**
* 当天首页展示的文章code
*
*/
private String articleCode;
public static final String FIELD_RECORDDATE = "recordDate";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo.component;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
/**
* 阶段内容
* @author :wangyalei
* @date :2022/8/1 2:56 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class PhaseContent {
/**
* 小贴士ID (知识ID)
*/
@NotBlank(message = "请求参数 tipId 不能为空")
private String tipId;
/**
* 小贴士内容
*/
@NotBlank(message = "请求参数 tipContent 不能为空")
private String tipContent;
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo.component;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.collections.CollectionUtils;
import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import java.util.List;
import java.util.stream.Collectors;
/**
* 打卡内容
* @author :wangyalei
* @date :2022/8/1 2:54 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class PunchCardContent {
/**
* 第一阶段小贴士内容
*/
@NotEmpty(message = "请求参数 firstPhaseContents 不能为空")
@Valid
private List<PhaseContent> firstPhaseContents;
/**
* 第二阶段小贴士内容
*/
@NotEmpty(message = "请求参数 secondPhaseContents 不能为空")
@Valid
private List<PhaseContent> secondPhaseContents;
/**
* 第三阶段小贴士内容
*/
@NotEmpty(message = "请求参数 thirdPhaseContents 不能为空")
@Valid
private List<PhaseContent> thirdPhaseContents;
/**
* 第四阶段小贴士内容
*/
@NotEmpty(message = "请求参数 fourthPhaseContents 不能为空")
@Valid
private List<PhaseContent> fourthPhaseContents;
public void setFirstPhaseContents() {
if (CollectionUtils.isNotEmpty(this.firstPhaseContents)) {
this.firstPhaseContents = this.firstPhaseContents.stream().distinct().collect(Collectors.toList());
}
}
public void setSecondPhaseContents() {
if (CollectionUtils.isNotEmpty(this.secondPhaseContents)) {
this.secondPhaseContents = this.secondPhaseContents.stream().distinct().collect(Collectors.toList());
}
}
public void setThirdPhaseContents() {
if (CollectionUtils.isNotEmpty(this.thirdPhaseContents)) {
this.thirdPhaseContents = this.thirdPhaseContents.stream().distinct().collect(Collectors.toList());
}
}
public void setFourthPhaseContents() {
if (CollectionUtils.isNotEmpty(this.fourthPhaseContents)) {
this.fourthPhaseContents = this.fourthPhaseContents.stream().distinct().collect(Collectors.toList());
}
}
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo.component;
import com.jiankangyouyi.cloud.basedata.api.model.component.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import java.io.Serializable;
/**
* 规则组合
* @author :wangyalei
* @date :2022/8/1 2:38 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class RuleLimit implements Serializable {
/**
* 年龄类型规则
*/
private AgeTypeRuleCondition ageTypeRuleCondition;
/**
* 性别类型规则
*/
@Valid
private GenderTypeRuleCondition genderTypeRuleCondition;
/**
* 腰围类型规则
*/
private WaistTypeRuleCondition waistTypeRuleCondition;
/**
* BMI类型规则
*/
private BmiTypeRuleCondition bmiTypeRuleCondition;
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo.component;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.jiankangyouyi.cloud.core.util.json.serialize.QiniuKeyToUrlJsonSerialize;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* @author :wangyalei
* @date :Created in 2021/7/12 6:43 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ServiceArea {
/**
* 标题
*/
@NotBlank(message = "请求参数 title 不能为空")
@Size(max = 6,message = "请求参数 title 超过有效长度 6")
private String title;
/**
* 图片
*/
@JsonSerialize(using = QiniuKeyToUrlJsonSerialize.class)
@NotBlank(message = "请求参数 image 不能为空")
@Size(max = 256,message = "请求参数 image 超过有效长度 256")
private String image;
/**
* 描述
*/
@NotBlank(message = "请求参数 description 不能为空")
@Size(max = 100,message = "请求参数 description 超过有效长度 100")
private String description;
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo.component;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
/**
* @author :wangyalei
* @date :Created in 2021/7/12 7:07 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ServiceValue {
/**
* 标题
*/
@NotBlank(message = "请求参数 title 不能为空")
@Size(max = 6,message = "请求参数 title 超过有效长度 6")
private String title;
/**
* 描述
*/
@NotBlank(message = "请求参数 description 不能为空")
@Size(max = 100,message = "请求参数 description 超过有效长度 100")
private String description;
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo.disease;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jiankangyouyi.cloud.basedata.api.model.entity.disease.DiseaseInfo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 疾病库-基础数据
* @author :fengxuanjun
* @date 2021年12月15日
*
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@CompoundIndexes(
value = {
@CompoundIndex(
name = "diseaseId_-1_diseaseStatus_1",
def = "{'diseaseId' : -1, 'diseaseStatus' : -1}"
),
}
)
@Document(collection = "v3.disease")
public class DiseaseDO extends DiseaseInfo implements Serializable {
private static final long serialVersionUID = 1L;
@Id
private ObjectId id;
/**
* 疾病ID
*/
@Indexed(unique = true)
private String diseaseId;
/**
* 疾病状态
* {@link com.jiankangyouyi.cloud.basedata.api.enums.disease.DiseaseStatusEnum}
*/
private String diseaseStatus;
@DateTimeFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date updateTime;
@DateTimeFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date createTime;
/**
* 创建日期 yyyy-MM-dd
*/
private String createDate;
/**
* 疾病名称
*/
private String diseaseName;
/**
* 疾病别名
*/
private List<String> diseaseAlias;
/**
* 疾病分类1
*/
private String classify1;
/**
* 疾病分类2
*/
private String classify2;
/**
* 疾病分类3
*/
private String classify3;
/**
* 疾病分型
*/
private List<String> partings;
/**
* 高发人群
*/
private List<String> highRiskGroups;
/**
* 预后
*/
private List<String> prognosis;
/**
* 疾病简介
*/
private String about;
/**
* 并发症
*/
private String complication;
/**
* 日常预防
*/
private String prevention;
// /**
// * 病因症状
// */
// private DiseaseCause diseaseCause;
//
// /**
// * 疾病医学
// */
// private DiseaseMedical diseaseMedical;
//
// /**
// * 疾病饮食
// */
// private DiseaseDiet diseaseDiet;
//
// /**
// * 疾病运动
// */
// private DiseaseExercise diseaseExercise;
//
// /**
// * 疾病生活方式
// */
// private List<DiseaseLife> diseaseLife;
//
// /**
// * 疾病心理调节
// */
// private List<DiseaseMental> diseaseMental;
public static final String FIELD_ID = "_id";
public static final String FIELD_UPDATETIME = "updateTime";
public static final String FIELD_CREATETIME = "createTime";
public static final String FIELD_CREATEDATE = "createDate";
public static final String FIELD_DISEASE_ID = "diseaseId";
public static final String FIELD_DISEASE_NAME = "diseaseName";
public static final String FIELD_DISEASE_ALIAS = "diseaseAlias";
public static final String FIELD_DISEASE_STATUS = "diseaseStatus";
public static final String FIELD_CLASSIFY1 = "classify1";
public static final String FIELD_CLASSIFY2 = "classify2";
public static final String FIELD_CLASSIFY3 = "classify3";
public static final String FIELD_PARTINGS = "partings";
public static final String FIELD_HIGHRISKGROUPS = "highRiskGroups";
public static final String FIELD_PROGNOSIS = "prognosis";
public static final String FIELD_ABOUT = "about";
public static final String FIELD_COMPLICATION = "complication";
public static final String FIELD_PREVENTION = "prevention";
public static final String FIELD_DISEASECAUSE = "diseaseCause";
public static final String FIELD_DISEASEMEDICAL = "diseaseMedical";
public static final String FIELD_DISEASEDIET = "diseaseDiet";
public static final String FIELD_DISEASEEXERCISE = "diseaseExercise";
public static final String FIELD_DISEASELIFE = "diseaseLife";
public static final String FIELD_DISEASEMENTAL = "diseaseMental";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo.extend;
import lombok.Data;
import java.io.Serializable;
/**
* 加工食品中,主料或辅料中食材引用的数量
*
* @author yangsongbo
*/
@Data
public class FoodMaterialRefCountAggDO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 食材ID
*/
private String _id;
/**
* 主料或辅料引用数量
*/
private Integer refCount;
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo.food;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.mapping.Document;
import java.io.Serializable;
/**
* 食物基础表
*
* @author :yangsongbo
*/
@CompoundIndexes(
value = {
@CompoundIndex(
name = "foodId_-1",
def = "{'foodId' : -1}",
unique = true
)
}
)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Document(collection = "v4.food.basic")
public class FoodBasicDO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@Id
private ObjectId _id;
/**
* 食物ID,业务主键
*/
private String foodId;
/**
* 食物属性(1、食材 2、加工食品 3、预包装食品 4、药材)
*/
private String foodProperty;
/**
* 食物状态
* <p>
* {@link com.jiankangyouyi.cloud.basedata.api.enums.food.FoodStatusEnum}
*/
private String foodStatus;
/**
* 备注
*/
private String remark;
public static final String FIELD_ID = "_id";
public static final String FIELD_FOODID = "foodId";
public static final String FIELD_FOODPROPERTY = "foodProperty";
public static final String FIELD_FOODSTATUS = "foodStatus";
public static final String FIELD_REMARK = "remark";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo.food;
import com.jiankangyouyi.cloud.core.base.entity.BaseMongoEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.data.mongodb.core.mapping.Document;
import java.io.Serializable;
import java.util.List;
/**
* 食物图片特征表
*
* @author jingpeng
*/
@Data
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Document(collection = "v3.food.image.features")
@Builder
public class FoodImgFeaturesDO extends BaseMongoEntity implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 图片名称 hash
*/
private String foodImageName;
/**
* ftp图片url
*/
private String foodImageUrl;
/**
* ftp图片remotePath
*/
private String remotePath;
/**
* 七牛key
*/
// private String qiNiuKey;
/**
* 食物id
*/
private String foodId;
/**
* 图片特征
*/
private List<Float> imgFeatures;
/**
* 食物名称
*/
private String foodName;
/**
* 食物类型
*/
private String foodProperty;
/**
* 食物分类1
*/
private String classify1;
/**
* 食物分类1
*/
private String classify2;
/**
* 食物分类1
*/
private String classify3;
/**
* 最后操作账号
*/
private String optionAccount;
public static final String FIELD_FOODIMAGENAME = "foodImageName";
public static final String FIELD_REMOTEPATH = "remotePath";
public static final String FIELD_FOODIMAGEURL = "foodImageUrl";
public static final String FIELD_FOODID = "foodId";
public static final String FIELD_IMGFEATURES = "imgFeatures";
public static final String FIELD_FOODNAME = "foodName";
public static final String FIELD_FOODPROPERTY = "foodProperty";
public static final String FIELD_CLASSIFY1 = "classify1";
public static final String FIELD_CLASSIFY2 = "classify2";
public static final String FIELD_CLASSIFY3 = "classify3";
public static final String FIELD_OPTIONACCOUNT = "optionAccount";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo.food;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jiankangyouyi.cloud.basedata.api.enums.food.AuditStatusValidEnum;
import com.jiankangyouyi.cloud.basedata.api.model.entity.foodv4.FoodMaterial;
import com.jiankangyouyi.cloud.core.validator.annotation.EnumHC;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import java.util.Date;
import java.util.List;
/**
* 食材表
*
* @author :yangsongbo
*/
@CompoundIndexes(
value = {
@CompoundIndex(
name = "foodId_-1",
def = "{'foodId' : -1}",
unique = true
),
@CompoundIndex(
name = "foodName_1",
def = "{'foodName' : 1}"
),
@CompoundIndex(
name = "updateTime_-1__id_-1",
def = "{'updateTime' : -1,'_id' : -1}"
)
}
)
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Document(collection = "v4.food.material")
public class FoodMaterialDO extends FoodMaterial {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@Id
private ObjectId _id;
/**
* 更新时间
*/
@DateTimeFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date updateTime;
/**
* 创建时间
*/
@DateTimeFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date createTime;
/**
* 创建日期 yyyy-MM-dd
*/
private String createDate;
/**
* 操作人账号
*/
private String operateAccount;
/**
* 审核状态
* <p>
* {@link com.jiankangyouyi.cloud.basedata.api.enums.food.AuditStatusValidEnum}
*/
@NotBlank(message = "请求参数auditStatus不能为空")
@EnumHC(enumTypes = AuditStatusValidEnum.class, message = "请求参数auditStatus不合法")
private String auditStatus;
/**
* 创建者账号
*/
private String createAccount;
/**
* 驳回理由
*/
private List<String> reasonsForRejection;
/**
* 采纳时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date adoptTime;
/**
* 采纳人账号
*/
private String adoptAccount;
public static final String FIELD_ID = "_id";
public static final String FIELD_UPDATETIME = "updateTime";
public static final String FIELD_CREATETIME = "createTime";
public static final String FIELD_ADOPTTIME = "adoptTime";
public static final String FIELD_AUDITSTATUS = "auditStatus";
public static final String FIELD_CREATEDATE = "createDate";
public static final String FIELD_OPERATEACCOUNT = "operateAccount";
public static final String FIELD_CREATE_ACCOUNT = "createAccount";
public static final String FIELD_ADOPT_ACCOUNT = "adoptAccount";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo.food;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jiankangyouyi.cloud.basedata.api.enums.food.AuditStatusValidEnum;
import com.jiankangyouyi.cloud.basedata.api.model.entity.foodv4.FoodPackage;
import com.jiankangyouyi.cloud.core.validator.annotation.EnumHC;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import java.util.Date;
import java.util.List;
/**
* 预包装食品表
*
* @author :yangsongbo
*/
@CompoundIndexes(
value = {
@CompoundIndex(
name = "foodId_-1",
def = "{'foodId' : -1}",
unique = true
),
@CompoundIndex(
name = "foodName_1",
def = "{'foodName' : 1}"
),
@CompoundIndex(
name = "updateTime_-1__id_-1",
def = "{'updateTime' : -1,'_id' : -1}"
)
}
)
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Document(collection = "v4.food.package")
public class FoodPackageDO extends FoodPackage {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@Id
private ObjectId _id;
/**
* 更新时间
*/
@DateTimeFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date updateTime;
/**
* 创建时间
*/
@DateTimeFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date createTime;
/**
* 创建时间 yyyy-MM-dd
*/
private String createDate;
/**
* 审核状态
* <p>
* {@link com.jiankangyouyi.cloud.basedata.api.enums.food.AuditStatusValidEnum}
*/
@NotBlank(message = "请求参数auditStatus不能为空")
@EnumHC(enumTypes = AuditStatusValidEnum.class, message = "请求参数auditStatus不合法")
private String auditStatus;
/**
* 操作人账号
*/
private String operateAccount;
/**
* 创建者账号
*/
private String createAccount;
/**
* 驳回理由
*/
private List<String> reasonsForRejection;
/**
* 采纳时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date adoptTime;
/**
* 采纳人账号
*/
private String adoptAccount;
public static final String FIELD_ID = "_id";
public static final String FIELD_UPDATETIME = "updateTime";
public static final String FIELD_CREATETIME = "createTime";
public static final String FIELD_ADOPTTIME = "adoptTime";
public static final String FIELD_AUDITSTATUS = "auditStatus";
public static final String FIELD_CREATEDATE = "createDate";
public static final String FIELD_OPERATEACCOUNT = "operateAccount";
public static final String FIELD_CREATE_ACCOUNT = "createAccount";
public static final String FIELD_ADOPT_ACCOUNT = "adoptAccount";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mongo.food;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jiankangyouyi.cloud.basedata.api.enums.food.AuditStatusValidEnum;
import com.jiankangyouyi.cloud.basedata.api.model.entity.foodv4.FoodProcess;
import com.jiankangyouyi.cloud.core.validator.annotation.EnumHC;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.CompoundIndex;
import org.springframework.data.mongodb.core.index.CompoundIndexes;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotBlank;
import java.util.Date;
import java.util.List;
/**
* 加工食品表
*
* @author :yangsongbo
*/
@CompoundIndexes(
value = {
@CompoundIndex(
name = "foodId_-1",
def = "{'foodId' : -1}",
unique = true
),
@CompoundIndex(
name = "majorMaterials_foodId_-1_foodStatus_1",
def = "{'majorMaterials.foodId' : -1,'foodStatus':1}"
),
@CompoundIndex(
name = "minorMaterials_foodId_-1_foodStatus_1",
def = "{'minorMaterials.foodId' : -1,'foodStatus':1}"
),
@CompoundIndex(
name = "foodName_1",
def = "{'foodName' : 1}"
),
@CompoundIndex(
name = "updateTime_-1__id_-1",
def = "{'updateTime' : -1,'_id' : -1}"
)
}
)
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Document(collection = "v4.food.process")
public class FoodProcessDO extends FoodProcess {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@Id
private ObjectId _id;
/**
* 更新时间
*/
@DateTimeFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date updateTime;
/**
* 创建时间
*/
@DateTimeFormat(
pattern = "yyyy-MM-dd HH:mm:ss"
)
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date createTime;
/**
* 创建时间 yyyy-MM-dd
*/
private String createDate;
/**
* 审核状态
* <p>
* {@link com.jiankangyouyi.cloud.basedata.api.enums.food.AuditStatusValidEnum}
*/
@NotBlank(message = "请求参数auditStatus不能为空")
@EnumHC(enumTypes = AuditStatusValidEnum.class, message = "请求参数auditStatus不合法")
private String auditStatus;
/**
* 操作人账号
*/
private String operateAccount;
/**
* 创建者账号
*/
private String createAccount;
/**
* 驳回理由
*/
private List<String> reasonsForRejection;
/**
* 采纳时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date adoptTime;
/**
* 采纳人账号
*/
private String adoptAccount;
public static final String FIELD_ID = "_id";
public static final String FIELD_UPDATETIME = "updateTime";
public static final String FIELD_CREATETIME = "createTime";
public static final String FIELD_AUDITSTATUS = "auditStatus";
public static final String FIELD_CREATEDATE = "createDate";
public static final String FIELD_OPERATEACCOUNT = "operateAccount";
public static final String FIELD_CREATE_ACCOUNT = "createAccount";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mysql;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import java.sql.Timestamp;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.*;
import lombok.experimental.Accessors;
/**
* <p>
* 字典表
* </p>
*
* @author yangdeliang
* @since 2021-04-23
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("base_dict")
public class BaseDictDO extends Model<BaseDictDO> implements ValidDTO {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 更新时间
*/
@TableField("update_time")
private Timestamp updateTime;
/**
* 创建时间
*/
@TableField("create_time")
private Timestamp createTime;
/**
* 启用禁用状态 1 启用 2 禁用
*/
@TableField("valid_status")
private String validStatus;
/**
* 字典ID,业务主键
*/
@TableField("dict_id")
private String dictId;
/**
* 字典大类
*/
@TableField("dict_type")
private String dictType;
/**
* 字典子类
*/
@TableField("dict_sub_type")
private String dictSubType;
/**
* 字典编码
*/
@TableField("dict_code")
private String dictCode;
/**
* 字典名称
*/
@TableField("dict_name")
private String dictName;
/**
* 排序
*/
@TableField("row_order")
private Integer rowOrder;
/**
* 字典描述
*/
@TableField("description")
private String description;
/**
* 备注
*/
@TableField("remark")
private String remark;
/**
* 操作人帐号
*/
@TableField("operate_account")
private String operateAccount;
public static final String ID = "id";
public static final String UPDATE_TIME = "update_time";
public static final String CREATE_TIME = "create_time";
public static final String VALID_STATUS = "valid_status";
public static final String DICT_ID = "dict_id";
public static final String DICT_TYPE = "dict_type";
public static final String DICT_SUB_TYPE = "dict_sub_type";
public static final String DICT_CODE = "dict_code";
public static final String DICT_NAME = "dict_name";
public static final String ROW_ORDER = "row_order";
public static final String DESCRIPTION = "description";
public static final String REMARK = "remark";
public static final String OPERATE_ACCOUNT = "operate_account";
@Override
protected Serializable pkVal() {
return this.id;
}
}
package com.jiankangyouyi.cloud.basedata.model.entity.mysql;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.*;
import lombok.experimental.Accessors;
import java.sql.Timestamp;
/**
* <p>
* 字典分类表
* </p>
*
* @author yangdeliang
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("base_dict_type")
public class BaseDictTypeDO extends Model<BaseDictTypeDO> implements ValidDTO {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 更新时间
*/
@TableField("update_time")
private Timestamp updateTime;
/**
* 创建时间
*/
@TableField("create_time")
private Timestamp createTime;
/**
* 字典分类Id 业务主键
*/
@TableField("dict_type_id")
private String dictTypeId;
/**
* 字典大类
*/
@TableField("dict_type")
private String dictType;
/**
* 字典子类
*/
@TableField("dict_sub_type")
private String dictSubType;
/**
* 类型名称
*/
@TableField("dict_sub_type_name")
private String dictSubTypeName;
/**
* 排序
*/
@TableField("row_order")
private Integer rowOrder;
/**
* 备注
*
*/
@TableField("remark")
private String remark;
/**
* 状态 1-启用 2-禁用
*
*/
@TableField("valid_status")
private String validStatus;
/**
* 描述
*
*/
@TableField("description")
private String description;
/**
* 操作人帐号
*/
@TableField("operate_account")
private String operateAccount;
public static final String FIELD_ID = "_id";
public static final String FIELD_DICT_TYPE_ID = "dict_type_id";
public static final String FIELD_VALID_STATUS = "valid_status";
public static final String FIELD_UPDATE_TIME = "update_time";
public static final String FIELD_CREATE_TIME = "create_time";
public static final String FIELD_DICT_TYPE = "dict_type";
public static final String FIELD_DICT_SUB_TYPE = "dict_sub_type";
public static final String FIELD_DICT_SUB_NAME = "dict_sub_type_name";
public static final String FIELD_ROW_ORDER = "row_order";
public static final String FIELD_REMARK = "remark";
}
package com.jiankangyouyi.cloud.basedata.model.entity.mysql;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.*;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.sql.Timestamp;
/**
* <p>
* 参数表
* </p>
*
* @author yangsongbo
* @since 2020-08-18
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("base_param")
public class BaseParamDO extends Model<BaseParamDO> {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 更新时间
*/
@TableField("update_time")
private Timestamp updateTime;
/**
* 创建时间
*/
@TableField("create_time")
private Timestamp createTime;
/**
* 参数组
*/
@TableField("param_group")
private String paramGroup;
/**
* 参数key
*/
@TableField("param_key")
private String paramKey;
/**
* 参数值
*/
@TableField("param_value")
private String paramValue;
/**
* 参数名称
*/
@TableField("param_name")
private String paramName;
/**
* 备注
*/
@TableField("remark")
private String remark;
/**
* 排序
*/
@TableField("row_order")
private Integer rowOrder;
/**
* 有效标识 1 有效 2 无效
*/
@TableField("valid_status")
private String validStatus;
public static final String ID = "id";
public static final String UPDATE_TIME = "update_time";
public static final String CREATE_TIME = "create_time";
public static final String PARAM_GROUP = "param_group";
public static final String PARAM_KEY = "param_key";
public static final String PARAM_VALUE = "param_value";
public static final String PARAM_NAME = "param_name";
public static final String REMARK = "remark";
public static final String ROW_ORDER = "row_order";
public static final String VALID_STATUS = "valid_status";
@Override
protected Serializable pkVal() {
return this.id;
}
}
package com.jiankangyouyi.cloud.basedata.model.entity.mysql;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.sql.Timestamp;
/**
* <p>Title: 开发者信息表 dto of table: biz_developer_info</p>
* <p>Description: biz_developer_info Data Transfer Object </p>
* <p>Generation Time: 2018-07-27 17:28:41.09 </p>
* dto.vm version date: 2014-11-20
*
* @author ego-gw
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "biz_developer_info")
public class BizDeveloperInfoDO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 开发者ID developer_id varchar(32) PK ,NOT NULL
**/
@Id
private String developerId;
/**
* 手机号 mobile varchar(20) ,NOT NULL
**/
private String mobile;
/**
* 邮箱地址 email varchar(64)
**/
private String email;
/**
* 密码 password varchar(32) ,NOT NULL
**/
private String password;
/**
* 开发者类型 developer_type varchar(2)
**/
private String developerType;
/**
* 公司名称 company_name varchar(128)
**/
private String companyName;
/**
* 联系人名称 contact_name varchar(128)
**/
private String contactName;
/**
* 行业类别 industry_classify varchar(32)
**/
private String industryClassify;
/**
* 地址-省 province varchar(32)
**/
private String province;
/**
* 地址-城市 city varchar(32)
**/
private String city;
/**
* 地址-区县 district varchar(32)
**/
private String district;
/**
* 详细地址 address varchar(128)
**/
private String address;
/**
* 证件号 license_no varchar(64)
**/
private String licenseNo;
/**
* 证件照片 license_image_key varchar(512)
**/
private String licenseImageKey;
/**
* 场景描述 description varchar(512)
**/
private String description;
/**
* 开发者状态 developer_status varchar(2)
**/
private String developerStatus;
/**
* 审核结果 audit_result varchar(512)
**/
private String auditResult;
/**
* 备注 remark varchar(256)
**/
private String remark;
/**
* 更新时间 update_time timestamp
**/
private Timestamp updateTime;
/**
* 创建时间 create_time timestamp
**/
private Timestamp createTime;
}
package com.jiankangyouyi.cloud.basedata.model.entity.mysql;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.sql.Timestamp;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.*;
import lombok.experimental.Accessors;
import lombok.experimental.FieldNameConstants;
/**
* <p>
*
* </p>
*
* @author yangdeliang
* @since 2022-03-11
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("biz_tag")
@FieldNameConstants
public class BizTagDO extends Model<BizTagDO> {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 创建时间
*/
@TableField("create_time")
private Timestamp createTime;
/**
* 修改时间
*/
@TableField("update_time")
private Timestamp updateTime;
/**
* 1:启用2:禁用
*/
@TableField("valid_status")
private String validStatus;
/**
* 标签id
*/
@TableField("tag_id")
private String tagId;
/**
* 标签名称
*/
@TableField("tag_name")
private String tagName;
/**
* 排序值
*/
@TableField("order_num")
private Integer orderNum;
/**
* 描述信息
*/
@TableField("desc_msg")
private String descMsg;
/**
* 一级分类code
*/
@TableField("classify_code1")
private String classifyCode1;
/**
* 二级分类code
*/
@TableField("classify_code2")
private String classifyCode2;
/**
* 三级分类code
*/
@TableField("classify_code3")
private String classifyCode3;
public static final String ID = "id";
public static final String CREATE_TIME = "create_time";
public static final String UPDATE_TIME = "update_time";
public static final String VALID_STATUS = "valid_status";
public static final String TAG_ID = "tag_id";
public static final String TAG_NAME = "tag_name";
public static final String ORDER_NUM = "order_num";
public static final String DESC_MSG = "desc_msg";
public static final String CLASSIFY_CODE1 = "classify_code1";
public static final String CLASSIFY_CODE2 = "classify_code2";
public static final String CLASSIFY_CODE3 = "classify_code3";
@Override
protected Serializable pkVal() {
return this.id;
}
}
package com.jiankangyouyi.cloud.basedata.model.excel;
import java.io.Serializable;
import java.util.LinkedHashMap;
/**
* Excel对象
*
* @author yangsongbo
*/
public interface BaseDataExcel extends Serializable {
/**
* 获取表头
*
* @return 表头,key为属性,value为属性名称
*/
LinkedHashMap<String, String> getHeader();
}
package com.jiankangyouyi.cloud.basedata.model.excel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.LinkedHashMap;
/**
* 食材表Excel对象
*
* @author :wangyalei
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FoodMaterialExcel implements BaseDataExcel {
private static final long serialVersionUID = 1L;
/**
* 食物ID
*/
private String foodId;
/**
* 食物图片URL
*/
private String imageUrl;
/**
* 食物名称
*/
private String foodName;
/**
* 一级分类名称
*/
private String classify1Name;
/**
* 二级分类名称
*/
private String classify2Name;
/**
* 三级分类名称
*/
private String classify3Name;
/**
* 时令
*/
private String months;
/**
* 地区
*/
private String countryDistricts;
/**
* 禁忌民族
*/
private String tabooNations;
/**
* 食物状态: 启用/禁用/草稿/删除
*/
private String foodStatus;
/**
* 审核状态 0、草稿 1、待审核 2、已审核 3、已驳回
*/
private String auditStatus;
/**
* 是否参与配餐: 是/否
*/
private String catering;
/**
* 配餐版本号
*/
private String foodVersions;
/**
* 被加工食品引用数量
*/
private String refCount;
/**
* 推荐人群,返回示例:糖尿病、肥胖
*/
private String recommendCrowds;
/**
* 禁忌人群,返回示例:糖尿病、肥胖
*/
private String tabooCrowds;
/**
* 致敏原
*/
private String allergen;
/**
* 富含营养素,返回示例:钾、镁
*/
private String highContentNutrients;
/**
* 低量营养素,返回示例:钾、镁
*/
private String lowContentNutrients;
/**
* 升糖指数等级, 高/中/低/未知
*/
private String giLevel;
/**
* 血糖负荷等级, 高/中/低/未知
*/
private String glLevel;
/**
* 嘌呤等级, 高/中/低/未知
*/
private String purineLevel;
/**
* 果糖含量等级, 高/中/低/未知
*/
private String fructoseLevel;
/**
* 性质, 返回示例:产气、家常菜、辛辣刺激
*/
private String natures;
/**
* 膳食特点, 返回示例:全谷物、优质蛋白
*/
private String foodSpecialties;
/**
* 能量,单位 kcal
*/
private String energy;
/**
* 蛋白质,单位 g
*/
private String protein;
/**
* 脂肪,单位 g
*/
private String fat;
/**
* 碳水化合物,单位 g
*/
private String carbohydrate;
/**
* 创建人
*/
private String createAccount;
/**
* 采纳人
*/
private String adoptAccount;
/**
* 创建时间
*/
private String createTime;
/**
* 采纳时间
*/
private String adoptTime;
/**
* 修改人
*/
private String updateAccount;
/**
* 驳回理由
*/
private String reasonsForRejection;
/**
* 更新时间 yyyy-MM-dd HH:mm:ss
*/
private String updateTime;
/**
* Excel头
*/
public static LinkedHashMap<String, String> HEADER;
static {
HEADER = new LinkedHashMap<>();
HEADER.put("foodId", "食物ID");
HEADER.put("imageUrl", "食物图片");
HEADER.put("foodName", "食物名称");
HEADER.put("classify1Name", "一级分类");
HEADER.put("classify2Name", "二级分类");
HEADER.put("classify3Name", "三级分类");
HEADER.put("months", "时令");
HEADER.put("countryDistricts", "地区");
HEADER.put("tabooNations", "禁忌民族");
HEADER.put("foodStatus", "使用状态");
HEADER.put("auditStatus", "审核状态");
HEADER.put("refCount", "引用次数");
HEADER.put("catering", "参与配餐");
HEADER.put("foodVersions", "配餐版本号");
HEADER.put("recommendCrowds", "推荐人群");
HEADER.put("tabooCrowds", "禁忌人群");
HEADER.put("allergen", "致敏原");
HEADER.put("highContentNutrients", "富含营养素");
HEADER.put("lowContentNutrients", "低量营养素");
HEADER.put("giLevel", "升糖指数");
HEADER.put("glLevel", "血糖负荷");
HEADER.put("purineLevel", "嘌呤等级");
HEADER.put("fructoseLevel", "果糖含量");
HEADER.put("natures", "性质");
HEADER.put("foodSpecialties", "膳食特点");
HEADER.put("energy", "能量/kcal");
HEADER.put("protein", "蛋白质/g");
HEADER.put("fat", "脂肪/g");
HEADER.put("carbohydrate", "碳水化合物");
HEADER.put("createAccount", "创建人");
HEADER.put("adoptAccount", "采纳人");
HEADER.put("createTime", "创建时间");
HEADER.put("adoptTime", "采纳时间");
HEADER.put("updateAccount", "修改人");
HEADER.put("reasonsForRejection", "驳回理由");
HEADER.put("updateTime", "修改时间");
}
@Override
public LinkedHashMap<String, String> getHeader() {
return HEADER;
}
}
package com.jiankangyouyi.cloud.basedata.model.excel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.LinkedHashMap;
/**
* 预包装食品Excel对象
*
* @author :wangyalei
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FoodPackageExcel implements BaseDataExcel {
private static final long serialVersionUID = 1L;
/**
* 食物ID
*/
private String foodId;
/**
* 食物图片URL
*/
private String imageUrl;
/**
* 食物名称
*/
private String foodName;
/**
* 一级分类名称
*/
private String classify1Name;
/**
* 二级分类名称
*/
private String classify2Name;
/**
* 三级分类名称
*/
private String classify3Name;
/**
* 食物状态 (使用状态): 启用/禁用
*/
private String foodStatus;
/**
* 审核状态: 草稿、已采纳 、待审核
*/
private String auditStatus;
/**
* 能量,单位 kcal
*/
private String energy;
/**
* 蛋白质,单位 g
*/
private String protein;
/**
* 脂肪,单位 g
*/
private String fat;
/**
* 碳水化合物,单位 g
*/
private String carbohydrate;
/**
* 条形码
*/
private String barCode;
/**
* 创建人
*/
private String createAccount;
/**
* 采纳人
*/
private String adoptAccount;
/**
* 创建时间
*/
private String createTime;
/**
* 采纳时间
*/
private String adoptTime;
/**
* 修改人
*/
private String updateAccount;
/**
* 驳回理由
*/
private String reasonsForRejection;
/**
* 更新时间 yyyy-MM-dd HH:mm:ss
*/
private String updateTime;
/**
* Excel头
*/
public static LinkedHashMap<String, String> HEADER;
static {
HEADER = new LinkedHashMap<>();
HEADER.put("foodId", "食物ID");
HEADER.put("imageUrl", "食物图片");
HEADER.put("foodName", "食物名称");
HEADER.put("classify1Name", "一级分类");
HEADER.put("classify2Name", "二级分类");
HEADER.put("classify3Name", "三级分类");
HEADER.put("energy", "能量/kcal");
HEADER.put("protein", "蛋白质/g");
HEADER.put("fat", "脂肪/g");
HEADER.put("carbohydrate", "碳水化合物/g");
HEADER.put("foodStatus", "使用状态");
HEADER.put("auditStatus", "审核状态");
HEADER.put("barCode", "条形码");
HEADER.put("createAccount", "创建人");
HEADER.put("adoptAccount", "采纳人");
HEADER.put("createTime", "创建时间");
HEADER.put("adoptTime", "采纳时间");
HEADER.put("updateAccount", "修改人");
HEADER.put("reasonsForRejection", "驳回理由");
HEADER.put("updateTime", "更新时间");
}
@Override
public LinkedHashMap<String, String> getHeader() {
return HEADER;
}
}
package com.jiankangyouyi.cloud.basedata.model.excel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.LinkedHashMap;
/**
* 加工食品Excel对象
*
* @author yangsongbo
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FoodProcessExcel implements BaseDataExcel {
private static final long serialVersionUID = 1L;
/**
* 食物ID
*/
private String foodId;
/**
* 食物图片URL
*/
private String imageUrl;
/**
* 食物名称
*/
private String foodName;
/**
* 一级分类名称
*/
private String classify1Name;
/**
* 二级分类名称
*/
private String classify2Name;
/**
* 三级分类名称
*/
private String classify3Name;
/**
* 地区
*/
private String countryDistricts;
/**
* 时令
*/
private String months;
/**
* 禁忌民族
*/
private String tabooNations;
/**
* 适合餐别
*/
private String suitableForMeals;
/**
* 食物状态: 启用/禁用/草稿/删除
*/
private String foodStatus;
/**
* 审核状态 0、草稿 1、待审核 2、已审核 3、已驳回
*/
private String auditStatus;
/**
* 是否参与配餐: 是/否
*/
private String catering;
/**
* 节日
*/
private String festivalNames;
/**
* 节气
*/
private String solarTermNames;
/**
* 配餐版本号
*/
private String foodVersions;
/**
* 推荐人群,返回示例:糖尿病、肥胖
*/
private String recommendCrowds;
/**
* 禁忌人群,返回示例:糖尿病、肥胖
*/
private String tabooCrowds;
/**
* 致敏原
*/
private String allergen;
/**
* 富含营养素,返回示例:钾、镁
*/
private String highContentNutrients;
/**
* 低量营养素,返回示例:钾、镁
*/
private String lowContentNutrients;
/**
* 升糖指数等级, 高/中/低/未知
*/
private String giLevel;
/**
* 血糖负荷等级, 高/中/低/未知
*/
private String glLevel;
/**
* 嘌呤等级, 高/中/低/未知
*/
private String purineLevel;
/**
* 果糖含量等级, 高/中/低/未知
*/
private String fructoseLevel;
/**
* 性质, 返回示例:产气、家常菜、辛辣刺激
*/
private String natures;
/**
* 膳食特点, 返回示例:全谷物、优质蛋白
*/
private String foodSpecialties;
/**
* 烹饪特点, 返回示例:干、湿
*/
private String cookingSpecialties;
/**
* 能量,单位 kcal
*/
private String energy;
/**
* 蛋白质,单位 g
*/
private String protein;
/**
* 脂肪,单位 g
*/
private String fat;
/**
* 碳水化合物,单位 g
*/
private String carbohydrate;
/**
* 口味
*/
private String tastes;
/**
* 创建人
*/
private String createAccount;
/**
* 采纳人
*/
private String adoptAccount;
/**
* 创建时间
*/
private String createTime;
/**
* 采纳时间
*/
private String adoptTime;
/**
* 修改人
*/
private String updateAccount;
/**
* 驳回理由
*/
private String reasonsForRejection;
/**
* 更新时间 yyyy-MM-dd HH:mm:ss
*/
private String updateTime;
/**
* Excel头
*/
public static LinkedHashMap<String, String> HEADER;
static {
HEADER = new LinkedHashMap<>();
HEADER.put("foodId", "食物ID");
HEADER.put("imageUrl", "食物图片");
HEADER.put("foodName", "食物名称");
HEADER.put("classify1Name", "一级分类");
HEADER.put("classify2Name", "二级分类");
HEADER.put("classify3Name", "三级分类");
HEADER.put("countryDistricts", "地区");
HEADER.put("months", "时令");
HEADER.put("tabooNations", "禁忌民族");
HEADER.put("suitableForMeals", "适合餐别");
HEADER.put("foodStatus", "使用状态");
HEADER.put("auditStatus", "审核状态");
HEADER.put("catering", "参与配餐");
HEADER.put("foodVersions", "配餐版本号");
HEADER.put("festivalNames", "节日");
HEADER.put("solarTermNames", "节气");
HEADER.put("recommendCrowds", "推荐人群");
HEADER.put("tabooCrowds", "禁忌人群");
HEADER.put("allergen", "致敏原");
HEADER.put("highContentNutrients", "富含营养素");
HEADER.put("lowContentNutrients", "低量营养素");
HEADER.put("giLevel", "升糖指数");
HEADER.put("glLevel", "血糖负荷");
HEADER.put("purineLevel", "嘌呤等级");
HEADER.put("fructoseLevel", "果糖含量");
HEADER.put("natures", "性质");
HEADER.put("foodSpecialties", "膳食特点");
HEADER.put("cookingSpecialties", "烹饪特点");
HEADER.put("energy", "能量/kcal");
HEADER.put("protein", "蛋白质/g");
HEADER.put("fat", "脂肪/g");
HEADER.put("carbohydrate", "碳水化合物/g");
HEADER.put("tastes", "口味");
HEADER.put("createAccount", "创建人");
HEADER.put("adoptAccount", "采纳人");
HEADER.put("createTime", "创建时间");
HEADER.put("adoptTime", "采纳时间");
HEADER.put("updateAccount", "修改人");
HEADER.put("reasonsForRejection", "驳回理由");
HEADER.put("updateTime", "修改时间");
}
@Override
public LinkedHashMap<String, String> getHeader() {
return HEADER;
}
}
package com.jiankangyouyi.cloud.basedata.model.excel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.LinkedHashMap;
/**
* 海外食材表Excel对象
*
* @author yangsongbo
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ForeignFoodMaterialExcel implements BaseDataExcel {
private static final long serialVersionUID = 1L;
/**
* 食物ID
*/
private String foodId;
/**
* 食物图片URL
*/
private String imageUrl;
/**
* 中文名称
*/
private String foodNameZh;
/**
* 一级分类名称
*/
private String classify1Name;
/**
* 二级分类名称
*/
private String classify2Name;
/**
* 三级分类名称
*/
private String classify3Name;
/**
* 四级分类名称
*/
private String classfiy4Name;
/**
* 引用次数
*/
private String refCount;
/**
* 源语言
*/
private String foodSource;
/**
* 英文名称
*/
private String foodNameEn;
/**
* 德文名称
*/
private String foodNameGe;
/**
* 意文名称
*/
private String foodNameIt;
/**
* 食物状态: 0 已采纳 1 已驳回 2 草稿 3 待审核
*/
private String foodStatus;
/**
* 是否参与配餐: 是/否
*/
private String catering;
/**
* 支持的国家: 意大利、德国
*/
private String supportDomains;
/**
* 能量(Kcal)
*/
private String energy;
/**
* 蛋白质(g)
*/
private String protein;
/**
* 脂肪(g)
*/
private String fat;
/**
* 碳水化合物(g)
*/
private String carbohydrate;
/**
* 驳回理由
*/
private String auditMsg;
/**
* 创建人账号
*/
private String createAccount;
/**
* 审核人账号
*/
private String lastAuditAccount;
/**
* 采纳时间 yyyy-MM-dd HH:mm:ss
*/
private String auditPassTime;
/**
* 创建时间 yyyy-MM-dd HH:mm:ss
*/
private String createTime;
/**
* Excel头
*/
public static LinkedHashMap<String, String> HEADER;
static {
HEADER = new LinkedHashMap<>();
HEADER.put("foodId", "食物ID");
HEADER.put("imageUrl", "食物图片");
HEADER.put("foodNameZh", "中文名称");
HEADER.put("classify1Name", "一级分类");
HEADER.put("classify2Name", "二级分类");
HEADER.put("classify3Name", "三级分类");
HEADER.put("classfiy4Name", "四级分类");
HEADER.put("refCount", "引用次数");
HEADER.put("foodSource", "源语言");
HEADER.put("foodNameEn", "英文名称");
HEADER.put("foodNameGe", "德文名称");
HEADER.put("foodNameIt", "意文名称");
HEADER.put("foodStatus", "当前状态");
HEADER.put("catering", "参与配餐");
HEADER.put("supportDomains", "支持国家");
HEADER.put("energy", "能量(Kcal)");
HEADER.put("protein", "蛋白质(g)");
HEADER.put("fat", "脂肪(g)");
HEADER.put("carbohydrate", "碳水化合物(g)");
HEADER.put("auditMsg", "驳回理由");
HEADER.put("createAccount", "创建人账号");
HEADER.put("lastAuditAccount", "审核人账号");
HEADER.put("auditPassTime", "采纳时间");
HEADER.put("createTime", "创建时间");
}
@Override
public LinkedHashMap<String, String> getHeader() {
return HEADER;
}
}
package com.jiankangyouyi.cloud.basedata.model.excel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.LinkedHashMap;
/**
* 预包装食品Excel对象
*
* @author :wangyalei
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ForeignFoodPackageExcel implements BaseDataExcel {
private static final long serialVersionUID = 1L;
/**
* 食物ID
*/
private String foodId;
/**
* 食物图片URL
*/
private String imageUrl;
/**
* 中文名称
*/
private String foodNameZh;
/**
* 一级分类名称
*/
private String classify1Name;
/**
* 二级分类名称
*/
private String classify2Name;
/**
* 源语言
*/
private String foodSource;
/**
* 英文名称
*/
private String foodNameEn;
/**
* 德文名称
*/
private String foodNameGe;
/**
* 意文名称
*/
private String foodNameIt;
/**
* 食物版本号
*/
private String foodVersions;
/**
* 能量(Kcal)
*/
private String energy;
/**
* 能量(KJ)
*/
private String energyKJ;
/**
* 总脂肪(g)
*/
private String fat;
/**
* 饱和脂肪酸(g)
*/
private String saturatedFattyAcid;
/**
* 总碳水化合物(g)
*/
private String carbohydrate;
/**
* 糖(g)
*/
private String sugar;
/**
* 总蛋白质(g)
*/
private String protein;
/**
* 盐(g)
*/
private String theTotalSalt;
/**
* 食物状态: 0 已采纳 1 已驳回 2 草稿 3 待审核
*/
private String foodStatus;
/**
* 条形码
*/
private String barCode;
/**
* 驳回理由
*/
private String auditMsg;
/**
* 创建人账号
*/
private String createAccount;
/**
* 最后一次审核人账号
*/
private String lastAuditAccount;
/**
* 采纳时间 yyyy-MM-dd HH:mm:ss
*/
private String auditPassTime;
/**
* 创建时间 yyyy-MM-dd HH:mm:ss
*/
private String createTime;
/**
* Excel头
*/
public static LinkedHashMap<String, String> HEADER;
static {
HEADER = new LinkedHashMap<>();
HEADER.put("foodId", "食物ID");
HEADER.put("imageUrl", "食物图片");
HEADER.put("foodNameZh", "中文名称");
HEADER.put("classify1Name", "一级分类名称");
HEADER.put("classify2Name", "二级分类名称");
HEADER.put("foodSource", "源语言");
HEADER.put("foodNameEn", "英文名称");
HEADER.put("foodNameGe", "德文名称");
HEADER.put("foodNameIt", "意文名称");
HEADER.put("foodVersions", "食物版本号");
HEADER.put("energy", "能量(Kcal)");
HEADER.put("energyKJ", "能量(KJ)");
HEADER.put("fat", "总脂肪(g)");
HEADER.put("saturatedFattyAcid", "饱和脂肪酸(g)");
HEADER.put("carbohydrate", "总碳水化合物(g)");
HEADER.put("sugar", "糖(g)");
HEADER.put("protein", "总蛋白质(g)");
HEADER.put("theTotalSalt", "盐(g)");
HEADER.put("foodStatus", "当前状态");
HEADER.put("barCode", "条形码");
HEADER.put("auditMsg", "驳回理由");
HEADER.put("createAccount", "创建人账号");
HEADER.put("lastAuditAccount", "审核人账号");
HEADER.put("auditPassTime", "采纳时间");
HEADER.put("createTime", "创建时间");
}
@Override
public LinkedHashMap<String, String> getHeader() {
return HEADER;
}
}
package com.jiankangyouyi.cloud.basedata.model.excel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.LinkedHashMap;
/**
* 海外加工食品表Excel对象
*
* @author yangsongbo
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ForeignFoodProcessExcel implements BaseDataExcel {
private static final long serialVersionUID = 1L;
/**
* 食物ID
*/
private String foodId;
/**
* 食物图片URL
*/
private String imageUrl;
/**
* 中文名称
*/
private String foodNameZh;
/**
* 一级分类名称
*/
private String classify1Name;
/**
* 二级分类名称
*/
private String classify2Name;
/**
* 三级分类名称
*/
private String classify3Name;
/**
* 四级分类名称
*/
private String classfiy4Name;
/**
* 源语言
*/
private String foodSource;
/**
* 英文名称
*/
private String foodNameEn;
/**
* 德文名称
*/
private String foodNameGe;
/**
* 意文名称
*/
private String foodNameIt;
/**
* 食物状态: 0 已采纳 1 已驳回 2 草稿 3 待审核
*/
private String foodStatus;
/**
* 是否参与配餐: 是/否
*/
private String catering;
/**
* 支持的国家: 意大利、德国
*/
private String supportDomains;
/**
* 能量(Kcal)
*/
private String energy;
/**
* 蛋白质(g)
*/
private String protein;
/**
* 脂肪(g)
*/
private String fat;
/**
* 碳水化合物(g)
*/
private String carbohydrate;
/**
* 驳回理由
*/
private String auditMsg;
/**
* 创建人账号
*/
private String createAccount;
/**
* 审核人账号
*/
private String lastAuditAccount;
/**
* 采纳时间 yyyy-MM-dd HH:mm:ss
*/
private String auditPassTime;
/**
* 创建时间 yyyy-MM-dd HH:mm:ss
*/
private String createTime;
/**
* Excel头
*/
public static LinkedHashMap<String, String> HEADER;
static {
HEADER = new LinkedHashMap<>();
HEADER.put("foodId", "食物ID");
HEADER.put("imageUrl", "食物图片");
HEADER.put("foodNameZh", "中文名称");
HEADER.put("classify1Name", "一级分类");
HEADER.put("classify2Name", "二级分类");
HEADER.put("classify3Name", "三级分类");
HEADER.put("classfiy4Name", "四级分类");
HEADER.put("foodSource", "源语言");
HEADER.put("foodNameEn", "英文名称");
HEADER.put("foodNameGe", "德文名称");
HEADER.put("foodNameIt", "意文名称");
HEADER.put("foodStatus", "当前状态");
HEADER.put("catering", "参与配餐");
HEADER.put("supportDomains", "支持国家");
HEADER.put("energy", "能量(Kcal)");
HEADER.put("protein", "蛋白质(g)");
HEADER.put("fat", "脂肪(g)");
HEADER.put("carbohydrate", "碳水化合物(g)");
HEADER.put("auditMsg", "驳回理由");
HEADER.put("createAccount", "创建人账号");
HEADER.put("lastAuditAccount", "审核人账号");
HEADER.put("auditPassTime", "采纳时间");
HEADER.put("createTime", "创建时间");
}
@Override
public LinkedHashMap<String, String> getHeader() {
return HEADER;
}
}
package com.jiankangyouyi.cloud.basedata.model.excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class QuestionsAndAnswersExcel implements BaseDataExcel {
private String questionsAndAnswersId;
/**
* 一级分类
*/
private String classify1Value;
/**
* 二级分类
*/
private String classify2Value;
/**
* 三级分类
*/
private String classify3Value;
/**
* 问题
*/
private String question;
/**
* 标签
*/
private String tags;
/**
* 人群
*/
private String crowdValues;
/**
* 状态 [1:启用][2:停用]
*/
private String status;
/**
* 修改时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date adoptTime;
/**
* 创建时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
* 用户id
*/
private String accountId;
/**
* 采纳人
*/
private String adoptAccountId;
/**
* 答案
*/
private String answer;
/**
* 食材 必填项,可添加多个标签,标签个数最多不能超过10个,每个标签限制1-10个字,不能含有空格、标点符号、特殊符号
*/
private String foodMaterial;
/**
* 疾病
*/
private String disease;
/**
* 参考文献
*/
private String reference;
/**
* Excel头
*/
public static LinkedHashMap<String, String> HEADER;
static {
HEADER = new LinkedHashMap<>();
HEADER.put("questionsAndAnswersId", "知识ID");
HEADER.put("question", "问题名称");
HEADER.put("classify1Value", "一级分类");
HEADER.put("classify2Value", "二级分类");
HEADER.put("classify3Value", "三级分类");
HEADER.put("crowdValues", "人群分组");
HEADER.put("tags", "标签");
HEADER.put("status", "状态");
HEADER.put("accountId", "创建人");
HEADER.put("createTime", "创建时间");
HEADER.put("adoptTime", "采纳时间");
HEADER.put("adoptAccountId", "采纳人");
HEADER.put("foodMaterial", "食材");
HEADER.put("answer", "答案");
HEADER.put("reference", "参考文献");
HEADER.put("disease", "疾病");
}
@Override
public LinkedHashMap<String, String> getHeader() {
return HEADER;
}
}
package com.jiankangyouyi.cloud.basedata.model.message;
import com.jiankangyouyi.cloud.basedata.api.model.vo.food.RecognitionFoodVO;
import com.jiankangyouyi.cloud.basedata.model.vo.external.AiFoodRecognitionResVO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* 食物识别调用 MQ Message
*
* @author yangsongbo
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FoodRecognitionMessage implements Serializable {
/**
* 请求ID
*/
private String requestId;
/**
* 应用ID
*/
private String appId;
/**
* 创建日期 yyyy-MM-dd
*/
private String createDate;
/**
* 创建时间 yyyy-MM-dd HH:mm:ss
*/
private String createTime;
/**
* 食物识别图片Base64
*/
private String image;
/**
* 返回结果数,取值范围[1,5],为空默认为1,结果按照置信度倒序排列
*/
private Integer top;
/**
* 图片宽度
*/
private Integer imageWidth;
/**
* AI算法返回结果
*/
private AiFoodRecognitionResVO aiRecognitionRes;
/**
* 食物识别返回信息
*/
private List<RecognitionFoodVO> recognitionFoodList;
}
package com.jiankangyouyi.cloud.basedata.model.param.food;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;
/**
* 食物识别请求参数
*
* @author june
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class FoodDistinguishParam {
/**
* 图片地址
*/
private String foodImageUrl;
/**
* base 64
*/
private String foodImageBase64;
/**
* 返回几条
*/
private Integer top;
/**
* 是否全不为空
*
* @return 是否全部为空
*/
public boolean isAllNull() {
return StringUtils.isBlank(foodImageUrl) && StringUtils.isBlank(foodImageBase64);
}
}
package com.jiankangyouyi.cloud.basedata.model.query;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.food.component.ClassifyQuery;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List;
/**
* 底层库管理-食材列表查询对象
*
* @author yangsongbo
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ManagerFoodMaterialListQuery {
private static final long serialVersionUID = 1L;
/**
* 食物ID,非必输
*/
private String foodId;
/**
* 食物名称,模糊匹配,非必输
*/
private String foodName;
/**
* 食物状态: 0 启用 1 禁用 非必输
*/
private List<String> foodStatus;
/**
* 审核状态 0、草稿 1、待审核 2、已审核 3、已驳回
*/
private List<String> auditStatus;
/**
* 分类查询
*/
private List<ClassifyQuery> classifyQueryList;
/**
* 是否参与配餐: true/false,非必输
*/
private Boolean catering;
/**
* 推荐人群:字典大类02,字典子类0205,非必输
*/
private List<String> recommendCrowds;
/**
* 禁忌人群:字典大类02,字典子类0205,非必输
*/
private List<String> tabooCrowds;
/**
* 推荐人群 是否选择空选项
*/
@Builder.Default
private Boolean recommendCrowdsSelectNull = false;
/**
* 禁忌人群 是否选择空选项
*/
@Builder.Default
private Boolean tabooCrowdsSelectNull = false;
/**
* 富含营养素:字典大类02,字典子类0206,非必输
*/
private List<String> highContentNutrients;
/**
* 低量营养素:字典大类02,字典子类0218,非必输
*/
private List<String> lowContentNutrients;
/**
* 致敏原: 字典大类02,字典子类 0234
*/
private List<String> allergen;
/**
* 升糖指数等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知,非必输
*/
private List<String> giLevel;
/**
* 血糖负荷等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知,非必输
*/
private List<String> glLevel;
/**
* 嘌呤等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知,非必输
*/
private List<String> purineLevel;
/**
* 果糖含量等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知,非必输
*/
private List<String> fructoseLevel;
/**
* 性质:字典大类02,字典子类0225,非必输
*/
private List<String> natures;
/**
* 膳食特点:字典大类02,字典子类0214,非必输
*/
private List<String> foodSpecialties;
/**
* 修改开始时间,非必输
*/
private Date updateBeginTime;
/**
* 修改结束时间,非必输
*/
private Date updateEndTime;
/**
* 创建者账号
*/
private String createAccount;
/**
* 修改者账号
*/
private String updateAccount;
/**
* 采纳人账号
*/
private String adoptAccount;
/**
* 创建开始时间,yyyy-MM-dd HH:mm:ss
*/
private Date createBeginTime;
/**
* 创建结束时间,yyyy-MM-dd HH:mm:ss
*/
private Date createEndTime;
/**
* 采纳开始时间,yyyy-MM-dd HH:mm:ss
*/
private Date adoptBeginTime;
/**
* 采纳结束时间,yyyy-MM-dd HH:mm:ss
*/
private Date adoptEndTime;
/**
* 配餐版本号:字典大类02,字典子类0229,非必输
*/
private List<String> versions;
}
package com.jiankangyouyi.cloud.basedata.model.query;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.food.component.ClassifyQuery;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 底层库管理-包装食品列表查询对象
*
* @author yangsongbo
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ManagerFoodPackageListQuery implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 食物ID,非必输
*/
private String foodId;
/**
* 食物名称,模糊匹配,非必输
*/
private String foodName;
/**
* 食物状态: 0 启用 1 禁用 2 草稿,非必输
*/
private List<String> foodStatus;
/**
* 审核状态 0、草稿 1、待审核 2、已审核 3、已驳回
*/
private List<String> auditStatus;
/**
* 分类查询
*/
private List<ClassifyQuery> classifyQueryList;
/**
* 创建者账号
*/
private String createAccount;
/**
* 条形码
*/
private String barCode;
/**
* 修改开始时间,非必输
*/
private Date updateBeginTime;
/**
* 修改结束时间,非必输
*/
private Date updateEndTime;
/**
* 修改者账号
*/
private String updateAccount;
/**
* 采纳人账号
*/
private String adoptAccount;
/**
* 创建开始时间,yyyy-MM-dd HH:mm:ss
*/
private Date createBeginTime;
/**
* 创建结束时间,yyyy-MM-dd HH:mm:ss
*/
private Date createEndTime;
/**
* 采纳开始时间,yyyy-MM-dd HH:mm:ss
*/
private Date adoptBeginTime;
/**
* 采纳结束时间,yyyy-MM-dd HH:mm:ss
*/
private Date adoptEndTime;
}
package com.jiankangyouyi.cloud.basedata.model.query;
import com.jiankangyouyi.cloud.basedata.model.dto.manager.food.component.ClassifyQuery;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List;
/**
* 底层库管理-加工食品列表查询对象
*
* @author yangsongbo
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ManagerFoodProcessListQuery {
private static final long serialVersionUID = 1L;
/**
* 食物ID
*/
private String foodId;
/**
* 食物名称,模糊匹配,非必输
*/
private String foodName;
/**
* 食物状态: 0 启用 1 禁用 2 草稿,非必输
*/
private List<String> foodStatus;
/**
* 审核状态 0、草稿 1、待审核 2、已审核 3、已驳回
*/
private List<String> auditStatus;
/**
* 分类查询
*/
private List<ClassifyQuery> classifyQueryList;
/**
* 是否参与配餐: true/false,非必输
*/
private Boolean catering;
/**
* 适合餐别 字典大类 02 字典子类 0226
*/
private List<String> suitableForMeals;
/**
* 推荐人群:字典大类02,字典子类0205,非必输
*/
private List<String> recommendCrowds;
/**
* 禁忌人群:字典大类02,字典子类0205,非必输
*/
private List<String> tabooCrowds;
/**
* 推荐人群 是否选择空选项
*/
@Builder.Default
private Boolean recommendCrowdsSelectNull = false;
/**
* 禁忌人群 是否选择空选项
*/
@Builder.Default
private Boolean tabooCrowdsSelectNull = false;
/**
* 富含营养素:字典大类02,字典子类0206,非必输
*/
private List<String> highContentNutrients;
/**
* 低量营养素:字典大类02,字典子类0218,非必输
*/
private List<String> lowContentNutrients;
/**
* 致敏原: 字典大类02,字典子类 0234
*/
private List<String> allergen;
/**
* 升糖指数等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知,非必输
*/
private List<String> giLevel;
/**
* 血糖负荷等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知,非必输
*/
private List<String> glLevel;
/**
* 嘌呤等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知,非必输
*/
private List<String> purineLevel;
/**
* 果糖含量等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知,非必输
*/
private List<String> fructoseLevel;
/**
* 性质:字典大类02,字典子类0215,非必输
*/
private List<String> natures;
/**
* 膳食特点:字典大类02,字典子类0214,非必输
*/
private List<String> foodSpecialties;
/**
* 烹饪特点:字典大类02,字典子类0214,非必输
*/
private List<String> cookingSpecialties;
/**
* 口味 字典大类 02 字典子类 0201 , 非必输
*/
private List<String> tastes;
/**
* 主料食物ID
*/
private String majorFoodId;
/**
* 辅料食物ID
*/
private String minorFoodId;
/**
* 创建者账号
*/
private String createAccount;
/**
* 修改开始时间,非必输
*/
private Date updateBeginTime;
/**
* 修改结束时间,非必输
*/
private Date updateEndTime;
/**
* 修改者账号
*/
private String updateAccount;
/**
* 采纳人账号
*/
private String adoptAccount;
/**
* 创建开始时间,yyyy-MM-dd HH:mm:ss
*/
private Date createBeginTime;
/**
* 创建结束时间,yyyy-MM-dd HH:mm:ss
*/
private Date createEndTime;
/**
* 采纳开始时间,yyyy-MM-dd HH:mm:ss
*/
private Date adoptBeginTime;
/**
* 采纳结束时间,yyyy-MM-dd HH:mm:ss
*/
private Date adoptEndTime;
}
package com.jiankangyouyi.cloud.basedata.model.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FoodImageInfoVO {
private String retCode;
private List<Float> res_fea;
// private FoodImageInfoData resData;
//
// @Data
// @Builder
// @AllArgsConstructor
// @NoArgsConstructor
// public static class FoodImageInfoData implements Serializable {
// private static final long serialVersionUID = 1L;
//
// private String retCode;
//
// private List<Float> res_fea;
// }
}
package com.jiankangyouyi.cloud.basedata.model.vo;
import com.alibaba.fastjson.JSON;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* @description: 敏感词校验结果
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/10/26 2:19 下午
*/
@Data
public class SensitiveWordValidResDTO implements Serializable {
/**
* 是否通过检查
*/
private boolean pass=true;
/**
* 不合规的信息
*/
private String msg;
/**
* 发现的敏感词
*/
private List<String> sensitiveWords=new ArrayList<>();
/**
* 转化为简易敏感词话术
* @param fieldName 字段名称
* @return 话术
*/
public String toSimpleSensitiveWord(String fieldName){
if(pass){
return null;
}
return String.format("[%s]有[%s]问题,敏感词关键字%s",fieldName,this.getMsg(), JSON.toJSONString(this.getSensitiveWords()));
}
}
package com.jiankangyouyi.cloud.basedata.model.vo;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.jiankangyouyi.cloud.core.util.json.serialize.QiniuKeyToUrlJsonSerialize;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author :wangyalei
* @date :Created in 2021/4/25 1:40 下午
* @description:
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class UploadFileVO implements Serializable {
/**
* 文件key
*/
private String fileKey;
/**
* 文件地址
*/
@JsonSerialize(using = QiniuKeyToUrlJsonSerialize.class)
private String fileUrl;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 图像超分辨率
*
* @author : lvhaoran
* @date Date : 2022年07月14日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class AiImageSuperresolutionVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 图片
*/
private String image;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api;
import com.jiankangyouyi.cloud.basedata.model.bean.TexterrorcorrectBean;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* 文本纠错
*
* @author : lvhaoran
* @date Date : 2022年07月14日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class AiNlpTextCorrectVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 纠错结果
*/
private List<TexterrorcorrectBean> texterrorcorrectRes;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api;
import com.jiankangyouyi.cloud.basedata.model.bean.AiNlpTextRecheckingBean;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* 语句重复度计算
*
* @author : lvhaoran
* @date Date : 2022年07月14日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class AiNlpTextRecheckingVO implements Serializable {
private static final long serialVersionUID = 1L;
private List<AiNlpTextRecheckingBean> recheckRes;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api;
import lombok.Data;
import lombok.experimental.FieldNameConstants;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.List;
/**
* @description: 文章详情
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/10/25 9:19 上午
*/
@Data
@FieldNameConstants
public class ArticleListVO implements Serializable {
/**
* 标签-翻译好的直接展示即可
*/
private List<String> tagVals;
/**
* 1级分类name
*/
private String clsName1;
/**
* 2级分类name
*/
private String clsName2;
/**
* 文章图片地址
*/
//@JsonSerialize(using = QiniuKeyToUrlJsonSerialize.class)
// private String articleImgUrl;
/**
* 文章id
*/
private String articleId;
/**
* 主标题
*/
@NotBlank(message = "mainTitle not null")
@Size(message = "mainTitle max 50", min = 1, max = 50)
private String mainTitle;
/**
* 副标题
*/
@Size(message = "halfTitle max 50", max = 100)
private String halfTitle;
/**
* 文章内容1
*/
@NotBlank(message = "content not null")
private String content;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.component.ServiceArea;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.component.ServiceValue;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author :wangyalei
* @date :2022/2/15 11:53 上午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class AssessmentCoverConfigInfoVO {
/**
* 服务简介
*/
private String serviceProfile;
/**
* 服务范围
*/
private List<ServiceArea> serviceAreas;
/**
* 服务价值
*/
private List<ServiceValue> serviceValues;
/**
* 提示
*/
private String reminder;
/**
* 参考文献
*/
private List<String> documentations;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 体重指数BMI计算
*
* @author : lvhaoran
* @date Date : 2022年01月18日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CalculationBmiAdviceVO {
/**
* 话术
*/
private String advice;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 理想体重
*
* @author : lvhaoran
* @date Date : 2022年01月19日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CalculationIdealWeightAdviceVO {
/**
* 话术
*/
private String advice;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 如何减掉1公斤?
*
* @author : lvhaoran
* @date Date : 2022年01月19日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CalculationSubtractionWeightAdviceVO {
/**
* 话术
*/
private String advice;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 腰臀比计算
*
* @author : lvhaoran
* @date Date : 2022年01月19日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CalculationWaistHipRatioAdviceVO {
/**
* 话术
*/
private String advice;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api;
import com.jiankangyouyi.cloud.basedata.model.bean.ActionVideoBean;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* TODO:功能描述
*
* @author : lvhaoran
* @date Date : 2022年04月26日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ExerciseModernActionVO implements Serializable {
/**
* 动作编号
*/
private String actionId;
/**
* 动作名称
*/
private String actionName;
/**
* 动作封面图地址
*/
private String actionImageUrl;
/**
* 训练肌群/锻炼部位
*/
private List<String> trainPositions;
/**
* 动作讲解
*/
private List<String> actionExplains;
/**
* 器械名称
*/
private List<String> equipments;
/**
* 注意事项
*/
private List<String> attentions;
/**
* 动作分类
*/
private String actionClassification;
/**
* 动作难度
*/
private String actionDifficulty;
/**
* 动作体位
*/
private String actionPosition;
/**
* 动作视频格式
*/
private ActionVideoBean actionVideo;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api;
import com.jiankangyouyi.cloud.basedata.model.bean.FeaturedRecipesTagBean;
import com.jiankangyouyi.cloud.core.entity.page.PageResult;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* 精选食谱标签
*
* @author : lvhaoran
* @date Date : 2022年08月04日
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class FeaturedRecipesTagVO implements Serializable {
private PageResult.PageInfo pageInfo;
private List<FeaturedRecipesTagBean> featuredRecipesTagList;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api;
import com.jiankangyouyi.cloud.basedata.model.bean.MealInfoBean;
import com.jiankangyouyi.cloud.basedata.model.bean.RecipesTagBean;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
* 精选食谱
*
* @author : lvhaoran
* @date Date : 2022年08月04日
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class FeaturedRecipesVO implements Serializable {
private String tagName;
private String imageUrl;
private String describe;
private String translation;
private List<RecipesTagBean> recipesTags;
private String recordDate;
/**
* 热量
*/
private Integer energy;
/**
* 蛋白质,单位 g
*/
private BigDecimal protein;
/**
* 脂肪,单位 g
*/
private BigDecimal fat;
/**
* 碳水化合物,单位 g
*/
private BigDecimal carbohydrate;
/**
* 蛋白质NRV
*/
private BigDecimal proteinNrv;
/**
* 脂肪NRV
*/
private BigDecimal fatNrv;
/**
* 碳水化合物NRV
*/
private BigDecimal carbohydrateNrv;
/**
* 推荐早餐
*/
private MealInfoBean breakfastRes;
/**
* 推荐早加餐
*/
private MealInfoBean breakfastExtraRes;
/**
* 推荐午餐
*/
private MealInfoBean lunchRes;
/**
* 推荐午加餐
*/
private MealInfoBean lunchExtraRes;
/**
* 推荐晚餐
*/
private MealInfoBean supperRes;
/**
* 推荐晚加餐
*/
private MealInfoBean supperExtraRes;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api;
import com.jiankangyouyi.cloud.basedata.model.vo.api.component.FoodInfo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* 食物详情工具
*
* @author : lvhaoran
* @date Date : 2022年05月13日
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class FoodDetailToolVO implements Serializable {
/**
* 3级分类
*/
private String classification3;
/**
* 4级分类
*/
private String classification4;
/**
* 分类描述
*/
private String classificationDescribe;
/**
* 食物列表
*/
private List<FoodInfo> foodList;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api;
import com.jiankangyouyi.cloud.basedata.api.model.entity.foodv4.component.ExtensionUnit;
import com.jiankangyouyi.cloud.basedata.api.model.entity.foodv4.component.MajorMinorMaterial;
import lombok.*;
import javax.validation.Valid;
import java.math.BigDecimal;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class FoodNameListVO {
/**
* 食物ID
*/
private String foodId;
/**
* 主料信息
*/
@Valid
private List<MajorMinorMaterial> majorMaterials;
/**
* 辅料信息
*/
@Valid
private List<MajorMinorMaterial> minorMaterials;
/**
* 食物图片
*/
private String imageUrl;
/**
* 食物名称
*/
private String foodName;
/**
* 单位
*/
private String unit;
/**
* 关联名称
*/
private List<String> relationNames;
/**
* 扩展单位
*/
private List<ExtensionUnit> extensionUnits;
/**
* 食物描述
*/
private String describe;
/* 基础数据 begin */
/**
* 热量(kcal),按每100克计算
*/
private int energy ;
/**
* 蛋白质(g)
*/
private BigDecimal protein;
/**
* 脂肪(g)
*/
private BigDecimal fat;
/**
* 碳水化合物(g)
*/
private BigDecimal carbohydrate;
/**
* 水分
*/
private BigDecimal water;
/**
* 胆固醇(mg)
*/
private BigDecimal cholesterol;
/**
* 可食部
*/
private int ediblePart;
/**
* 不溶性纤维(g)
*/
private BigDecimal insolubleFiber;
/* 基础数据 end */
/* 水溶性 维生素类 begin */
/**
* 维生素B3(烟酸)(mg)
*/
private BigDecimal vitaminB3;
/**
* 维生素B5(泛酸)(mg)
*/
private BigDecimal vitaminB5;
/**
* 维生素B1(mg)
*/
private BigDecimal vitaminB1;
/**
* 维生素B2(mg)
**/
private BigDecimal vitaminB2;
/**
* 维生素B9(叶酸)(mg)
*/
private BigDecimal vitaminB9;
/**
* 维生素C(mg)
*/
private BigDecimal vitaminC;
/**
* 维生素B6 (mg)
*/
private BigDecimal vitaminB6;
/**
* 维生素B12 (μg)
*/
private BigDecimal vitaminB12;
/* 水溶性 维生素类 end */
/* 维生素类 脂溶性 begin */
/**
* 维生素A(视黄醇)(μg)
*/
private BigDecimal vitaminA;
/**
* 维生素D(μg)
*/
private BigDecimal vitaminD;
/**
* 维生素E(mg)
*/
private BigDecimal vitaminE;
/**
* 维生素K(mg)
*/
private BigDecimal vitaminK;
/* 维生素类 脂溶性 end */
/* 矿物质类 宏量元素 begin */
/**
* 钙(mg)
*/
private BigDecimal calcium;
/**
* 磷(mg
*/
private BigDecimal phosphorus;
/**
* 钾(mg)
*/
private BigDecimal potassium;
/**
* 钠(mg)
*/
private BigDecimal sodium;
/**
* 镁(mg)
*/
private BigDecimal magnesium;
/* 矿物质类 宏量元素 end */
/* 矿物质类 微量元素 begin */
/**
* 铜(mg)
*/
private BigDecimal copper;
/**
* 铁(mg)
*/
private BigDecimal iron;
/**
* 锌(mg)
*/
private BigDecimal zinc;
/**
* 锰(mg)
*/
private BigDecimal manganese;
/**
* 碘(μg)
*/
private BigDecimal iodine;
/**
* 铬(μg)
*/
private BigDecimal chromium;
/**
* 氟(μg)
*/
private BigDecimal fluorine;
/**
* 硒(μg)
*/
private BigDecimal selenium;
/* 矿物质类 微量元素 end */
/* 氨基酸类 必须 begin */
/**
* 赖氨酸(mg)
*/
private BigDecimal lysine;
/**
* 色氨酸(mg)
*/
private BigDecimal tryptophan;
/**
* 缬氨酸(mg)
*/
private BigDecimal valine;
/**
* 苯丙氨酸(mg)
*/
private BigDecimal phenylalanine;
/**
* 苏氨酸
*/
private BigDecimal threonine;
/**
* 异亮氨酸
*/
private BigDecimal isoleucine;
/**
* 亮氨酸
*/
private BigDecimal leucine;
/**
* 蛋氨酸(mg)
*/
private BigDecimal methionine;
/* 氨基酸类 必须 end */
/* 氨基酸类 非必须 begin */
/**
* 精氨酸(mg)
*/
private BigDecimal arginine;
/**
* 谷氨酸(mg)
*/
private BigDecimal glutamicAcid;
/**
* 组氨酸(mg)
*/
private BigDecimal histidine;
/**
* 丙氨酸(mg)
*/
private BigDecimal alanine;
/**
* 甘氨酸(mg)
*/
private BigDecimal glycine;
/**
* 脯氨酸(mg)
*/
private BigDecimal proline;
/**
* 丝氨酸(mg)
*/
private BigDecimal serine;
/**
* 天冬氨酸(mg)
*/
private BigDecimal aspartic;
/* 氨基酸类 非必须 end */
/* 脂肪酸类 begin */
/**
* 总脂肪酸(g)
*/
private BigDecimal totalFattyAcid;
/**
* 饱和脂肪酸(g)
*/
private BigDecimal saturatedFattyAcid;
/**
* 单不饱和脂肪酸(g)
*/
private BigDecimal monounsaturatedFattyAcid;
/**
* 多不饱和脂肪酸(g)
*/
private BigDecimal polyunsaturatedFattyAcid;
/**
* 单不饱和脂肪酸/总脂肪酸(%)
*/
private BigDecimal mfaPercent;
/**
* 多不饱和脂肪酸/总脂肪酸(%)
*/
private BigDecimal pfaPercent;
/**
* 饱和脂肪酸/总脂肪酸(%)
*/
private BigDecimal sfaPercent;
/* 脂肪酸类 end */
/* 植物化学物/其他 begin */
/**
* 胡萝卜素(μg)
*/
private BigDecimal carotene;
/**
* 大豆异黄酮(mg)
*/
private BigDecimal totalIsoflavone;
/**
* GI
*/
private BigDecimal gi;
/* 植物化学物/其他 end */
/**
* 人群食物可不可以吃标签
*/
// private List<FoodLabelBean> label;
// /**
// * 嘌呤
// */
// private BigDecimal purine;
//
// /**
// * 灰分
// */
// private BigDecimal ash;
//
// /**
// * 标签
// */
// private List<String> sign;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api;
import com.jiankangyouyi.cloud.basedata.model.vo.api.component.FoodRankListInfo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* 食物排行榜VO
*
* @author yangsongbo
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FoodRankListVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 指定的营养素
* <p>
* {@link com.jiankangyouyi.cloud.basedata.enums.food.FoodRankListNutrientEnum}
*/
private String nutrient;
/**
* 方向: LOW 低含量排行 HIGH 高含量排行
* <p>
* {@link com.jiankangyouyi.cloud.basedata.enums.food.FoodRankListDirectionEnum}
*/
private String direction;
/**
* 食物排行榜Size
*/
private Integer rankListSize;
/**
* 食物排行榜
*/
private List<FoodRankListInfo> rankList;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class GadgetsVO {
private List<GadgetsData> list;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public static class GadgetsData{
/**
* 名称
*/
private String name;
/**
* 名称
*/
private String imageUrl;
/**
* 规则
*/
private String rule;
private List<GadgetsData> list;
private String menuId;
/**
* 级别
*
*/
private String level;
private String content;
private Integer sort;
}
}
package com.jiankangyouyi.cloud.basedata.model.vo.api;
import com.jiankangyouyi.cloud.basedata.model.bean.SportMetreBean;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
import java.util.Map;
/**
* 运动梅脱值列表
*
* @author : lvhaoran
* @date Date : 2022年01月19日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class LoadSportMetreVO {
/**
* 运动梅脱值列表
*/
private Map<String, List<SportMetreBean>> sportMetres;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 七牛URL刷新
*
* @author yangsongbo
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class QiniuUrlRefreshVO {
/**
* 请求中传入的URL
*/
private String url;
/**
* 刷新后的URL
*/
private String refreshUrl;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api.component;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.jiankangyouyi.cloud.core.util.json.serialize.QiniuKeyToUrlJsonSerialize;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Transient;
/**
* 食物详情
*
* @author : lvhaoran
* @date Date : 2022年05月13日
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FoodInfo {
/**
* 食物id
*/
private String foodId;
/**
* 食物名称
*/
private String foodName;
/**
* 食物图片
*/
@Transient
@JsonSerialize(using = QiniuKeyToUrlJsonSerialize.class)
private String imageUrl;
/**
* 值
*/
private String value;
/**
* 食物描述
*/
private String describe;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api.component;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.jiankangyouyi.cloud.core.util.json.serialize.QiniuKeyToUrlJsonSerialize;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
* 食物排行榜数据
*
* @author yangsongbo
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FoodRankListInfo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 食物ID
*/
private String foodId;
/**
* 食物名称
*/
private String foodName;
/**
* 食物关联名称
*/
private List<String> relationNames;
// /**
// * 一级分类名称
// */
// private String classify1Name;
/**
* 食物图片
*/
@JsonSerialize(using = QiniuKeyToUrlJsonSerialize.class)
private String imageUrl;
/**
* 每100g/ml营养素含量
*/
private BigDecimal value;
/**
* 单位
*/
private String unit;
/**
* 可食部
*/
private Integer edible;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api.component;
import com.jiankangyouyi.cloud.basedata.api.model.entity.knowledge.KnowledgeQuestion;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class KnowledgeQuestionData {
/**
* 问题id
*/
private String questionId;
/**
* 问题分类
*/
private String questionCategory;
/**
* 标签
*
*/
private List<String> tags;
/**
* 问题对象
*/
private KnowledgeQuestion question;
/**
*选择提类型 1 单选 2 多选
*/
private String optionFlag;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api.component;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.jiankangyouyi.cloud.core.util.json.serialize.QiniuKeyToUrlJsonSerialize;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 描述
*
* @author qxy
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class PrivateKitchenData {
/**
* 食物ID
*/
private String foodId;
/**
* 食物图片
*/
@JsonSerialize(using = QiniuKeyToUrlJsonSerialize.class)
private String imageUrl;
/**
* 食物名称
*/
private String foodName;
/**
* 热量(kcal),按每100克计算
*/
private Integer energy ;
/**
* 标准单位 (g/ml)
*/
private String unit;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api.food;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class DietaryStructureVO {
/**
* 膳食名称
*/
private String dietaryStructureName;
/**
* 营养素 质量
*/
private BigDecimal dietaryStructureQuality;
/**
* 营养素占比
*/
private String dietaryStructureProportion;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api.food;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
* 细粒度食物识别结果
*
* @author lvqidong
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FoodDistinguishVO implements Serializable {
/**
* 食物ID
*/
private String foodId;
/**
* 食物置信度
*/
private BigDecimal confidence;
/**
* 饮食结构
*/
private List<DietaryStructureVO> dietaryStructureList;
/**
* 食物基本详情
*/
private FoodNutrientInfoResponseVO foodQueryResponseDTO;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api.food;
import com.jiankangyouyi.cloud.basedata.api.model.entity.foodv4.component.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
* @description: 食物营养素信息响应dto
* @author: zyj
* @email: zhaoyujie@jiankangyouyi.com
* @date: 2021/7/27 10:19 上午
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class FoodNutrientInfoResponseVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 食物id 唯一
*/
private String foodId;
/**
* 食物名称
*/
private String foodName;
/**
* 食物图片
*/
private String foodImg;
/**
* 提供的总能量 kcal
*/
private Integer totalEnergy;
/**
* 每100g包含的能量 kcal
*/
private Integer energy;
/**
* 每100g食物 碳水化合物含量 g
*/
private BigDecimal carbohydrate;
/**
* 每100g食物 蛋白质含量 g
*/
private BigDecimal protein;
/**
* 每100g食物 脂肪含量 g
*/
private BigDecimal fat;
/**
* 碳水化合物热量占比
*/
private BigDecimal carbohydrateRatio;
/**
* 蛋白质含量热量占比
*/
private BigDecimal proteinRatio;
/**
* 脂肪含量占比
*/
private BigDecimal fatRatio;
/**
* 主要组成食材
*/
private List<FoodConstituteInfo> majorMaterials;
/**
* 次要组成材料
*/
private List<FoodConstituteInfo> minorMaterials;
/**
* 烹饪步骤
*/
private List<CookingStep> cookingSteps;
// /**
// * 维生素信息g
// */
// private BigDecimal vitamin;
// /***
// * 矿物质信息g
// */
// private BigDecimal mineral;
// /**
// * 氨基酸信息g
// */
// private BigDecimal aminoAcid;
// /**
// * 脂肪酸信息g
// */
// private BigDecimal fattyAcid;
// /**
// * 植物化学物信息g
// */
// private BigDecimal phytochemical;
/**
* 维生素信息
*/
private Vitamin vitaminInfo;
/***
* 矿物质信息
*/
private Mineral mineralInfo;
/**
* 氨基酸信息
*/
private AminoAcid aminoAcidInfo;
/**
* 脂肪酸信息
*/
private FattyAcid fattyAcidInfo;
/**
* 植物化学物信息
*/
private Phytochemical phytochemicalInfo;
/**
* 食物基本组成信息
*/
private FoodBasicCompositionInfo foodBasicCompositionInfo;
/**
* 食物基本组成信息
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class FoodBasicCompositionInfo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 热量
*/
private Integer energy;
/**
* 蛋白质
*/
private BigDecimal protein;
/**
* 脂肪
*/
private BigDecimal fat;
/**
* 碳水化合物
*/
private BigDecimal carbohydrate;
/**
* 水分
*/
private BigDecimal water;
/**
* 不溶性纤维
*/
private BigDecimal insolubleFiber;
/**
* 可溶性纤维
*/
private BigDecimal solubilityFiber;
/**
* 膳食纤维
*/
private BigDecimal dietaryFiber;
/**
* 胆固醇
*/
private BigDecimal cholesterol;
/**
* 嘌呤
*/
private BigDecimal purine;
/**
* GI 值
*/
private BigDecimal gi;
/**
* 灰分
*/
private BigDecimal ash;
/**
* 可食部
*/
private Integer edible;
}
/**
* 食物组成信息
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class FoodConstituteInfo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 食材id
*/
private String foodId;
/**
* 食材名称
*/
private String foodName;
/**
* 食物图片地址
*/
private String foodImg;
/**
* 克数
*/
private BigDecimal gram;
}
}
package com.jiankangyouyi.cloud.basedata.model.vo.api.food;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 食物识别结果
*
* @author june
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class RecognitionFoodResultVo {
/**
* 请求的图片url
*/
private String foodUrl;
/**
* 识别出来的食物列表
*/
private List<FoodDistinguishVO> foodList;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api.gadgets;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.jiankangyouyi.cloud.basedata.api.model.entity.foodv4.component.ExtensionUnit;
import com.jiankangyouyi.cloud.basedata.api.model.entity.foodv4.component.MajorMinorMaterial;
import com.jiankangyouyi.cloud.core.util.json.serialize.NumberStripTrailingZerosJsonSerialize;
import com.jiankangyouyi.cloud.core.util.json.serialize.QiniuKeyToUrlJsonSerialize;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.Valid;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import java.math.BigDecimal;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class FoodPkVO {
/**
* 食物ID
*/
private String foodId;
/**
* 食物图片
*/
@JsonSerialize(using = QiniuKeyToUrlJsonSerialize.class)
private String imageUrl;
/**
* 食物名称
*/
private String foodName;
/* 基础数据 begin */
/**
* 热量(kcal),按每100克计算
*/
private Integer energy ;
/**
* 蛋白质(g)
*/
private BigDecimal protein;
/**
* 脂肪(g)
*/
private BigDecimal fat;
/**
* 碳水化合物(g)
*/
private BigDecimal carbohydrate;
/**
* 水分
*/
private BigDecimal water;
/**
* 胆固醇(mg)
*/
private BigDecimal cholesterol;
/**
* 可食部
*/
private int ediblePart;
/**
* 不溶性纤维(g)
*/
private BigDecimal insolubleFiber;
/**
*膳食纤维(g)
*/
private BigDecimal dietaryFiber;
/**
* 嘌呤(mg)
*/
private BigDecimal purine;
/**
* 灰分(g)
*/
private BigDecimal ash;
/* 基础数据 end */
/* 水溶性 维生素类 begin */
/**
* 维生素B3(烟酸)(mg)
*/
private BigDecimal vitaminB3;
/**
* 维生素B5(泛酸)(mg)
*/
private BigDecimal vitaminB5;
/**
* 维生素B1(mg)
*/
private BigDecimal vitaminB1;
/**
* 维生素B2(mg)
**/
private BigDecimal vitaminB2;
/**
* 维生素B9(叶酸)(mg)
*/
private BigDecimal vitaminB9;
/**
* 维生素C(mg)
*/
private BigDecimal vitaminC;
/**
* 维生素B6 (mg)
*/
private BigDecimal vitaminB6;
/**
* 维生素B12 (μg)
*/
private BigDecimal vitaminB12;
/**
* 维生素B7 (μg)
*/
private BigDecimal vitaminH;
/* 水溶性 维生素类 end */
/* 维生素类 脂溶性 begin */
/**
* 维生素A(视黄醇)(μg)
*/
private BigDecimal vitaminA;
/**
* 维生素D(μg)
*/
private BigDecimal vitaminD;
/**
* 维生素E(mg)
*/
private BigDecimal vitaminE;
/**
* 维生素K(mg)
*/
private BigDecimal vitaminK;
/* 维生素类 脂溶性 end */
/* 矿物质类 宏量元素 begin */
/**
* 钙(mg)
*/
private BigDecimal calcium;
/**
* 磷(mg
*/
private BigDecimal phosphorus;
/**
* 钾(mg)
*/
private BigDecimal potassium;
/**
* 钠(mg)
*/
private BigDecimal sodium;
/**
* 镁(mg)
*/
private BigDecimal magnesium;
/* 矿物质类 宏量元素 end */
/* 矿物质类 微量元素 begin */
/**
* 铜(mg)
*/
private BigDecimal copper;
/**
* 铁(mg)
*/
private BigDecimal iron;
/**
* 锌(mg)
*/
private BigDecimal zinc;
/**
* 锰(mg)
*/
private BigDecimal manganese;
/**
* 碘(μg)
*/
private BigDecimal iodine;
/**
* 铬(μg)
*/
private BigDecimal chromium;
/**
* 氟(μg)
*/
private BigDecimal fluorine;
/**
* 硒(μg)
*/
private BigDecimal selenium;
/* 矿物质类 微量元素 end */
/* 氨基酸类 必须 begin */
/**
* 胱氨酸
*/
private BigDecimal cysteine;
/**
* 酪氨酸(mg)
*/
private BigDecimal tyrosine;
/**
* 赖氨酸(mg)
*/
private BigDecimal lysine;
/**
* 色氨酸(mg)
*/
private BigDecimal tryptophan;
/**
* 缬氨酸(mg)
*/
private BigDecimal valine;
/**
* 苯丙氨酸(mg)
*/
private BigDecimal phenylalanine;
/**
* 苏氨酸
*/
private BigDecimal threonine;
/**
* 异亮氨酸
*/
private BigDecimal isoleucine;
/**
* 亮氨酸
*/
private BigDecimal leucine;
/**
* 蛋氨酸(mg)
*/
private BigDecimal methionine;
/* 氨基酸类 必须 end */
/* 氨基酸类 非必须 begin */
/**
* 精氨酸(mg)
*/
private BigDecimal arginine;
/**
* 谷氨酸(mg)
*/
private BigDecimal glutamicAcid;
/**
* 组氨酸(mg)
*/
private BigDecimal histidine;
/**
* 丙氨酸(mg)
*/
private BigDecimal alanine;
/**
* 甘氨酸(mg)
*/
private BigDecimal glycine;
/**
* 脯氨酸(mg)
*/
private BigDecimal proline;
/**
* 丝氨酸(mg)
*/
private BigDecimal serine;
/**
* 天冬氨酸(mg)
*/
private BigDecimal aspartic;
/* 氨基酸类 非必须 end */
/* 脂肪酸类 begin */
/**
* 总脂肪酸(g)
*/
private BigDecimal totalFattyAcid;
/**
* 饱和脂肪酸(g)
*/
private BigDecimal saturatedFattyAcid;
/**
* 单不饱和脂肪酸(g)
*/
private BigDecimal monounsaturatedFattyAcid;
/**
* 多不饱和脂肪酸(g)
*/
private BigDecimal polyunsaturatedFattyAcid;
/**
* 单不饱和脂肪酸/总脂肪酸(%)
*/
private BigDecimal mfaPercent;
/**
* 多不饱和脂肪酸/总脂肪酸(%)
*/
private BigDecimal pfaPercent;
/**
* 饱和脂肪酸/总脂肪酸(%)
*/
private BigDecimal sfaPercent;
/* 脂肪酸类 end */
/* 植物化学物/其他 begin */
/**
* 胡萝卜素(μg)
*/
private BigDecimal carotene;
/**
* 大豆异黄酮(mg)
*/
private BigDecimal totalIsoflavone;
/**
* GI
*/
private BigDecimal gi;
/* 植物化学物/其他 end */
/**
* 人群食物可不可以吃标签
*/
// private List<FoodLabelBean> label;
// /**
// * 嘌呤
// */
// private BigDecimal purine;
//
// /**
// * 灰分
// */
// private BigDecimal ash;
//
// /**
// * 标签
// */
// private List<String> sign;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api.gadgets;
import com.jiankangyouyi.cloud.basedata.model.vo.api.component.KnowledgeQuestionData;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class KnowledgeChallengesVO {
/**
* 问题对象
*/
private KnowledgeQuestionData knowledgeQuestionData;
/**
* 用户选择的选项编号 有可能是多选题 所以采用集合
*/
private List<String> userOptionCodes;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api.gadgets;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 描述
*
* @author qxy
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class NutritionPkVO {
/**
* 食物a
*/
private FoodPkVO foodA;
/**
* 食物b
*/
private FoodPkVO foodB;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api.gadgets;
import com.jiankangyouyi.cloud.basedata.model.vo.api.component.PrivateKitchenData;
import com.jiankangyouyi.cloud.core.entity.page.PageResult;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class PrivateKitchenVO {
/**
* 分页信息
*/
private PageResult.PageInfo pageInfo;
/**
* 返回集合
*/
private List<PrivateKitchenData> list;
}
package com.jiankangyouyi.cloud.basedata.model.vo.api.gadgets;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 描述
*
* @author qxy
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class TopImageVO {
/**
* 名称
*/
private String imageUrl;
}
package com.jiankangyouyi.cloud.basedata.model.vo.external;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 调用AI算法进行细粒度食物识别返回结果
*
* @author yangsongbo
*/
@Data
public class AiFoodRecognitionResVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 处理码
*/
private String retCode;
/**
* 处理信息
*/
private String retInfo;
/**
* 当前时间
*/
private String curTime;
/**
* 请求序列号
*/
private String sn;
/**
* 识别结果
*/
private List<AiRecognitionFoodVO> topFoodList;
/**
* AI中心食物识别结果
*/
@Data
public static class AiRecognitionFoodVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 食物ID
*/
private String foodId;
/**
* 食物名称
*/
private String foodName;
/**
* 置信度
*/
private Float confidence;
}
}
package com.jiankangyouyi.cloud.basedata.model.vo.external;
import lombok.Data;
import java.io.Serializable;
/**
* 图像超分辨率
*
* @author : lvhaoran
* @date Date : 2022年07月14日
*/
@Data
public class AiImageSuperresolutionResVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 处理码
*/
private String retCode;
/**
* 处理信息
*/
private String retInfo;
/**
* 错误信息
*/
private String error;
/**
* 当前时间
*/
private String curTime;
/**
* 请求序列号
*/
private String sn;
/**
* 图片
*/
private String image;
}
package com.jiankangyouyi.cloud.basedata.model.vo.external;
import com.jiankangyouyi.cloud.basedata.model.bean.TexterrorcorrectBean;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 文本纠错
*
* @author : lvhaoran
* @date Date : 2022年07月14日
*/
@Data
public class AiNlpTextCorrectResVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 处理码
*/
private String retCode;
/**
* 处理信息
*/
private String retInfo;
/**
* 当前时间
*/
private String curTime;
/**
* 请求序列号
*/
private String sn;
/**
* 纠错结果
*/
private List<TexterrorcorrectBean> texterrorcorrectRes;
}
package com.jiankangyouyi.cloud.basedata.model.vo.external;
import com.jiankangyouyi.cloud.basedata.model.bean.RecheckResInfo;
import lombok.Data;
import java.io.Serializable;
import java.util.Map;
/**
* 语句重复度计算
*
* @author : lvhaoran
* @date Date : 2022年07月14日
*/
@Data
public class AiNlpTextRecheckingResVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 处理码
*/
private String retCode;
/**
* 处理信息
*/
private String retInfo;
/**
* 当前时间
*/
private String curTime;
/**
* 请求序列号
*/
private String sn;
private Map<String, RecheckResInfo> recheckRes;
/* public static void main(String[] args) {
String json = "{\n" +
" \"resData\": \"{\\\"retCode\\\": \\\"SUCCESS\\\", \\\"retInfo\\\": \\\"处理成功\\\", \\\"curTime\\\": \\\"2022-07-14 15:50:33\\\", \\\"sn\\\": \\\"a3f08a3c034911ed95b4ac1f6b22e430\\\", \\\"recheckRes\\\": {\\\"620c74b91260f749f6b44f25\\\": {\\\"rq\\\": [[0.9861710071563721, \\\"620c74b91260f749f6b44f26\\\", \\\"怎样储存香菜?\\\"], [0.0, \\\"620c74b91260f749f6b44f28\\\", \\\"怎样储存豌豆?\\\"], [0.0, \\\"620c74b91260f749f6b44f27\\\", \\\"怎样储存西瓜?\\\"]], \\\"ra\\\": [[0.980500340461731, \\\"620c74b91260f749f6b44f26\\\", \\\"储存香菜前,最好将香菜根部切除,择去黄叶,摊开晾晒1到2天,编成香肠一般粗细的长辫子,挂在阴凉通风处晾干。或选带根的香菜,将黄叶摘掉,洗净后把香菜逐颗挂在细绳上晾干,然后将香菜取下放在容器内贮藏。\\\"], [0.0, \\\"620c74b91260f749f6b44f28\\\", \\\"储存豌豆时,应该注意防虫。在储存前可以将豌豆倒入沸水中,搅拌半分钟,使豆子表面的虫子和虫卵被杀死,然后立即倒入冷水中,再将豆子放在阳光下暴晒干透,装入罐中,在表面放几瓣大蒜。运用此种防虫方法,豌豆的发芽力和食用均不受到影响,而且存放时间也大大延长。\\\"], [0.0, \\\"620c74b91260f749f6b44f27\\\", \\\"西瓜的储存只需放在阴凉干燥处,避免日晒和避免水分过大即可,不必放在冰箱中储存。\\\"]]}, \\\"62287035f7528350f312429d\\\": {\\\"rq\\\": [], \\\"ra\\\": []}}}\"\n" +
"}";
String result = (String) JsonUtils.fromJson(json).get("resData");
System.out.println(result);
RecheckRes recheckRes = JsonUtils.fromJson(result, RecheckRes.class);
System.out.println(JsonUtils.toJson(recheckRes));
}*/
}
package com.jiankangyouyi.cloud.basedata.model.vo.external;
import lombok.Data;
import java.io.Serializable;
/**
* 文本纠错
*
* @author : lvhaoran
* @date Date : 2022年07月14日
*/
@Data
public class AiResVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
private String resData;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 人群类型列表
* @author :wangyalei
* @date :2022/8/4 4:16 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class CrowdTypeListVO {
/**
* 人群类型
*/
private List<CrowdTypeInfo> crowdTypes;
/**
* 人群类型
*/
@Data
@Builder
public static class CrowdTypeInfo {
private String crowdCode;
private String crowdName;
private List<RiskLevel> riskLevels;
/**
* 风险等级
*/
@Data
@Builder
public static class RiskLevel {
private String crowdCode;
private Integer riskLevelCode;
private String riskLevelName;
}
}
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.component.ServiceArea;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.component.ServiceValue;
import com.jiankangyouyi.cloud.core.entity.page.PageResult;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
* @author :wangyalei
* @date :2022/2/14 2:09 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class HealthAssessmentCoverConfigListPageVO {
/**
* 分页信息
*/
private PageResult.PageInfo pageInfo;
/**
* 封面信息
*/
private List<CoverConfigInfo> list;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public static class CoverConfigInfo {
/**
* 1、启用 2、禁用
*/
private String validStatus;
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date updateTime;
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date createTime;
/**
* 封面id
*/
@Indexed(unique = true)
private String coverId;
/**
* 应用 id
*/
private String appId;
/**
* 应用名称
*/
private String appName;
/**
* 封面类型 {@link com.jiankangyouyi.cloud.basedata.enums.HealthAssessmentCoverConfigEnum}
*/
private String coverType;
/**
* 服务简介
*/
private String serviceProfile;
/**
* 服务范围
*/
private List<ServiceArea> serviceAreas;
/**
* 服务价值
*/
private List<ServiceValue> serviceValues;
/**
* 提示
*/
private String reminder;
}
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jiankangyouyi.cloud.core.entity.page.PageResult;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List;
/**
* @author :wangyalei
* @date :2022/8/4 5:49 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class HealthTipListPageVO {
/**
* 分页信息
*/
private PageResult.PageInfo pageInfo;
/**
* 小贴士列表信息
*/
private List<TipInfo> tipList;
/**
* 小贴士信息
*/
@Data
@Builder
public static class TipInfo {
/**
* 小贴士ID(知识ID)
*/
private String tipId;
/**
* 小贴士标题Code
*/
private String tipTitleCode;
/**
* 小贴士标题名称
*/
private String tipTitleName;
/**
* 小贴士内容
*/
private String content;
/**
* 自定义标签Code列表
*/
private List<String> customTagCodes;
/**
* 自定义标签翻译列表
*/
private List<String> customTagNames;
/**
* 引用数量
*/
private Long referenceNumber;
/**
* 引用项
*/
private List<String> referenceItems;
/**
* 启用状态 1、启用 2、禁用
*/
private String openStatus;
/**
* 更新时间
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
}
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author :fengxuanjun
* @date :2022/8/4 5:49 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class HealthTipUploadExcelVO {
/**
* 失败信息
*/
private List<FailInfo> fails;
/**
* 导入失败数据
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public static class FailInfo {
/**
* 失败行号
*/
private Integer lineNum;
/**
* 失败方案
*/
private String schemeName;
}
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager;
import com.jiankangyouyi.cloud.basedata.api.model.component.CrowdType;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.component.PunchCardContent;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.component.RuleLimit;
import com.jiankangyouyi.cloud.core.validator.annotation.BigDecimalValHC;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author wangyalei
* @date 2022/8/9 3:29 PM
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class LifeStyleSchemeDetailVO {
/**
* 方案名称
*/
private String schemeName;
/**
* 方案ID
*/
private String schemeId;
/**
* 方案标题
*/
private String schemeTitle;
/**
* 方案类型
*/
private String schemeType;
/**
* 人群类型
*/
private List<CrowdType> crowdTypes;
/**
* 规则组合
*/
private List<RuleLimit> ruleLimits;
/**
* 打卡内容
*/
private PunchCardContent punchCardContent;
/**
* 哺乳状态 1:哺乳期 2:非哺乳期
*/
private String lactationStatus;
/**
* 产后阶段天数 起
*/
private Integer postpartumStartDays;
/**
* 产后阶段天数 止
*/
private Integer postpartumEndDays;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.component.PunchCardContent;
import com.jiankangyouyi.cloud.core.entity.page.PageResult;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List;
/**
* @author :wangyalei
* @date :2022/8/4 5:49 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class LifeStyleSchemeListPageVO {
/**
* 分页信息
*/
private PageResult.PageInfo pageInfo;
/**
* 方案组合列表
*/
private List<SchemeInfo> schemeList;
/**
* 方案组合信息
*/
@Data
@Builder
public static class SchemeInfo {
/**
* 方案名称
*/
private String schemeName;
/**
* 方案ID
*/
private String schemeId;
/**
* 方案标题
*/
private String schemeTitle;
/**
* 方案类型
*/
private String schemeType;
/**
* 人群类型
*/
private String crowdType;
/**
* 不良标签
*/
private String unhealthyLabel;
/**
* 规则限制(指标限制)
*/
private String ruleLimits;
/**
* 打卡内容
*/
private List<PunchCardContentInfo> punchCardContent;
/**
* 启用状态 1、启用 2、禁用
*/
private String openStatus;
/**
* 更新时间
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/**
* 哺乳状态 1:哺乳期 2:非哺乳期
*/
private String lactationStatus;
/**
* 产后阶段天数 起
*/
private Integer postpartumStartDays;
/**
* 产后阶段天数 止
*/
private Integer postpartumEndDays;
@Data
@Builder
public static class PunchCardContentInfo {
/**
* 小贴士ID(知识ID)
*/
private String tipId;
/**
* 阶段类型
*/
private String phaseType;
/**
* 小贴士内容
*/
private String tipContent;
}
}
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* 修改状态返回数据
*
* @author wangyalei
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ManagerStatusUpdateVO implements Serializable {
/**
* 总条数
*/
private Integer totalSize;
/**
* 成功条数
*/
private Integer successSize;
/**
* 失败条数
*/
private Integer failureSize;
/**
* 失败的数据 信息
*/
private List<String> failureInfos;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 方案标题标签列表
* @author :wangyalei
* @date :2022/8/4 4:53 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class SchemeTitleLabelListVO {
private List<SchemeTitleLabel> titleLabelList;
/**
* 方案标题标签
*/
@Data
@Builder
public static class SchemeTitleLabel {
/**
* 标题Code
*/
private String titleCode;
/**
* 标题名称
*/
private String titleName;
/**
* 不良标签Code
*/
private String unhealthyLabelCode;
/**
* 不良标签名称
*/
private String unhealthyLabelName;
}
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 方案类型列表
* @author :wangyalei
* @date :2022/8/4 4:53 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class SchemeTypeListVO {
private List<SchemeType> typeList;
/**
* 方案类型
*/
@Data
@Builder
public static class SchemeType {
private String typeCode;
private String typeName;
}
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.action;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author :wangyalei
* @date :Created in 2021/6/10 6:29 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class DeveloperInfoVO implements Serializable {
/**
* 应用ID
*/
private String appId;
/**
* 应用名称
*/
private String appName;
/**
* 开发者ID
*/
private String developerId;
/**
* 开发者名称
*/
private String developerName;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.action;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.action.ExerciseModernActionDO;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.action.ExerciseModernActionDO2;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author :wangyalei
* @date :Created in 2021/6/4 10:30 上午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ExerciseModern2InfoVO implements Serializable {
/**
* 现代运动库信息
*/
private ExerciseModernActionDO2 exerciseModernAction;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.action;
import com.jiankangyouyi.cloud.basedata.model.vo.manager.action.component.ExerciseModern2SimpleInfo;
import com.jiankangyouyi.cloud.basedata.model.vo.manager.action.component.ExerciseModernSimpleInfo;
import com.jiankangyouyi.cloud.core.entity.page.PageResult;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
*
* @author wangyalei
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ExerciseModern2ListVO implements Serializable {
/**
* 分页信息
*/
private PageResult.PageInfo pageInfo;
/**
* 现在动作库列表信息
*/
private List<ExerciseModern2SimpleInfo> exerciseModernList;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.action;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.action.ExerciseModernActionDO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author :wangyalei
* @date :Created in 2021/6/4 10:30 上午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ExerciseModernInfoVO implements Serializable {
/**
* 现代运动库信息
*/
private ExerciseModernActionDO exerciseModernAction;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.action;
import com.jiankangyouyi.cloud.basedata.model.vo.manager.action.component.ExerciseModernSimpleInfo;
import com.jiankangyouyi.cloud.core.entity.page.PageResult;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
*
* @author wangyalei
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ExerciseModernListVO implements Serializable {
/**
* 分页信息
*/
private PageResult.PageInfo pageInfo;
/**
* 现在动作库列表信息
*/
private List<ExerciseModernSimpleInfo> exerciseModernList;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.action;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.action.ExerciseTraditionalActionDO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author :wangyalei
* @date :Created in 2021/6/4 11:13 上午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ExerciseTraditionalInfoVO implements Serializable {
/**
* 传统动作库信息
*/
private ExerciseTraditionalActionDO exerciseTraditionalAction;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.action;
import com.jiankangyouyi.cloud.basedata.model.vo.manager.action.component.ExerciseTraditionalSimpleInfo;
import com.jiankangyouyi.cloud.core.entity.page.PageResult;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author :wangyalei
* @date :Created in 2021/6/3 5:05 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ExerciseTraditionalListVO implements Serializable {
/**
* 分页信息
*/
private PageResult.PageInfo pageInfo;
/**
* 传统动作库列表信息
*/
private List<ExerciseTraditionalSimpleInfo> exerciseTraditionalList;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.action;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author :wangyalei
* @date :Created in 2021/6/28 3:42 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class VideoRestDeleteVO {
/**
* 成功条数
*/
private Integer successCount;
/**
* 失败条数
*/
private Integer failCount;
/**
* 消息
*/
private List<String> message;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.action;
import com.jiankangyouyi.cloud.basedata.model.entity.mongo.action.VideoRestDO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author :wangyalei
* @date :Created in 2021/6/4 3:27 下午
*/
@Data
public class VideoRestInfoVO extends VideoRestDO implements Serializable {
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.action;
import com.jiankangyouyi.cloud.basedata.model.vo.manager.action.component.VideoRestSimpleInfo;
import com.jiankangyouyi.cloud.core.entity.page.PageResult;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author :wangyalei
* @date :Created in 2021/6/3 5:11 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class VideoRestListVO implements Serializable {
/**
* 分页信息
*/
private PageResult.PageInfo pageInfo;
/**
* 休息视频库列表信息
*/
private List<VideoRestSimpleInfo> videoRestList;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.action.component;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.jiankangyouyi.cloud.core.util.json.serialize.QiniuKeyToUrlJsonSerialize;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author :wangyalei
* @date :Created in 2021/6/3 3:22 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ExerciseModern2SimpleInfo implements Serializable {
/**
* 动作编号
*/
private String actionId;
/**
* 动作名称
*/
private String actionName;
/**
* 器械名称
*/
private String equipments;
/**
* 动作分类
*/
private String actionClassification;
/**
* 训练肌群
*/
private String trainPositions;
/**
* 动作体位
*/
private String actionPosition;
/**
* 动作难度
*/
private String actionDifficulty;
/**
* 动作特点
*/
private String actionFeatures;
/**
* 动作强度
*/
private String actionIntensity;
/**
* 视频规格标签
*/
private String videoLabel;
/**
* 教练性别
*/
private String coachGender;
/**
* 当前状态
*/
private Integer status;
/**
* 男动作封面图
*/
@JsonSerialize(using = QiniuKeyToUrlJsonSerialize.class)
private String manActionImageUrl;
/**
* 女动作封面图
*/
@JsonSerialize(using = QiniuKeyToUrlJsonSerialize.class)
private String femaleActionImageUrl;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.action.component;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.jiankangyouyi.cloud.core.util.json.serialize.QiniuKeyToUrlJsonSerialize;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author :wangyalei
* @date :Created in 2021/6/3 3:22 下午
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ExerciseModernSimpleInfo implements Serializable {
/**
* 动作编号
*/
private String actionId;
/**
* 动作名称
*/
private String actionName;
/**
* 动作封面图
*/
@JsonSerialize(using = QiniuKeyToUrlJsonSerialize.class)
private String actionImageUrl;
/**
* 器械名称
*/
private String equipments;
/**
* 动作分类
*/
private String actionClassification;
/**
* 训练肌群
*/
private String trainPositions;
/**
* 动作体位
*/
private String actionPosition;
/**
* 动作难度
*/
private String actionDifficulty;
/**
* 动作特点
*/
private String actionFeatures;
/**
* 视频规格
*/
private String videoSizes;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.action.component;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.jiankangyouyi.cloud.core.util.json.serialize.QiniuKeyToUrlJsonSerialize;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
*
* @author wangyalei
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ExerciseTraditionalSimpleInfo implements Serializable {
/**
* 动作编号
*/
private String actionId;
/**
* 动作名称
*/
private String actionName;
/**
* 动作封面图
*/
@JsonSerialize(using = QiniuKeyToUrlJsonSerialize.class)
private String actionImageUrl;
/**
* 动作类型
*/
private String actionType;
/**
* 动作分类
*/
private String actionClassification;
/**
* 视频规格
*/
private String videoSizes;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.action.component;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
*
* @author wangyalei
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class VideoRestSimpleInfo implements Serializable {
/**
* 视频id
*/
private String videoId;
/**
* 视频名称
*/
private String videoName;
/**
* APPID 应用id
*/
private String appId;
/**
* 视频规格
*/
private String videoSize;
/**
* 休息视频类型 1、现代类型 2、传统类型
*/
private String restVideoType;
/**
* 教练性别
*/
private String coachGender;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.baidu;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* access_token VO
*
* @author : fengxuanjun
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class BaiduAccessTokenVO {
/**
*
*/
private String refresh_token;
/**
* Access Token的有效期(秒为单位,有效期30天)
*/
private String expires_in;
private String scope;
private String session_key;
private String session_secret;
/**
* 要获取的Access Token
*/
private String access_token;
/**
* 错误码;关于错误码的详细信息请参考下方鉴权认证错误码。
*/
private String error;
/**
* 错误描述信息,帮助理解和解决发生的错误。
*/
private String error_description;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.baidu;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.jiankangyouyi.cloud.basedata.model.vo.manager.baidu.component.BaiduResult;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 文本翻译-通用版 VO
*
* @author : fengxuanjun
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@JsonIgnoreProperties({"error_code","error_msg"})
public class BaiduTexttransVO {
/**
* 返回结果
*/
private BaiduResult result;
/**
* 错误信息
*/
@JsonProperty("error_msg")
private String errorMsg;
/**
* 错误码
*/
@JsonProperty("error_code")
private String errorCode;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.baidu.component;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.gson.annotations.SerializedName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 文本翻译-通用版 VO
*
* @author : fengxuanjun
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class BaiduResult {
/**
* 翻译结果
*/
@JsonProperty("trans_result")
private List<BaiduTexttransResult> transResult;
/**
* 源语种方向
*/
private String from;
/**
* 目标语种方向
*/
private String to;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.baidu.component;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 文本翻译-通用版 VO
*
* @author : fengxuanjun
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class BaiduTexttransResult {
/**
* 译文
*/
private String dst;
/**
* 翻译原文
*/
private String src;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.common;
import com.jiankangyouyi.cloud.basedata.model.vo.manager.common.component.ManageDataExportInfo;
import com.jiankangyouyi.cloud.core.entity.page.PageResult;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* 底层库管理-数据导出结果
*
* @author yangsongbo
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ManagerDataExportResultVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 分页信息
*/
private PageResult.PageInfo pageInfo;
/**
* 数据导出列表
*/
private List<ManageDataExportInfo> exportList;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.common.component;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 后台管理-用户信息
*
* @author yangsongbo
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ManageDataExportInfo {
/**
* 导出数据ID
*/
private String exportId;
/**
* 导出位置名称
*/
private String exportLocationName;
/**
* 导出类型名称
*/
private String exportTypeName;
/**
* 已处理数据量
*/
private Integer processCount;
/**
* 总数据量
*/
private Integer totalCount;
/**
* 下载链接
*/
private String downloadUrl;
/**
* 耗时 毫秒
*/
private Long costTime;
/**
* 导出状态
*/
private String exportStatus;
/**
* 处理信息
*/
private String message;
/**
* 更新时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/**
* 创建时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.dict;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.sql.Timestamp;
/**
* @author :wangyalei
* @date :Created in 2021/5/6 1:40 下午
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class BaseDictInfoVO implements Serializable {
/**
* 更新时间
*/
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Timestamp updateTime;
/**
* 创建时间
*/
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Timestamp createTime;
/**
* 启用禁用状态 1 启用 2 禁用
*/
private String validStatus;
/**
* 字典ID,业务主键
*/
private String dictId;
/**
* 字典大类
*/
private String dictType;
/**
* 字典大类名称
*/
private String dictTypeName;
/**
* 字典子类
*/
private String dictSubType;
/**
* 字典子类名称
*/
private String dictSubTypeName;
/**
* 字典编码
*/
private String dictCode;
/**
* 字典名称
*/
private String dictName;
/**
* 排序
*/
private Integer rowOrder;
/**
* 字典描述
*/
private String description;
/**
* 操作人帐号
*/
private String operateAccount;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.dict;
import com.jiankangyouyi.cloud.core.entity.page.PageResult;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author :wangyalei
* @date :Created in 2021/5/6 1:40 下午
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class BaseDictListByPageQueryVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 字典列表
*/
private List<BaseDictInfoVO> baseDictList;
/**
* 分页信息
*/
private PageResult.PageInfo pageInfo;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.dict;
import com.jiankangyouyi.cloud.basedata.model.vo.manager.dict.component.BaseDictSimpleInfo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author :wangyalei
* @date :Created in 2021/5/6 2:25 下午
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class BaseDictListQueryVO implements Serializable {
/**
* 字典大类
*/
private String dictType;
/**
* 字典子类
*/
private String dictSubType;
/**
* 字典数据列表
*/
private List<BaseDictSimpleInfo> dictList;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.dict;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author :wangyalei
* @date :Created in 2021/5/6 9:05 下午
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class BaseDictSubTypeListQueryVO {
/**
* 字典子类
*/
private String dictSubType;
/**
* 字典子类名称
*/
private String dictSubTypeName;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.dict;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* @author :wangyalei
* @date :Created in 2021/5/6 5:11 下午
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class BaseDictTypeInfoVO implements Serializable {
/**
* 更新时间
*/
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date updateTime;
/**
* 创建时间
*/
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date createTime;
/**
* 启用禁用状态 1 启用 2 禁用
*/
private String validStatus;
/**
* 字典ID,业务主键
*/
private String dictTypeId;
/**
* 字典大类
*/
private String dictType;
/**
* 字典子类
*/
private String dictSubType;
/**
* 字典大类名称
*/
private String dictTypeName;
/**
* 字典子类名称
*/
private String dictSubTypeName;
/**
* 排序
*/
private Integer rowOrder;
/**
* 字典描述
*/
private String description;
/**
* 操作人帐号
*/
private String operateAccount;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.dict;
import com.jiankangyouyi.cloud.core.entity.page.PageResult;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author :wangyalei
* @date :Created in 2021/5/6 5:09 下午
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class BaseDictTypeListByPageQueryVO implements Serializable {
/**
* 字典列表
*/
private List<BaseDictTypeInfoVO> baseDictTypeList;
/**
* 分页信息
*/
private PageResult.PageInfo pageInfo;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.dict.component;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author :wangyalei
* @date :Created in 2021/5/6 2:28 下午
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class BaseDictSimpleInfo {
/**
* 字典编码
*/
private String dictCode;
/**
* 字典名称
*/
private String dictName;
/**
* 字典描述
*/
private String description;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.food;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jiankangyouyi.cloud.core.entity.page.PageResult;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class FoodImageListVO {
/**
* 分页信息
*/
private PageResult.PageInfo pageInfo;
private List<FoodImageListData> list;
/**
*
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public static class FoodImageListData implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 图片名称 hash
*/
private String foodImageName;
/**
* ftp图片url
*/
private String foodImageUrl;
/**
* 图片特征
*/
private List<Float> imgFeatures;
/**
* 食物id
*/
private String foodId;
/**
* 食物名称
*/
private String foodName;
/**
* 食物类型
*/
private String foodProperty;
/**
* 食物类型name
*/
private String foodPropertyName;
/**
* 食物分类
*/
private String classify1;
/**
* 食物分类classValueName
*/
private String classify1Name;
/**
* 食物分类
*/
private String classify2;
/**
* 食物分类classValueName
*/
private String classify2Name;
/**
* 食物分类
*/
private String classify3;
/**
* 食物分类classValueName
*/
private String classify3Name;
/**
* 食物分类classValueName 前端展示用
*/
private String classifyName;
/**
* 修改时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
/**
* 修改时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
* 最后操作账号
*/
private String optionAccount;
}
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.food;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class FoodImageVO implements Serializable {
private List<Float> imgFeatures;
/**
* ftp图片url
*/
private String foodImageUrl;
private String uid;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.food;
import lombok.Builder;
import lombok.Data;
import java.io.Serializable;
/**
* 食物列表实体
*
* @author :wangyalei
* @date :Created in 2021/4/27 9:47 下午
*/
@Data
@Builder
public class FoodListImageVO implements Serializable {
// /**
// * 食物列表信息
// */
// private List<FoodListInfo> foodList;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.food;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.jiankangyouyi.cloud.core.util.json.serialize.QiniuKeyToUrlJsonSerialize;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class FoodListInfoVO {
/**
* 食物ID 业务唯一ID
*/
private String foodId;
/**
* 食物名称
*/
private String foodName;
/**
* 当前状态 0 有效 1无效 2草稿
*/
private List<String> foodStatus;
/**
* 食物属性 1、食材 2、加工食品 3、预包装食品 4、药材
*/
private String foodProperty;
/**
* 标准单位 (g/ml)
*/
private String unit;
/**
* 食物分类
*/
private String classify1;
/**
* 食物分类classValueName
*/
private String classify1Name;
/**
* 食物分类
*/
private String classify2;
/**
* 食物分类classValueName
*/
private String classify2Name;
/**
* 食物分类
*/
private String classify3;
/**
* 食物分类classValueName
*/
private String classify3Name;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.food;
import com.jiankangyouyi.cloud.basedata.api.model.entity.foodv4.component.DietaryPattern;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* 底层库管理-食材计算结果
*
* @author yangsongbo
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ManagerFoodMaterialCalculateVO implements Serializable {
/**
* 膳食结构
*/
private DietaryPattern dietaryPattern;
/**
* 富含营养素:字典大类02,字典子类0206
*/
private List<String> highContentNutrients;
/**
* 低量营养素:字典大类02,字典子类0218
*/
private List<String> lowContentNutrients;
/**
* 升糖指数等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知
* <p>
* {@link com.jiankangyouyi.cloud.basedata.api.enums.food.GiLevelEnum}
*/
private String giLevel;
/**
* 血糖负荷等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知
* <p>
* {@link com.jiankangyouyi.cloud.basedata.api.enums.food.GlLevelEnum}
*/
private String glLevel;
/**
* 嘌呤等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知
* <p>
* {@link com.jiankangyouyi.cloud.basedata.api.enums.food.PurineLevelEnum}
*/
private String purineLevel;
/**
* 果糖等级
* <p>
* {@link com.jiankangyouyi.cloud.basedata.api.enums.food.FructoseLevelEnum}
*/
private String fructoseLevel;
/**
* 推荐人群:字典大类02,字典子类0205
*/
private List<String> recommendCrowds;
/**
* 禁忌人群:字典大类02,字典子类0205
*/
private List<String> tabooCrowds;
/**
* 膳食特点
*/
private List<String> foodSpecialties;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.food;
import com.jiankangyouyi.cloud.basedata.api.model.entity.foodv4.FoodMaterial;
import lombok.ToString;
/**
* 底层库管理-食材详情
*
* @author yangsongbo
*/
@ToString
public class ManagerFoodMaterialDetailVO extends FoodMaterial {
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.food;
import com.jiankangyouyi.cloud.basedata.model.vo.manager.food.component.ManagerFoodMaterialListInfo;
import com.jiankangyouyi.cloud.core.entity.page.PageResult;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 底层库管理-食材列表分页结果
*
* @author yangsongbo
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ManagerFoodMaterialListVO {
/**
* 分页对象
*/
private PageResult.PageInfo pageInfo;
/**
* 食材列表
*/
private List<ManagerFoodMaterialListInfo> foodList;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.food;
import com.jiankangyouyi.cloud.basedata.api.model.entity.foodv4.FoodPackage;
import lombok.ToString;
/**
* 底层库管理-预包装食品详情
*
* @author yangsongbo
*/
@ToString
public class ManagerFoodPackageDetailVO extends FoodPackage {
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.food;
import com.jiankangyouyi.cloud.basedata.model.vo.manager.food.component.ManagerFoodPackageListInfo;
import com.jiankangyouyi.cloud.core.entity.page.PageResult;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 底层库管理-加工食品列表分页结果
*
* @author yangsongbo
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ManagerFoodPackageListVO {
/**
* 分页对象
*/
private PageResult.PageInfo pageInfo;
/**
* 食材列表
*/
private List<ManagerFoodPackageListInfo> foodList;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.food;
import com.jiankangyouyi.cloud.basedata.api.model.entity.foodv4.component.DietaryPattern;
import com.jiankangyouyi.cloud.basedata.api.model.entity.foodv4.component.FoodComposition;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* 底层库管理-加工食品计算结果
*
* @author yangsongbo
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ManagerFoodProcessCalculateVO implements Serializable {
/**
* 加工食品食物成分
*/
private FoodComposition composition;
/**
* 膳食结构
*/
private DietaryPattern dietaryPattern;
/**
* 富含营养素:字典大类02,字典子类0206
*/
private List<String> highContentNutrients;
/**
* 低量营养素:字典大类02,字典子类0218
*/
private List<String> lowContentNutrients;
/**
* 升糖指数等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知
* <p>
* {@link com.jiankangyouyi.cloud.basedata.api.enums.food.GiLevelEnum}
*/
private String giLevel;
/**
* 血糖负荷等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知
* <p>
* {@link com.jiankangyouyi.cloud.basedata.api.enums.food.GlLevelEnum}
*/
private String glLevel;
/**
* 嘌呤等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知
* <p>
* {@link com.jiankangyouyi.cloud.basedata.api.enums.food.PurineLevelEnum}
*/
private String purineLevel;
/**
* 推荐人群:字典大类02,字典子类0205
*/
private List<String> recommendCrowds;
/**
* 禁忌人群:字典大类02,字典子类0205
*/
private List<String> tabooCrowds;
/**
* 禁忌民族
*/
private List<String> tabooNations;
/**
* 性质
*/
private List<String> natures;
/**
* 时令
*/
private List<String> months;
/**
* 膳食特点
*/
private List<String> foodSpecialties;
/**
* 烹饪特点
*/
private List<String> cookingSpecialties;
/**
* 致敏原: 字典大类02,字典子类 0234
*/
private List<String> allergen;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.food;
import com.jiankangyouyi.cloud.basedata.api.model.entity.foodv4.FoodProcess;
import lombok.ToString;
/**
* 底层库管理-加工食品详情
*
* @author yangsongbo
*/
@ToString
public class ManagerFoodProcessDetailVO extends FoodProcess {
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.food;
import com.jiankangyouyi.cloud.basedata.model.vo.manager.food.component.ManagerFoodProcessListInfo;
import com.jiankangyouyi.cloud.core.entity.page.PageResult;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 底层库管理-加工食品列表分页结果
*
* @author yangsongbo
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ManagerFoodProcessListVO {
/**
* 分页对象
*/
private PageResult.PageInfo pageInfo;
/**
* 食材列表
*/
private List<ManagerFoodProcessListInfo> foodList;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.food;
import lombok.Builder;
import lombok.Data;
import java.io.Serializable;
/**
* 底层库管理-食物快速查询
*
* @author yangsongbo
*/
@Data
@Builder
public class ManagerFoodQuickQueryVO implements Serializable {
/**
* 食材查询结果
*/
private ManagerFoodMaterialListVO foodMaterialResult;
/**
* 加工食品查询结果
*/
private ManagerFoodProcessListVO foodProcessResult;
/**
* 预包装食品查询结果
*/
private ManagerFoodPackageListVO foodPackageResult;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.food;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* 修改食物状态返回数据
*
* @author yangsongbo
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ManagerFoodStatusUpdateVO implements Serializable {
/**
* 总条数
*/
private Integer totalSize;
/**
* 成功条数
*/
private Integer successSize;
/**
* 失败条数
*/
private Integer failureSize;
/**
* 失败的数据 信息
*/
private List<String> failureInfos;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.food;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 底层库管理-根据食物名称查询
*
* @author yangsongbo
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ManagerQueryByFoodNameVO {
/**
* 食物ID
*/
private String foodId;
/**
* 食物名称
*/
private String foodName;
/**
* 食物状态
*/
private String foodStatus;
/**
* 食物属性
*/
private String foodProperty;
/**
* 食物单位
*/
private String unit;
/**
* 食物一级分类编码
*/
private String classify1;
/**
* 食物二级分类编码
*/
private String classify2;
/**
* 食物三级分类编码
*/
private String classify3;
/**
* 食物一级分类名称
*/
private String classify1Name;
/**
* 食物二级分类名称
*/
private String classify2Name;
/**
* 食物三级分类名称
*/
private String classify3Name;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.food.component;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.jiankangyouyi.cloud.core.util.json.serialize.NumberStripTrailingZerosJsonSerialize;
import com.jiankangyouyi.cloud.core.util.json.serialize.QiniuKeyToUrlJsonSerialize;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* 底层库管理-食材列表对象
*
* @author yangsongbo
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ManagerFoodMaterialListInfo {
/**
* 食物ID
*/
private String foodId;
/**
* 食物图片URL
*/
@JsonSerialize(using = QiniuKeyToUrlJsonSerialize.class)
private String imageUrl;
/**
* 食物名称
*/
private String foodName;
/**
* 一级分类名称
*/
private String classify1Name;
/**
* 二级分类名称
*/
private String classify2Name;
/**
* 三级分类名称
*/
private String classify3Name;
/**
* 食物状态: 0 启用 1 禁用 2 草稿
*/
private String foodStatus;
/**
* 是否参与配餐: true/false
*/
private Boolean catering;
/**
* 被加工食品引用数量
*/
private Integer refCount;
/**
* 推荐人群,返回示例:[“糖尿病”,”肥胖”]
*/
private List<String> recommendCrowds;
/**
* 禁忌人群,返回示例:[“糖尿病”,”肥胖”]
*/
private List<String> tabooCrowds;
/**
* 富含营养素,返回示例:[“钾”,”镁”]
*/
private List<String> highContentNutrients;
/**
* 低量营养素,返回示例:[“钾”,”镁”]
*/
private List<String> lowContentNutrients;
/**
* 升糖指数等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知
*/
private String giLevel;
/**
* 血糖负荷等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知
*/
private String glLevel;
/**
* 嘌呤等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知
*/
private String purineLevel;
/**
* 果糖含量等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知
*/
private String fructoseLevel;
/**
* 性质, 返回示例:[“产气”,”家常菜”,”辛辣刺激”]
*/
private List<String> natures;
/**
* 膳食特点, 返回示例:[“全谷物”,”优质蛋白”]
*/
private List<String> foodSpecialties;
/**
* 烹饪特点, 返回示例:[“干”,”湿”]
*/
private List<String> cookingSpecialties;
/**
* 致敏原
*/
private List<String> allergen;
/**
* 能量,单位 kcal
*/
private Integer energy;
/**
* 蛋白质,单位 g
*/
@JsonSerialize(using = NumberStripTrailingZerosJsonSerialize.class)
private BigDecimal protein;
/**
* 脂肪,单位 g
*/
@JsonSerialize(using = NumberStripTrailingZerosJsonSerialize.class)
private BigDecimal fat;
/**
* 碳水化合物,单位 g
*/
@JsonSerialize(using = NumberStripTrailingZerosJsonSerialize.class)
private BigDecimal carbohydrate;
/**
* 创建时间
*/
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date createTime;
/**
* 更新时间
*/
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date updateTime;
/**
* 审核状态
*/
private String auditStatus;
/**
* 创建人 (账号)
*/
private String createAccount;
/**
* 修改人 (账号)
*/
private String updateAccount;
/**
* 采纳人 (账号)
*/
private String adoptAccount;
/**
* 驳回理由
*/
private String reasonsForRejection;
/**
* 配餐版本号, 返回示例:[“V2.6”,”V2.7”]
*/
private List<String> versions;
/**
* 采纳时间
*/
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date adoptTime;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.food.component;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.jiankangyouyi.cloud.core.util.json.serialize.NumberStripTrailingZerosJsonSerialize;
import com.jiankangyouyi.cloud.core.util.json.serialize.QiniuKeyToUrlJsonSerialize;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* 底层库管理-预包装食品列表对象
*
* @author yangsongbo
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ManagerFoodPackageListInfo {
/**
* 食物ID
*/
private String foodId;
/**
* 食物图片URL
*/
@JsonSerialize(using = QiniuKeyToUrlJsonSerialize.class)
private String imageUrl;
/**
* 食物名称
*/
private String foodName;
/**
* 一级分类名称
*/
private String classify1Name;
/**
* 二级分类名称
*/
private String classify2Name;
/**
* 三级分类名称
*/
private String classify3Name;
/**
* 食物状态: 0 启用 1 禁用 2 草稿
*/
private String foodStatus;
/**
* 条形码
*/
private String barCode;
/**
* 能量,单位 kcal
*/
private Integer energy;
/**
* 蛋白质,单位 g
*/
@JsonSerialize(using = NumberStripTrailingZerosJsonSerialize.class)
private BigDecimal protein;
/**
* 脂肪,单位 g
*/
@JsonSerialize(using = NumberStripTrailingZerosJsonSerialize.class)
private BigDecimal fat;
/**
* 碳水化合物,单位 g
*/
@JsonSerialize(using = NumberStripTrailingZerosJsonSerialize.class)
private BigDecimal carbohydrate;
/**
* 更新时间
*/
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date updateTime;
/**
* 创建时间
*/
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date createTime;
/**
* 审核状态
*/
private String auditStatus;
/**
* 创建人 (账号)
*/
private String createAccount;
/**
* 修改人 (账号)
*/
private String updateAccount;
/**
* 采纳人 (账号)
*/
private String adoptAccount;
/**
* 驳回理由
*/
private String reasonsForRejection;
/**
* 采纳时间
*/
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date adoptTime;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.food.component;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.jiankangyouyi.cloud.core.util.json.serialize.NumberStripTrailingZerosJsonSerialize;
import com.jiankangyouyi.cloud.core.util.json.serialize.QiniuKeyToUrlJsonSerialize;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* 底层库管理-加工食品列表对象
*
* @author yangsongbo
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ManagerFoodProcessListInfo {
/**
* 食物ID
*/
private String foodId;
/**
* 食物图片URL
*/
@JsonSerialize(using = QiniuKeyToUrlJsonSerialize.class)
private String imageUrl;
/**
* 食物名称
*/
private String foodName;
/**
* 一级分类名称
*/
private String classify1Name;
/**
* 二级分类名称
*/
private String classify2Name;
/**
* 三级分类名称
*/
private String classify3Name;
/**
* 食物状态: 0 启用 1 禁用 2 草稿
*/
private String foodStatus;
/**
* 是否参与配餐: true/false
*/
private Boolean catering;
/**
* 推荐人群,返回示例:[“糖尿病”,”肥胖”]
*/
private List<String> recommendCrowds;
/**
* 适合餐别 名称展示
*/
private List<String> suitableForMeals;
/**
* 节日 名称展示
*/
private List<String> festivals;
/**
* 节气 名称展示
*/
private List<String> solarTerms;
/**
* 配餐版本号 名称展示
*/
private List<String> versions;
/**
* 禁忌人群,返回示例:[“糖尿病”,”肥胖”]
*/
private List<String> tabooCrowds;
/**
* 富含营养素,返回示例:[“钾”,”镁”]
*/
private List<String> highContentNutrients;
/**
* 低量营养素,返回示例:[“钾”,”镁”]
*/
private List<String> lowContentNutrients;
/**
* 致敏原,返回示例:[“芒果”,”苹果”]
*/
private List<String> allergen;
/**
* 升糖指数等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知
*/
private String giLevel;
/**
* 血糖负荷等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知
*/
private String glLevel;
/**
* 嘌呤等级, HIGH 高,MIDDLE 中,LOW 低,UNKNOWN 未知
*/
private String purineLevel;
/**
* 性质, 返回示例:[“产气”,”家常菜”,”辛辣刺激”]
*/
private List<String> natures;
/**
* 膳食特点, 返回示例:[“全谷物”,”优质蛋白”]
*/
private List<String> foodSpecialties;
/**
* 烹饪特点, 返回示例:[“干”,”湿”]
*/
private List<String> cookingSpecialties;
/**
* 能量,单位 kcal
*/
private Integer energy;
/**
* 蛋白质,单位 g
*/
@JsonSerialize(using = NumberStripTrailingZerosJsonSerialize.class)
private BigDecimal protein;
/**
* 脂肪,单位 g
*/
@JsonSerialize(using = NumberStripTrailingZerosJsonSerialize.class)
private BigDecimal fat;
/**
* 碳水化合物,单位 g
*/
@JsonSerialize(using = NumberStripTrailingZerosJsonSerialize.class)
private BigDecimal carbohydrate;
/**
* 口味
*/
private String tastes;
/**
* 更新时间
*/
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date updateTime;
/**
* 创建时间
*/
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date createTime;
/**
* 审核状态
*/
private String auditStatus;
/**
* 创建人 (账号)
*/
private String createAccount;
/**
* 修改人 (账号)
*/
private String updateAccount;
/**
* 采纳人 (账号)
*/
private String adoptAccount;
/**
* 驳回理由
*/
private String reasonsForRejection;
/**
* 采纳时间
*/
@JsonFormat(
timezone = "GMT+8",
pattern = "yyyy-MM-dd HH:mm:ss"
)
private Date adoptTime;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.hardware;
import com.jiankangyouyi.cloud.basedata.model.vo.manager.hardware.component.DataItemInfo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* 数据项列表VO
*
* @author fengxuanjun
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DataItemListVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 数据项列表
*/
private List<DataItemInfo> resultList;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.hardware;
import com.jiankangyouyi.cloud.basedata.model.vo.manager.hardware.component.HardwareInfo;
import com.jiankangyouyi.cloud.core.entity.page.PageResult;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* 硬件列表返回VO
*
* @author fengxuanjun
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class HardwareListVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 分页信息
*/
private PageResult.PageInfo pageInfo;
/**
* 问题列表
*/
private List<HardwareInfo> resultList;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.hardware;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.jiankangyouyi.cloud.core.util.json.serialize.QiniuKeyToUrlJsonSerialize;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Transient;
import java.io.Serializable;
import java.util.List;
/**
* 硬件信息
*
* @author fengxuanjun
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class HardwareVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* NOT NULL 硬件业务ID
*/
private String hardwareId;
/**
* 一级分类
*/
private String classify1;
/**
* 二级分类
*/
private String classify2;
/**
* 品牌 对应字典code
*/
private String brand;
/**
* 品牌 对应字典code名称
*/
private String brandName;
/**
* 型号 对应字典code
*/
private String model;
/**
* 型号 对应字典code名称
*/
private String modelName;
/**
* 通讯方式 对应字典code
*/
private String communication;
/**
* 通讯方式 对应字典code名称
*/
private String communicationName;
/**
* 数据项 例:蓝牙、Wi-Fi...
*/
private List<String> dataItems;
/**
* 业务类型
*/
private String bizType;
/**
* 产品图片 七牛文件Key
*/
private List<String> images;
/**
* 产品图片 七牛文件url
*/
@Transient
@JsonSerialize(using = QiniuKeyToUrlJsonSerialize.class)
private List<String> imagesUrl;
/**
* 产品文档 七牛文件Key
*/
private String documentkey;
/**
* 产品文档 七牛文件URl
*/
@Transient
@JsonSerialize(using = QiniuKeyToUrlJsonSerialize.class)
private String documentUrl;
/**
* 产品文档 七牛文件Key
*/
private String apiUrl;
/**
* 功能简述
*/
private String description;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.hardware.component;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 硬件信息
*
* @author fengxuanjun
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DataItemInfo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 指标名称
*/
private String indicatorName;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.hardware.component;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.jiankangyouyi.cloud.core.util.json.serialize.QiniuKeyToUrlJsonSerialize;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Transient;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 硬件信息
*
* @author fengxuanjun
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class HardwareInfo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* NOT NULL 硬件业务ID
*/
private String hardwareId;
/**
* 一级分类
*/
private String classify1;
/**
* 一级分类名称
*/
private String classify1Name;
/**
* 二级分类
*/
private String classify2;
/**
* 二级分类名称
*/
private String classify2Name;
/**
* 品牌 对应字典code
*/
private String brand;
/**
* 品牌 对应字典code名称
*/
private String brandName;
/**
* 型号 对应字典code
*/
private String model;
/**
* 型号 对应字典code名称
*/
private String modelName;
/**
* 通讯方式 对应字典code
*/
private String communication;
/**
* 通讯方式 对应字典code名称
*/
private String communicationName;
/**
* 数据项 例:蓝牙、Wi-Fi...
*/
private List<String> dataItems;
/**
* 产品文档 七牛文件Key
*/
private String documentkey;
/**
* 产品文档 七牛文件URl
*/
@Transient
@JsonSerialize(using = QiniuKeyToUrlJsonSerialize.class)
private String documentUrl;
/**
* 创建时间
*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
* 修改时间
*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.knowledge;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.List;
/**
* 去除重复 试题和 答案
*
* @author lvqidong
* @date 2022/02/09 09:14
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class DistinctQuestionVO {
/**
* 重复率过高的问题列表
*/
private List<DistinctContextData> questionList;
/**
* 重复率过高的答案列表
*/
private List<DistinctContextData> answerList;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class DistinctContextData {
/**
* 重复内容ID
*/
private String questionId;
/**
* 重复内容
*/
private String questionContext;
/**
* 相似度百分比
*/
private BigDecimal similarityPercent;
}
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.knowledge;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 描述
*
* @author qxy
**/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DownloadQuestionsAndAnswersVO implements Serializable {
private static final long serialVersionUID = 1L;
private String fileUrl;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.knowledge;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
import java.util.Set;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ImportQuestionVO {
/**
* 成功多少条
*/
private Integer successCount;
/**
* 失败多少条
*/
private Integer errorCount;
/**
* 失败的原因
*/
private List<String> errorList;
private Set<String> set;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.knowledge;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 描述
*
* @author qxy
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ModifyQuestionsAndAnswersVO {
private Boolean status;
private DistinctQuestionVO distinctQuestionVO;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.knowledge;
import com.jiankangyouyi.cloud.basedata.api.model.entity.knowledge.QaKnowledgeQuestion;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class QaKnowledgeQuestionListVO extends QaKnowledgeQuestion implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 标签
*/
private List<String> tags;
/**
* 有效状态
*/
private String validStatus;
/**
* 有效状态 翻译
*/
private String validStatusDesc;
/**
* 选择提类型 1 单选 2 多选
*/
private String optionFlag;
/**
* 有效状态
*/
private String useFlag;
/**
* 有效状态 翻译
*/
private String useFlagDesc;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.knowledge;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class QuestionsAndAnswersExportListVO {
private String questionsAndAnswersId;
/**
* 一级分类
*/
private String classify1;
/**
* 一级分类
*/
private String classify1Value;
/**
* 二级分类
*/
private String classify2;
/**
* 二级分类
*/
private String classify2Value;
/**
* 三级分类
*/
private String classify3;
/**
* 三级分类
*/
private String classify3Value;
/**
* 问题
*/
private String question;
/**
* 标签
*/
private List<String> tags;
/**
* 人群
*/
private List<String> crowd;
/**
* 人群
*/
private List<String> crowdValues;
/**
* 状态 [1:启用][2:停用]
*/
private String status;
/**
* 修改时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date adoptTime;
/**
* 创建时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
* 用户id
*/
private String accountId;
/**
* 采纳人
*/
private String adoptAccountId;
/**
* 食材 必填项,可添加多个标签,标签个数最多不能超过10个,每个标签限制1-10个字,不能含有空格、标点符号、特殊符号
*/
private List<String> foodMaterial;
/**
* 疾病
*/
private List<String> disease;
/**
* 答案
*/
private String answer;
/**
* 参考文献
*/
private List<String> reference;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.knowledge;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class QuestionsAndAnswersListVO {
private String questionsAndAnswersId;
/**
* 一级分类
*/
private String classify1Value;
/**
* 二级分类
*/
private String classify2Value;
/**
* 问题
*/
private String question;
/**
* 标签
*/
private List<String> tags;
/**
* 人群
*/
private List<String> crowdValues;
/**
* 疾病
*/
private String disease;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.knowledge;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 描述
*
* @author qxy
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class QuestionsAndAnswersVO {
private String questionsAndAnswersId;
/**
* 一级分类
*/
private String classify1Value;
/**
* 二级分类
*/
private String classify2Value;
/**
* 问题
*/
private String question;
/**
* 答案
*/
private String answer;
/**
* 人群
*/
private List<String> crowdValues;
/**
* 标签
*/
private List<String> tags;
/**
* 参考文献
*/
private List<String> referenceValues;
/**
* 疾病
*/
private List<String> disease;
/**
* 食材
*/
private List<String> foodMaterialValues;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.literature;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.jiankangyouyi.cloud.core.util.json.serialize.QiniuKeyToUrlJsonSerialize;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
/**
* @author lvqidong
* @date 2022/02/09 10:50
**/
@Data
public class ListPageVO {
/**
* 文献id
*/
private String literatureId;
/**
* 文献标题内容
*/
private String literatureContext;
/**
* 启用/禁用 1启用 2 禁用
*/
private String useFlag;
/**
* 排序值
*/
private Integer literatureSort;
/**
* 创建时间
*/
@JsonFormat(timezone = "GMT+8",shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
/**
* 附件名称
*/
private String attachmentName;
/**
* 附件地址
*/
@JsonSerialize(using = QiniuKeyToUrlJsonSerialize.class)
private String attachmentUrl;
/**
* 关联服务
*/
private List<ServiceNodesVO> nodesList;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.literature;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.jiankangyouyi.cloud.core.util.json.serialize.QiniuKeyToUrlJsonSerialize;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author lvqidong
* @date 2022/02/09 11:14
**/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class LiteratureDetailsVO implements Serializable {
/**
* 文献id
*/
private String literatureId;
/**
* 文献标题内容
*/
private String literatureContext;
/**
* 启用/禁用 1启用 2 禁用
*/
private String useFlag;
/**
* 排序值
*/
private Integer literatureSort;
/**
* 附件名称
*/
private String attachmentName;
/**
* 附件地址
*/
@JsonSerialize(using = QiniuKeyToUrlJsonSerialize.class)
private String attachmentUrl;
/**
* 关联服务
*/
private List<ServiceNodesVO> nodesList;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.literature;
import lombok.Data;
/**
* @author lvqidong
* @date 2022/02/10 18:00
**/
@Data
public class ServiceNodesVO {
/**
* 关联服务
*/
private String serviceCode;
/**
* 关联服务 名称
*/
private String serviceName;
/**
* 分类codes 字典
*/
private String classifyCode;
/**
* 分类code 名称
*/
private String classifyName;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.question;
import com.jiankangyouyi.cloud.basedata.model.vo.manager.question.component.BaseDataClassify;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* 分类列表返回VO
*
* @author fengxuanjun
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BaseDataClassifyListVO implements Serializable {
private static final long serialVersionUID = 1L;
List<BaseDataClassify> classifyList;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.question;
import com.jiankangyouyi.cloud.basedata.model.vo.manager.question.component.QuestionDeleteFailInfo;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 删除问题返回数据
*
* @author fengxuanjun
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class QuestionDeleteVO implements ValidDTO {
private static final long serialVersionUID = 1L;
/**
* 1:成功,2:存在失败
*/
private String resultStatus;
/**
* 删除失败对象
*/
List<QuestionDeleteFailInfo> failInfos;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.question;
import com.jiankangyouyi.cloud.basedata.api.model.entity.questionnaire.MainQuestion;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* 问题详情返回数据
*
* @author fengxuanjun
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class QuestionDetailVO implements ValidDTO {
private static final long serialVersionUID = 1L;
/**
* 问题ID,新增是为null,修改时必传
*/
private String questionId;
/**
* 一级分类ID
*/
private String classify1;
/**
* 二级分裂ID
*/
private String classify2;
/**
* 题型
* 1:单选题
* 2:多选题
* 3:性别题
* 4:出生日期题
* 5:单项数字题
* 6:多项数字题
* 7:BMI题
*/
private String questionType;
/**
* 相关疾病
*/
private List<String> relatedDiseases;
/**
* 标签 (标签库标签id)
*/
private String tag;
/**
* 问题对象
*/
private MainQuestion mainQuestion;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.question;
import com.jiankangyouyi.cloud.basedata.model.vo.manager.question.component.QuestionnaireBaseInfo;
import com.jiankangyouyi.cloud.core.entity.page.PageResult;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* 问卷列表返回VO
*
* @author fengxuanjun
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class QuestionnaireListVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 分页信息
*/
private PageResult.PageInfo pageInfo;
/**
* 问题列表
*/
private List<QuestionnaireBaseInfo> questionnairesList;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.question;
import com.jiankangyouyi.cloud.basedata.api.model.dto.response.component.Questionnaire;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 问卷预览返回VO
*
* @author fengxuanjun
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class QuestionnairePreviewVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* NOT NULL 问卷对象
*/
private Questionnaire questionnaire;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.question;
import com.jiankangyouyi.cloud.basedata.model.vo.manager.question.component.QuestionnaireQuestion;
import com.jiankangyouyi.cloud.core.entity.page.PageResult;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* 问题列表返回VO
*
* @author fengxuanjun
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class QuestionnaireQuestionListVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 分页信息
*/
private PageResult.PageInfo pageInfo;
/**
* 问题列表
*/
private List<QuestionnaireQuestion> questionList;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.question.component;
import lombok.*;
import java.io.Serializable;
import java.util.List;
/**
* 分类列表返回数据
*
* @author fengxuanjun
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
public class BaseDataClassify implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 业务属性
* 1 食材库
* 2 加工食品库
* 3 包装食品库
* 4 中医药材库
* 5 问题库
* 6 指标库
* 7 科普问答库
* 8 硬件库
*/
private String bizProperty;
/**
* 上级分类ID
*/
private String parentId;
/**
* 分类ID
*/
private String classifyId;
/**
* 分类编码,页面展示分类ID
*/
private String classifyCode;
/**
* 分类名称
*/
private String classifyName;
/**
* 分类级别 一级分类:1,二级分类:2...|
*/
private Integer classifyLevel;
/**
* 子分类
*/
List<BaseDataClassify> children;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.question.component;
import com.jiankangyouyi.cloud.core.validator.ValidDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 删除问题失败返回数据
*
* @author fengxuanjun
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class QuestionDeleteFailInfo implements ValidDTO {
private static final long serialVersionUID = 1L;
/**
* 问题ID
*/
private String questionId;
/**
* 失败原因
*/
private String description;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.question.component;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.sql.Timestamp;
/**
* 问卷列表返回结果
*
* @author fengxuanjun
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class QuestionnaireBaseInfo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 问卷ID
*/
private String bizType;
/**
* 问卷名称
*/
private String questionnaireName;
/**
* 问卷状态,1:使用,2:停用
*/
private String validStatus;
/**
* 创建时间
*/
private Timestamp createTime;
/**
* 修改时间
*/
private Timestamp updateTime;
}
package com.jiankangyouyi.cloud.basedata.model.vo.manager.question.component;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.List;
/**
* 问题列表返回结果
*
* @author fengxuanjun
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class QuestionnaireQuestion implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 问题ID
*/
private String questionId;
/**
* 问题名称,多条数据换行展示
*/
private List<String> questionContents;
/**
* 题型
* 1:单选题
* 2:多选题
* 3:性别题
* 4:出生日期题
* 5:单项数字题
* 6:多项数字题
* 7:BMI题
*/
private String questionType;
/**
* 一级分类ID
*/
private String classify1;
/**
* 一级分类名称
*/
private String classify1Name;
/**
* 二级分类ID
*/
private String classify2;
/**
* 二级分类名称
*/
private String classify2Name;
/**
* 相关疾病
*/
private List<String> relatedDiseases;
/**
* 创建时间
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Timestamp createTime;
/**
* 修改时间
*/
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Timestamp updateTime;
}
package com.june.entitytodbdoc;
import com.june.entitytodbdoc.dto.DocumentInfoDTO;
import com.june.entitytodbdoc.utils.FileUtils;
import com.june.entitytodbdoc.utils.GetClassCommentUtils;
import com.june.entitytodbdoc.utils.MarkdownUtils;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
......@@ -17,19 +18,20 @@ import java.util.stream.Collectors;
public class Starter {
public static void main(String[] args) {
// String beanFilePath =
// "D:\\work\\idea\\june\\entity-to-db-doc\\entity-to-db-doc\\target\\distro-javadoc-sources\\health-cloud-base-data-web-1.0-TK-SNAPSHOT-sources\\com\\jiankangyouyi\\cloud\\basedata\\model\\entity\\mongo\\food";
// List<String> javaFilePaths = FileUtils.findJavaFilePaths(beanFilePath);
List<String> javaFilePaths = Arrays.asList("D:\\work\\idea\\june\\entity-to-db-doc\\entity-to-db-doc\\src\\main\\java\\com\\june\\entitytodbdoc\\entity\\mongo\\food\\FoodProcessDO.java");
String beanFilePath =
"D:\\work\\idea\\june\\entity-to-db-doc\\entity-to-db-doc\\src\\main\\java\\com\\jiankangyouyi\\cloud\\basedata";
List<String> javaFilePaths = FileUtils.findJavaFilePaths(beanFilePath);
// List<String> javaFilePaths = Arrays.asList("D:\\work\\idea\\june\\entity-to-db-doc\\entity-to-db-doc\\src\\main\\java\\com\\june\\entitytodbdoc\\entity\\mongo\\food\\FoodProcessDO.java");
// 获取所有的 markdown 内容
List<String> resultContentList = javaFilePaths
.stream().map(GetClassCommentUtils::execute)
.parallelStream().map(GetClassCommentUtils::execute)
.filter(Optional::isPresent)
.map(Optional::get)
.sorted(Comparator.comparing(DocumentInfoDTO::getDocumentName))
.flatMap(dto -> MarkdownUtils.getOneDocumentContent(dto).stream())
.collect(Collectors.toList());
String path = "D:\\work\\idea\\june\\entity-to-db-doc\\entity-to-db-doc\\src\\main\\java\\com\\june\\entitytodbdoc\\xx.md";
FileUtils.writeMarkdown(resultContentList,path);
FileUtils.writeMarkdown(resultContentList, path);
}
......
......@@ -20,7 +20,13 @@ public class ClassUtils {
public static String getGenericsType(String fullClassName,String fieldName){
Field field;
try {
field = Class.forName(fullClassName).getDeclaredField(fieldName);
try {
field = Class.forName(fullClassName).getDeclaredField(fieldName);
} catch (ClassNotFoundException e) {
// 静态内部类的情况
int lastIndex = fullClassName.lastIndexOf(".");
field = Class.forName(fullClassName.substring(0, lastIndex) + "$" + fullClassName.substring(lastIndex + 1)).getDeclaredField(fieldName);
}
} catch (Exception e) {
e.printStackTrace();
return null;
......
......@@ -10,6 +10,8 @@ import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 获取字段注释工具类
......@@ -68,35 +70,65 @@ public class GetClassCommentUtils {
return classes[0];
}
private static final Pattern PATTERN = Pattern.compile("^(.+)\\$(.+?)\\.java$");
private static ClassDoc getInnerClassDoc(String beanFilePath) {
if (!beanFilePath.contains("$")) {
return getClassDoc(beanFilePath);
}
Matcher matcher = PATTERN.matcher(beanFilePath);
if (!matcher.matches()) {
return getClassDoc(beanFilePath);
}
String superClassPath = matcher.group(1) + ".java"; // 将 $ 前的路径替换为 .java 后缀
String className = matcher.group(2); // 获取类名部分
ClassDoc superClassDoc = getClassDoc(superClassPath);
if (Objects.isNull(superClassDoc)) {
return null;
}
ClassDoc[] classDocs = superClassDoc.innerClasses();
if (ArrayUtils.isEmpty(classDocs)) {
return null;
}
for (ClassDoc classDoc : classDocs) {
if ((superClassDoc.typeName() + "." + className).equals(classDoc.name())) {
return classDoc;
}
}
return null;
}
private static void handleField(ClassDoc classDoc, List<DocumentInfoDTO.FieldInfoDTO> fieldInfoDTOList) {
// 获取属性名称和注释
FieldDoc[] fields = classDoc.fields(false);
doHandleField(fieldInfoDTOList, fields,classDoc.qualifiedName());
doHandleField(fieldInfoDTOList, fields, classDoc.qualifiedName());
}
private static void doHandleField(List<DocumentInfoDTO.FieldInfoDTO> fieldInfoDTOList, FieldDoc[] fields,String classFullName) {
private static void doHandleField(List<DocumentInfoDTO.FieldInfoDTO> fieldInfoDTOList, FieldDoc[] fields, String classFullName) {
// 处理字段信息
for (FieldDoc field : fields) {
if(field.isTransient() || field.isFinal()){
if (field.isTransient() || field.isFinal()) {
continue;
}
DocumentInfoDTO.FieldInfoDTO fieldInfoDTO = new DocumentInfoDTO.FieldInfoDTO(field.name(), field.type().typeName(), getRealFieldComment(field.commentText()));
// 判断是否是自己创建的类型
String fieldClassFullName = field.type().qualifiedTypeName();
if(isSelfClass(fieldClassFullName)){
if (fieldClassFullName.endsWith("ArticleOptionInfo")) {
fieldInfoDTO.setChildrenFieldList(getArticleOptionInfoFieldInfo());
} else if (isSelfClass(fieldClassFullName)) {
List<DocumentInfoDTO.FieldInfoDTO> children = new LinkedList<>();
handleField(getRealClassDoc(field.type().asClassDoc()),children);
handleField(getRealClassDoc(field.type().asClassDoc()), children);
fieldInfoDTO.setChildrenFieldList(children);
}else if(isCollection(fieldClassFullName)){
} else if (isCollection(fieldClassFullName)) {
// 是否是集合,获取集合的真正名称
String genericsType = ClassUtils.getGenericsType(classFullName, field.name());
if(StringUtils.isNotBlank(genericsType)){
if (StringUtils.isNotBlank(genericsType)) {
// 设置当前字段的字段类型
fieldInfoDTO.setFieldType(String.format("%s&lt;%s&gt;", fieldInfoDTO.getFieldType(), genericsType.substring(genericsType.lastIndexOf(".") + 1)));
if(isSelfClass(genericsType)){
getRealClassDoc(genericsType).ifPresent(fieldDoc->{
if (isSelfClass(genericsType)) {
getRealClassDoc(genericsType).ifPresent(fieldDoc -> {
List<DocumentInfoDTO.FieldInfoDTO> children = new LinkedList<>();
handleField(fieldDoc,children);
handleField(fieldDoc, children);
fieldInfoDTO.setChildrenFieldList(children);
});
}
......@@ -119,7 +151,6 @@ public class GetClassCommentUtils {
try {
return Collection.class.isAssignableFrom(Class.forName(fieldClassFullName));
} catch (ClassNotFoundException e) {
e.printStackTrace();
return false;
}
}
......@@ -137,13 +168,26 @@ public class GetClassCommentUtils {
*
* @return {@link List}<{@link DocumentInfoDTO.FieldInfoDTO}>
*/
private static List<DocumentInfoDTO.FieldInfoDTO> getBaseMongoFieldInfo(){
private static List<DocumentInfoDTO.FieldInfoDTO> getBaseMongoFieldInfo() {
List<DocumentInfoDTO.FieldInfoDTO> resultList = new LinkedList<>();
resultList.add(new DocumentInfoDTO.FieldInfoDTO("_id", "ObjectId", "主键ID"));
resultList.add(new DocumentInfoDTO.FieldInfoDTO("validStatus", "String", "有效标识符,1-有效,2-无效"));
resultList.add(new DocumentInfoDTO.FieldInfoDTO("version", "Long", "乐观锁版本号"));
resultList.add(new DocumentInfoDTO.FieldInfoDTO("updateTime", "Date", "修改时间"));
resultList.add(new DocumentInfoDTO.FieldInfoDTO("createTime", "Date", "创建时间"));
return resultList;
}
/**
* 获取 ArticleOptionInfo 字段信息
*
* @return {@link List}<{@link DocumentInfoDTO.FieldInfoDTO}>
*/
private static List<DocumentInfoDTO.FieldInfoDTO> getArticleOptionInfoFieldInfo() {
List<DocumentInfoDTO.FieldInfoDTO> resultList = new LinkedList<>();
resultList.add(new DocumentInfoDTO.FieldInfoDTO("_id","ObjectId","主键ID"));
resultList.add(new DocumentInfoDTO.FieldInfoDTO("validStatus","String","有效标识符,1-有效,2-无效"));
resultList.add(new DocumentInfoDTO.FieldInfoDTO("version","Long","乐观锁版本号"));
resultList.add(new DocumentInfoDTO.FieldInfoDTO("updateTime","Date","修改时间"));
resultList.add(new DocumentInfoDTO.FieldInfoDTO("createTime","Date","创建时间"));
resultList.add(new DocumentInfoDTO.FieldInfoDTO("accountId", "String", "用户id"));
resultList.add(new DocumentInfoDTO.FieldInfoDTO("account", "String", "用户code"));
resultList.add(new DocumentInfoDTO.FieldInfoDTO("accountName", "String", "操作这一刻的用户名称"));
return resultList;
}
......@@ -194,7 +238,7 @@ public class GetClassCommentUtils {
if(StringUtils.isBlank(inJarClassPath)){
return Optional.empty();
}
return Optional.ofNullable(getClassDoc(inJarClassPath));
return Optional.ofNullable(getInnerClassDoc(inJarClassPath));
}
......
......@@ -2,6 +2,7 @@ package com.june.entitytodbdoc.utils;
import org.apache.commons.lang3.StringUtils;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
......@@ -12,38 +13,43 @@ import java.util.Map;
public class JarPathAndPackageMapping {
private static final String PATH_PREFIX = "D:\\work\\idea\\june\\entity-to-db-doc\\entity-to-db-doc\\target\\distro-javadoc-sources\\";
private static final String LOCAL_PATH_PREFIX = "D:\\work\\idea\\june\\entity-to-db-doc\\entity-to-db-doc\\src\\main\\java\\";
/**
* key 是包名前缀,value 是 文件路径前缀
*/
private static final Map<String,String> MAPPING = new HashMap<>();
private static final Map<String, String> MAPPING = new HashMap<>();
static {
mapping("com.jiankangyouyi.cloud.basedata.api","health-cloud-base-data-api-2.2-TK-SNAPSHOT-sources");
mapping("com.jiankangyouyi.cloud.basedata.model","health-cloud-base-data-web-1.0-TK-SNAPSHOT-sources");
mappingJar("com.jiankangyouyi.cloud.basedata.api", "health-cloud-base-data-api-2.2-TK-SNAPSHOT-sources");
}
private static void mapping(String packageName,String path){
MAPPING.put(packageName,PATH_PREFIX + path + "\\");
private static void mappingJar(String packageName, String path) {
MAPPING.put(packageName, PATH_PREFIX + path + "\\");
}
/**
* 获取在jar包中的文件路径,如果不在jar包中返回null
*
* @param classFullName 全路径名称
* @return classDoc
*/
public static String getInJarClassPath(String classFullName){
if(StringUtils.isBlank(classFullName)){
public static String getInJarClassPath(String classFullName) {
if (StringUtils.isBlank(classFullName)) {
return null;
}
for (Map.Entry<String, String> entry : MAPPING.entrySet()) {
boolean isMatch = classFullName.startsWith(entry.getKey());
if (!isMatch){
if (!isMatch) {
continue;
}
return entry.getValue() + packageToPath(classFullName);
}
// 从当前目录找下
File file = new File(LOCAL_PATH_PREFIX + packageToPath(classFullName));
if (file.exists()) {
return file.getAbsolutePath();
}
return null;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment