<?php /** * AuditController.class.php * 同事圈话题 审核 * Date: 2018-06-28 */ namespace Apicp\Controller\Topic; use Common\Common\Constant; use Common\Model\CountModel; use Common\Service\CircleService; use Common\Service\CountService; class AuditController extends AbstractController { /** * @var CircleService 帖子信息表 */ protected $_circle_serv; /** * @var CountService 统计表 */ protected $_count_serv; public function before_action($action = '') { if (!parent::before_action($action)) { return false; } // 实例化信息同事圈 话题信息表 $this->_circle_serv = new CircleService(); // 实例化信息同事圈帖子信息表 $this->_count_serv = new CountService(); return true; } public function Index_post() { // 接收参数 $params = I('post.'); // 获取详情 $c_data = $this->verification($params); // 验证参数 if (!$c_data) { return false; } // 获取登录用户信息 $user = $this->_login->user; // 组装更新数据 $data = array( 'audit_state' => $params['audit_state'], 'audit_type' => self::AUDIT_ADMIN, 'audit_uid' => $user['eaId'], 'audit_uname' => $user['eaRealname'], 'audit_time' => MILLI_TIME ); // 执行数据更新 if (!$this->_circle_serv->update($params['id'], $data)) { $this->_set_error('_ERR_DATA_SAVE'); return false; } // 查询条件 $condition = array('uid' => $c_data['uid']); // 统计话题数 $total = $this->_count_serv->count_by_conds($condition); if (empty($total)) { $this->_count_serv->insert($condition); } // 更新话题数 $this->_count_serv->update_by_total($c_data['uid'], CountModel::CIRCLE_TOTAL); // 此处推送消息给话题发布人 $this->_circle_serv->send_msg_topic_admin($c_data, $params, $user); return true; } /** * 参数有效性检查 * @param array $params POST 参数 * @return array|bool */ public function verification($params = []) { // 参数验证 if (empty($params['id'])) { $this->_set_error('_EMPTY_ID'); return false; } if (!is_numeric($params['audit_state'])) { $this->_set_error('_EMPTY_AUDITSTATE'); return false; } // 参数有效性检查 $c_data = $this->_circle_serv->get_by_conds([ 'id' => $params['id'], 'type' => Constant::CIRCLE_TOPIC_TYPE ]); if (empty($c_data)) { $this->_set_error('_ERR_DATA_EXIST'); return false; } // 判断数据原始审核状态 if ($c_data['audit_state'] != self::AUDIT_ING) { $this->_set_error('_ERR_STATUS_EXIST'); return false; } return $c_data; } }