Files
swiftadmin/app/admin/controller/PdmPartitemIndex.php

247 lines
9.3 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
declare (strict_types = 1);
namespace app\admin\controller;
use app\AdminController;
use Webman\Http\Request;
use app\admin\model\PdmPartitemIndex as PdmPartitemIndexModel;
use app\admin\model\PdmParttype as PdmParttypeModel;
use support\Response;
/**
* pdm_partitem_index
* Partnumber管理
* <!--partmanage-->
* Class PdmPartitemIndex
* @package app\admin\controller
*/
class PdmPartitemIndex extends AdminController
{
/**
* PdmPartitemIndex模型对象
* @var \app\admin\model\PdmPartitemIndex
*/
public function __construct()
{
parent::__construct();
$this->model = new PdmPartitemIndexModel;
}
/**
* 默认生成的方法为index/add/edit/del/status 五个方法
* 当创建CURD的时候DIY的函数体和模板为空请自行编写代码
*/
/**
* 获取资源列表
* return Response
*/
public function index(): Response
{
if (request()->isAjax()) {
list($count, $list) = PdmPartitemIndex::dataList(request()->all());
// $rules = list_to_tree($list,'id','pid','children',0);
$lists = list_to_tree($list,'id','pid','children',0);
return $this->success('获取成功', '/',$lists, $count);
// return $this->success('获取成功', '/');
}
return view('/pdm_partitem_index/index');
}
/**
* 获取资源列表
* @param array $params
* @return array
* @throws DataNotFoundException
* @throws DbException
* @throws ModelNotFoundException
*/
public static function dataList(array $params): array
{
// $where = array();
// if (!empty($params['partnumber'])) {
// $where[] = ['partnumber','like','%'.$params['partnumber'].'%'];
// }
// if (!empty($params['content'])) {
// $where[] = ['content','like','%'.$params['content'].'%'];
// }
// $model = new PdmPartitemIndexModel();
// // $model = $this->model;
// $count = $model->where($where)->count();
// // $list = $model->where($where)->order('sort asc')->select()->toArray();
// $list = $model->where($where)->order('sort asc')->select();
// foreach($list as $key => $value){
// // throw new \Exception(json_encode($value));
// // throw new \Exception(json_encode($list[$key]->admin['nickname']));
// $list[$key]['creator'] =__($list[$key]->admin == null?'': $list[$key]->admin['nickname']);
// $list[$key]['parttype'] =__($list[$key]->parttype ==null?'': $list[$key]->parttype['name']);
// $list[$key]['mfg_name'] =__($list[$key]->mfgname == null ?'': $list[$key]->mfgname['mfgname']);
// // if($list[$key]->mfgname == null){
// // $list[$key]['mfg_name'] ='';
// // }else{
// // $list[$key]['mfg_name'] =$list[$key]->mfgname['mfgname'];
// // }
// }
// return [$count, $list->toArray()];
$page = (int)input('page', 1);
$limit = (int)input('limit', 18);
$controller = new PdmPartitemIndex();
$where = $controller->buildSelectParams();
$count = $controller->model->where($where)->count();
$fieldList = $controller->model->getFields();
$order = !array_key_exists('sort', $fieldList) ? 'id' : 'sort';
$subQuery = $controller->model->field('id')->where($where)->order($order, 'desc')->limit($limit)->page($page)->buildSql();
$subQuery = '( SELECT object.id FROM ' . $subQuery . ' AS object )';
// $list = $this->model->with($this->relationModel)->where('id in' . $subQuery)->order($order, 'asc')->select()->toArray(); // 如果是'desc' list_to_tree 函数返回为空!
$list = $controller->model->with($controller->relationModel)->where('id in' . $subQuery)->order($order, 'asc')->select(); // 如果是'desc' list_to_tree 函数返回为空!
foreach($list as $key => $value){
// throw new \Exception(json_encode($value));
// throw new \Exception(json_encode($list[$key]->admin['nickname']));
$list[$key]['creator'] =__($list[$key]->admin == null?'': $list[$key]->admin['nickname']);
$list[$key]['parttype'] =__($list[$key]->pdmParttype ==null?'': $list[$key]->pdmParttype['name']);
$list[$key]['mfg_name'] =__($list[$key]->pdmMfgName == null ?'': $list[$key]->pdmMfgName['mfgname']);
$list[$key]['mpn'] =__($list[$key]->pdmPurchasecode == null ?'': $list[$key]->pdmPurchasecode['mpn']);
// if($list[$key]->mfgname == null){
// $list[$key]['mfg_name'] ='';
// }else{
// $list[$key]['mfg_name'] =$list[$key]->mfgname['mfgname'];
// }
}
$list = $list->toArray();
if(!empty($list) && is_array($list)){
$nodeid = array();
foreach($list as $key => $value){
if($value['pid'] == 0 ){
$nodeid[] = $value['id'];
}
}
foreach($list as $key => $value){
if(!in_array($value['pid'],$nodeid) && $value['pid'] > 0){
$nodeid[] = $value['pid'];
$nodevalue = $controller->model->find($value['pid']);
$nodevalue = $controller->model->find($value['pid'])->toArray();
if(!empty($nodevalue)){
$list[] = &$nodevalue;
}
}
}
$list = list_sort_by($list,'id','asc');
// usort($list, function($a, $b) {
// return $a['id'] <=> $b['id']; // 对 'id' 进行升序排序
// });
// throw new \Exception(json_encode($list));
}
return [$count, $list];
}
/**
* 添加节点数据
* @return Response
*/
public function add(): Response
{
$parttype = PdmParttypeModel::select()->toArray();
if (request()->isPost()) {
$post = \request()->post();
// validate(\app\common\validate\system\AdminRules::class . '.add')->check($post);
$userid = get_admin_id();
$post['creatorid'] = $userid ;
if ($this->model->create($post)) {
return $this->success('添加FootPrint成功');
}
}
$data = $this->getTableFields();
$data['pid'] = input('pid', 0);
// $data['auth'] = 1;
// $data['type'] = 1;
list($count, $list) = PdmPartitemIndex::dataList(request()->all());
return view('/pdm_partitem_index/add', [
'data' => $data,
'parttype' => json_encode( list_to_tree($parttype), JSON_UNESCAPED_UNICODE),
// 'parttype' => $this->parttype,
'list' => json_encode( list_to_tree($list), JSON_UNESCAPED_UNICODE),
]);
}
/**
* 编辑节点数据
* @return Response
* @throws DbException
* @throws DataNotFoundException
* @throws ModelNotFoundException
*/
public function edit(): Response
{
$id = input('id', 0);
$data = $this->model->find($id);
$parttypeid = $data['parttypeid'];
// $parems['id'] = input('parttypeid', 0);
$parems = PdmParttypeModel::find($parttypeid)->toArray();
// throw new \Exception(json_encode($parems));
// $parttype = PdmParttypeModel::find($parttypeid);
list($count, $parttype) = \app\admin\controller\PdmParttype::dataList($parems);
// $parttype = PdmParttypeModel::select()->toArray();
if (request()->isPost()) {
$post = \request()->post();
// validate(\app\common\validate\system\AdminRules::class . '.edit')->check($post);
if ($this->model->update($post)) {
return $this->success('更新FootPrint成功');
}
}
list($count, $list) = PdmPartitemIndex::dataList(request()->all());
// throw new \Exception(json_encode($parttype));
// throw new \Exception( json_encode(list_to_tree($parttype)));
return view('/pdm_partitem_index/add', [
'data' => $data,
'parttype' => json_encode( list_to_tree($parttype), JSON_UNESCAPED_UNICODE),
// 'parttype' => json_encode( $parttype, JSON_UNESCAPED_UNICODE),
'list' => json_encode( list_to_tree($list), JSON_UNESCAPED_UNICODE),
]);
}
/**
* 删除节点数据
* @return Response
* @throws DbException
*/
public function del(): Response
{
$id = input('id');
if (!empty($id)) {
// 查询子节点
if ($this->model->where('pid',$id)->count()) {
return $this->error('当前分类存在子项!');
}
// 删除单个
if ($this->model::destroy($id)) {
return $this->success('删除FootPrint成功');
}
}
return $this->error('删除失败,请检查您的参数!');
}
}