<?php


namespace app\p\logic;
use app\model\PalLog;
use app\model\Staff as StaffModel;
use app\model\StaffDepartment as StaffDepartmentModel;
use app\model\Department as DepartmentModel;
use app\model\NutritionConsume as NutritionConsumeModel;
use app\model\NutritionStaff as NutritionStaffModel;
use app\model\Nutrition as NutritionModel;
use app\model\NutritionSet as NutritionSetModel;
use app\model\NutritionScheme as NutritionSchemeModel;
use app\model\NutritionSchemeExt as NutritionSchemeExtModel;
use app\model\NutritionTime as NutritionTimeModel;
use app\model\Sport as SportModel;
use app\model\TrainPhase as TrainPhaseModel;
use think\Db;
use think\Exception;

class NutritionScheme {
    public $staffModel;
    public $staffDepartmentModel;
    public $departmentModel;
    public $nutritionConsumeModel;
    public $nutritionStaffModel;
    public $nutritionModel;
    public $nutritionSetModel;
    public $nutritionSchemeModel;
    public $nutritionSchemeExtModel;
    public $nutritionTimeModel;
    public $SportModel;
    private $TrainPhaseModel;
    private $train_problem = array('0'=>'补充能量','1'=>'预防抽筋','2'=>'恢复肌肉疲劳','3'=>'补充肌酸','4'=>'消除乳酸','5'=>'提高血红蛋白','6'=>'提高睾酮','7'=>'提高神经兴奋'
                                  ,'8'=>'改善睡眠','9'=>'保护关节软骨','10'=>'减控体重','11'=>'增肌增重','12'=>'降肌酸激酶防损伤','13'=>'降血尿素促恢复','14'=>'提高免疫力');
    public function __construct() {
        $this->staffModel = new StaffModel();
        $this->staffDepartmentModel = new StaffDepartmentModel();
        $this->departmentModel = new DepartmentModel();
        $this->nutritionConsumeModel = new NutritionConsumeModel();
        $this->nutritionStaffModel = new NutritionStaffModel();
        $this->nutritionModel = new NutritionModel();
        $this->nutritionSetModel = new NutritionSetModel();
        $this->nutritionSchemeModel = new NutritionSchemeModel();
        $this->nutritionSchemeExtModel = new NutritionSchemeExtModel();
        $this->nutritionTimeModel = new NutritionTimeModel();
        $this->sportModel = new SportModel();
        $this->TrainPhaseModel = new TrainPhaseModel();
    }

    /*
     * 获取服用跟踪记录的列表
     * */
    public function lists($where=[], $page=1, $pageSize=15, $orderBy=[], $field=['*']) {
        if(isset($where['department_uuids'])){
            //增加根据部门筛选
            $department_uuid = $this->departmentModel->getChildUuids($where['department_uuids']);
            unset($where['department_uuids']);
            $staff_uuid = $this->staffDepartmentModel->whereIn('department_uuid',$department_uuid)->column('staff_uuid');
            $staff_uuid = isset($where['uuid'][1]) ? array_intersect($where['uuid'][1],$staff_uuid) : $staff_uuid;
            $where['uuid'] = ['in',$staff_uuid];
        }
        //获取所有有权限的人员数据
        $staffs = $this->staffModel->inquiry($where, $page, $pageSize, $orderBy, $field);
        foreach($staffs as $key=>$staff) {
            //部门
            $department_uuid = $this->staffDepartmentModel->where(['staff_uuid' => $staff['uuid']])->column('department_uuid');
            $department_name = $this->departmentModel->distinct(true)->where(['status'=>1,'is_show'=>1])->whereIn('uuid',$department_uuid)->column('name');
            $staffs[$key]['department_name'] = implode(',',$department_name);
            //最新取用时间
            $staffs[$key]['consume_time'] = null;
            $consume = $this->nutritionConsumeModel->where(['staff_uuid'=>$staff['uuid']])->field("staff_uuid,date_format(consume_time, '%Y-%m-%d %H:%i') consume_time")->order("consume_time desc")->find();
            if(!empty($consume)) {
                $consume = $consume->toArray();
                $staffs[$key]['consume_time'] = $consume['consume_time'];
            }
            //最新设定人、设定时间
            $staffs[$key]['set_time'] = null;
            $staffs[$key]['set_by'] = null;
            $scheme = $this->nutritionStaffModel->where(['staff_uuid'=>$staff['uuid']])->field("staff_uuid,date_format(create_time, '%Y-%m-%d %H:%i') set_time, create_by")->order("create_time desc")->find();
            if(!empty($scheme)) {
                $scheme = $scheme->toArray();
                $staffs[$key]['set_time'] = $scheme['set_time'];
                $staffs[$key]['set_by'] = $scheme['create_by'];
            }
        }
        return $staffs;
    }

    /*
     * 服用跟踪-列表的总数
     * */
    public function totalCount($where=[]) {
        if(isset($where['department_uuids'])){
            //增加根据部门筛选
            $department_uuid = $this->departmentModel->getChildUuids($where['department_uuids']);
            unset($where['department_uuids']);
            $staff_uuid = $this->staffDepartmentModel->whereIn('department_uuid',$department_uuid)->column('staff_uuid');
            $staff_uuid = isset($where['uuid'][1]) ? array_intersect($where['uuid'][1],$staff_uuid) : $staff_uuid;
            $where['uuid'] = ['in',$staff_uuid];
        }
        return $this->staffModel->inquiryCount($where);
    }

    /*
     * 服用记录查看页面-运动员的实际取用的日期
     * */
    public function getDate($staff_uuid) {
        $date = null;
        $res = $this->nutritionConsumeModel->where(['staff_uuid'=>$staff_uuid])->order("consume_time desc")->field('consume_time')->select();
        $consume_time = array();
        if($res) {
            $res = $res->toArray();
            foreach ($res as $value) {
                $date = date("Y-m-d", strtotime($value['consume_time']));
                if(!in_array($date, $consume_time)){
                    $consume_time[] = $date;
                }
            }
        }
        return $consume_time;
    }

    /*
     * 服用记录-查看页面具体数据
     * 1、实际服用营养品数据
     * 2、推荐营养品方案
     * 3、调整后的营养品方案
     * */
    public function getNutritionConsume($staff_uuid, $date) {
        $res = ['actual'=>[],'recommend'=>[],'adjust'=>[]];
        //获取运动员实际营养品使用方案
        $actual_res = $this->getNutritionConsumeActual($staff_uuid, $date);
        $staff_info = $actual_res['staff_info'];//获取运动员基本信息
        unset($actual_res['staff_info']);
        $res['actual'] = $actual_res;
        $stage = '';//初始化“阶段”数据
        //获取三组基本信息的数组：训练时间、选取阶段、服用份数单位
        $train_time = array_column(config("train_time"), "name", "id");
        $stage_name = array_column(config("stage"), "name", "uuid");
        $use_number_unit = array_column(config("use_number_unit"), "item", "id");
        //根据需要查看的日期段，获取在时间范围内最后插入的一条数据————具体要查看的方案的uuid
        $get_scheme_uuid = $this->nutritionSchemeModel->getUuidByDate($staff_uuid, $date);
        if (is_array($get_scheme_uuid) && !empty($get_scheme_uuid[0])) {
            $scheme_uuid = $get_scheme_uuid[0];
        } else {
            return $res;
        }
        //获取推荐的营养方案
        $recommend_res = $this->nutritionSchemeModel->schemeRead($scheme_uuid, 1);
        foreach ($recommend_res as $key => $value){
            //处理字段，转换为汉字
            $value['train_time_cn'] = isset($train_time[$value['train_time']])?$train_time[$value['train_time']]:'';
            $value['use_number_unit_cn'] = isset($use_number_unit[$value['use_number_unit']])?$use_number_unit[$value['use_number_unit']]:'';
            $stage = $value['stage'];
            $value['img_path'] = getImgFullPath($value['img_path']);
            $recommend_res[$key] = $value;
        }
        //根据推荐的营养品数组，获取营养品的摄入总值
        $recommend_res_sum = $this->nutritionSum($recommend_res);
        $res['recommend'] = ['nutrition_consume'=>$recommend_res,"nutrition_content"=>$recommend_res_sum];
        //获取推荐后又调整的的营养方案
        $adjust_res = $this->nutritionSchemeModel->schemeRead($scheme_uuid, 2);
        foreach ($adjust_res as &$value){
            $value['train_time_cn'] = isset($train_time[$value['train_time']])?$train_time[$value['train_time']]:'';
            $value['use_number_unit_cn'] = isset($use_number_unit[$value['use_number_unit']])?$use_number_unit[$value['use_number_unit']]:'';
            $value['img_path'] = getImgFullPath($value['img_path']);
        }
        $adjust_res_sum = $this->nutritionSum($adjust_res);
        $res['adjust'] = ['nutrition_consume'=>$adjust_res,"nutrition_content"=>$adjust_res_sum];
        $staff_info['stage'] = $stage ? $stage : '';//根据 阶段id ，将阶段信息写入基本信息中
        $staff_info['stage_cn'] = $stage ? $stage_name[$stage] : '';
        $staff_info['head_img'] = getImgFullPath($staff_info['head_img']);
        $res['staff_info'] = $staff_info;
        return $res;
    }

