Data.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. namespace app\sys\controller;
  3. use app\logics\ClueLogic;
  4. use app\model\CustomerClue;
  5. use think\facade\View;
  6. use app\model\Footprints;
  7. class Data
  8. {
  9. /**
  10. * 面板
  11. */
  12. public function statistics()
  13. {
  14. return View::fetch();
  15. }
  16. /**
  17. * 抽奖大转盘
  18. */
  19. public function member()
  20. {
  21. return View::fetch();
  22. }
  23. ///////////
  24. public function cluedata(){
  25. $request = request();
  26. $id = $request->param('id');
  27. $type = $request->param('type');
  28. if (!$request->isAjax()) {
  29. View::assign('type', $type);
  30. View::assign('id', $id);
  31. return View::fetch();
  32. }
  33. $param = $request->param();
  34. $condition = [];
  35. $order = isset($param['order']) ? $param['order'] : 'id desc';
  36. setCondition($param, ['org', 'org_id'], '=', $condition);
  37. setCondition($param, ['employee', 'employee_id'], '=', $condition);
  38. setCondition($param, 'state', '=', $condition);
  39. setCondition($param, ['type', 'pipe_type'], '=', $condition);
  40. setCondition($param, ['id', 'pipe_id'], '=', $condition);
  41. $data = ClueLogic::list($condition, $param['page'], $param['limit'], $order);
  42. $count = ClueLogic::count($condition);
  43. //浏览时长
  44. if ($data) {
  45. $uids = array_column($data->toArray(), 'uid');
  46. $where[] = ['uid','in',$uids];
  47. $where[] = ['pipe_type','=',$type];
  48. $foots = Footprints::where($where)->whereRaw('reg_info->"$.id" = '. $param['id'])->order('id desc')->field('visit_due_time,uid,addtime')->select()->toArray();
  49. $uids = [];
  50. foreach ($foots as $v) {
  51. $uids[$v['uid']] = $v;
  52. }
  53. foreach ($data as $k => &$v) {
  54. if (isset($uids[$v['uid']])) {
  55. $v['visit_due_time'] = $uids[$v['uid']]['visit_due_time'] ?: 0;
  56. $v['addtime'] = $uids[$v['uid']]['addtime'];
  57. }else{
  58. $v['visit_due_time'] = 0;
  59. $v['addtime'] = '';
  60. }
  61. }
  62. }
  63. return json(['code' => 0, 'data' => $data, 'count'=>$count]);
  64. }
  65. }