General.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\model\CarApprove;
  4. use app\common\model\ContractApprove;
  5. use app\common\model\DocumentApprove;
  6. use app\common\model\EvectionApprove;
  7. use app\common\model\LeaveApprove;
  8. use app\common\model\MaintainApprove;
  9. use app\common\model\OfferApprove;
  10. use hg\apidoc\annotation as Apidoc;
  11. use think\Db;
  12. /**
  13. * @Apidoc\Title("我的审批")
  14. * @Apidoc\Group("api")
  15. */
  16. class General extends Base
  17. {
  18. public function initialize()
  19. {
  20. parent::initialize();
  21. parent::checkLogin();
  22. }
  23. /**
  24. * @Apidoc\Title("我的审批")
  25. * @Apidoc\Desc("我的审批")
  26. * @Apidoc\Method("GET")
  27. * @Apidoc\Author("HG")
  28. * @Apidoc\Tag("")
  29. * @Apidoc\Query("page", type="int",desc="页数")
  30. * @Apidoc\Query("page_num", type="string", desc="每页数量")
  31. * @Apidoc\Returned("id", type="int", desc="审批记录id")
  32. * @Apidoc\Returned("create_at", type="string", desc="申请时间")
  33. * @Apidoc\Returned("module", type="string", desc="所属模块")
  34. * @Apidoc\Returned("approve_info", type="array", desc="申请记录详情")
  35. * @Apidoc\Returned("approve_info.id", type="int", desc="申请记录详情id")
  36. */
  37. public function getAllApprove()
  38. {
  39. $field = "id,create_at,approve_user,module,status";
  40. $where = ' approve_user = '.$this->user_id . ' AND status > 0 ';
  41. $list= Db::name('offer_approve')
  42. ->field($field)
  43. ->where($where)
  44. ->unionAll("select $field FROM dd_car_approve WHERE $where")
  45. ->unionAll("select $field FROM dd_document_approve WHERE $where")
  46. ->unionAll("select $field FROM dd_evection_approve WHERE $where")
  47. ->unionAll("select $field FROM dd_leave_approve WHERE $where")
  48. ->unionAll("select $field FROM dd_maintain_approve WHERE $where")
  49. ->unionAll("select $field FROM dd_contract_approve WHERE $where")
  50. ->order('create_at desc,id desc')
  51. ->limit($this->off_set,$this->page_num)
  52. ->select();
  53. foreach ($list as &$v) {
  54. switch ($v['module']) {
  55. case "car_approve":
  56. $v['approve_info'] = CarApprove::field('i.*,p.status approve_status,p.approve_time,p.remark')
  57. ->alias('p')
  58. ->where(['p.id'=>$v['id']])
  59. ->where('p.status','>','0')
  60. ->leftJoin('CarInfo i','p.car_id = i.id')
  61. ->find()->toArray();
  62. break;
  63. case "document_approve":
  64. $v['approve_info'] =DocumentApprove::field('i.*,p.id approve_id,p.status approve_status,p.approve_time,p.remark')
  65. ->alias('p')
  66. ->where(['p.id'=>$v['id']])
  67. ->where('p.status','>','0')
  68. ->leftJoin('DocumentInfo i','p.info_id = i.id')
  69. ->find()->toArray();
  70. break;
  71. case "evection_approve":
  72. $v['approve_info'] = EvectionApprove::field('i.*,p.status approve_status,p.approve_time,p.remark')
  73. ->alias('p')
  74. ->where(['p.id'=>$v['id']])
  75. ->where('p.status','>','0')
  76. ->leftJoin('EvectionInfo i','p.info_id = i.id')
  77. ->find()->toArray();
  78. break;
  79. case "leave_approve":
  80. $v['approve_info']= LeaveApprove::field('i.*,p.status approve_status,p.approve_time,p.remark')
  81. ->alias('p')
  82. ->where(['p.id'=>$v['id']])
  83. ->where('p.status','>','0')
  84. ->leftJoin('LeaveInfo i','p.info_id = i.id')
  85. ->find()->toArray();
  86. break;
  87. case "maintain_approve":
  88. $v['approve_info'] =MaintainApprove::field('i.*,p.id approve_id,p.status approve_status,p.approve_time,p.remark')
  89. ->alias('p')
  90. ->where(['p.id'=>$v['id']])
  91. ->where('p.status','>','0')
  92. ->leftJoin('MaintainInfo i','p.info_id = i.id')
  93. ->find()->toArray();
  94. break;
  95. case "offer_approve":
  96. $v['approve_info'] = OfferApprove::field('i.*,p.id approve_id,p.status approve_status,p.approve_time,p.remark')
  97. ->alias('p')
  98. ->where(['p.id'=>$v['id']])
  99. ->where('p.status','>','0')
  100. ->leftJoin('OfferInfo i','p.info_id = i.id')
  101. ->find()->toArray();
  102. break;
  103. case "contract_approve":
  104. $v['approve_info'] = ContractApprove::field('i.*,p.id approve_id,p.status approve_status,p.approve_time,p.remark')
  105. ->alias('p')
  106. ->where(['p.id'=>$v['id']])
  107. ->where('p.status','>','0')
  108. ->leftJoin('ContractInfo i','p.info_id = i.id')
  109. ->find()->toArray();
  110. break;
  111. }
  112. }
  113. $this->success('ok',['list'=>$list]);
  114. }
  115. }