    /*
     * 服用跟踪-查看
     * 实际服用营养品数据的获取
     * */
    public function getNutritionConsumeActual($staff_uuid, $date) {
        $res = ["staff_info"=>[], "nutrition_consume"=>[], "nutrition_content"=>['power'=>0,'carbohydrate'=>0,'protein'=>0,'fat'=>0,'sodium'=>0]];
        $res['staff_info'] = $this->staffModel->read($staff_uuid);
        if(empty($res['staff_info'])) {
            return $res;
        }
        if(empty($date)) {
            return $res;
        }
        //获取运动项与部门字段
        $get_sport_name = $this->sportModel->inquiryColumn(['uuid'=>['in',$res['staff_info']['sport_event_uuid']]],'name');
        $res['staff_info']['sport_event_name'] = implode(',',$get_sport_name);
        $get_department_name = $this->staffModel->getStaffByDepartment(['a.uuid'=>$staff_uuid],'c.name');
        $department_name = array();
        foreach ($get_department_name as $value){
            $department_name[] = $value['name'];
        }
        $res['staff_info']['department_name'] = implode(',',$department_name);
        $start_date = date("Y-m-d 00:00:00", strtotime($date));
        $end_date = date("Y-m-d 23:59:59", strtotime($date));
        $res['nutrition_consume'] = $this->nutritionConsumeModel->alias("a")
                ->join("nutrition b", "a.nutrition_uuid = b.uuid", "left")
                ->join("nutrition_set c", "b.set_uuid = c.uuid", "left")
                ->field("date_format(a.consume_time, '%Y-%m-%d') consume_date, date_format(a.consume_time,'%H:%i') consume_hour, a.train_status,a.train_time,a.use_volume,a.id,"
                        . "b.name nutrition_name,b.img_path,b.power,b.carbohydrate,b.protein,b.fat,b.sodium,b.use_weight,b.use_number,b.use_weight_unit,b.use_number_unit,"
                        . "c.name cate_name")
                ->where("a.staff_uuid = '{$staff_uuid}' and a.consume_time between '{$start_date}' and '{$end_date}' ")
                ->select()
                ->toArray();
        $train_status = array_column(config("train_status"), "name", "id");
        $train_time = array_column(config("train_time"), "name", "id");
        $use_number_unit = array_column(config("use_number_unit"), "item", "id");
        foreach($res['nutrition_consume'] as $key=>$consume) {
            $consume = \app\common\service\NutritionFloat82Write::physicalForModel($consume, 'nutrition', $this->nutritionModel);
            $res['nutrition_consume'][$key] = $consume;
            $res['nutrition_consume'][$key]['is_new'] = $consume['train_status'] == 9 ? 1 : 0;//用来标记是否为手动新增实际服用表的营养品(新增入的营养品可以修改服用阶段，实际取餐出来的营养品不可修改)
            $res['nutrition_consume'][$key]['train_status_cn'] = $train_status[$consume['train_status']];
            $res['nutrition_consume'][$key]['train_time_cn'] = $train_time[$consume['train_time']];
            $res['nutrition_consume'][$key]['use_number_unit'] = $use_number_unit[$consume['use_number_unit']];
            $res['nutrition_consume'][$key]['consume_stage'] = $this->getStage($consume['consume_hour']);
            $res['nutrition_consume'][$key]['img_path'] = getImgFullPath($consume['img_path']);
            $res['nutrition_content']['power'] += $consume['use_weight_unit'] == 3 ? (($consume['use_volume']*$consume['use_weight']/$consume['use_number'])*$consume['power']/100)*0.24/1000 : (($consume['use_volume']*$consume['use_weight']/$consume['use_number'])*$consume['power']/100)*0.24;
            $res['nutrition_content']['carbohydrate'] += $consume['use_weight_unit'] == 3 ? ($consume['use_volume']*$consume['use_weight']/$consume['use_number'])*$consume['carbohydrate']/100/1000 : ($consume['use_volume']*$consume['use_weight']/$consume['use_number'])*$consume['carbohydrate']/100;
            $res['nutrition_content']['protein'] += $consume['use_weight_unit'] == 3 ? ($consume['use_volume']*$consume['use_weight']/$consume['use_number'])*$consume['protein']/100/1000 : ($consume['use_volume']*$consume['use_weight']/$consume['use_number'])*$consume['protein']/100;
            $res['nutrition_content']['fat'] += $consume['use_weight_unit'] == 3 ? ($consume['use_volume']*$consume['use_weight']/$consume['use_number'])*$consume['fat']/100/1000 : ($consume['use_volume']*$consume['use_weight']/$consume['use_number'])*$consume['fat']/100;
            $res['nutrition_content']['sodium'] += $consume['use_weight_unit'] == 3 ? ($consume['use_volume']*$consume['use_weight']/$consume['use_number'])*$consume['sodium']/100/1000 : ($consume['use_volume']*$consume['use_weight']/$consume['use_number'])*$consume['sodium']/100;
        }
        $res['nutrition_content']['power'] = round($res['nutrition_content']['power']);
        $res['nutrition_content']['carbohydrate'] = round($res['nutrition_content']['carbohydrate']);
        $res['nutrition_content']['protein'] = round($res['nutrition_content']['protein']);
        $res['nutrition_content']['fat'] = round($res['nutrition_content']['fat']);
        $res['nutrition_content']['sodium'] = round($res['nutrition_content']['sodium']);
        return $res;
    }

    /*
     * 根据传入的营养品数据进行 营养物质总数计算 并返回
     * */
    public function nutritionSum($params) {
        $res = ['power'=>0,'carbohydrate'=>0,'protein'=>0,'fat'=>0,'sodium'=>0];
        foreach($params as $key=>$consume) {
            $res['power'] += $consume['use_weight_unit'] == 3 ? (($consume['use_volume']*$consume['use_weight']/$consume['use_number'])*$consume['power']/100)*0.24/1000 : (($consume['use_volume']*$consume['use_weight']/$consume['use_number'])*$consume['power']/100)*0.24;
            $res['carbohydrate'] += $consume['use_weight_unit'] == 3 ? ($consume['use_volume']*$consume['use_weight']/$consume['use_number'])*$consume['carbohydrate']/100/1000 : ($consume['use_volume']*$consume['use_weight']/$consume['use_number'])*$consume['carbohydrate']/100;
            $res['protein'] += $consume['use_weight_unit'] == 3 ? ($consume['use_volume']*$consume['use_weight']/$consume['use_number'])*$consume['protein']/100/1000 : ($consume['use_volume']*$consume['use_weight']/$consume['use_number'])*$consume['protein']/100;
            $res['fat'] += $consume['use_weight_unit'] == 3 ? ($consume['use_volume']*$consume['use_weight']/$consume['use_number'])*$consume['fat']/100/1000 : ($consume['use_volume']*$consume['use_weight']/$consume['use_number'])*$consume['fat']/100;
            $res['sodium'] += $consume['use_weight_unit'] == 3 ? ($consume['use_volume']*$consume['use_weight']/$consume['use_number'])*$consume['sodium']/100/1000 : ($consume['use_volume']*$consume['use_weight']/$consume['use_number'])*$consume['sodium']/100;
        }
        $res['power'] = round($res['power']);
        $res['carbohydrate'] = round($res['carbohydrate']);
        $res['protein'] = round($res['protein']);
        $res['fat'] = round($res['fat']);
        $res['sodium'] = round($res['sodium']);
        return $res;
    }

    /*
     * 根据时间判断时间段文字描述
     * */
    private function getStage($hour) {
        $stage = "";
        if($hour>=0 && $hour<12) {
            $stage = "上午";
        } elseif($hour>=12 && $hour<18) {
            $stage = "下午";
        } else {
            $stage = "晚上";
        }
        return $stage;
    }

    /*
     * 根据文字描述 判断时间数据
     * */
    private function getTime($stage) {
        $time = '00:00:00';
        switch ($stage){
            case '上午':
                $time = '00:00:00';
                break;
            case '下午':
                $time = '12:00:00';
                break;
            case '晚上':
                $time = '18:00:00';
                break;
        }
        return $time;
    }

    /**
     *  营养方案列表
     */
    public function schemeList($where, $page, $pageSize, $orderBy, $field, $user_data) {
        if($user_data['data_permission']){
            $field = ['a.*','b.num as staff_num'];
            $staff_uuid_arr = $user_data['staff'];
            $staff_uuid_str = '"' . implode(",", $staff_uuid_arr) . '"';
            //增加权限限制
            $subQuery = $this->nutritionStaffModel
                ->where(['staff_uuid'=>['in', $staff_uuid_arr]])
                ->field("nutrition_scheme_uuid, staff_uuid, sum(if(FIND_IN_SET(staff_uuid, {$staff_uuid_str}), 1, 0)) num")
                ->group("nutrition_scheme_uuid")
                ->buildSql();
            //根据关联表的人员总数(用有权限的)与主表内存储的所有关联人员数进行对比
            $nutrition = Db::name("nutrition_scheme")
                ->alias("a")
                ->join("{$subQuery} b", "a.uuid = b.nutrition_scheme_uuid", "right")
                ->join('staff c', 'b.staff_uuid = c.uuid', 'left')
                ->field($field)
                ->where($where)
                ->where("b.num = a.quantity")
                ->page($page, $pageSize)
                ->order($orderBy)
                ->select();
            $data['total'] = Db::name("nutrition_scheme")
                ->alias("a")
                ->join("{$subQuery} b", "a.uuid = b.nutrition_scheme_uuid", "right")
                ->join('staff c', 'b.staff_uuid = c.uuid', 'left')
                ->where($where)
                ->where("b.num = a.quantity")
                ->count();
        }else{
            $data['total'] = $this->nutritionSchemeModel->schemeCount($where);
            $nutrition = $this->nutritionSchemeModel->schemeSelect($where,$page,$pageSize,$orderBy, $field);
        }
        foreach ($nutrition as $key=>$value){
            //涉及部门的名称获取，此时都是拥有数据权限的数据所以不用做权限限制
            $get_department = $this->departmentModel->inquiryColumn(['uuid'=>['in', $value['department_uuids']]],'name');
            $department_name = implode(',',$get_department);
            $nutrition[$key]['department_name'] = $department_name;
        }
        $data['rows'] = $nutrition;
        return ['code' => 0, 'message' => '获取成功', 'data' =>$data];
    }

