Menurequest.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. namespace app\admin\controller\base\menu;
  3. /**
  4. * @title: 菜单请求
  5. */
  6. use app\admin\controller\Base;
  7. use app\common\model\base\menu\Menurequest as menuRequestModel;
  8. use app\common\model\base\org\OrgRoleAuth;
  9. use app\common\model\base\Systemroles;
  10. use app\common\model\base\org\OrgType;
  11. use app\common\model\base\org\Org;
  12. use app\common\model\base\org\OrgRole;
  13. class Menurequest extends Base
  14. {
  15. protected $menurequestModel = null;
  16. protected $noNeedValidate = ['doEdit'];
  17. public function initialize()
  18. {
  19. parent::initialize();
  20. $this->menurequestModel = new menuRequestModel;
  21. }
  22. /**
  23. * @title: 获取菜单请求列表
  24. * @param {int} {menu_id} {必填} {菜单id}
  25. * @return array
  26. * @Author: wangkewei
  27. * @Date: 2021/5/18 9:31
  28. */
  29. public function getList()
  30. {
  31. $data = $this->request->param();
  32. $menu_id = isset($data['menu_id'])?$data['menu_id']:0;
  33. $list = $this->menurequestModel->where("menu_id",$menu_id)->field(['menu_request_id','menu_id','name','path','mode','operate','status'])->with(['menu'])->select();
  34. return res(1,"获取成功",$list);
  35. }
  36. /**
  37. * @title: 编辑菜单请求
  38. * @param array
  39. * @return array
  40. * @Author: wangkewei
  41. * @Date: 2021/5/18 9:31
  42. */
  43. public function doEdit()
  44. {
  45. $data = $this->request->param();
  46. $this->menurequestModel->replace()->save($data);
  47. slog(1,"编辑了菜单请求");
  48. return res(1,"保存成功");
  49. }
  50. /**
  51. * @title: 删除菜单请求
  52. * @param {int} {i} {必填} {请求id}
  53. * @return array
  54. * @Author: wangkewei
  55. * @Date: 2021/5/18 9:31
  56. */
  57. public function doDelete(int $id)
  58. {
  59. $where = [];
  60. $where[] = ['menu_request_id','=',$id];
  61. try{
  62. menuRequestModel::startTrans();
  63. // 删除企业类型相关的请求
  64. $orgTypeList = OrgType::where('request_ids','FIND IN SET',$id)->select()->toArray();
  65. $orgTypeSaveData = [];
  66. foreach($orgTypeList as $orgTypeItem){
  67. $orgTypeItem['request_ids'] = array_diff($orgTypeItem['request_ids'],[$id]);
  68. $orgTypeSaveData[] = $orgTypeItem;
  69. }
  70. // 删除企业相关的请求
  71. $orgList = Org::where('request_ids','FIND IN SET',$id)->select()->toArray();
  72. $orgSaveData = [];
  73. foreach($orgList as $orgItem){
  74. $orgItem['request_ids'] = array_diff($orgItem['request_ids'],[$id]);
  75. $orgSaveData[] = $orgItem;
  76. }
  77. // 删除企业角色相关的请求
  78. $orgRoleList = OrgRole::where('request_ids','FIND IN SET',$id)->select()->toArray();
  79. $orgRoleSaveData = [];
  80. foreach($orgRoleList as $orgRoleItem){
  81. $orgRoleItem['request_ids'] = array_diff($orgRoleItem['request_ids'],[$id]);
  82. $orgRoleSaveData[] = $orgRoleItem;
  83. }
  84. // 保存修改
  85. (new OrgType)->replace()->saveAll($orgTypeSaveData);
  86. (new Org)->replace()->saveAll($orgSaveData);
  87. (new OrgRole)->replace()->saveAll($orgRoleSaveData);
  88. // 删除请求
  89. menuRequestModel::destroy(function($query)use($where){
  90. $query->where($where);
  91. });
  92. menuRequestModel::commit();
  93. slog(1,"删除了菜单请求");
  94. return res(1,"删除成功",$id);
  95. }catch(\Exception $e){
  96. menuRequestModel::rollback();
  97. return res(2,"删除失败",$e->getMessage(),$e->getTrace());
  98. }
  99. }
  100. }