ContractController.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <?php
  2. namespace App\Http\Controllers\AdminApi;
  3. use App\Http\Controllers\AdminController;
  4. use App\Models\Contract;
  5. use App\Servers\System\CommonServer;
  6. use Illuminate\Support\Facades\Storage;
  7. class ContractController extends AdminController
  8. {
  9. /**
  10. * 获取项目合同
  11. * @return \Illuminate\Http\JsonResponse
  12. */
  13. function getContractList(){
  14. $where = [['is_del',0]];
  15. $list = Contract::where($where)
  16. ->select(['id','name','created_at'])
  17. ->paginate(10);
  18. return $this->apiResponseSuccess('获取列表成功', [
  19. 'items' => $list->items(),
  20. 'total' => $list->total(),
  21. 'limit' => 10,
  22. ]);
  23. }
  24. /**
  25. * 添加&编辑项目对应合同
  26. * @return \Illuminate\Http\JsonResponse
  27. * @throws \Throwable
  28. */
  29. function saveContract(){
  30. $id=request()->input('id','');//id
  31. $name=request()->input('name','');//合同名称
  32. $sign_party=request()->input('sign_party',[]);//签署区域关键词
  33. $texts=request()->input('texts',[]);//乙方方签署区域关键词
  34. if (empty($name)) return $this->apiResponseError('请填写合同名称');
  35. if (mb_strlen($name) > 100) return $this->apiResponseError('合同名称最大100');
  36. if (empty($sign_party)) return $this->apiResponseError('请填写签署区信息');
  37. $file =request()->file('file','');//文件
  38. if (empty($file)){
  39. return $this->apiResponseError('请选择文件');
  40. }
  41. if (empty($texts)){
  42. return $this->apiResponseError('请填写变量');
  43. }
  44. //检查合同名称是否存在
  45. $info = Contract::where('name',$name)->where('is_del',0)->select(['id'])->first();
  46. if (!empty($info)) {
  47. return $this->apiResponseError('合同名称已存在');
  48. }
  49. $extension = request()->file->extension();//获取文件扩展名
  50. $file_name = $name.'.'.$extension;
  51. $contracts_file = request()->file->storeAs('public/contract', $file_name);
  52. $data = compact('name','contracts_file','sign_party','texts');
  53. if(empty($id)){//不存在id就创建
  54. $res = Contract::create($data);
  55. }else{//存在就更新
  56. $info = Contract::where('id',$id)->first();
  57. if (empty($info)) {
  58. return $this->apiResponseError('没有找到该记录');
  59. }
  60. $res = $info->update($data);
  61. }
  62. if ($res) {
  63. return $this->apiResponseSuccess('操作成功');
  64. } else {
  65. return $this->apiResponseError('操作失败');
  66. }
  67. }
  68. /**
  69. * 获取项目详情
  70. * @return \Illuminate\Http\JsonResponse
  71. */
  72. function getContractInfo()
  73. {
  74. $id = request()->input('id','');//获取需要删除的id
  75. if(empty($id)) return $this->apiResponseError('缺少必要参数');
  76. $info = Contract::where('id',$id)->first();
  77. if (empty($info)) {
  78. return $this->apiResponseError('没有找到该记录');
  79. }
  80. return $this->apiResponseSuccess('成功',$info);
  81. }
  82. /**
  83. * 删除
  84. * @return \Illuminate\Http\JsonResponse
  85. */
  86. function delContract(){
  87. $id = request()->input('id','');//获取需要删除的id
  88. if(empty($id)) return $this->apiResponseError('缺少必要参数');
  89. $info = Contract::where('id',$id)->select(['id'])->first();
  90. if (empty($info)) {
  91. return $this->apiResponseError('没有找到该记录');
  92. }
  93. $res = Contract::where('id',$id)->update(['is_del'=>1]);
  94. if ($res) {
  95. return $this->apiResponseSuccess('删除成功');
  96. } else {
  97. return $this->apiResponseError('删除失败');
  98. }
  99. }
  100. }