    /**
     * 添加/更改营养品模板
     * 2.0版本更改，只有新增
     */
    public function insert($params) {
        try{
            /*
             * 增加验证
             * */
            $insert_data = array();
            //新增或更新一条营养品方案
            $insert_data['uuid'] = guid();
            $insert_data['stage'] = $params['stage'];
            $insert_data['department_uuids'] = $params['department_uuids'];
            $insert_data['staff_uuids'] = $params['staff_uuids'];
            $insert_data['train_phase_str'] = $params['allSelectData'];
            $date = is_array($params['date']) ? $params['date'] : json_decode($params['date'],true);
            $insert_data['start_time'] = isset($date[0]) ? $date[0] : '2000-01-01';
            $insert_data['end_time'] = isset($date[1]) ? $date[1] : '2000-01-01';
            if($params['staff_uuids'])
                $insert_data['quantity'] = count(explode(',',$params['staff_uuids']));
            $insert_data['create_by'] = $params['create_by'];
            $insert_data['create_time'] = date('Y-m-d H:i:s');
            DB::startTrans();
            $res = $this->nutritionSchemeModel->add($insert_data);
            if ($res === false)
                throw new Exception('添加营养方案主表失败');
            //更新关联表
            //staff表：增加新数据
            $staff_uuid_arr = explode(',',$insert_data['staff_uuids']);
            if(is_array($staff_uuid_arr)){
                $add_staff_arr = array();
                foreach ($staff_uuid_arr as $staff_uuid){
                    $arr = array();
                    $arr['uuid'] = guid();
                    $arr['nutrition_scheme_uuid'] = $insert_data['uuid'];
                    $arr['staff_uuid'] = $staff_uuid;
                    $arr['create_time'] = date('Y-m-d H:i:s');
                    $arr['create_by'] = $params['create_by'];
                    $add_staff_arr[] = $arr;
                }
                $add_staff_res = $this->nutritionStaffModel->addAll($add_staff_arr);
                if ($add_staff_res === false)
                    throw new Exception('营养方案人员副表更新失败');
            }
            //SchemeExt表：增加新数据，将前端传入的数据转为数组
            $oldTableData = is_array($params['oldTableData'])?$params['oldTableData']:json_decode($params['oldTableData'], true);
            if(count($oldTableData)){
                $scheme_ext = $this->getSchemeExt($oldTableData,$insert_data,1);
                if($scheme_ext['code'])
                    throw new Exception($scheme_ext['message']);
                else
                    $scheme_ext = $scheme_ext['data'];
                $add_res = $this->nutritionSchemeExtModel->addAll($scheme_ext);
                if ($add_res === false)
                    throw new Exception('营养方案副表更新失败');
            }
            //判断是否为有新的“修改方案”
            if($params['is_edit'] == 'true'){
                $newTableData = is_array($params['newTableData'])?$params['newTableData']:json_decode($params['newTableData'], true);
                if(count($newTableData)){
                    $new_scheme_ext = $this->getSchemeExt($newTableData,$insert_data,2);
                    if($new_scheme_ext['code'])
                        throw new Exception($new_scheme_ext['message']);
                    else
                        $new_scheme_ext = $new_scheme_ext['data'];
                    $add_res = $this->nutritionSchemeExtModel->addAll($new_scheme_ext);
                    if ($add_res === false)
                        throw new Exception('营养方案副表更新失败');
                }
            }
            DB::commit();
        } catch (Exception $e) {
            DB::rollback();
            return ['code' => 1, 'message' => $e->getMessage(), 'data' =>[]];
        }
        return ['code' => 0, 'message' => '添加营养品成功', 'data' =>[]];
    }

    /*
     * 处理添加附表的数据
     * */
    public function getSchemeExt($scheme_ext, $insert_data, $type){
        try {
            $res = array();
            if (is_array($scheme_ext)) {
                //处理营养品模板关联表数据
                foreach ($scheme_ext as $value) {
                    if (isset($value['uuid']) && isset($insert_data['uuid']) && isset($value['use_time']) && isset($value['employ']) && isset($value['use_method'])) {
                        $data = array();
                        $data['uuid'] = guid();
                        $data['nutrition_uuid'] = $value['uuid'];
                        $data['nutrition_scheme_uuid'] = $insert_data['uuid'];
                        $data['create_time'] = $insert_data['create_time'];
                        $data['create_by'] = $insert_data['create_by'];
                        $data['use_time'] = $value['use_time'];
                        $data['use_volume'] = $value['use_number'];
                        $data['use_method'] = $value['use_method'];
                        $data['type'] = $type;
                        $res[] = $data;
                    } else {
                        throw new Exception('营养方案副表新增数据错误');
                    }
                }
            }else{
                throw new Exception('营养方案新增营养品数据数据不能为空');
            }
        }catch (Exception $e) {
            return ['code' => 1, 'message' => $e->getMessage(), 'data' =>[]];
        }
        return ['code' => 0, 'message' => '', 'data' =>$res];
    }

    /**
     * 读取营养方案模板
     * @param type $uuid
     */
    public function info($uuid) {
        $scheme = $this->nutritionSchemeModel->read($uuid);
        if(!$scheme){
            return ['code' => 1, 'message' => '不存在此方案', 'data' =>''];
        }
        $department_name = '';
        $staff_name = '';
        if($scheme['department_uuids']){
            $get_department = $this->departmentModel->inquiryColumn(['uuid'=>['in', $scheme['department_uuids']]],'name');
            $department_name = implode(',',$get_department);
        }
        if($scheme['staff_uuids']){
            $get_staff = $this->staffModel->inquiryColumn(['uuid'=>['in',$scheme['staff_uuids']]],'name');
            $staff_name = implode(',',$get_staff);
        }
        $scheme['department_name'] = $department_name;
        $scheme['staff_name'] = $staff_name;
        //查询是否有调整方案，有调整方案展示调整方案，没有调整方案展示推荐
        $get_type = $this->nutritionSchemeExtModel->inquiryCount(['nutrition_scheme_uuid'=>$uuid,'type'=>2]);
        if($get_type)
            $type = 2;
        else
            $type = 1;
        $scheme_ext = $this->nutritionSchemeExtModel->inquiryAllInfo(['nutrition_scheme_uuid'=>$uuid,'type'=>$type],'','');

        $use_number_unit = array_column(config("use_number_unit"), "item", "id");
        foreach ($scheme_ext as &$value) {
            $value['use_number_unit_cn'] = isset($use_number_unit[$value['use_number_unit']])?$use_number_unit[$value['use_number_unit']]:'';
            if(isset($value['train_time'])){
                if(!$value['train_time']){
                    $value['train_time'] = '';
                }else{
                    $value['train_time'] = "{$value['train_time']}";
                }
            }
            $value['img_path'] = getImgFullPath($value['img_path']);
        }
        $scheme['scheme_ext'] = $scheme_ext;
        //根据推荐的营养品数组，获取营养品的摄入总值
        $recommend_res_sum = $this->nutritionSum($scheme_ext);
        $scheme['nutrition_content'] = $recommend_res_sum;
        return ['code' => 0, 'message' => '获取成功', 'data' =>$scheme];
    }

    /**
     * 添加/更改营养品数据
     * @return array
     */
    public function updateNutrition($params) {
        try{
            $data = array();
            if(isset($params['consume_stage']) && isset($params['consume_date'])){
                $time = $this->getTime($params['consume_stage']);
                $data['consume_time'] = $params['consume_date'] . ' ' . $time;
            }
            if(isset($params['id'])){
                $data['use_volume'] = $params['use_volume'];
                //传入id数据时，进行数据的修改
                //此时一定是单条保存
                $res = $this->nutritionConsumeModel->modifyById($params['id'], $data);
            }else{
                //新增实际服用营养品数据
                //此时可以多条数据保存
                $nutrition_uuid_str = $params['nutrition_uuid'];
                $addDate = array();
                foreach (explode(',',$nutrition_uuid_str) as $nutrition_uuid){
                    $data['consume_time'] = $params['consume_date'] . ' ' . $this->getTime('上午');//默认上午
                    $data['staff_uuid'] = $params['staff_uuid'];
                    $data['nutrition_uuid'] = $nutrition_uuid;
                    $data['device_code'] = 0;//设备号默认0
                    $data['num'] = 0;//柜子号默认0
                    //用来标记是否为手动新增实际服用表的营养品(新增入的营养品可以修改服用阶段，实际取餐出来的营养品不可修改)
                    $data['train_status'] = 9;//训练类型默认1(此字段已弃用)
                    $data['train_time'] = 1;//训练时间默认1(此字段也弃用)
                    $data['use_volume'] = 1;//默认服用份数1
                    $addDate[] = $data;
                }
                $res = $this->nutritionConsumeModel->addAll($addDate);
            }
            if ($res === false) {
                throw new Exception('保存数据失败');
            }
        } catch (Exception $e) {
            return ['code' => 1, 'message' => $e->getMessage(), 'data' =>[]];
        }
        return ['code' => 0, 'message' => '添加营养品成功', 'data' =>[]];
    }

    /**
     *  删除
     * @return array
     */
    public function deleteNutrition($id) {
        $data = $this->nutritionConsumeModel->delById($id);
        if ($data === false){
            return ['code' => 1, 'message' => '删除失败', 'data' =>[]];
        }
        return ['code' => 0, 'message' => '删除成功', 'data' =>$data];
    }
    
