Exemple #1
0
 /**
  * 删除功能
  */
 public function del($pid, $cid, $supid)
 {
     if (!is_array($pid)) {
         $pid = array($pid);
     }
     foreach ($pid as $v1) {
         $this->di['gcproinfo']->begin();
         $infoobj = \Gcproinfo\Models\Pdinfo::findFirst(array('pid = :pid: and cid = :cid:', 'bind' => array('pid' => $v1, 'cid' => $cid)));
         if ($infoobj->state == 1 or $infoobj->state == -2) {
             if ($infoobj->cate3 > 0) {
                 $procate = $infoobj->cate3;
             } else {
                 $procate = $infoobj->cate2;
             }
             $cate2 = 0;
             $comInfo = ComBaseService::getInstance()->getCom($infoobj->supid);
             if ($comInfo['code'] == 200 and is_array($comInfo['data'])) {
                 $cate2 = $comInfo['data']['cate2'];
             }
             $tongjiInfo = array('supid' => $infoobj->supid, 'uid' => 0, 'opuserid' => 0, 'cid' => $infoobj->cid, 'pid' => $infoobj->pid, 'cate2' => $cate2, 'cate3' => $infoobj->cate3, 'procate' => $procate, 'score' => $infoobj->star, 'ptype' => 1);
             Statistic::report(Statistic::SUP_DEL_PRODUCT, $tongjiInfo);
         }
         $infoobj->state = -7;
         $infoobj->online = 0;
         $re1 = $infoobj->save();
         if ($re1 == false) {
             $this->di['gcproinfo']->rollback();
             return $this->outputData(false, '600', '删除失败');
         }
         $groupAll = \Gcproinfo\Models\PdPidgid::find(array("conditions" => 'pid=:pid: and cid = :cid: and state in (0,1)', 'bind' => array('pid' => $v1, 'cid' => $cid)))->toArray();
         if (!empty($groupAll)) {
             foreach ($groupAll as $val) {
                 $userGroupObj = \Gcproinfo\Models\PdPidgid::findFirst(array('id = :id:', 'bind' => array('id' => $val['id'])));
                 $re2 = $userGroupObj->delete();
                 if ($re2 == false) {
                     $this->di['gcproinfo']->rollback();
                     return $this->outputData(false, '600', '产品分组删除失败');
                 }
                 if (empty($val['cgid'])) {
                     $groupobj = \Gcproinfo\Models\Pdcustomgroup::findFirst(array('cid=:cid: and gid = :gid: and parentgid=0', 'bind' => array('gid' => $val['gid'], 'cid' => $val['cid'])));
                 } else {
                     $groupobj = \Gcproinfo\Models\Pdcustomgroup::findFirst(array('cid=:cid: and gid = :cgid: and parentgid=:gid:', 'bind' => array('cgid' => $val['cgid'], 'gid' => $val['gid'], 'cid' => $val['cid'])));
                 }
                 if (!empty($groupobj) && is_object($groupobj)) {
                     if ($groupobj->pronum > 0) {
                         $groupobj->pronum = $groupobj->pronum - 1;
                         $re3 = $groupobj->save();
                         if ($re3 == false) {
                             $this->di['gcproinfo']->rollback('产品分组统计产品数目失败');
                             return $this->outputData(false, '600', '产品分组统计产品数目失败');
                         }
                     }
                 }
             }
         }
         $this->di['gcsupplier']->begin();
         $mProduct = \Gcproinfo\Models\Mproduct::findFirst(array('pid = :pid:', 'bind' => array('pid' => $v1)));
         if ($mProduct) {
             $re5 = $mProduct->delete();
             if ($re5 == false) {
                 $this->di['gcsupplier']->rollback();
                 return $this->outputData(false, '600', '违规产品删除失败');
             }
         }
         $optimize = \Gcproinfo\Models\Pdoptimize::findFirst(array('pid = :pid:', 'bind' => array('pid' => $v1)));
         if ($optimize) {
             $optimize->state = -7;
             $re6 = $optimize->save();
             if ($re6 == false) {
                 $this->di['gcproinfo']->rollback();
                 return $this->outputData(false, '600', '待优化删除失败');
             }
         }
         $this->di['gcproinfo']->commit();
         $this->di['gcsupplier']->commit();
         $rabbit = new RabbitMQ($this->di['config']->rabbitmq_write->toArray());
         $rabbit->setBroadcast('v3prodesc', 'prodesc', json_encode(array('pid' => $infoobj->pid, 'cid' => $infoobj->cid, 'table' => 'product', 'op' => 'delete')));
     }
     return $this->outputData(1);
 }
 public function starAdd($data)
 {
     if (!is_array($data) || empty($data['pid']) || empty($data['proname']) || empty($data['supid'])) {
         return $this->outputData('', '600', '参数错误');
     }
     $is_add = false;
     $Pdoptimize = Pdoptimize::findFirst(array('pid = ?1 AND supid = ?2', 'bind' => array(1 => $data['pid'], 2 => $data['supid'])));
     if (!$Pdoptimize) {
         $Pdoptimize = new Pdoptimize();
     }
     $Pdoptimize->pid = $data['pid'];
     $Pdoptimize->protype = $data['protype'];
     $Pdoptimize->supid = $data['supid'];
     $Pdoptimize->cid = $data['cid'];
     $Pdoptimize->proname = $data['proname'];
     $Pdoptimize->star = $data['star'];
     $Pdoptimize->namelength = $data['namelength'];
     $Pdoptimize->property = $data['property'];
     $Pdoptimize->prodesc = $data['prodesc'];
     $Pdoptimize->picurl = $data['picurl'];
     $Pdoptimize->picnum = $data['picnum'];
     $Pdoptimize->price = $data['price'];
     $Pdoptimize->addtime = time();
     $Pdoptimize->state = $data['state'];
     if ($Pdoptimize->save()) {
         $is_add = true;
     }
     return $this->outputData($is_add);
 }