/** * 根据分组获取产品id * @param integer $cid 企业id * @param integer $groupid 分组id * @param integer $offset 起始值 * @param integer $limit 分页 */ public function getGRoupGoods($condition, $bind, $offset = 0, $limit = 20) { $data = \Gcproinfo\Models\PdPidgid::find(array($condition, 'bind' => $bind, 'order' => 'pid DESC', 'limit' => $limit, 'offset' => $offset))->toArray(); $data['count'] = \Gcproinfo\Models\PdPidgid::count(array($condition, 'bind' => $bind)); return $this->outputData($data); }
/** * 获得普通商品列表 * @param int $cid 企业id * @param string $groupid 分组字符串 * @param int $offset 分页起始值 * @param int $limit 分页 * @param string $column 字段 默认为全部 * @param string $order 排序 */ public function getProductList($cid, $groupid = 0, $offset = 0, $limit = 20, $column = '*', $order = ' uptime desc') { $cid = $this->di['filter']->sanitize($cid, 'int', 0); if ($cid > 50000000) { //采集企业商品列表 $data = $this->getCaijiProductList($cid, $groupid, $offset, $limit, $column, $order); } else { $groupid = $this->di['filter']->sanitize($groupid, 'string', 0); $offset = $this->di['filter']->sanitize($offset, 'int', 0); $limit = $this->di['filter']->sanitize($limit, 'int', 20); if (!empty($groupid)) { $pidgid = explode('-', $groupid); $gid = isset($pidgid[0]) ? $pidgid[0] : 0; $cgid = isset($pidgid[1]) ? $pidgid[1] : 0; if (empty($cgid)) { $condition = 'cid = :cid: and gid=:gid: and state =1'; $bind = array('cid' => $cid, 'gid' => $gid); } else { $condition = 'cid = :cid: and gid=:gid: and cgid=:cgid: and state =1'; $bind = array('cid' => $cid, 'gid' => $gid, 'cgid' => $cgid); } //修改保法的接口: 查询时候改为查询不同的pid因为可能存在重复id的情况 //@author Jea $pidgid = PdPidgid::find(array('columns' => 'distinct(pid) as pid', $condition, 'bind' => $bind, 'order' => 'pid DESC', 'limit' => $limit, 'offset' => $offset)); $pidArr = array(); if (is_object($pidgid)) { $pidgid = $pidgid->toArray(); foreach ($pidgid as $v) { if (isset($v['pid'])) { $pidArr[] = $v['pid']; } } if (is_array($pidArr)) { $pidArr = implode(',', $pidArr); } if (!empty($pidArr)) { $data = PdInfo::find(array('cid = :cid: and pid in (' . $pidArr . ')', 'bind' => array('cid' => $cid), 'columns' => $column)); if ($data) { $data = $data->toArray(); } else { $data = array(); } } } $count = PdPidgid::findFirst(array('columns' => 'count(distinct(pid)) as num', $condition, 'bind' => $bind)); $data['count'] = $count->num; } else { $condition = 'cid = :cid: and state = 1'; $bind = array('cid' => $cid); $data = Pdinfo::find(array($condition, 'bind' => $bind, 'limit' => $limit, 'offset' => $offset, 'order' => $order, 'columns' => $column)); if ($data) { $data = $data->toArray(); } else { $data = array(); } $data['count'] = Pdinfo::count(array($condition, 'bind' => $bind)); } } return $this->outputData($data); }