   /**
     * 根据算法返回推荐方案
     * @name 柳洪博
     * @time 2021-07-22
     * @return array
     */
    public function getRecomment($nutrition_set, $staff_uuids, $nutritions, $select_train_phase) {
        try {
            //获取运动员的运动项
            $sport_events = $this->staffModel->inquiryColumn(['uuid' => ['in', $staff_uuids]], 'sport_event_uuid');
            //获取运动员运动项交集，获取运动项关注问题
            $sport_event_first = [];
            foreach ($sport_events as $key => $sport_event) {
                if ($sport_event)
                    $sport_event_array = explode(',', $sport_event);
                else
                    $sport_event_array = [];

                if ($key == 0)
                    $sport_event_first = $sport_event_array;
                else
                    $sport_event_first = array_intersect($sport_event_first, $sport_event_array);
            }

            //获取训练阶段对应问题 train_problem
            $train_phase = $this->TrainPhaseModel->where(['nutrition_time_uuid' => $nutrition_set])->select()->toArray();
            
            //获取营养品对应的分类，用于区分那些问题可以被选中
            $can_select = array();

            //推荐营养品数组
            $recommend_nutrition_array = array();
            $data['can_select'] = array();
            if ($nutritions) {
                $nutrition_set_list = $this->nutritionModel->nutritionSet(['a.uuid' => ['in', $nutritions],'a.status'=>1,'a.is_del'=>1], ['a.uuid,a.name,a.img_path,a.employ,a.use_method,b.id,b.use_time,b.use_time,a.power,a.carbohydrate,a.protein,a.fat,a.sodium,a.use_weight,a.use_weight_unit,a.use_number']);
                foreach ($nutrition_set_list as &$physicalNutritionRow) {
                    $physicalNutritionRow = \app\common\service\NutritionFloat82Write::physicalForModel($physicalNutritionRow, 'nutrition', $this->nutritionModel);
                }
                unset($physicalNutritionRow);
                $get_can_select = $this->getNutritionTime($nutritions);
                foreach ($nutrition_set_list as $list) {
                    $recommend_nutrition_array[$list['id']][] = $list;
//                    foreach ($nutrition_set_list as $phase) {
//                        $phase_nutrition_set = explode(',', $phase['nutrition_set']);
//                        if (in_array($list['id'], $phase_nutrition_set))
//                            $can_select[$phase['proble_id']] = $phase['proble_id'];
//                    }
                }
                $data['can_select'] = $get_can_select['data']['add_select_phase'];
            }
            $keynote_phase = array(); //重点关注问题分组
            foreach ($train_phase as $phase) {
                //重点关注问题
                if ($phase['type'] == 1) {
                    $keynote_phase[$phase['proble_id']] = $this->train_problem[$phase['proble_id']];
                    unset($this->train_problem[$phase['proble_id']]);
                }
            }
            //获取对应的特点
            $sport_traints = [];
            if (!empty($sport_event_first)) {
                $sport_traints = $this->sportModel->inquiryColumn(['uuid' => ['in', $sport_event_first]], 'trait');
                $sport_traints = array_unique($sport_traints);
            }
            
            //根据所选阶段与运动项，判断重点关注问题
            switch ($nutrition_set) {
                case '62788BFC-B347-196C-833A-291C9EDDD092':
                    foreach ($sport_traints as $sport_traint) {
                        if (in_array($sport_traint, array(1, 3, 6))) {
                            $keynote_phase[3] = $this->train_problem[3];
                            unset($this->train_problem[3]);
                        }
                        elseif ($sport_traint == 2) {
                            $keynote_phase[4] = $this->train_problem[4];
                            unset($this->train_problem[4]);
                        }
                        elseif ($sport_traint == 4) {
                            $keynote_phase[9] = $this->train_problem[9];
                            unset($this->train_problem[9]);
                        }
                        elseif ($sport_traint == 7) {
                            $keynote_phase[15] = $this->train_problem[15];
                            unset($this->train_problem[15]);
                        }
                    }
                    break;
                case 'B6B54AE6-1426-C816-CAD0-47538222B2CF':
                    foreach ($sport_traints as $sport_traint) {
                        if (in_array($sport_traint, array(1, 3, 6))) {
                            $keynote_phase[3] = $this->train_problem[3];
                            unset($this->train_problem[3]);
                        }
                        elseif ($sport_traint == 2) {
                            $keynote_phase[4] = $this->train_problem[4];
                            unset($this->train_problem[4]);
                        }
                        elseif ($sport_traint == 4) {
                            $keynote_phase[9] = $this->train_problem[9];
                            unset($this->train_problem[9]);
                        }
                        elseif ($sport_traint == 7) {
                            $keynote_phase[15] = $this->train_problem[15];
                            unset($this->train_problem[15]);
                        }
                    }

                    break;
                case 'A941CC36-12A5-171D-9774-9732188C06E1':
                    foreach ($sport_traints as $sport_traint) {
                        if (in_array($sport_traint, array(1, 3, 6))) {
                            $keynote_phase[3] = $this->train_problem[3];
                            unset($this->train_problem[3]);
                        }
                        elseif ($sport_traint == 2) {
                            $keynote_phase[4] = $this->train_problem[4];
                            unset($this->train_problem[4]);
                        }
                        elseif ($sport_traint == 4) {
                            $keynote_phase[9] = $this->train_problem[9];
                            unset($this->train_problem[9]);
                        }
                    }

                    break;
                case '45F20243-6088-F088-42DC-1213B966D6D2':
                    foreach ($sport_traints as $sport_traint) {
                        if (in_array($sport_traint, array(1, 3, 6))) {
                            $keynote_phase[3] = $this->train_problem[3];
                            unset($this->train_problem[3]);
                        }
                    }

                    break;
                case 'DCB3ADF7-C753-5079-8729-F07042C7EF54':

                    break;
                case '62788BFC-B347-196C-833A-291C9EDDD091':
                    foreach ($sport_traints as $sport_traint) {
                        if (in_array($sport_traint, array(1, 3, 6))) {
                            $keynote_phase[3] = $this->train_problem[3];
                            unset($this->train_problem[3]);
                        }
                        elseif ($sport_traint == 2) {
                            $keynote_phase[4] = $this->train_problem[4];
                            unset($this->train_problem[4]);
                        }
                        elseif ($sport_traint == 4) {
                            $keynote_phase[9] = $this->train_problem[9];
                            unset($this->train_problem[9]);
                        }
                        elseif ($sport_traint == 7) {
                            $keynote_phase[15] = $this->train_problem[15];
                            unset($this->train_problem[15]);
                        }
                    }
                    break;
            }
//            var_dump($data['can_select']);
//            var_dump($keynote_phase);die;
            //获取营养品方案
            //获取重点关注已被选中的问题
            
            if($select_train_phase === '')
              $select_keynote_phases = array_intersect(array_flip($data['can_select']), array_keys($keynote_phase));
            else
              $select_keynote_phases = explode(',', $select_train_phase);  
            
            $recommend_nutritions = array();
            //初始化定义
            $power = 0; //能量
            $tangyuan = 0; //糖原恢复
            $protien = 0; //蛋白补充
            $jisuan = 0; //肌酸补充
            $gaotong = 0; //改善睾酮
            $yanghua = 0; //抗氧化
            //var_dump($recommend_nutrition_array);
            foreach ($select_keynote_phases as $select_keynote_phase) {
                switch ($select_keynote_phase) {
                    //key为产品分类id,可从问题对应表中获取
                    case 0:
                        if (count($recommend_nutrition_array[3]) > 0) {
                            if(count($recommend_nutrition_array[3]) > 1)
                            {
                                $has_gn = 0;
                               foreach($recommend_nutrition_array[3] as $power_key=>$power_nutrition)
                               {
                                   if(strstr($power_nutrition['name'],'高能'))
                                   {
                                      //$recommend_nutrition_array[3][$power_key]['use_time'] = 'FBF385F6-32DB-0767-1BF7-BEBA00BEDD9C';
                                      $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[3][$power_key]['uuid']);
                                      
                                      foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                      {
                                        $recommend_nutritions[] = $recommend_nutrition_list;
                                      }
                                      unset($recommend_nutrition_array[3][$power_key]);
                                      $has_gn = 1;
                                      break;
                                   }
                               }
                               if(!$has_gn)
                               {
                                  //$recommend_nutrition_array[3][0]['use_time'] = 'FBF385F6-32DB-0767-1BF7-BEBA00BEDD9C';
                                  $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[3][0]['uuid']);
                                    foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                    {
                                      $recommend_nutritions[] = $recommend_nutrition_list;
                                    }
                                  //$recommend_nutritions[] = $recommend_nutrition_array[3][0];
                                  unset($recommend_nutrition_array[3][0]); 
                               }
                            }
                            else {
                              $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[3][0]['uuid']);
                              
                                foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                {
                                  $recommend_nutritions[] = $recommend_nutrition_list;
                                }
                              //$recommend_nutrition_array[3][0]['use_time'] = 'FBF385F6-32DB-0767-1BF7-BEBA00BEDD9C';
                              //$recommend_nutritions[] = $recommend_nutrition_array[3][0];
                              unset($recommend_nutrition_array[3][0]);
                            }
                            $power = 1; 
                        }
                        elseif (count($recommend_nutrition_array[9]) > 0) {
                            $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[9][0]['uuid']);
                            foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                            {
                              $recommend_nutritions[] = $recommend_nutrition_list;
                            }
//                            $recommend_nutrition_array[9][0]['use_time'] = '01EA0854-7A1C-BAA4-C66F-DB6D0743F1AC';
//                            $recommend_nutritions[] = $recommend_nutrition_array[9][0];
                            unset($recommend_nutrition_array[9][0]);
                            $tangyuan = 1;
                        }
                        
                        break;

                    case 1:
                        if (count($recommend_nutrition_array[2]) > 0) {
                            $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[2][0]['uuid']);
                            foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                            {
                              $recommend_nutritions[] = $recommend_nutrition_list;
                            }
//                            $recommend_nutrition_array[2][0]['use_time'] = 'FBF385F6-32DB-0767-1BF7-BEBA00BEDD9C';
//                            $recommend_nutritions[] = $recommend_nutrition_array[2][0];
                            unset($recommend_nutrition_array[2][0]);
                        }
                        break;

                    case 2:
                        
                        if (count($recommend_nutrition_array[9]) > 0 && !$tangyuan) {
                            $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[9][0]['uuid']);
                            foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                            {
                              $recommend_nutritions[] = $recommend_nutrition_list;
                            }
//                            $recommend_nutrition_array[9][0]['use_time'] = '01EA0854-7A1C-BAA4-C66F-DB6D0743F1AC';
//                            $recommend_nutritions[] = $recommend_nutrition_array[9][0];
                            unset($recommend_nutrition_array[9][0]);
                        }
                        elseif (count($recommend_nutrition_array[3]) > 0 && !$power) {
                            if(count($recommend_nutrition_array[3]) > 1)
                            {
                                $has_gn = 0;
                               foreach($recommend_nutrition_array[3] as $power_key=>$power_nutrition)
                               {
                                   if(strstr($power_nutrition['name'],'高能'))
                                   {
                                      $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[3][$power_key]['uuid']);
                                      foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                      {
                                        $recommend_nutritions[] = $recommend_nutrition_list;
                                      }
//                                      $recommend_nutrition_array[3][$power_key]['use_time'] = 'FBF385F6-32DB-0767-1BF7-BEBA00BEDD9C';
//                                      $recommend_nutritions[] = $recommend_nutrition_array[3][$power_key];
                                      unset($recommend_nutrition_array[3][$power_key]);
                                      $has_gn = 1;
                                      break;
                                   }
                               }
                               if(!$has_gn)
                               {
                                  $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[3][0]['uuid']);
                                  foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                  {
                                    $recommend_nutritions[] = $recommend_nutrition_list;
                                  }
//                                  $recommend_nutrition_array[3][0]['use_time'] = 'FBF385F6-32DB-0767-1BF7-BEBA00BEDD9C';
//                                  $recommend_nutritions[] = $recommend_nutrition_array[3][0];
                                  unset($recommend_nutrition_array[3][0]); 
                               }
                            }
                            else {
                              $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[3][0]['uuid']);
                                foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                {
                                  $recommend_nutritions[] = $recommend_nutrition_list;
                                }
