/** * 发布公告 * @param RequestParameter $inParam * @param ReturnParameter $outParam * @return bool */ public function addAgentNotice($inParam, $outParam) { // 1、系统非空数据配置初始化 $config = array( # 代理商id 'agentID' => array( 'name' => 'agentid', 'errcode' => ERRORCODE_AGENTIDERROR, 'errinfo' => ERRORINFO_AGENTIDERROR, ), # 渠道商id 'channelID' => array( 'name' => 'channelid', 'errcode' => ERRORCODE_CHANNELIDERROR, 'errinfo' => ERRORINFO_CHANNELIDERROR, ), # 个人代理id 'salesID' => array( 'name' => 'salesid', 'errcode' => ERRORCODE_SALESIDERROR, 'errinfo' => ERRORINFO_SALESIDERROR, ), # 公告内容 'noticeInfo' => array( 'name' => 'content', 'errcode' => 'H00001', 'errinfo' => '公告内容不能为空', ), ); // 2、数据处理后的结果集 异常标志err:true false $param = $this->inParamHandel($inParam, $outParam, $config); if (!$param) { return false; } // 验证总代权限 $auth = $this->checkAgentAuth($inParam, $outParam, $param['agentID'], $param['channelID'], $param['salesID']); if (!$auth) { return false; } // 通知入库 $res = $this->PDO_Execute( ' INSERT INTO ct_agent_notice(agent_id, channel_id, notice_info, create_time, status) VALUES (?, ?, ?, ?, ?)', $param['agentID'], $param['channelID'], $param['noticeInfo'], date('Y-m-d H:i:s', time()), 1 ); if (!$res) { $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); return false; } return true; } /** * [改]修改公告内容 公告状态 * author summer */ public function editAgentNotice($inParam, $outParam) { $config = array( # 代理商id 'agentID' => array( 'name' => 'agentid', 'errcode' => ERRORCODE_AGENTIDERROR, 'errinfo' => ERRORINFO_AGENTIDERROR, ), # 渠道商id 'channelID' => array( 'name' => 'channelid', 'errcode' => ERRORCODE_CHANNELIDERROR, 'errinfo' => ERRORINFO_CHANNELIDERROR, ), # 个人代理id 'salesID' => array( 'name' => 'salesid', 'errcode' => ERRORCODE_SALESIDERROR, 'errinfo' => ERRORINFO_SALESIDERROR, ), # 操作记录id 'id' => array( 'name' => 'id', 'errcode' => 'H00001', 'errinfo' => 'id不能为空', ) ); // 2、数据处理后的结果集 异常标志err:true false $param = $this->inParamHandel($inParam, $outParam, $config); if (!$param) { return false; } // 3、权限验证 $auth = $this->checkAgentAuth($inParam, $outParam, $param['agentID'], $param['channelID'], $param['salesID']); if (!$auth) { return false; } // 4、业务逻辑部分 #a.查看公告是否存在 $item = $this->PDO_Request( ' select * from ct_agent_notice where id = ?; ', $param['id'] ); if (!$item) { $outParam->SetErrors(ERRORCODE_COMMISSIONNOTEXISTERROR, ERRORINFO_COMMISSIONNOTEXISTERROR); return false; } // 传了几个改几个 $status = isset($param['_params']['status']) ? $param['_params']['status'] : $item[0]['status']; // 修改状态 $content = isset($param['_params']['content']) ? $param['_params']['content'] : $item[0]['notice_info']; // 内容 // 更新公告 $this->PDO_Execute( ' update ct_agent_notice set notice_info = ?, status = ? where id = ?; ', $content, $status, $param['id'] ); if (!$this->PDO_IsDone()) { $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); return false; } return true; } /** * [查]查询公告 pc后台 * author summer */ public function getAgentNotice($inParam, $outParam) { // 1、系统非空数据配置初始化 $config = array( # 代理商id 'agentID' => array( 'name' => 'agentid', 'errcode' => ERRORCODE_AGENTIDERROR, 'errinfo' => ERRORINFO_AGENTIDERROR, ), # 渠道商id 'channelID' => array( 'name' => 'channelid', 'errcode' => ERRORCODE_CHANNELIDERROR, 'errinfo' => ERRORINFO_CHANNELIDERROR, ), # 个人代理id 'salesID' => array( 'name' => 'salesid', 'errcode' => ERRORCODE_SALESIDERROR, 'errinfo' => ERRORINFO_SALESIDERROR, ), ); // 2、数据处理后的结果集 异常标志err:true false $param = $this->inParamHandel($inParam, $outParam, $config); if (!$param) { return false; } //3.1 可选参数获取 $beginTime = empty($param['_params']['begintime']) ? false : $param['_params']['begintime']; // 查询开始时间 $endTime = empty($param['_params']['endtime']) ? false : $param['_params']['endtime']; // 查询结束时间 $status = empty($param['_params']['status']) ? 5 : $param['_params']['status']; // 查询状态 switch ($status) { // 当前状态(0: 关闭;1: 开启) case '0': $where_status = ' AND status = 0'; break; case '1': $where_status = ' AND status = 1'; break; default: $where_status = ''; break; } $keyword = empty($param['_params']['keyword']) ? false : $param['_params']['keyword']; // 查询关键字 if ($keyword) { $where_keyword = ' AND notice_info like "%' . trim($keyword) . '%"'; } else { $where_keyword = ''; } # 分页信息 $page_index = empty($param['_params']['page_index']) ? 1 : intval($param['_params']['page_index']); // 当前页 $page_size = empty($param['_params']['page_size']) ? 10 : intval($param['_params']['page_size']); // 单页容量 $start = ($page_index - 1) * $page_size; $strPage = ''; if (!empty($page_index)) { $strPage .= " LIMIT {$start},{$page_size} "; } if ($beginTime) { $where_begin = ' AND create_time >= "' . $beginTime . ' 00:00:00"'; } else { $where_begin = ''; } if ($endTime) { $where_end = ' AND create_time <= "' . $endTime . ' 23:59:59"'; } else { $where_end = ''; } $items = $this->PDO_Request( ' SELECT * FROM ct_agent_notice WHERE agent_id = ? AND channel_id = ? AND status != -1' . $where_begin . $where_end . $where_keyword . $where_status . ' ORDER BY create_time desc ' . $strPage . ';', $param['agentID'], $param['channelID'] ); if (!is_array($items)) { $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); return false; } # 分页计算 $dbData = $this->PDO_Request( ' SELECT count(1) num FROM ct_agent_notice WHERE agent_id = ? AND channel_id = ? AND status != -1' . $where_begin . $where_end . $where_keyword . $where_status . ';', $param['agentID'], $param['channelID'] ); if (!is_array($dbData) || count($dbData) < 1) { $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); return false; } $data_count = intval($dbData[0]['num']); $page_count = $data_count / $page_size + 1; // 总页数 // 5、数据返回部分 $outParam->biz_content = array( 'data' => $items, 'page_index' => $page_index, 'page_size' => $page_size, 'page_count' => intval($page_count), 'data_count' => $data_count, ); return true; } ##------------ 工具方法[curd] ##------------[summer 2017/11/6 Handel] -----------------------> /** * 输入参数标准化处理 * @param RequestParameter $inParam * @param ReturnParameter $outParam * @param array $config 待处理变量配置文件 * * @return array data * * author:summer 2017/11/6 */ public function inParamHandel($inParam, $outParam, $config) { foreach ($config as $k => $v) { // 1、全局校验 $data['_params'] = $request_data = isset($inParam->biz_content) ? $inParam->biz_content : ''; if (!is_array($request_data)) { $outParam->SetErrors(ERRORCODE_INPARAMERROR, ERRORINFO_INPARAMERROR); return false; } // 2、单元校验 $data[$k] = isset($request_data[$v['name']]) ? $request_data[$v['name']] : ''; if (empty($data[$k])) { $outParam->SetErrors($v['errcode'], $v['errinfo']); return false; } } // 3、返回处理后的数据 return $data; } /** * 代理权限认证 * @param RequestParameter $agentid 代理商id * @param RequestParameter $channelid 渠道商id * @param RequestParameter $salesid 代理人id * * @return array data * * author:summer 2017/11/6 */ public function checkAgentAuth($inParam, $outParam, $agentID, $channelID, $salesID) { //只有总代理才有权限 $dbSalesInfo = $this->PDO_Request( ' SELECT idx, global_power FROM sales_user WHERE saus_agentid=? AND saus_channelid=? AND saus_salesid=?', $agentID, $channelID, $salesID ); if (!is_array($dbSalesInfo)) { $outParam->SetErrors($this->GetErrorCode(), $this->GetErrorInfo()); return false; } // 代理不存在 if (count($dbSalesInfo) < 1) { $outParam->SetErrors(ERRORCODE_SALESNOTEXISTERROR, ERRORINFO_SALESNOTEXISTERROR); return false; } // 不是总代理,没有权限 if (intval($dbSalesInfo[0]['global_power']) != 1) { $outParam->SetErrors(ERRORCODE_NOPOWERERROR, ERRORINFO_NOPOWERERROR); return false; } return true; } }