Files
oil/server-tp6/app/store/controller/Company.php
T

232 lines
6.8 KiB
PHP

<?php
declare (strict_types=1);
namespace app\store\controller;
use app\common\service\SybOil;
use app\common\service\IdingjuOil;
use app\store\controller\Controller;
use app\store\model\Company as CompanyModel;
use app\store\model\Account as AccountModel;
use app\store\model\Goods as GoodsModel;
use app\store\model\store\User;
use dashing\generator\Generator;
use think\facade\Db;
use think\response\Json;
use app\common\service\Random;
use app\common\service\QueueService;
/**
* 公司控制器
* Class Company
* @package app\store\controller
*/
class Company extends Controller
{
/**
* 公司列表
* @return mixed
* @throws \think\exception\DbException
*/
public function index()
{
$model = new CompanyModel;
$getData = $this->request->param();
$data = [];
if (isset($getData['name']) && !empty($getData['name'])) {
$data[] = ['name', 'like', "%{$getData['name']}%"];
}
$user = $this->store['user'];
if($user['is_super'] == 0) {
$data[] = ['store_user_id', 'in', User::getScope($user)];
}
/*if(!empty($this->store['user']['company_id']) && $this->store['user']['is_super'] == 0){
$filter[] = ['company_id', 'in', json_decode($this->store['user']['company_id'],true)];
}*/
$list = $model->getList($data);
return $this->renderSuccess(['list'=>$list,'user'=>$this->store['user']]);
}
/**
* 获取所有公司
* @return mixed
* @throws \think\exception\DbException
*/
public function all(): Json
{
$user = $this->store['user'];
$list = CompanyModel::getAll($user);
return $this->renderSuccess(compact('list','user'));
}
/**
* 添加公司
* @return array|mixed
* @throws \think\Exception
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function add()
{
$model = new CompanyModel;
$data = $this->postForm();
// 新增记录
if ($model->add($data,$this->store['user'])) {
return $this->renderSuccess('添加成功');
}
return $this->renderError($model->getError() ?: '添加失败');
}
/**
* 公司详情
* @param int $companyId
* @return Json
* @throws BaseException
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
* @throws \cores\exception\BaseException
*/
public function detail(int $companyId): Json
{
$companyInfo = CompanyModel::detail($companyId);
return $this->renderSuccess(compact('companyInfo'));
}
/**
* 编辑公司
* @param int $companyId
* @return Json
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
* @throws \cores\exception\BaseException
*/
public function edit(int $companyId): Json
{
// 商品详情
$model = CompanyModel::detail($companyId);
$data = $this->postForm();
// 更新记录
if ($model->edit($data)) {
return $this->renderSuccess('更新成功');
}
return $this->renderError($model->getError() ?: '更新失败');
}
/**
* 用户充值
* @param int $companyId
* @param string $target
* @return array
*/
public function recharge(int $companyId, string $target)
{
// 用户详情
$model = CompanyModel::detail($companyId);
if ($model->recharge($target, $this->postForm())) {
return $this->renderSuccess('操作成功');
}
return $this->renderError($model->getError() ?: '操作失败');
}
/**
* 删除公司
* @return Json
* @throws \think\exception\DbException
*/
public function delete(): Json
{
$arr = $this->postData();
foreach ((array)$arr as $val){
$model = CompanyModel::detail($val);
$model->setDelete();
}
return $this->renderSuccess('删除成功');
}
/**
* 添加公司用户
* @return array|mixed
* @throws \think\Exception
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function addAccount()
{
$queueService = new QueueService();
$data = $this->postForm();
if($data['users'] > 10000){
return $this->renderSuccess('单次最多生成10000条用户');
}
$users = (int)$data['users'];
$success = 0;
for ($i = 1;$i <= $users;$i++){
$model = new AccountModel;
$info = [
'userName' => Random::generateName(),
'mobile' => Random::getMobile(),
'userIdCard' => Random::getIdcard(),
'company_id' => $data['company_id'],
];
// 新增记录
if ($model->add($info,$this->store['user'])) {
$account_id = $model->account_id;
// $queueService->push('account_queue', $account_id);
$success++;
}
}
return $this->renderSuccess('成功添加'.$success.'用户');
}
/**
* 修改店铺列表状态
* @return Json
*/
public function changeState(): Json
{
$post = $this->postData();
$status = $post['state']?10:20;
// 商品详情
foreach ((array)$post['companyIds'] as $company_id) {
$model = CompanyModel::detail($company_id);
$warn = $model->changeStatus($status);
if ($warn !== true) {
return $this->renderError($warn);
}
}
return $this->renderSuccess($post);
}
/**
* @param $orgNo
* @return array
*/
public function getGoodsNo($orgNo): array
{
switch ($orgNo) {
case 'umQZhIHKofyA':
return ['djgdface100','djgdface200','djgdface300'];
case 'HpWqXIgYvTBg':
return ['jmgxyyface100','jmgxyyface200','jmgxyyface300','jmgzface100','jmgzface200','jmgzface300','jmfjface100','jmfjface200','jmfjface300'];
case 'NKJBgaaRNdiL':
return ['face003'];
default:
return [];
}
}
/**
* 更新公司商品库存
* @return Json
*/
public function stock(): Json
{
// 企油通改造:本功能依赖已下线的上游(智慧油客/定聚),现已停用。
return $this->renderError('上游库存同步已停用(企油通无油券库存概念)');
}
}