//                              $recommend_nutrition_array[3][0]['use_time'] = 'FBF385F6-32DB-0767-1BF7-BEBA00BEDD9C';
//                              $recommend_nutritions[] = $recommend_nutrition_array[3][0];
                              unset($recommend_nutrition_array[3][0]);
                            }
                            $power = 1; 
                        }
                        if (count($recommend_nutrition_array[4]) > 0) {
                            $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[4][0]['uuid']);
                            foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                            {
                              $recommend_nutritions[] = $recommend_nutrition_list;
                            }
//                            $recommend_nutrition_array[4][0]['use_time'] = '01EA0854-7A1C-BAA4-C66F-DB6D0743F1AC';
//                            $recommend_nutritions[] = $recommend_nutrition_array[4][0];
                            unset($recommend_nutrition_array[4][0]);
                            $protien = 1;
                        }
                        break;

                    case 3:
                        if (count($recommend_nutrition_array[5]) > 0) {
                            $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[5][0]['uuid']);
                            foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                            {
                              $recommend_nutritions[] = $recommend_nutrition_list;
                            }
//                            $recommend_nutrition_array[5][0]['use_time'] = '01EA0854-7A1C-BAA4-C66F-DB6D0743F1AC';
//                            $recommend_nutritions[] = $recommend_nutrition_array[5][0];
                            unset($recommend_nutrition_array[5][0]);
                            $jisuan = 1;
                        }
                        break;

                    case 4:
                        if (count($recommend_nutrition_array[8]) > 0) {
                            $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[8][0]['uuid']);
                            foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                            {
                              $recommend_nutritions[] = $recommend_nutrition_list;
                            }
//                            $recommend_nutrition_array[8][0]['use_time'] = '01EA0854-7A1C-BAA4-C66F-DB6D0743F1AC';
//                            $recommend_nutritions[] = $recommend_nutrition_array[8][0];
                            unset($recommend_nutrition_array[8][0]);
                        }
                        break;

                    case 5:
                        if (count($recommend_nutrition_array[21]) > 0) {
                            $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[21][0]['uuid']);
                            foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                            {
                              $recommend_nutritions[] = $recommend_nutrition_list;
                            }
//                            if($recommend_nutrition_array[17][0]['employ']<=1)
//                            {
//                              $recommend_nutrition_array[17][0]['use_time'] = '54112F69-513C-439B-A2F5-A376755D4AB7';
//                              $recommend_nutritions[] = $recommend_nutrition_array[17][0];
//                            }
//                            elseif($recommend_nutrition_array[17][0]['employ']==2)
//                            {
//                              $recommend_nutrition_array[17][0]['use_time'] = '54112F69-513C-439B-A2F5-A376755D4AB7';
//                              $recommend_nutritions[] = $recommend_nutrition_array[17][0];
//                              $recommend_nutrition_array[17][0]['use_time'] = '3759D174-A4FB-AA74-6F35-EA0C27C926B1';
//                              $recommend_nutritions[] = $recommend_nutrition_array[17][0];
//                            }
//                            elseif($recommend_nutrition_array[17][0]['employ']>=3)
//                            {
//                              $recommend_nutrition_array[17][0]['use_time'] = 'EE709CE0-937F-F1D0-39A7-BCF815276010';
//                              $recommend_nutritions[] = $recommend_nutrition_array[17][0];
//                              $recommend_nutrition_array[17][0]['use_time'] = '54112F69-513C-439B-A2F5-A376755D4AB7';
//                              $recommend_nutritions[] = $recommend_nutrition_array[17][0];
//                              $recommend_nutrition_array[17][0]['use_time'] = '3759D174-A4FB-AA74-6F35-EA0C27C926B1';
//                              $recommend_nutritions[] = $recommend_nutrition_array[17][0];  
//                            }
                            unset($recommend_nutrition_array[21][0]);
                        }
                        if (count($recommend_nutrition_array[4]) > 0 && !$protien) {
                            $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[4][0]['uuid']);
                            foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                            {
                              $recommend_nutritions[] = $recommend_nutrition_list;
                            }
//                            $recommend_nutrition_array[4][0]['use_time'] = '01EA0854-7A1C-BAA4-C66F-DB6D0743F1AC';
//                            $recommend_nutritions[] = $recommend_nutrition_array[4][0];
                            unset($recommend_nutrition_array[4][0]);
                            $protien = 1;
                        }

                        if (count($recommend_nutrition_array[7]) > 0) {
                            $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[7][0]['uuid']);
                            foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                            {
                              $recommend_nutritions[] = $recommend_nutrition_list;
                            }
//                            $recommend_nutrition_array[7][0]['use_time'] = '96F8EA36-5FBF-F5AB-C86E-5F8495C70B32';
//                            $recommend_nutritions[] = $recommend_nutrition_array[7][0];
//                            $recommend_nutrition_array[7][0]['use_time'] = '9F43A429-61F5-6E50-847E-096A296BC80E';
//                            $recommend_nutritions[] = $recommend_nutrition_array[7][0];
                            unset($recommend_nutrition_array[7][0]);
                            $gaotong = 1;
                        }

                        if (count($recommend_nutrition_array[12]) > 0) {
                            $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[12][0]['uuid']);
                            foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                            {
                              $recommend_nutritions[] = $recommend_nutrition_list;
                            }
//                            if($recommend_nutrition_array[12][0]['employ']<=1)
//                            {
//                              $recommend_nutrition_array[12][0]['use_time'] = '54112F69-513C-439B-A2F5-A376755D4AB7';
//                              $recommend_nutritions[] = $recommend_nutrition_array[12][0];
//                            }
//                            elseif($recommend_nutrition_array[12][0]['employ']==2)
//                            {
//                              $recommend_nutrition_array[12][0]['use_time'] = '54112F69-513C-439B-A2F5-A376755D4AB7';
//                              $recommend_nutritions[] = $recommend_nutrition_array[12][0];
//                              $recommend_nutrition_array[12][0]['use_time'] = '3759D174-A4FB-AA74-6F35-EA0C27C926B1';
//                              $recommend_nutritions[] = $recommend_nutrition_array[12][0];
//                            }
//                            elseif($recommend_nutrition_array[12][0]['employ']>=3)
//                            {
//                              $recommend_nutrition_array[12][0]['use_time'] = 'EE709CE0-937F-F1D0-39A7-BCF815276010';
//                              $recommend_nutritions[] = $recommend_nutrition_array[12][0];
//                              $recommend_nutrition_array[12][0]['use_time'] = '54112F69-513C-439B-A2F5-A376755D4AB7';
//                              $recommend_nutritions[] = $recommend_nutrition_array[12][0];
//                              $recommend_nutrition_array[12][0]['use_time'] = '3759D174-A4FB-AA74-6F35-EA0C27C926B1';
//                              $recommend_nutritions[] = $recommend_nutrition_array[12][0];  
//                            }
                            unset($recommend_nutrition_array[12][0]);
                            $yanghua = 1;
                        }

                        break;

                    case 6:
                        if (count($recommend_nutrition_array[7]) > 0 && !$gaotong) {
                            if(count($recommend_nutrition_array[7]) > 1)
                            {
                                $has_tg_gt = 0;
                               foreach($recommend_nutrition_array[7] as $jrss_key=>$power_nutrition)
                               {
                                   if(strstr($power_nutrition['name'],'长白景仙灵'))
                                   {
                                      $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[7][$jrss_key]['uuid']);
                                        foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                        {
                                          $recommend_nutritions[] = $recommend_nutrition_list;
                                        } 
//                                      $recommend_nutrition_array[7][$jrss_key]['use_time'] = '96F8EA36-5FBF-F5AB-C86E-5F8495C70B32';
//                                      $recommend_nutritions[] = $recommend_nutrition_array[7][$jrss_key];
//                                      $recommend_nutrition_array[7][$jrss_key]['use_time'] = '9F43A429-61F5-6E50-847E-096A296BC80E';
//                                      $recommend_nutritions[] = $recommend_nutrition_array[7][$jrss_key];
                                      unset($recommend_nutrition_array[7][$jrss_key]);
                                      $has_tg_gt = 1;
                                      break;
                                   }
                               }
                               if(!$has_tg_gt)
                               {
                                   $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[7][0]['uuid']);
                                    foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                    {
                                      $recommend_nutritions[] = $recommend_nutrition_list;
                                    }
//                                  $recommend_nutrition_array[7][0]['use_time'] = '96F8EA36-5FBF-F5AB-C86E-5F8495C70B32';
//                                  $recommend_nutritions[] = $recommend_nutrition_array[7][0];
//                                  $recommend_nutrition_array[7][0]['use_time'] = '9F43A429-61F5-6E50-847E-096A296BC80E';
//                                  $recommend_nutritions[] = $recommend_nutrition_array[7][0];
                                  unset($recommend_nutrition_array[7][0]); 
                               }
                            }
                            else {
                              $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[7][0]['uuid']);
                                foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                {
                                  $recommend_nutritions[] = $recommend_nutrition_list;
                                }
