readModel = new ReadMail(); $this->mailModel = new Mail(); } public function read() { $data = decode($this->request->post()); $uid = $data['u']; $mid = $data['i']; $res = $this->readModel->where(['uid'=>$uid, 'mid'=>$mid])->find(); if (empty($res)) { $this->readModel->save(['uid'=>$uid, 'mid'=>$mid]); } return json(['error'=>0]); } public function mail(){ $data = decode($this->request->post()); $uid = $data['u']; // 找到用户的所有邮件 $res = $this->mailModel ->where(['is_del'=>0]) ->where(function ($query) { $uid = $this->request->post('u', '1907239071686061468'); $query->where(['users'=>['like', "%{$uid}%"]])->whereOr(['users'=>'']); }) ->where(function ($query) { $time = getCurrentTime(); $query->where(['begin'=>['<', $time]])->whereOr('begin', null); }) ->where(function ($query) { $time = getCurrentTime(); $query->where(['end'=>['>', $time]])->whereOr('end', null); }) ->order('create_time', 'desc') ->select(); $read = $this->readModel->where(['uid'=>$uid])->column('mid'); foreach ($res as $key=>$val) { if(in_array($val['id'], $read)) unset($res[$key]); unset($val['users']); unset($val['is_del']); } return json(array_values($res)); } }