<?php /** *【积分抽奖-后台】未参与人员提醒接口 * User: daijun * Date: 2018/3/23 * Time: 下午3:42 */ namespace Apicp\Controller\Activity; use Common\Common\Constant; use Common\Service\ActivityService; use Common\Service\RecordService; use Common\Service\RightService; class UnJoinRemindController extends \Apicp\Controller\AbstractController { public function Index_post() { // 获取参数 $ac_id = I('post.ac_id'); if (empty($ac_id)) { // 活动ID不能为空 E('_EMPTY_ACTIVITY_ID'); } $activity_serv = new ActivityService(); $detail = $activity_serv->get($ac_id); if (empty($detail)) { // 活动信息不存在 E('_ERR_ACTIVITY_DATA'); } if (Constant::ACTIVITY_DRAFT == $detail['activity_status']) { // 草稿状态不能提醒 E('_ERR_ACTIVITY_DRAFT'); } $record_serv = new RecordService(); $record_list = $record_serv->list_by_conds(['ac_id' => $ac_id], null, [], 'uid'); // 已参与的人员uid集合 $uids = []; if (!empty($record_list)) { $uids = array_filter(array_unique(array_column($record_list, 'uid'))); } // 查询权限人员集合 $right = new RightService(); $all_right_users = $right->get_uids_by_right($detail); // 获取未参与人员uid集合 $un_join_uids = array_diff($all_right_users, $uids); // 组织发消息需要的参数 $send_params = [ 'ac_id' => $ac_id, 'title' => $detail['title'], 'start_time' => $detail['start_time'], 'end_time' => $detail['end_time'], 'integral' => $detail['integral'], 'uids' => $un_join_uids ]; // 发送提醒 $right->send_msg($send_params, Constant::MSG_ACTIVITY_REMIND); return true; } }