//                              $recommend_nutrition_array[7][0]['use_time'] = '96F8EA36-5FBF-F5AB-C86E-5F8495C70B32';
//                                  $recommend_nutritions[] = $recommend_nutrition_array[7][0];
//                                  $recommend_nutrition_array[7][0]['use_time'] = '9F43A429-61F5-6E50-847E-096A296BC80E';
//                              $recommend_nutritions[] = $recommend_nutrition_array[7][0];
                              unset($recommend_nutrition_array[7][0]);
                            }
                            $gaotong = 1;
                        }
                        if (count($recommend_nutrition_array[4]) > 0 && !$protien) {
                           if(count($recommend_nutrition_array[4]) > 1)
                            {
                                $has_tg_protein = 0;
                               foreach($recommend_nutrition_array[4] as $jrss_key=>$power_nutrition)
                               {
                                   if(strstr($power_nutrition['name'],'长白景仙灵'))
                                   {
                                      $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[4][$jrss_key]['uuid']);
                                        foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                        {
                                          $recommend_nutritions[] = $recommend_nutrition_list;
                                        }
//                                      $recommend_nutrition_array[4][0]['use_time'] = '01EA0854-7A1C-BAA4-C66F-DB6D0743F1AC';
//                                      $recommend_nutritions[] = $recommend_nutrition_array[4][$jrss_key];
                                      unset($recommend_nutrition_array[4][$jrss_key]);
                                      $has_tg_protein = 1;
                                      break;
                                   }
                               }
                               if(!$has_tg_protein)
                               {
                                  $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[4][0]['uuid']);
                                    foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                    {
                                      $recommend_nutritions[] = $recommend_nutrition_list;
                                    }
//                                  $recommend_nutrition_array[4][0]['use_time'] = '01EA0854-7A1C-BAA4-C66F-DB6D0743F1AC';
//                                  $recommend_nutritions[] = $recommend_nutrition_array[4][0];
                                  unset($recommend_nutrition_array[4][0]); 
                               }
                            }
                            else {
                              $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[4][0]['uuid']);
                                foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                {
                                  $recommend_nutritions[] = $recommend_nutrition_list;
                                }
//                              $recommend_nutrition_array[4][0]['use_time'] = '01EA0854-7A1C-BAA4-C66F-DB6D0743F1AC';
//                              $recommend_nutritions[] = $recommend_nutrition_array[4][0];
                              unset($recommend_nutrition_array[4][0]);
                            } 
                            $protien = 1;
                        }
                        break;

                    case 7:
                        if (count($recommend_nutrition_array[10]) > 0) {
                            $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[10][0]['uuid']);
                            foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                            {
                              $recommend_nutritions[] = $recommend_nutrition_list;
                            }
//                            $recommend_nutrition_array[10][0]['use_time'] = '96F8EA36-5FBF-F5AB-C86E-5F8495C70B32';
//                            $recommend_nutritions[] = $recommend_nutrition_array[10][0];
                            unset($recommend_nutrition_array[10][0]);
                        }
                        break;

                    case 8:
                        if (count($recommend_nutrition_array[16]) > 0) {
                            $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[16][0]['uuid']);
                            foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                            {
                              $recommend_nutritions[] = $recommend_nutrition_list;
                            }
//                            $recommend_nutrition_array[16][0]['use_time'] = '9F43A429-61F5-6E50-847E-096A296BC80E';
//                            $recommend_nutritions[] = $recommend_nutrition_array[16][0];
                            unset($recommend_nutrition_array[16][0]);
                        }
                        break;

                    case 9:
                        if (count($recommend_nutrition_array[14]) > 0) {
                            $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[14][0]['uuid']);
                            foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                            {
                              $recommend_nutritions[] = $recommend_nutrition_list;
                            }
//                            $recommend_nutrition_array[14][0]['use_time'] = '9F43A429-61F5-6E50-847E-096A296BC80E';
//                            $recommend_nutritions[] = $recommend_nutrition_array[14][0];
                            unset($recommend_nutrition_array[14][0]);
                        }
                        break;

                    case 10:
                        if (count($recommend_nutrition_array[4]) > 0) {
                            $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[4][0]['uuid']);
                            foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                            {
                              $recommend_nutritions[] = $recommend_nutrition_list;
                            }
//                            $recommend_nutrition_array[4][0]['use_time'] = '01EA0854-7A1C-BAA4-C66F-DB6D0743F1AC';
//                            $recommend_nutritions[] = $recommend_nutrition_array[4][0];
                            unset($recommend_nutrition_array[4][0]);
                            $protien = 1;
                        }
                        if (count($recommend_nutrition_array[13]) > 0) {
                            $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[13][0]['uuid']);
                            foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                            {
                              $recommend_nutritions[] = $recommend_nutrition_list;
                            }
//                            $recommend_nutrition_array[13][0]['use_time'] = 'FBF385F6-32DB-0767-1BF7-BEBA00BEDD9C';
//                            $recommend_nutritions[] = $recommend_nutrition_array[13][0];
                            unset($recommend_nutrition_array[13][0]);
                        }
                        break;

                    case 11:
                        $nutrition_zj = $this->nutritionModel->nutritionSet(['a.uuid' => ['in', $nutritions], 'a.name' => '摘金果粒复合蛋白粉速度力量运动营养粉','a.status'=>1,'a.is_del'=>1], ['a.uuid,a.name,a.img_path,a.employ,a.use_method,b.id,b.use_time,a.power,a.carbohydrate,a.protein,a.fat,a.sodium,a.use_weight,a.use_weight_unit,a.use_number']);
                        foreach ($nutrition_zj as &$physicalNutritionRow) {
                            $physicalNutritionRow = \app\common\service\NutritionFloat82Write::physicalForModel($physicalNutritionRow, 'nutrition', $this->nutritionModel);
                        }
                        unset($physicalNutritionRow);
                        if (count($nutrition_zj) > 0) {
                            $has_protein_goods = 0;
                            foreach ($recommend_nutritions as $recommend_key => $recommend_nutrition) {
                                if ($recommend_nutrition['id'] == 4 && $recommend_nutrition['name'] != '摘金果粒复合蛋白粉速度力量运动营养粉') {
                                    $get_list_recommend = $this->getNutritionTime($nutrition_zj[0]['uuid']);
                                    foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                    {
                                      $recommend_nutritions[] = $recommend_nutrition_list;
                                    }
                                    //$nutrition_zj[0]['use_time'] = '01EA0854-7A1C-BAA4-C66F-DB6D0743F1AC';
                                    $has_protein_goods = 1;
                                    //$recommend_nutritions[$recommend_key] = $nutrition_zj[0];
                                }
                            }

                            if (!$has_protein_goods) {
                                $get_list_recommend = $this->getNutritionTime($nutrition_zj[0]['uuid']);
                                foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                {
                                  $recommend_nutritions[] = $recommend_nutrition_list;
                                }
//                                $nutrition_zj[0]['use_time'] = '01EA0854-7A1C-BAA4-C66F-DB6D0743F1AC';
//                                $recommend_nutritions[] = $nutrition_zj[0];
                            }
                        }
                        else {
                            if (count($recommend_nutrition_array[3]) > 0) {
                                if(count($recommend_nutrition_array[3]) > 1)
                                {
                                    $has_gn = 0;
                                   foreach($recommend_nutrition_array[3] as $power_key=>$power_nutrition)
                                   {
                                       if(strstr($power_nutrition['name'],'高能'))
                                       {
                                          $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[3][0]['uuid']);
                                            foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                            {
                                              $recommend_nutritions[] = $recommend_nutrition_list;
                                            }
//                                          $recommend_nutrition_array[3][0]['use_time'] = 'FBF385F6-32DB-0767-1BF7-BEBA00BEDD9C';
//                                          $recommend_nutritions[] = $recommend_nutrition_array[3][$power_key];
                                          unset($recommend_nutrition_array[3][$power_key]);
                                          $has_gn = 1;
                                          break;
                                       }
                                   }
                                   if(!$has_gn)
                                   {
                                      $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[3][0]['uuid']);
                                        foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                        {
                                          $recommend_nutritions[] = $recommend_nutrition_list;
                                        }
//                                      $recommend_nutrition_array[3][0]['use_time'] = 'FBF385F6-32DB-0767-1BF7-BEBA00BEDD9C';
//                                      $recommend_nutritions[] = $recommend_nutrition_array[3][0];
                                      unset($recommend_nutrition_array[3][0]); 
                                   }
                                }
                                else {
                                  $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[3][0]['uuid']);
                                    foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                    {
                                      $recommend_nutritions[] = $recommend_nutrition_list;
                                    }
//                                  $recommend_nutrition_array[3][0]['use_time'] = 'FBF385F6-32DB-0767-1BF7-BEBA00BEDD9C';
//                                  $recommend_nutritions[] = $recommend_nutrition_array[3][0];
                                  unset($recommend_nutrition_array[3][0]);
                                }
                                $power = 1; 
                            }
                            elseif (count($recommend_nutrition_array[9]) > 0) {
                                $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[9][0]['uuid']);
                                foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                {
                                  $recommend_nutritions[] = $recommend_nutrition_list;
                                }
//                                $recommend_nutrition_array[9][0]['use_time'] = '01EA0854-7A1C-BAA4-C66F-DB6D0743F1AC';
//                                $recommend_nutritions[] = $recommend_nutrition_array[9][0];
                                unset($recommend_nutrition_array[9][0]);
                                $tangyuan = 1;
                            }
                            if (count($recommend_nutrition_array[4]) > 0 && !$protien) {
                                $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[4][0]['uuid']);
                                foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                {
                                  $recommend_nutritions[] = $recommend_nutrition_list;
                                }
//                                $recommend_nutrition_array[4][0]['use_time'] = '01EA0854-7A1C-BAA4-C66F-DB6D0743F1AC';
//                                $recommend_nutritions[] = $recommend_nutrition_array[4][0];
                                unset($recommend_nutrition_array[4][0]);
                                $protien = 1;
                            }
                            if (count($recommend_nutrition_array[5]) > 0 && !$jisuan) {
                                $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[5][0]['uuid']);
                                foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                {
                                  $recommend_nutritions[] = $recommend_nutrition_list;
                                }
//                                $recommend_nutrition_array[5][0]['use_time'] = '01EA0854-7A1C-BAA4-C66F-DB6D0743F1AC';
//                                $recommend_nutritions[] = $recommend_nutrition_array[5][0];
                                unset($recommend_nutrition_array[5][0]);
                                $jisuan = 1;
                            }
                            if (count($recommend_nutrition_array[7]) > 0 && !$gaotong) {
                                $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[7][0]['uuid']);
                                foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                {
                                  $recommend_nutritions[] = $recommend_nutrition_list;
                                }
