示例#1
0
 /**
  * @author shimeixia <*****@*****.**>
  * @param $pid 产品id
  * @param $aid 活动id
  *
  * @return
  */
 public function actionApplybaiyingDiy()
 {
     $user = PublicLibrary::is_login() ? PublicLibrary::is_login() : $this->redirect(['user/login']);
     $parr = Yii::$app->request->get();
     $pid = isset($parr['pid']) ? intval($parr['pid']) : '';
     $aid = intval(ActivityBase::APPLY_BAIYING);
     if (empty($pid) || empty($aid)) {
         return $this->redirect(['home-page/lists', 'uid' => $user['uid']]);
         //跳转到完善信息
     }
     //判断是否存在该活动
     $mActiBase = new ActivityBase();
     $activity = $mActiBase->pk($aid);
     if (!$activity) {
         return $this->redirect(['home-page/lists', 'uid' => $user['uid']]);
         //跳转到用户主页
     }
     //查询是不是该用户发布的产品
     $model = new IProductBase();
     $res = $model->isMyProduct($user['uid'], $pid);
     if (!$res) {
         return $this->redirect(['home-page/lists', 'uid' => $user['uid']]);
         //跳转到用户主页
     }
     //$session->set('acti_config', $activity['config']);
     //查询该商品有没有参加过该活动
     $mactivitypdt = new ActivityProduct();
     $one = $mactivitypdt->isinActivity($user['uid'], $aid, $pid);
     //$one = $mactivitypdt ->applyWay($user['uid'],$aid,$pid,0);
     // echo '<pre>';
     // var_dump($one);die;
     //活动属性map
     $mArag = new ActivityRelAttrGroup();
     $attrMap = $mArag->getAttrMapping($aid);
     if (!$one) {
         //入库
         $apdata = ['product_id' => $pid, 'acti_id' => $aid, 'user_id' => $user['uid'], 'status' => ActivityProduct::STATUS_SAVE, 'apply_way' => 0];
         $rel_id = $mactivitypdt->store($apdata);
         //插入到活动产品统计表
         $apstart = new ActivityProductStat();
         $data = ['rel_id' => $rel_id, 'acti_id' => $aid, 'product_id' => $pid];
         $apstart->store($data);
     } else {
         // //判断是否是官方申请
         // $model = $mactivitypdt->pk($one['id']);
         // $model->apply_way == 1 ? '' : $this->redirect(['home-page/lists', 'uid' => $user['uid']]);
         $rel_id = $one['id'];
         if ($one['apply_way'] == 1) {
             $apdata = ['id' => $rel_id, 'apply_way' => 0];
             $mactivitypdt->store($apdata);
         }
         if ($one['status'] == ActivityProduct::STATUS_VERIFYING) {
             //审核中
             return $this->redirect(['home-page/lists', 'uid' => $_SESSION['user']['uid']]);
             //跳转到完善信息
         } else {
             $ActivityProductAttrVal = new ActivityProductAttrVal();
             $attrval = $ActivityProductAttrVal->getRealAttrVals($rel_id, $aid);
             $attrval = array_merge($attrMap, $attrval);
             // echo '<pre>';
             // print_r($attrval);
             if (isset($attrval['album']['val']) && is_array($attrval['album']['val'])) {
                 foreach ($attrval['album']['val'] as $key => $value) {
                     if ($value['type'] == ProductImage::TYPE_CATIONFIRST) {
                         $fourpimag[] = $value;
                     }
                     if ($value['type'] == ProductImage::TYPE_CATIONINDE) {
                         $fivepimag[] = $value;
                     }
                 }
             }
         }
     }
     //查询左侧菜单
     $ActivityAttrGroup = new ActivityAttrGroup();
     $menu = $ActivityAttrGroup->getCompleteStatus($rel_id);
     //echo '<pre>';
     //print_r($attrval);
     // exit;
     $this->layout_data = 'uc';
     return $this->render('applybaiyingdiy', ['price' => $res[0]['price'], 'attrs' => isset($attrval) ? $attrval : '', 'pid' => $pid, 'rel_id' => $rel_id, 'menu' => $menu, 'attrMap' => $attrMap]);
 }
