FeedbackService.php 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <?php
  2. namespace App\Services\Content;
  3. use App\Repositories\FeedbackRepository;
  4. use App\Repositories\MsgRepository;
  5. use App\Repositories\MemberLogRepository;
  6. use App\Repositories\CompanyRepository;
  7. use Illuminate\Support\Facades\Cache;
  8. class FeedbackService
  9. {
  10. /**
  11. * @var FeedbackeRepository
  12. */
  13. protected $feedbackRepository;
  14. protected $msgRepository;
  15. protected $memberLogRepository;
  16. protected $companyRepository;
  17. /**
  18. * FeedbackService constructor.
  19. * @param $feedbackRepository
  20. * @param $msgRepository
  21. * @param $memberLogRepository
  22. * @param $companyRepository
  23. */
  24. public function __construct(FeedbackRepository $feedbackRepository, MsgRepository $msgRepository, MemberLogRepository $memberLogRepository, CompanyRepository $companyRepository)
  25. {
  26. $this->feedbackRepository = $feedbackRepository;
  27. $this->msgRepository = $msgRepository;
  28. $this->memberLogRepository = $memberLogRepository;
  29. $this->companyRepository = $companyRepository;
  30. }
  31. public function addFeedback($data)
  32. {
  33. return $this->feedbackRepository->create($data);
  34. }
  35. public function sendMsg($data, $type)
  36. {
  37. $from_uid = '';
  38. $utype = 1;
  39. if (auth('web-member')->user()) {
  40. $from_uid = auth('web-member')->user()->id;
  41. $utype = 2;
  42. } elseif (auth('web-company')->user()) {
  43. $from_uid = auth('web-company')->user()->id;
  44. $utype = 1;
  45. }
  46. //添加msg表数据
  47. $time = date('Y-m-d H:i:s', time());
  48. $msg_data = array(
  49. 'parent_id' => array_has($data, 'parent_id')?array_get($data, 'parent_id'):0,
  50. 'spid' => array_has($data, 'spid')?array_get($data, 'spid'):0,
  51. 'from_uid' => $from_uid,
  52. 'to_uid' => $data['touid'],
  53. 'message' => $data['message'],
  54. 'is_read' => array_has($data, 'is_read')?array_get($data, 'is_read'):0,
  55. 'created_at' => $time,
  56. 'updated_at' => $time,
  57. 'utype' => $utype
  58. );
  59. $insert_id = $this->msgRepository->addData($msg_data);
  60. $data['id'] = $insert_id;
  61. if (!$insert_id) {
  62. return false;
  63. }
  64. if (array_get($data, 'parent_id')) {
  65. $this->msgRepository->update(array('spid'=>1), $data['parent_id']);
  66. } else {
  67. $this->msgRepository->update(array('parent_id'=>$insert_id), $insert_id);
  68. }
  69. /*
  70. $where = array('utype'=>$utype,'uid'=>$data['touid'],'type'=>$type);
  71. if ($member_msg_tip = $this->msgRepository->getMemberMsgtipInfo($where)) {
  72. $this->msgRepository->updateMemberMsgtipInfo($where, array('updated_at'=>$time,'unread'=>(int)$member_msg_tip->unread+1));
  73. } else {
  74. $memberMsgtip_data = array(
  75. 'uid' => (int)$data['touid'],
  76. 'utype' => $utype,
  77. 'type' => $type,
  78. 'unread' => '1',
  79. 'num'=>0,
  80. 'created_at' =>$time,
  81. 'updated_at' => $time
  82. );
  83. $this->msgRepository->addMemberMsgtipInfo($memberMsgtip_data);
  84. }
  85. */
  86. $user_info = array();
  87. if (auth('web-member')->user()) {
  88. $company = $this->companyRepository->getCompanyInfo(array('id'=>$data['touid']));
  89. $data['to_url'] = route(url_rewrite('AIX_companyshow'), array('id'=>$company->id));
  90. $data['to_name'] = $company->companyname;
  91. $user_info = array(
  92. 'uid' => auth('web-member')->user()->id,
  93. 'utype' =>2,
  94. 'username' => auth('web-member')->user()->username,
  95. 'ip' => $data['ip'],
  96. 'log_address'=>$data['ip_address']
  97. );
  98. }
  99. //写入会员日志
  100. $this->addMembersLog($user_info, '', '发送站内信消息(消息id:'.$data['parent_id'].',接收人uid:'.$data['touid'].',消息内容:'.$data['message'].')');
  101. return array('state'=>1,'data'=>$data);
  102. }
  103. public function addMembersLog($user, $type = 0, $txt, $replace2='', $replace3='', $source = false, $params = array(), $operater_id = 0, $operater = '')
  104. {
  105. $types = $this->memberLogRepository->getTypes();
  106. $members_log = $params;
  107. $members_log['log_uid']=$user['uid'];
  108. $members_log['log_username']=$user['username'];
  109. if ($type) {
  110. $members_log['log_value'] = sprintf($types[$type]['content'], $txt, $replace2, $replace3);
  111. } else {
  112. $members_log['log_value'] = $txt;
  113. }
  114. $members_log['log_ip'] = $user['ip'];
  115. $members_log['log_address'] = $user['log_address'];
  116. $members_log['log_utype']=$user['utype'];
  117. if ($source) {
  118. $members_log['log_source']=$source;
  119. } elseif (Cache::get('log_source')) {
  120. $source = Cache::get('log_source');
  121. switch ($source) {
  122. case 2:
  123. $members_log['log_source'] = '触屏版';
  124. break;
  125. default:
  126. $members_log['log_source']='网页版';
  127. break;
  128. }
  129. } else {
  130. $members_log['log_source']='网页版';
  131. }
  132. $members_log['type']=$type?$type:0;
  133. $this->setLog($members_log);
  134. unset($members_log);
  135. }
  136. public function setLog($params)
  137. {
  138. if (Cache::get('subsite_id')) {
  139. $params['subsite_id'] = Cache::get('subsite_id');
  140. } else {
  141. $params['subsite_id'] = 0;
  142. }
  143. if (false !== $this->memberLogRepository->addNew($params)) {
  144. return array('state'=>true);
  145. } else {
  146. return array('state'=>false,'error'=>'日志记录失败!');
  147. }
  148. }
  149. }