|
@@ -30,6 +30,7 @@ import com.develop.common.tag.CURRENT_USER_ID
|
|
|
import com.develop.common.tuya_bean.RecipesBean
|
|
|
import com.develop.common.utils.CommonUtils
|
|
|
import com.develop.common.utils.Resource
|
|
|
+import com.develop.step.TuyaCookStepType
|
|
|
import com.develop.step.ui.recipes_detail.model.CookDetailInfo
|
|
|
import com.drake.net.Get
|
|
|
import com.drake.net.component.Progress
|
|
@@ -47,6 +48,7 @@ class CookDetailViewModel : BaseViewModel() {
|
|
|
|
|
|
var addLikeLiveData = MutableLiveData<Boolean>()
|
|
|
var deleteLikeLiveData = MutableLiveData<Boolean>()
|
|
|
+ var stepLiveDataString = MutableLiveData<String>()
|
|
|
|
|
|
var recipeNumber: String? = null
|
|
|
private var mRecipeUrl: String? = null
|
|
@@ -54,6 +56,8 @@ class CookDetailViewModel : BaseViewModel() {
|
|
|
//是否线上菜谱
|
|
|
var isRemote = false
|
|
|
|
|
|
+ var isTuyaStep = false
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 数据源: 食谱编号
|
|
@@ -80,116 +84,17 @@ class CookDetailViewModel : BaseViewModel() {
|
|
|
json, RecipesBean::class.java, object : CommonUtils.TuyaHttp<RecipesBean> {
|
|
|
override fun bean(t: RecipesBean) {
|
|
|
|
|
|
- var cookTime = t.cookTime
|
|
|
- var makeHours = cookTime / 3600;
|
|
|
- var makeMinutes = (cookTime % 3600) / 60;
|
|
|
- var userNum = t.pv ?: 0
|
|
|
-
|
|
|
- var devRecipe = DevRecipe(
|
|
|
- t.id.toString(),
|
|
|
- t.id.toString(),
|
|
|
- "1.0",
|
|
|
- lang,
|
|
|
- "",
|
|
|
- t.mainImg,
|
|
|
- 0,
|
|
|
- 0,
|
|
|
- makeHours,
|
|
|
- makeMinutes,
|
|
|
- 0,
|
|
|
- 0,
|
|
|
- number,
|
|
|
- t.easyLevelDesc,
|
|
|
- "",
|
|
|
- t.name,
|
|
|
- t.desc,
|
|
|
- 0.0,
|
|
|
- userNum.toLong(),
|
|
|
- t.gmtModified,
|
|
|
- t.gmtCreate,
|
|
|
- "",
|
|
|
- ""
|
|
|
- )
|
|
|
-
|
|
|
- val includeAccessory = mutableListOf<DevAccessory>()
|
|
|
- var devRecipeFoodList = mutableListOf<DevRecipeFood>()
|
|
|
- var devRecipeNutritionList = mutableListOf<DevRecipeNutrition>()
|
|
|
+ //处理涂鸦步骤
|
|
|
+ isTuyaStep = true
|
|
|
var devRecipeCookingStep = mutableListOf<DevRecipeCookingStep>()
|
|
|
- val includePortionSize = mutableListOf<DevRecipePortionSize>()
|
|
|
- //不add进去,那边会报错,直接随便新增一个
|
|
|
- includePortionSize.add(
|
|
|
- DevRecipePortionSize(
|
|
|
- "321654897",
|
|
|
- "2212zxc",
|
|
|
- "1542sqsc",
|
|
|
- "11wwss",
|
|
|
- lang,
|
|
|
- 1,
|
|
|
- 1
|
|
|
- )
|
|
|
- )
|
|
|
- var i = 1
|
|
|
- t.foodInfoVOList.forEach {
|
|
|
- devRecipeFoodList.add(
|
|
|
- DevRecipeFood(
|
|
|
- it.id.toString(),
|
|
|
- it.menuFoodRelationVO.foodId.toString(),
|
|
|
- it.menuFoodRelationVO.amount.toDouble(),
|
|
|
- it.menuFoodRelationVO.menuId.toString(),
|
|
|
- lang,
|
|
|
- "g",
|
|
|
- it.name,
|
|
|
- "",
|
|
|
- it.gmtModified,
|
|
|
- it.gmtCreate
|
|
|
- )
|
|
|
- )
|
|
|
-
|
|
|
- it.foodNutritionVOList.forEach { food ->
|
|
|
-
|
|
|
- devRecipeNutritionList.add(
|
|
|
- DevRecipeNutrition(
|
|
|
- food.id.toString(),
|
|
|
- number,
|
|
|
- i.toString(),
|
|
|
- food.value.toDouble(),
|
|
|
- "g",
|
|
|
- "",
|
|
|
- lang,
|
|
|
- it.gmtModified,
|
|
|
- it.gmtCreate
|
|
|
- )
|
|
|
- )
|
|
|
- i++
|
|
|
- }
|
|
|
|
|
|
- }
|
|
|
//步骤
|
|
|
- t.cookStepInfoVOList?.forEach {
|
|
|
- //判断有没有 有cookArgs是模式 ,没有就是描述
|
|
|
- var code = it.menuId + it.id
|
|
|
- if (it.cookArgs.isEmpty()){
|
|
|
-
|
|
|
- }
|
|
|
+ devRecipeCookingStep.addAll(getListStep(t.cookStepInfoVOList,number))
|
|
|
|
|
|
-// var dev = DevRecipeCookingStep()
|
|
|
+ //食谱
|
|
|
+ val detailInfo = getTuyaRecipes(t,number, lang)
|
|
|
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- val detailInfo = CookDetailInfo(
|
|
|
- devRecipe,
|
|
|
- includeAccessory,
|
|
|
- devRecipeFoodList,
|
|
|
- devRecipeNutritionList,
|
|
|
- includePortionSize
|
|
|
- )
|
|
|
+ stepLiveDataString.postValue(GsonUtils.toJson(devRecipeCookingStep))
|
|
|
portionSizeLiveData.postValue(detailInfo.portionSize.firstOrNull())
|
|
|
recipeLiveData.postValue(detailInfo)
|
|
|
}
|
|
@@ -261,6 +166,290 @@ class CookDetailViewModel : BaseViewModel() {
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+ //涂鸦转换步骤
|
|
|
+ fun getListStep(listStep: List<RecipesBean.CookStepInfoVOListBean>,number:String) :MutableList<DevRecipeCookingStep> {
|
|
|
+ var devStepList = mutableListOf<DevRecipeCookingStep>()
|
|
|
+ listStep.forEach {
|
|
|
+ //判断有没有 有cookArgs是模式 ,没有就是描述
|
|
|
+ var code = it.menuId + it.id
|
|
|
+ var wordMode = ""
|
|
|
+ var makeMode = ""
|
|
|
+ var direction = "0"
|
|
|
+ var description = ""
|
|
|
+ var autoStart = "manual"
|
|
|
+ var minute = 0
|
|
|
+ var second = 0
|
|
|
+ var rotateSpeed = 0
|
|
|
+ var temperature = 0
|
|
|
+ var updateTime = 0L
|
|
|
+ var createTime = 0L
|
|
|
+ var lang = ""
|
|
|
+ var audioFileCode = ""
|
|
|
+ var audioFilePath = ""
|
|
|
+ var photoVideoFileCode = ""
|
|
|
+ var photoVideoFilePath = ""
|
|
|
+ var numbers = ""
|
|
|
+ if (it.cookArgs==null) {
|
|
|
+ wordMode = "DESCRIPTION"
|
|
|
+ } else {
|
|
|
+ it.cookArgs.forEach { cookArgs ->
|
|
|
+ when (cookArgs.dpCode) {
|
|
|
+ TuyaCookStepType.DIRECTION -> {
|
|
|
+ if (cookArgs.dpValue == "true") {
|
|
|
+ direction = "0"
|
|
|
+ } else {
|
|
|
+ direction = "1"
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ TuyaCookStepType.GEAR -> {
|
|
|
+ rotateSpeed = cookArgs.dpValue.toInt()
|
|
|
+ }
|
|
|
+
|
|
|
+ TuyaCookStepType.TEMPERATURE -> {
|
|
|
+ temperature = cookArgs.dpValue.toInt()
|
|
|
+ }
|
|
|
+
|
|
|
+ TuyaCookStepType.TIME -> {
|
|
|
+ var time = cookArgs.dpValue.toInt()
|
|
|
+
|
|
|
+ val minutes: Int = time / 60 // 计算分钟
|
|
|
+
|
|
|
+ val seconds: Int = time % 60
|
|
|
+ minute = minutes
|
|
|
+ second = seconds
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ TuyaCookStepType.MODE -> {
|
|
|
+ when (cookArgs.dpValue) {
|
|
|
+ TuyaCookStepType.DP_DIY -> {
|
|
|
+ wordMode = TuyaCookStepType.ADAPTED_COOKING
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ TuyaCookStepType.DP_KNEAD -> {
|
|
|
+ wordMode = TuyaCookStepType.KNEAD_TOUGH
|
|
|
+ }
|
|
|
+
|
|
|
+ TuyaCookStepType.DP_STEAM -> {
|
|
|
+ wordMode = TuyaCookStepType.STEAM
|
|
|
+ }
|
|
|
+
|
|
|
+ TuyaCookStepType.DP_BOIL_WATER -> {
|
|
|
+ wordMode = TuyaCookStepType.BOIL_WATER
|
|
|
+ }
|
|
|
+
|
|
|
+ TuyaCookStepType.DP_SOUS_VIDE -> {
|
|
|
+ wordMode = TuyaCookStepType.SOVS_VIDE
|
|
|
+ }
|
|
|
+
|
|
|
+ TuyaCookStepType.DP_RICE -> {
|
|
|
+ wordMode = TuyaCookStepType.COOK_RICE
|
|
|
+ }
|
|
|
+
|
|
|
+ TuyaCookStepType.DP_CHOP -> {
|
|
|
+ wordMode = TuyaCookStepType.CHOP
|
|
|
+ }
|
|
|
+
|
|
|
+ TuyaCookStepType.DP_PULSE -> {
|
|
|
+ wordMode = TuyaCookStepType.TURBO
|
|
|
+ }
|
|
|
+
|
|
|
+ TuyaCookStepType.DP_SMOOTHIE -> {
|
|
|
+ wordMode = TuyaCookStepType.SMOOTHIE
|
|
|
+ }
|
|
|
+
|
|
|
+ TuyaCookStepType.DP_AUTO_CLEAN -> {
|
|
|
+ wordMode = TuyaCookStepType.AUTO_CLEAN
|
|
|
+ }
|
|
|
+
|
|
|
+ TuyaCookStepType.DP_WEIGHT -> {
|
|
|
+ wordMode = TuyaCookStepType.WIGHT
|
|
|
+ }
|
|
|
+
|
|
|
+ TuyaCookStepType.DP_DICE -> {
|
|
|
+ wordMode = TuyaCookStepType.DICING
|
|
|
+ }
|
|
|
+
|
|
|
+ TuyaCookStepType.DP_CITRUS_FRUITS -> {
|
|
|
+ wordMode = TuyaCookStepType.CITRUS_JUICER
|
|
|
+ }
|
|
|
+
|
|
|
+ TuyaCookStepType.DP_PEELING -> {
|
|
|
+ wordMode = TuyaCookStepType.POTATO_PEELER
|
|
|
+ }
|
|
|
+
|
|
|
+ TuyaCookStepType.DP_PREHEATING -> {
|
|
|
+ wordMode = TuyaCookStepType.SPECIAL_DIY_MODE
|
|
|
+ }
|
|
|
+
|
|
|
+ TuyaCookStepType.DP_TNTERMITTENT_STIR -> {
|
|
|
+ wordMode = TuyaCookStepType.BROWN
|
|
|
+ }
|
|
|
+
|
|
|
+ TuyaCookStepType.DP_WARNING -> {
|
|
|
+ wordMode = TuyaCookStepType.WARNING
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ numbers = it.step.toString()
|
|
|
+ it.langInfos.forEach { langInfosBean ->
|
|
|
+ description = langInfosBean.desc
|
|
|
+ lang = langInfosBean.lang
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * val code: String,
|
|
|
+ * val recipeNumber: String?,
|
|
|
+ * val number: String?,
|
|
|
+ * val workMode: String?,
|
|
|
+ * val photoVideoFileCode: String?,
|
|
|
+ * val photoVideoFilePath: String?,
|
|
|
+ * val audioFileCode: String?,
|
|
|
+ * val audioFilePath: String?,
|
|
|
+ * val makeMode: String?,
|
|
|
+ * val autoStart: String?,
|
|
|
+ * val temperature: Int?,
|
|
|
+ * val rotateDirection: String?,
|
|
|
+ * val rotateSpeed: Int?,
|
|
|
+ * val minute: Int?,
|
|
|
+ * val second: Int?,
|
|
|
+ * val description: String?,
|
|
|
+ * val lang: String?,
|
|
|
+ * val updateTime: Long?,
|
|
|
+ * val createTime: Long?
|
|
|
+ *
|
|
|
+ * **/
|
|
|
+ var dev = DevRecipeCookingStep(
|
|
|
+ code.toString(),
|
|
|
+ number,
|
|
|
+ numbers,
|
|
|
+ wordMode,
|
|
|
+ photoVideoFileCode,
|
|
|
+ photoVideoFilePath,
|
|
|
+ audioFileCode,
|
|
|
+ audioFilePath,
|
|
|
+ makeMode,
|
|
|
+ autoStart,
|
|
|
+ temperature,
|
|
|
+ direction,
|
|
|
+ rotateSpeed,
|
|
|
+ minute,
|
|
|
+ second,
|
|
|
+ description,
|
|
|
+ lang,
|
|
|
+ updateTime,
|
|
|
+ createTime
|
|
|
+ )
|
|
|
+ devStepList.add(dev)
|
|
|
+ }
|
|
|
+
|
|
|
+ return devStepList
|
|
|
+
|
|
|
+ }
|
|
|
+ //涂鸦转换食谱
|
|
|
+ fun getTuyaRecipes(t: RecipesBean, number: String, lang: String): CookDetailInfo {
|
|
|
+ var cookTime = t.cookTime
|
|
|
+ var makeHours = cookTime / 3600;
|
|
|
+ var makeMinutes = (cookTime % 3600) / 60;
|
|
|
+ var userNum = t.pv ?: 0
|
|
|
+
|
|
|
+ var devRecipe = DevRecipe(
|
|
|
+ t.id.toString(),
|
|
|
+ t.id.toString(),
|
|
|
+ "1.0",
|
|
|
+ lang,
|
|
|
+ "",
|
|
|
+ t.mainImg,
|
|
|
+ 0,
|
|
|
+ 0,
|
|
|
+ makeHours,
|
|
|
+ makeMinutes,
|
|
|
+ 0,
|
|
|
+ 0,
|
|
|
+ number,
|
|
|
+ t.easyLevelDesc,
|
|
|
+ "",
|
|
|
+ t.name,
|
|
|
+ t.desc,
|
|
|
+ 0.0,
|
|
|
+ userNum.toLong(),
|
|
|
+ t.gmtModified,
|
|
|
+ t.gmtCreate,
|
|
|
+ "",
|
|
|
+ ""
|
|
|
+ )
|
|
|
+
|
|
|
+ val includeAccessory = mutableListOf<DevAccessory>()
|
|
|
+ var devRecipeFoodList = mutableListOf<DevRecipeFood>()
|
|
|
+ var devRecipeNutritionList = mutableListOf<DevRecipeNutrition>()
|
|
|
+ val includePortionSize = mutableListOf<DevRecipePortionSize>()
|
|
|
+ //不add进去,那边会报错,直接随便新增一个
|
|
|
+ includePortionSize.add(
|
|
|
+ DevRecipePortionSize(
|
|
|
+ "321654897",
|
|
|
+ "2212zxc",
|
|
|
+ "1542sqsc",
|
|
|
+ "11wwss",
|
|
|
+ lang,
|
|
|
+ 1,
|
|
|
+ 1
|
|
|
+ )
|
|
|
+ )
|
|
|
+ var i = 1
|
|
|
+ t.foodInfoVOList.forEach {
|
|
|
+ devRecipeFoodList.add(
|
|
|
+ DevRecipeFood(
|
|
|
+ it.id.toString(),
|
|
|
+ it.menuFoodRelationVO.foodId.toString(),
|
|
|
+ it.menuFoodRelationVO.amount.toDouble(),
|
|
|
+ it.menuFoodRelationVO.menuId.toString(),
|
|
|
+ lang,
|
|
|
+ "g",
|
|
|
+ it.name,
|
|
|
+ "",
|
|
|
+ it.gmtModified,
|
|
|
+ it.gmtCreate
|
|
|
+ )
|
|
|
+ )
|
|
|
+
|
|
|
+ it.foodNutritionVOList.forEach { food ->
|
|
|
+
|
|
|
+ devRecipeNutritionList.add(
|
|
|
+ DevRecipeNutrition(
|
|
|
+ food.id.toString(),
|
|
|
+ number,
|
|
|
+ i.toString(),
|
|
|
+ food.value.toDouble(),
|
|
|
+ "g",
|
|
|
+ "",
|
|
|
+ lang,
|
|
|
+ it.gmtModified,
|
|
|
+ it.gmtCreate
|
|
|
+ )
|
|
|
+ )
|
|
|
+ i++
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return CookDetailInfo(
|
|
|
+ devRecipe,
|
|
|
+ includeAccessory,
|
|
|
+ devRecipeFoodList,
|
|
|
+ devRecipeNutritionList,
|
|
|
+ includePortionSize
|
|
|
+ )
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
|
|
|
fun addLikeRecipes(number: String) {
|
|
|
var map = HashMap<String, Any>()
|