Authored by yangyang

加注释

... ... @@ -18,14 +18,18 @@ use Api\Yohobuy;
class StarClassData
{
//用户当前亲密度,排名
/**
* 用户当前亲密度,排名
* @param $uid
* @return string
*/
public static function rankInfoDataUrl($uid)
{
$param = Yohobuy::param();
$param['uid'] = $uid;
$param['method'] = 'app.starClass.rankInfo';
$param['client_secret'] = Sign::getSign($param);
//print_r($param);
return Yohobuy::httpBuildQuery(Yohobuy::DEV_API_URL, $param);
}
... ... @@ -60,7 +64,9 @@ class StarClassData
/**
*星潮教室-签到
* 星潮教室-签到
* @param $uid
* @return mixed
*/
public static function sign($uid)
{
... ... @@ -74,19 +80,27 @@ class StarClassData
/**
* 星潮教室-星搭配文章
* @param $page
* @param $uid
* @param $limit
* @return mixed
*/
public static function collocationData($page, $limit)
public static function collocationData($page, $uid, $limit)
{
$param = Yohobuy::param();
$param['page'] = $page;
$param['limit'] = $limit;
$param['uid'] = $uid;
$param['client_secret'] = Sign::getSign($param);
//print_r($param);
return Yohobuy::get(Yohobuy::DEV_SERVICE_URL . 'guang/api/v5/article/getStarClassroomArticleList', $param);
}
/**
* 点赞
* @param $articleId
* @param $udid
* @return mixed
*/
public static function setPraise($articleId, $udid)
{
... ... @@ -99,7 +113,9 @@ class StarClassData
}
/**
* 转发
* 分享星搭配文章获得亲密度
* @param $uid
* @return mixed
*/
public static function forward($uid)
{
... ... @@ -113,9 +129,14 @@ class StarClassData
/**
* 收藏资讯文章
* @param $articleId
* @param $uid
* @param $type
* @return mixed
*/
public static function setFavorite($articleId, $uid, $type)
{
//根据type判断调取收藏or取消收藏接口
if (!empty($type) && $type == 'fav') {
$url = 'guang/api/v1/favorite/setFavorite';
}elseif($type == 'del'){
... ... @@ -133,6 +154,8 @@ class StarClassData
/**
* 排名前100
* @param $uid
* @return mixed
*/
public static function topData($uid)
{
... ...
... ... @@ -11,25 +11,34 @@ namespace Guang;
use Plugin\Helpers;
use LibModels\Wap\Guang\StarClassData;
use Api\Yohobuy;
use Plugin\Images;
/**
* Class TrendClassesroom
* 星潮教室
* 星潮教室相关的模板数据模型
* Class StarClassModel
* @package Guang
*/
class StarClassModel
{
//星潮教室首页
/* 星潮教室首页楼层资源的位置码 */
const CODE_FLOOR_STARCLASS_INDEX = '8adc27fcf5676f356602889afcfd2a8e';
/* 星专题楼层资源的位置码 */
const CODE_FLOOR_STARCLASS_SPECIAL = '89cc20483ee2cbc8a716dcfe2b6c7603';
/**
* 星潮教室首页(全部)
* @param $uid
* @return array
*/
public static function getStarClass($uid)
{
$result = array();
//头部导航
$result['headTab'] = self::getHeadTab('index');
//组装资源位获取星潮教室首页数据URL
$contentCode = '8adc27fcf5676f356602889afcfd2a8e';
$res['starClassIndex'] = StarClassData::getResourceDataUrl($contentCode);
//组装调资源位URL(获取星潮教室首页数据)
$res['starClassIndex'] = StarClassData::getResourceDataUrl(self::CODE_FLOOR_STARCLASS_INDEX);
//组装获得每日签到数据接口URL
$res['rankInfo'] = StarClassData::rankInfoDataUrl($uid);
... ... @@ -37,10 +46,10 @@ class StarClassModel
//批量调接口
$data = Yohobuy::getMulti($res);
//调用成功封装数据
if (isset($data['starClassIndex']) && !empty($data['starClassIndex'])) {
$starClassIndex = $data['starClassIndex'];
//初始化$build参数
$build = array();
foreach ($starClassIndex as $value) {
if (empty($value)) {
... ... @@ -50,23 +59,26 @@ class StarClassModel
if (empty($value['data']) || !is_callable("self::$fun")) {
continue;
}
//调用各模块处理函数处理数据
$build = self::$fun($value['data']);
if (empty($build)) {
continue;
}
$result['resources'][] = $build;
}
//释放$build参数
$build = array();
}
//签到信息封装
if (isset($data['rankInfo'])) {
$rankInfo = array(
array(
'portraitUrl' => isset($data['rankInfo']['avatar']) ? Helpers::getOriginalImg($data['rankInfo']['avatar']) : '',
'username' => isset($data['rankInfo']['username']) ? $data['rankInfo']['username'] : '',
'rank' => isset($data['rankInfo']['userNum']) ? $data['rankInfo']['userNum'] : '0',
'intimacy' => isset($data['rankInfo']['userRank']) ? $data['rankInfo']['userRank'] : '0',
'rank' => isset($data['rankInfo']['userRank']) ? $data['rankInfo']['userRank'] : '0',
'intimacy' => isset($data['rankInfo']['userNum']) ? $data['rankInfo']['userNum'] : '0',
'week' => array(
'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fn', 'Sat'
),
... ... @@ -75,24 +87,29 @@ class StarClassModel
);
}
//将签到数据插入资源位第二位置
//将签到数据插入资源位第二位置(签到信息不属于资源位,并且位置不可配置)
array_splice($result['resources'], 1, 0 ,$rankInfo);
return $result;
}
//星专题
/**
* 星专题
* @return array
*/
public static function getspecial()
{
$result = array();
//头部导航
$result['headTab'] = self::getHeadTab('special');
//组装资源位获取星潮教室首页数据URL
$contentCode = '89cc20483ee2cbc8a716dcfe2b6c7603';
$data = StarClassData::getResourceData($contentCode);
$data = StarClassData::getResourceData(self::CODE_FLOOR_STARCLASS_SPECIAL);
//资源位数据处理
if (isset($data['code']) && $data['code'] == 200) {
//初始化$build参数
$build = array();
foreach ($data['data'] as $value) {
if (empty($value)) {
... ... @@ -102,12 +119,14 @@ class StarClassModel
if (empty($value['data']) || !is_callable("self::$fun")) {
continue;
}
//循环调用模块处理函数
$build = self::$fun($value['data']);
if (empty($build)) {
continue;
}
$result['resources'][] = $build;
}
//释放$build参数
$build = array();
}
... ... @@ -121,6 +140,7 @@ class StarClassModel
public static function getCollocation()
{
$result = array();
//头部导航
$result['headTab'] = self::getHeadTab('collocation');
return $result;
... ... @@ -129,14 +149,17 @@ class StarClassModel
/**
* 星搭配文章请求
*/
public static function ajaxCollocation($page, $isApp, $limit)
public static function ajaxCollocation($page, $uid, $isApp, $limit)
{
$data = StarClassData::collocationData($page, $limit);
//调取接口获得星搭配文章数据
$data = StarClassData::collocationData($page, $uid, $limit);
$result = array();
$collocationList = array();
//处理星搭配文章数据
if (isset($data['code']) && $data['code'] == 200 && !empty($data['data'])) {
foreach ($data['data']['list']['artList'] as $key => $value) {
//获得原尺寸图片
$collocationList[$key]['img'] = Helpers::getOriginalImg($value['src']);
$collocationList[$key]['url'] = $value['url'];
$collocationList[$key]['title'] = $value['title'];
... ... @@ -145,8 +168,10 @@ class StarClassModel
$collocationList[$key]['seeNum'] = $value['views_num'];
$collocationList[$key]['zanNum'] = $value['praise_num'];
$collocationList[$key]['articleId'] = $value['id'];
//string转bool值
$collocationList[$key]['isLiked'] = $value['isPraise'] == 'Y' ? true : false;
$collocationList[$key]['isCollected'] = $value['isFavor'] == 'Y' ? true : false;
//判断客户端是APP时给分享链接
$isApp ? $collocationList[$key]['share'] = $value['share']['url'] : '';
}
$result['collocationList'] = $collocationList;
... ... @@ -156,51 +181,66 @@ class StarClassModel
}
//top100
/**
* 签到Top100排行榜数据
* @param $uid
* @return array
*/
public static function getTop($uid)
{
//调取接口获得签到TOP100数据
$data = StarClassData::topData($uid);
$result = array();
//处理签到TOP100数据
if (isset($data['code']) && $data['code'] == 200) {
foreach ($data['data']['top'] as $key=>$value) {
$result['rankingList'][$key]['num'] = intval($key) + 1;
$result['rankingList'][$key]['img'] = Helpers::getImageUrl($value['avatar'], 640, 240);
$result['rankingList'][$key]['name'] = $value['username'];
$result['rankingList'][$key]['intimacyNum'] = $value['num'];
//前三名给一个高亮参数
if ($key <= 2) {
$result['rankingList'][$key]['highLigth'] = true;
}
}
//用户基本信息数据
$result['userImg'] = $data['data']['userStarInfo']['userImg'] = Helpers::getOriginalImg($value['avatar']);
$result['userName'] = $data['data']['userStarInfo']['username'];
$result['rankNum'] = $data['data']['userStarInfo']['userRank'];
$result['intimacy'] = $data['data']['userStarInfo']['userNum'];
}
return $result;
}
//签到操作
/**
* 签到
* @param $uid
* @return array|void
*/
public static function sign($uid)
{
//调用接口签到,并返回签到信息数据
$data = StarClassData::sign($uid);
$result = array();
$result['signDay'] = '';
//处理签到数据
if (isset($data['code']) && $data['code'] == 200) {
$result['todayIntimacy'] = isset($data['data']['logs'][0]['addNum']) ? $data['data']['logs'][0]['addNum'] : '0';
foreach ($data['data']['logs'] as $key => $value) {
$result['signDay'] .= !empty($value['createTime']) ? date('d', $value['createTime']) . ',' : '';
$result['todayIntimacy'] = $value['addNum'];
}
$result['intimacyNum'] = isset($data['data']['addNum']) ? $data['data']['addNum'] : '0';
foreach ($data['data']['rankList'] as $key => $value) {
//排名数据按数组顺序排列
$result['fanCharts'][$key]['num'] = intval($key) + 1;
$result['fanCharts'][$key]['img'] = Helpers::getImageUrl($value['avatar'], 640, 240);
$result['fanCharts'][$key]['img'] = Helpers::getOriginalImg($value['avatar']);
$result['fanCharts'][$key]['name'] = $value['username'];
$result['fanCharts'][$key]['intimacyNum'] = $value['num'];
}
}
if (!empty($result)) {
... ... @@ -255,7 +295,11 @@ class StarClassModel
return $result;
}
//single_name_image星专题 一个图片一个连接,一个title
/**
* single_name_image星专题 一个图片一个连接,一个title
* @param $data
* @return array
*/
public static function single_name_image($data)
{
$result = array();
... ... @@ -269,7 +313,11 @@ class StarClassModel
}
//星潮教室首页banner
/**
* 星潮教室首页焦点图
* @param $data
* @return array
*/
public static function focus($data)
{
$result = array();
... ... @@ -286,7 +334,11 @@ class StarClassModel
}
//一个图片一个链接资源位
/**
* 一个图片一个链接资源位
* @param $data
* @return array
*/
public static function title_image($data)
{
$result = array();
... ... @@ -301,7 +353,11 @@ class StarClassModel
return $result;
}
//一个视频资源位
/**
* 一个视频资源位
* @param $data
* @return array
*/
public static function single_image($data)
{
$result = array();
... ... @@ -314,7 +370,12 @@ class StarClassModel
return $result;
}
//星搭配资源位
/**
* 星搭配资源位
* @param $data
* @return array
*/
public static function match_image($data)
{
$result = array();
... ...
... ... @@ -7,10 +7,11 @@ use Plugin\Helpers;
/**
* 星潮教室
* Class StarClassController
*/
class StarClassController extends AbstractAction
{
//定义是否APP变量
protected $_isApp = false;
/**
... ... @@ -18,11 +19,13 @@ class StarClassController extends AbstractAction
*/
public function indexAction()
{
//设置头部公共导航
$this->setNavHeader('星潮教室', true, false);
//获取uid
$uid = $this->getLoggedUid();
//调用模型获得星潮教室首页数据
$data = StarClassModel::getStarClass($uid);
//渲染模板
$this->_view->display('index', array(
'trendClassHome' => $data,
'trendClassHomePage' => true
... ... @@ -31,13 +34,18 @@ class StarClassController extends AbstractAction
}
//星潮教室-星专题
/**
* 星潮教室-星专题
*/
public function specialAction()
{
//设置头部公共导航
$this->setNavHeader('星潮教室', true, false);
//调用模型获得星专题数据
$data = StarClassModel::getspecial();
//渲染模板
$this->_view->display('subject', array(
'trendClassSubject' => $data,
'trendClassHomePage' => true
... ... @@ -45,13 +53,18 @@ class StarClassController extends AbstractAction
}
//星潮教室-星搭配
/**
* 星潮教室-星搭配
*/
public function collocationAction()
{
//设置头部公共导航
$this->setNavHeader('星潮教室', true, false);
//调用模板获得星搭配数据
$data = StarClassModel::getCollocation();
//渲染模板
$this->_view->display('collocation', array(
'trendClassCollocation' => $data,
'trendClassCollocationPage' => true
... ... @@ -59,17 +72,23 @@ class StarClassController extends AbstractAction
}
//星潮教室-星搭配文章请求
/**
* 星潮教室-星搭配文章 ajax请求
*/
public function ajaxCollocationAction()
{
if (!$this->isAjax()) {
return;
}
//获得必要参数
$page = $this->get('page',1);
$this->getLoggedUid();
$uid = $this->getLoggedUid();
$isApp = $this->_isApp;
$data = StarClassModel::ajaxCollocation($page, $isApp, $limit = 20);
//调取模型获得星搭配文章
$data = StarClassModel::ajaxCollocation($page, $uid, $isApp, $limit = 20);
//返回数据到页面,没有数据返回空格
if (isset($data) && !empty($data)) {
$this->_view->display('collocation-list',$data);
}else{
... ... @@ -78,14 +97,19 @@ class StarClassController extends AbstractAction
}
//top100
/**
* 星潮教室-签到-Top100排行榜
*/
public function topAction()
{
//设置头部公共导航(此处返回键调转星潮教室首页)
$url = Helpers::url('/guang/starclass/index');
$this->setNavHeader('星潮粉丝榜', $url, false);
//根据客户端类型,进行未登录跳转
$uid = $this->getLoggedUid();
if (!$uid) {
$refer = $this->server('HTTP_REFERER', SITE_MAIN);
$refer = Helpers::url('/guang/starclass/top');
if (!$this->_isApp) {
$this->go(Helpers::url('/signin.html', array('refer' => $refer)));
} else {
... ... @@ -95,8 +119,10 @@ class StarClassController extends AbstractAction
return;
}
//调取模型获得Top100数据
$data = StarClassModel::getTop($uid);
//渲染模板
$this->_view->display('check-in',array(
'trendClassCheckIn'=>$data,
'trendClassTopPage' => true
... ... @@ -104,16 +130,19 @@ class StarClassController extends AbstractAction
}
//签到
/**
* 星潮教室-签到
*/
public function signAction()
{
if(!$this->isAjax()){
return;
}
$uid = $this->getLoggedUid();
//根据客户端类型,进行未登录跳转
$uid = $this->getLoggedUid();
if (!$uid) {
$refer = $this->server('HTTP_REFERER', SITE_MAIN);
$refer = Helpers::url('/guang/starclass/index');
if (!$this->_isApp) {
$this->echoJson(array('code'=>201,'data'=>Helpers::url('/signin.html', array('refer' => $refer))));
} else {
... ... @@ -122,35 +151,46 @@ class StarClassController extends AbstractAction
}
return;
}
//调取模型完成签到,并返回数据
$res = StarClassModel::sign($uid);
//输出签到结果到页面
$this->echoJson($res);
}
//点赞
/**
* 星鲜事-点赞
*/
public function setPraiseAction()
{
if(!$this->isAjax()){
return;
}
//获得客户端ID(点赞不需要登录)
$udid = $this->getUdid();
//获得文章ID
$articleId = $this->post('articleId');
//调取接口点赞
$result = StarClassData::setPraise($articleId, $udid);
$this->echoJson($result);
}
//分享
/**
* 星搭配-文章分享
*/
public function forwardAction()
{
if(!$this->isAjax()){
return;
}
$result = array();
//根据客户端类型,进行未登录跳转
$uid = $this->getLoggedUid();
if (!$uid) {
$refer = $this->server('HTTP_REFERER', SITE_MAIN);
$refer = Helpers::url('/guang/starclass/collocation');
if (!$this->_isApp) {
$this->echoJson(array('code'=>201,'data'=>Helpers::url('/signin.html', array('refer' => $refer))));
} else {
... ... @@ -159,20 +199,26 @@ class StarClassController extends AbstractAction
}
return;
}else{
//调取接口分享文章
$result = StarClassData::forward($uid);
}
$this->echoJson($result);
}
//收藏资讯文章
/**
* 星搭配-收藏资讯文章
*/
public function setFavoriteAction()
{
if (!$this->isAjax()) {
return;
}
//根据客户端类型,进行未登录跳转
$uid = $this->getLoggedUid();
if (!$uid) {
$refer = $this->server('HTTP_REFERER', SITE_MAIN);
$refer = Helpers::url('/guang/starclass/collocation');;
if (!$this->_isApp) {
$this->echoJson(array('code'=>201,'data'=>Helpers::url('/signin.html', array('refer' => $refer))));
} else {
... ... @@ -181,6 +227,8 @@ class StarClassController extends AbstractAction
}
return;
}
//获取文章ID,接口Type(fav调取收藏接口,del调取取消收藏接口)
$articleId = $this->post('articleId');
$type = $this->post('type');
... ... @@ -188,7 +236,9 @@ class StarClassController extends AbstractAction
$this->echoJson(array('code'=>400,'message'=>'参数错误!'));
}
$result = array();
//调取接口进行收藏
$result = StarClassData::setFavorite($articleId, $uid, $type);
if (!empty($result)) {
$this->echoJson($result);
}
... ...