$uid, 's.' . $this::STORE_ID => $store_id, 's.' . $this::STATE => 1, 'g.' . $GoodsModel::ONLINE_STATE => 1, 'g.' . $GoodsModel::STATUS => 0 ); if (!empty($type)) { $map['s.' . $this::TYPE] = array('in', $type); } if (!empty($ids)) { $map['s.' . $this::ID] = array('in', $ids); } if (empty($fields)) { $fields = array( 's.*', 'h.' . $HostModel::STATUS . ' as h_status', 'h.' . $HostModel::ACT_PRICE, 'g.' . $GoodsModel::GOODS_NAME, 'g.' . $GoodsModel::GOODS_IMG_ID, 'g.' . $GoodsModel::ONLINE_PRICE, 'g.' . $GoodsModel::VIP_ONLINE_STATE, 'g.' . $GoodsModel::SHOP_MEM_STATUS, 'g.' . $GoodsModel::SHOP_MEM_PRICE, 'g.' . $GoodsModel::ATTRIBUTE_STATE, 'g.' . $GoodsModel::PRICING_METHOD, 'g.' . $GoodsModel::PLUS_MEM_STATUS, 'g.' . $GoodsModel::PLUS_PRICE, 'g.' . $GoodsModel::SHOP_MEM_INTEGRAL, 'g.' . $GoodsModel::PLUS_MEM_INTEGRAL, 'g.company' ); } $time = time(); $goods_list = $this->alias('s') ->join('ls_retail_goods as g on g.' . $GoodsModel::ID . '=s.' . $this::GOODS_ID) ->join("ls_retail_host as h on h.goods_id=g.id AND h.state=1 AND h.sku_id=s.sku_id AND h.type=2 AND h.starttime<={$time} AND h.endtime>{$time}", 'LEFT') ->field($fields) ->where($map) ->group('s.id') ->order('s.' . $HostModel::ADD_TIME . ' desc')->select(); return $goods_list; } /** * @param $uid 小程序用户id * @param $store_id 门店id * @param $fields 选取字段 * @param string $ids 购物车表id * @param $type 1购物车 1立即购买 * @return mixed */ public function getShoppingGoods_v1($uid, $store_id, $fields, $ids = '', $type = '2') { $GoodsModel = D('RetailGoods'); $HostModel = D('RetailHost'); $map = array( 's.' . $this::UID => $uid, 's.' . $this::STORE_ID => $store_id, 's.' . $this::STATE => 1, 'g.' . $GoodsModel::ONLINE_STATE => 1, 'g.' . $GoodsModel::STATUS => 0 ); if (!empty($type)) { $map['s.' . $this::TYPE] = array('in', $type); } if (!empty($ids)) { $map['s.' . $this::ID] = array('in', $ids); } if (empty($fields)) { $fields = array( 's.*', 'h.' . $HostModel::STATUS . ' as promotion_status', 'h.' . $HostModel::ACT_PRICE, 'g.' . $GoodsModel::GOODS_NAME, 'g.' . $GoodsModel::GOODS_IMG_ID, 'g.' . $GoodsModel::ONLINE_PRICE, 'g.' . $GoodsModel::VIP_ONLINE_STATE, 'g.' . $GoodsModel::SHOP_MEM_STATUS, 'g.' . $GoodsModel::SHOP_MEM_PRICE, 'g.' . $GoodsModel::ATTRIBUTE_STATE, 'g.' . $GoodsModel::PRICING_METHOD, 'g.' . $GoodsModel::PLUS_MEM_STATUS, 'g.' . $GoodsModel::PLUS_PRICE, ); } $time = time(); $goods_list = $this->alias('s') ->join('ls_retail_goods as g on g.' . $GoodsModel::ID . '=s.' . $this::GOODS_ID) ->join("ls_retail_host as h on h.goods_id=g.id AND h.state=1 AND h.sku_id=s.sku_id AND h.type=2 AND h.starttime<={$time} AND h.endtime>{$time}", 'LEFT') ->field($fields) ->where($map) ->group('s.id') ->order('s.' . $HostModel::ADD_TIME . ' desc')->select(); // 赠品数据显示 return $goods_list; } /** * @param $uid 小程序用户id * @param $store_id 门店id * @param string $fields 选取字段 * @param string $page 页 * @param string $limit 数量 * @return mixed */ public function getShoppingGoods_v2($uid, $store_id, $fields = '', $page = '1', $limit = '10') { $GoodsModel = D('RetailGoods'); $HostModel = D('RetailHost'); $map = array( 's.' . $this::UID => $uid, 's.' . $this::STORE_ID => $store_id, 's.' . $this::STATE => 1, 's.' . $this::TYPE => 1, 'g.' . $GoodsModel::ONLINE_STATE => 1, 'g.' . $GoodsModel::STATUS => 0, ); if (empty($fields)) { $fields = array( 's.*', 'h.' . $HostModel::STATUS . ' as promotion_status', 'h.' . $HostModel::ACT_PRICE, 'g.' . $GoodsModel::GOODS_NAME, 'g.' . $GoodsModel::GOODS_IMG_ID, 'g.' . $GoodsModel::ONLINE_PRICE, 'g.' . $GoodsModel::VIP_ONLINE_STATE, 'g.' . $GoodsModel::SHOP_MEM_STATUS, 'g.' . $GoodsModel::SHOP_MEM_PRICE, 'g.' . $GoodsModel::ATTRIBUTE_STATE, 'g.' . $GoodsModel::PRICING_METHOD, 'g.' . $GoodsModel::PLUS_MEM_STATUS, 'g.' . $GoodsModel::PLUS_PRICE, 'g.delivery_type', 'g.third_goods_code' ); } $time = time(); $goods_list = $this->alias('s') ->join('ls_retail_goods as g on g.' . $GoodsModel::ID . '=s.' . $this::GOODS_ID) ->join("ls_retail_host as h on h.goods_id=g.id AND h.state=1 AND h.sku_id=s.sku_id AND h.type=2 AND h.starttime<={$time} AND h.endtime>{$time}", 'LEFT') ->field($fields) ->where($map) ->group('s.id') ->order('s.' . $HostModel::ADD_TIME . ' desc') ->page($page, $limit) ->select(); return $goods_list; } }