/**
  * 获取产品点击曲线数据
  * @return type
  */
 public function actionGetclick()
 {
     $request = \Yii::$app->request;
     $userId = intval($request->get('userId', 0));
     $productId = intval($request->get('productId', 0));
     $year = intval($request->get('year', 0));
     $usign = $request->_get('usign', '');
     if ($usign != EasyHelpers::encrypty($userId, \Yii::$app->params['key'])) {
         return ['code' => 5, 'msg' => '非法数据'];
     }
     if (!$userId || !$productId || !$year) {
         return ['code' => 2, 'msg' => '非法数据'];
     }
     $product = \master\models\Product::findOne(['productId' => $productId]);
     if ($product && $userId != $product['ownid']) {
         return ['code' => 6, 'msg' => '非法数据'];
     }
     $month = intval($request->get('month', 0));
     $day = intval($request->get('day', 0));
     $data = ProductClick::getClick($productId, $userId, $year, $month, $day);
     $type = 'year';
     if ($month) {
         if ($day) {
             $type = 'day';
         } else {
             $type = 'month';
         }
     }
     if ($data) {
         return ['code' => 0, 'msg' => '操作成功', 'data' => ['data' => $data, 'type' => $type]];
     } else {
         return ['code' => 2, 'msg' => '没有点击记录'];
     }
 }
 /**
  * 获取产品信息
  */
 public function actionIndex()
 {
     //3SCJEJSEZB
     $prdouctId = \Yii::$app->request->get('code', 0);
     if (!intval($prdouctId)) {
         return ['code' => 4, 'msg' => 'undefine parameter', 'data' => []];
     }
     $prdouctId = EasyHelpers::pidDecrypt($prdouctId);
     $product = Product::getProductById($prdouctId);
     if (!$product) {
         return ['code' => 3, 'msg' => 'data is not exist', 'data' => []];
     }
     $mcoin = MiaoCoin::getMiaoCoin($product['ownid']);
     //       if($mcoin<1) return ['code'=>4,'msg'=>'balance is insufficient','data'=>[]];
     //       if($product['status']!='online') return ['code'=>5,'msg'=>'This product had down shelf','data'=>[]];
     $store = Store::getStoreInfo($product['ownid']);
     $res = ['seller' => $store->storeName, 'storePhone' => $store->tel, 'storeMobile' => $store->mobile, 'storeAddress' => $store->address, 'storeLogo' => EasyHelpers::getStoreLogoUrl($store->logo)];
     $exclude = ['sku', 'hiddenBrand', 'ownid', 'from', 'createTime', 'updateTime', 'qrImage', 'originName'];
     foreach ($product as $key => $value) {
         if (!$value || in_array($key, $exclude)) {
             continue;
         }
         if ($key == "size") {
             $tempSize = [];
             $tempSize = explode('*', $value);
             $res['productLength'] = $tempSize[0];
             $res['productWidth'] = $tempSize[1];
             $res['productHeight'] = $tempSize[2];
             continue;
         }
         if ($key == 'productId') {
             $res['productId'] = EasyHelpers::pidEncrypt($value);
             continue;
         }
         if ($key == 'newName') {
             $res['productImageName'] = $value;
             continue;
         }
         if ('status' == $key) {
             $res['hasComplete'] = 'offline' == $value || 'online' == $value ? true : false;
             continue;
         }
         if ('material' == $key) {
             $res['productMaterial'] = $value;
             continue;
         }
         $res[$key] = $value;
     }
     if ($product['type'] == 'virtual') {
         $res['productDescript'] = $product['re_product']['productDescript'];
         $res['productImage'] = \Yii::$app->sysConfig->getConfig()->default['imageDomain'] . 'product/thumb/' . $product['re_product']['newName'];
         $productFlie = Product::getFileName($product['re_product']['productId']);
     } else {
         $res['productImage'] = \Yii::$app->sysConfig->getConfig()->default['imageDomain'] . 'product/thumb/' . $product['newName'];
         $productFlie = Product::getFileName($prdouctId);
     }
     $res['favorite'] = Favorite::getCount($prdouctId);
     $res['hasView'] = $productFlie ? true : false;
     return ['code' => 0, 'msg' => 'success', 'data' => $res];
 }
 /**
  * 改变产品状态
  */
 public function actionSavestatus()
 {
     $request = \Yii::$app->request;
     $productId = intval($request->get('productId', ''));
     $userId = $request->_get('userId', 0);
     $usign = $request->_get('usign', '');
     if ($usign != EasyHelpers::encrypty($userId, \Yii::$app->params['key'])) {
         return ['code' => 5, 'msg' => '非法数据'];
     }
     if (!$productId) {
         return ['code' => 2, 'msg' => '数据非法'];
     }
     $status = $request->_get('status', 'waiting');
     if (!in_array($status, \Yii::$app->params['productStatus'])) {
         $status = 'waiting';
     }
     if ($status == 'online' && !Product::checkChangeable($productId)) {
         //return ['code' => 1, 'msg' => '系统下架商品不可上架'];
     }
     if ($status == 'online' && !MiaoCoin::getMiaoCoin($userId)) {
         return ['code' => 1, 'msg' => '瞄币不足,请先到账户信息页面进行充值'];
     }
     if ($status == 'online') {
         $product = Product::findOne(['productId' => $productId]);
         $ownId = $product ? $product['ownid'] : '';
         if ($userId != $ownId) {
             return ['code' => 6, 'msg' => '数据非法', 'data' => []];
         }
         $checkFN = \master\models\Store::checkFileNumberOnline($userId);
         if (!$checkFN) {
             return ['code' => 2, 'msg' => '模具空间不足'];
         }
     }
     $model = new Product();
     $res = $model->saveStatus($productId, $status);
     if ($res !== false) {
         return ['code' => 0, 'msg' => '操作成功'];
     } else {
         return ['code' => 2, 'msg' => '操作失败,请重试'];
     }
 }
 /**
  * 产品详情
  * @return type
  */
 public function actionDetail()
 {
     $pid = \YIi::$app->request->get('pid', 0);
     $product = [];
     if ($pid) {
         $product = \master\models\Product::getProductById($pid);
         $product['fileName'] = \master\models\Product::getFileName($pid);
         $product['clicks'] = ProductClick::getClickNum($pid);
     }
     if (!$product) {
         return $this->redirect('/product/index');
     }
     $data['product'] = $product;
     $data['changestatusdetailIdentity'] = EasyHelpers::dataEncrypt('changestatusdetail,' . \Yii::$app->user->id);
     $data['setmodelnameIdentity'] = EasyHelpers::dataEncrypt('setmodelname,' . \Yii::$app->user->id);
     $data['token'] = Token::getToken();
     return $this->render('detail', $data);
 }