//                                $recommend_nutrition_array[7][0]['use_time'] = '9F43A429-61F5-6E50-847E-096A296BC80E';
//                                $recommend_nutritions[] = $recommend_nutrition_array[7][0];
                                unset($recommend_nutrition_array[7][0]);
                                $gaotong = 1;
                            }
                        }
                        break;

                    case 12:
                        if (count($recommend_nutrition_array[15]) > 0) {
                            if(count($recommend_nutrition_array[15]) > 1)
                            {
                                $has_jsm_jrss = 0;
                               foreach($recommend_nutrition_array[15] as $jrss_key=>$power_nutrition)
                               {
                                   if(strstr($power_nutrition['name'],'活性糖'))
                                   {
                                      $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[15][$jrss_key]['uuid']);
                                        foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                        {
                                          $recommend_nutritions[] = $recommend_nutrition_list;
                                        }
//                                      $recommend_nutrition_array[15][0]['use_time'] = '01EA0854-7A1C-BAA4-C66F-DB6D0743F1AC';
//                                      $recommend_nutritions[] = $recommend_nutrition_array[15][$jrss_key];
                                      unset($recommend_nutrition_array[15][$jrss_key]);
                                      $has_jsm_jrss = 1;
                                      break;
                                   }
                               }
                               if(!$has_jsm_jrss)
                               {
                                  $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[15][0]['uuid']);
                                    foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                    {
                                      $recommend_nutritions[] = $recommend_nutrition_list;
                                    }
//                                  $recommend_nutrition_array[15][0]['use_time'] = '01EA0854-7A1C-BAA4-C66F-DB6D0743F1AC';
//                                  $recommend_nutritions[] = $recommend_nutrition_array[15][0];
                                  unset($recommend_nutrition_array[15][0]); 
                               }
                            }
                            else {
                              $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[15][0]['uuid']);
                                foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                {
                                  $recommend_nutritions[] = $recommend_nutrition_list;
                                }
//                              $recommend_nutrition_array[15][0]['use_time'] = '01EA0854-7A1C-BAA4-C66F-DB6D0743F1AC';
//                              $recommend_nutritions[] = $recommend_nutrition_array[15][0];
                              unset($recommend_nutrition_array[15][0]);
                            }
                        }
                        if (count($recommend_nutrition_array[4]) > 0) {
                            if(count($recommend_nutrition_array[4]) > 1)
                            {
                                $has_jsm_protein = 0;
                               foreach($recommend_nutrition_array[4] as $jrss_key=>$power_nutrition)
                               {
                                   if(strstr($power_nutrition['name'],'活性糖'))
                                   {
                                      $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[4][$jrss_key]['uuid']);
                                        foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                        {
                                          $recommend_nutritions[] = $recommend_nutrition_list;
                                        }
//                                      $recommend_nutrition_array[4][$jrss_key]['use_time'] = '01EA0854-7A1C-BAA4-C66F-DB6D0743F1AC';
//                                      $recommend_nutritions[] = $recommend_nutrition_array[4][$jrss_key];
                                      unset($recommend_nutrition_array[4][$jrss_key]);
                                      $has_jsm_jrss = 1;
                                      break;
                                   }
                               }
                               if(!$has_jsm_jrss)
                               {
                                  $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[4][0]['uuid']);
                                    foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                    {
                                      $recommend_nutritions[] = $recommend_nutrition_list;
                                    }
//                                  $recommend_nutrition_array[4][0]['use_time'] = '01EA0854-7A1C-BAA4-C66F-DB6D0743F1AC';
//                                  $recommend_nutritions[] = $recommend_nutrition_array[4][0];
                                  unset($recommend_nutrition_array[4][0]); 
                               }
                            }
                            else {
                              $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[4][0]['uuid']);
                                foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                {
                                  $recommend_nutritions[] = $recommend_nutrition_list;
                                }
//                              $recommend_nutrition_array[4][0]['use_time'] = '01EA0854-7A1C-BAA4-C66F-DB6D0743F1AC';
//                              $recommend_nutritions[] = $recommend_nutrition_array[4][0];
                              unset($recommend_nutrition_array[4][0]);
                            }
                            $protien = 1;
                        }
                        break;

                    case 13:
                        if (count($recommend_nutrition_array[4]) > 0 && !$protien) {
                            $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[4][0]['uuid']);
                            foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                            {
                              $recommend_nutritions[] = $recommend_nutrition_list;
                            }
//                            $recommend_nutrition_array[4][0]['use_time'] = '01EA0854-7A1C-BAA4-C66F-DB6D0743F1AC';
//                            $recommend_nutritions[] = $recommend_nutrition_array[4][0];
                            unset($recommend_nutrition_array[4][0]);
                            $protien = 1;
                        }

                        if (count($recommend_nutrition_array[3]) > 0 && !$power) {
                            if(count($recommend_nutrition_array[3]) > 1)
                            {
                                $has_gn = 0;
                               foreach($recommend_nutrition_array[3] as $power_key=>$power_nutrition)
                               {
                                   if(strstr($power_nutrition['name'],'高能'))
                                   {
                                      $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[3][$power_key]['uuid']);
                                        foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                        {
                                          $recommend_nutritions[] = $recommend_nutrition_list;
                                        }
//                                      $recommend_nutrition_array[3][$power_key]['use_time'] = 'FBF385F6-32DB-0767-1BF7-BEBA00BEDD9C';
//                                      $recommend_nutritions[] = $recommend_nutrition_array[3][$power_key];
                                      unset($recommend_nutrition_array[3][$power_key]);
                                      $has_gn = 1;
                                      break;
                                   }
                               }
                               if(!$has_gn)
                               {
                                  $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[3][0]['uuid']);
                                    foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                    {
                                      $recommend_nutritions[] = $recommend_nutrition_list;
                                    }
                                  $recommend_nutrition_array[3][0]['use_time'] = 'FBF385F6-32DB-0767-1BF7-BEBA00BEDD9C';
                                  $recommend_nutritions[] = $recommend_nutrition_array[3][0];
                                  unset($recommend_nutrition_array[3][0]); 
                               }
                            }
                            else {
                               $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[3][0]['uuid']);
                                foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                                {
                                  $recommend_nutritions[] = $recommend_nutrition_list;
                                }
