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

142 行
4.5 KiB
PHP
可执行文件

<?php
namespace Common\Business;
use Retail\Model\GoodsLabelLinkModel;
use Retail\Model\MGoodsLabelLinkModel;
//[1.7.90]
/**
* 标签类
* Class LabelInventory
* [
* 依据商品id查询标签集合 basisGoodsIdGetLabelList
* 批量绑定标签 addLabel
* ]
* @package Common\Business
*/
class LabelInventory
{
/**
* 依据商品id查询标签集合
* @param $param
* [
* user_type 3商户 4门店
* merchant_id
* store_id
* goods_id_arr 商品id集合 json字符串
* ]
* @return mixed
*/
public function basisGoodsIdGetLabelList($param)
{
$VerifyClass = new VerifyParam();
$verifyResult = $VerifyClass->identityVerify($param);
if ($verifyResult['status'] != 1) {
return $verifyResult;
}
if (empty($param['goods_id_arr'])) {
return callBack(statusCode()['error'], '请传入商品标识');
}
$goods_id_arr = json_decode($param['goods_id_arr'], true);
if (!is_array($goods_id_arr)) {
return callBack(statusCode()['error'], '商品标识格式有误');
}
$where = [
'merchant_id' => $param['merchant_id'],
'goods_id' => ['in', $goods_id_arr]
];
switch ($param['user_type']) {
case 3:
$LabelModel = new MGoodsLabelLinkModel();
break;
case 4:
$LabelModel = new GoodsLabelLinkModel();
$where['store_id'] = $param['store_id'];
break;
}
$list = $LabelModel->getSelect($where, 'label_id,goods_id');
$arr = [];
if (!empty($list)) {
foreach ($list as $val) {
$arr[$val['goods_id']][] = $val['label_id'];
}
}
return callBack(statusCode()['success'], '查询成功', $arr);
}
/**
* 批量绑定标签
* @param $param
* [
* user_type 3商户 4门店
* operate_id
* merchant_id
* store_id
* label_arr 商户或者门店商品与标签关联信息 json字符串['1'=>[2,3]]
* relation_arr 门店与商户或者其他门店的商品关联信息 json字符串['1'=>'门店商品id']
* ]
* @return mixed
*/
public function addLabel($param)
{
$VerifyClass = new VerifyParam();
$verifyResult = $VerifyClass->identityVerify($param);
if ($verifyResult['status'] != 1) {
return $verifyResult;
}
if (empty($param['label_arr']) || empty($param['relation_arr'])) {
return callBack(statusCode()['error'], '缺少参数');
}
$label_arr = json_decode($param['label_arr'], true);
$relation_arr = json_decode($param['relation_arr'], true);
if (!is_array($label_arr) || !is_array($relation_arr)) {
return callBack(statusCode()['error'], '参数格式有误');
}
switch ($param['user_type']) {
case 3:
//暂留
break;
case 4:
$LabelModel = new GoodsLabelLinkModel();
break;
}
$time = $_SERVER['REQUEST_TIME'];
$data = [
'merchant_id' => $param['merchant_id'],
'store_id' => $param['store_id'],
'operate_id' => $param['operate_id'],
'add_time' => $time
];
$add_arr = [];
foreach ($relation_arr as $key => $value) {
if (!empty($label_arr[$key])) {
$data['goods_id'] = $value;
$arr = $label_arr[$key]; //标签值
foreach ($arr as $val) {
$data['label_id'] = $val;
$add_arr[] = $data;
}
}
}
if (!empty($add_arr)) {
try {
M()->startTrans();
$LabelModel->deleteOrder([
'goods_id' => ['in', $relation_arr]
]);
$id = $LabelModel->addAll($add_arr);
if (!empty($id)) {
M()->commit();
return callBack(statusCode()['success'], '标签绑定成功');
} else {
M()->rollback();
return callBack(statusCode()['error'], '标签绑定失败');
}
} catch (\Exception $e) {
return callBack(statusCode()['error'], '标签绑定失败');
}
}
return callBack(statusCode()['error'], '标签绑定失败');
}
}