init: import production code mss.nahaichuan.com (exclude Runtime/Uploads/backups/logs)
这个提交包含在:
@@ -0,0 +1,276 @@
|
||||
<?php
|
||||
|
||||
namespace Retail\Business;
|
||||
|
||||
use Common\Model\RetailGoodsModel;
|
||||
use Retail\Model\UnitLibraryModel;
|
||||
|
||||
//[1.7.90]
|
||||
|
||||
/**
|
||||
* 单位库
|
||||
* Class UnitLibrary
|
||||
* [
|
||||
* getUnitList 获取单位库列表
|
||||
* addUnit 添加单位
|
||||
* deleteUnit 删除单位
|
||||
* ]
|
||||
* @package Retail\Business
|
||||
*/
|
||||
class UnitLibrary
|
||||
{
|
||||
/**
|
||||
* 获取单位库列表-分页
|
||||
* @param $param
|
||||
* $param['name'] 单位名称
|
||||
* $param['merchant_id'] 商户ID
|
||||
* $param['store_id'] 门店ID
|
||||
* $param['type'] 1商户 2门店
|
||||
* $param['start_time'] 开始时间
|
||||
* $param['end_time'] 结束时间
|
||||
* $param['page'] 页码
|
||||
* $param['limit'] 页长
|
||||
* @return array
|
||||
*/
|
||||
public function getUnitList($param)
|
||||
{
|
||||
$verify = $this->publicVerifyParam($param);
|
||||
if ($verify['status'] != 1) {
|
||||
return $verify;
|
||||
}
|
||||
if (empty($param['page']) || empty($param['limit'])) {
|
||||
return callBack(statusCode()['error'], '缺少必要参数');
|
||||
}
|
||||
$map = $this->getUnitMap($param);
|
||||
$UnitLibraryModel = new UnitLibraryModel();
|
||||
$RetailGoodsModel = new RetailGoodsModel();
|
||||
|
||||
$list = $UnitLibraryModel->getSelect($map, '', 'add_time desc', $param['page'] . ',' . $param['limit']);
|
||||
foreach ($list as &$val) {
|
||||
$val['goods_num'] = $RetailGoodsModel->getCount(['unit_name' => $val['name'], 'status' => ['neq', 2]]);
|
||||
$val['add_time'] = $val['add_time'] ? date("Y-m-d H:i:s", $val['add_time']) : '-';
|
||||
}
|
||||
if (!empty($list)) {
|
||||
return callBack(statusCode()['success'], '获取成功', [
|
||||
'list' => $list,
|
||||
'count' => $UnitLibraryModel->getCount($map),
|
||||
]);
|
||||
} else {
|
||||
return callBack(statusCode()['success'], '暂无数据', [
|
||||
'list' => [],
|
||||
'count' => 0,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取单位库列表-供筛选
|
||||
* @param $param
|
||||
* $param['name'] 单位名称
|
||||
* $param['merchant_id'] 商户ID
|
||||
* $param['store_id'] 门店ID
|
||||
* $param['type'] 1商户 2门店
|
||||
* @return array
|
||||
*/
|
||||
public function getUnitSelect($param)
|
||||
{
|
||||
$verify = $this->publicVerifyParam($param);
|
||||
if ($verify['status'] != 1) {
|
||||
return $verify;
|
||||
}
|
||||
|
||||
$map = $this->getUnitMap($param);
|
||||
|
||||
$UnitLibraryModel = new UnitLibraryModel();
|
||||
|
||||
$list = $UnitLibraryModel->getSelect($map, 'id,name', 'add_time desc');
|
||||
return callBack(statusCode()['success'], empty($list) ? '暂无数据' : '获取成功', [
|
||||
'list' => $list,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加单位
|
||||
* @param $param
|
||||
* $param['name'] 单位名称
|
||||
* $param['merchant_id'] 商户ID
|
||||
* $param['store_id'] 门店ID
|
||||
* $param['type'] 1商户 2门店
|
||||
* @return array
|
||||
*/
|
||||
public function addUnit($param)
|
||||
{
|
||||
$verify = $this->publicVerifyParam($param);
|
||||
if ($verify['status'] != 1) {
|
||||
return $verify;
|
||||
}
|
||||
|
||||
$map = $this->getUnitMap($param);
|
||||
|
||||
$UnitLibraryModel = new UnitLibraryModel();
|
||||
|
||||
// 验重
|
||||
$repeat = $UnitLibraryModel->getFind($map);
|
||||
if ($repeat) {
|
||||
return callBack(statusCode()['error'], '该单位已存在');
|
||||
}
|
||||
$new_data = [
|
||||
'state' => 1,
|
||||
'type' => $param['type'],
|
||||
'name' => $param['name'],
|
||||
'add_time' => time(),
|
||||
'merchant_id' => $param['merchant_id'],
|
||||
'store_id' => $param['store_id'] ? $param['store_id'] : 0,
|
||||
];
|
||||
$res = $UnitLibraryModel->addOrder($new_data);
|
||||
if ($res) {
|
||||
return callBack(statusCode()['success'], '单位添加成功', ['id' => $res]);
|
||||
} else {
|
||||
return callBack(statusCode()['error'], '单位添加失败,请稍后重试');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑单位
|
||||
* @param $param
|
||||
* $param['id'] 单位ID
|
||||
* $param['name'] 单位名称
|
||||
* $param['merchant_id'] 商户ID
|
||||
* $param['store_id'] 门店ID
|
||||
* $param['type'] 1商户 2门店
|
||||
* @return array
|
||||
*/
|
||||
public function editUnit($param)
|
||||
{
|
||||
$verify = $this->publicVerifyParam($param);
|
||||
if ($verify['status'] != 1) {
|
||||
return $verify;
|
||||
}
|
||||
|
||||
if (!$param['id']) {
|
||||
return callBack(statusCode()['error'], '缺少必要参数');
|
||||
}
|
||||
$map = $this->getUnitMap($param);
|
||||
unset($map['name']);
|
||||
$map['type'] = $param['type'];
|
||||
|
||||
$UnitLibraryModel = new UnitLibraryModel();
|
||||
|
||||
$repeatMap = [
|
||||
'id' => ['neq', $param['id']],
|
||||
'merchant_id' => $param['merchant_id'],
|
||||
'name' => trim($param['name']),
|
||||
'state' => 1,
|
||||
];
|
||||
$repeat = $UnitLibraryModel->getFind($repeatMap);
|
||||
|
||||
if ($repeat) {
|
||||
return ['status' => 0, 'msg' => '已存在同名单位'];
|
||||
} else {
|
||||
$result = $UnitLibraryModel->updateOrder($map, ['name' => $param['name']]);
|
||||
if ($result) {
|
||||
return callBack(statusCode()['success'], '修改成功');
|
||||
} else {
|
||||
return callBack(statusCode()['error'], '单位未修改');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除单位
|
||||
* @param $param
|
||||
* $param['id'] 单位ID
|
||||
* $param['merchant_id'] 商户ID
|
||||
* $param['store_id'] 门店ID
|
||||
* $param['type'] 1商户 2门店
|
||||
* @return array
|
||||
*/
|
||||
public function deleteUnit($param)
|
||||
{
|
||||
$verify = $this->publicVerifyParam($param);
|
||||
if ($verify['status'] != 1) {
|
||||
return $verify;
|
||||
}
|
||||
if (!$param['id']) {
|
||||
return callBack(statusCode()['error'], '缺少必要参数');
|
||||
}
|
||||
|
||||
$map = $this->getUnitMap($param);
|
||||
if ($param['type'] == 2) {
|
||||
$map['store_id'] = $param['store_id'];
|
||||
}
|
||||
$UnitLibraryModel = new UnitLibraryModel();
|
||||
|
||||
|
||||
$unitInfo = $UnitLibraryModel->getFind($map, 'merchant_id,store_id,type');
|
||||
if ($unitInfo['type'] == 0) {
|
||||
return callBack(statusCode()['error'], '系统自带单位,不允许删除');
|
||||
}
|
||||
|
||||
$res = $UnitLibraryModel->updateOrder($map, ['state' => 0]);
|
||||
if ($res) {
|
||||
return callBack(statusCode()['success'], '单位删除成功');
|
||||
} else {
|
||||
return callBack(statusCode()['error'], '单位删除失败');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证请求参数
|
||||
* @param $param
|
||||
* @return mixed
|
||||
*/
|
||||
private function publicVerifyParam($param)
|
||||
{
|
||||
if (empty($param['type'])
|
||||
|| !in_array($param['type'], [1, 2])
|
||||
|| empty($param['merchant_id'])
|
||||
|| $param['type'] == 2 && empty($param['store_id'])) {
|
||||
return callBack(statusCode()['error'], '缺少必要参数');
|
||||
}
|
||||
return callBack(statusCode()['success'], '参数验证成功');
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取查询条件
|
||||
* @param $param
|
||||
* $param['merchant_id'] (必传)商户ID
|
||||
* $param['store_id'] (必传)门店ID
|
||||
* $param['type'] (必传)1商户 2门店
|
||||
* $param['id'] (非必传)单位ID
|
||||
* $param['name'] (非必传)单位名称
|
||||
* $param['start_time'] (非必传)开始时间
|
||||
* $param['end_time'] (非必传)结束时间
|
||||
* @return array
|
||||
*/
|
||||
private function getUnitMap($param)
|
||||
{
|
||||
$map = [
|
||||
'state' => 1,
|
||||
'merchant_id' => ['in', [$param['merchant_id'], 0]],
|
||||
];
|
||||
|
||||
if (!empty($param['id'])) {
|
||||
$map['id'] = $param['id'];
|
||||
}
|
||||
if ($param['start_time'] && $param['end_time']) {
|
||||
$map['add_time'] = ['between', [strtotime($param['start_time']), strtotime($param['end_time'])]];
|
||||
}
|
||||
|
||||
if (trim($param['name'])) {
|
||||
$map['name'] = ['like', '%' . trim($param['name']) . '%'];
|
||||
}
|
||||
switch ($param['type']) {
|
||||
case 1:
|
||||
// 商户
|
||||
$map['type'] = ['in', [0, 1]];
|
||||
break;
|
||||
case 2:
|
||||
// 门店
|
||||
$map['store_id'] = ['in', [$param['store_id'], 0]];
|
||||
$map['type'] = ['in', [0, 2]];
|
||||
break;
|
||||
}
|
||||
return $map;
|
||||
}
|
||||
}
|
||||
在新工单中引用
屏蔽一个用户