<?php /** * Created by PhpStorm. * User: zhonglei * Date: 18/5/7 * Time: 16:57 */ namespace Rpc\Controller\User; use Com\PackageValidate; use Common\Common\StudyMap; use Common\Service\UserMapService; class SendNoticeController extends \Rpc\Controller\AbstractController { /** * SendNotice * @author zhonglei * @desc 当用户部门、岗位角色变更后,通知用户学习新的地图RPC接口 */ public function Index() { // 请求数据 $post_data = $this->_params; // 验证规则 $rules = [ 'uid' => 'require', 'map_ids' => 'require|array', ]; // 验证请求数据 $validate = new PackageValidate(); $validate->postData = $post_data; $validate->validateParams($rules); // 获取用户已学习记录 $userMapServ = new UserMapService(); $list = $userMapServ->list_by_conds(['uid' => $post_data['uid']]); $map_ids = array_column($list, 'map_id'); // 从地图ID中移除已学习的数据 foreach ($map_ids as $map_id) { $key = array_search($map_id, $post_data['map_ids']); if ($key !== false) { unset($post_data['map_ids'][$key]); } } // 推送消息 if (!empty($post_data['map_ids'])) { StudyMap::sendNotice($post_data['uid'], array_values($post_data['map_ids'])); } return true; } }