/** * [关注] * @param [int] $product_id [产品id] * @param [int] $rel_id 活动产品ID 如果存在则是 更新活动产品统计 * @param [int] $type [1,2] * 1 关注 2 取消关注 * * @return [json_encode] [0,1] * 0 执行成功 1001 参数错误 1002 系统繁忙 * 关注接口:http://idaiyan_new.cn/frontend/web/index.php?r=product/user_id=24&product=4291&type=1 * 取消接口:http://idaiyan_new.cn/frontend/web/index.php?r=product/user_id=24&product=4302&type=2 */ public function actionFollow() { //判断登陆 $user = PublicLibrary::is_login(); if ($user && PublicLibrary::is_ajax()) { $uid = $user['uid']; } else { echo PublicLibrary::format_res_encode('1002', 'login or not ajax error !'); exit; } // $uid = 25; $session = Yii::$app->session; $session->isActive ? '' : $session->open(); $form = Yii::$app->request->post(); $id = isset($form['id']) ? intval($form['id']) : ''; $product_id = isset($form['product_id']) ? intval($form['product_id']) : $id; $type = isset($form['type']) ? intval($form['type']) : ''; $rel_id = isset($form['rel_id']) ? intval($form['rel_id']) : ''; //活动产品id //用活动产品id 获取活动ID 产品ID if ($rel_id) { $pactivity_model = new ActivityProduct(); $pactivity = $pactivity_model->pk($rel_id); $activity_id = $pactivity->acti_id ? $pactivity->acti_id : 0; $product_id = $pactivity->product_id ? $pactivity->product_id : 0; } //用户不能关注自己产品 if (!isset($product_id)) { $mActivityProduct = new ActivityProduct(); $result = $mActivityProduct->pk($rel_id); $product_id = $result->product_id; } $productBase = new IProductBase(); if ($productBase->isMyProduct($uid, $product_id)) { echo PublicLibrary::format_res_encode('1004', '自己不能关注自己的产品'); exit; } $pbase = IProductBase::findOne($product_id); $pbaseuid = $pbase['uid']; // $rel_id = 24576; // $type = 2; // //用活动产品id 获取活动ID 产品ID // if ($rel_id) { // $pactivity_model = new ActivityProduct(); // $pactivity = $pactivity_model->pk($rel_id); // $activity_id = $pactivity->acti_id ? $pactivity->acti_id : 0; // $product_id = $pactivity->product_id ? $pactivity->product_id : 0; // } if (empty($product_id)) { echo PublicLibrary::format_res_encode('1003', 'param error !'); exit; } $model_Base = new ProductFollow(); $Mpfollow = new ProductFollow(); //对follow_num增减 $follow_num = new IProductStat(); $Mapstar = new ActivityProductStat(); $Mmemberstat = new MemberStat(); if ($type == ProductFollow::API_FOLLOW) { if ($rel_id) { //设置关注的产品id集 session $follow_activ_product = $session['follow_activ_product'] ? $session['follow_activ_product'] : array(); array_push($follow_activ_product, $rel_id); $session['follow_activ_product'] = $follow_activ_product; $activityfollow = $Mpfollow->activityfollow($rel_id, $product_id, $activity_id, $uid); if ($activityfollow == ProductFollow::FOLLOW_OP_SUCC) { $Mapstar->incr($rel_id, 'follow_num'); } } // //设置关注的产品id集 session // $follow_productids = $session['follow_product']; // array_push($follow_productids, $product_id); // $session['follow_product'] = $follow_productids; $follow = $model_Base->follow($product_id, $uid); if ($follow === ProductFollow::FOLLOW_OP_SUCC || $follow === true) { //设置关注的产品id集 session $follow_productids = $session['follow_product'] ? $session['follow_product'] : array(''); array_push($follow_productids, $product_id); $session['follow_product'] = $follow_productids; $follow_num = $follow_num->modify('follow_num', $product_id); //增加 产品统计表 该产品关注数 $Mmemberstat->incr($pbaseuid, 'pfollow_allnum'); //增加 用户统计表 产品关注总数字段 } else { if ($follow === ProductFollow::FOLLOW_OP_EXISTS) { // 获取该产品关注数 $follow_num = count($model_Base->getFollowUsers($product_id)); } } } else { if ($rel_id) { //设置关注的产品id集 session $follow_activ_product = $session['follow_activ_product'] ? $session['follow_activ_product'] : array(); $key = array_search($rel_id, $follow_activ_product); unset($follow_activ_product[$key]); $session['follow_activ_product'] = $follow_activ_product; $follow = $activityunfollow = $Mpfollow->activityunfollow($rel_id, $product_id, $activity_id, $uid); //var_dump($activityunfollow);die; if ($activityunfollow === true) { $Mapstar->decr($rel_id, 'follow_num'); } $follow_num = count($model_Base->getFollowUsers($product_id)); } else { // //设置关注的产品id集 session // $follow_productids = $session['follow_product']; // $key = array_search($product_id, $follow_productids); // unset($follow_productids[$key]); // $session['follow_product'] = $follow_productids; $follow = $model_Base->unfollow($product_id, $uid); if ($follow === ProductFollow::FOLLOW_OP_SUCC || $follow === true) { //设置关注的产品id集 session $follow_productids = $session['follow_product'] ? $session['follow_product'] : array(''); $key = array_search($product_id, $follow_productids); unset($follow_productids[$key]); $session['follow_product'] = $follow_productids; $follow_num = $follow_num->modify('follow_num', $product_id, 1, FALSE); //减少该产品关注数 $Mmemberstat->decr($pbaseuid, 'pfollow_allnum'); //减少 用户统计表 产品关注总数字段 } else { if ($follow === ProductFollow::FOLLOW_OP_CANCELLED) { //设置关注的产品id集 session $follow_productids = $session['follow_product'] ? $session['follow_product'] : array(''); $key = array_search($product_id, $follow_productids); unset($follow_productids[$key]); $session['follow_product'] = $follow_productids; // 获取该产品关注数 $follow_num = count($model_Base->getFollowUsers($product_id)); } } } } if ($follow) { //用户信息 $member = new Member(); $user = $member->getByUid($pbaseuid); $pfollow_allnum = $user['memberstar']['pfollow_allnum']; //被关注商品数 $pfollow_num = $user['memberstar']['follow_num']; $renqi = isset($user['memberstar']) && is_array($user['memberstar']) ? array_sum($user['memberstar']) : 0; echo PublicLibrary::format_res_encode('0', 'success', array('follow_num' => $follow_num, 'renqi' => $renqi, 'pfollow_allnum' => $pfollow_allnum)); //echo PublicLibrary::format_res_encode('0', 'success', array('follow_num'=> json_encode($session['follow_product']))); } else { echo PublicLibrary::format_res_encode('1001', 'params error'); } }