<?php require '../dao/TopicDao.php'; require '../dao/GetDao.php'; require '../dao/MessageDao.php'; $topicName = $_REQUEST['topicName']; $userId = $_REQUEST['userId']; //是否精确查询,否则采取模糊匹配 $isExact = (bool) $_REQUEST['isExact']; $topicDao = new TopicDao(); $getDao = new GetDao(); $messageDao = new MessageDao(); $topicDao = new TopicDao(); $topic = (object) array(); $topic->postTopic = json_decode($topicDao->searchPostTopic($userId, $topicName, $isExact))->resultArray; $topic->achieveTopic = json_decode($topicDao->searchAchieveTopic($userId, $topicName, $isExact))->resultArray; foreach ($topic->achieveTopic as $index => $achieve) { $achieveId = $achieve->achieveId; $achieve->getCount = (int) $getDao->achieveGetCount($achieveId); $achieve->mesgCount = (int) $messageDao->achieveMessageCount($achieveId); } echo json_encode($topic);
/** * 获得成就列表中每条成就的详尽信息,包括吐槽数、完成数 * @Param $userId * @Param $sq * @Param $orderField( default '') 排序字段 * @Param $achieveType( default '') * @Return */ private function achieve($userId, $sql, $orderField = '', $achieveType = '') { if ($userId != null) { $sql = "select p.* , g.isGet from ({$sql}) p left outer join tb_get g on g.getUser = '******' and g.getAchieve = p.achieveId "; if (!empty($orderField)) { $sql .= "order by p.{$orderField} desc"; } } $achieveList = json_decode($this->query($sql))->resultArray; $messageDao = new MessageDao(); $getDao = new GetDao(); $result = (object) array(); if (!empty($achieveType)) { $result->userGetCount = $this->userGetCount($userId, $achieveType); $result->totalAchieveCount = $this->totalAchieveCount($achieveType); } foreach ($achieveList as $index => $achieve) { $achieveId = $achieve->achieveId; $achieve->getCount = $getDao->achieveGetCount($achieveId); $achieve->mesgCount = $messageDao->achieveMessageCount($achieveId); } $result->achieveList = $achieveList; return json_encode($result); }