public function doctor($p = null) { if (!he_is('doctor') && !rq()) { return view('page.doctor_login'); } if (rq() && $p == 'login_check') { if (rq('user_type') == 'doctor') { $he = M('doctor')->where('cust_id', rq('cust_id'))->first(); if (!$he) { Session::flash('input_error', ['识别码有误']); return redirect('doctor/login'); } else { log_him_in(['uid' => $he->id]); add_chara(rq('user_type')); return redirect('doctor/home'); } } } $d = []; $appId = env('WECHAT_APPID'); $secret = env('WECHAT_SECRET'); $js = new Js($appId, $secret); $d['js'] = $js; switch ($p) { case 'history': $d['his_history'] = M('doctor')->get_his_history(); break; } return view('page.doctor_' . $p, $d); }
public function c($rq = null) { $type = ['employee' => 1, 'agency' => 2, 'doctor' => 3]; $rq = rq(); $rq['senderid'] = uid(); $rq['sendername'] = username(); if (he_is('agency')) { $rq['org'] = sess('org'); } if (he_is('employee')) { $rq['org'] = sess('org'); } // return his_chara()[0]; $rq['sendertype'] = $type[his_chara()[0]]; if (his_chara()[0] == 'agency') { $rq['recipienttype'] = 1; $rq['recipientid'] = 1; $rq['recipientname'] = 'admin'; } elseif (his_chara()[0] == 'employee') { $rq['recipienttype'] = $type[$rq['recipienttype']]; } // 验证发信规则 $valid = $this->verify($rq); if (!$valid) { return ee(2); } $rq['sendtime'] = date("Y-m-d H:i:s"); return parent::c($rq); }
public function robot() { if (!he_is('agency')) { abort(403); } $data = DB::table('i_robot')->select('i_robot.*', 'i_robot_lease_log.*', 'i_hospital.name as hospital_name', 'i_employee.name as employee_name')->leftJoin('i_robot_lease_log', 'i_robot.id', '=', 'i_robot_lease_log.robot_id')->leftJoin('i_hospital', 'i_hospital.id', '=', 'i_robot_lease_log.hospital_id')->leftJoin('i_employee', 'i_employee.id', '=', 'i_robot.employee_id')->where('i_robot_lease_log.recent', 1)->where('i_robot_lease_log.agency_id', uid())->orderBy('i_robot.id', 'i_robot_lease_log.lease_ended_at desc')->get(); return ss($data); }
/** * 登出方法 */ public function logout() { $is_doctor = he_is('doctor'); log_him_out(); Session::forget('username'); if (!$is_doctor) { return redirect('/'); } return redirect('/doctor/home'); }
function usb_url($type) { if (!he_is('employee')) { return; } $base = 'http://www.remebot.cn/isapi/remeisapi.dll/?'; $user = DB::table('i_employee')->select(DB::raw('right(password, 4) as pass'))->where('id', uid())->first(); $time = time(); $params = ['a' => $type, 'b' => $time, 'c' => uid() * 3 * substr($time, -4), 'd' => $user->pass]; return $base . http_build_query($params); }
/** * 更新 */ public function u($rq = NULL) { // 代理只能修改自己 if (he_is('agency')) { if (rq('id') != uid()) { abort(403); } } $this->guarded = arr_except_vals($this->guarded, ['password']); if (!$rq) { $rq = rq(); } if (isset($rq['ended_at']) && $rq['ended_at'] == 'Invalid date') { unset($rq['ended_at']); } if (isset($rq['started_at']) && $rq['started_at'] == 'Invalid date') { unset($rq['started_at']); } return parent::u($rq); }
public function has_permission($ins_name, $action_name) { if (in_array($ins_name, config('permission.public_ins')) || $action_name == 'exist') { return true; } // for user login or signup. if (he_is('employee')) { return true; } foreach ($this->permission_api_set as $test_chara => $user_type_set) { if (he_is($test_chara)) { if (!array_key_exists($ins_name, $this->permission_api_set[$test_chara])) { return false; } if (!in_array($action_name, $this->permission_api_set[$test_chara][$ins_name])) { return false; } return true; } } }
public function front() { $cache = Cache::get('i_settings', null); $per_page = array_get($cache, 'user.per_page'); $d = ['debug' => debugging(), 'is_logged_in' => sess('is_logged_in'), 'his_chara' => sess('his_chara'), 'username' => sess('username'), 'uid' => sess('uid'), 'per_page' => $per_page, 'agency_end' => $this->retrieve('system.agency_end')]; $type = ['employee' => 1, 'agency' => 2, 'doctor' => 3]; // 获取未读通知 if (uid()) { $d['unread'] = M('message')->where('recipientid', uid())->where('recipienttype', $type[his_chara()[0]])->where('read', 0)->count(); } else { $d['unread'] = 0; } $d['org'] = ''; if (he_is('agency')) { $org = DB::table(table_name('agency'))->select('name')->where('id', uid())->first(); sess('org', $org->name); $d['org'] = sess('org'); } if (he_is('employee')) { $d['org'] = sess('org'); } return ss($d); }
/** * 登出方法 */ public function logout() { $is_doctor = he_is('doctor'); log_him_out(); Session::forget(['username', 'org']); if (!$is_doctor) { return Redirect::to(env('APP_URL')); } return Redirect::to(env('APP_URL') . '/doctor/home'); }
}); //Common routes. Route::any('$/{p1?}/{p2?}/{p3?}', 'CookController@leader'); Route::any('_/{p1?}/{p2?}/{p3?}/{p4?}/{p5?}', 'ShotController@leader'); if (debugging()) { Route::any('c/{ins_name}/{type?}', function ($ins_name, $type = null) { $ins = M($ins_name, $type); $ins->fill(rq()); $ins->save(); }); Route::get('signup/{type}', function ($ins_name) { $ins = M($ins_name); return $ins->c(); }); Route::get('he_is/{p}', function ($chara) { dd(he_is($chara)); }); Route::get('t/{p}/{p2?}', function ($p, $p2 = null) { switch ($p) { case 't': return base_url(); break; case 'cache_in': return Cache::put('a', 'A', 1); break; case 'cache_out': return Cache::get('a'); break; case 'csrf': return csrf_token(); break;
/** * 归档历史 * * @author tanqing * @date 2015年10月19日 */ public function ck_mark_history() { if (he_is('agency')) { $pagination = Input::get("pagination", 1); DB::enableQueryLog(); $main = DB::table('i_mark')->select('archive_at', DB::raw('count(1) as mark_count'))->where('agency_id', uid())->whereNotNull('archive_at')->groupBy('archive_at')->orderBy('archive_at', 'DESC')->get(); $main2 = DB::select(DB::raw('select count(1) as total from (select count(1) as mark_count from `i_mark` where agency_id = ' . uid() . ' and archive_at is not null group by `archive_at` order by `archive_at` desc) as c')); $sql = DB::getQueryLog(); $r = ['count' => $main2[0]->total, 'main' => $main, 'where' => $sql]; return ss($r); } }
public function __r_() { if (!rq('where') && he_is('employee')) { return $this->r(); } //$builder = $this->r_builder(); $builder = $this; $rq = rq(); if (rq('where') || he_is('agency')) { if (he_is('agency')) { $builder = $builder->where('agency_id', uid()); } $where = $rq['where']; if (!empty($where['status_type_id'])) { $status = $where['status_type_id']; switch ($status) { case 1: $builder = $builder->where(['used_at' => null, 'damaged_at' => null]); break; case 2: $builder = $builder->whereNotNull('used_at')->where('damaged_at', null); break; case 3: $builder = $builder->where('agency_id', '<>', 1); break; case 4: $builder = $builder->whereNotNull('damaged_at'); break; case 5: $builder = $builder->whereNotNull('replacement_id'); break; } } if (!empty($where['selling_status_type_id'])) { $status = $where['selling_status_type_id']; switch ($status) { case 1: $builder = $builder->where('agency_id', 1); break; case 2: $builder = $builder->where('agency_id', '<>', 1); break; } } if (!empty($where['agency_name'])) { $v = $where['agency_name']; $builder = $builder->where('agency_name', 'like', '%' . $v . '%'); } if (!empty($where['hospital_name'])) { $v = $where['hospital_name']; $builder = $builder->where('hospital_name', 'like', '%' . $v . '%'); } if (!empty($where['doctor_name'])) { $v = $where['doctor_name']; $builder = $builder->where('doctor_name', 'like', '%' . $v . '%'); } if (!empty($where['from_created_at']) && !empty($where['to_created_at'])) { $builder = $builder->where('created_at', '>', Carbon::parse($where['from_created_at'])); $builder = $builder->where('created_at', '<', Carbon::parse($where['to_created_at'])); } elseif (!empty($where['from_created_at'])) { $builder = $builder->where('created_at', '>', Carbon::parse($where['from_created_at'])); } elseif (!empty($where['to_created_at'])) { $builder = $builder->where('created_at', '<', Carbon::parse($where['to_created_at'])); } if (!empty($where['from_sold_at']) && !empty($where['to_sold_at'])) { $builder = $builder->where('sold_at', '>', Carbon::parse($where['from_sold_at'])); $builder = $builder->where('sold_at', '<', Carbon::parse($where['to_sold_at'])); } elseif (!empty($where['from_sold_at'])) { $builder = $builder->where('sold_at', '>', Carbon::parse($where['from_sold_at'])); } elseif (!empty($where['to_sold_at'])) { $builder = $builder->where('sold_at', '<', Carbon::parse($where['to_sold_at'])); } if (!empty($where['from_used_at']) && !empty($where['to_used_at'])) { $builder = $builder->where('used_at', '>', Carbon::parse($where['from_used_at'])); $builder = $builder->where('used_at', '<', Carbon::parse($where['to_used_at'])); } elseif (!empty($where['from_used_at'])) { $builder = $builder->where('used_at', '>', Carbon::parse($where['from_used_at'])); } elseif (!empty($where['to_used_at'])) { $builder = $builder->where('used_at', '<', Carbon::parse($where['to_used_at'])); } if (!empty($where['from_damaged_at']) && !empty($where['to_damaged_at'])) { $builder = $builder->where('damaged_at', '>', Carbon::parse($where['from_damaged_at'])); $builder = $builder->where('damaged_at', '<', Carbon::parse($where['to_damaged_at'])); } elseif (!empty($where['from_damaged_at'])) { $builder = $builder->where('damaged_at', '>', Carbon::parse($where['from_damaged_at'])); } elseif (!empty($where['to_damaged_at'])) { $builder = $builder->where('damaged_at', '<', Carbon::parse($where['to_damaged_at'])); } if (!empty($where['from_archive_at']) && !empty($where['to_archive_at'])) { $builder = $builder->where('archive_at', '>', Carbon::parse($where['from_archive_at'])); $builder = $builder->where('archive_at', '<', Carbon::parse($where['to_archive_at'])); } elseif (!empty($where['from_archive_at'])) { $builder = $builder->where('archive_at', '>', Carbon::parse($where['from_archive_at'])); } elseif (!empty($where['to_archive_at'])) { $builder = $builder->where('archive_at', '<', Carbon::parse($where['to_archive_at'])); } if (!empty($where['from_surgery_at']) && !empty($where['to_surgery_at'])) { $builder = $builder->where('surgery_at', '>', Carbon::parse($where['from_surgery_at'])); $builder = $builder->where('surgery_at', '<', Carbon::parse($where['to_surgery_at'])); } elseif (!empty($where['from_surgery_at'])) { $builder = $builder->where('surgery_at', '>', Carbon::parse($where['from_surgery_at'])); } elseif (!empty($where['to_surgery_at'])) { $builder = $builder->where('surgery_at', '<', Carbon::parse($where['to_surgery_at'])); } //if ( ! empty($where['surgery_date'])) //{ // $v = $where['surgery_date']; // switch ($v) // { // // } //} } if (array_key_exists('archive_at', $rq['where'])) { $builder = $builder->where('archive_at', $rq['where']['archive_at']); } if (he_is('department')) { $dep_ins = M('department'); $dep_ins = $dep_ins->where('id', uid())->first(); $builder = $this->whereHas('hospital', function ($q) use($dep_ins) { $q->where('id', $dep_ins->hospital_id); }); } $builder = $builder->limit(50); $main = $builder->get(); return ss(['main' => $main, 'count' => $builder->count()]); }
public function __r_() { if (!rq('where') && he_is('employee')) { return $this->r(); } $builder = $this; $rq = rq(); if (true) { if (he_is('agency')) { $builder = $builder->where('agency_id', uid()); } $where = $rq['where']; if (!empty($where['cust_id'])) { $builder = $builder->where('cust_id', 'like', '%' . $where['cust_id'] . '%'); } if (!empty($where['status_type_id'])) { $status = $where['status_type_id']; switch ($status) { case 1: $builder = $builder->where(['used_at' => null, 'damaged_at' => null]); break; case 2: $builder = $builder->whereNotNull('used_at')->where('damaged_at', null); break; case 3: $builder = $builder->where('agency_id', '<>', 1); break; case 4: $builder = $builder->whereNotNull('damaged_at'); break; case 5: $builder = $builder->whereNotNull('replacement_id'); break; } } $status = Input::get('where.status'); if (!empty($status)) { $id = array_map('intval', $status); $other = array_diff($id, [2, -2]); $used = array_diff($id, $other); $sql = ' 1=1 and ('; if (!empty($other)) { $sql .= 'status in (' . implode(',', $other) . ') '; } if (!empty($used) && !empty($other)) { $sql .= ' or '; } if (!empty($used)) { # code... switch (array_sum($used)) { case 0: $sql .= ' (status =2)'; break; case -2: $sql .= '(status = 2 and doctor_id is not null)'; break; case 2: $sql .= '(status = 2 and doctor_id is null)'; break; default: break; } } $sql .= ')'; $builder = $builder->whereRaw($sql); } // 代理商 已售 未售 if (!empty($where['sold_status'])) { $sum = array_sum($where['sold_status']); switch ($sum) { case 1: $builder = $builder->where('hospital_id', '!=', '-1'); break; case 2: $builder = $builder->where('hospital_id', '=', '-1'); break; case 3: break; default: break; } } if (!empty($where['selling_status_type_id'])) { $status = $where['selling_status_type_id']; switch ($status) { case 1: $builder = $builder->where('agency_id', 1); break; case 2: $builder = $builder->where('agency_id', '<>', 1); break; } } if (!empty($where['agency_name'])) { $v = $where['agency_name']; $builder = $builder->where('agency_name', 'like', '%' . $v . '%'); } if (!empty($where['agency_id'])) { $v = $where['agency_id']; $builder = $builder->where('agency_id', '=', $v); } if (!empty($where['hospital_id'])) { $v = $where['hospital_id']; $builder = $builder->where('hospital_id', '=', $v); } if (!empty($where['hospital_name'])) { $v = $where['hospital_name']; $builder = $builder->where('hospital_name', 'like', '%' . $v . '%'); } if (!empty($where['doctor_name'])) { $v = $where['doctor_name']; $builder = $builder->where('doctor_name', 'like', '%' . $v . '%'); } if (!empty($where['from_created_at']) && !empty($where['to_created_at'])) { $builder = $builder->where('created_at', '>=', Carbon::parse($where['from_created_at'])); $builder = $builder->where('created_at', '<=', Carbon::parse($where['to_created_at'])); } elseif (!empty($where['from_created_at'])) { $builder = $builder->where('created_at', '>=', Carbon::parse($where['from_created_at'])); } elseif (!empty($where['to_created_at'])) { $builder = $builder->where('created_at', '<=', Carbon::parse($where['to_created_at'])); } if (!empty($where['from_shipped_at']) && !empty($where['to_shipped_at'])) { $builder = $builder->where('shipped_at', '>=', Carbon::parse($where['from_shipped_at'])); $builder = $builder->where('shipped_at', '<=', Carbon::parse($where['to_shipped_at'])); } elseif (!empty($where['from_shipped_at'])) { $builder = $builder->where('shipped_at', '>=', Carbon::parse($where['from_shipped_at'])); } elseif (!empty($where['to_shipped_at'])) { $builder = $builder->where('shipped_at', '<=', Carbon::parse($where['to_shipped_at'])); } if (!empty($where['from_sold_at']) && !empty($where['to_sold_at'])) { $builder = $builder->where('sold_at', '>=', Carbon::parse($where['from_sold_at'])); $builder = $builder->where('sold_at', '<=', Carbon::parse($where['to_sold_at'])); } elseif (!empty($where['from_sold_at'])) { $builder = $builder->where('sold_at', '>=', Carbon::parse($where['from_sold_at'])); } elseif (!empty($where['to_sold_at'])) { $builder = $builder->where('sold_at', '<=', Carbon::parse($where['to_sold_at'])); } if (!empty($where['from_used_at']) && !empty($where['to_used_at'])) { $builder = $builder->where('used_at', '>=', Carbon::parse($where['from_used_at'])); $builder = $builder->where('used_at', '<=', Carbon::parse($where['to_used_at'])); } elseif (!empty($where['from_used_at'])) { $builder = $builder->where('used_at', '>=', Carbon::parse($where['from_used_at'])); } elseif (!empty($where['to_used_at'])) { $builder = $builder->where('used_at', '<=', Carbon::parse($where['to_used_at'])); } if (!empty($where['from_damaged_at']) && !empty($where['to_damaged_at'])) { $builder = $builder->where('damaged_at', '>=', Carbon::parse($where['from_damaged_at'])); $builder = $builder->where('damaged_at', '<=', Carbon::parse($where['to_damaged_at'])); } elseif (!empty($where['from_damaged_at'])) { $builder = $builder->where('damaged_at', '>=', Carbon::parse($where['from_damaged_at'])); } elseif (!empty($where['to_damaged_at'])) { $builder = $builder->where('damaged_at', '<=', Carbon::parse($where['to_damaged_at'])); } if (!empty($where['from_archive_at']) && !empty($where['to_archive_at'])) { $builder = $builder->where('archive_at', '>=', Carbon::parse($where['from_archive_at'])); $builder = $builder->where('archive_at', '<=', Carbon::parse($where['to_archive_at'])); } elseif (!empty($where['from_archive_at'])) { $builder = $builder->where('archive_at', '>=', Carbon::parse($where['from_archive_at'])); } elseif (!empty($where['to_archive_at'])) { $builder = $builder->where('archive_at', '<=', Carbon::parse($where['to_archive_at'])); } //归档状态 if (!empty($where['archive'])) { if (in_array(1, $where['archive']) && !in_array(2, $where['archive'])) { $builder = $builder->whereNotNull('archive_at'); } if (in_array(2, $where['archive']) && !in_array(1, $where['archive'])) { $builder = $builder->whereNull('archive_at'); } } //销售状态 if (!empty($where['sold'])) { $total = array_sum($where['sold']); switch ($total) { case 1: $builder = $builder->where('hospital_id', '=', '-1')->where('agency_id', '=', -1); break; case 2: $builder = $builder->where('agency_id', '>=', 1); break; case 3: $builder = $builder->whereRaw('(agency_id >= 1 or (hospital_id = -1 and agency_id = -1))'); break; case 4: $builder = $builder->where('hospital_id', '>', 0); break; case 5: $builder = $builder->whereRaw('(v_mark.hospital_id = -1 and v_mark.agency_id = -1 or v_mark.hospital_id>0)'); break; case 6: $builder = $builder->whereRaw('(v_mark.hospital_id = -1 and v_mark.agency_id > 1 or v_mark.hospital_id>0)'); break; case 7: default: # code... break; } } if (!empty($where['from_surgery_at']) && !empty($where['to_surgery_at'])) { $builder = $builder->where('surgery_at', '>=', Carbon::parse($where['from_surgery_at'])); $builder = $builder->where('surgery_at', '<=', Carbon::parse($where['to_surgery_at'])); } elseif (!empty($where['from_surgery_at'])) { $builder = $builder->where('surgery_at', '>=', Carbon::parse($where['from_surgery_at'])); } elseif (!empty($where['to_surgery_at'])) { $builder = $builder->where('surgery_at', '<=', Carbon::parse($where['to_surgery_at'])); } } if (array_key_exists('archive_at', $rq['where'])) { $builder = $builder->where('archive_at', $rq['where']['archive_at']); } if (he_is('department')) { $dep_ins = M('department'); $dep_ins = $dep_ins->where('id', uid())->first(); $builder = $this->whereHas('hospital', function ($q) use($dep_ins) { $q->where('id', $dep_ins->hospital_id); }); } DB::enableQueryLog(); $pagination = Input::get("pagination", 1); $perpage = rq('limit') ? rq('limit') : $this->default_limit; $count = $builder->count(); $main = $builder->skip(($pagination - 1) * $perpage)->take($perpage)->get(); $sql = DB::getQueryLog(); //print_r($sql); return ss(['main' => $main, 'count' => $count, 'per_page' => $perpage, 'sql' => $builder->toSql()]); }
/** * Mark 相关 Log * * @param [type] $method [description] * @param [type] $data [description] * @return [type] [description] */ public function mark($method = null, $data = null) { if ($method == 'r') { ILog::add_log(22, 3, $data, '查看mark详情'); } if ($method == 'modify') { ILog::add_log(23, 3, $data->id, '手工将Mark绑定给代理商 ' . $data->agency_id); } if ($method == 'modify') { ILog::add_log(24, 3, $data->id, '手工将Mark解绑'); } if ($method == 'recycle') { ILog::add_log(25, 3, $data->id, '将Mark设为损坏报废'); } if ($method == 'replace') { ILog::add_log(26, 3, $data->id, '手工将Mark设为损坏更新'); } if ($method == 'add' && he_is('employee')) { ILog::add_log(27, 3, -1, $data); } if ($method == 'bind' && he_is('employee')) { ILog::add_log(28, 3, -1, $data); } if ($method == 'unbind' && he_is('employee')) { ILog::add_log(29, 3, -1, $data); } }
public function r_() { dd(uid()); $cond = rq(); if (he_is('agency')) { $cond['where']['agency_id'] = uid(); } }