Membergoodsbrowse.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <?php
  2. namespace app\home\controller;
  3. use think\facade\View;
  4. use think\facade\Lang;
  5. /**
  6. * ============================================================================
  7. *
  8. * ============================================================================
  9. *
  10. * ----------------------------------------------------------------------------
  11. *
  12. * ============================================================================
  13. * 控制器
  14. */
  15. class Membergoodsbrowse extends BaseMember
  16. {
  17. public function initialize()
  18. {
  19. parent::initialize(); // TODO: Change the autogenerated stub
  20. Lang::load(base_path() . 'home/lang/' . config('lang.default_lang') . '/membergoodsbrowse.lang.php');
  21. }
  22. /**
  23. * 浏览历史列表
  24. */
  25. public function listinfo()
  26. {
  27. $goodsbrowse_model = model('goodsbrowse');
  28. //商品分类缓存
  29. $gc_list = model('goodsclass')->getGoodsclassForCacheModel();
  30. //查询浏览记录
  31. $condition = array();
  32. $condition[] = array('member_id', '=', session('member_id'));
  33. $gc_id = intval(input('param.gc_id'));
  34. $gc_depth = isset($gc_list[$gc_id]['depth']) ? $gc_list[$gc_id]['depth'] : 1;
  35. if ($gc_id > 0) {
  36. $condition[] = array('gc_id_' . $gc_depth, '=', $gc_id);
  37. }
  38. $browselist_tmp = $goodsbrowse_model->getViewedGoodsList(session('member_id'), 20);
  39. $browselist = array();
  40. foreach ((array) $browselist_tmp as $k => $v) {
  41. $browselist[$v['goods_id']] = $v;
  42. }
  43. //查询商品信息
  44. $browselist_new = array();
  45. if ($browselist) {
  46. $goods_list_tmp = model('goods')->getGoodsList(array(array('goods_id', 'in', array_keys($browselist))), 'goods_id, goods_name, goods_promotion_price,goods_promotion_type, goods_marketprice, goods_image, store_id, gc_id, gc_id_1, gc_id_2, gc_id_3');
  47. $goods_list = array();
  48. foreach ((array) $goods_list_tmp as $v) {
  49. $goods_list[$v['goods_id']] = $v;
  50. }
  51. foreach ($browselist as $k => $v) {
  52. if ($goods_list[$k]) {
  53. $tmp = array();
  54. $tmp = $goods_list[$k];
  55. $tmp["goodsbrowse_time"] = $v['goodsbrowse_time'];
  56. if (date('Y-m-d', $v['goodsbrowse_time']) == date('Y-m-d', TIMESTAMP)) {
  57. $tmp['browsetime_day'] = lang('today');
  58. } elseif (date('Y-m-d', $v['goodsbrowse_time']) == date('Y-m-d', (TIMESTAMP - 86400))) {
  59. $tmp['browsetime_day'] = lang('yesterday');
  60. } else {
  61. $tmp['browsetime_day'] = date('Y年m月d日', $v['goodsbrowse_time']);
  62. }
  63. $tmp['browsetime_text'] = $tmp['browsetime_day'] . date('H:i', $v['goodsbrowse_time']);
  64. $browselist_new[] = $tmp;
  65. }
  66. }
  67. }
  68. //查询浏览记录商品分类
  69. $browseclass_list = $goodsbrowse_model->getViewedGoodsList(session('member_id'), 20);
  70. $browseclass_arr = array();
  71. foreach ((array) $browseclass_list as $k => $v) {
  72. if ($v['gc_id_1'] > 0) {
  73. @$browseclass_arr[$v['gc_id_1']] = array('gc_name' => $gc_list[$v['gc_id_1']]['gc_name'], 'sonclass' => array());
  74. }
  75. if ($v['gc_id_2'] > 0) {
  76. @$browseclass_arr[$v['gc_id_1']]['sonclass'][$v['gc_id_2']] = array('gc_name' => $gc_list[$v['gc_id_2']]['gc_name'], 'sonclass' => array());
  77. }
  78. }
  79. $this->setMemberCurMenu('member_goodsbrowse');
  80. $this->setMemberCurItem('index');
  81. View::assign('browseclass_arr', $browseclass_arr);
  82. View::assign('browselist', $browselist_new);
  83. //View::assign('show_page', $goodsbrowse_model->page_info->render());
  84. return View::fetch($this->template_dir . 'index');
  85. }
  86. /**
  87. * 删除浏览历史
  88. */
  89. public function del()
  90. {
  91. $return_arr = array();
  92. $goodsbrowse_model = model('goodsbrowse');
  93. if (trim(input('param.goods_id')) == 'all') {
  94. //清除缓存中浏览记录
  95. dcache(session('member_id'), 'goodsbrowse');
  96. $goodsbrowse_model->delGoodsbrowse(array('member_id' => session('member_id')));
  97. $return_arr = array('done' => true);
  98. } elseif (intval(input('param.goods_id')) >= 0) {
  99. $goods_id = intval(input('param.goods_id'));
  100. if (config('ds_config.cache_open')) {
  101. //清除缓存中的浏览记录
  102. $browse_goodsid = rcache(session('member_id'), 'goodsbrowse');
  103. $goodsid_arr = $browse_goodsid['goodsid'] ? unserialize($browse_goodsid['goodsid']) : array();
  104. if (isset($browse_goodsid[$goods_id])) {
  105. unset($browse_goodsid[$goods_id]);
  106. }
  107. if ($goodsid_arr) {
  108. $goodsid_arr = array_diff($goodsid_arr, array($goods_id));
  109. $browse_goodsid['goodsid'] = serialize($goodsid_arr);
  110. }
  111. wcache(session('member_id'), $browse_goodsid, 'goodsbrowse');
  112. }
  113. $goodsbrowse_model->delGoodsbrowse(array('member_id' => session('member_id'), 'goods_id' => $goods_id));
  114. $return_arr = array('done' => true);
  115. } else {
  116. $return_arr = array('done' => false, 'msg' => lang('param_error'));
  117. }
  118. echo json_encode($return_arr);
  119. }
  120. protected function getMemberItemList()
  121. {
  122. $menu_array = array(
  123. array(
  124. 'name' => 'index', 'text' => lang('my_footprint'), 'url' => (string)url('Membergoodsbrowse/listinfo')
  125. )
  126. );
  127. return $menu_array;
  128. }
  129. }