/** * @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]); }
/** * 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]); }
/** * 产品更新 [发布/修改/预览] * @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; } }