space_trade.php 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. <?php
  2. /**
  3. * [Discuz!] (C)2001-2099 Comsenz Inc.
  4. * This is NOT a freeware, use is subject to license terms
  5. *
  6. * $Id: space_trade.php 28290 2012-02-27 07:15:44Z monkey $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. $minhot = $_G['setting']['feedhotmin']<1?3:$_G['setting']['feedhotmin'];
  12. $page = empty($_GET['page'])?1:intval($_GET['page']);
  13. if($page<1) $page=1;
  14. $id = empty($_GET['id'])?0:intval($_GET['id']);
  15. $opactives['trade'] = 'class="a"';
  16. if(empty($_GET['view'])) $_GET['view'] = 'we';
  17. $perpage = 20;
  18. $perpage = mob_perpage($perpage);
  19. $start = ($page-1)*$perpage;
  20. ckstart($start, $perpage);
  21. $list = array();
  22. $userlist = array();
  23. $count = 0;
  24. $gets = array(
  25. 'mod' => 'space',
  26. 'uid' => $space['uid'],
  27. 'do' => 'trade',
  28. 'view' => $_GET['view'],
  29. 'order' => $_GET['order'],
  30. 'type' => $_GET['type'],
  31. 'status' => $_GET['status'],
  32. 'fuid' => $_GET['fuid'],
  33. 'searchkey' => $_GET['searchkey']
  34. );
  35. $theurl = 'home.php?'.url_implode($gets);
  36. $multi = '';
  37. $wheresql = '1';
  38. $apply_sql = '';
  39. $f_index = '';
  40. $ordersql = 't.dateline DESC';
  41. $need_count = true;
  42. if($_GET['view'] == 'me') {
  43. $wheresql = "t.sellerid = '$space[uid]'";
  44. } elseif($_GET['view'] == 'tradelog') {
  45. $viewtype = in_array($_GET['type'], array('sell', 'buy')) ? $_GET['type'] : 'sell';
  46. $filter = $_GET['filter'] ? $_GET['filter'] : 'all';
  47. $sqlfield = $viewtype == 'sell' ? 'sellerid' : 'buyerid';
  48. $sqlfilter = '';
  49. $ratestatus = 0;
  50. $item = $viewtype == 'sell' ? 'selltrades' : 'buytrades';
  51. switch($filter) {
  52. case 'attention':
  53. $typestatus = $item; break;
  54. case 'eccredit' :
  55. $typestatus = 'eccredittrades';
  56. $ratestatus = $item == 'selltrades' ? 1 : 2;
  57. break;
  58. case 'all':
  59. $typestatus = ''; break;
  60. case 'success':
  61. $typestatus = 'successtrades'; break;
  62. case 'closed' :
  63. $typestatus = 'closedtrades'; break;
  64. case 'refund' :
  65. $typestatus = 'refundtrades'; break;
  66. case 'unstart' :
  67. $typestatus = 'unstarttrades'; break;
  68. default:
  69. $typestatus = 'tradingtrades';
  70. break;
  71. }
  72. require_once libfile('function/trade');
  73. $typestatus = $typestatus ? trade_typestatus($typestatus) : array();
  74. $srchkey = stripsearchkey($_GET['searchkey']);
  75. $tid = intval($_GET['tid']);
  76. $pid = intval($_GET['pid']);
  77. $sqltid = $tid ? 'tl.tid=\''.$tid.'\' AND '.($pid ? 'tl.pid=\''.$pid.'\' AND ' : '') : '';
  78. $extra .= $srchfid ? '&amp;filter='.$filter : '';
  79. $extratid = $tid ? "&amp;tid=$tid".($pid ? "&amp;pid=$pid" : '') : '';
  80. $num = C::t('forum_tradelog')->count_log($viewtype, $_G['uid'], $tid, $pid, $ratestatus, $typestatus);
  81. $multi = multi($num, $perpage, $page, $theurl);
  82. $tradeloglist = array();
  83. foreach(C::t('forum_tradelog')->fetch_all_log($viewtype, $_G['uid'], $tid, $pid, $ratestatus, $typestatus, $start, $perpage) as $tradelog) {
  84. $tradelog['lastupdate'] = dgmdate($tradelog['lastupdate'], 'u', 1);
  85. $tradelog['attend'] = trade_typestatus($item, $tradelog['status']);
  86. $tradelog['status'] = trade_getstatus($tradelog['status']);
  87. $tradeloglist[] = $tradelog;
  88. }
  89. $creditid = 0;
  90. if($_G['setting']['creditstransextra'][5]) {
  91. $creditid = intval($_G['setting']['creditstransextra'][5]);
  92. } elseif ($_G['setting']['creditstrans']) {
  93. $creditid = intval($_G['setting']['creditstrans']);
  94. }
  95. $extcredits = $_G['setting']['extcredits'];
  96. $orderactives = array($viewtype => ' class="a"');
  97. $need_count = false;
  98. } elseif($_GET['view'] == 'eccredit') {
  99. require_once libfile('function/ec_credit');
  100. $uid = !empty($_GET['uid']) ? intval($_GET['uid']) : $_G['uid'];
  101. loadcache('usergroups');
  102. $member = getuserbyuid($uid);
  103. if(!$member) {
  104. showmessage('member_nonexistence', NULL, array(), array('login' => 1));
  105. }
  106. $member = array_merge($member, C::t('common_member_profile')->fetch($uid), C::t('common_member_status')->fetch($uid), C::t('common_member_field_forum')->fetch($uid));
  107. $member['avatar'] = '<div class="avatar">'.avatar($member['uid']);
  108. if($_G['cache']['usergroups'][$member['groupid']]['groupavatar']) {
  109. $member['avatar'] .= '<br /><img src="'.$_G['cache']['usergroups'][$member['groupid']]['groupavatar'].'" border="0" alt="" />';
  110. }
  111. $member['avatar'] .= '</div>';
  112. $member['taobaoas'] = str_replace("'", '', addslashes($member['taobao']));
  113. $member['regdate'] = dgmdate($member['regdate'], 'd');
  114. $member['usernameenc'] = rawurlencode($member['username']);
  115. $member['buyerrank'] = 0;
  116. if($member['buyercredit']){
  117. foreach($_G['setting']['ec_credit']['rank'] AS $level => $credit) {
  118. if($member['buyercredit'] <= $credit) {
  119. $member['buyerrank'] = $level;
  120. break;
  121. }
  122. }
  123. }
  124. $member['sellerrank'] = 0;
  125. if($member['sellercredit']){
  126. foreach($_G['setting']['ec_credit']['rank'] AS $level => $credit) {
  127. if($member['sellercredit'] <= $credit) {
  128. $member['sellerrank'] = $level;
  129. break;
  130. }
  131. }
  132. }
  133. $caches = array();
  134. foreach(C::t('forum_spacecache')->fetch_all($uid, array('buyercredit', 'sellercredit')) as $cache) {
  135. $caches[$cache['variable']] = dunserialize($cache['value']);
  136. $caches[$cache['variable']]['expiration'] = $cache['expiration'];
  137. }
  138. foreach(array('buyercredit', 'sellercredit') AS $type) {
  139. if(!isset($caches[$type]) || TIMESTAMP > $caches[$type]['expiration']) {
  140. $caches[$type] = updatecreditcache($uid, $type, 1);
  141. }
  142. }
  143. @$buyerpercent = $caches['buyercredit']['all']['total'] ? sprintf('%0.2f', $caches['buyercredit']['all']['good'] * 100 / $caches['buyercredit']['all']['total']) : 0;
  144. @$sellerpercent = $caches['sellercredit']['all']['total'] ? sprintf('%0.2f', $caches['sellercredit']['all']['good'] * 100 / $caches['sellercredit']['all']['total']) : 0;
  145. $need_count = false;
  146. include template('home/space_eccredit');
  147. exit;
  148. } elseif($_GET['view'] == 'onlyuser') {
  149. $uid = !empty($_GET['uid']) ? intval($_GET['uid']) : $_G['uid'];
  150. $wheresql = "t.sellerid = '$uid'";
  151. } else {
  152. space_merge($space, 'field_home');
  153. if($space['feedfriend']) {
  154. $fuid_actives = array();
  155. require_once libfile('function/friend');
  156. $fuid = intval($_GET['fuid']);
  157. if($fuid && friend_check($fuid, $space['uid'])) {
  158. $wheresql = 't.'.DB::field('sellerid', $fuid);
  159. $fuid_actives = array($fuid=>' selected');
  160. } else {
  161. $wheresql = 't.'.DB::field('sellerid', $space['feedfriend']);
  162. $theurl = "home.php?mod=space&uid=$space[uid]&do=$do&view=we";
  163. }
  164. $query = C::t('home_friend')->fetch_all_by_uid($space['uid'], 0, 100, true);
  165. foreach($query as $value) {
  166. $userlist[] = $value;
  167. }
  168. } else {
  169. $need_count = false;
  170. }
  171. }
  172. $actives = array($_GET['view'] =>' class="a"');
  173. if($need_count) {
  174. if($searchkey = stripsearchkey($_GET['searchkey'])) {
  175. $wheresql .= ' AND t.'.DB::field('subject', '%'.$searchkey.'%', 'like');
  176. }
  177. $havecache = false;
  178. $count = C::t('forum_trade')->fetch_all_for_space($wheresql, '', 1);
  179. if($count) {
  180. $query = C::t('forum_trade')->fetch_all_for_space($wheresql, $ordersql, 0, $start, $perpage);
  181. $pids = $aids = $thidden = array();
  182. foreach($query as $value) {
  183. $aids[$value['aid']] = $value['aid'];
  184. $value['dateline'] = dgmdate($value['dateline']);
  185. $pids[] = (float)$value['pid'];
  186. $list[$value['pid']] = $value;
  187. }
  188. $multi = multi($count, $perpage, $page, $theurl);
  189. }
  190. }
  191. if($count) {
  192. $emptyli = array();
  193. if(count($list) % 5 != 0) {
  194. for($i = 0; $i < 5 - count($list) % 5; $i++) {
  195. $emptyli[] = $i;
  196. }
  197. }
  198. }
  199. if($_G['uid']) {
  200. $_GET['view'] = !$_GET['view'] ? 'we' : $_GET['view'];
  201. $navtitle = lang('core', 'title_'.$_GET['view'].'_trade');
  202. if($navtitle == 'title_'.$_GET['view'].'_trade') {
  203. $navtitle = lang('core', 'title_trade');
  204. }
  205. } else {
  206. $navtitle = lang('core', 'title_trade');
  207. }
  208. include_once template("diy:home/space_trade");
  209. ?>