RangeService.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <?php
  2. namespace App\Service;
  3. use App\Model\ConstructionInfo;
  4. use App\Model\CustomerInfo;
  5. use App\Model\ProductRange;
  6. use App\Model\ReturnExchangeOrderRange;
  7. use App\Model\SalesOrderInfo;
  8. use App\Model\SalesOrderRange;
  9. use App\Model\SupplierInfo;
  10. class RangeService extends Service
  11. {
  12. //获取客户可见数据
  13. public static function customerRange($user){
  14. $user_id = $user['id'];
  15. $depart_id = $user['depart_range'];
  16. $type = implode(',',CustomerInfo::$see_man);
  17. $type2 = CustomerInfo::type_eight;
  18. $depart_str = implode(',',$depart_id);
  19. $str = "(data_id = $user_id AND type IN({$type})) OR (data_id IN({$depart_str}) AND type = {$type2})";
  20. // 销售人员/负责人 3协同人 可见部门 可见人 可以看见
  21. $customer_id = CustomerInfo::where('del_time',0)
  22. ->where(function ($query) use($str) {
  23. $query->whereRaw($str);
  24. })->select('customer_id')->get()->toArray();
  25. return array_unique(array_column($customer_id,'customer_id'));
  26. }
  27. //获取供应商可见数据
  28. public static function supplierRange($user){
  29. $user_id = $user['id'];
  30. $depart_id = $user['depart_range'];
  31. $type = SupplierInfo::type_two;
  32. $type2 = SupplierInfo::type_one;
  33. $depart_str = implode(',',$depart_id);
  34. $str = "(data_id = $user_id AND type IN({$type})) OR (data_id IN({$depart_str}) AND type = {$type2})";
  35. // 可见部门 可见人 可以看见
  36. $supplier_id = SupplierInfo::where('del_time',0)
  37. ->where(function ($query) use($str) {
  38. $query->whereRaw($str);
  39. })->select('supplier_id')->get()->toArray();
  40. return array_unique(array_column($supplier_id,'supplier_id'));
  41. }
  42. //获取产品可见数据
  43. public static function productRange($user){
  44. $user_id = $user['id'];
  45. $depart_id = $user['depart_range'];
  46. $product_id = ProductRange::where('del_time',0)
  47. ->where(function ($query) use($user_id, $depart_id) {
  48. $query->where('employee_id',$user_id)
  49. ->orWhereIn('depart_id', $depart_id);
  50. })->select('product_id')->get()
  51. ->toArray();
  52. return array_unique(array_column($product_id,'product_id'));
  53. }
  54. //获取合同可见数据
  55. public static function salesOrderRange($user){
  56. //单据中选择的签订负责协同人
  57. $sales_order_id = SalesOrderInfo::where('del_time',0)
  58. ->where('employee_id',$user['id'])
  59. ->select('sales_order_id')
  60. ->get()->toArray();
  61. $sales_order_id = array_unique(array_column($sales_order_id,'sales_order_id'));
  62. //指派后
  63. $user_id = $user['id'];
  64. $depart_id = $user['depart_range'];
  65. $sales_order_id2 = SalesOrderRange::where('del_time',0)
  66. ->where(function ($query) use($user_id, $depart_id) {
  67. $query->where('employee_id',$user_id)
  68. ->orWhereIn('depart_id', $depart_id);
  69. })->select('sales_order_id')->get()
  70. ->toArray();
  71. return array_unique(array_merge_recursive($sales_order_id,array_column($sales_order_id2,'sales_order_id')));
  72. }
  73. //获取施工单可见数据
  74. public static function constructionRange($user){
  75. //单据中选择的签订负责协同人
  76. $construction_id = ConstructionInfo::where('del_time',0)
  77. ->where('employee_id',$user['id'])
  78. ->select('construction_id')
  79. ->get()->toArray();
  80. return array_unique(array_column($construction_id,'construction_id'));
  81. }
  82. //获取退换货单可见数据
  83. public static function returnExchangeOrderRange($user){
  84. $user_id = $user['id'];
  85. $depart_id = $user['depart_range'];
  86. $return_exchange_id = ReturnExchangeOrderRange::where('del_time',0)
  87. ->where(function ($query) use($user_id, $depart_id) {
  88. $query->where('employee_id',$user_id)
  89. ->orWhereIn('depart_id', $depart_id);
  90. })->select('return_exchange_id')->get()
  91. ->toArray();
  92. return array_unique(array_column($return_exchange_id,'return_exchange_id'));
  93. }
  94. }