Message.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. namespace app\newhome\controller;
  3. use think\Controller;
  4. use app\user\model\Mail;
  5. use app\user\model\ReadMail;
  6. class Message extends Controller {
  7. private $readModel, $mailModel;
  8. public function _initialize(){
  9. parent::_initialize();
  10. $this->readModel = new ReadMail();
  11. $this->mailModel = new Mail();
  12. }
  13. public function read()
  14. {
  15. $data = decode($this->request->post());
  16. $uid = $data['u'];
  17. $mid = $data['i'];
  18. $res = $this->readModel->where(['uid'=>$uid, 'mid'=>$mid])->find();
  19. if (empty($res)) {
  20. $this->readModel->save(['uid'=>$uid, 'mid'=>$mid]);
  21. }
  22. return json(['error'=>0]);
  23. }
  24. public function mail(){
  25. $data = decode($this->request->post());
  26. $uid = $data['u'];
  27. // 找到用户的所有邮件
  28. $res = $this->mailModel
  29. ->where(['is_del'=>0])
  30. ->where(function ($query) {
  31. $uid = $this->request->post('u', '1907239071686061468');
  32. $query->where(['users'=>['like', "%{$uid}%"]])->whereOr(['users'=>'']);
  33. })
  34. ->where(function ($query) {
  35. $time = getCurrentTime();
  36. $query->where(['begin'=>['<', $time]])->whereOr('begin', null);
  37. })
  38. ->where(function ($query) {
  39. $time = getCurrentTime();
  40. $query->where(['end'=>['>', $time]])->whereOr('end', null);
  41. })
  42. ->order('create_time', 'desc')
  43. ->select();
  44. $read = $this->readModel->where(['uid'=>$uid])->column('mid');
  45. foreach ($res as $key=>$val) {
  46. if(in_array($val['id'], $read)) unset($res[$key]);
  47. unset($val['users']);
  48. unset($val['is_del']);
  49. }
  50. return json(array_values($res));
  51. }
  52. }