//                               $recommend_nutrition_array[3][0]['use_time'] = 'FBF385F6-32DB-0767-1BF7-BEBA00BEDD9C';
//                              $recommend_nutritions[] = $recommend_nutrition_array[3][0];
                              unset($recommend_nutrition_array[3][0]);
                            }
                            $power = 1; 
                        }
                        elseif (count($recommend_nutrition_array[9]) > 0 && !$tangyuan) {
                            $get_list_recommend = $this->getNutritionTime($recommend_nutrition_array[9][0]['uuid']);
                            foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                            {
                              $recommend_nutritions[] = $recommend_nutrition_list;
                            }
//                            $recommend_nutrition_array[9][0]['use_time'] = '01EA0854-7A1C-BAA4-C66F-DB6D0743F1AC';
//                            $recommend_nutritions[] = $recommend_nutrition_array[9][0];
                            unset($recommend_nutrition_array[9][0]);
                            $tangyuan = 1;
                        }
                        break;

                    case 14:
                        if (count($recommend_nutrition_array[4]) > 0 && !$protien) {
                            $get_list_recommend = $this->$this->getNutritionTime($recommend_nutrition_array[4][0]['uuid']);
                            foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                            {
                              $recommend_nutritions[] = $recommend_nutrition_list;
                            }
//                            $recommend_nutrition_array[4][0]['use_time'] = '01EA0854-7A1C-BAA4-C66F-DB6D0743F1AC';
//                            $recommend_nutritions[] = $recommend_nutrition_array[4][0];
                            unset($recommend_nutrition_array[4][0]);
                            $protien = 1;
                        }
                        if (count($recommend_nutrition_array[11]) > 0 && !$protien) {
                            $get_list_recommend = $this->$this->getNutritionTime($recommend_nutrition_array[11][0]['uuid']);
                            foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                            {
                              $recommend_nutritions[] = $recommend_nutrition_list;
                            }
//                            $recommend_nutrition_array[11][0]['use_time'] = '9F43A429-61F5-6E50-847E-096A296BC80E';
//                            $recommend_nutritions[] = $recommend_nutrition_array[11][0];
                            unset($recommend_nutrition_array[11][0]);
                        }
                        if (count($recommend_nutrition_array[12]) > 0 && !$protien) {
                            $get_list_recommend = $this->$this->getNutritionTime($recommend_nutrition_array[12][0]['uuid']);
                            foreach($get_list_recommend['data']['nutrition_array'] as $recommend_nutrition_list)
                            {
                              $recommend_nutritions[] = $recommend_nutrition_list;
                            }
//                            if($recommend_nutrition_array[12][0]['employ']<=1)
//                            {
//                              $recommend_nutrition_array[12][0]['use_time'] = '54112F69-513C-439B-A2F5-A376755D4AB7';
//                              $recommend_nutritions[] = $recommend_nutrition_array[12][0];
//                            }
//                            elseif($recommend_nutrition_array[12][0]['employ']==2)
//                            {
//                              $recommend_nutrition_array[12][0]['use_time'] = '54112F69-513C-439B-A2F5-A376755D4AB7';
//                              $recommend_nutritions[] = $recommend_nutrition_array[12][0];
//                              $recommend_nutrition_array[12][0]['use_time'] = '3759D174-A4FB-AA74-6F35-EA0C27C926B1';
//                              $recommend_nutritions[] = $recommend_nutrition_array[12][0];
//                            }
//                            elseif($recommend_nutrition_array[12][0]['employ']>=3)
//                            {
//                              $recommend_nutrition_array[12][0]['use_time'] = 'EE709CE0-937F-F1D0-39A7-BCF815276010';
//                              $recommend_nutritions[] = $recommend_nutrition_array[12][0];
//                              $recommend_nutrition_array[12][0]['use_time'] = '54112F69-513C-439B-A2F5-A376755D4AB7';
//                              $recommend_nutritions[] = $recommend_nutrition_array[12][0];
//                              $recommend_nutrition_array[12][0]['use_time'] = '3759D174-A4FB-AA74-6F35-EA0C27C926B1';
//                              $recommend_nutritions[] = $recommend_nutrition_array[12][0];  
//                            }
                            unset($recommend_nutrition_array[12][0]);
                        }
                        break;

                    case 15:

                        break;
                }
            }

            $data['select_keynote_phases'] = $select_keynote_phases;
            $data['keynote_phase'] = $keynote_phase;
            $data['other_phase'] = $this->train_problem;
            //营养品的服用单位中文
            $use_number_unit = array_column(config("use_number_unit"), "item", "id");
            foreach ($recommend_nutritions as &$value){
                $value['use_weight_unit_cn'] = isset($use_number_unit[$value['use_weight_unit']])?$use_number_unit[$value['use_weight_unit']]:'';
            }
            $data['recommend_nutritions'] = $recommend_nutritions;
        }
        catch (Exception $e) {
            return array('code' => 1, 'message' => $e->getMessage());
        }
        return array('code' => 0, 'message' => '成功', 'data' => $data);
    }
    
    
    
    
     /**
     * 根据算法返回选中问题
     * @name 柳洪博
     * @time 2021-07-29
     * @return array
     */
    
    
    
    /**
     * 无法选中问题提示语
     * @name柳洪博
     * @return json
     */
    public function getPhaseTip($phase_id)
    {
        try {
            $train_phase = $this->TrainPhaseModel->inquiryColumn(['proble_id' =>$phase_id], 'nutrition_set');
            $nutrition_sets = explode(',', array_unique($train_phase)[0]);
            $nutrition_set_list = $this->nutritionModel->nutritionSet(['b.id' => ['in', $nutrition_sets],'a.is_own'=>1,'a.status'=>1,'a.is_del'=>1], ['a.name,a.synopsis'],true);
            $tip = '';
            
            if(count($nutrition_set_list)>0)
            {
                foreach($nutrition_set_list as $nutrition)
                {
                   $nutrition_name = $nutrition['synopsis']?$nutrition['synopsis']:$nutrition['name'];
                   if(!$tip)
                   {
                       
                     $tip = $nutrition_name;
                   }
                   else
                     $tip = $tip.','.$nutrition_name;
                }
            }
           
            if($tip)
              $tip = '建议采购'.$tip.$this->train_problem[$phase_id];
        }
        catch (Exception $e) {
            return array('code' => 1, 'message' => $e->getMessage());
        }
        return array('code' => 0, 'message' => '成功', 'data' => $tip);
    }
    
    /**
     * 获取营养品对应的服用时间与可选中的问题(判断原来是否选中)
     * @name柳洪博
     * @return json
     */
    public function getNutritionTime($nutrition_uuid)
    {
        try {
            $recommend_nutrition_array = array();
            $add_select_phase = array();
            $nutrition_uuid = explode(',', $nutrition_uuid);
            $select_phase = array();
            $recommend_nutrition = $this->nutritionModel->nutritionSet(['a.uuid' => ['in', $nutrition_uuid]], ['a.uuid,a.name,a.img_path,a.employ,a.use_method,b.id,b.use_time,a.power,a.carbohydrate,a.protein,a.fat,a.sodium,a.use_weight,a.use_weight_unit,a.use_number,a.use_number_unit']);
            foreach ($recommend_nutrition as &$physicalNutritionRow) {
                $physicalNutritionRow = \app\common\service\NutritionFloat82Write::physicalForModel($physicalNutritionRow, 'nutrition', $this->nutritionModel);
            }
            unset($physicalNutritionRow);
            foreach($recommend_nutrition as $list)
            {
                if($list['use_time'])
                {
                    $morning = FALSE;
                    $noon = FALSE;
                    $night = FALSE;
                    $with_meal = FALSE;
                    $use_time_array = explode(',', $list['use_time']);
                    if(in_array("EE709CE0-937F-F1D0-39A7-BCF815276010", $use_time_array))
                      $morning = TRUE;  
                    if(in_array("54112F69-513C-439B-A2F5-A376755D4AB7", $use_time_array))
                      $noon = TRUE;
                    if(in_array("3759D174-A4FB-AA74-6F35-EA0C27C926B1", $use_time_array))
                      $night = TRUE;
                    
                    if($morning&&$noon&&$night)
                    {
                      $with_meal = TRUE;
                      $use_time_array = array_flip($use_time_array);
                      unset($use_time_array["EE709CE0-937F-F1D0-39A7-BCF815276010"]);
                      unset($use_time_array["54112F69-513C-439B-A2F5-A376755D4AB7"]);
                      unset($use_time_array["3759D174-A4FB-AA74-6F35-EA0C27C926B1"]);
                      $use_time_array = array_flip($use_time_array);
                    }
                }
                else
                  break;
                
                if($with_meal)
                  {
                      if($list['employ']<=1)
                    {
                      $list['use_time'] = '54112F69-513C-439B-A2F5-A376755D4AB7';
                      $recommend_nutrition_array[] = $list;
                    }
                    elseif($list['employ']==2)
                    {
                      $list['use_time'] = '54112F69-513C-439B-A2F5-A376755D4AB7';
                      $recommend_nutrition_array[] = $list;
                      $list['use_time'] = '3759D174-A4FB-AA74-6F35-EA0C27C926B1';
                      $recommend_nutrition_array[] = $list;
                    }
                    elseif($list['employ']>=3)
                    {
                      $list['use_time'] = 'EE709CE0-937F-F1D0-39A7-BCF815276010';
                      $recommend_nutrition_array[] = $list;
                      $list['use_time'] = '54112F69-513C-439B-A2F5-A376755D4AB7';
                      $recommend_nutrition_array[] = $list;
                      $list['use_time'] = '3759D174-A4FB-AA74-6F35-EA0C27C926B1';
                      $recommend_nutrition_array[] = $list;  
                    }
                  }
                  
                  foreach($use_time_array as $use_time)
                  {
                    $list['use_time'] = $use_time;
                    //摘金速度力量运动营养粉，简称摘金，强制训练出现（20210909李阳修改）
                    if($list['name'] == '摘金速度力量运动营养粉')
                       $list['use_time'] = 'FBF385F6-32DB-0767-1BF7-BEBA00BEDD9C'; 
                    
                    $recommend_nutrition_array[] = $list;  
                  }
                
                if($list['id']==2)
                  $add_select_phase = array(1);
                elseif($list['id']==3)
                  $add_select_phase = array(0,2,11,13);
                elseif($list['id']==4)
                  $add_select_phase = array(2,5,6,10,11,12,13,14);
               elseif($list['id']==5)
                  $add_select_phase = array(3,11);
               elseif($list['id']==6)
                  $add_select_phase = array();
                elseif($list['id']==7)
                   $add_select_phase = array(5,6,11);
                elseif($list['id']==8)
                  $add_select_phase = array(4);
                elseif($list['id']==9)
                  $add_select_phase = array(0,2,13);
                elseif($list['id']==10)
                  $add_select_phase = array(7);
                elseif($list['id']==11)
                  $add_select_phase = array(14);
                elseif($list['id']==12)
                    $add_select_phase = array(5,14);
                elseif($list['id']==13)
                  $add_select_phase = array(10);
                elseif($list['id']==14)
                  $add_select_phase = array(9);
                elseif($list['id']==15)
                  $add_select_phase = array(12);
                elseif($list['id']==16)
                  $add_select_phase = array(8);
                elseif($list['id']==17)
                  $add_select_phase = array(5);

                if(count($select_phase) == 0)
                    $select_phase = $add_select_phase;
                else
                   $select_phase = array_merge ($select_phase,$add_select_phase); 
            }
            //营养品的服用单位中文
            $use_number_unit = array_column(config("use_number_unit"), "item", "id");
//            var_dump($recommend_nutrition);exit();
            foreach ($recommend_nutrition_array as &$value){
                $value['use_number_unit_cn'] = isset($use_number_unit[$value['use_number_unit']])?$use_number_unit[$value['use_number_unit']]:'';
                $value['img_path'] = getImgFullPath($value['img_path']);
            }
            $select_phase = array_unique($select_phase);
            $data['add_select_phase'] = array_flip($select_phase);
            $data['nutrition_array'] = $recommend_nutrition_array;
        }
        catch (Exception $e) {
            return array('code' => 1, 'message' => $e->getMessage());
        }
        return array('code' => 0, 'message' => '成功', 'data' => $data);
    }
    
    /**
     * 删除营养品获取需要删掉的问题
     * @name柳洪博
     * @return json 
     * **/
    public function delNutrition($other_nutrition, $has_select_phase, $nutrition_set) {
        try{
           $has_select_phase = explode(',', $has_select_phase);
           $other_nutrition = explode(',', $other_nutrition);
           $train_phase = $this->TrainPhaseModel->where(['nutrition_time_uuid' => $nutrition_set])->select()->toArray();
            //获取营养品对应的分类，用于区分那些问题可以被选中
            $can_select = array();

            //推荐营养品数组
            if ($other_nutrition) {
                $nutrition_set_list = $this->nutritionModel->nutritionSet(['a.uuid' => ['in', $other_nutrition],'a.status'=>1,'a.is_del'=>1], ['a.uuid,a.name,a.img_path,a.employ,a.use_method,b.id,b.use_time,a.power,a.carbohydrate,a.protein,a.fat,a.sodium,a.use_weight,a.use_weight_unit,a.use_number']);
                foreach ($nutrition_set_list as &$physicalNutritionRow) {
                    $physicalNutritionRow = \app\common\service\NutritionFloat82Write::physicalForModel($physicalNutritionRow, 'nutrition', $this->nutritionModel);
                }
                unset($physicalNutritionRow);
                foreach ($nutrition_set_list as $list) {
                    foreach ($train_phase as $phase) {
                        $phase_nutrition_set = explode(',', $phase['nutrition_set']);
                        if (in_array($list['id'], $phase_nutrition_set))
                            $can_select[$phase['proble_id']] = $phase['proble_id'];
                    }
                }
            }
            
            foreach($has_select_phase as $key=>$select_phase)
            {
               if(!in_array($select_phase, $can_select))
               {
                  unset($has_select_phase[$key]);   
               }
            }
            
        }catch (Exception $e) {
            return array('code' => 1, 'message' => $e->getMessage());
        }
        return array('code' => 0, 'message' => '成功', 'data' => $has_select_phase);
    }
    
}