public function run() { $id = intval($this->getDataItem('id', 0)); if (0 < $id) { $this->activity = Activity::query()->columns(['activity_id id', 'city_id city', 'activity_type type', 'activity_title as title', 'activity_intro as intro', '0 beauty_parlors'])->where('activity_id=:id:')->bind(['id' => $id])->execute()->getFirst(); if ($this->activity) { $parlor = ActivityBeautyParlor::query()->columns(['bp_id as id', 'bp_name as name', 'bp_cover as cover', 'bp_address as address', '0 as tags', 'bp_medal as medal'])->leftJoin('Apps\\Common\\Models\\BeautyParlor', 'Apps\\Common\\Models\\ActivityBeautyParlor.beauty_parlor_id=bp.bp_id', 'bp')->where('bp.bp_state > 0 and activity_id = :id:')->bind(['id' => $id])->execute()->toArray(); $this->activity->beauty_parlors = $parlor; } } $this->activity = $this->activity ? $this->activity : null; if ($this->activity) { //$this->activity->cover = PicUrl::ActivityCover($this->activity->cover, $this->getDi()); for ($i = 0; $i < count($this->activity->beauty_parlors); $i++) { $this->activity->beauty_parlors[$i]['cover'] = PicUrl::BeautyParlorCover($this->activity->beauty_parlors[$i]['cover'], $this->getDi()); $medal = $this->activity->beauty_parlors[$i]['medal']; unset($this->activity->beauty_parlors[$i]['medal']); $this->activity->beauty_parlors[$i]['medal_refund'] = \Apps\Common\Libs\BeautyParlor::getMedalRefund($medal); $this->activity->beauty_parlors[$i]['medal_verify'] = \Apps\Common\Libs\BeautyParlor::getMedalVerify($medal); $this->activity->beauty_parlors[$i]['tags'] = \Apps\Common\Libs\BeautyParlor::getTags($this->activity->beauty_parlors[$i]['id']); } $this->activity->intro = \Apps\Common\Libs\BeautyParlor::formatServiceIntro($this->activity->intro, $this->getDi(), true); } $this->setResult($this->activity); }
public function run() { $city_code = $this->getDataItem('city_code', 0); $page = intval($this->getDataItem('page', 1)); $limit = $this->getConfig()->limit; $offset = ($page - 1) * $limit; $cityId = $this->getCityId($city_code); if ($cityId <= 0) { //return $this->errorLog(ResultStatus::CITY_NOT_OPEN, '城市未开通'); $cityId = 2; } $this->activity = Activity::query()->columns(['activity_id id', 'activity_type type', 'activity_title as title', 'activity_cover as cover', 'activity_state as state', 'activity_end_time - NOW() AS ts'])->where('activity_state > 0 and city_id=:city_id:')->bind(['city_id' => $cityId])->limit($limit, $offset)->execute()->toArray(); $this->activity = $this->activity ? $this->activity : []; for ($i = 0; $i < count($this->activity); $i++) { $this->activity[$i]['cover'] = PicUrl::ActivityCover($this->activity[$i]['cover'], $this->getDi()); $this->activity[$i]['state'] = $this->activity[$i]['ts'] > 0 ? $this->activity[$i]['state'] : 2; unset($this->activity[$i]['ts']); } $data = ['recommend' => $this->getRecommend($cityId), 'activity' => $this->activity]; $this->setResult($data); }
public function run() { $city_code = $this->getDataItem('city_code', 0); $page = intval($this->getDataItem('page', 1)); $state = $this->getDataItem('state', 1); $limit = $this->getConfig()->limit; $offset = ($page - 1) * $limit; $city = $this->getCity($city_code); if (!$city || $city['city_id'] <= 0) { $where = "activity_state = 1 and city_id = 0"; // return $this->errorLog(ResultStatus::CITY_NOT_OPEN, '城市未开通'); // $cityId = 2; } else { // $cityId = $city['city_id']; $where = "activity_state = 1 and city_id in({$city['city_id']}, 0)"; } $date = date('Y-m-d H:i:s'); if ($state == 1) { // 进行中 $where .= " and activity_start_time <= '{$date}' and activity_end_time >= '{$date}'"; } else { // 即将开始 $where .= " and activity_start_time >= '{$date}'"; } $this->activity = Activity::query()->columns(['city_id', 'activity_id id', 'activity_type type', 'activity_title as title', 'activity_cover as cover', 'activity_start_time', 'activity_end_time', 'activity_intro', 'out_link', 'views', 'comments'])->where($where)->orderBy("IF(city_id=0, activity_update_time, 1) DESC,activity_update_time DESC")->limit($limit, $offset)->execute()->toArray(); foreach ($this->activity as $k => $val) { if ($val['city_id'] == 0) { $this->activity[$k]['city_name'] = '全国'; } else { $this->activity[$k]['city_name'] = $city['city_name'] ?: ''; } $this->activity[$k]['cover'] = PicUrl::ActivityCover($this->activity[$k]['cover'], $this->getDi()); unset($this->activity[$k]['city_id']); } $this->setResult($this->activity); }
public function run() { $id = intval($this->getDataItem('id', 0)); if (0 < $id) { $this->indexInfo = Activity::query()->columns(['activity_intro', 'activity_cover'])->where('activity_state = 1 and activity_type = 1 and activity_id = ' . $id)->execute()->getFirst(); } else { return $this->errorLog(ResultStatus::POST_BODY_PARAM_ERROR, '参数异常'); } if ($this->indexInfo) { if ($this->indexInfo->activity_intro == null) { $this->indexInfo->activity_intro = null; } if ($this->indexInfo->activity_cover == null) { $this->indexInfo->activity_cover = null; } else { //处理图片 $this->indexInfo->activity_cover = "http://img.meelier.com/" . $this->indexInfo->activity_cover; $this->indexInfo->activity_intro = str_replace('src="/ueditor/php/upload/image/', 'src="http://meelier.com/ueditor/php/upload/image/', $this->indexInfo->activity_intro); } } else { $this->indexInfo = null; } $this->setResult($this->indexInfo); }
public function run() { $id = intval($this->getDataItem('id', 0)); $user_id = intval($this->getDataItem('user_id', 0)); if ($id == 0) { return $this->errorLog(ResultStatus::URL_PARAM_CANNOT_EMPTY, 'URL参数不全'); } $Activity = new Activity(); $ActivityViewsUser = new ActivityViewsUser(); $data = $Activity->query()->columns(['activity_id id', 'activity_type type', 'activity_title as title', 'activity_cover as cover', 'activity_start_time', 'activity_end_time', 'activity_intro', 'views', 'comments'])->where("activity_id = {$id}")->execute()->toArray(); $data = $data ? $data[0] : []; $data['user_views_list'] = $ActivityViewsUser->getViewsUserList($id, 0, 7); $data['cover'] = $data['cover'] ? PicUrl::ActivityCover($data['cover'], $this->getDi()) : ''; $this->setResult($data); $count = 1; $Activity->getReadConnection()->query("UPDATE activity SET views = views + {$count} WHERE activity_id = {$id}"); if ($user_id) { $ActivityViewsUser->addData($id, $user_id); } /*if(0 < $id) { $this->activity = Activity::query() ->columns(['activity_id id', 'city_id city', 'activity_type type', 'activity_title as title', 'activity_intro as intro', '0 beauty_parlors', ]) ->where('activity_id=:id:') ->bind(['id'=>$id]) ->execute()->getFirst(); if($this->activity){ $parlor = ActivityBeautyParlor::query() ->columns([ 'bp_id as id', 'bp_name as name', 'bp_cover as cover', 'bp_address as address', '0 as tags', 'bp_medal as medal']) ->leftJoin('Apps\Common\Models\BeautyParlor', 'Apps\Common\Models\ActivityBeautyParlor.beauty_parlor_id=bp.bp_id','bp') ->where('bp.bp_state > 0 and activity_id = :id:') ->bind(['id' => $id]) ->execute()->toArray(); $this->activity->beauty_parlors = $parlor; } } $this->activity = $this->activity ? $this->activity : null; if($this->activity) { //$this->activity->cover = PicUrl::ActivityCover($this->activity->cover, $this->getDi()); for($i = 0; $i < count($this->activity->beauty_parlors); $i++) { $this->activity->beauty_parlors[$i]['cover'] = PicUrl::BeautyParlorCover($this->activity->beauty_parlors[$i]['cover'], $this->getDi()); $medal = $this->activity->beauty_parlors[$i]['medal']; unset($this->activity->beauty_parlors[$i]['medal']); $this->activity->beauty_parlors[$i]['medal_refund'] = \Apps\Common\Libs\BeautyParlor::getMedalRefund($medal); $this->activity->beauty_parlors[$i]['medal_verify'] = \Apps\Common\Libs\BeautyParlor::getMedalVerify($medal); $this->activity->beauty_parlors[$i]['tags'] = \Apps\Common\Libs\BeautyParlor::getTags($this->activity->beauty_parlors[$i]['id']); } $this->activity->intro = \Apps\Common\Libs\BeautyParlor::formatServiceIntro($this->activity->intro, $this->getDi(), true); } $this->setResult($this->activity);*/ }
/** * 活动预览 * @date: 2016年1月12日 * @author: chenxiaolin */ public function activityPreviewAction() { $id = $this->request->getQuery('id'); if (empty($id)) { echo '活动不存在!'; $this->view->disable(); return; } //活动内容 $date = date('Y-m-d H:i:s'); $activity = Activity::query()->columns(['Apps\\Common\\Models\\Activity.activity_id', 'activity_title', 'activity_cover', 'activity_intro', 'out_link', 'activity_addtime', 'views', 'comments'])->where("activity_id = {$id} and activity_state in (0,1)")->execute()->getFirst(); if (!$activity) { echo '活动不存在!'; $this->view->disable(); return; } else { $activity = $activity->toArray(); } $activity['activity_cover'] = PicUrl::ActivityCover($activity['activity_cover'], $this->getDI()); //活动回复 $comment = ActivityComment::query()->columns(['comment_content', 'user.user_nickname', 'user.user_cover', 'user.user_gender'])->leftJoin('Apps\\Common\\Models\\UserBase', 'Apps\\Common\\Models\\ActivityComment.comment_user_id = user.user_id', 'user')->where("Apps\\Common\\Models\\ActivityComment.activity_id = {$id} and Apps\\Common\\Models\\ActivityComment.state = 1")->order('addtime desc')->execute()->toArray(); foreach ($comment as $k => $v) { $comment[$k]['user_cover'] = PicUrl::UserCover($comment[$k]['user_cover'], $this->getDI()); } $lastTime = ActivityComment::maximum(array("activity_id = {$id} and state = 1", 'column' => 'addtime')); //美人儿已阅处显示的头像 $covers = ActivityComment::query()->columns(['distinct comment_user_id', 'user.user_cover'])->leftJoin('Apps\\Common\\Models\\UserBase', 'Apps\\Common\\Models\\ActivityComment.comment_user_id = user.user_id', 'user')->where("Apps\\Common\\Models\\ActivityComment.activity_id = {$id} and Apps\\Common\\Models\\ActivityComment.state = 1")->order('addtime desc')->limit(7)->execute()->toArray(); foreach ($covers as $k => $v) { $covers[$k]['user_cover'] = PicUrl::UserCover($covers[$k]['user_cover'], $this->getDI()); } $this->view->setVar('activity', $activity); $this->view->setVar('comment', $comment); $this->view->setVar('lastTime', $lastTime); $this->view->setVar('covers', $covers); $this->tag->setTitle($activity->activity_title); }
/** * 活动列表 * @date: 2016年1月4日 * @author: chenxiaolin */ public function listAction() { $this->setLeftNav('list'); $req = $this->request; $page = intval($req->getQuery('page', null, 1)); $page = $page > 0 ? $page : 1; $limit = $this->pageNavLimit; $offset = $limit * ($page - 1); $filterCity = intval($req->getQuery('filterCity', null, -10000)); $activity_state = intval($req->getQuery('activity_state', null, -10000)); $activity_title = $req->getQuery('activity_title'); $activity_time = $req->getQuery('activity_time'); $timeSlotarr = explode("至", $activity_time); $columns = ['activity_id', 'city_name', 'create_user', 'activity_title', 'activity_state', 'activity_start_time', 'activity_end_time', 'activity_end_time - NOW() AS ts', 'activity_start_time - NOW() AS stime', 'posion_banner', 'out_link']; $where = []; $bind = []; $medal = []; //获取当前时间 $date = date("Y-m-d H:i:s"); //通过状态筛选数据 if ($activity_state > -10000) { /* $where [] = 'activity_state = :state:'; $bind ['state'] = $activity_state; */ //已结束数据:状态为2,或者结束时间小于当前时间 if ($activity_state == 2) { $where[] = "(activity_state = 2 or activity_end_time < '{$date}')"; } else { //正常数据:状态为1,且结束时间大于当前时间 if ($activity_state == 1) { $where[] = " (activity_state = {$activity_state} and activity_end_time >= '{$date}') "; } //待发布数据:状态为0,且结束时间大于当前时间 if ($activity_state == 0) { //$where [] = "activity_end_time >= '$date'"; $where[] = " activity_state = {$activity_state} "; } } } //通过城市筛选数据 if ($filterCity > -10000) { $where[] = 'Apps\\Common\\Models\\Activity.city_id = :city:'; $bind['city'] = $filterCity; } //通过活动标题筛选数据 if ($activity_title != '') { $where[] = "activity_title like '%" . $activity_title . "%'"; $this->view->setVar("activity_title", $activity_title); } //通过活动周期筛选数据 if ($activity_time != '') { $where[] = "activity_start_time > '" . $timeSlotarr[0] . "'"; $where[] = "activity_end_time < '" . $timeSlotarr[1] . "'"; } //$where [] = 'activity_state > -1'; $whereStr = implode(' AND ', $where); $query = Activity::query()->columns($columns)->leftJoin('Apps\\Common\\Models\\SysOpenCity', 'soc.city_id=Apps\\Common\\Models\\Activity.city_id', 'soc'); if (!empty($whereStr)) { $query = $query->where($whereStr); } if (count($bind) > 0) { $query = $query->bind($bind); } $data = $query->orderBy('activity_update_time DESC,activity_id DESC')->limit($limit, $offset)->execute()->toArray(); foreach ($data as $k => $v) { if (empty($data[$k]['activity_end_time'])) { $data[$k]['ts'] = 1; } } // 总数 $total = Activity::count(['conditions' => $whereStr, 'bind' => $bind]); $this->view->setVar('filterCity', $filterCity); $this->view->setVar('activity_state', $activity_state); $this->view->setVar("activity_time", $activity_time); $this->view->setVar('total', $total); $this->view->setVar('page', $page); $this->view->setVar('limit', $limit); $this->view->setVar('data', $data); $this->view->setVar('openCity', SysOpenCity::find('city_state = 1')); $this->view->setVar('stateList', ActivityState::valuesExplain()); }
public function run() { /* $page = intval($this->getDataItem('page',1)); $keyword = $this->getDataItem('keyword'); $city_code = $this->getDataItem('city_code',023); */ $param = $_POST['post_body']; $param = str_replace("}", '', $param); $param = str_replace("{", '', $param); $paramarr = explode(",", $param); foreach ($paramarr as $k => $v) { $tmparr = explode(":", $paramarr[$k]); $tmp = $tmparr[0]; $newarrs[$tmp] = $tmparr[1]; } //var_dump($newarrs); //exit; foreach ($newarrs as $k => $v) { if ($k == '"page"') { $page = str_replace('"', '', $v); } elseif ($k == '"city_code"') { $city_code = str_replace('"', '', $v); } elseif ('"keyword"') { $keyword = str_replace('"', '', $v); } } $cityId = $this->getCityId($city_code); if ($cityId == 0) { return $this->errorLog(ResultStatus::POST_BODY_PARAM_ERROR, '城市代码错误或城市未开通!'); } if (empty($keyword) || $keyword == '""') { $offset = ($page - 1) * 10; $list = ActivityModel::query()->where("city_id = {$cityId} and activity_state = 1")->limit(10, $offset)->execute()->toArray(); foreach ($list as $arr) { foreach ($arr as $k => $v) { $k = str_replace("activity_", "", $k); $arrs[$k] = $v; } $newarr[] = $arrs; } $list = $newarr; foreach ($list as $k => $v) { $list[$k]['cover'] = "http://img.meelier.com/" . $list[$k]['cover']; } $this->setResult($list); } else { /* $limit = $this->getConfig()->limit; $offset = ($page-1) * $limit; $data = $this->searchActivity($cityId, $keyword, $limit, $offset); $this->setResult($data); */ $offset = ($page - 1) * 10; $list = ActivityModel::query()->where("city_id = '" . $cityId . "' and activity_title like '%" . $keyword . "%' and activity_state = 1")->limit(10, $offset)->execute()->toArray(); foreach ($list as $arr) { foreach ($arr as $k => $v) { $k = str_replace("activity_", "", $k); $arrs[$k] = $v; } $newarr[] = $arrs; } $list = $newarr; foreach ($list as $k => $v) { $list[$k]['cover'] = "http://img.meelier.com/" . $list[$k]['cover']; } $this->setResult($list); } }
public function addAction() { $this->setLeftNav('add'); $req = $this->request; $response = new ResponseResult(); $response->callback = $req->getPost('callback', null, 'parent.setFormResult'); $response->callbackJavascriptTag = true; if (!$req->isPost()) { // 根据城市ID和广告位查询活动信息 $page = intval($req->getQuery('page', null, 1)); $page = $page > 0 ? $page : 1; $limit = $this->pageNavLimit; $offset = $limit * ($page - 1); $filterCity = intval($req->getQuery('filterCity', null, 0)); $posion_banner = intval($req->getQuery('posion_banner', null, 0)); if ($posion_banner > 0 && $filterCity > 0) { $data = Activity::query()->where("posion_banner = {$posion_banner} AND city_id = {$filterCity} AND activity_state = 1")->execute(); } $this->view->setVar('filterCity', $filterCity); $this->view->setVar('posion_banner', $posion_banner); $this->view->setVar('data', $data); $this->view->setVar('openCity', SysOpenCity::find()); $this->view->setVar('positionList', Position::valuesExplain()); return; } else { $type = intval($req->getPost('activity_type', null, 0)); $title = $req->getPost('activity_title', null, ''); $cityId = intval($req->getPost('city_id', null, 0)); $posion = intval($req->getPost('posion', null, 0)); $time = $req->getPost('activity_time', null, ''); $intro = $req->getPost('activity_intro', null, ''); $link = $req->getPost('out_link', null, ''); $data2 = Activity::findFirst("posion_banner = {$posion} AND city_id = {$cityId} AND activity_state = 1"); $timeArr = explode(' 至 ', $time); // 判断空数据 if ($type <= 0 || $cityId <= 0 || empty($title) || empty($time) || empty($posion)) { $response->sendError(ResponseResultStatus::PARAM_CANNOT_EMPTY, '参数异常!'); return $response; } if ($data2) { //有数据,修改 //保存封面 $uploadFile = new UploadPic(); $uploadFile->request = $req; $cover = $uploadFile->activityCover(); if ($cover == false || !is_array($cover) || count($cover) == 0 || $cover[0] == false) { if ($_FILES['activity_cover']['error'] == 1) { $response->sendError(ResponseResultStatus::UPLOAD_FILE_ERROR, '文件大小超过了2M!'); return $response; } } $cover = $cover[0]; if (empty($cover)) { $cover = $data2->activity_cover; } //判断是图文,还是外链地址 if ($type == 1 && empty($intro)) { $response->sendError(ResponseResultStatus::PARAM_CANNOT_EMPTY, '请填写图文介绍!'); return $response; } if ($type == 2 && empty($link)) { $response->sendError(ResponseResultStatus::PARAM_CANNOT_EMPTY, '请填写外链地址!'); return $response; } $data2->update(['activity_title' => $title, 'activity_type' => $type, 'activity_intro' => $intro, 'out_link' => $link, 'activity_start_time' => $timeArr[0], 'activity_end_time' => $timeArr[1], 'activity_cover' => $cover]); $response->sendResult($data2->activity_id); return $response; } else { //没数据,添加 //保存封面 $uploadFile = new UploadPic(); $uploadFile->request = $req; $cover = $uploadFile->activityCover(); if ($cover == false || !is_array($cover) || count($cover) == 0 || $cover[0] == false) { if ($_FILES['activity_cover']['error'] == 1) { $response->sendError(ResponseResultStatus::UPLOAD_FILE_ERROR, '文件大小超过了2M!'); return $response; } else { $response->sendError(ResponseResultStatus::PARAM_CANNOT_EMPTY, '活动封面必须上传!'); return $response; } } $cover = $cover[0]; //判断是图文,还是外链地址 if ($type == 1 && empty($intro)) { $response->sendError(ResponseResultStatus::PARAM_CANNOT_EMPTY, '请填写图文介绍!'); return $response; } if ($type == 2 && empty($link)) { $response->sendError(ResponseResultStatus::PARAM_CANNOT_EMPTY, '请填写外链地址!'); return $response; } $activity = new Activity(); $activity->city_id = $cityId; $activity->activity_type = $type; $activity->activity_title = $title; $activity->activity_cover = $cover; $activity->activity_intro = $intro; $activity->activity_start_time = $timeArr[0]; $activity->activity_end_time = $timeArr[1]; $activity->activity_addtime = date("Y-m-d H:i:s"); $activity->posion_banner = $posion; $activity->out_link = $link; $activity->activity_state = 1; $id = $activity->save(); if ($id === false) { $this->databaseErrorLog($activity); $response->sendError(ResponseResultStatus::DATABASE_ERROR, '保存数据异常!'); } else { //SearchASync::Instance()->noticeSync($activity->activity_id, SearchDataType::Activity); $response->sendResult($id); } return $response; } } }
/** * 活动 */ public function activityAction() { $id = $this->request->getQuery('id'); if (empty($id)) { echo '活动不存在!'; $this->view->disable(); return; } $activity = Activity::query()->columns(['activity_id id', 'city_id city', 'activity_type type', 'activity_title as title', 'activity_intro as intro', '0 beauty_parlors'])->where('activity_id=:id:')->bind(['id' => $id])->execute()->getFirst(); if (!$activity) { echo '活动不存在!'; $this->view->disable(); return; } $this->view->setVar('activity', $activity); $this->tag->setTitle($activity->title); $parlors = ActivityBeautyParlor::query()->columns(['bp_id as id', 'bp_name as name', 'bp_cover as cover', 'bp_address as address', '0 as tags', 'bp_medal as medal'])->leftJoin('Apps\\Common\\Models\\BeautyParlor', 'Apps\\Common\\Models\\ActivityBeautyParlor.beauty_parlor_id=bp.bp_id', 'bp')->where('bp.bp_state > 0 and activity_id = :id:')->bind(['id' => $id])->execute()->toArray(); for ($i = 0; $i < count($parlors); $i++) { $parlors[$i]['cover'] = PicUrl::BeautyParlorCover($parlors[$i]['cover'], $this->getDi()); $medal = $parlors[$i]['medal']; unset($parlors[$i]['medal']); $parlors[$i]['medal_refund'] = \Apps\Common\Libs\BeautyParlor::getMedalRefund($medal); $parlors[$i]['medal_verify'] = \Apps\Common\Libs\BeautyParlor::getMedalVerify($medal); $parlors[$i]['tags'] = \Apps\Common\Libs\BeautyParlor::getTags($parlors[$i]['id']); } $this->view->setVar('parlors', $parlors); }