Exemple #5
0
 /**
  * 保存用户对产品的点击数量;仅对匿名用户有效;
  * @param int $pid  产品ID
  * @param string $userIdentity 用户识别码
  */
 public static function saveCilck($pid, $userIdentity = '')
 {
     if (!intval($pid)) {
         return false;
     }
     $gapTime = \Yii::$app->params['gapTime'];
     $isInsert = false;
     $uid = User::getAnonymousId($userIdentity);
     if ($uid) {
         $sql = "SELECT IF( ( UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(createTime) ) >" . $gapTime . " , 'true', 'false' ) as result FROM product_click WHERE userId=" . $uid . " AND userType='anonymous' ORDER BY createTime DESC LIMIT 1";
         $resData = static::getDb()->createCommand($sql)->queryScalar();
         if ($resData != 'false') {
             $isInsert = true;
         }
     }
     $pownId = Product::getOwnId($pid);
     if ($isInsert && $pownId) {
         static::getDb()->createCommand()->insert(static::tableName(), array('productId' => $pid, 'userId' => $uid, 'userType' => 'anonymous'))->execute();
         MiaoCoin::updateClickM(static::getDb()->getLastInsertID(), $pownId);
         User::updateCacheMcoin(User::getSoreId($pownId), 1, 'output');
         return true;
     }
     return false;
 }
 /**
  * 查看产品点击详情
  * @return type
  */
 public function actionClickdetail()
 {
     $view = \Yii::$app->view;
     $view->params['moduleName'] = '模型点击';
     $pid = \YIi::$app->request->get('pid', 0);
     $product = [];
     if ($pid) {
         $product = Product::getProductById($pid);
         $product['fileName'] = Product::getFileName($pid);
         $product['clicks'] = \master\models\ProductClick::getClickNum($pid);
         $product['lastClick'] = \master\models\ProductClick::getLastClick($pid);
     }
     if (!$product) {
         return $this->redirect('/finance/modenclick');
     }
     $data['product'] = $product;
     $data['token'] = Token::getToken();
     return $this->render('clickdetail', $data);
 }