123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243 |
- <?php
- /**
- * Created by PhpStorm.
- * User: stanley-king
- * Date: 2017/7/5
- * Time: 下午4:02
- */
- require_once(BASE_ROOT_PATH . '/mobile/control/special.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
- {
- const greater = 0;
- const lesser = 1;
- public function __construct()
- {
- parent::__construct();
- }
- public function pub_listOp()
- {
- return $this->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()
- {
- }
- }
|