Exemple #1
0
 public function dietAction()
 {
     $p = $_REQUEST;
     $pDate = empty($p['date']) ? Tool_Fnc::ajaxMsg('日期不能为空') : trim($p['date']);
     if (!Tool_Validate::is_date($pDate)) {
         Tool_Fnc::ajaxMsg('日期不正确');
     }
     $tFAMO = new R_FoodaddModel();
     $tFMO = new FoodModel();
     $tSql = 'select * from (select fid,unit,amount,weight from ' . $tFAMO->table . ' where uid = ' . $this->tUid . ' and created >=' . strtotime($pDate) . ' and created <=' . strtotime($pDate . ' 23:59:59') . ') fa, ' . $tFMO->table . ' f where fa.fid = f.id';
     $tList = $tFMO->query($tSql);
     #        if(!count($tList)){Tool_Fnc::ajaxMsg('',1);}
     $tDatas = array();
     $tDatasother = array();
     #已经摄取
     isset($tDatasother['calcium']['number']) ? '' : ($tDatasother['calcium']['number'] = 0);
     isset($tDatasother['vitamin_a']['number']) ? '' : ($tDatasother['vitamin_a']['number'] = 0);
     isset($tDatasother['zinc']['number']) ? '' : ($tDatasother['zinc']['number'] = 0);
     isset($tDatasother['magnesium']['number']) ? '' : ($tDatasother['magnesium']['number'] = 0);
     isset($tDatasother['vitamin_c']['number']) ? '' : ($tDatasother['vitamin_c']['number'] = 0);
     isset($tDatasother['fiber_dietary']['number']) ? '' : ($tDatasother['fiber_dietary']['number'] = 0);
     isset($tDatasother['selenium']['number']) ? '' : ($tDatasother['selenium']['number'] = 0);
     isset($tDatasother['copper']['number']) ? '' : ($tDatasother['copper']['number'] = 0);
     isset($tDatasother['fat']['number']) ? '' : ($tDatasother['fat']['number'] = 0);
     isset($tDatasother['niacin']['number']) ? '' : ($tDatasother['niacin']['number'] = 0);
     isset($tDatasother['vitamin_e']['number']) ? '' : ($tDatasother['vitamin_e']['number'] = 0);
     isset($tDatasother['manganese']['number']) ? '' : ($tDatasother['manganese']['number'] = 0);
     isset($tDatasother['cholesterol']['number']) ? '' : ($tDatasother['cholesterol']['number'] = 0);
     isset($tDatasother['iron']['number']) ? '' : ($tDatasother['iron']['number'] = 0);
     isset($tDatasother['thiamine']['number']) ? '' : ($tDatasother['thiamine']['number'] = 0);
     isset($tDatasother['lactoflavin']['number']) ? '' : ($tDatasother['lactoflavin']['number'] = 0);
     isset($tDatasother['calory']['number']) ? '' : ($tDatasother['calory']['number'] = 0);
     isset($tDatasother['carotene']['number']) ? '' : ($tDatasother['carotene']['number'] = 0);
     isset($tDatas['carbohydrate']['number']) ? '' : ($tDatas['carbohydrate']['number'] = 0);
     isset($tDatas['phosphor']['number']) ? '' : ($tDatas['phosphor']['number'] = 0);
     isset($tDatas['kalium']['number']) ? '' : ($tDatas['kalium']['number'] = 0);
     isset($tDatas['natrium']['number']) ? '' : ($tDatas['natrium']['number'] = 0);
     isset($tDatas['protein']['number']) ? '' : ($tDatas['protein']['number'] = 0);
     foreach ($tList as $tRow) {
         $tDatasother['calcium']['number'] += round($tRow['calcium'] / 100 * $tRow['weight'], 2);
         $tDatasother['vitamin_a']['number'] += round($tRow['vitamin_a'] / 100 * $tRow['weight'], 2);
         $tDatasother['zinc']['number'] += round($tRow['zinc'] / 100 * $tRow['weight'], 2);
         $tDatasother['magnesium']['number'] += round($tRow['magnesium'] / 100 * $tRow['weight'], 2);
         $tDatasother['vitamin_c']['number'] += round($tRow['vitamin_c'] / 100 * $tRow['weight'], 2);
         $tDatasother['fiber_dietary']['number'] += round($tRow['fiber_dietary'] / 100 * $tRow['weight'], 2);
         $tDatasother['selenium']['number'] += round($tRow['selenium'] / 100 * $tRow['weight'], 2);
         $tDatasother['copper']['number'] += round($tRow['copper'] / 100 * $tRow['weight'], 2);
         $tDatasother['fat']['number'] += round($tRow['fat'] / 100 * $tRow['weight'], 2);
         $tDatasother['niacin']['number'] += round($tRow['niacin'] / 100 * $tRow['weight'], 2);
         $tDatasother['vitamin_e']['number'] += round($tRow['vitamin_e'] / 100 * $tRow['weight'], 2);
         $tDatasother['manganese']['number'] += round($tRow['manganese'] / 100 * $tRow['weight'], 2);
         $tDatasother['cholesterol']['number'] += round($tRow['cholesterol'] / 100 * $tRow['weight'], 2);
         $tDatasother['iron']['number'] += round($tRow['iron'] / 100 * $tRow['weight'], 2);
         $tDatasother['thiamine']['number'] += round($tRow['thiamine'] / 100 * $tRow['weight'], 2);
         $tDatasother['lactoflavin']['number'] += round($tRow['lactoflavin'] / 100 * $tRow['weight'], 2);
         $tDatasother['calory']['number'] += round($tRow['calory'] / 100 * $tRow['weight'], 2);
         $tDatasother['carotene']['number'] += round($tRow['carotene'] / 100 * $tRow['weight'], 2);
         $tDatas['carbohydrate']['number'] += round($tRow['carbohydrate'] / 100 * $tRow['weight'], 2);
         #碳水化合物
         $tDatas['phosphor']['number'] += round($tRow['phosphor'] / 100 * $tRow['weight'] / 1000, 2);
         #磷
         #$tDatas['kalium']['number'] += round(($tRow['kalium']/100)*$tRow['weight']/1000,2);#钾
         $tDatas['natrium']['number'] += round($tRow['natrium'] / 100 * $tRow['weight'] / 1000, 2);
         #钠
         $tDatas['protein']['number'] += round($tRow['protein'] / 100 * $tRow['weight'], 2);
         #蛋白质
     }
     unset($tList);
     #干体重
     $tDWLMO = new DryweightlogModel();
     $tDWLRow = $tDWLMO->field('weight')->where('uid = ' . $this->tUid . ' and date = \'' . $pDate . '\'')->fRow();
     if (!count($tDWLRow)) {
         Tool_Fnc::ajaxMsg('', 1);
     }
     #应摄取
     #蛋白质
     $tArr = $tFMO->diet('protein', $tDWLRow['weight']);
     $tDatas['protein']['total'] = implode('-', $tArr);
     $tSurplus = $tArr['end'] - $tDatas['protein']['number'];
     $tDatas['protein']['surplus'] = $tSurplus <= 0 ? 0 : $tSurplus;
     #碳水化合物
     $tArr = $tFMO->diet('carbohydrate', $tDWLRow['weight']);
     $tDatas['carbohydrate']['total'] = implode('-', $tArr);
     $tSurplus = $tArr['end'] - $tDatas['carbohydrate']['number'];
     $tDatas['carbohydrate']['surplus'] = $tSurplus <= 0 ? 0 : $tSurplus;
     #钠
     $tArr = $tFMO->diet('natrium');
     $tDatas['natrium']['total'] = implode('-', $tArr);
     $tSurplus = $tArr['end'] - $tDatas['natrium']['number'];
     $tDatas['natrium']['surplus'] = $tSurplus <= 0 ? 0 : $tSurplus;
     #磷
     $tArr = $tFMO->diet('phosphor');
     $tDatas['phosphor']['total'] = implode('-', $tArr);
     $tSurplus = $tArr['end'] - $tDatas['phosphor']['number'];
     $tDatas['phosphor']['surplus'] = $tSurplus <= 0 ? 0 : $tSurplus;
     #营养摄入评判
     #蛋白质
     $tDatas['protein']['status'] = $tFMO->diet_status('protein', $tDatas['protein']['number'], $tDWLRow['weight']);
     #碳水化合物
     $tDatas['carbohydrate']['status'] = $tFMO->diet_status('carbohydrate', $tDatas['carbohydrate']['number'], $tDWLRow['weight']);
     #钠
     $tDatas['natrium']['status'] = $tFMO->diet_status('natrium', $tDatas['natrium']['number']);
     #磷
     $tDatas['phosphor']['status'] = $tFMO->diet_status('phosphor', $tDatas['phosphor']['number']);
     #控钾单独处理
     $tUMO = new UserModel();
     $tODDMO = new OrdinarydialysisdateModel();
     $tBSDMO = new BqeschedulingdetailModel();
     $tURow = $tUMO->field('user_type')->where('id = ' . $this->tUid)->fRow();
     $tStart = $pDate;
     $tEnd = $pDate;
     if ($tURow['user_type'] == 0) {
         #非白求恩
         $tODDRow = $tODDMO->field('date')->where('uid = \'' . $this->tUid . '\' and date < \'' . $pDate . '\'')->order('date desc')->limit('1')->fRow();
         if (!empty($tODDRow['date'])) {
             $tStart = date('Y-m-d', strtotime($tODDRow['date']) + 86400);
         }
     } else {
         #白求恩
         $tBSDRow = $tBSDMO->field('scheduling_date')->where('uid = \'' . $this->tUid . '\' and scheduling_date < \'' . $pDate . '\'')->order('scheduling_date desc')->limit('1')->fRow();
         if (!empty($tBSDRow['scheduling_date'])) {
             $tStart = date('Y-m-d', strtotime($tBSDRow['scheduling_date']) + 86400);
         }
     }
     $tSql = 'select fid,unit,amount,weight,kalium from (select fid,unit,amount,weight from ' . $tFAMO->table . ' where uid = ' . $this->tUid . ' and created >=' . strtotime($tStart) . ' and created <=' . strtotime($tEnd . ' 23:59:59') . ') fa, ' . $tFMO->table . ' f where fa.fid = f.id';
     $tList = $tFMO->query($tSql);
     foreach ($tList as $tRow) {
         $tDatas['kalium']['number'] += round($tRow['kalium'] / 100 * $tRow['weight'] / 1000, 2);
         #钾
     }
     #钾
     $tArr = $tFMO->diet('kalium');
     #$tDatas['kalium']['total'] = implode('-',$tArr);
     $tDatas['kalium']['total'] = 10;
     $tSurplus = $tArr['end'] - $tDatas['kalium']['number'];
     $tDatas['kalium']['surplus'] = $tSurplus <= 0 ? 0 : $tSurplus;
     $tDatas['kalium']['status'] = $tFMO->diet_status('kalium', $tDatas['kalium']['number']);
     Tool_Fnc::ajaxMsg('', 1, array('main' => $tDatas, 'other' => $tDatasother));
     exit;
 }
 public function indexAction()
 {
     $tTime = time();
     $tH = date('H', $tTime);
     $tRedis = Cache_Redis::instance();
     $tMO = new OrdinarydialysistimeModel();
     $tODDMO = new OrdinarydialysisdateModel();
     $tUMO = new UserModel();
     $tUDMO = new UserdidModel();
     $tUAMO = new UserassessmentModel();
     $tCMO = new CenterModel();
     if ($tH >= 7 && $tH <= 11) {
         #今日提醒
         $tWeek = date('w', $tTime);
         $tDate = date('Y-m-d', $tTime);
         $tWhere = ' time_code in (2,3)';
         $tDatas = $tMO->field('uid,time_code,time')->where($tWhere . ' and week like \'%' . $tWeek . '%\'')->fList();
         foreach ($tDatas as $tRow) {
             #透析中心信息
             $tUARow = $tUAMO->field('medical_id')->where('uid = ' . $tRow['uid'])->fRow();
             if (!count($tUARow)) {
                 continue;
             }
             $tCRow = $tCMO->field('today_weather,name')->where('id = ' . $tUARow['medical_id'])->fRow();
             if (!count($tCRow)) {
                 continue;
             }
             $tTitle = '透析提醒';
             $tTimecodestr = $tRow['time_code'] == 2 ? '下午' : '晚上';
             $tTimecodestr .= $tRow['time'];
             $tTpl_val = '#timecodestr#=今日' . $tTimecodestr . '&#name#=' . $tCRow['name'] . '&#weather#=今日天气' . $tCRow['today_weather'];
             $tContent = '您#timecodestr#在#name#透析,请准时参加,祝透析顺利。#weather#';
             #用户信息
             $tURow = $tUMO->field('phone')->where('id = ' . $tRow['uid'])->fRow();
             if (!count($tURow)) {
                 continue;
             }
             $tRedis->lpush('dakang_sms', serialize(array('content' => $tContent, 'phone' => $tURow['phone'], 'tpl_val' => $tTpl_val, 'type' => 'tx')));
             #设备信息
             $tSql = 'select cid,devicetoken  from (select did from user_did where uid=' . $tRow['uid'] . ') ud,getui where ud.did = getui.did';
             $tUDDatas = $tUDMO->query($tSql);
             $tTimecodestr = date('m月d日', $tTime) . $tTimecodestr;
             $tContent = '您' . $tTimecodestr . '在' . $tCRow['name'] . '透析,请准时参加,祝透析顺利。明日天气' . $tCRow['today_weather'];
             foreach ($tUDDatas as $tR) {
                 $tRes = serialize(array_merge(array('title' => $tTitle, 'content' => $tContent, 'type' => 'tx', 'id' => ''), $tR));
                 $tRedis->lpush('dakang_getui', $tRes);
             }
             $tODDRow = $tODDMO->field('count(0) c')->where('uid = ' . $tRow['uid'] . ' and date = \'' . $tDate . '\'')->fRow();
             if (!empty($tODDRow['c'])) {
                 continue;
             }
             #添加透析日期
             $tData = array('date' => $tDate, 'uid' => $tRow['uid'], 'time_code' => $tRow['time_code'], 'created' => $tTime);
             $tODDMO->insert($tData);
         }
     } elseif ($tH >= 13 && $tH <= 21) {
         #第二天上午
         $tWeek = date('w', $tTime + 86400);
         $tDate = date('Y-m-d', $tTime + 86400);
         $tWhere = ' time_code = 1';
         $tDatas = $tMO->field('uid,time_code,time')->where($tWhere . ' and week like \'%' . $tWeek . '%\'')->fList();
         foreach ($tDatas as $tRow) {
             #透析中心信息
             $tUARow = $tUAMO->field('medical_id')->where('uid = ' . $tRow['uid'])->fRow();
             if (!count($tUARow)) {
                 continue;
             }
             $tCRow = $tCMO->field('tomorrow_weather,name')->where('id = ' . $tUARow['medical_id'])->fRow();
             if (!count($tCRow)) {
                 continue;
             }
             $tTitle = '透析提醒';
             $tTimecodestr = '上午' . $tRow['time'];
             $tTpl_val = '#timecodestr#=明日' . $tTimecodestr . '&#name#=' . $tCRow['name'] . '&#weather#=今日天气' . $tCRow['tomorrow_weather'];
             $tContent = '您#timecodestr#在#name#透析,请准时参加,祝透析顺利。#weather#';
             #用户信息
             $tURow = $tUMO->field('phone')->where('id = ' . $tRow['uid'])->fRow();
             if (!count($tURow)) {
                 continue;
             }
             $tRedis->lpush('dakang_sms', serialize(array('content' => $tContent, 'phone' => $tURow['phone'], 'tpl_val' => $tTpl_val, 'type' => 'tx')));
             #设备信息
             $tSql = 'select cid,devicetoken  from (select did from user_did where uid=' . $tRow['uid'] . ') ud,getui where ud.did = getui.did';
             $tUDDatas = $tUDMO->query($tSql);
             $tTimecodestr = date('m月d日', $tTime + 86400) . '上午' . $tRow['time'];
             $tContent = '您' . $tTimecodestr . '在' . $tCRow['name'] . '透析,请准时参加,祝透析顺利。明日天气' . $tCRow['tomorrow_weather'];
             foreach ($tUDDatas as $tR) {
                 $tRes = serialize(array_merge(array('title' => $tTitle, 'content' => $tContent, 'type' => 'tx', 'id' => ''), $tR));
                 $tRedis->lpush('dakang_getui', $tRes);
             }
             #添加透析日期
             $tODDRow = $tODDMO->field('count(0) c')->where('uid = ' . $tRow['uid'] . ' and date = \'' . $tDate . '\'')->fRow();
             if (!empty($tODDRow['c'])) {
                 continue;
             }
             $tData = array('date' => $tDate, 'uid' => $tRow['uid'], 'time_code' => $tRow['time_code'], 'created' => $tTime);
             $tODDMO->insert($tData);
         }
     }
     exit;
 }