<?php /** * 【销售活动-后台】活动详情接口 * * User: WJY * Date: 2017-11-02 */ namespace Apicp\Controller\Activity; use Common\Common\User; use Common\Service\ActivityService; use Common\Service\CommentService; use Common\Service\LikeService; use Common\Service\PacketService; use Common\Service\RightService; use VcySDK\Member; use VcySDK\Service; class DetailController extends \Apicp\Controller\AbstractController { /** @var ActivityService 活动信息表 */ protected $_activity_serv; /** @var RightService 权限信息表 */ protected $_right_serv; /** @var PacketService 红包主表 */ protected $packet_serv; public function before_action($action = '') { if (!parent::before_action($action)) { return false; } // 实例化活动信息表 $this->_activity_serv = new ActivityService(); // 实例化权限表 $this->_right_serv = new RightService(); // 实例化红包表 $this->packet_serv = new PacketService(); return true; } public function Index_post() { $ac_id = I('post.ac_id', 0, 'intval'); // 活动ID存在性验证 if (empty($ac_id)) { E('_EMPTY_ACTIVITY_ID'); } // 获取活动详情 $data = $this->_activity_serv->get($ac_id); if (empty($data)) { // 活动存在性验 E('_ERR_ACTIVITY_DATA'); } if ($data['activity_status'] != ActivityService::ACTIVITY_DRAFT) { $comment_s = new CommentService(); $comment_num = $comment_s->count_by_conds([ 'ac_id' => $ac_id, 'check_status' => CommentService::CHECK_OK ]); $like_s = new LikeService(); $like_num = $like_s->count_by_conds([ 'obj_id' => $ac_id, 'type' => ActivityService::LIKE_ACTIVITY_TYPE ]); // 更新活动点赞数与评论数 $this->_activity_serv->update($ac_id, ['likes' => $like_num, 'comments' => $comment_num]); $data['likes'] = $like_num; $data['comments'] = $comment_num; } // 格式化详情数据 $result = $this->_activity_serv->format_activity_detail($data); // 获取权限数据 list($right_list, $right_data) = $this->_right_serv->get_data(['ac_id' => $ac_id]); // 获取红包数据 $red_list = $this->packet_serv->get_by_conds(['ac_id' => $ac_id]); // 格式化数据 $red_list = $this->_activity_serv->red_format($red_list); // 红包内加入红包祝福语 $red_list['packet_bless'] = $result['packet_bless']; $red_list['is_show_red'] = $result['is_show_red']; // 获取有权限的人员数据 $result['check_user_list'] = $this->get_check_auth($result); // 删除result中的红包祝福语 unset($result['packet_bless']); // 加入权限数组 $result['right'] = $right_data; // 加入红包数组 $result['red_content'] = $red_list; $this->_result = $result; return true; } /** * 获取有权限审核的人员数据列表 * @param array $data 获取的活动详情信息 * @return array */ protected function get_check_auth($data = []) { // 初始化权限人员数据列表 $check_user_list = []; // 如果审核人员不为空 if (!empty($data['check_user_list'])) { // 初始化用户类 $member = User::instance(); // 获取当前用户基本信息 $users = $member->listAllBasic(['memUids' => array_column($data['check_user_list'], 'memID')]); // 如果有用户数据 if (!empty($users)) { // 重新组装数据已用户UID为主键 $user_list = array_combine_by_key($users, 'memUid'); // 重新组装数据 foreach ($data['check_user_list'] as $check_user) { if (!empty($user_list[$check_user['memID']])) { $check_user_list[] = [ 'memID' => $check_user['memID'], 'memUsername' => $user_list[$check_user['memID']]['memUsername'], 'memFace' => $user_list[$check_user['memID']]['memFace'], ]; } } } } return $check_user_list; } }