member_snsindex.php 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. <?php
  2. /**
  3. * SNS首页
  4. *********************************/
  5. defined('InShopNC') or exit('Access Invalid!');
  6. class member_snsindexControl extends BaseCircleControl {
  7. const MAX_RECORDNUM = 20;//允许插入新记录的最大条数(注意在sns中该常量是一样的,注意与member_snshome中的该常量一致)
  8. public function __construct(){
  9. parent::__construct();
  10. Tpl::output('relation','3');//为了跟home页面保持一致所以输出此变量
  11. Language::read('member_sns');
  12. //允许插入新记录的最大条数
  13. Tpl::output('max_recordnum',self::MAX_RECORDNUM);
  14. if(!$_SESSION['is_login']){
  15. showDialog('请登录','','error','login_dialog()');
  16. }
  17. }
  18. /**
  19. * 喜欢商品(访客登录后操作)
  20. */
  21. public function editlikeOp(){
  22. $obj_validate = new Validator();
  23. $validate_arr[] = array("input"=>$_GET["id"], "require"=>"true","message"=>Language::get('sns_likegoods_choose'));
  24. $obj_validate -> validateparam = $validate_arr;
  25. $error = $obj_validate->validate();
  26. if ($error != ''){
  27. showDialog($error,'','error');
  28. }
  29. //查询会员信息
  30. $member_model = Model('member');
  31. $member_info = $member_model->infoMember(array('member_id'=>"{$_SESSION['member_id']}",'member_state'=>'1'));
  32. if (empty($member_info)){
  33. showDialog(Language::get('sns_member_error'),'','error');
  34. }
  35. //查询商品信息
  36. $goods_model = Model('goods');
  37. $condition = array();
  38. $condition['goods_id'] = intval($_GET["id"]);
  39. //$condition['goods_state'] = '0';
  40. $goods_info = $goods_model->getGoodsOnlineInfoForShare($condition);
  41. if (empty($goods_info)){
  42. showDialog(Language::get('sns_goods_error'),'','error');
  43. }
  44. $sharegoods_model = Model('sns_sharegoods');
  45. //判断该商品是否已经存在分享记录
  46. $sharegoods_info = $sharegoods_model->getSharegoodsInfo(array('share_memberid'=>"{$_SESSION['member_id']}",'share_goodsid'=>"{$goods_info['goods_id']}"));
  47. if (!empty($sharegoods_info) && $sharegoods_info['share_islike'] == 1){
  48. showDialog(Language::get('sns_likegoods_exist'),'','error');
  49. }
  50. if (empty($sharegoods_info)){
  51. //添加分享商品信息
  52. $insert_arr = array();
  53. $insert_arr['share_goodsid'] = $goods_info['goods_id'];
  54. $insert_arr['share_memberid'] = $_SESSION['member_id'];
  55. $insert_arr['share_membername'] = $_SESSION['member_name'];
  56. $insert_arr['share_content'] = '';
  57. $insert_arr['share_likeaddtime'] = time();
  58. $insert_arr['share_privacy'] = 0;
  59. $insert_arr['share_commentcount'] = 0;
  60. $insert_arr['share_islike'] = 1;
  61. $result = $sharegoods_model->sharegoodsAdd($insert_arr);
  62. unset($insert_arr);
  63. }else {
  64. //更新分享商品信息
  65. $update_arr = array();
  66. $update_arr['share_likeaddtime'] = time();
  67. $update_arr['share_islike'] = 1;
  68. $result = $sharegoods_model->editSharegoods($update_arr,array('share_id'=>"{$sharegoods_info['share_id']}"));
  69. unset($update_arr);
  70. }
  71. if ($result){
  72. //商品缓存数据更新
  73. //生成缓存的键值
  74. $hash_key = $goods_info['goods_id'];
  75. //先查找$hash_key缓存
  76. if ($_cache = rcache($hash_key,'product')){
  77. $_cache['likenum'] = intval($_cache['likenum'])+1;
  78. //缓存商品信息
  79. wcache($hash_key,$_cache,'product');
  80. }
  81. //更新SNS商品表信息
  82. $snsgoods_model = Model('sns_goods');
  83. $snsgoods_info = $snsgoods_model->getGoodsInfo(array('snsgoods_goodsid'=>"{$goods_info['goods_id']}"));
  84. if (empty($snsgoods_info)){
  85. //添加SNS商品
  86. $insert_arr = array();
  87. $insert_arr['snsgoods_goodsid'] = $goods_info['goods_id'];
  88. $insert_arr['snsgoods_goodsname'] = $goods_info['goods_name'];
  89. $insert_arr['snsgoods_goodsimage'] = $goods_info['goods_image'];
  90. $insert_arr['snsgoods_goodsprice'] = $goods_info['goods_price'];
  91. $insert_arr['snsgoods_storeid'] = $goods_info['store_id'];
  92. $insert_arr['snsgoods_storename'] = $goods_info['store_name'];
  93. $insert_arr['snsgoods_addtime'] = time();
  94. $insert_arr['snsgoods_likenum'] = 1;
  95. $insert_arr['snsgoods_likemember'] = "{$_SESSION['member_id']}";
  96. $insert_arr['snsgoods_sharenum'] = 0;
  97. $snsgoods_model->goodsAdd($insert_arr);
  98. unset($insert_arr);
  99. }else {
  100. //更新SNS商品
  101. $update_arr = array();
  102. $update_arr['snsgoods_likenum'] = intval($snsgoods_info['snsgoods_likenum'])+1;
  103. $likemember_arr = array();
  104. if (!empty($snsgoods_info['snsgoods_likemember'])){
  105. $likemember_arr = explode(',',$snsgoods_info['snsgoods_likemember']);
  106. }
  107. $likemember_arr[] = $_SESSION['member_id'];
  108. $update_arr['snsgoods_likemember'] = implode(',',$likemember_arr);
  109. $snsgoods_model->editGoods($update_arr,array('snsgoods_goodsid'=>"{$goods_info['goods_id']}"));
  110. }
  111. //添加喜欢动态
  112. $tracelog_model = Model('sns_tracelog');
  113. $insert_arr = array();
  114. $insert_arr['trace_originalid'] = '0';
  115. $insert_arr['trace_originalmemberid'] = '0';
  116. $insert_arr['trace_memberid'] = $_SESSION['member_id'];
  117. $insert_arr['trace_membername'] = $_SESSION['member_name'];
  118. $insert_arr['trace_memberavatar'] = $member_info['member_avatar'];
  119. $insert_arr['trace_title'] = Language::get('sns_likegoods_title');
  120. $content_str = '';
  121. $content_str .= "<div class=\"fd-media\">
  122. <div class=\"goodsimg\"><a target=\"_blank\" href=\"".urlShop('goods', 'index', array('goods_id'=>$goods_info['goods_id']))."\"><img src=\"".thumb($goods_info, 240)."\" onload=\"javascript:DrawImage(this,120,120);\" alt=\"{$goods_info['goods_name']}\"></a></div>
  123. <div class=\"goodsinfo\">
  124. <dl>
  125. <dt><a target=\"_blank\" href=\"".urlShop('goods', 'index', array('goods_id'=>$goods_info['goods_id']))."\">".$goods_info['goods_name']."</a></dt>
  126. <dd>".Language::get('sns_sharegoods_price').Language::get('nc_colon').Language::get('currency').$goods_info['goods_price']."</dd>
  127. <dd>".Language::get('sns_sharegoods_freight').Language::get('nc_colon').Language::get('currency').$goods_info['goods_freight']."</dd>
  128. <dd nctype=\"collectbtn_{$goods_info['goods_id']}\"><a href=\"javascript:void(0);\" onclick=\"javascript:collect_goods(\'{$goods_info['goods_id']}\',\'succ\',\'collectbtn_{$goods_info['goods_id']}\');\">".Language::get('sns_sharegoods_collect')."</a>&nbsp;&nbsp;(".$goods_info['goods_collect'].Language::get('sns_collecttip').")</dd>
  129. </dl>
  130. </div>
  131. </div>";
  132. $insert_arr['trace_content'] = $content_str;
  133. $insert_arr['trace_addtime'] = time();
  134. $insert_arr['trace_state'] = '0';
  135. $insert_arr['trace_privacy'] = 0;
  136. $insert_arr['trace_commentcount'] = 0;
  137. $insert_arr['trace_copycount'] = 0;
  138. $result = $tracelog_model->tracelogAdd($insert_arr);
  139. $js = "var obj = $(\"#likestat_{$goods_info['goods_id']}\"); $(\"#likestat_{$goods_info['goods_id']}\").find('i').addClass('noaction');$(obj).find('a').addClass('noaction'); var countobj=$('[nc_type=\'likecount_{$goods_info['goods_id']}\']');$(countobj).html(parseInt($(countobj).text())+1);";
  140. showDialog(Language::get('nc_common_op_succ'),'','succ',$js);
  141. }else {
  142. showDialog(Language::get('nc_common_op_fail'),'','error');
  143. }
  144. }
  145. }