fetch('pub_list'); } public function pri_listOp() { $this->need_login(); return $this->fetch('pub_list'); } public function mine_listOp() { $this->need_login(); return $this->fetch('mine_list'); } private function fetch($type) { $special_id = intval($_GET['special_id']); $count = $this->page_size(); if(empty($special_id) || $special_id == -1) { $special_id = -1; $direct = self::lesser; } else { $direct = $this->direct(); } if($type == "pub_list") { $result = search\relation_client::instance()->fetch_pub_special(['special_id' => $special_id,'count'=> $count,'type' => $direct]); } elseif($type == 'pri_list') { $result = search\relation_client::instance()->fetch_pri_special(['user_id' => intval($_SESSION['member_id']), 'special_id' => $special_id,'count'=> $count,'type' => $direct]); } elseif($type == "mine_list") { $result = search\relation_client::instance()->fetch_self_special(['user_id' => intval($_SESSION['member_id']), 'special_id' => $special_id,'count'=> $count,'type' => $direct]); } else { return self::outerr(errcode::ErrParamter); } $specials = $this->specials($result); if($specials == false) { return self::outsuccess(array('special_list' => null,'mobile_page' => mobile_page(0))); } else { $special_list = $this->special_list($specials,$ugcs); return self::outsuccess(array('special_list' => $special_list, 'ugcs' => $ugcs, 'summary' => null, 'groupbuy' => null, 'limitime' => null, 'bundling' => null, 'mobile_page' => mobile_page(1))); } } private function direct() { $cur_page = $this->page_no(); if($cur_page == 1) { return self::greater; } else { return self::lesser; } } private function specials($result) { if(empty($result)) return false; $code = intval($result['code']); if($code != 200) { return false; } else { $specials = $result['data']['specials']; return empty($specials) ? false : $specials; } } private function special_list($spids, &$ugcs) { $result = []; $mod_special = Model('mb_special'); $items = $mod_special->getMbSpecialList(['special_id' => ['in',$spids]]); $users = []; $specials = []; foreach ($items as $item) { $special = new ugc\special($item); $specials[] = $special; $sender = $special->memberid(); $users[] = $sender; } sort($users); array_unique($users); $minfos = []; if(!empty($users)) { $mod_member = Model('member'); $members = $mod_member->getMemberList(['member_id' => ['in',$users]]); foreach ($members as $member) { $info = new member_info($member); $mid = $info->member_id(); $minfos[$mid] = $info; } } $ugcs = []; foreach ($specials as $special) { $block = special_formater::format_ugc($special); $result[] = $block; $divider = special_formater::def_divider(); $result[] = $divider; $mid = $special->memberid(); $minfo = $minfos[$mid]; $ugc = $this->formate_ugc($minfo,$special); $ugcs[] = $ugc; } return $result; } private function formate_ugc(member_info $minfo,ugc\special $special) { $ret['special_id'] = $special->special_id(); $ret['member_avatar'] = $minfo->avatar(); $ret['member_nickname'] = $minfo->nickname(); $ret['has_vote'] = $special->has_vote(); $ret['appreciate_num'] = 100; $ret['comment_num'] = $special->comments(); $ret['clicks'] = $special->clicks(); $ret['pubtime'] = $special->editime(); $ret['desc'] = $special->description(); return $ret; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public function addOp() { $this->need_login(); $contet = $_POST['content']; if(empty($contet)) { return self::outerr(errcode::ErrParamter,"上传的内容不能为空"); } $sp_data = json_decode($contet,true); if(empty($sp_data)) { return self::outerr(errcode::ErrParamter,"上传的内容不能为空"); } $spobj = ugc_helper::crate_special($sp_data,$err); if($spobj == false) { return self::outerr($err['code'],$err['msg']); } if($spobj->count() > 0) { $special_id = $spobj->save($_SESSION['member_id'],$sp_data); } else { $special_id = false; } if($special_id == false) { return self::outerr(errcode::ErrUGC,"抱歉,内容云同步失败 :("); } else { return self::outsuccess(['special_id' => $special_id]); } } public function previewOp() { $this->need_login(); return parent::indexOp(); } public function editOp() { } public function publishOp() { $this->need_login(); $special_id = intval($_GET['special_id']); $setting = $_GET['setting']; if($special_id < 0 || empty($setting)) { return self::outerr(errcode::ErrParamter); } $setting = json_decode($setting,true); if(ugc_helper::pub_special($special_id,$setting,$err) == false) { return self::outerr($err['code'],$err['msg']); } else { return self::outsuccess(['special_id' => $special_id]); } } public function mineOp() { $this->need_login(); $user_id = $_SESSION['member_id']; } public function delOp() { } }