BehaviorRepository.php 3.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. namespace App\Repositories\Behavior;
  3. use App\Models\Behavior;
  4. use GuzzleHttp\Client;
  5. use GuzzleHttp\Exception\RequestException;
  6. use Illuminate\Support\Facades\DB;
  7. use Tymon\JWTAuth\Facades\JWTAuth;
  8. use Dingo\Api\Http\Response;
  9. use Symfony\Component\HttpKernel\Exception\HttpException;
  10. /**
  11. * Created by PhpStorm.
  12. * User: durong
  13. * Date: 2019/6/10
  14. * Time: 上午11:11
  15. */
  16. class BehaviorRepository
  17. {
  18. public function __construct(Behavior $behavior)
  19. {
  20. $this->behavior = $behavior;
  21. //初始化virus域名
  22. $this->client = new Client([
  23. 'base_url' => config('constants.VIRUS_URL'),
  24. 'timeout' => 3
  25. ]);
  26. }
  27. public function index($request)
  28. {
  29. try {
  30. $signKey = [
  31. 'app' => config('constants.VIRUS_APP_ID')
  32. ];
  33. ksort($signKey);
  34. $signKey = urldecode(http_build_query($signKey));
  35. $sign = md5(config('constants.VIRUS_APP_SECRET') . $signKey);
  36. $response = $this->client->request('GET', '/behaviorList', [
  37. 'headers' => [
  38. 'Content-Type' => 'application/json',
  39. 'app' => config('constants.VIRUS_APP_ID'),
  40. 'sign' => $sign
  41. ]
  42. ]);
  43. $res = json_decode($response->getBody()->getContents(), true);
  44. $res = $res ? $res['behaviors'] : [];
  45. }catch (RequestException $exception){
  46. $res = [
  47. 'returnCode' => '-1',
  48. 'errMsg' => '网络超时'.$exception->getMessage()
  49. ];
  50. }
  51. return $res;
  52. }
  53. public function create($request)
  54. {
  55. $behavior_name = $this->behavior->where(['name'=>$request['name']])->first();
  56. if($behavior_name){
  57. return Response::create([
  58. 'message' => '该行为已存在',
  59. 'status_code' => 500
  60. ]);
  61. }
  62. $data = [
  63. 'virus_behavior_id' => $request['virus_behavior_id'],
  64. 'name' => $request['name'],
  65. 'behavior_level' => $request['behavior_level'],
  66. 'behavior_cycle_type' => $request['behavior_cycle_type'],
  67. 'is_open' => 0,
  68. 'behavior_action_id' => isset($request['behavior_action_id']) ? $request['behavior_action_id'] : 0,
  69. 'behavior_cycle' => isset($request['behavior_cycle']) ? $request['behavior_cycle'] : '',
  70. 'behavior_binding_users' => isset($request['behavior_binding_users']) ? $request['behavior_binding_users'] : 0,
  71. 'physical_strength' => isset($request['physical_strength']) ? $request['physical_strength'] : '',
  72. 'rainbow_beans' => isset($request['rainbow_beans']) ? $request['rainbow_beans'] : '',
  73. 'remarks' => isset($request['remarks']) ? $request['remarks'] : '',
  74. 'behavioral_cycle_start_time' => isset($request['behavioral_cycle_start_time']) ? $request['behavioral_cycle_start_time'] : null,
  75. 'behavioral_cycle_end_time' => isset($request['behavioral_cycle_end_time']) ? $request['behavioral_cycle_end_time'] : null,
  76. 'allotted_quantity_rule' => isset($request['allotted_quantity_rule']) ? json_encode($request['allotted_quantity_rule']) : '',
  77. 'behavior_identification' => isset($request['behavior_identification']) ? $request['behavior_identification'] : '',
  78. 'trigger_times' => isset($request['trigger_times']) ? $request['trigger_times'] : 0,
  79. 'effective_trigger' => isset($request['effective_trigger']) ? $request['effective_trigger'] : 0,
  80. 'relative_series' => isset($request['relative_series']) ? $request['relative_series'] : 0,
  81. 'absolute_progression' => isset($request['absolute_progression']) ? $request['absolute_progression'] : 0,
  82. ];
  83. if (!$this->behavior->create($data)) {
  84. throw new HttpException(500, '添加失败,请重试');
  85. }
  86. }
  87. }