DispensingService.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <?php
  2. namespace App\Services\Company;
  3. use App\Repositories\DispensingRepository;
  4. use Illuminate\Support\Facades\DB;
  5. use Exception;
  6. class DispensingService
  7. {
  8. protected $dispensingRepository;
  9. protected $companyService;
  10. public function __construct(DispensingRepository $dispensingRepository,CompanyService $companyService)
  11. {
  12. $this->dispensingRepository = $dispensingRepository;
  13. $this->companyService = $companyService;
  14. }
  15. public function save($data,$user)
  16. {
  17. if(array_key_exists('id',$data)){
  18. $where['id'] = $data['id'];
  19. $where['uid'] = $user->id;
  20. $info = $this->dispensingInfo($where);
  21. if(!$info){
  22. return response()->json(['status' => 0, 'msg' => "无权编辑"]);
  23. }
  24. DB::beginTransaction();
  25. try {
  26. $item = [
  27. 'job_name' => $data['job_name'],
  28. 'job_number' => $data['job_number'],
  29. 'share_type' => $data['sharetype'],
  30. 'fee' => $data['fee'],
  31. 'require' => $data['require'],
  32. 'period' => $data['period'],
  33. 'safe' => $data['safe'],
  34. 'remark' => $data['remark'],
  35. 'switch' => $data['switch']
  36. ];
  37. if (!$this->dispensingRepository->update($item, $data['id'])) {
  38. throw new Exception('修改需求失败');
  39. }
  40. DB::commit();
  41. return response()->json(['status' => 1, 'msg' => "修改需求成功"]);
  42. } catch (Exception $e) {
  43. DB::rollback();
  44. return response()->json(['status' => 0, 'msg' => $e->getMessage()]);
  45. }
  46. }else{
  47. $list = [];
  48. foreach ($data['job_name'] as $k => $v){
  49. $item = [
  50. 'uid' => $user->id,
  51. 'job_name' => $data['job_name'][$k],
  52. 'job_number'=> $data['job_number'][$k],
  53. 'share_type'=> $data['sharetype'][$k],
  54. 'fee' => $data['fee'][$k],
  55. 'require' => $data['require'][$k],
  56. 'period' => $data['period'][$k],
  57. 'safe' => $data['safe'][$k],
  58. 'remark' => $data['remark'][$k],
  59. 'switch' => $data['switch'][$k],
  60. 'status' => 1
  61. ];
  62. array_push($list,$item);
  63. }
  64. DB::table('dispensing')->insert($list);
  65. return response()->json(['status' => 1, 'msg' => "发布需求成功"]);
  66. }
  67. }
  68. public function list($user = null)
  69. {
  70. if(!$user){
  71. $where = [
  72. 'status' => 1
  73. ];
  74. }else{
  75. $where = [
  76. 'status' => 1,
  77. 'uid' => $user->id
  78. ];
  79. }
  80. $page = 5;
  81. $list = $this->dispensingRepository->list($page, $where);
  82. $res = [];
  83. $org_list = [];
  84. foreach ($list as $k => $v){
  85. $types = explode(',',$v->share_type);
  86. foreach ($types as $kk => $vv){
  87. switch (intval($vv)){
  88. case 1:
  89. $types[$kk] = '小时工';
  90. break;
  91. case 2:
  92. $types[$kk] = '劳务派遣';
  93. break;
  94. case 3:
  95. $types[$kk] = '委托招聘';
  96. break;
  97. case 4:
  98. $types[$kk] = '服务外包';
  99. break;
  100. case 5:
  101. $types[$kk] = '其它';
  102. break;
  103. }
  104. }
  105. $list[$k]->share_type = implode(',',$types);
  106. $companyInfo = $this->companyService->getCompInfo($v->uid);
  107. $list[$k]->name = $companyInfo->companyname;
  108. $list[$k]->email = $companyInfo->email;
  109. $list[$k]->mobile = $companyInfo->mobile;
  110. $list[$k]->tel = $companyInfo->landline_tel;
  111. }
  112. return $list;
  113. }
  114. public function dispensingInfo($where){
  115. $info = $this->dispensingRepository->getDispensing($where);
  116. if($info){
  117. $types = explode(',',$info['share_type']);
  118. foreach ($types as $kk => $vv){
  119. switch (intval($vv)){
  120. case 1:
  121. $types[$kk] = '小时工';
  122. break;
  123. case 2:
  124. $types[$kk] = '劳务派遣';
  125. break;
  126. case 3:
  127. $types[$kk] = '委托招聘';
  128. break;
  129. case 4:
  130. $types[$kk] = '服务外包';
  131. break;
  132. case 5:
  133. $types[$kk] = '其它';
  134. break;
  135. }
  136. }
  137. $info['sharetype'] = implode(',',$types);
  138. return $info;
  139. }else{
  140. return false;
  141. }
  142. }
  143. public function dispensingDel($id, $user)
  144. {
  145. $where['id'] = $id;
  146. $where['uid'] = $user->id;
  147. DB::beginTransaction();
  148. try {
  149. if (!$this->dispensingRepository->delDispensing($where)) {
  150. throw new Exception('需求服务成功');
  151. }
  152. DB::commit();
  153. return response()->json(['status' => 1, 'msg' => '需求删除成功', 'data' => '']);
  154. }catch (Exception $e){
  155. DB::rollback();
  156. return response()->json(['status' => 0, 'msg' =>$e->getMessage(), 'data' => '']);
  157. }
  158. }
  159. }