member_favorites.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. <?php
  2. /**
  3. * 我的收藏
  4. *
  5. *
  6. *
  7. *
  8. */
  9. //use Shopnc\Tpl;
  10. defined('InShopNC') or exit('Access Invalid!');
  11. require_once (BASE_ROOT_PATH . '/helper/goods_helper.php');
  12. require_once (BASE_ROOT_PATH . '/helper/special_helper.php');
  13. require_once (BASE_ROOT_PATH . '/helper/user_session/favorite.php');
  14. class member_favoritesControl extends mbMemberControl
  15. {
  16. static $stTypes = ['goods','brand'];
  17. public function __construct()
  18. {
  19. parent::__construct();
  20. }
  21. public function indexOp()
  22. {
  23. $mod_favorites = Model('favorites');
  24. $favorites = $mod_favorites->getGoodsFavoritesList(['member_id' => $_SESSION['member_id']], '*', $this->page_size);
  25. $page_count = $mod_favorites->gettotalpage();
  26. $gids = [];
  27. foreach ($favorites as $item)
  28. {
  29. if($item['fav_type'] == 'goods') {
  30. $gids[] = intval($item['fav_id']);
  31. }
  32. elseif($item['fav_type'] == 'brand') {
  33. continue;
  34. }
  35. else {
  36. continue;
  37. }
  38. }
  39. if(empty($gids))
  40. {
  41. return self::outsuccess(['special_list' => null,
  42. 'summary' => null,
  43. 'groupbuy' => null,
  44. 'limitime' => null,
  45. 'bundling' => null,
  46. 'mobile_page' => mobile_page($page_count)]);
  47. }
  48. $helper = new goods_helper($this->price_calcer());
  49. $ret = $helper->online_summary($gids,$related_goods);
  50. $block = special_formater::format_goods($gids,'我的商品',$ret['sort_summary']);
  51. $blocks[] = $block;
  52. return self::outsuccess(['special_list' => $blocks,
  53. 'summary' => $ret['summary'],
  54. 'groupbuy' => $ret['groupbuy'],
  55. 'limitime' => $ret['limitime'],
  56. 'bundling' => $ret['bundling'],
  57. 'mobile_page' => mobile_page($page_count)]);
  58. }
  59. private function format($goods_ids,$sort_summary)
  60. {
  61. $result = [];
  62. foreach ($goods_ids as $goods_id)
  63. {
  64. $block = [];
  65. $block['item_title'] = '';
  66. $block['item_type'] = 'home1';
  67. $summary = $sort_summary[$goods_id];
  68. $item['image'] = $summary['goods_image_url'];
  69. $item['show_type'] = "favorite";
  70. $item['show_data'] = strval($goods_id);
  71. $item['type'] = "goods";
  72. $item['data'] = strval($goods_id);
  73. $item['title'] = $summary['goods_mobile_name'];
  74. $block['items'][] = $item;
  75. $result[] = $block;
  76. $result[] = special_formater::def_divider();
  77. }
  78. return $result;
  79. }
  80. public function addOp()
  81. {
  82. $fav_type = $_POST['fav_type'];
  83. $fav_id = intval($_POST['fav_id']);
  84. if ($fav_id <= 0 || empty($fav_type) || !in_array($fav_type,self::$stTypes)) {
  85. return self::outerr(errcode::ErrParamter,"参数错误");
  86. }
  87. $mod_fav = Model('favorites');
  88. $favorites_info = $mod_fav->getOneFavorites(['fav_id' => $fav_id, 'fav_type' => $fav_type, 'member_id' => $_SESSION['member_id']]);
  89. if (!empty($favorites_info)) {
  90. return self::outsuccess(null);
  91. }
  92. else
  93. {
  94. $insert_arr = [];
  95. $insert_arr['member_id'] = $_SESSION['member_id'];
  96. $insert_arr['fav_id'] = $fav_id;
  97. $insert_arr['fav_type'] = $fav_type;
  98. $insert_arr['fav_time'] = time();
  99. $result = $mod_fav->addFavorites($insert_arr);
  100. if ($result)
  101. {
  102. if($fav_type == 'goods') {
  103. $mod_goods = Model('goods');
  104. $mod_goods->editGoodsById(['goods_collect' => ['exp', 'goods_collect + 1']], [$fav_id]);
  105. $favorate = new user_session\favorite();
  106. $favorate->add('goods',$fav_id);
  107. } else {
  108. $favorate = new user_session\favorite();
  109. $favorate->add('brand',$fav_id);
  110. }
  111. session_helper::clear_favorate();
  112. return self::outsuccess(null);
  113. } else {
  114. return self::outerr(errcode::ErrParamter,"参数错误");
  115. }
  116. }
  117. }
  118. public function delOp()
  119. {
  120. $fav_id = intval($_POST['fav_id']);
  121. $fav_type = $_POST['fav_type'];
  122. if ($fav_id <= 0 || empty($fav_type) || !in_array($fav_type,self::$stTypes)) {
  123. return self::outerr(errcode::ErrParamter,"参数错误");
  124. }
  125. $favorate = new user_session\favorite();
  126. $favorate->del($fav_type,$fav_id);
  127. $model_favorites = Model('favorites');
  128. $ret = $model_favorites->delFavorites(['fav_id' => $fav_id,'fav_type' => $fav_type, 'member_id' => $_SESSION['member_id']]);
  129. if($ret == false) {
  130. return self::outerr(errcode::ErrParamter,"该收藏不存在或者已经被删除.");
  131. }
  132. else {
  133. session_helper::clear_favorate();
  134. return self::outsuccess(['fav_id' => $fav_id]);
  135. }
  136. }
  137. }