文件
mashangyoujiu/Application/Common/Business/OperateMGoods.class.php

1299 行
60 KiB
PHP
可执行文件

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

<?php
namespace Common\Business;
use Common\Model\ImageGalleryModel;
use Common\Model\MGoodsBannerModel;
use Common\Model\MGoodsModel;
use Common\Model\PurchaseGoodsModel;
use Common\Model\RetailGoodsClassModel;
use Common\Model\RetailGoodsModel;
use Common\Model\RetailMerchantConfigModel;
use Common\Model\RetailMgoodsModel;
use Common\Model\RetailSkuListModel;
use Common\Model\SaleMGoodsModel;
use Common\Model\SkuMGoodsModel;
use Common\Model\SkuMGoodsViewModel;
use Common\Model\WarehousingGoodsModel;
use Common\Validate\CustomValidate;
//[1.8.78]
/**
* 操作商户商品档案类
* Class OperateGoods
* @package Common\Business
*/
class OperateMGoods
{
private $merchant_id; //商户ID
/**
* 商户商品字段名称
* @var array
*/
protected $goods_fields_name = array(
'supplier_id' => '供货商',
'goods_name' => '商品名称',
'good_number' => '商品货号',
'goods_code' => '商品条码',
'goods_class_id' => '商品分类',
'subheading' => '商品副标题',
'goods_num' => '商品库存',
'purch_price' => '商品进价',
'retail_price' => '店内零售价',
'online_price' => '商城零售价',
'shop_mem_status' => '商城会员价开启状态',
'shop_mem_price' => '商城会员价',
'plus_price' => 'plus会员价',
'plus_mem_status' => '是否开启plus会员',
'store_mem_status' => '店内会员价开启状态',
'store_mem_price' => '店内会员价',
'company' => '商品单位',
'weight_value' => '商品重量',
'specifications' => '商品规格',
'goods_order' => '商品排序',
'more_num' => '库存超量',
'less_num' => '库存预警',
'issellonline' => '商城出售状态',
'vip_online_state' => '商城会员折扣',
'vip_retail_state' => '门店会员折扣',
'can_exchange_weigh' => '计价方式',
'refund_state' => '是否允许退款',
'exchange_state' => '是否允许换货',
'status' => '商品上下架状态',
'attribute' => '多规格状态',
'shop_mem_integral' => '商城会员价换购积分',
'plus_mem_integral' => 'PLUS会员价换购积分',
'store_mem_integral' => '店内会员价换购积分',
'goods_brand_id' => '商品品牌',
'goods_yieldly_id' => '商品产地',
);
/**
* 初始化商户ID
* OperateMGoods constructor.
* @param null $merchant_id
*/
public function __construct($merchant_id = null)
{
if (!$merchant_id) {
return callBack(statusCode()['error'], '缺少商户ID');
}
$this->merchant_id = $merchant_id;
}
/**
* 获取商品详情进行编辑
* @param $param
* @return mixed
*/
public function getMGoodsDetails($param)
{
$goods_id = $param['goods_id']; //商品ID
if (!$goods_id) {
return callBack(statusCode()['error'], '缺少商品ID');
}
//1.查询商品信息
$GoodsModel = new RetailMgoodsModel();
$map = array(
'id' => $goods_id,
'merchantid' => $this->merchant_id,
'status' => array('in', '0,1'),
);
$goods = $GoodsModel->getFind($map);
if (!$goods) {
return callBack(statusCode()['error'], '商品不存在');
}
//2.获取封面图
$ImageGalleryModel = new ImageGalleryModel();
if (!empty($goods['goods_image_id'])) {
$goods['goods_img'] = $ImageGalleryModel->getFieldPath(array('id' => $goods['goods_image_id']));
}
if (!empty($goods['video_id'])) {
$goods['goods_video'] = $ImageGalleryModel->getFieldPath(array('id' => $goods['video_id']));
} else {
$goods['goods_video'] = '';
}
//3.处理字段信息
$goods['more_num'] = $goods['more_num'] ? floatval($goods['more_num']) : '';
$goods['less_num'] = $goods['less_num'] ? floatval($goods['less_num']) : '';
$goods['weight_value'] = $goods['weight_value'] ? floatval($goods['weight_value']) : '';
$goods['online_price'] = floatval($goods['online_price']) ? floatval($goods['online_price']) : '';
$goods['retail_price'] = floatval($goods['retail_price']) ? floatval($goods['retail_price']) : '';
$goods['shop_mem_price'] = floatval($goods['shop_mem_price']) ? floatval($goods['shop_mem_price']) : '';
$goods['store_mem_price'] = floatval($goods['store_mem_price']) ? floatval($goods['store_mem_price']) : '';
$goods['plus_price'] = floatval($goods['plus_price']) ? floatval($goods['plus_price']) : '';
$goods['goods_code'] = $goods['goods_code'] ? $goods['goods_code'] : '';
//4.获取商品库存
$SaleMGoodsModel = new SaleMGoodsModel();
$where = array(
'merchant_id' => $this->merchant_id,
'goods_id' => $goods_id,
'status' => array('in', '0,1'),
);
if ($goods['attribute'] == 2) {
$goods['goods_num'] = $SaleMGoodsModel->getSum($where, "goods_num");
} else {
$goods['goods_num'] = $SaleMGoodsModel->getFindField($where, "goods_num");
}
$goods['goods_num'] = floatval($goods['goods_num']);
//5.处理商品分类
$GoodsClassifyApi = new GoodsClassify();
$class_list = array();
$GoodsClassifyApi->getAppointGoodsClassList($goods['goods_class_id'], $class_list);
//6.获取轮播图
$BannerApi = new Banner();
$banner = $BannerApi->getMGoodsBanner($goods_id, true);
return callBack(statusCode()['success'], '获取成功', array(
'goods' => $goods, //商品信息
'bannerList' => $banner, //商品轮播图
'goods_class' => $class_list, //商品选择的分类列表
));
}
/**
* 获取商户添加商品的一些基本配置及限制
* @return array
*/
public function getEditGoodsConfig()
{
//商户积分设置
$MerchantConfigModel = new RetailMerchantConfigModel();
$config = $MerchantConfigModel->getFind(array('merchant_id' => $this->merchant_id));
return array(
'integral_arrive_cash' => $config['integral_arrive_cash'] ? $config['integral_arrive_cash'] : 0,
'marketing_methods' => $config['marketing_methods'] ? $config['marketing_methods'] : 1,
);
}
/**
* 商户新增、编辑商品
* @param $param
* [
* platform_type 商户平台类型 1默认系统 2微礼平台
* ]
* @return mixed
* @throws \think\Exception
*/
public function editMerchantGoods($param)
{
$platform_type = $param['platform_type'] ? $param['platform_type'] : 1;
$merchant_id = $this->merchant_id; //商户ID
$user_type = $param['user_type']; //用户类型 1合伙人端 2代理商端 3商户端 4门店端 6收银员
if (!$merchant_id || !$user_type) {
return callBack(statusCode()['error'], '缺少必要参数,详情请见data', array(
'merchant_id' => $merchant_id,
'user_type' => $user_type,
));
}
//1.验证是否创建供给仓
$WarehousingRecord = new WarehousingRecord();
$warehouse = $WarehousingRecord->getMerchantSaleWarehouse([
'merchant_id' => $merchant_id,
]);
if (empty($warehouse)) {
return callBack(statusCode()['error'], "请先创建供给仓");
}
$warehouse_id = $warehouse['id'];
//获取商户操作商品的一些基本配置
$config = $this->getEditGoodsConfig([
'merchant_id' => $merchant_id,
]);
$data = $param['goodsInfo'];
foreach ($data as $k => $v) {
if (!is_array($v)) $data[$k] = trim($v, ' ');
}
$item = array(
'merchant_id' => $merchant_id,
'goods_id' => $data['id'],
'attribute' => $data['attribute'],
'retail_state' => $data['retail_state'],
'issellonline' => $data['issellonline'],
'integral_arrive_cash' => $config['integral_arrive_cash'],
'marketing_methods' => $config['marketing_methods'],
'store_mem_status' => $data['store_mem_status'],
'shop_mem_status' => $data['shop_mem_status'],
'plus_mem_status' => $data['plus_mem_status'],
'serial_number_state' => $data['serial_number_state'] ? $data['serial_number_state'] : 0,
'platform_type' => $platform_type
); //验证商品参数的配置
//2.编辑商品时,验证是可进行编辑规格操作
$oldGoods = array();
if (!empty($data['id'])) {
$verifyEditGoods = $this->verifyEditGoods($item);
if ($verifyEditGoods['status'] != 1) {
return $verifyEditGoods;
}
$oldGoods = $verifyEditGoods['data'];
}
//3.接收传输的商品信息
$item['goodsInfo'] = $param['goodsInfo'];
$goods = $this->getPostGoodsData($item);
$goodsVerifyItem = $item;
$goodsVerifyItem['goods'] = $goods;
//4.验证传输的商品基本字段
$verifyGoods = $this->verifyGoodsData($goodsVerifyItem);
if ($verifyGoods['status'] != 1) {
return $verifyGoods;
}
//验证串号开关
if ($goods['serial_number_state'] == 1 && empty($data['id'])) {
if ($goods['goods_num'] > 0) {
return callBack(statusCode()['error'], '开启串码功能后,商品库存需要采购增加');
}
if ($goods['can_exchange_weigh'] == 2) {
return callBack(statusCode()['error'], '开启串码功能后,商品不能开启称重');
}
}
$goodsApi = new \Common\Business\Goods(); //商品类
//判断货号是否重复
$verifyNumber = $goodsApi->jumpMerGoodsNumberOrCode([
'value' => $goods['good_number'],
'merchant_id' => $merchant_id,
'type' => 1,
'goods_id' => $data['id'],
]);
if ($verifyNumber['status'] != 1) {
return $verifyNumber;
}
//判断条码是否重复
if (!empty($goods['goods_code'])) {
$verifyCode = $goodsApi->jumpMerGoodsNumberOrCode([
'value' => $goods['goods_code'],
'merchant_id' => $merchant_id,
'type' => 2,
'goods_id' => $data['id'],
]);
if ($verifyCode['status'] != 1) {
return $verifyCode;
}
}
//验证第三方平台商品编码
if ($platform_type == 2 && empty($goods['id']) && $goods['attribute'] == 1) {
$LittleGoodsClass = new \LittleGift\Business\Goods();
$verifyCode = $LittleGoodsClass->verifyQ3Code([
'third_goods_code' => $goods['third_goods_code'],
'merchant_id' => $merchant_id,
]);
if ($verifyCode['status'] != 1) {
return $verifyCode;
}
$verifyCode = $LittleGoodsClass->GoodsVerify([
'merchant_id' => $merchant_id,
'code_arr' => [$goods['third_goods_code']]
]);
if ($verifyCode['status'] == 0) {
return $verifyCode;
}
if (!empty($verifyCode['data']['arr_diff'])) {
return callBack(statusCode()['error'], $goods['third_goods_code'] . 'Q3 ERP平台商品编码验证失败');
}
}
if ($goods['can_exchange_weigh'] == 2 && $goods['attribute'] == 2) {
return callBack(statusCode()['error'], '规格与称重不能同时开启');
}
//5.处理称重商品重量
if ($goods['can_exchange_weigh'] == 2) {
$goods['weight_value'] = $goodsApi->getGoodsWeightFromCompany($goods['company']);
}
//6.处理图片云库地址
$goods_image_url = $data['goods_image_url'];
if (!empty($goods_image_url)) {
$obj = array(
'path' => $goods_image_url,
'storage_type' => 5
);
$codeImage = $goodsApi->basisCodeAddImageGallery($obj); //阿里云条码查询的商品图片存入库图片库
if (!empty($codeImage['goods_image'])) {
$goods['goods_image_id'] = $codeImage['goods_image']['id']; //商品封面图
}
}
$skuList = array(); //多规格
if ($goods['attribute'] == 2) {
$goods['third_goods_code'] = '';
$item['codeArr'] = $goods['goods_code'] ? [$goods['goods_code']] : [];
$item['numberArr'] = $goods['good_number'] ? [$goods['good_number']] : [];
$skuList = $param['goodsInfo']['skuList'];
try {
$item['skuList'] = json_decode($skuList, true);
} catch (\Exception $e) {
return callBack(statusCode()['error'], '规格参数有误', $skuList);
}
$verifySku = $this->verifyGoodsSku($item);
if ($verifySku['status'] != 1) {
return $verifySku;
}
$skuList = $verifySku['data'];
unset($goods['third_goods_code']);
}
$GoodsModel = new RetailMgoodsModel();
$PinYinClass = new PinYin();
$updateTime = 0; //存储商品是否被更新,若是编辑商品被更新,则修改门店被调拨的商品状态
if (empty($oldGoods)) {
if (!$goods['simple_spelling']) {
$goods['simple_spelling'] = $PinYinClass->strChangePin($goods['goods_name']); //获取商品名称简拼
}
$goods_id = $GoodsModel->addOrder($goods);
} else {
unset($goods['purch_price']);
unset($goods['third_goods_code']);
if (!$goods['simple_spelling']) {
$goods['simple_spelling'] = $PinYinClass->strChangePin($goods['goods_name']); //获取商品名称简拼
}
$update = $GoodsModel->updateOrder(array('id' => $oldGoods['id']), $goods);
$goods_id = $oldGoods['id'];
if ($update) $updateTime++;
}
if ($goods_id) {
$SaleWarehouseData = $goods;
$SaleWarehouseData['goods_id'] = $goods_id;
$SaleWarehouseData['merchant_id'] = $goods['merchantid'];
$SaleWarehouseData['warehouse_id'] = $warehouse_id;
$SaleWarehouseData['goods_number'] = $goods['good_number'];
$SaleWarehouseData['pricing_method'] = $goods['can_exchange_weigh'];
$SaleWarehouseData['attribute_state'] = $goods['attribute'];
if ($goods['attribute'] == 1) {
$SaleWarehouseData['purchase_price'] = $goods['purch_price'];
if (empty($oldGoods) || $goods['attribute'] != $oldGoods['attribute']) {
$this->addSaleGoods($SaleWarehouseData, 1); //商品添加到销售库
} else {
$this->addSaleGoods($SaleWarehouseData, 2); //商品销售库修改
}
} else {
$sku_id_str = [];
$SkuGoodsModel = new SkuMGoodsModel();
//处理规格
foreach ($skuList as $k => &$v) {
$v['mgoods_id'] = $goods_id;
$v['goods_img'] = $v['goods_img'] ? $v['goods_img'] : '';
$v['goods_img_id'] = $v['goods_img_id'] ? $v['goods_img_id'] : null;
$SaleWarehouseData['sku_name'] = $v['name'];
$SaleWarehouseData['sku_id_list'] = $v['sku_id_list'];
$SaleWarehouseData['sku_goods_number'] = $v['sku_goods_number'];
$SaleWarehouseData['sku_code'] = $v['sku_code'];
$SaleWarehouseData['sku_num'] = $v['sku_num'];
$SaleWarehouseData['goods_num'] = $v['goods_num'];
$SaleWarehouseData['more_num'] = $v['more_num'];
$SaleWarehouseData['less_num'] = $v['less_num'];
$SaleWarehouseData['purchase_price'] = $v['purch_price'];
if ($v['id']) {
//编辑规格
unset($v['purch_price']);
unset($v['third_goods_code']);
$update = $SkuGoodsModel->updateOrder(array('id' => $v['id']), $v);
if ($update) $updateTime++;
$SaleWarehouseData['sku_id'] = $v['id'];
$this->addSaleGoods($SaleWarehouseData, 2); //商品供给库修改
$sku_id_str[] = $v['id'];
} else {
//新增规格
unset($v['id']);
$add = $SkuGoodsModel->addOrder($v); //添加规格
if ($add) {
$sku_id_str[] = $add;
}
$SaleWarehouseData['sku_id'] = $add;
$SaleWarehouseData['add_time'] = $v['add_time'];
$SaleWarehouseData['third_goods_code'] = $v['third_goods_code'];
$this->addSaleGoods($SaleWarehouseData, 1);
unset($SaleWarehouseData['add_time']);
if (!empty($oldGoods)) $updateTime++;
}
}
//修改旧规格(规格重置)、或被删除的规格的状态
if (!empty($sku_id_str)) {
$map = array(
'goods_id' => $goods_id,
'sku_id' => array('not in', $sku_id_str),
);
$SaleMGoodsModel = new SaleMGoodsModel();
$SaleMGoodsModel->updateData($map, array('status' => 2));
$WarehousingGoodsModel = new WarehousingGoodsModel();
$WarehousingGoodsModel->updateData($map, array('surplus_num' => 0));
$map = array(
'mgoods_id' => $goods_id,
'id' => array('not in', $sku_id_str),
'state' => 0,
);
$update = $SkuGoodsModel->updateOrder($map, array('state' => 1));
if ($update) $updateTime++;
}
}
//处理轮播图
$bannerList = $data['bannerList'];
$banner_id_str = [];
$BannerModel = new MGoodsBannerModel();
if (!empty($bannerList)) {
foreach ($bannerList as $kB => $vB) {
$addBanner = array(
'image_id' => $vB['image_id'],
'image' => $vB['image'],
);
if (empty($vB['id'])) {
$addBanner['merchantid'] = $merchant_id;
$addBanner['mgoods_id'] = $goods_id;
$addBanner['addtime'] = time();
$add = $BannerModel->addOrder($addBanner); //添加轮播图
if (!empty($oldGoods)) $updateTime++;
$banner_id_str[] = $add;
} else {
$banner_id_str[] = $vB['id'];
}
}
}
$map = array(
'mgoods_id' => $goods_id,
);
if (!empty($banner_id_str)) {
$map['id'] = array('not in', $banner_id_str);
} else {
$map['id'] = array('not in', '0');
}
$del = $BannerModel->deleteOrder($map); //删除轮播图
if ($del) $updateTime++;
}
if ($updateTime > 0) {
//更新门店商品
$this->updateStoreGoodsSyncState($goods_id);
}
//操作日志记录
// 防止小助手操作重复添加日志
if ($param['operate_source'] != 1) {
$source = 0; //请求来源: 0后台系统 1小助手
$type = $user_type; //平台:1合伙人端 2代理商端 3商户端 4门店端 6收银员
$request_data = json_encode($data); //请求参数 json数据
if (!empty($oldGoods)) {
$desc = "商品档案-编辑";
} else {
$desc = "商品档案-新增";
}
action_log($source, $type, $request_data, $desc);
}
$res['goods_id'] = $goods_id;
return callBack(statusCode()['success'], '操作成功', $res);
}
/**
* 修改门店商品更新状态
* @param $goods_id
* @return mixed
*/
public function updateStoreGoodsSyncState($goods_id)
{
$GoodsModel = new RetailGoodsModel();
$res = $GoodsModel->updateOrder(['m_goods_id' => ['in', $goods_id]], ['sync_state' => 0]);
return $res;
}
/**
* 商户供给仓库商品信息新增与编辑
* @param $goods
* @param $type
* @return mixed
*/
public function addSaleGoods($goods, $type)
{
$SaleGoodsClass = new SaleGoodsOperation();
$result = $SaleGoodsClass->addSaleGoods([
'user_type' => 3,
'goods_info' => $goods,
'type' => $type
]);
return $result;
}
/**
* 验证门店商品是否可以进行编辑、修改规格状态
* @param $param
* ['goods_id']商品ID
* ['attribute']规格状态
* ['issellonline']商城出售
* @return mixed
*/
public function verifyEditGoods($param)
{
$goods_id = $param['goods_id'];
//1. 验证商品是否存在
$GoodsModel = new RetailMgoodsModel();
$oldGoods = $GoodsModel->getFind(array('id' => $goods_id, 'merchantid' => $this->merchant_id, 'status' => array('neq', 2)));
if (empty($oldGoods)) {
return callBack(statusCode()['error'], '商品不存在');
}
//2.判断商品规格状态是否有变动 有采购记录和入库记录的商品不得对规格进行开启关闭操作
// 注意:只含有初始化库存的商品可进行开启关闭规格操作
if ($oldGoods['attribute'] != $param['attribute']) {
$PurchaseGoodsModel = new PurchaseGoodsModel();
$WarehousingGoodsModel = new WarehousingGoodsModel();
$purchase_goods = $PurchaseGoodsModel->getCount(array('goods_id' => $oldGoods['id'], 'purchase_num' => array('gt', 0)));
$warehouse_goods = $WarehousingGoodsModel->getCount(array('goods_id' => $oldGoods['id'], 'warehouse_num' => array('gt', 0)));
$error_arr = [];
if ($purchase_goods > 0) {
$error_arr[] = '有' . $purchase_goods . '条采购记录';
}
if ($warehouse_goods > 0) {
$error_arr[] = '有' . $warehouse_goods . '入库记录';
}
if (!empty($error_arr)) {
return callBack(statusCode()['error'], '商品无法修改规格开关属性', $error_arr);
}
//3.删除初始化库存
$SaleMGoodsModel = new SaleMGoodsModel();
$success = $SaleMGoodsModel->deleteData(array('goods_id' => $oldGoods['id']));
if (!$success) {
return callBack(statusCode()['error'], '初始化库存删除失败,请稍后重试');
}
}
if ($oldGoods['serial_number_state'] != $param['serial_number_state']) {
return callBack(statusCode()['error'], '串号状态不能修改');
}
return callBack(statusCode()['success'], '可对商品进行正常编辑操作', $oldGoods);
}
/**
* 接收商品请求参数
* @param $param
* @return mixed
*/
protected function getPostGoodsData($param)
{
$data = $param['goodsInfo'];
$goods['id'] = $data['id'] ? $data['id'] : null;
$goods['supplier_id'] = $data['supplier_id'] ? $data['supplier_id'] : 0; //供货商
$goods['goods_name'] = $data['goods_name']; //商品名称
$goods['subheading'] = $data['subheading']; //副标题
$goods['goods_class_id'] = $data['goods_class_id']; //商品分类
$goods['goods_num'] = $data['goods_num'] ? $data['goods_num'] : 0; //商品库存
$goods['goods_num'] = $goods['id'] ? strval($goods['goods_num']) : floatval($goods['goods_num']);
if (empty($data['id'])) {
$goods['purch_price'] = $data['purch_price'] ? $data['purch_price'] : null; //商品进价
}
$goods['retail_price'] = $data['retail_price'] ? $data['retail_price'] : null; //店内零售价
$goods['online_price'] = $data['online_price'] ? $data['online_price'] : null; //商城零售价
$goods['shop_mem_status'] = $data['shop_mem_status']; //商城会员价开启状态
$goods['shop_mem_price'] = $data['shop_mem_price'] ? $data['shop_mem_price'] : null; //商城会员价
$goods['plus_price'] = $data['plus_price'] ? $data['plus_price'] : null; //plus会员价
$goods['plus_mem_status'] = $data['plus_mem_status']; //是否开启plus会员
$goods['store_mem_status'] = $data['store_mem_status']; //店内会员价开启状态
$goods['store_mem_price'] = $data['store_mem_price'] ? $data['store_mem_price'] : null; //店内会员价
$goods['company'] = $data['company'] ? $data['company'] : ''; //单位
$goods['weight_value'] = $data['weight_value'] ? $data['weight_value'] : null; //重量
$goods['specifications'] = $data['specifications']; //规格
$goods['goods_order'] = $data['goods_order'] ? $data['goods_order'] : 1; //商品排序
$goods['more_num'] = $data['more_num'] ? $data['more_num'] : null; //库存超量
$goods['less_num'] = $data['less_num'] ? $data['less_num'] : null; //库存预警
$goods['simple_spelling'] = $data['simple_spelling'] ? $data['simple_spelling'] : ''; //简拼
$goods['issellonline'] = $data['issellonline']; //是否在商城出售
$goods['retail_state'] = $data['retail_state']; //是否在店内出售
$goods['serial_number_state'] = $data['serial_number_state'] ? $data['serial_number_state'] : 0; //串号状态1开启 0关闭
$goods['vip_online_state'] = $data['vip_online_state']; //商城会员折扣
$goods['vip_retail_state'] = $data['vip_retail_state']; //门店会员折扣
$goods['can_exchange_weigh'] = $data['can_exchange_weigh']; //是否称重 1:不称重 2:称重
$goods['status'] = $data['status']; //商品状态 0上架 1下架 2删除
$goods['attribute'] = $data['attribute']; //是否开启规格
$goods['good_number'] = $data['good_number'] ? $data['good_number'] : ''; //商品货号
$goods['goods_code'] = $data['goods_code'] ? $data['goods_code'] : ''; //商品条码
if ($param['marketing_methods'] == 2 && $param['integral_arrive_cash'] == 1) {
//自定义营销
$goods['shop_mem_integral'] = $data['shop_mem_integral'] ? $data['shop_mem_integral'] : 0;
$goods['plus_mem_integral'] = $data['plus_mem_integral'] ? $data['plus_mem_integral'] : 0;
$goods['store_mem_integral'] = $data['store_mem_integral'] ? $data['store_mem_integral'] : 0;
}
$goods['goods_brand_id'] = $data['goods_brand_id'] ? $data['goods_brand_id'] : null; //商品品牌 //商品品牌id
$goods['goods_yieldly_id'] = $data['goods_yieldly_id'] ? $data['goods_yieldly_id'] : null; //商品产地
$goods['goods_image_id'] = $data['goods_image_id'] ? $data['goods_image_id'] : null; //商品封面图
$goods['details'] = htmlspecialchars_decode($data['details']); //商品详情
if (empty($data['id'])) {
$goods['addtime'] = time();
}
$goods['video_id'] = $data['video_id'] ? $data['video_id'] : null; //商品视频id
$goods['merchantid'] = $this->merchant_id; //商户id
$goods['third_goods_code'] = $goods['attribute'] == 1?($data['third_goods_code'] ? $data['third_goods_code'] : ''):''; //第三方平台的商品编码
return $goods;
}
/**
* 验证请求操作商品的参数是否正确
* @param $param
* [
* platform_type 商户平台类型 1默认系统 2微礼平台
* ]
* @return array
*/
protected function verifyGoodsData($param)
{
$goods = $param['goods'];
$verifyParam = array(
'supplier_id' => array('required' => false, 'type' => 'number',),
'goods_name' => array('required' => true, 'type' => 'string',),
'good_number' => array('required' => true, 'type' => 'string', 'maxLen' => 17),
'goods_code' => array('required' => false, 'type' => 'string', 'maxLen' => 17),
'goods_class_id' => array('required' => true, 'type' => 'number',),
'subheading' => array('required' => false, 'type' => 'string',),
'retail_price' => array('required' =>$goods['retail_state'] == 1? true : false, 'type' => 'money',),
'online_price' => array('required' => $goods['issellonline'] == 1 ? true : false, 'type' => 'money',),
'shop_mem_status' => array('required' => false, 'type' => 'string', 'in' => [1, 2]),
'shop_mem_price' => array('required' => $goods['shop_mem_status'] == 1 ? true : false, 'type' => 'money',),
'plus_mem_status' => array('required' => false, 'type' => 'string', 'in' => [1, 2]),
'plus_price' => array('required' => $goods['plus_mem_status'] == 1 ? true : false, 'type' => 'money',),
'store_mem_status' => array('required' => false, 'type' => 'string', 'in' => [1, 2]),
'store_mem_price' => array('required' => $goods['store_mem_status'] == 1 ? true : false, 'type' => 'money',),
'can_exchange_weigh' => array('required' => false, 'type' => 'string', 'in' => [1, 2]),
'company' => array('required' => $goods['can_exchange_weigh'] == 2 ? true : false, 'type' => 'string', 'in' => $goods['can_exchange_weigh'] == 1 ? null : array('kg', 'KG', '斤', '公斤', '市斤', '千克', 'g', 'G', '克'),),
'weight_value' => array('required' => false, 'type' => 'number', 'step' => 3, 'min' => 0.001),
'specifications' => array('required' => false, 'type' => 'string',),
'goods_order' => array('required' => false, 'type' => 'number',),
'more_num' => array('required' => false, 'type' => 'number', 'step' => $goods['can_exchange_weigh'] == 1 ? 0 : 3, 'min' => 0),
'less_num' => array('required' => false, 'type' => 'number', 'step' => $goods['can_exchange_weigh'] == 1 ? 0 : 3, 'min' => 0),
'issellonline' => array('required' => false, 'in' => [0, 1]),
'vip_online_state' => array('required' => false, 'type' => 'string', 'in' => [0, 1]),
'vip_retail_state' => array('required' => false, 'type' => 'string', 'in' => [0, 1]),
'status' => array('required' => false, 'type' => 'string', 'in' => [0, 1]),
'attribute' => array('required' => false, 'type' => 'string', 'in' => [1, 2]),
'shop_mem_integral' => array('required' => false, 'type' => 'number',),
'plus_mem_integral' => array('required' => false, 'type' => 'number',),
'store_mem_integral' => array('required' => false, 'type' => 'number',),
'goods_brand_id' => array('required' => false, 'type' => 'number',),
'goods_yieldly_id' => array('required' => false, 'type' => 'number',),
);
if (!$goods['id']) {
$verifyParam['goods_num'] = array('required' => false, 'type' => 'number', 'step' => $goods['can_exchange_weigh'] == 1 ? 0 : 3, 'min' => 0);
$verifyParam['purch_price'] = array('required' => $goods['goods_num'] > 0 ? true : false, 'type' => 'money',);
}
//第三方平台商品编码验证
if ($param['platform_type'] == 2 && empty($goods['id']) && $goods['attribute'] == 1) {
$verifyParam['third_goods_code'] = array('required' => true, 'type' => 'string');
}
$CustomValidate = new CustomValidate($this->goods_fields_name);
$result = $CustomValidate->validate($goods, $verifyParam);
return callBack(statusCode()[$result['error'] ? 'error' : 'success'], $result['message']);
}
/**
* 验证传输的规格是否正确,并返回处理过后可直接添加的数组
* @param $param
* [
* platform_type 商户平台类型 1默认系统 2微礼平台
* ]
* @return mixed
* @throws \think\Exception
*/
protected function verifyGoodsSku($param)
{
$platform_type = $param['platform_type'];
$merchant_id = $this->merchant_id;
$skuList = $param['skuList'];
$codeArr = $param['codeArr'];
$numberArr = $param['numberArr'];
if (empty($skuList) || !is_array($skuList)) {
return callBack(statusCode()['error'], '请设置商品多规格信息');
}
$sku_attr_length = count($skuList[0]['id']);
if ($sku_attr_length > 4) {
return callBack(statusCode()['error'], '最多只能添加四种规格');
}
$all_sku_list_id = []; //存储所有的规格ID,用来判断前端传输的数组是否正确
$skuArrData = []; //存储处理后的规格
$third_code_arr = []; // 第三方平台的商品编码
$SkuGoodsModel = new SkuMGoodsModel();
$GoodsModel = new RetailMgoodsModel();
if($platform_type == 2){
$LittleGoodsClass = new \LittleGift\Business\Goods();
}
foreach ($skuList as $key => $val) {
if (count($val['id']) != $sku_attr_length) {
return callBack(statusCode()['error'], '第' . ($key + 1) . '个规格与之前的规格不匹配');
}
$oldSku = false;
if (!empty($val['old_id'])) {
$skuOldMap = array(
'id' => $val['old_id'], 'mgoods_id' => $param['goods_id'], 'state' => 0
);
$oldSku = $SkuGoodsModel->getFind($skuOldMap);
if (empty($oldSku)) return callBack(statusCode()['error'], '第' . ($key + 1) . '个规格信息有误');
} else {
//第三方平台商品编码验证
if ($platform_type == 2) {
if (empty($val['third_goods_code']) || mb_strlen($val['third_goods_code'], 'UTF-8') > 255) {
return callBack(statusCode()['error'], '第' . ($key + 1) . '个规格的Q3 ERP平台商品编码必传且不能大于255位');
}
if (in_array($val['third_goods_code'], $third_code_arr)) {
return callBack(statusCode()['error'], '第' . ($key + 1) . '个规格Q3 ERP平台商品编码已存在');
}
$verifyResult = $LittleGoodsClass->verifyQ3Code([
'merchant_id'=>$merchant_id,
'third_goods_code'=>$val['third_goods_code']
]);
if($verifyResult['status'] != 1){
return callBack(statusCode()['error'], '第' . ($key + 1) . '个规格'.$verifyResult['message']);
}
$verifyCode = $LittleGoodsClass->GoodsVerify([
'merchant_id' => $merchant_id,
'code_arr' => [$val['third_goods_code']]
]);
if ($verifyCode['status'] == 0) {
return $verifyCode;
}
if (!empty($verifyCode['data']['arr_diff'])) {
return callBack(statusCode()['error'], $val['third_goods_code'] . 'Q3 ERP平台商品编码验证失败');
}
$third_code_arr[] = $val['third_goods_code'];
$temp['third_goods_code'] = $val['third_goods_code'];
}
}
if (!$val['sku_goods_number'] || strlen($val['sku_goods_number']) > 17) {
return callBack(statusCode()['error'], '第' . ($key + 1) . '个规格的货号不正确');
}
//判断规格货号是否存在历史判断的数组中
if (in_array($val['sku_goods_number'], $numberArr)) {
return callBack(statusCode()['error'], '第' . ($key + 1) . '个规格货号已存在');
}
if (empty($val['old_id']) || (!empty($val['old_id']) && $oldSku['sku_goods_number'] != $val['sku_goods_number'])) {
//判断规格货号是否存在于该商户的正常规格商品中
$sku_map = array(
'merchantid' => $merchant_id,
'sku_goods_number' => $val['sku_goods_number'],
'state' => 0,
);
$skuInfo = $SkuGoodsModel->getFind($sku_map);
if ($skuInfo) {
return callBack(statusCode()['error'], '第' . ($key + 1) . '个规格货号已存在');
}
}
//把规格货号存起来对下一个规格进行验证
$numberArr[] = $val['sku_goods_number'];
//判断规格货号是否存在于该商户的正常普通商品中
$map = array(
'merchantid' => $merchant_id,
'good_number' => $val['sku_goods_number'],
'status' => array('in', '0,1')
);
$goodsInfo = $GoodsModel->getFind($map);
if ($goodsInfo) {
return callBack(statusCode()['error'], '第' . ($key + 1) . '个规格货号已存在');
}
//判断条码
if (!empty($val['sku_code'])) {
if (strlen($val['sku_code']) > 17) {
return callBack(statusCode()['error'], '第' . ($key + 1) . '个规格条码不能大于18位');
}
if (in_array($val['sku_code'], $codeArr)) {
return callBack(statusCode()['error'], '第' . ($key + 1) . '个规格商品条码重复');
}
if (empty($val['old_id']) || (!empty($val['old_id']) && $oldSku['sku_code'] != $val['sku_code'])) {
$map = array(
'merchantid' => $merchant_id,
'sku_code' => $val['sku_code'],
'state' => 0
);
//判断规格条码是否存在于该门店的正常规格商品中
$old = $SkuGoodsModel->getFind($map);
if ($old) {
return callBack(statusCode()['error'], '第' . ($key + 1) . '个规格商品条码已存在');
}
}
$map = array(
'merchantid' => $merchant_id,
'goods_code' => $val['sku_code'],
'status' => array('in', '0,1')
);
$old = $GoodsModel->getFind($map);
if (!empty($old)) {
return callBack(statusCode()['error'], '第' . ($key + 1) . '个规格商品条码已存在');
}
$codeArr[] = $val['sku_code'];
}
if ($val['weight_value'] && !verifyNumber($val['weight_value'], 3, 0.001)) {
return callBack(statusCode()['error'], '第' . ($key + 1) . '个规格重量不正确');
}
if (empty($val['old_id'])) {
if ($val['goods_num'] > 0 && $param['serial_number_state'] == 1) {
return callBack(statusCode()['error'], '开启串号,第' . ($key + 1) . '个规格库存必须采购增加');
}
if ($val['goods_num'] && !verifyNumber($val['goods_num'])) {
return callBack(statusCode()['error'], '第' . ($key + 1) . '个规格库存不正确');
}
}
//判断进价
if ($val['goods_num'] > 0 || $val['purch_price']) {
if (!verifyPrice($val['purch_price'])) {
return callBack(statusCode()['error'], '第' . ($key + 1) . '个规格进价不正确');
}
}
//判断基本价格
if (($param['retail_state'] == 1 || $val['retail_price']) && !verifyPrice($val['retail_price'])) {
return callBack(statusCode()['error'], '第' . ($key + 1) . '个规格:店内零售价不正确');
}
if (($param['issellonline'] == 1 || $val['online_price']) && !verifyPrice($val['online_price'])) {
return callBack(statusCode()['error'], '第' . ($key + 1) . '个规格:商城零售价不正确');
}
if (($param['store_mem_status'] == 1 || $val['store_mem_price']) && !verifyPrice($val['store_mem_price'])) {
return callBack(statusCode()['error'], '第' . ($key + 1) . '个规格:店内会员价不正确');
}
if (($param['shop_mem_status'] == 1 || $val['shop_mem_price']) && !verifyPrice($val['shop_mem_price'])) {
return callBack(statusCode()['error'], '第' . ($key + 1) . '个规格:商城会员价不正确');
}
if (($param['plus_mem_status'] == 1 || $val['plus_price']) && !verifyPrice($val['plus_price'])) {
return callBack(statusCode()['error'], '第' . ($key + 1) . '个规格:PLUS会员价不正确');
}
$temp['merchantid'] = $merchant_id;
$sku_id_list = [];
$sku_name = [];
for ($i = 0; $i < $sku_attr_length; $i++) {
if (!empty($val['id'][$i])) {
$sku_id_list[] = $val['id'][$i];
$sku_name[] = $val['name'][$i];
} else {
return callBack(statusCode()['error'], '第' . ($key + 1) . '条规格数据的规格信息有误');
}
}
$all_sku_list_id = array_merge($all_sku_list_id, $sku_id_list);
$temp['name'] = implode(',', $sku_name);
$temp['sku_id_list'] = implode(',', $sku_id_list);
if (empty($val['old_id'])) {
$temp['purch_price'] = $val['purch_price'] ? $val['purch_price'] : null;
}
if (!empty($val['retail_price'])) {
$temp['retail_price'] = $val['retail_price'];
}
if (!empty($val['online_price'])) {
$temp['online_price'] = $val['online_price'];
}
if (!empty($val['plus_price'])) {
$temp['plus_price'] = $val['plus_price']; //plus会员价
}
$temp['goods_num'] = $val['goods_num'] ? $val['goods_num'] : 0;
$temp['weight_value'] = $val['weight_value'] ? $val['weight_value'] : null;
$temp['shop_mem_price'] = $val['shop_mem_price'] ? $val['shop_mem_price'] : null;
$temp['store_mem_price'] = $val['store_mem_price'] ? $val['store_mem_price'] : null;
$temp['addtime'] = time();
$temp['status'] = $val['status'] == 1 ? 1 : 0;
$temp['state'] = 0;
$temp['sku_goods_number'] = $val['sku_goods_number'];
$temp['sku_code'] = $val['sku_code'];
$temp['goods_img_id'] = $val['goods_img_id'];
$temp['id'] = $val['old_id'];
$temp['sku_num'] = 1;
$temp['more_num'] = $val['more_num'] ? $val['more_num'] : null;
$temp['less_num'] = $val['less_num'] ? $val['less_num'] : null;
if ($param['marketing_methods'] == 2 && $param['integral_arrive_cash'] == 1) {
//自定义积分营销
$temp['shop_mem_integral'] = $val['shop_mem_integral'] ? $val['shop_mem_integral'] : null; //店内会员价+积分
$temp['store_mem_integral'] = $val['store_mem_integral'] ? $val['store_mem_integral'] : null; //商城会员价+积分
$temp['plus_mem_integral'] = $val['plus_mem_integral'] ? $val['plus_mem_integral'] : null; //PLUS会员价+积分
}
$skuArrData[] = $temp;
unset($temp);
}
//第三方编码验证
if ($platform_type == 2 && !empty($third_code_arr)) {
$LittleGoodsClass = new \LittleGift\Business\Goods();
$verifyCode = $LittleGoodsClass->GoodsVerify([
'merchant_id' => $merchant_id,
'code_arr' => $third_code_arr
]);
if ($verifyCode['status'] == 0) {
return $verifyCode;
}
if (!empty($verifyCode['data']['arr_diff'])) {
return callBack(statusCode()['error'], $verifyCode['data']['arr_diff'][0], 'Q3 ERP平台商品编码验证失败');
}
}
//去重
$all_sku_list_id = array_unique($all_sku_list_id);
//获取属性数量进行判断,是否与规格值属性一致
$SkuListModel = new RetailSkuListModel();
$attr_count = $SkuListModel->getAttrCount($merchant_id, $all_sku_list_id);
if ($attr_count != $sku_attr_length) {
return callBack(statusCode()['error'], '您添加的规格信息有误');
}
return callBack(statusCode()['success'], '规格验证通过', $skuArrData);
}
/**
* 批量修改商品的某个字段值
* @param $param
* $param['merchant_id'] 商户ID
* $param['user_type'] 用户类型 3商户 4门店 6收银员
* $param['operate_id'] 操作用户的ID
* $param['key'] 操作的字段
* $param['value'] 操作字段的值
* $param['goodsIds'] 操作的商品
* @return mixed
*/
public function batchOperateGoods($param)
{
//仅支持修改的字段名列表
$keyArr = array(
'status',
'retail_state',
'online_state',
'vip_retail_state',
'vip_online_state',
'goods_class_id',
'guide_royalty_state',
);
if (
!$param['merchant_id'] || !$param['operate_id'] || !$param['user_type']
|| !in_array($param['user_type'], array(3, 4, 6))
|| empty($param['goodsIds']) || !isset($param['value'])
|| !$param['key'] || !in_array($param['key'], $keyArr)
) {
return callBack(statusCode()['error'], '请求参数有误,详情请见data', array(
'store_id' => $param['merchant_id'],
'user_type' => $param['user_type'],
'operate_id' => $param['operate_id'],
'key' => $param['key'],
'value' => $param['value'],
'goodsIds' => $param['goodsIds'],
));
}
switch ($param['key']) {
case 'online_state':
$param['key'] = 'issellonline';
case 'status':
case 'retail_state':
case 'vip_retail_state':
case 'vip_online_state':
$stateValue = [0, 1];
if (!in_array($param['value'], $stateValue)) {
return callBack(statusCode()['error'], '参数值有误');
}
break;
case 'goods_class_id':
if (!verifyNumber($param['value'])) {
return callBack(statusCode()['error'], '商品分类为必选');
}
break;
default:
}
$MGoodsModel = new RetailMgoodsModel();
//修改的商品的条件
$map = array(
'merchantid' => $param['merchant_id'], //商户ID
'status' => array('neq', '2'), //商品状态不为删除
'id' => array('in', $param['goodsIds']), //修改的商品ID列表
);
//更新的字段信息
$save = array(
$param['key'] => is_array($param['value']) ? implode(',', $param['value']) : $param['value'],
);
$update = $MGoodsModel->updateOrder($map, $save);
if ($update) {
//更新库存状况表
//目前仅有商品分类、商品上下架状态
if (in_array($param['key'], ['goods_class_id', 'status'])) {
$SaleGoodsModel = new SaleMGoodsModel();
$map = [
'merchant_id' => $param['merchant_id'],
'goods_id' => array('in', $param['goodsIds']),
];
$SaleGoodsModel->updateData($map, [$param['key'] => $param['value']]);
}
//更新门店商品同步字段信息
$this->updateStoreGoodsSyncState($param['goodsIds']);
return callBack(statusCode()['success'], '保存成功');
} else {
return callBack(statusCode()['error'], '保存失败,请检查是否修改');
}
}
/**
* 获取商品列表
* @param $param
* [
* platform_type 商户平台类型 1默认系统 2微礼平台
* ]
* @return mixed
*/
public function getMerGoodsList($param)
{
$t1 = mSecTime();
$platform_type = $param['platform_type'] ? $param['platform_type'] : 1;
$merchant_id = $param['merchant_id'];
$page = $param['page'];
$limit = $param['limit'];
$keyword = $param['keyword'];
$keyword_type = $param['keyword_type'];
$can_exchange_weigh = $param['can_exchange_weigh'];
$condition_name = $param['condition_name']; //排序规则关键词
$order_type = $param['order_type']; //排序规则
//按照商品类别搜索
$person1 = $param['person1'];
$person2 = $param['person2'];
$person3 = $param['person3'];
$issellonline = $param['issellonline']; //商城出售状态
$attribute_state = $param['attribute_state']; //规格 1无规格 2规格
$goods_class_ids = getGoodsClass($person1, $person2, $person3); //处理分类
$status = $param['status'];
//按条件搜索
if ($issellonline !== '' && $issellonline !== null && in_array($issellonline, ['0', '1'])) {
$where['issellonline'] = $issellonline;
}
if (in_array($attribute_state, ['1', '2'])) {
$where['attribute'] = $attribute_state;
}
if (!empty($keyword)) {
$keyword = trim($keyword);
if (isset($keyword_type)) {
switch ($keyword_type) {
case '1':
$where['good_number|sku_goods_number'] = array('like', '%' . $keyword . '%');
break;
case '2':
$where['goods_code|sku_code'] = array('like', '%' . $keyword . '%');
break;
case '3':
$where['goods_name'] = array('like', '%' . $keyword . '%');
break;
}
} else {
$where['good_number|goods_code|goods_name|sku_goods_number|sku_code'] = array('like', '%' . $keyword . '%');
}
}
if ($can_exchange_weigh == 1 || $can_exchange_weigh == 2) {
$where['can_exchange_weigh'] = $can_exchange_weigh;
}
//处理排序规则关键词
switch ($condition_name) {
case '2': //货号
$order = "good_number";
break;
case '4': //名称
$order = "goods_name";
break;
default:
$order = "id";
}
$order = $order_type == 2 ? ($order . ' desc') : ($order . ' asc'); //2降序 1升序
if ($goods_class_ids) {
$where['goods_class_id'] = $goods_class_ids;
}
$recovery = $param['recovery_type']; //2回收站
if (!empty($recovery)) {
$where['status'] = 2;
} else {
if (in_array($status, ['0', '1'])) {
$where['status'] = $status;
} else {
$where['status'] = array('in', array(0, 1));
}
}
$where['merchantid'] = $merchant_id;
//商品列表
$fields = $param['fields'] ? $param['fields'] : array(
'id',
'goods_name',
'subheading',
'goods_class_id',
'good_number',
'retail_price',
'plus_price',
'online_price',
'vip_online_state',
'vip_retail_state',
'add_time',
'status',
'merchantid',
'goods_code',
'issellonline',
'can_exchange_weigh',
'attribute',
'goods_image_id',
'shop_mem_price',
'store_mem_price',
'purch_price',
'retail_state',
'third_goods_code'
);
$SkuMGoodsViewModel = new SkuMGoodsViewModel();
$goods = $SkuMGoodsViewModel->getGroupSelect($where, 'goods.id', $fields, $order, $page . ',' . $limit);
$goods_count = $param['need_count'] && $goods ? ($SkuMGoodsViewModel->getGroupCount($where, 'goods.id')) : 0;
$need_img = $param['need_img'] ? true : false;
$need_goods_num = $param['need_goods_num'] ? true : false;
$GoodsClassModel = new RetailGoodsClassModel();
$ImageGalleryModel = new ImageGalleryModel();
$SaleMGoodsModel = new SaleMGoodsModel();
$classNameList = array();
foreach ($goods as &$value) {
//查询出分类名称
if (isset($value['goods_class_id'])) {
if (!empty($classNameList[$value['goods_class_id']])) {
$value['cate_name'] = $classNameList[$value['goods_class_id']];
} else {
$value['cate_name'] = $GoodsClassModel->getClassNamePath($value['goods_class_id']);
$classNameList[$value['goods_class_id']] = $value['cate_name'];
}
}
if (isset($value['purch_price'])) $value['purch_price'] = strval(floatval($value['purch_price']));
if (isset($value['store_mem_price'])) $value['store_mem_price'] = strval(floatval($value['store_mem_price']));
if (isset($value['plus_price'])) $value['plus_price'] = strval(floatval($value['plus_price']));
if (isset($value['online_price'])) $value['online_price'] = strval(floatval($value['online_price']));
if (isset($value['shop_mem_price'])) $value['shop_mem_price'] = strval(floatval($value['shop_mem_price']));
if (isset($value['integral'])) $value['integral'] = strval(floatval($value['integral']));
if (isset($value['guide_royalty_price'])) $value['guide_royalty_price'] = strval(floatval($value['guide_royalty_price']));
if (isset($value['guide_royalty_online_price'])) $value['guide_royalty_online_price'] = strval(floatval($value['guide_royalty_online_price']));
if (isset($value['more_num'])) $value['more_num'] = strval(floatval($value['more_num']));
if (isset($value['less_num'])) $value['less_num'] = strval(floatval($value['less_num']));
if (isset($value['sell_num'])) $value['sell_num'] = strval(floatval($value['sell_num']));
if (isset($value['production_date'])) $value['production_date'] = $value['production_date'] ? date('Y-m-d H:i:s', $value['production_date']) : '';
if (isset($value['shelf_life'])) $value['shelf_life'] = $value['shelf_life'] ? date('Y-m-d H:i:s', $value['shelf_life']) : '';
if (isset($value['weight_value'])) $value['weight_value'] = $value['weight_value'] ? strval(round($value['weight_value'], 3)) : '';
//判断出商品的状态以及是否允许修改折扣价
//商品状态
if ($value['attribute'] == 2) {
$value['purch_price'] = '规格成本价';
}
if (isset($value['status'])) {
if ($value['status'] == 0) {
$value['status_name'] = '正常';
} elseif ($value['status'] == 1) {
$value['status_name'] = '已下架';
} elseif ($value['status'] == 2) {
$value['status_name'] = '已删除';
}
}
//是否开启店内会员价
if (isset($value['store_mem_status'])) {
if ($value['store_mem_status'] == 1) {
$value['store_mem_name'] = "开启";
} else if ($value['store_mem_status'] == 2) {
$value['store_mem_name'] = "关闭";
}
}
//plus会员价开关
if (isset($value['plus_mem_status'])) {
if ($value['plus_mem_status'] == 1) {
$value['plus_mem_name'] = "开启";
} else {
$value['plus_mem_name'] = "关闭";
}
}
//商城出售状态
if (isset($value['issellonline'])) {
if ($value['issellonline'] == 1) {
$value['issellonline_name'] = "开启";
} else {
$value['issellonline_name'] = "关闭";
}
}
//是否开启商城会员价
if (isset($value['shop_mem_status'])) {
if ($value['shop_mem_status'] == 1) {
$value['shop_mem_name'] = "开启";
} else {
$value['shop_mem_name'] = "关闭";
}
}
//线下折扣
if (isset($value['vip_retail_state'])) {
if ($value['vip_retail_state'] == 1) {
$value['vip_retail_name'] = "开启";
} else {
$value['vip_retail_name'] = "关闭";
}
}
if (isset($value['vip_online_state'])) {
if ($value['vip_online_state'] == 1) {
$value['vip_online_name'] = '开启';
} else {
$value['vip_online_name'] = '关闭';
}
}
//是否称重
if (isset($value['can_exchange_weigh'])) {
if ($value['can_exchange_weigh'] == 2) {
$value['can_exchange_weigh_name'] = "是";
} else {
$value['can_exchange_weigh_name'] = "否";
}
}
if (isset($value['goods_code'])) $value['goods_code'] = $value['goods_code'] ? $value['goods_code'] : '';
if ($need_img) {
if ($value['goods_image_id']) {
$value['goods_img'] = $ImageGalleryModel->getImagePath($value['goods_image_id']);
} else {
$value['goods_img'] = '';
}
}
if (isset($value['good_number'])) $value['good_number'] = $value['good_number'] ? $value['good_number'] : '';
if (isset($value['subheading'])) $value['subheading'] = $value['subheading'] ? $value['subheading'] : ''; //副标题
if ($need_goods_num) {
if ($platform_type == 2) {
$value['goods_num'] = 0;
} else {
$value['goods_num'] = $SaleMGoodsModel->getSum(['goods_id' => $value['id']], 'goods_num');
}
}
}
$ret['status'] = 1;
$ret['code'] = 0;
$ret['msg'] = $goods ? '获取成功' : '暂无数据';
$ret['count'] = $goods_count;
$ret['data'] = $goods;
$t2 = mSecTime();
$ret['need_time'] = ($t2 - $t1) / 1000;
return $ret;
}
}