示例#2
0
 /**
  * Action ChooseActivity
  *
  */
 public function actionChooseActivity()
 {
     $user = yii::$app->util->isLogin();
     if (yii::$app->util->isAjax()) {
         $pid = Yii::$app->request->get('pid') ? Yii::$app->request->get('pid') : '';
         $rel_id = Yii::$app->request->get('rel_id') ? Yii::$app->request->get('rel_id') : '';
         if ($user) {
             if ($pid) {
                 $url = '/support/choose-activity?pid=' . $pid;
             } else {
                 $url = '/support/choose-activity?rel_id=' . $rel_id;
             }
             $data['url'] = $url;
             echo yii::$app->util->formatResEncode('0', '该用户已经登录', $data);
             exit;
         } else {
             echo yii::$app->util->formatResEncode('1', '该用户没有登录');
             exit;
         }
     }
     if (Yii::$app->request->get('pid') || Yii::$app->request->get('rel_id')) {
         $rel_id = Yii::$app->request->get('rel_id');
         if ($rel_id) {
             $mActivityProduct = new ActivityProduct();
             $productActivity = $mActivityProduct->getByIdAndStatus($rel_id);
             $pid = intval($productActivity['product_id']);
         } else {
             $pid = Yii::$app->request->get('pid');
         }
         $mProductBase = new IProductBase();
         $myproduct = $mProductBase->isMyProduct($user['uid'], $pid);
         // $myproduct = '';
         if (!$myproduct) {
             $mProductBase = new IProductBase();
             $mActivityBase = new ActivityBase();
             $mActivityProductAttrVal = new ActivityProductAttrVal();
             $result = $mProductBase->getAllById(intval($pid));
             //查询活动
             $activity = $mActivityBase->getByFeature();
             foreach ($activity as $key => $val) {
                 $key = $val['id'];
                 $activity[$key] = $val;
             }
             //var_dump($result['aproduct']);die;
             //产品对应活动和价格
             if (!empty($result['aproduct'])) {
                 foreach ($result['aproduct'] as $key => $value) {
                     $attr[] = $mActivityProductAttrVal->getRealAttrVals($value['id'], $value['acti_id']);
                     // echo "<pre>";
                     // var_dump($attr[$key]['discount_price']['val']['price']);die;
                     $result['aproduct'][$key]['attr'] = isset($attr[$key]['discount_price']['val']) ? $attr[$key]['discount_price']['val'] : 0;
                     $result['aproduct'][$key]['num'] = isset($attr[$key]['supply_num']['val']) ? $attr[$key]['supply_num']['val'] : 0;
                     $price[$value['id']] = isset($attr[$key]['discount_price']['val']['price']) ? $attr[$key]['discount_price']['val']['price'] : 0;
                     // $price[] = array($value['id'] => $attr[$key]['discount_price']['val']['price']);
                     // // $price[$value['id']] = $attr[$key]['discount_price']['val']['price'];
                     //var_dump($price);die;
                     if (!empty($activity[$value['acti_id']])) {
                         $result['aproduct'][$key]['activity'] = $activity[$value['acti_id']];
                     }
                 }
             } else {
                 return $this->redirect(['home-page/lists', 'uid' => $user['uid']]);
                 //跳转到完善信息
             }
             $productData = array('pid' => $pid, 'name' => $result['name'], 'summary' => $result['extra']['summary'], 'album' => $result['album'], 'price' => $result['price']);
             $session = Yii::$app->session;
             $session->isActive ? '' : $session->open();
             $session->set('product', $productData);
             if (isset($price)) {
                 $session->set('activityprice', $price);
             }
             //$session->set('activityprice',$price);
             // echo "<pre>";
             // //var_dump($productActivity['acti_id']);
             // var_dump($result);die;
             $this->layout = '@app/views/layouts/main.php';
             //调用个人中心的布局
             if ($result) {
                 return $this->render('chooseactivity', ['data' => isset($result) ? $result : '', 'acti_id' => isset($productActivity) ? $productActivity['acti_id'] : '']);
             }
         } else {
             return $this->redirect(['home-page/lists', 'uid' => $user['uid']]);
             //跳转到完善信息
         }
     } else {
         return $this->redirect('/product/index');
         //跳转到完善信息
     }
 }
 /**
  * @author shimeixia <*****@*****.**>
  * @param $pid 产品id
  *
  * @return
  */
 public function actionGoodProduct()
 {
     $user = yii::$app->util->isLogin() ? yii::$app->util->isLogin() : $this->redirect(['user/login']);
     $parr = Yii::$app->request->get();
     $pid = isset($parr['pid']) ? intval($parr['pid']) : '';
     $aid = ActivityBase::GOOD_PRODUCT;
     if (empty($pid) || empty($aid)) {
         return $this->redirect(['home-page/lists', 'uid' => $user['uid']]);
         //跳转到完善信息
     }
     //判断是否存在该活动
     $mActiBase = new ActivityBase();
     $activity = $mActiBase->pk($aid);
     if (!$activity) {
         return $this->redirect(['home-page/lists', 'uid' => $user['uid']]);
         //跳转到用户主页
     }
     //查询是不是该用户发布的产品
     $model = new IProductBase();
     $res = $model->isMyProduct($user['uid'], $pid);
     if (!$res) {
         return $this->redirect(['home-page/lists', 'uid' => $user['uid']]);
         //跳转到用户主页
     }
     //查询该商品有没有参加过该活动
     $mactivitypdt = new ActivityProduct();
     $one = $mactivitypdt->isinActivity($user['uid'], $aid, $pid);
     //属性Map
     $mArag = new ActivityRelAttrGroup();
     $attrMap = $mArag->getAttrMapping($aid);
     if (!$one) {
         //入库
         $apdata = ['product_id' => $pid, 'acti_id' => $aid, 'user_id' => $user['uid'], 'status' => ActivityProduct::STATUS_SAVE, 'apply_way' => 1];
         $rel_id = $mactivitypdt->store($apdata);
         //插入到活动产品统计表
         $apstart = new ActivityProductStat();
         $data = ['rel_id' => $rel_id, 'acti_id' => $aid, 'product_id' => $pid];
         $apstart->store($data);
         //赛区数据入库
         $mbaseattr = new BaseAttribute();
         $value = $mbaseattr->save($rel_id, $user['uid'], 15, ActivityBase::GOODPRODUCT_CITY, false, 1);
         $value = $mbaseattr->save($rel_id, $user['uid'], 18, time(), false, 1);
     } else {
         $rel_id = $one['id'];
         if ($one['status'] == ActivityProduct::STATUS_VERIFYING) {
             //审核中
             return $this->redirect(['home-page/lists', 'uid' => $user['uid']]);
             //跳转到完善信息
         }
     }
     //查询左侧菜单
     $ActivityAttrGroup = new ActivityAttrGroup();
     $menu = $ActivityAttrGroup->getCompleteStatus($rel_id);
     // echo "<pre>";
     // var_dump($menu);die;
     $ActivityProductAttrVal = new ActivityProductAttrVal();
     $attrval = $ActivityProductAttrVal->getRealAttrVals($rel_id, $aid);
     $attrval = array_merge($attrMap, $attrval);
     if (isset($attrval['pokedex']['val']) && is_array($attrval['pokedex']['val'])) {
         foreach ($attrval['pokedex']['val'] as $key => $value) {
             if ($value['type'] == ProductImage::TYPE_GOODPRODUCT) {
                 $image[] = $value;
             }
         }
     }
     $this->layout_data = 'uc';
     return $this->render('goodproduct', ['pid' => $pid, 'rel_id' => $rel_id, 'menu' => $menu, 'attrs' => isset($attrval) ? $attrval : "", 'attrMap' => $attrMap, 'image' => isset($image) ? $image : " ", 'goodproduct_city' => ActivityBase::GOODPRODUCT_CITY]);
 }
