Task.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\model\LabelMessage;
  4. use app\common\model\User;
  5. use app\common\model\UserFacility;
  6. use app\common\model\UserMessage;
  7. use app\common\model\UserSearch;
  8. /**
  9. * @title 定时任务
  10. * Class Task
  11. * @controller Task
  12. * @group base
  13. */
  14. class Task extends Base
  15. {
  16. /**
  17. * @title 标签推送[根据标签id]
  18. * @desc 标签推送
  19. * @author qc
  20. * @url /api/Task/taskUserMessage
  21. */
  22. public function taskUserMessage(){
  23. $list = UserMessage::field('id,user_id,content')->where('jg_type',1)->where('jg_status',0)->limit(0,50)->order('id')->select();
  24. foreach ($list as $v) {
  25. UserMessage::where(['id'=>$v['id']])->update(['jg_status'=>1]);
  26. Jpush($v['user_id'],$v['content']);
  27. }
  28. }
  29. /**
  30. * @title 标签推送[根据标签id]
  31. * @desc 标签推送
  32. * @author qc
  33. * @url /api/Task/taskLabelMessage
  34. */
  35. //按照标签推送
  36. public function taskLabelMessage()
  37. {
  38. $list = LabelMessage::where('jg_status',0)->where('is_deleted',0)->select()->toArray();
  39. foreach ($list as $v) {
  40. LabelMessage::where(['id'=>$v['id']])->update(['jg_status'=>1]);
  41. if($v['type'] == 1) {
  42. $user_list = User::field('id')
  43. ->where('label','like','%|'.$v['label_id'].'|%')
  44. ->where('status','=',1)
  45. ->where('is_deleted','=',0)->select()->toArray();;
  46. foreach ($user_list as $user_info) {
  47. $res = Jpush($user_info['id'],$v['content']);
  48. }
  49. }else{
  50. if(!$v['label']) continue;
  51. $label_arr = explode(',',$v['label']);
  52. $where_str = '';
  53. $search_arr=[];
  54. foreach ($label_arr as $t){
  55. $search_arr[] = " title like '".'%'.$t."%'" .' ';
  56. }
  57. if(!empty($search_arr)) $where_str = implode(' OR ',$search_arr);
  58. $user_arr = UserSearch::where($where_str)->column('user_id');
  59. foreach (array_unique($user_arr) as $user_id) {
  60. $res = Jpush($user_id,$v['content']);
  61. }
  62. }
  63. }
  64. }
  65. /**
  66. * @title 半年清理一次设备号
  67. * @desc
  68. * @author qc
  69. * @url /api/Task/removeFacility
  70. */
  71. public function removeFacility(){
  72. UserFacility::where(['set_time','> time',date('Y-m-d H:i:s',strtotime('-180 days'))])->update(['facility'=>'','set_time'=>date('Y-m-d H:i:s')]);
  73. }
  74. }