|
@@ -9,9 +9,13 @@
|
|
|
|
|
|
require_once(BASE_ROOT_PATH . '/mobile/control/special.php');
|
|
require_once(BASE_ROOT_PATH . '/mobile/control/special.php');
|
|
require_once(BASE_ROOT_PATH . '/helper/ugc_helper.php');
|
|
require_once(BASE_ROOT_PATH . '/helper/ugc_helper.php');
|
|
|
|
+require_once(BASE_ROOT_PATH . '/helper/search/tcp_client.php');
|
|
|
|
|
|
class member_ugcControl extends specialControl
|
|
class member_ugcControl extends specialControl
|
|
{
|
|
{
|
|
|
|
+ const greater = 0;
|
|
|
|
+ const lesser = 1;
|
|
|
|
+
|
|
public function __construct()
|
|
public function __construct()
|
|
{
|
|
{
|
|
parent::__construct();
|
|
parent::__construct();
|
|
@@ -19,14 +23,149 @@ class member_ugcControl extends specialControl
|
|
|
|
|
|
public function pub_listOp()
|
|
public function pub_listOp()
|
|
{
|
|
{
|
|
-
|
|
|
|
|
|
+ return $this->fetch('pub_list');
|
|
}
|
|
}
|
|
|
|
|
|
public function pri_listOp()
|
|
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()
|
|
public function addOp()
|
|
{
|
|
{
|
|
$this->need_login();
|
|
$this->need_login();
|
|
@@ -90,6 +229,13 @@ class member_ugcControl extends specialControl
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public function mineOp()
|
|
|
|
+ {
|
|
|
|
+ $this->need_login();
|
|
|
|
+ $user_id = $_SESSION['member_id'];
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
public function delOp()
|
|
public function delOp()
|
|
{
|
|
{
|
|
|
|
|