示例#4
0
 /**
  * 产品更新 [发布/修改/预览]
  * @param  [int] $id [产品id]
  * @return  [array] $product [产品相关信息]
  * @return  [int] $id [产品id]
  * @return  [string] $url [地址]
  * @return  [string] $formhash [哈希值验证]
  */
 public function actionRenew()
 {
     $form = Yii::$app->request->post('extra');
     // print_r($form);exit;
     //获取hash值
     $formhash = Yii::$app->request->post('formhash', false);
     $user = PublicLibrary::is_login();
     //判断是否登陆
     if (!$user) {
         $this->redirect(['user/login', 'act' => base64_encode("home-page/lists")]);
     }
     //判断产品是否是该用户的
     $mIProductBase = new IProductBase();
     $res = $mIProductBase->isMyProduct($user['uid'], intval($form['id']));
     if (empty($res)) {
         return $this->redirect(['index']);
         exit;
     }
     //formhash验证
     if (!PublicLibrary::verifyFormhash($formhash)) {
         echo '<script>alert("非法提交!");window.history.back(-1);</script>';
         exit;
     }
     if (empty($form['apply_role']) || empty($form['user_oriented_age'])) {
         echo '<script>alert("代言角色和面向群体都不能为空!");window.history.back(-1);</script>';
         exit;
     }
     if (isset($form)) {
         if (empty($form['summary']) || empty($form['name'])) {
             echo '<script>alert("产品名和简介都不能为空!");window.history.back(-1);</script>';
             exit;
         } else {
             //上传封面图片
             if ($_FILES['album']['name'] != '') {
                 if ($_FILES['album']['size'] > ProductImage::MAX_SIZE || $_FILES['album']['error'] != 0) {
                     echo '<script>alert("封面图片格式不对或大于1M!");window.history.back(-1);</script></script>';
                     exit;
                 }
             }
             //album图片上传
             $album = UploadedFile::getInstanceByName('album');
             //试取图片album
             if ($album !== null) {
                 //判断图片大小是否符合规定
                 if ($album->size > ProductImage::MAX_SIZE || $album->error != 0) {
                     echo '<script>alert("封面图片格式不对或大于1M!");window.history.back(-1);</script>';
                     exit;
                 }
                 //判断封面图片是否存在,或是修改
                 $model = IProductBase::findOne(['id' => $form['id']]);
                 $albumPath = $model->album;
                 if (!$albumPath) {
                     $rootpath = 'uploads/' . date('Y/m/d') . '/';
                     //图片保存路径
                     file_exists($rootpath) or mkdir($rootpath, 0700, true);
                     //生成图片路径
                     $randname = time() . rand(0, 500);
                     //图片公有名
                     $albumPath = $rootpath . $randname;
                     //封面图路径
                 }
                 $thumbPath = $albumPath . ProductImage::THUMB_SIZE_ONE;
                 //缩略图路径
                 //生成缩略图
                 $width = 312;
                 $height = 196;
                 $thumbPath = '@frontend/web/' . $thumbPath . '.jpg';
                 Image::thumbnail($album->tempName, $width, $height)->save(Yii::getAlias($thumbPath), ['quality' => 100]);
                 //原图上传
                 $album->saveAs($albumPath . '.jpg');
                 $model->album = $albumPath;
                 $model->save();
             }
             //上传封面图片结束
             //banner1上传
             $banner1 = UploadedFile::getInstanceByName('bigbanner1');
             //试取图片album
             if ($banner1 !== null) {
                 //判断图片大小是否符合规定
                 if ($banner1->size > 1048576 * 2 || $banner1->error != 0) {
                     echo '<script>alert("通栏第一张图片格式不对或大于2M!");window.history.back(-1);</script>';
                     exit;
                 }
                 $model = ProductImage::findOne(['product_id' => $form['id'], 'pos_id' => 1]);
                 if ($model !== null) {
                     $banner1->saveAs($model->url . '.jpg');
                 } else {
                     $rootpath = 'uploads/' . date('Y/m/d') . '/';
                     //图片保存路径
                     file_exists($rootpath) or mkdir($rootpath, 0700, true);
                     //生成图片路径
                     $randname = time() . rand(0, 500);
                     //图片名
                     $bannerPath = $rootpath . $randname;
                     //封面图路径
                     $banner1->saveAs($bannerPath . '.jpg');
                     //保存图片
                     //插入数据
                     $model = new ProductImage();
                     $model->product_id = $form['id'];
                     $model->url = $bannerPath;
                     $model->create_time = time();
                     $model->pos_id = 1;
                     $model->save();
                 }
             }
             //图片1在i_product_base 中是否存在
             $modelImage = ProductImage::findOne(['product_id' => $form['id'], 'pos_id' => 1]);
             $modelBase = IProductBase::findOne(['id' => $form['id']]);
             if ($modelImage !== null) {
                 $modelBase->banner_image = $modelImage->url;
                 $modelBase->save();
             } else {
                 $modelBase->banner_image = '';
                 $modelBase->save();
             }
             //banner1上传结束
             //banner2上传
             if ($_FILES['bigbanner2']['name'] != '') {
                 if ($_FILES['bigbanner2']['size'] > 1048576 * 2 || $_FILES['bigbanner2']['error'] != 0) {
                     echo '<script>alert("通栏第二张图片格式不对或大于2M!");window.history.back(-1);</script></script>';
                     exit;
                 }
             }
             //图片2上传
             $banner2 = UploadedFile::getInstanceByName('bigbanner2');
             //试取图片album
             if ($banner2 !== null) {
                 //判断图片大小是否符合规定
                 if ($banner2->size > 1048576 * 2 || $banner2->error != 0) {
                     echo '<script>alert("通栏第二张图片格式不对或大于2M!");window.history.back(-1);</script>';
                     exit;
                 }
                 $model = ProductImage::findOne(['product_id' => $form['id'], 'pos_id' => 2]);
                 if ($model !== null) {
                     $banner2->saveAs($model->url . '.jpg');
                     //查找过去的图片名,覆盖旧图
                 } else {
                     $rootpath = 'uploads/' . date('Y/m/d') . '/';
                     //图片保存路径
                     file_exists($rootpath) or mkdir($rootpath, 0700, true);
                     //生成图片路径
                     $randname = time() . rand(0, 500);
                     //图片名
                     $bannerPath = $rootpath . $randname;
                     //封面图路径
                     $banner2->saveAs($bannerPath . '.jpg');
                     //保存图片
                     //插入数据
                     $model = new ProductImage();
                     $model->product_id = intval($form['id']);
                     $model->url = $bannerPath;
                     $model->create_time = time();
                     $model->pos_id = 2;
                     $model->save();
                 }
             }
             //banner2上传结束
             //banner3上传
             if ($_FILES['bigbanner3']['name'] != '') {
                 if ($_FILES['bigbanner3']['size'] > 1048576 * 2 || $_FILES['bigbanner3']['error'] != 0) {
                     echo '<script>alert("通栏第三张图片格式不对或大于2M!");window.history.back(-1);</script></script>';
                     exit;
                 }
             }
             //图片3上传
             $banner3 = UploadedFile::getInstanceByName('bigbanner3');
             //试取图片album
             if ($banner3 !== null) {
                 //判断图片大小是否符合规定
                 if ($banner3->size > 1048576 * 2 || $banner3->error != 0) {
                     echo '<script>alert("通栏第三张图片格式不对或大于2M!");window.history.back(-1);</script>';
                     exit;
                 }
                 $model = ProductImage::findOne(['product_id' => $form['id'], 'pos_id' => 3]);
                 if ($model !== null) {
                     $banner3->saveAs($model->url . '.jpg');
                 } else {
                     $rootpath = 'uploads/' . date('Y/m/d') . '/';
                     //图片保存路径
                     file_exists($rootpath) or mkdir($rootpath, 0700, true);
                     //生成图片路径
                     $randname = time() . rand(0, 500);
                     //图片名
                     $bannerPath = $rootpath . $randname;
                     //封面图路径
                     $banner3->saveAs($bannerPath . '.jpg');
                     //保存图片
                     //插入数据
                     $model = new ProductImage();
                     $model->product_id = intval($form['id']);
                     $model->url = $bannerPath;
                     $model->create_time = time();
                     $model->pos_id = 3;
                     $model->save();
                 }
             }
             //banner3上传结束
             //对i_product_base表的修改
             //年龄段的处理
             $age = isset($form['user_oriented_age']) ? $form['user_oriented_age'] : array();
             if (!$age) {
                 $age_nums = 0;
             } else {
                 $age_nums = array_sum($age);
             }
             $IProductBase = new IProductBase();
             //状态判断
             $act = Yii::$app->request->get();
             //判断产品是的状态
             $res = IProductBase::find()->select('status')->where('id = :id', [':id' => $form['id']])->asArray()->one();
             $session = Yii::$app->session;
             $session->isActive ? '' : $session->open();
             $MemberStat = new MemberStat();
             if (!empty($act['act'])) {
                 if ($act['act'] == 'save') {
                     //点击保存
                     if ($res['status'] == IProductBase::STATUS_VERIFEND) {
                         //去过是发布状态 用户统计表产品减一
                         $MemberStat->decr($session['user']['uid'], 'product_num');
                     }
                     $status = IProductBase::STATUS_VERIFING;
                 } elseif ($act['act'] == 'view') {
                     //点击预览
                     if ($res['status'] != IProductBase::STATUS_VERIFEND) {
                         $status = IProductBase::STATUS_INVALID;
                         //保持预览状态
                     } else {
                         $status = IProductBase::STATUS_VERIFEND;
                         //过去是发布状态,保持原状态
                     }
                 }
             } else {
                 if ($res['status'] != IProductBase::STATUS_VERIFEND) {
                     //去过不是发布状态 用户统计表产品加一
                     $MemberStat->incr($session['user']['uid'], 'product_num');
                 }
                 $status = IProductBase::STATUS_VERIFEND;
             }
             $datab = ['id' => intval($form['id']), 'type' => intval($form['tid']), 'apply_role' => intval($form['apply_role']), 'user_oriented_gender' => intval($form['user_oriented_gender']), 'user_oriented_age' => $age_nums, 'name' => strip_tags($form['name']), 'price' => strip_tags($form['price']), 'province' => strip_tags($form['province']), 'city' => strip_tags($form['city']), 'status' => $status, 'update_time' => time()];
             $base = $IProductBase->store($datab);
             if (!$base) {
                 echo '<script>alert("非法提交!");window.history.back(-1);</script>';
                 exit;
             }
             $detaile = PublicLibrary::msg_safe($form['detail']);
             //对i_product_extra表的插入或修改
             $data = ['product_id' => intval($form['id']), 'summary' => strip_tags($form['summary']), 'video_url' => strip_tags($form['video_url']), 'detail' => $detaile, 'update_time' => time()];
             $IProductExtra = new IProductExtra();
             $extra = $IProductExtra->store($data);
             if (!$extra) {
                 echo '<script>alert("非法提交!");window.history.back(-1);</script>';
                 exit;
             }
             $session = Yii::$app->session;
             $session->isActive ? '' : $session->open();
             if (!empty($act['act']) && $act['act'] == 'view') {
                 return $this->redirect(['product/view', 'id' => $form['id']]);
                 //跳转到产品详细页
             } else {
                 return $this->redirect(['home-page/lists', 'uid' => $_SESSION['user']['uid'], 'pid' => $form['id']]);
                 //跳转到个人中心
             }
         }
     } else {
         echo '<script>alert("非法提交!");window.history.back(-1);</script>';
         exit;
     }
 }