文件
mashangyoujiu/Application/Terminalapi/Controller/GoodsManageController.class.php

849 行
31 KiB
PHP
可执行文件

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

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

<?php
namespace Terminalapi\Controller;
use Common\Business\Brand;
use Common\Business\GoodsClassify;
use Common\Business\OperateGoods;
use Common\Business\OperateMGoods;
use Common\Business\SkuAttribute;
use Common\Business\Yieldly;
use Common\Model\DeliveryTemplateModel;
use Common\Model\GoodsLabelModel;
use Common\Model\RetailCashierModel;
use Common\Model\RetailGoodsModel;
use Common\Model\RetailMgoodsModel;
use Common\Model\SkuGoodsViewModel;
use Common\Model\UploadImageClassModel;
use Retail\Business\LabelInventory;
use Retail\Business\UnitLibrary;
use Think\Controller;
//[1.8.78]
/**
* 助手端-商品管理
* Class GoodsManageController
* [
* getGoodsList 获取商品列表
* batchOperateGoods 批量操作更改商品信息
* operateGoodsInfo 添加/编辑商品
* getGoodsInfo 获取商品详情
* getGoodsSkuAttr 获取商品规格信息
* delGoodsInfo 门店/商户删除商品档案
* addGoodsImage 添加商品图片/视频
* delGoodsImage 删除商品图片/视频
* addGoodsLabelLink 添加商品标签绑定
*
* getUsedSupplierList 门店获取用来使用的供货商列表
* getSkuAttr 新增、编辑商品处获取规格供选择
* getEditMGoodsBaseSet 获取商户商品积分限制设置
* getSelectBrand 获取品牌库下拉选择
* getGoodsLabelList 获取商品标签供选择
* getGoodsYieldlyList 获取商品产地供选择
* getGoodsClass 获取商户分类
* getStoreFreightTem 获取发货模板
* getUnitSelect 获取单位列表-筛选
* ]
* @package CashierApi\Controller
* @author GuYunQinFeng
*/
class GoodsManageController extends Controller
{
/**
* 商品管理-获取商品列表
* 2020年12月14日15:31:18
* @param page 页码
* @param limit 页长
* @param managerType 类型 3商户 4门店
* @param user_type 登录角色类型 1商户 2店长 3收银员
*/
public function getGoodsList()
{
$managerType = I('post.managerType');
if (!$managerType || !in_array($managerType, [3, 4])) {
$this->ajaxReturn(['status' => 0, 'msg' => '缺少必要参数']);
}
$this->userTypeVerify(I('post.user_type'), I('post.operator_id'), 5);
$param = [
'platform_type' => I('post.platform_type') ? I('post.platform_type') : 1,
'page' => I('post.page') ? I('post.page') : 1,
'limit' => I('post.limit') ? I('post.limit') : 10,
// 按照商品类别搜索
'person1' => I('post.person1'),
'person2' => I('post.person2'),
'person3' => I('post.person3'),
'keyword' => I('post.keyword'), //搜索关键词
'need_img' => I('post.need_img') ? I('post.need_img') : true, //是否需要图片 true false
'need_goods_num' => I('post.need_goods_num') ? I('post.need_goods_num') : true, //是否需要库存
'need_count' => I('post.need_count') ? I('post.need_count') : false, //是否需要总数量
'keyword_type' => I('post.keyword_type'), //关键词搜索类型 1货号 2条码 3名称
'order_type' => I("post.order_type"), //排序规则
'condition_name' => I("post.condition_name"), //排序规则关键词
'status' => I("post.status"), //状态
// 'recovery_type' => I('post.recovery_type'), //2回收站
'attribute_state' => I('post.attribute_state'), //规格 1无规格 2规格
];
if ($managerType == 3) {
$param['merchant_id'] = I('post.merchant_id');
$param['can_exchange_weigh'] = I('post.pricing_method'); // 该商品是否称重计价 1:不称重 2:称重
$param['issellonline'] = I('post.online_state'); // 商城出售状态
$OperateMGoods = new OperateMGoods();
$result = $OperateMGoods->getMerGoodsList($param);
} else {
$global_store_jurisdiction = M('retail_store_jurisdiction')->field('showpurch_price')->where(['storeid' => I('post.store_id')])->find();
$param['store_id'] = I('post.store_id');
$param['showpurch_price'] = $global_store_jurisdiction['showpurch_price']; //进价查看权限
$param['identity'] = 2; //用户身份 1商户2门店
$param['online_state'] = I('post.online_state'); // 是否在商城中出售:0,不在,1,在商城出售。
$param['pricing_method'] = I('post.pricing_method'); // 该商品是否称重计价 1:不称重 2:称重
$param['status'] = I('post.status');
$param['advance_sale_status'] = I('post.advance_sale_status');
$SkuGoodsViewModel = new SkuGoodsViewModel();
$result = $SkuGoodsViewModel->getGoodsList($param);
}
$this->ajaxReturn($result);
}
/**
* 批量操作
* 2020年12月18日14:54:26
* @param goodsIds 商品id数组
* @param managerType 类型 3商户 4门店
* @param key 操作键名
* @param value 操作键值
* @param user_type 登录角色类型 1商户 2店长 3收银员
*/
public function batchOperateGoods()
{
$key = I('post.key');
$value = json_decode(I('post.value'), true);
$goodsIds = json_decode(I('post.goodsIds'), true);
$type = I('post.managerType');
$operate_id = I('post.operator_id');
if (!in_array($type, [3, 4]) || empty($goodsIds) || !$key || (!isset($value) & $value === '')) {
$this->ajaxReturn(callBack(statusCode()['error'], "缺少重要参数"));
}
$this->userTypeVerify(I('post.user_type'), I('post.operator_id'), 4);
$param = [
'merchant_id' => I('post.merchant_id'),
'user_type' => $type,
'operate_id' => $operate_id,
'key' => $key,
'value' => $value,
'goodsIds' => $goodsIds,
'delivery_template_id' => I('post.delivery_template_id'),
];
if ($type == 3) {
$OperateMGoods = new OperateMGoods();
$result = $OperateMGoods->batchOperateGoods($param);
} else {
$OperateGoods = new OperateGoods();
$param['store_id'] = I('post.store_id');
$result = $OperateGoods->batchOperateGoods($param);
}
if ($result['status'] == 1) {
$sysParam = [
'postInfo' => I('post.'),
'operate_id' => $operate_id,
];
$desc = $this->keyChangeDesc($param['key']);
$this->addSysLog($sysParam, $type, $desc);
}
$this->ajaxReturn($result);
}
/**
* 添加/编辑商品
* 2020年12月18日16:39:39
* @param managerType 类型 3商户 4门店
* @param user_type 登录角色类型 1商户 2店长 3收银员
* @param operate_id 操作人员id
*/
public function operateGoodsInfo()
{
$managerType = I('post.managerType');
if (!$managerType || !in_array($managerType, [3, 4])) {
$this->ajaxReturn(callBack(statusCode()['error'], "缺少必要参数"));
}
$param = [
'merchant_id' => I('post.merchant_id'),
'platform_type' => I('post.platform_type'),
'goodsInfo' => I('post.'),
'operate_source' => 1,
];
// 公共参数json处理
$param = $this->paramChange($param, 5);
if (!$param['goodsInfo']['id']) {
// 判断添加权限
$this->userTypeVerify(I('post.user_type'), I('post.operator_id'), 1);
} else {
// 判断编辑权限
$this->userTypeVerify(I('post.user_type'), I('post.operator_id'), 2);
}
switch ($managerType) {
case 3:
// 商户
$OperateGoodsApi = new OperateMGoods(I('post.merchant_id'));
$param['user_type'] = 3;
// 商户参数处理
$param = $this->paramChange($param, 3);
$editGoods = $OperateGoodsApi->editMerchantGoods($param);
break;
case 4:
$OperateGoodsApi = new OperateGoods();
// 门店
$param['user_type'] = 4;
$param['store_id'] = I('post.store_id');
$param['operate_id'] = I('post.operator_id');
$editGoods = $OperateGoodsApi->editStoreGoods($param);
break;
}
if ($editGoods['status'] == 1) {
$sysParam = [
'postInfo' => I('post.'),
'operate_id' => I('post.operator_id'),
];
$msg = $param['goodsInfo']['id'] ? '设置-修改商品' : '设置-添加商品';
$this->addSysLog($sysParam, $managerType, $msg);
}
$this->ajaxReturn($editGoods);
}
/**
* 获取商品详情
* 2021年1月27日10:53:02
* @param managerType 类型 3商户 4门店
* @param merchant_id 商户id
* @param goods_id 商品id
* @param store_id 门店id
*/
public function getGoodsInfo()
{
$managerType = I('post.managerType');
$param['merchant_id'] = I('post.merchant_id');
$param['goods_id'] = I('post.goods_id');
if (!$managerType) {
$this->ajaxReturn(['status' => 0, 'msg' => '缺少必要参数']);
}
switch ($managerType) {
case 3:
$OperateGoodsApi = new OperateMGoods(I('post.merchant_id'));
$result = $OperateGoodsApi->getMGoodsDetails($param);
$result = $this->paramChange($result, 4);
break;
case 4:
$OperateGoodsApi = new OperateGoods();
$param['store_id'] = I('post.store_id');
$result = $OperateGoodsApi->getGoodsDetails($param);
break;
}
$this->ajaxReturn($result);
}
/**
* 获取商品规格信息
* 2021年1月27日10:57:58
* @param managerType 类型 3商户 4门店
* @param goods_id 商品id
* @param merchant_id 商户id
* @param store_id 门店id
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function getGoodsSkuAttr()
{
$managerType = I('post.managerType');
$goods_id = I('post.goods_id');
$SkuAttribute = new SkuAttribute();
$param = [
'merchant_id' => I('post.merchant_id'),
'goods_id' => $goods_id,
];
if (!$goods_id || !$managerType || !$param['merchant_id']) {
$this->ajaxReturn(['status' => 0, 'msg' => '缺少必要参数']);
}
switch ($managerType) {
case 3:
$result = $SkuAttribute->getMerGoodsSkuInfo($param);
break;
case 4:
$param['store_id'] = I('post.store_id');
if (!$param['store_id']) {
$this->ajaxReturn(['status' => 0, 'msg' => '缺少门店id']);
}
$result = $SkuAttribute->getStoreGoodsSkuInfo($param);
break;
}
$this->ajaxReturn($result);
}
/**
* 门店/商户删除商品档案
* 2020年12月19日17:21:10
* @param ids 商品id数组
* @param managerType 类型 3商户 4门店
* @param user_type 登录角色类型 1商户 2店长 3收银员
*/
public function delGoodsInfo()
{
$ids = json_decode(I('post.ids'), true);
$managerType = I('post.managerType');
if (empty($ids) || !$managerType) {
$this->ajaxReturn(['status' => 0, 'msg' => '缺少必要参数']);
}
$this->userTypeVerify(I('post.user_type'), I('post.operator_id'), 3);
switch ($managerType) {
case 3:
// 商户
$result = $this->delMgoodsOperate($ids);
break;
case 4:
// 门店
$result = $this->delGoodsOperate($ids);
break;
}
if ($result['status'] == 1) {
$sysParam = [
'postInfo' => I('post.'),
'operate_id' => I('post.operator_id'),
];
$this->addSysLog($sysParam, $managerType, '设置-删除商品');
}
$this->ajaxReturn($result);
}
/**
* 门店获取用来使用的供货商列表
*/
public function getUsedSupplierList()
{
$SupplierApi = new \Common\User\Supplier();
$data = $SupplierApi->getStoreUsedSupplierList(I('post.store_id'));
$this->ajaxReturn([
'status' => 1,
'msg' => $data ? '获取成功' : '暂无数据',
'data' => $data ? $data : [],
]);
}
/**
* 新增、编辑商品处获取规格供选择
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function getSkuAttr()
{
$SkuAttribute = new SkuAttribute();
$this->ajaxReturn($SkuAttribute->getSkuAttr(I('post.merchant_id')));
}
/**
* 获取商户商品积分限制设置
*/
public function getEditMGoodsBaseSet()
{
$user_type = I('post.user_type');
switch ($user_type) {
case '1':
//商户
$OperateMGoodsApi = new OperateMGoods(I('post.merchant_id'));
$config = $OperateMGoodsApi->getEditGoodsConfig();
break;
case '2':
case '3':
//门店 收银员
$OperateGoodsApi = new OperateGoods();
$config = $OperateGoodsApi->getEditGoodsConfig([
'user_type' => 4,
'merchant_id' => I('post.merchant_id'),
'store_id' => I('post.store_id'),
]);
//门店
break;
}
$this->ajaxReturn([
'status' => 1,
'msg' => '获取成功',
'data' => $config,
]);
}
/**
* 获取品牌库下拉选择
* @param name 品牌库名字
*/
public function getSelectBrand()
{
$Brand = new Brand();
$this->ajaxReturn($Brand->getSelectBrand([
'merchant_id' => I('post.merchant_id'),
'name' => I('post.name'),
]));
}
/**
* 获取商品标签供选择
*/
public function getGoodsLabelList()
{
$LabelModel = new GoodsLabelModel();
$map = array(
'storeid' => I('post.store_id'),
);
$data = $LabelModel->getSelect($map, 'id,label_name as name');
$this->ajaxReturn(callBack(statusCode()['success'], $data ? '获取成功' : '暂无标签', [
'list' => $data ? $data : [],
]));
}
/**
* 获取商品产地供选择
*/
public function getGoodsYieldlyList()
{
$YieldlyApi = new Yieldly();
$data = $YieldlyApi->getUsedGoodsYieldlyList(I('post.merchant_id'));
$this->ajaxReturn([
'status' => 1,
'msg' => $data ? '获取成功' : '暂无标签',
'data' => $data ? $data : [],
]);
}
/**
* 获取商户分类
*/
public function getGoodsClass()
{
$ClassApi = new GoodsClassify();
$param = [
'pid' => I('post.pid'),
'merchant_id' => I('post.merchant_id'),
];
$data = $ClassApi->getAbsolutelyGoodsClass($param);
$this->ajaxReturn([
'status' => 1,
'msg' => $data ? '获取成功' : '暂无分类',
'data' => $data ? $data : [],
]);
}
/**
* 获取发货模板
*/
public function getStoreFreightTem()
{
$DeliveryTemplateModel = new DeliveryTemplateModel();
$data = $DeliveryTemplateModel->getStoreFreightTem(I('post.store_id'));
$this->ajaxReturn([
'status' => 1,
'msg' => $data ? '获取成功' : '暂无数据',
'data' => $data ? $data : [],
]);
}
/**
* 获取单位列表-筛选
* @param name
* @param merchant_id 商户id
* @param store_id 门店id
* @param managerType 3商户 4门店
*/
public function getUnitSelect()
{
$UnitLibrary = new UnitLibrary();
$result = $UnitLibrary->getUnitSelect([
'merchant_id' => I('post.merchant_id'),
'store_id' => I('post.store_id'),
'name' => I('post.name'),
'type' => I('post.managerType') == 3 ? 1 : 2,
]);
$this->ajaxReturn($result);
}
/**
* 添加商品图片/视频
* @param fileType 文件类型 1图片 2视频
* @param user_type 登录类型 1商户 2门店 3收银员
* @param operate_id 操作人员id
*/
public function addGoodsImage()
{
if (!$_FILES) {
$this->ajaxReturn(['status' => 0, 'msg' => '未上传文件']);
}
$fileType = I('post.fileType');
if (!in_array($fileType, ['1', '2'])) {
$this->ajaxReturn(['status' => 0, 'msg' => '请选择文件类型']);
}
$user_type = I('post.user_type');
switch ($user_type) {
case 1:
// 商户
$user_real_type = 3;
break;
case 2:
// 门店
$user_real_type = 4;
break;
case 3:
// 收银员
$user_real_type = 5;
break;
}
if (!$user_real_type) $this->ajaxReturn(['status' => 0, 'msg' => '缺少必要参数']);
$item = [
'add_time' => time(),
'user_type' => $user_real_type,
'user_id' => I('post.operator_id'),
'type' => $fileType == 2 ? 2 : 1,
'limit_size' => $fileType == 1 ? 1048576 : 10485760,//1M = 1024*1024 = 1048576
'merchant_id' => I('post.merchant_id'),
];
if (in_array($user_real_type, [4, 5])) {
$item['from_type_id'] = 28; // 门店商品图片
$item['store_id'] = I('post.store_id');
} else {
$item['from_type_id'] = 19; // 商户商品图片
}
$UploadImageClassModel = new UploadImageClassModel();
$directory = $UploadImageClassModel->getFindField(['id' => $item['from_type_id']], 'directory');
$item['localUrl'] = $directory;
$uploads = uploadFiles($item);
if (!empty($uploads['file'])) {
$result = ['status' => 1, 'msg' => '上传成功', 'image_id' => $uploads['file']['id'], 'access_path' => $uploads['file']['access_path']];
} else {
$result = ['status' => 0, 'msg' => $uploads['msg']];
}
$this->ajaxReturn($result);
}
/**
* 删除商品图片/视频
* @param id 图片/视频id
*/
public function delGoodsImage()
{
$id = I('post.id');
if (!$id) {
$this->ajaxReturn(['status' => 0, 'msg' => '缺少必要参数']);
}
$ImageGalleryModel = new \Common\Model\ImageGalleryModel();
$file = $ImageGalleryModel->getFind(['id' => $id]);
if (empty($file)) {
$this->ajaxReturn(['status' => 0, 'msg' => '图片不存在']);
}
$result = deleteUploadFile([$file], '');
$this->ajaxReturn($result);
}
/**
* 添加商品标签绑定
* @param label_ids 标签ID数组以逗号拼接
* @param goods_id 商品id
* @param merchant_id 商户id
* @param store_id 门店id
* @param operator_id 操作人员id
* @param user_type 3商户 4门店
*/
public function addGoodsLabelLink()
{
$param = I('post.');
$param['goods_id'] = I('post.goods_id');
$param['label_ids'] = I('post.label_ids');
$param['user_type'] = I('post.user_type');
$param['merchant_id'] = I('post.merchant_id');
$param['store_id'] = I('post.store_id');
$param['operate_id'] = I('post.operate_id');
$LabelInventory = new LabelInventory();
$this->ajaxReturn($LabelInventory->addGoodsLabelLink($param));
}
/* ---------------------------------------------私用函数处理--------------------------------------------------- */
/**
* @param param 参数
* @param type 类型
* [
* 3商户 => 门店
* 4门店 => 商户
* 5公共
* ]
*/
private function paramChange(&$param, $type = 3)
{
switch ($type) {
case 3:
$param['goodsInfo']['issellonline'] = $param['goodsInfo']['online_state']; //是否在商城中出售
$param['goodsInfo']['can_exchange_weigh'] = $param['goodsInfo']['pricing_method']; //是否称重
$param['goodsInfo']['good_number'] = $param['goodsInfo']['goods_number']; //商品货号
$param['goodsInfo']['purch_price'] = $param['goodsInfo']['purchase_price']; //商品进价
$param['goodsInfo']['attribute'] = $param['goodsInfo']['attribute_state']; //是否开启sku
$param['goodsInfo']['goods_image_id'] = $param['goodsInfo']['goods_img_id']; //封面图
unset($param['goodsInfo']['online_state'],
$param['goodsInfo']['pricing_method'],
$param['goodsInfo']['goods_number'],
$param['goodsInfo']['purchase_price'],
$param['goodsInfo']['attribute_state'],
$param['goodsInfo']['goods_img_id']);
break;
case 4:
$param['data']['goods']['online_state'] = $param['data']['goods']['issellonline']; //是否在商城中出售
$param['data']['goods']['pricing_method'] = $param['data']['goods']['can_exchange_weigh']; //是否称重
$param['data']['goods']['goods_number'] = $param['data']['goods']['good_number']; //商品货号
$param['data']['goods']['purchase_price'] = $param['data']['goods']['purch_price']; //商品进价
$param['data']['goods']['attribute_state'] = $param['data']['goods']['attribute']; //是否开启sku
$param['data']['goods']['goods_img_id'] = $param['data']['goods']['goods_image_id']; //封面图
unset($param['data']['goods']['issellonline'],
$param['data']['goods']['can_exchange_weigh'],
$param['data']['goods']['good_number'],
$param['data']['goods']['purch_price'],
$param['data']['goods']['attribute'],
$param['data']['goods']['goods_image_id']);
break;
case 5:
$param['goodsInfo']['delivery_type'] = json_decode($param['goodsInfo']['delivery_type'], true); //配送方式
$param['goodsInfo']['bannerList'] = json_decode($param['goodsInfo']['bannerList'], true); //轮播图
break;
}
return $param;
}
/**
* 日志描述转化
* @param key 操作参数
*/
private function keyChangeDesc($key)
{
switch ($key) {
case 'status':
$desc = '设置-商品状态设置';
break;
case 'retail_state':
$desc = '设置-商品店内出售设置';
break;
case 'online_state':
$desc = '设置-商品商城出售设置';
break;
case 'vip_retail_state':
$desc = '设置-线下会员打折设置';
break;
case 'vip_online_state':
$desc = '设置-会员打折设置';
break;
case 'goods_class_id':
$desc = '设置-商品所属类别设置';
break;
case 'guide_royalty_state':
$desc = '设置-商品提成设置';
break;
}
return $desc;
}
/**
* 添加日志
* @param param [
* postInfo post参数
* operate_id 操作人员id
* ]
* @param type 3 商户 4 门店
* @param msg 操作描述
*/
private function addSysLog($param, $type, $msg)
{
$type_name = $type == 3 ? '商户' : '门店';
$desc = $type_name . $msg;
$log_data = [
'source' => 1,
'desc' => $desc,
'type' => $type,
'request_data' => json_encode($param['postInfo']),
'operator_id' => $param['operate_id'],
'mer_id' => $param['postInfo']['merchant_id'],
];
action_log_v2($log_data);
}
/**
* 删除商户商品
*/
private function delMgoodsOperate($ids)
{
// 验证商品信息 防止传假数据
$verifyRes = $this->verifyGoodsInfo($ids, 3);
if (!$verifyRes) {
return ['status' => 0, 'msg' => '请选择正确数据'];
}
$RetailMgoodsModel = new RetailMgoodsModel();
$defeatArr = [];
$success = 0;
$totalNum = count($ids);
foreach ($ids as $id) {
$goodsInfo = $RetailMgoodsModel->getFind(['id' => $id], 'goods_name,attribute');
$updateRes = $RetailMgoodsModel->updateOrder(['id' => $id], ['status' => 2]);
if (!$updateRes) {
$defeatArr[] = '商品【' . $goodsInfo['goods_name'] . '】删除失败';
} else {
if ($goodsInfo['attribute'] == 2) {
//规格商品规格状态修改
M('retail_sku_mgoods')->where(['mgoods_id' => $id])->setField('state', 1);
}
$updateDataRes = D('SaleMGoods')->updateData(['goods_id' => $id], ['status' => 2]);
if ($updateDataRes) {
$success++;
}
}
}
if ($success < $totalNum) {
return ['status' => 0, 'msg' => '商品删除失败'];
} else if ($success == $totalNum) {
return ['status' => 1, 'msg' => '商品删除成功'];
}
}
/**
* 删除门店商品
*/
private function delGoodsOperate($ids)
{
// 验证商品信息 防止传假数据
$verifyRes = $this->verifyGoodsInfo($ids, 4);
if (!$verifyRes) {
return ['status' => 0, 'msg' => '请选择正确数据'];
}
$RetailGoodsModel = new RetailGoodsModel();
$save = $RetailGoodsModel->updateOrder(['id' => ['in', $ids]], ['status' => 2]);
if ($save) {
$map = ['goods_id' => ['in', $ids]];
// 促销商品
M("retail_host")->where($map)->delete();
// 规格删除
M('retail_sku_goods')->where($map)->save(['state' => 1]);
$updateDataRes = D('SSaleMGoods')->updateData($map, ['status' => 2]);
if ($updateDataRes) {
return ['status' => 1, 'msg' => '商品删除成功'];
} else {
return ['status' => 1, 'msg' => '商品删除成功,商品库存删除失败'];
}
} else {
return ['status' => 0, 'msg' => '商品删除失败'];
}
}
/**
* 验证商品是否存在,防止传假数据
* @param ids id数组
* @param type 类型 3商户 4门店
*/
private function verifyGoodsInfo($ids, $type)
{
switch ($type) {
case 3:
$Model = new RetailMgoodsModel();
break;
case 4:
$Model = new RetailGoodsModel();
break;
}
$totalNum = count($ids);
$goodsInfo = $Model->getFindField(['id' => ['in', $ids]], 'goods_name', true);
if ($totalNum == count($goodsInfo)) {
return true;
} else {
return false;
}
}
/**
* 验证当前登录人员身份
* @param user_type 1商户 2门店 3收银员
* @param type [
* 1 添加商品
* 2 编辑商品
* 3 删除商品
* 4 批量修改商品
* 5 商品管理权限
* ]
*/
private function userTypeVerify($user_type, $cashier_id = 0, $type)
{
if (!$user_type || !$type) {
$this->ajaxReturn(['status' => 0, 'msg' => '缺少必要参数']);
}
$RetailCashierModel = new RetailCashierModel();
switch ($user_type) {
case 1:
case 2:
return true;
break;
case 3:
if (!$cashier_id) {
$this->ajaxReturn(['status' => 0, 'msg' => '缺少收银员id']);
}
switch ($type) {
case 1:
$hasAuthorize = $RetailCashierModel->getFindField(['id' => $cashier_id], 'cashier_add_goods');
if ($hasAuthorize != 1) {
$this->ajaxReturn(['status' => 0, 'msg' => '该收银员暂无添加商品权限']);
}
break;
case 2:
$hasAuthorize = $RetailCashierModel->getFind(['id' => $cashier_id], 'goods_manage_edit,is_goods_manage');
if ($hasAuthorize['goods_manage_edit'] != 1 || $hasAuthorize['is_goods_manage'] != 1) {
$this->ajaxReturn(['status' => 0, 'msg' => '该收银员暂无编辑商品权限']);
}
break;
case 3:
$hasAuthorize = $RetailCashierModel->getFind(['id' => $cashier_id], 'goods_manage_del,is_goods_manage');
if ($hasAuthorize['goods_manage_del'] != 1 || $hasAuthorize['is_goods_manage'] != 1) {
$this->ajaxReturn(['status' => 0, 'msg' => '该收银员暂无删除商品权限']);
}
break;
case 4:
$hasAuthorize = $RetailCashierModel->getFind(['id' => $cashier_id], 'goods_manage_operate,is_goods_manage');
if ($hasAuthorize['goods_manage_operate'] != 1 || $hasAuthorize['is_goods_manage'] != 1) {
$this->ajaxReturn(['status' => 0, 'msg' => '该收银员暂无批量修改商品权限']);
}
break;
case 5:
$hasAuthorize = $RetailCashierModel->getFindField(['id' => $cashier_id], 'is_goods_manage');
if ($hasAuthorize != 1) {
$this->ajaxReturn(['status' => 0, 'msg' => '该收银员暂无商品管理权限']);
}
break;
default:
$this->ajaxReturn(['status' => 0, 'msg' => '缺少必要参数']);
break;
}
return true;
break;
default:
$this->ajaxReturn(['status' => 0, 'msg' => '缺少必要参数']);
break;
}
}
}