$param['store_id'], 'merchant_id' => $param['merchant_id'], 'add_time' => ['egt', $param['time']], ]; $limit = 400; $page = $param['page'] . ',' . $limit; $GoodsEditRecordModel = new GoodsEditRecordModel(); $goods_id_arr = $GoodsEditRecordModel->getSelect($where, 'goods_id', $order = 'id desc', $page); if (!empty($goods_id_arr)) { $goods_id_arr = assoc_unique_val($goods_id_arr, 'goods_id'); $goods_id = array_column($goods_id_arr, "goods_id"); $map = [ 'g.id' => ['in', $goods_id], 'g.status' => 0, 'g.store_id' => $param['store_id'], ]; if ($serial_number_state != 1) { $map['g.serial_number_state'] = 0; } $fields = [ 'g.id', 'g.usual_state', 'g.goods_img_id', 'g.goods_class_id', 'g.goods_code', 'g.goods_number', 'g.goods_name', 'g.retail_price', 'g.vip_retail_state', 'g.pricing_method', 'g.attribute_state', 'g.store_mem_status', 'g.store_mem_price', 'g.plus_mem_status', 'g.plus_price', 'g.purchase_price', 'g.pricing_method', 'g.store_mem_integral', 'g.plus_mem_integral', 'g.company', 'g.simple_spelling', 's.goods_num', 'g.retail_state', 'g.status', 'g.serial_number_state', 'g.specifications', 'g.goods_yieldly_id', 'g.goods_order', ]; $GoodsModel = new RetailGoodsModel(); $list = $GoodsModel->getSaleGoodsList($map, $fields, 1, 400); if (!empty($list)) { $list = $this->goodsEditListValue([ 'goodsList' => $list, 'store_id' => $param['store_id'], 'merchant_id' => $param['merchant_id'] ]); } else { $list = []; } } else { $list = []; } return callBack(statusCode()['success'], "更新成功", $list); } /** * 商品列表值转换 * @param $param * [ * goodsList 商品列表信息 * store_id 门店id * merchant_id * ] * @return mixed */ public function goodsEditListValue($param) { $goodsList = $param['goodsList']; $store_id = $param['store_id']; $merchant_id = $param['merchant_id']; $ImageClass = new Image(); $SkuGoodsModel = new RetailSkuGoodsModel(); $SkuListModel = new RetailSkuListModel(); $YieldModel = new Yieldly(); $yield = $YieldModel->getUsedGoodsYieldlyList($merchant_id); if (!empty($yield)) { $yield = array_column($yield, null, 'id'); } $yield = $yield ? $yield : []; //产地 foreach ($goodsList as &$value) { if (!empty($value['goods_yieldly_id']) && $value['attribute_state'] == 1) { $value['place'] = $yield[$value['goods_yieldly_id']]['name']; } else { $value['place'] = ''; } $value['goods_img'] = $ImageClass->getGoodsImageUrl([ 'store_id' => $store_id, 'img_id' => $value['goods_img_id'] ]); unset($value['goods_img_id']); //判断会员价是否小于store_mem_price 0.01 if ($value['pricing_method'] == 2) { $value['attribute_state'] = 1; } if ($value['attribute_state'] == 1) { if (empty($value['store_mem_price']) || $value['store_mem_price'] < 0.01) { $value['store_mem_status'] = 2; } //判断PLUS会员价是否小于plus_price 0.01 if (empty($value['plus_price']) || $value['plus_price'] < 0.01) { $value['plus_mem_status'] = 2; } } $value['goods_type'] = 1; //多规格商品 $value['skuAttr'] = []; $value['skuList'] = []; if ($value['attribute_state'] == 2) { //启用多规格,但存在没有添加规格商品的可能 $value['goods_num'] = 0; $str = ''; $sku_map['k.goods_id'] = $value['id']; $sku_map['k.state'] = 0; $sku_map['k.status'] = 1; $sku_field = [ 'k.id', 'k.goods_id', 'k.sku_id_list', 'k.purchase_price', 'k.retail_price', 'k.goods_img', 'k.goods_img_id', 'k.sku_num', 'k.sku_code', 'k.sku_goods_number', 'k.store_mem_price', 'k.plus_price', 'k.plus_mem_integral', 'k.store_mem_integral', 's.goods_num', ]; $goodsSku = $SkuGoodsModel->getSkuGoodsList($sku_map, $sku_field, 'k.retail_price asc'); if (empty($goodsSku)) { $value['attribute_state'] = 1; } else { foreach ($goodsSku as &$val) { $value['goods_num'] += $val['goods_num']; $str .= ',' . $val['sku_id_list']; $img = $ImageClass->getGoodsImageUrl([ 'img_id' => $val['goods_img_id'], 'img_url' => $val['goods_img'], 'store_id' => $store_id ]); $val['goods_img'] = $img; $name = $SkuListModel->getFindField(['id' => ['in', $val['sku_id_list']]], 'name', true); $val['name'] = implode(',', $name); $val['store_mem_status'] = $value['store_mem_status']; } $str = ltrim($str, ','); $sku_id_list = explode(',', $goodsSku[0]['sku_id_list']); $attr = []; foreach ($sku_id_list as $v) { $list_map['l.id'] = $v; $tempAttr = $SkuListModel->getCashierSkuList($list_map); $tempAttr['list'] = $SkuListModel->getSelect([ 'id' => ['in', $str], 'attr_id' => $tempAttr['id'], 'state' => 0, ]); $attr[] = $tempAttr; } $value['skuAttr'] = $attr; $value['skuList'] = $goodsSku; } } } return $goodsList; } }