Project.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: 珣
  5. * Date: 2016/9/6
  6. * Time: 23:09
  7. */
  8. namespace app\edit\controller;
  9. class Project extends Base
  10. {
  11. public function show(){
  12. if(request()->post()){
  13. $data=input('param.');
  14. $id=$data['id'];
  15. if(empty($id)){
  16. $this->error('参数错误!');
  17. }
  18. if(!empty($data['request_name'])){
  19. $request_name=$data['request_name'];
  20. $api_parameter_array=[];
  21. foreach ($request_name as $k=>$v){
  22. if(!empty($v)){
  23. $api_parameter_array[]=[
  24. 'request_name' => $v,
  25. 'request_must' => $data['request_must'][$k],
  26. 'request_type' => $data['request_type'][$k],
  27. 'request_remark' => $data['request_remark'][$k],
  28. ];
  29. }
  30. }
  31. $data['api_parameter']=json_encode($api_parameter_array);
  32. }
  33. if(!empty($data['back_name'])){
  34. $back_name=$data['back_name'];
  35. $api_re_array=[];
  36. foreach ($back_name as $k=>$v){
  37. if(!empty($v)){
  38. $api_re_array[]=[
  39. 'back_name' => $v,
  40. 'back_must' => $data['back_must'][$k],
  41. 'back_type' => $data['back_type'][$k],
  42. 'back_remark' => $data['back_remark'][$k],
  43. ];
  44. }
  45. }
  46. $data['api_re']=json_encode($api_re_array);
  47. }
  48. $model=model('common/ProjectApi');
  49. if(!$model->allowField(true)->save($data,['id'=>$id])){
  50. $this->error('修改失败!');
  51. }
  52. }
  53. $project_id=input('param.project_id');
  54. if(!$project_id){
  55. $this->redirect('index/index');
  56. }
  57. //模块数据
  58. $project_module_data=project_module($project_id);
  59. //模块id
  60. $project_module_id=input('param.project_module_id');
  61. if(!$project_module_id){
  62. if($project_module_data){
  63. $project_module_id=$project_module_data[0]['id'];
  64. }else{
  65. $project_module_data=[];
  66. }
  67. }
  68. //分类数据
  69. $project_cate_data=[];
  70. if($project_module_id){
  71. $project_cate_data=project_cate($project_module_id);
  72. }
  73. $left_data=[];//左侧导航菜单
  74. if(!empty($project_cate_data)){
  75. foreach ($project_cate_data as $k=>$v){
  76. $left_data[$v['cate_name']]=[
  77. 'cate_id' => $v['id'],
  78. 'project_api' => project_api($v['id']),
  79. ];
  80. }
  81. }
  82. //接口文档id
  83. $project_api_id=input('param.project_api_id');
  84. $project_api_data=[];//接口文档数据
  85. if(empty($project_api_id)){
  86. if(!empty($left_data)){
  87. foreach ($left_data as $k=>$v){
  88. if(!empty($v['project_api'])){
  89. $project_api_data=api_wiki($v['project_api'][0]['id']);
  90. $project_api_id=$v['project_api'][0]['id'];
  91. break;
  92. }
  93. }
  94. }
  95. }else{
  96. $project_api_data=api_wiki($project_api_id);
  97. }
  98. if(empty($project_api_data)){
  99. $project_request_data=[];
  100. }else{
  101. $project_request_data=json_decode($project_api_data['api_parameter'],true);
  102. }
  103. if(empty($project_api_data)){
  104. $project_back_data=[];
  105. }else{
  106. $project_back_data=json_decode($project_api_data['api_re'],true);
  107. }
  108. // var_dump($project_api_data);exit;
  109. $this->assign('project_api_data',$project_api_data);//接口文档数据
  110. $this->assign('left_data',$left_data);//左侧导航菜单
  111. $this->assign('project_module_data',$project_module_data);//模块数据
  112. $this->assign('project_id',$project_id);//项目id
  113. $this->assign('project_module_id',$project_module_id);//模块id
  114. $this->assign('project_api_id',$project_api_id);//文档id
  115. $this->assign('project_url',project_url($project_id));//url数据
  116. $this->assign('request_data',request_data());//请求类型
  117. $this->assign('project_request_data',$project_request_data);//请求数据
  118. $this->assign('project_back_data',$project_back_data);//返回数据
  119. $this->assign('data_type',data_type());//数据类型
  120. $this->assign('js_data_type',json_encode(data_type()));//数据类型json
  121. return $this->fetch('show');
  122. }
  123. public function add(){
  124. $project_id=input('param.project_id');
  125. if(!$project_id){
  126. $this->redirect('index/index');
  127. }
  128. //模块数据
  129. $project_module_data=project_module($project_id);
  130. //模块id
  131. $project_module_id=input('param.project_module_id');
  132. if(!$project_module_id){
  133. if($project_module_data){
  134. $project_module_id=$project_module_data[0]['id'];
  135. }else{
  136. $project_module_data=[];
  137. }
  138. }
  139. if(request()->post()){
  140. $data=input('param.');
  141. if(!empty($data['request_name'])){
  142. $request_name=$data['request_name'];
  143. $api_parameter_array=[];
  144. foreach ($request_name as $k=>$v){
  145. if(!empty($v)){
  146. $api_parameter_array[]=[
  147. 'request_name' => $v,
  148. 'request_must' => $data['request_must'][$k],
  149. 'request_type' => $data['request_type'][$k],
  150. 'request_remark' => $data['request_remark'][$k],
  151. ];
  152. }
  153. }
  154. $data['api_parameter']=json_encode($api_parameter_array);
  155. }
  156. if(!empty($data['back_name'])){
  157. $back_name=$data['back_name'];
  158. $api_re_array=[];
  159. foreach ($back_name as $k=>$v){
  160. if(!empty($v)){
  161. $api_re_array[]=[
  162. 'back_name' => $v,
  163. 'back_must' => $data['back_must'][$k],
  164. 'back_type' => $data['back_type'][$k],
  165. 'back_remark' => $data['back_remark'][$k],
  166. ];
  167. }
  168. }
  169. $data['api_re']=json_encode($api_re_array);
  170. }
  171. // dump($data);exit;
  172. $model=model('common/ProjectApi');
  173. if(!$model->data($data)->allowField(true)->save()){
  174. $this->error('新增失败!');
  175. }else{
  176. $this->redirect('project/show',['project_id'=>$project_id,'project_module_id'=>$project_module_id,'project_api_id'=>$model->id]);
  177. }
  178. }
  179. $cate_id=input('param.cate_id');
  180. if(!$cate_id){
  181. $this->redirect('index/index');
  182. }
  183. //分类数据
  184. $project_cate_data=[];
  185. if($project_module_id){
  186. $project_cate_data=project_cate($project_module_id);
  187. }
  188. $left_data=[];//左侧导航菜单
  189. if(!empty($project_cate_data)){
  190. foreach ($project_cate_data as $k=>$v){
  191. $left_data[$v['cate_name']]=[
  192. 'cate_id' => $v['id'],
  193. 'project_api' => project_api($v['id']),
  194. ];
  195. }
  196. }
  197. $this->assign('left_data',$left_data);//左侧导航菜单
  198. $this->assign('project_module_data',$project_module_data);//模块数据
  199. $this->assign('project_id',$project_id);//项目id
  200. $this->assign('project_module_id',$project_module_id);//模块id
  201. $this->assign('project_api_id','');//文档id
  202. $this->assign('project_url',project_url($project_id));//url数据
  203. $this->assign('request_data',request_data());//请求类型
  204. $this->assign('project_cate_id',$cate_id);//分类id
  205. $this->assign('data_type',data_type());//数据类型
  206. $this->assign('js_data_type',json_encode(data_type()));//数据类型json
  207. return $this->fetch('add');
  208. }
  209. public function del(){
  210. $project_api_id=input('param.project_api_id');
  211. $project_id=input('param.project_id');
  212. $project_module_id=input('param.project_module_id');
  213. if(empty($project_api_id) || empty($project_id) || empty($project_module_id) ){
  214. $this->error('参数错误!');
  215. }
  216. $model=model('common/ProjectApi');
  217. if(!$model->where(['id'=>$project_api_id])->delete()){
  218. $this->error('删除失败!');
  219. }else{
  220. $this->redirect('project/show',['project_id'=>$project_id,'project_module_id'=>$project_module_id]);
  221. }
  222. }
  223. public function project_add(){
  224. $project_name=input('param.project_name');
  225. $project_about=input('param.project_about');
  226. $project_icon=input('param.project_icon');
  227. if(empty($project_name) || empty($project_about)){
  228. $this->error('参数错误');
  229. }
  230. $data=[
  231. 'project_name'=> $project_name,
  232. 'project_about'=>$project_about,
  233. 'project_icon'=>$project_icon,
  234. ];
  235. $model=model('common/Project');
  236. if($model->data($data)->allowField(true)->save()){
  237. $this->redirect('index/index');
  238. }else{
  239. $this->error('新增失败!');
  240. }
  241. }
  242. public function project_edit(){
  243. $project_name=input('param.project_name');
  244. $project_about=input('param.project_about');
  245. $project_icon=input('param.project_icon');
  246. $project_id=input('param.project_id');
  247. if(empty($project_name) || empty($project_about) || empty($project_id)){
  248. $this->error('参数错误');
  249. }
  250. $data=[
  251. 'project_name'=> $project_name,
  252. 'project_about'=>$project_about,
  253. 'project_icon'=>$project_icon,
  254. ];
  255. $model=model('common/Project');
  256. if($model->save($data,['id'=>$project_id])){
  257. $this->redirect('index/index');
  258. }else{
  259. $this->error('修改失败!');
  260. }
  261. }
  262. public function project_del(){
  263. $project_id=input('param.id');
  264. $model_project=db('Project');
  265. $model_module=db('ProjectModule');
  266. $model_cate=db('ProjectCate');
  267. $model_api=db('ProjectApi');
  268. if(empty($project_id)){
  269. $this->error('非法参数');
  270. }
  271. if($model_project->where(['id'=>$project_id])->delete()){
  272. $model_module->where(['project_id'=>$project_id])->delete();
  273. $model_api->where(['project_id'=>$project_id])->delete();
  274. $model_cate->where(['project_id'=>$project_id])->delete();
  275. $this->redirect('index/index');
  276. }else{
  277. $this->error('删除失败!');
  278. }
  279. }
  280. }