ServiceService.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377
  1. <?php
  2. namespace App\Services\Organization;
  3. use App\Repositories\ServiceRepository;
  4. use Illuminate\Support\Facades\DB;
  5. use Exception;
  6. class ServiceService
  7. {
  8. protected $serviceRepository;
  9. public function __construct(ServiceRepository $serviceRepository)
  10. {
  11. $this->serviceRepository = $serviceRepository;
  12. }
  13. /**
  14. * 保存一个服务
  15. * @param $data
  16. * @param $user
  17. */
  18. public function save($data,$user)
  19. {
  20. if(array_key_exists('id',$data)){
  21. $where['id'] = $data['id'];
  22. $where['uid'] = $user->id;
  23. $info = $this->serviceInfo($where);
  24. if(!$info){
  25. return response()->json(['status' => 0, 'msg' => "无权编辑"]);
  26. }
  27. unset($data['id']);
  28. switch ($info['service_type'])
  29. {
  30. case '1':
  31. $detail = [
  32. 'training_ctontents' => $data['training_ctontents'],
  33. 'training_duration' => $data['training_duration'],
  34. 'training_expenses' => $data['training_expenses']
  35. ];
  36. unset($data['training_expenses']);
  37. unset($data['training_duration']);
  38. unset($data['training_ctontents']);
  39. $data['detail'] = serialize($detail);
  40. break;
  41. case '2':
  42. if(intval($data['iscustomize']) == '1'){
  43. $detail['job'] = $data['other_job'];
  44. }else{
  45. switch (intval($data['job']))
  46. {
  47. case 1:
  48. $detail['job'] = '总经理/副总经理';
  49. break;
  50. case 2:
  51. $detail['job'] = '人事经理';
  52. break;
  53. case 3:
  54. $detail['job'] = '财务经理';
  55. break;
  56. case 4:
  57. $detail['job'] = '市场经理';
  58. break;
  59. case 5:
  60. $detail['job'] = '营销经理';
  61. break;
  62. case 6:
  63. $detail['job'] = '产品经理';
  64. break;
  65. case 7:
  66. $detail['job'] = '技术经理';
  67. break;
  68. case 8:
  69. $detail['job'] = '厂长';
  70. break;
  71. case 9:
  72. $detail['job'] = '生产经理';
  73. break;
  74. case 10:
  75. $detail['job'] = '高级工程师';
  76. break;
  77. case 11:
  78. $detail['job'] = '博士后/博士';
  79. break;
  80. case 12:
  81. $detail['job'] = '工商管理高级人才';
  82. break;
  83. }
  84. }
  85. $detail['iscustomize'] = $data['iscustomize'];
  86. $detail['check'] = $data['check'];
  87. $detail['desc'] = $data['desc'];
  88. $detail['job_value'] = $data['job'];
  89. unset($data['iscustomize']);
  90. unset($data['check']);
  91. unset($data['desc']);
  92. unset($data['job']);
  93. unset($data['other_job']);
  94. $data['detail'] = serialize($detail);
  95. break;
  96. case '3':
  97. $detail = [];
  98. foreach ($data['trade'] as $k => $v){
  99. $item = [
  100. 'trade' => $v,
  101. 'job_type' => $data['job_type'][$k],
  102. 'district' => $data['district'][$k],
  103. 'time' => $data['time'][$k],
  104. 'salary' => $data['salary'][$k],
  105. 'number' => $data['number'][$k],
  106. 'sharetype' => $data['sharetype'][$k],
  107. 'check' => $data['check'][$k],
  108. 'remark' => $data['remark'][$k]
  109. ];
  110. array_push($detail,$item);
  111. }
  112. unset($data['job_type']);
  113. unset($data['trade']);
  114. unset($data['district']);
  115. unset($data['time']);
  116. unset($data['salary']);
  117. unset($data['number']);
  118. unset($data['sharetype']);
  119. unset($data['check']);
  120. unset($data['remark']);
  121. $data['detail'] = serialize($detail);
  122. break;
  123. case '4':
  124. $detail['other_service'] = $data['other_service'];
  125. unset($data['other_service']);
  126. $data['detail'] = serialize($detail);
  127. break;
  128. }
  129. DB::beginTransaction();
  130. try {
  131. if (!$this->serviceRepository->update($data, $info['id'])) {
  132. throw new Exception('修改服务失败');
  133. }
  134. DB::commit();
  135. return response()->json(['status' => 1, 'msg' => "修改服务成功"]);
  136. } catch (Exception $e) {
  137. DB::rollback();
  138. return response()->json(['status' => 0, 'msg' => $e->getMessage()]);
  139. }
  140. }else{
  141. switch ($data['service_type'])
  142. {
  143. case '1':
  144. $detail = [
  145. 'training_ctontents' => $data['training_ctontents'],
  146. 'training_duration' => $data['training_duration'],
  147. 'training_expenses' => $data['training_expenses']
  148. ];
  149. unset($data['training_expenses']);
  150. unset($data['training_duration']);
  151. unset($data['training_ctontents']);
  152. $data['detail'] = serialize($detail);
  153. break;
  154. case '2':
  155. if(intval($data['iscustomize']) == '1'){
  156. $detail['job'] = $data['other_job'];
  157. }else{
  158. switch (intval($data['job']))
  159. {
  160. case 1:
  161. $detail['job'] = '总经理/副总经理';
  162. break;
  163. case 2:
  164. $detail['job'] = '人事经理';
  165. break;
  166. case 3:
  167. $detail['job'] = '财务经理';
  168. break;
  169. case 4:
  170. $detail['job'] = '市场经理';
  171. break;
  172. case 5:
  173. $detail['job'] = '营销经理';
  174. break;
  175. case 6:
  176. $detail['job'] = '产品经理';
  177. break;
  178. case 7:
  179. $detail['job'] = '技术经理';
  180. break;
  181. case 8:
  182. $detail['job'] = '厂长';
  183. break;
  184. case 9:
  185. $detail['job'] = '生产经理';
  186. break;
  187. case 10:
  188. $detail['job'] = '高级工程师';
  189. break;
  190. case 11:
  191. $detail['job'] = '博士后/博士';
  192. break;
  193. case 12:
  194. $detail['job'] = '工商管理高级人才';
  195. break;
  196. }
  197. }
  198. $detail['iscustomize'] = $data['iscustomize'];
  199. $detail['check'] = $data['check'];
  200. $detail['desc'] = $data['desc'];
  201. $detail['job_value'] = $data['job'];
  202. unset($data['iscustomize']);
  203. unset($data['check']);
  204. unset($data['desc']);
  205. unset($data['job']);
  206. unset($data['other_job']);
  207. $data['detail'] = serialize($detail);
  208. break;
  209. case '3':
  210. $detail = [];
  211. foreach ($data['trade'] as $k => $v){
  212. $item = [
  213. 'trade' => $v,
  214. 'job_type' => $data['job_type'][$k],
  215. 'district' => $data['district'][$k],
  216. 'time' => $data['time'][$k],
  217. 'salary' => $data['salary'][$k],
  218. 'number' => $data['number'][$k],
  219. 'sharetype' => $data['sharetype'][$k],
  220. 'check' => $data['check'][$k],
  221. 'remark' => $data['remark'][$k]
  222. ];
  223. array_push($detail,$item);
  224. }
  225. unset($data['job_type']);
  226. unset($data['trade']);
  227. unset($data['district']);
  228. unset($data['time']);
  229. unset($data['salary']);
  230. unset($data['number']);
  231. unset($data['sharetype']);
  232. unset($data['check']);
  233. unset($data['remark']);
  234. $data['detail'] = serialize($detail);
  235. break;
  236. case '4':
  237. $detail['other_service'] = $data['other_service'];
  238. unset($data['other_service']);
  239. $data['detail'] = serialize($detail);
  240. break;
  241. }
  242. $data['utype'] = $user->utype;
  243. $data['uid'] = $user->id;
  244. $data['status'] = 1;
  245. DB::beginTransaction();
  246. try {
  247. if(!$this->serviceRepository->create($data))
  248. {
  249. throw new Exception('发布服务失败');
  250. }
  251. DB::commit();
  252. return response()->json(['status' => 1, 'msg' => "发布服务成功"]);
  253. }catch (Exception $e){
  254. DB::rollback();
  255. return response()->json(['status' => 0, 'msg' => $e->getMessage()]);
  256. }
  257. }
  258. }
  259. public function list($user = null)
  260. {
  261. if(!$user){
  262. $where = [
  263. 'status' => 1
  264. ];
  265. }else{
  266. $where = [
  267. 'status' => 1,
  268. 'uid' => $user->id
  269. ];
  270. }
  271. $page = 5;
  272. $list = $this->serviceRepository->list($page, $where);
  273. $res = [];
  274. $org_list = [];
  275. foreach ($list as $k => $v){
  276. if(!array_key_exists($v->uid,$org_list)){
  277. $org = DB::table('organization')->whereRaw('id='.$v->uid)->get();
  278. $org_list[$v->uid] = $org[0];
  279. }
  280. $list[$k]->orgname = $org_list[$v->uid]->orgname;
  281. $list[$k]->email = $org_list[$v->uid]->email;
  282. $list[$k]->mobile = $org_list[$v->uid]->mobile;
  283. $list[$k]->tel = $org_list[$v->uid]->landline_tel;
  284. switch(intval($v->service_type))
  285. {
  286. case 1:
  287. $list[$k]->type = '管理培训';
  288. break;
  289. case 2:
  290. $list[$k]->type = '猎头服务';
  291. break;
  292. case 3:
  293. $list[$k]->type = '人力资源供应';
  294. break;
  295. case 4:
  296. $list[$k]->type = '其它';
  297. break;
  298. }
  299. $list[$k]->detail = unserialize($v->detail);
  300. }
  301. return $list;
  302. }
  303. public function total($id){
  304. $where['uid'] = $id;
  305. $where['status'] = 1;
  306. return $this->serviceRepository->total($where);
  307. }
  308. public function serviceDel($id, $user)
  309. {
  310. $where['id'] = $id;
  311. $where['uid'] = $user->id;
  312. DB::beginTransaction();
  313. try {
  314. if (!$this->serviceRepository->delService($where)) {
  315. throw new Exception('删除服务成功');
  316. }
  317. DB::commit();
  318. return response()->json(['status' => 1, 'msg' => '服务删除成功', 'data' => '']);
  319. }catch (Exception $e){
  320. DB::rollback();
  321. return response()->json(['status' => 0, 'msg' =>$e->getMessage(), 'data' => '']);
  322. }
  323. }
  324. public function serviceInfo($where){
  325. $info = $this->serviceRepository->getService($where);
  326. if($info){
  327. $detail = unserialize($info->detail);
  328. foreach($detail as $k => $v){
  329. $types = explode(',',$v['sharetype']);
  330. foreach ($types as $kk => $vv){
  331. switch (intval($vv)){
  332. case 1:
  333. $types[$kk] = '小时工';
  334. break;
  335. case 2:
  336. $types[$kk] = '劳务派遣';
  337. break;
  338. case 3:
  339. $types[$kk] = '委托招聘';
  340. break;
  341. case 4:
  342. $types[$kk] = '服务外包';
  343. break;
  344. case 5:
  345. $types[$kk] = '其它';
  346. break;
  347. }
  348. }
  349. $detail[$k]['sharetype'] = implode(',',$types);
  350. }
  351. $info->detail = $detail;
  352. return $info;
  353. }else{
  354. return false;
  355. }
  356. }
  357. }