/** * 删除功能 */ 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); }