<?php


namespace app\model;

use app\model\BaseModel;
class NutritionScheme extends BaseModel {
    //put your code here
    /*
     * 获取营养方案模板的列表
     * */
    public function schemeSelect($where, $page=1, $pageSize=15, $orderBy, $field)
    {
        return $this
            ->alias('a')
            ->join('ydy_nutrition_staff b', 'b.nutrition_scheme_uuid = a.uuid', 'LEFT')
            ->join('staff c', 'b.staff_uuid = c.uuid', 'LEFT')
            ->where($where)
            ->order($orderBy)
            ->group('a.uuid')
            ->page($page, $pageSize)
            ->field($field)
            ->select()
            ->toArray();
    }


    /*
     * 获取营养方案模板的列表
     * */
    public function schemeCount($where)
    {
     return   $this
            ->alias('a')
            ->join('ydy_nutrition_staff b', 'b.nutrition_scheme_uuid = a.uuid', 'LEFT')
            ->join('staff c', 'b.staff_uuid = c.uuid', 'LEFT')
            ->group('a.uuid')
            ->where($where)
            ->count();
    }

    /*
     * 获取营养方案模板的列表
     * */
    public function getUuidByDate($staff_uuid, $date)
    {
        return   $this
            ->alias('a')
            ->join('ydy_nutrition_staff b', 'b.nutrition_scheme_uuid = a.uuid', 'LEFT')
            ->where("b.staff_uuid = '$staff_uuid'")
            ->where("a.start_time <= '$date'")
            ->where("a.end_time >= '$date'")
            ->order('a.id','desc')
            ->limit('1')
            ->column('a.uuid');
    }

    /*
     *  获取推荐/调整的营养方案的 营养品数据
     * */
    public function schemeRead($scheme_uuid, $type) {
        //根据运动员uuid与具体的日子查看涉及到的所有营养品及其基本数据
        //type=1为推荐营养方案,type=2为调整营养方案
        //新增f表关联，增加根据f.order_no进行排序展示
        $where['a.uuid'] = $scheme_uuid;
        $where['c.type'] = $type;
        $rows = $this
             ->alias('a')
             ->join('ydy_nutrition_scheme_ext c','c.nutrition_scheme_uuid = a.uuid', 'LEFT')
             ->join("ydy_nutrition d", "c.nutrition_uuid = d.uuid", "left")
             ->join("ydy_nutrition_set e", "d.set_uuid = e.uuid", "left")
             ->join('ydy_nutrition_time f', 'f.uuid = c.use_time', 'LEFT')
             ->where($where)
             ->field(['a.stage','c.nutrition_uuid','c.train_status','c.train_time','c.use_volume','c.use_time','c.use_method',
                 'd.name nutrition_name','d.img_path','d.power','d.carbohydrate','d.protein','d.fat','d.sodium','d.use_weight','d.use_number','d.use_number_unit','d.use_weight_unit',
                 'd.function','e.name cate_name','f.name use_time_cn'])
             ->group('c.uuid')
             ->order('f.order_no,f.id')
             ->select()
             ->toArray();
        foreach ($rows as &$plainWeightRow) {
            $plainWeightRow = \app\common\service\NutritionPlainFloatWeight::physicalForModel($plainWeightRow, $this);
        }
        unset($plainWeightRow);
        return $rows;
    }
}
