GoodsController.class.php 83 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112
  1. <?php
  2. /**
  3. * lionfish 商城系统
  4. *
  5. * ==========================================================================
  6. * @link http://www.liofis.com/
  7. * @copyright Copyright (c) 2015 liofis.com.
  8. * @license http://www.liofis.com/license.html License
  9. * ==========================================================================
  10. *
  11. * @author fish
  12. *
  13. */
  14. namespace Home\Controller;
  15. class GoodsController extends CommonController
  16. {
  17. /**
  18. * 获取商品规格数据
  19. **/
  20. public function get_goods_option_data()
  21. {
  22. $gpc = I('request.');
  23. $id = $gpc['id'];
  24. $token = $gpc['token'];
  25. $sku_str = $gpc['sku_str'];
  26. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where(array('token' => $token))->find();
  27. $member_id = $weprogram_token['member_id'];
  28. $goods_option_mult_value = M('lionfish_comshop_goods_option_item_value')->where(array('goods_id' => $id))->order('id asc')->select();
  29. $goods_option_mult_value_ref = array();
  30. foreach ($goods_option_mult_value as $key => $val) {
  31. $image_info = D('Home/Front')->get_goods_sku_image($val['id']);
  32. $val['image'] = isset($image_info['thumb']) ? tomedia($image_info['thumb']) : '';
  33. $val['pin_price'] = $val['pinprice'];
  34. $val['dan_price'] = $val['marketprice'];
  35. $goods_option_mult_value[$key] = $val;
  36. $goods_option_mult_value_ref[$val['option_item_ids']] = $val;
  37. }
  38. $need_data = array();
  39. //$level_info = $goods_model->get_member_level_info($member_id, $id);
  40. $level_info = array();
  41. $member_disc = 100;
  42. if (!empty($level_info)) {
  43. $member_disc = $level_info['member_discount'];
  44. }
  45. //$max_member_level = M('member_level')->order('level desc')->find();
  46. $max_member_level = array();
  47. $goods_option_mult_value_ref[$sku_str]['member_pin_price'] = round(($goods_option_mult_value_ref[$sku_str]['pin_price'] * $member_disc) / 100, 2);
  48. $goods_option_mult_value_ref[$sku_str]['memberprice'] = round(($goods_option_mult_value_ref[$sku_str]['dan_price'] * $member_disc) / 100, 2);
  49. $goods_option_mult_value_ref[$sku_str]['max_member_pin_price'] = 0;
  50. $goods_option_mult_value_ref[$sku_str]['max_memberprice'] = 0;
  51. if (!empty($max_member_level)) {
  52. $goods_option_mult_value_ref[$sku_str]['max_member_pin_price'] = round(($goods_option_mult_value_ref[$sku_str]['pin_price'] * (100 - $max_member_level['discount'])) / 100, 2);
  53. $goods_option_mult_value_ref[$sku_str]['max_memberprice'] = round(($goods_option_mult_value_ref[$sku_str]['dan_price'] * (100 - $max_member_level['discount'])) / 100, 2);
  54. }
  55. $need_data['value'] = $goods_option_mult_value_ref[$sku_str];
  56. echo json_encode(array('code' => 0, 'data' => $need_data));
  57. die();
  58. }
  59. public function getQuan()
  60. {
  61. $_GPC = I('request.');
  62. $token = $_GPC['token'];
  63. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where(array('token' => $token))->find();
  64. $member_id = $weprogram_token['member_id'];
  65. $result = array('code' => 0, 'msg' => '被抢光啦');
  66. $quan_id = $_GPC['quan_id'];
  67. if ($quan_id > 0) {
  68. $res = D('Home/Voucher')->send_user_voucher_byId($quan_id, $member_id, true);
  69. //1 被抢光了 2 已领过 3 领取成功
  70. $mes_arr = array(1 => '抢光了', 2 => '已领过', 3 => '领取成功', 4 => '新人专享优惠券');
  71. $result['code'] = $res;
  72. $result['msg'] = $mes_arr[$res];
  73. $result['is_hide'] = D('Home/Voucher')->checkUserCanGetOneVoucher($quan_id, $member_id, true);
  74. }
  75. echo json_encode($result);
  76. die();
  77. }
  78. public function get_seller_quan()
  79. {
  80. $_GPC = I('request.');
  81. $token = isset($_GPC['token']) && !empty($_GPC['token']) ? $_GPC['token'] : '';
  82. $member_id = 0;
  83. if (!empty($token)) {
  84. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where(array('token' => $token))->find();
  85. if (!empty($weprogram_token)) {
  86. $member_id = $weprogram_token['member_id'];
  87. }
  88. }
  89. $where = "";
  90. $where = " and (total_count =-1 or total_count>send_count) and is_index_alert=0 and is_index_show=1 and ((timelimit=1 and end_time>" . time() . ") or timelimit=0 ) ";
  91. $quan_list = M()->query("select * from " . C('DB_PREFIX') . "lionfish_comshop_coupon where 1 {$where} order by displayorder desc ,id asc limit 100 ");
  92. $need_list = array();
  93. foreach ($quan_list as $key => $val) {
  94. $val['thumb'] = tomedia($val['thumb']);
  95. $voucher_id = $val['id'];
  96. $voucher_info = M('lionfish_comshop_coupon')->where(array('id' => $voucher_id))->find();
  97. if ($val['total_count'] != -1 && $voucher_info['total_count'] <= $voucher_info['send_count']) {
  98. continue;
  99. } else {
  100. $get_count = M('lionfish_comshop_coupon_list')->where(array('user_id' => $member_id, 'voucher_id' => $voucher_id))->count();
  101. if ($voucher_info['person_limit_count'] > 0 && $voucher_info['person_limit_count'] <= $get_count) {
  102. continue;
  103. }
  104. }
  105. //判断是否新人券
  106. if ($voucher_info['is_new_man'] == 1) {
  107. //检测是否购买过
  108. $od_status = "1,2,4,6,7,8,9,10,11,12,14";
  109. $buy_count_sql = "select count(order_id) as count from " . C('DB_PREFIX') . "lionfish_comshop_order
  110. where order_status_id in ({$od_status}) and member_id={$member_id} ";
  111. $buy_count_arr = M()->query($buy_count_sql);
  112. $buy_count = $buy_count_arr[0]['count'];
  113. if (!empty($buy_count) && $buy_count > 0) {
  114. continue;
  115. }
  116. }
  117. $need_list[$key] = $val;
  118. }
  119. $where2 = "";
  120. $where2 = " and (total_count=-1 or total_count>send_count) and is_index_alert =1 and (end_time>" . time() . " or timelimit =0 ) ";
  121. $quan_list2 = M()->query("select * from " . C('DB_PREFIX') . "lionfish_comshop_coupon where 1 {$where2} order by displayorder desc ,id asc limit 100 ");
  122. $need_list2 = array();
  123. //if( !empty($member_id) && $member_id > 0 )
  124. //{
  125. foreach ($quan_list2 as $key => $val) {
  126. $val['thumb'] = tomedia($val['thumb']);
  127. $voucher_id = $val['id'];
  128. $voucher_info = M('lionfish_comshop_coupon')->where(array('id' => $voucher_id))->find();
  129. if ($voucher_info['total_count'] != -1 && $voucher_info['total_count'] <= $voucher_info['send_count']) {
  130. continue;
  131. } else {
  132. $get_count = M('lionfish_comshop_coupon_list')->where(array('user_id' => $member_id, 'voucher_id' => $voucher_id))->count();
  133. if ($voucher_info['person_limit_count'] > 0 && $voucher_info['person_limit_count'] <= $get_count) {
  134. continue;
  135. }
  136. }
  137. if ($member_id > 0) { //判断是否新人券
  138. if ($voucher_info['is_new_man'] == 1) {
  139. //检测是否购买过
  140. $od_status = "1,2,4,6,7,8,9,10,11,12,14";
  141. $buy_count_sql = "select count(order_id) as count from " . C('DB_PREFIX') . "lionfish_comshop_order
  142. where order_status_id in ({$od_status}) and member_id={$member_id} ";
  143. $buy_count_arr = M()->query($buy_count_sql);
  144. $buy_count = $buy_count_arr[0]['count'];
  145. if (!empty($buy_count) && $buy_count > 0) {
  146. continue;
  147. }
  148. }
  149. //如果有未使用完的就不送了吧
  150. if ($member_id > 0) {
  151. $get_unuse_count = M('lionfish_comshop_coupon_list')->where(array('consume' => 'N', 'user_id' => $member_id, 'voucher_id' => $voucher_id))->count();
  152. // if( empty($get_unuse_count) || $get_unuse_count <=0 )
  153. // {
  154. D('Home/Voucher')->send_user_voucher_byId($voucher_id, $member_id, true);
  155. // }
  156. }
  157. }
  158. $need_list2[$key] = $val;
  159. }
  160. //}
  161. echo json_encode(array('code' => 0, 'quan_list' => $need_list, 'alert_quan_list' => $need_list2));
  162. die();
  163. }
  164. /**
  165. * 商品评价
  166. **/
  167. public function comment_info()
  168. {
  169. $_GPC = I('request.');
  170. $token = $_GPC['token'];
  171. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where(array('token' => $token))->find();
  172. $member_id = $weprogram_token['member_id'];
  173. $goods_id = $_GPC['goods_id'];
  174. $result = array('code' => 2);
  175. if (empty($member_id)) {
  176. //$result['msg'] = '未登录';
  177. //echo json_encode($result);
  178. //die();
  179. }
  180. $goods_info = M('lionfish_comshop_goods')->where(array('id' => $goods_id))->find();
  181. if (empty($goods_info)) {
  182. $result = array('code' => 2);
  183. $result['msg'] = '没有此商品';
  184. echo json_encode($result);
  185. die();
  186. }
  187. $page = isset($_GPC['page']) ? $_GPC['page'] : 1;
  188. $per_page = isset($_GPC['per_page']) ? $_GPC['per_page'] : 10;
  189. // $per_page = 4; C('DB_PREFIX')
  190. $offset = ($page - 1) * $per_page;
  191. $sql = "select o.*,m.username as name2,m.avatar as avatar2 from " . C('DB_PREFIX') . "lionfish_comshop_order_comment as o left join " . C('DB_PREFIX') . "lionfish_comshop_member as m on o.member_id=m.member_id
  192. where o.state =1 and o.goods_id = {$goods_id} order by o.add_time desc limit {$offset},{$per_page}";
  193. $list = M()->query($sql);
  194. foreach ($list as $key => $val) {
  195. if (empty($val['user_name'])) {
  196. $val['name'] = $val['name2'];
  197. $val['avatar'] = tomedia($val['avatar2']);
  198. } else {
  199. $val['name'] = $val['user_name'];
  200. $val['avatar'] = tomedia($val['avatar']);
  201. }
  202. if ($val['type'] == 0) {
  203. $order_goods_info = M('lionfish_comshop_order_goods')->field('order_goods_id')->where(array('order_id' => $val['order_id'], 'goods_id' => $id))->find();
  204. $order_option_info = M('lionfish_comshop_order_option')->field('value')->where(array('order_goods_id' => $order_goods_info['order_goods_id'], 'order_id' => $val['order_id']))->select();
  205. $option_arr = array();
  206. foreach ($order_option_info as $option) {
  207. $option_arr[] = $option['value'];
  208. }
  209. $option_str = implode(',', $option_arr);
  210. } else {
  211. $option_str = '';
  212. }
  213. $img_str = unserialize($val['images']);
  214. if (!empty($val['images']) && $img_str != 'undefined') {
  215. // $img_str = unserialize($val['images']);
  216. $img_list = explode(',', $img_str);
  217. if (!empty($img_list)) {
  218. $need_img_list = array();
  219. foreach ($img_list as $kk => $vv) {
  220. if (empty($vv)) {
  221. continue;
  222. }
  223. $vv = tomedia($vv);
  224. $img_list[$kk] = $vv;
  225. $need_img_list[$kk] = $vv;
  226. }
  227. $val['images'] = $need_img_list;
  228. } else {
  229. $val['images'] = array();
  230. }
  231. } else {
  232. $val['images'] = array();
  233. }
  234. //<view class="time span">{{item.addtime}}</view>
  235. // <view class="style span">{{item.option_str}} </view>
  236. $val['add_time'] = date('Y-m-d', $val['add_time']);
  237. $val['option_str'] = $option_str;
  238. $list[$key] = $val;
  239. }
  240. $result = array();
  241. $result['code'] = 0;
  242. $result['list'] = $list;
  243. if (!empty($list)) {
  244. $result['code'] = 0;
  245. } else {
  246. $result['code'] = 1;
  247. }
  248. echo json_encode($result);
  249. die();
  250. }
  251. public function get_user_goods_qrcode()
  252. {
  253. $gpc = I('request.');
  254. $id = $gpc['goods_id'];
  255. $community_id = $gpc['community_id'];
  256. $token = $gpc['token'];
  257. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where(array('token' => $token))->find();
  258. $member_id = $weprogram_token['member_id'];
  259. if (!empty($member_id)) {
  260. $goods_share_image = M('lionfish_comshop_goods_share_image')->where(array('member_id' => $member_id, 'goods_id' => $id))->find();
  261. if (!empty($goods_share_image) && false) {
  262. $result = array('code' => 0, 'image_path' => $goods_share_image['image_path']);
  263. echo json_encode($result);
  264. die();
  265. } else {
  266. $member_info = M('lionfish_comshop_member')->field('avatar,username,wepro_qrcode')->where(array('member_id' => $member_id))->find();
  267. $goods_model = D('Home/Pingoods');
  268. if (!empty($member_info['wepro_qrcode']) && false) {
  269. $wepro_qrcode = $member_info['wepro_qrcode'];
  270. } else {
  271. $wepro_qrcode = $goods_model->get_goods_user_avatar($member_info['avatar'], $member_id, 6);
  272. }
  273. $goods_description = M('lionfish_comshop_good_common')->field('wepro_qrcode_image')->where(array('goods_id' => $id))->find();
  274. if (empty($goods_description['wepro_qrcode_image']) || true) {
  275. $goods_model->get_weshare_image($id, $member_id);
  276. $goods_description = M('lionfish_comshop_good_common')->field('wepro_qrcode_image')->where(array('goods_id' => $id))->find();
  277. }
  278. $rocede_path = $goods_model->_get_goods_user_wxqrcode($id, $member_id, $community_id);
  279. $res = $goods_model->_get_compare_qrcode_bgimg('Uploads/image/' . $goods_description['wepro_qrcode_image'], $rocede_path, $wepro_qrcode, $member_info['username']);
  280. $url = D('Home/Front')->get_config_by_name('shop_domain') . '/';
  281. $attachment_type_arr = M('lionfish_comshop_config')->where(array('name' => 'attachment_type'))->find();
  282. $fullname = ROOT_PATH . $res['full_path'];
  283. $data = array();
  284. $data['member_id'] = $member_id;
  285. $data['goods_id'] = $id;
  286. if ($attachment_type_arr['value'] == 1) {
  287. save_image_to_qiniu($fullname, $res['full_path']);
  288. $qiniu_url = D('Seller/Front')->get_config_by_name('qiniu_url');
  289. $data['image_path'] = $qiniu_url . $res['full_path'];
  290. } else if ($attachment_type_arr['value'] == 2) {
  291. save_image_to_alioss($fullname, $res['full_path']);
  292. $alioss_url = D('Seller/Front')->get_config_by_name('alioss_url');
  293. $data['image_path'] = $alioss_url . $res['full_path'];
  294. } else if ($attachment_type_arr['value'] == 3) {
  295. save_image_to_txyun($fullname, $res['full_path']);
  296. $txyun_url = D('Seller/Front')->get_config_by_name('tx_url');
  297. $data['image_path'] = $txyun_url . $res['full_path'];
  298. } else {
  299. $data['image_path'] = $url . $res['full_path'];
  300. }
  301. $data['addtime'] = time();
  302. M('lionfish_comshop_goods_share_image')->add($data);
  303. $result = array('code' => 0, 'image_path' => $data['image_path']);
  304. echo json_encode($result);
  305. die();
  306. }
  307. } else {
  308. $result = array('code' => 1);
  309. echo json_encode($result);
  310. die();
  311. }
  312. }
  313. public function doPageUpload()
  314. {
  315. //$image_dir = ROOT_PATH.'Uploads/image/';
  316. //$send_path = 'goods'.date('Y-m-d').'/';
  317. //$image_dir .= $send_path;
  318. //RecursiveMkdir($image_dir);
  319. $uptypes = array('image/jpg', 'image/jpeg', 'image/png', 'image/pjpeg', 'image/gif', 'image/bmp', 'image/x-png');
  320. $max_file_size = 10000000; //上传文件大小限制, 单位BYTE
  321. $send_path = "Uploads/image/goods/" . date('Y-m-d') . "/";
  322. $send_path_re = "goods/" . date('Y-m-d') . "/";
  323. $destination_folder = ROOT_PATH . $send_path; //上传文件路径
  324. $result = array();
  325. $result['code'] = 1;
  326. RecursiveMkdir($destination_folder);
  327. //fileinfo 检测begin
  328. $fip = finfo_open(FILEINFO_MIME_TYPE);
  329. $min_result = finfo_file($fip, $_FILES['upfile']['tmp_name']);
  330. fclose($fip);
  331. $min_type_arr = array();
  332. $min_type_arr[] = 'image/jpeg';
  333. $min_type_arr[] = 'image/gif';
  334. $min_type_arr[] = 'image/jpg';
  335. $min_type_arr[] = 'image/png';
  336. $min_type_arr[] = 'video/mp4';
  337. if (!in_array($min_result, $min_type_arr)) {
  338. die();
  339. }
  340. //fileinfo 检测end
  341. if (!is_uploaded_file($_FILES["upfile"]['tmp_name'])) //是否存在文件
  342. {
  343. $result['msg'] = "图片不存在!";
  344. echo json_encode($result);
  345. exit;
  346. }
  347. $file = $_FILES["upfile"];
  348. if ($max_file_size < $file["size"]) //检查文件大小
  349. {
  350. $result['msg'] = "文件太大!";
  351. echo json_encode($result);
  352. exit;
  353. }
  354. if (!in_array($file["type"], $uptypes)) //检查文件类型
  355. {
  356. $result['msg'] = "文件类型不符!" . $file["type"];
  357. echo json_encode($result);
  358. exit;
  359. }
  360. $filename = $file["tmp_name"];
  361. $pinfo = pathinfo($file["name"]);
  362. $ftype = $pinfo['extension'];
  363. $extension = strtolower($ftype);
  364. // 检查文件扩展名是否为php
  365. if ($extension == 'php') {
  366. die('上传的文件不能是PHP文件!');
  367. }
  368. $file_name = str_shuffle(time() . rand(111111, 999999)) . "." . $ftype;
  369. $destination = $destination_folder . $file_name;
  370. if (!move_uploaded_file($filename, $destination)) {
  371. $result['msg'] = "移动文件出错!";
  372. echo json_encode($result);
  373. exit;
  374. }
  375. $pinfo = pathinfo($destination);
  376. $fname = $pinfo['basename'];
  377. //6956182894169131.png
  378. $thumb = resize($send_path_re . $file_name, 200, 200);
  379. $image_thumb = $thumb;
  380. $image_o = $send_path . $file_name;
  381. $url = D('Home/Front')->get_config_by_name('shop_domain') . '/';
  382. echo json_encode(array('code' => 0, 'image_thumb' => $url . $image_thumb, 'image_o' => $url . $image_o, 'image_o_full' => $url . tomedia($send_path_re . $file_name)));
  383. die();
  384. }
  385. public function notify_order()
  386. {
  387. $notify_order_list_time = S('notify_order_list_time2');
  388. $now_time = time();
  389. if (isset($notify_order_list_time) && $notify_order_list_time > 0 && $now_time - $notify_order_list_time < 3600) {
  390. $result_list = S('notify_order_list');
  391. if (!isset($result_list) || empty($result_list)) {
  392. echo json_encode(array('code' => 1));
  393. die();
  394. } else {
  395. $result_key = array_rand($result_list, 1);
  396. $result = $result_list[$result_key];
  397. echo json_encode($result);
  398. die();
  399. }
  400. } else {
  401. $notify_order_list = M('lionfish_comshop_notify_order')->order('rand()')->group('member_id')->limit(100)->select();
  402. $result = array();
  403. if (!empty($notify_order_list)) {
  404. $need_data = array();
  405. foreach ($notify_order_list as $notify_order) {
  406. $miao = (time() - $notify_order['order_time']) % 60;
  407. $result_data = array();
  408. $result_data['code'] = 0;
  409. $result_data['username'] = $notify_order['username'];
  410. $result_data['avatar'] = $notify_order['avatar'];
  411. $result_data['order_id'] = $notify_order['order_id'];
  412. $result_data['order_url'] = $notify_order['order_url'];
  413. $result_data['miao'] = $miao;
  414. $need_data[] = $result_data;
  415. }
  416. S('notify_order_list_time2', time());
  417. S('notify_order_list', $need_data);
  418. $result_key = array_rand($need_data, 1);
  419. $result = $need_data[$result_key];
  420. }
  421. if (empty($result)) {
  422. echo json_encode(array('code' => 1));
  423. die();
  424. } else {
  425. echo json_encode($result);
  426. die();
  427. }
  428. }
  429. die();
  430. //
  431. $notify_order = M('lionfish_comshop_notify_order')->order('state asc , id asc')->find();
  432. $result = array('code' => 1);
  433. if (empty($notify_order)) {
  434. echo json_encode($result);
  435. die();
  436. }
  437. M()->execute("update " . C('DB_PREFIX') . "lionfish_comshop_notify_order set state =state+1 where id=" . $notify_order['id']);
  438. //->save( array('state' => 1) );
  439. echo json_encode($result);
  440. die();
  441. }
  442. public function load_buy_recordlist()
  443. {
  444. $gpc = I('request.');
  445. $goods_id = $gpc['goods_id'];
  446. $pageNum = $gpc['pageNum'];
  447. $per_page = 10;
  448. $offset = ($pageNum - 1) * $per_page;
  449. $limit = "{$offset}, {$per_page}";
  450. $list = D('Home/Frontorder')->get_goods_buy_record($goods_id, $limit);
  451. if (!empty($list['list'])) {
  452. echo json_encode(array('code' => 0, 'data' => $list['list']));
  453. die();
  454. } else {
  455. echo json_encode(array('code' => 1));
  456. die();
  457. }
  458. }
  459. public function get_goods_detail()
  460. {
  461. $gpc = I('request.');
  462. $id = $gpc['id'];
  463. $pin_id = isset($gpc['pin_id']) ? $gpc['pin_id'] : 0;
  464. $token = $gpc['token'];
  465. $head_id = $gpc['community_id'];
  466. $needauth = false;
  467. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where(array('token' => $token))->find();
  468. if (empty($weprogram_token) || empty($weprogram_token['member_id'])) {
  469. $needauth = true;
  470. }
  471. $member_id = $weprogram_token['member_id'];
  472. $need_data = array();
  473. $sql = "select g.*,gd.content,gd.begin_time,gd.end_time,gd.video,gd.is_take_fullreduction,gd.goods_share_image,gd.share_title,gd.quality,gd.pick_up_type,gd.pick_up_modify,gd.one_limit_count,gd.total_limit_count,gd.seven,gd.repair,gd.labelname,gd.share_title,gd.relative_goods_list,gd.is_show_arrive,gd.is_modify_sendscore,gd.send_socre,gd.diy_arrive_switch,gd.diy_arrive_details,gd.is_only_hexiao,gd.supply_id,gd.oneday_limit_count,gd.total_limit_count,gd.one_limit_count,gd.goods_start_count
  474. from " . C('DB_PREFIX') . "lionfish_comshop_goods g," . C('DB_PREFIX') . "lionfish_comshop_good_common gd
  475. where g.id=gd.goods_id and g.id=" . $id;
  476. $goods_arr = M()->query($sql);
  477. $goods = $goods_arr[0];
  478. //mead-2
  479. // $goods['price'] = meadMoney($goods['price'],$goods['mead_money_num']);
  480. // $goods['productprice'] = meadMoney($goods['productprice'],$goods['mead_money_num']);
  481. $is_only_hexiao = $goods['is_only_hexiao'];
  482. $goods['nogoods'] = false;
  483. if (empty($goods_arr[0])) {
  484. $goods['nogoods'] = true;
  485. }
  486. $goods['goods_id'] = $id;
  487. $is_open_fullreduction = D('Home/Front')->get_config_by_name('is_open_fullreduction');
  488. $full_money = D('Home/Front')->get_config_by_name('full_money');
  489. $full_reducemoney = D('Home/Front')->get_config_by_name('full_reducemoney');
  490. if (empty($full_reducemoney) || $full_reducemoney <= 0) {
  491. $is_open_fullreduction = 0;
  492. }
  493. if ($is_open_fullreduction == 0) {
  494. $goods['is_take_fullreduction'] = 0;
  495. }
  496. $goods['full_money'] = $full_money;
  497. $goods['full_reducemoney'] = $full_reducemoney;
  498. $goods['is_video'] = 0;
  499. $goods['video_size_width'] = 0;
  500. $goods['vedio_size_height'] = 0;
  501. $goods['video_src'] = '';
  502. //goods_share_image
  503. if (!empty($goods['goods_share_image'])) {
  504. $goods['goods_share_image'] = tomedia($goods['goods_share_image']);
  505. }
  506. //video
  507. if (!empty($goods['video'])) {
  508. $goods['video'] = tomedia($goods['video']);
  509. }
  510. $goods['goodsname'] = htmlspecialchars_decode($goods['goodsname']);
  511. $goods['description'] = htmlspecialchars_decode($goods['content']);
  512. $goods['description'] = htmlspecialchars_decode($goods['description']);
  513. $qian = array(
  514. "\r\n"
  515. );
  516. $hou = array(
  517. "<br/>"
  518. );
  519. $goods['subtitle'] = str_replace($qian, $hou, $goods['subtitle']);
  520. $hou = array(
  521. "@EOF@"
  522. );
  523. $today_time = strtotime(date('Y-m-d') . ' 00:00:00');
  524. //pick_up_type
  525. //1、当日达,2、次日达,3隔日达,4 自定义
  526. if ($goods['pick_up_type'] == 0) {
  527. $goods['pick_up_modify'] = date('Y-m-d', $today_time);
  528. } else if ($goods['pick_up_type'] == 1) {
  529. $goods['pick_up_modify'] = date('Y-m-d', $today_time + 86400);
  530. } else if ($goods['pick_up_type'] == 2) {
  531. $goods['pick_up_modify'] = date('Y-m-d', $today_time + 86400 * 2);
  532. }
  533. //gd.begin_time,gd.end_time,
  534. //over_type =0 未开始,over_type =2已结束,over_type =1距结束
  535. $now_time = time();
  536. if ($goods['begin_time'] > $now_time) {
  537. $goods['over_type'] = 0;
  538. } else if ($goods['begin_time'] <= $now_time && $goods['end_time'] > $now_time) {
  539. $goods['over_type'] = 1;
  540. } else if ($goods['end_time'] < $now_time) {
  541. $goods['over_type'] = 2;
  542. $goods['end_date'] = date('m/d H:i', $goods['end_time']);
  543. }
  544. $goods['activity_summary'] = '';
  545. $onegood_image = D('Home/Pingoods')->get_goods_images($id);
  546. if (!empty($onegood_image)) {
  547. $goods['image_thumb'] = tomedia($onegood_image['image']);
  548. $goods['image'] = tomedia($onegood_image['image']);
  549. }
  550. $buy_record_arr = D('Home/Frontorder')->get_goods_buy_record($id, 9);
  551. $goods_image = D('Home/Pingoods')->get_goods_images($id, 10);
  552. if (isset($goods_image)) {
  553. foreach ($goods_image as $k => $v) {
  554. $goods_image[$k]['image'] = tomedia($v['image']);
  555. }
  556. }
  557. $goods['seller_count'] += $goods['sales'];
  558. $goods_price_arr = D('Home/Pingoods')->get_goods_price($id, $member_id);
  559. $goods['danprice'] = $goods_price_arr['danprice'];
  560. $goods['card_price'] = $goods_price_arr['card_price'];//会员卡价格
  561. //mead-2
  562. // $goods['levelprice'] = $goods_price_arr['levelprice']; // 会员等级价格
  563. $goods['levelprice'] = meadMoney($goods_price_arr['levelprice'], $goods['mead_money_num']);
  564. $goods['is_mb_level_buy'] = $goods_price_arr['is_mb_level_buy']; //是否 会员等级 可享受
  565. if ($goods['type'] == 'integral') {
  566. $goods['price'] = round($goods_price_arr['price'], 0);
  567. $goods['productprice'] = round($goods['productprice'], 0);
  568. $price_dol = explode(' ', $goods_price_arr['price']);
  569. $price_dol[0] = round($price_dol[0], 0);
  570. } else {
  571. $goods['price'] = $goods_price_arr['price'];
  572. $price_dol = explode('.', $goods_price_arr['price']);
  573. }
  574. $open_buy_send_score = D('Home/Front')->get_config_by_name('open_buy_send_score');
  575. if (!isset($open_buy_send_score) || $open_buy_send_score == 0) {
  576. $open_buy_send_score = 0;
  577. }
  578. $goods['open_buy_send_score'] = $open_buy_send_score;
  579. //open_buy_send_score send_socre
  580. if ($goods['is_modify_sendscore'] != 1) {
  581. $open_buy_send_score = D('Home/Front')->get_config_by_name('open_buy_send_score');
  582. if (isset($open_buy_send_score) && $open_buy_send_score == 1) {
  583. $money_for_score = D('Home/Front')->get_config_by_name('money_for_score');
  584. if (isset($money_for_score) && $money_for_score > 0) {
  585. $goods['is_modify_sendscore'] = 1;
  586. $goods['send_socre'] = round($money_for_score * $goods['price'], 2);
  587. }
  588. }
  589. }
  590. $goods['price_front'] = $price_dol[0];
  591. $goods['price_after'] = isset($price_dol[1]) ? $price_dol[1] : '';
  592. $labelname_arr = unserialize($goods['labelname']);
  593. $tag_arr = array();
  594. if (!empty($labelname_arr)) {
  595. $goods['tag'] = $labelname_arr;
  596. } else {
  597. if ($goods['quality'] == 1) {
  598. $tag_arr[] = '正品保证';
  599. }
  600. if ($goods['seven'] == 1) {
  601. $tag_arr[] = '7天无理由退换';
  602. }
  603. if ($goods['repair'] == 1) {
  604. $tag_arr[] = '保修';
  605. }
  606. $goods['tag'] = $tag_arr;
  607. }
  608. $goods['fan_image'] = $goods['image'];
  609. $one_image = D('Home/Pingoods')->get_goods_images($id, 1);
  610. $goods['one_image'] = tomedia($one_image['image']);
  611. $pin_info = array();
  612. $user_favgoods = D('Home/Pingoods')->fav_goods_state($id, $member_id);
  613. if (!empty($user_favgoods)) {
  614. $goods['favgoods'] = 2;
  615. } else {
  616. $goods['favgoods'] = 1;
  617. }
  618. $price = $goods['danprice'];
  619. $lottery_info = array();
  620. $need_data['lottery_info'] = $lottery_info;
  621. //$goods['share_title'] = $price.'元 '.$goods['goodsname'];
  622. if (empty($goods['share_title'])) {
  623. if ($goods['type'] == 'integral') {
  624. $goods['share_title'] = intval($price) . '积分 ' . $goods['goodsname'];
  625. } else {
  626. $goods['share_title'] = $price . '元 ' . $goods['goodsname'];
  627. }
  628. $is_login_showprice = D('Home/Front')->get_config_by_name('is_login_showprice');
  629. if (!empty($is_login_showprice) && $is_login_showprice == 1) {
  630. $member_info = M('lionfish_comshop_member')->where(array('member_id' => $member_id))->find();
  631. if (empty($member_id) || $member_id <= 0 || $member_info['is_apply_state'] == 0) {
  632. if ($goods['type'] == 'integral') {
  633. $goods['share_title'] = '---积分 ' . $goods['goodsname'];
  634. } else {
  635. $goods['share_title'] = '---元 ' . $goods['goodsname'];
  636. }
  637. }
  638. }
  639. }
  640. /** 商品会员折扣begin **/
  641. $is_show_member_disc = 0;
  642. $member_disc = 100;
  643. /** 商品会员折扣end **/
  644. $goods['memberprice'] = sprintf('%.2f', round(($goods['danprice'] * $member_disc) / 100, 2));
  645. $max_get_dan_money = round(($goods['danprice'] * (100 - $max_member_level['discount'])) / 100, 2);
  646. $max_get_money = $max_get_dan_money;
  647. if (!empty($pin_info)) {
  648. $pin_info['member_pin_price'] = sprintf('%.2f', round(($pin_info['pin_price'] * $member_disc) / 100, 2));
  649. $max_get_pin_money = round(($pin_info['pin_price'] * (100 - $max_member_level['discount'])) / 100, 2);
  650. $max_get_money = $max_get_pin_money;
  651. }
  652. // 商品角标
  653. $label_id = unserialize($goods['labelname']);
  654. if ($label_id) {
  655. $label_info = D('Home/Pingoods')->get_goods_tags($label_id);
  656. if ($label_info) {
  657. if ($label_info['type'] == 1) {
  658. $label_info['tagcontent'] = tomedia($label_info['tagcontent']);
  659. } else {
  660. $label_info['len'] = mb_strlen($label_info['tagcontent'], 'utf-8');
  661. }
  662. }
  663. $goods['label_info'] = $label_info;
  664. }
  665. //查看会员身份,是否有佣金显示到商品详细页begin
  666. $is_commiss_mb = 0;
  667. $commiss_mb_money = 0;
  668. $is_goods_head_mb = 0;
  669. $goods_head_money = 0;
  670. $is_show_goodsdetails_commiss_money = D('Home/Front')->get_config_by_name('is_show_goodsdetails_commiss_money');
  671. if (!empty($is_show_goodsdetails_commiss_money) && $is_show_goodsdetails_commiss_money == 1 && $member_id > 0) {
  672. //先判断是否有分销的佣金
  673. $commiss_level = D('Home/Front')->get_config_by_name('commiss_level');
  674. if (!empty($commiss_level) && $commiss_level > 0) {
  675. $mb_info = M('lionfish_comshop_member')->field('comsiss_flag')->where(array('member_id' => $member_id))->find();
  676. //判断是否分销 =1
  677. if ($mb_info['comsiss_flag'] == 1) {
  678. $commission_info = D('Home/Pingoods')->get_goods_commission_info($id, $member_id);
  679. if ($commission_info['commiss_one']['type'] == 2) {
  680. $commiss_one_money = $commission_info['commiss_one']['money'];
  681. } else {
  682. $commiss_one_money = round(($commission_info['commiss_one']['fen'] * $goods['price']) / 100, 2);
  683. }
  684. $is_commiss_mb = 1;
  685. $commiss_mb_money = $commiss_one_money;
  686. }
  687. }
  688. $is_community_hd = M('lionfish_community_head')->field('id')->where(array('member_id' => $member_id))->find();
  689. if (!empty($is_community_hd)) {
  690. //说明是团长,但是要确定是否这个商品的团长
  691. $is_commu_sale = D('Seller/Communityhead')->check_goods_can_community($id, $is_community_hd['id']);
  692. $community_money_type = D('Home/Front')->get_config_by_name('community_money_type');
  693. if ($is_commu_sale) {
  694. //计算团长佣金
  695. $head_commission_info = D('Home/Front')->get_goods_common_field($id, 'community_head_commission');
  696. $head_level_arr = D('Seller/Communityhead')->get_goods_head_level_bili($id);
  697. $community_info = M('lionfish_community_head')->where(array('id' => $is_community_hd['id']))->find();
  698. if ($community_info['state'] == 1 && $community_info['enable'] == 1) {
  699. $level = $community_info['level_id'];
  700. $is_head_takegoods = D('Home/Front')->get_config_by_name('is_head_takegoods');
  701. $is_head_takegoods = isset($is_head_takegoods) && $is_head_takegoods == 1 ? 1 : 0;
  702. //启用时 1,上方和商品中的“团长提成比例”失效,使用“团长等级”对应提成比例。不启用时 0,上方和商品中的“团长提成比例有效”。
  703. if ($is_head_takegoods == 1) {
  704. //开启 团长等级
  705. //是否设置了团长等级
  706. $head_level = M('lionfish_comshop_community_head_level')->find();
  707. $is_modify_head_commission = M('lionfish_comshop_good_common')->field('is_modify_head_commission,is_community_head_commission,community_head_commission')->where(array('goods_id' => $goods['goods_id']))->find();
  708. if (!empty($head_level) && $is_modify_head_commission["is_modify_head_commission"] == 1) {
  709. //有等级 按商品或者等级比例
  710. $head_commission_info['community_head_commission'] = $head_level_arr['head_level' . $level];
  711. } elseif (!empty($head_level) && $is_modify_head_commission["is_modify_head_commission"] == 0) {
  712. if ($level == 0) {
  713. $head_commission_info['community_head_commission'] = D('Home/Front')->get_config_by_name('default_comunity_money');
  714. } else {
  715. $community_head_level = M('lionfish_comshop_community_head_level')->where(array('id' => $level))->find();
  716. $head_commission_info['community_head_commission'] = $community_head_level['commission'];
  717. }
  718. } else {
  719. if ($is_modify_head_commission['is_community_head_commission'] == 1) {
  720. $head_commission_info['community_head_commission'] = $is_modify_head_commission['community_head_commission'];
  721. } else {
  722. $head_commission_info['community_head_commission'] = D('Home/Front')->get_config_by_name('default_comunity_money');
  723. }
  724. }
  725. } else {
  726. $is_community_head_commission = M('lionfish_comshop_good_common')->field('is_community_head_commission,community_head_commission')->where(array('goods_id' => $goods['goods_id']))->find();
  727. if ($is_community_head_commission['is_community_head_commission'] == 1) {
  728. //商品单独设置
  729. $head_commission_info['community_head_commission'] = $is_community_head_commission['community_head_commission'];
  730. } else {
  731. $head_commission_info['community_head_commission'] = D('Home/Front')->get_config_by_name('default_comunity_money');
  732. }
  733. }
  734. if ($community_money_type == 1) {
  735. $goods_head_money = round($head_commission_info['community_head_commission'], 2);
  736. } else {
  737. $goods_head_money = round(($head_commission_info['community_head_commission'] * $goods['price']) / 100, 2);
  738. }
  739. $is_commiss_mb = 0;
  740. $commiss_mb_money = 0;
  741. $is_goods_head_mb = 1;
  742. }
  743. }
  744. }
  745. }
  746. //end
  747. $need_data['pin_info'] = $pin_info;
  748. $need_data['is_commiss_mb'] = $is_commiss_mb;//是否显示 会员分销 佣金 1 是,0否
  749. $need_data['commiss_mb_money'] = $commiss_mb_money;// 会员分销佣金 是多少
  750. $need_data['is_goods_head_mb'] = $is_goods_head_mb;// 是否团长 佣金, 1 是,0否
  751. $need_data['goods_head_money'] = $goods_head_money;// 团长佣金 金额
  752. /**
  753. * if(!empty($member_id) && $member_id > 0 && $goods[0]['type'] == 'integral')
  754. * {
  755. * $member_info = M('member')->field('score')->where( array('member_id' => $member_id) )->find();
  756. * if($member_info['score'] < $goods[0]['score'])
  757. * {
  758. * $goods[0]['score_enough'] = 0;
  759. * }else{
  760. * $goods[0]['score_enough'] = 1;
  761. * }
  762. * }
  763. **/
  764. $need_data['member_level_info'] = $member_level_info;
  765. $need_data['member_level_list'] = $member_level_list;
  766. $need_data['max_member_level'] = $max_member_level;
  767. $need_data['max_get_money'] = sprintf('%.2f', $max_get_money);
  768. //mead
  769. $need_data['max_get_money'] = meadMoney($need_data['max_get_money'], $need_data['mead_money_num']);
  770. $goods['memberprice'] = meadMoney($goods['memberprice'], $need_data['mead_money_num']);
  771. $need_data['max_get_pin_money'] = $max_get_pin_money;
  772. $need_data['max_get_dan_money'] = $max_get_dan_money;
  773. $need_data['buy_record_arr'] = $buy_record_arr;
  774. $need_data['is_show_max_level'] = $is_show_max_level;
  775. $goods['actPrice'] = explode('.', $goods['price']);
  776. $goods['marketPrice'] = explode('.', $goods['productprice']);
  777. $relative_goods_list = array();
  778. $is_open_goods_relative_goods = D('Home/Front')->get_config_by_name('is_open_goods_relative_goods');
  779. if (!empty($is_open_goods_relative_goods) && $is_open_goods_relative_goods == 1) {
  780. $rel_unser = unserialize($goods['relative_goods_list']);
  781. if (!empty($rel_unser)) {
  782. $relative_goods_list_str = implode(',', $rel_unser);
  783. $now_time = time();
  784. $s_where = " and gc.begin_time <={$now_time} and gc.end_time > {$now_time} ";
  785. $limit_goods = D('Home/Pingoods')->get_community_index_goods('g.*,gc.begin_time,gc.end_time,gc.big_img,gc.is_take_fullreduction,gc.labelname,gc.oneday_limit_count,gc.total_limit_count,gc.one_limit_count,gc.goods_start_count ', ' g.id in(' . $relative_goods_list_str . ') and grounding =1 ' . $s_where, 0, 100);
  786. $last_community_info = array();
  787. if (!empty($member_id) && $member_id > 0) {
  788. $last_community_info = D('Home/Front')->get_history_community($member_id);
  789. }
  790. $cart = D('Home/Car');
  791. foreach ($limit_goods as $kk => $val) {
  792. if (!empty($last_community_info)) {
  793. //communityId
  794. $is_canshow = D('Seller/Communityhead')->check_goods_can_community($val['id'], $last_community_info['communityId']);
  795. if (!$is_canshow) {
  796. continue;
  797. }
  798. }
  799. $tmp_data = array();
  800. $tmp_data['actId'] = $val['id'];
  801. $tmp_data['spuName'] = $val['goodsname'];
  802. $tmp_data['oneday_limit_count'] = $val['oneday_limit_count'];
  803. $tmp_data['total_limit_count'] = $val['total_limit_count'];
  804. $tmp_data['one_limit_count'] = $val['one_limit_count'];
  805. $tmp_data['goods_start_count'] = $val['goods_start_count'];
  806. $tmp_data['spuCanBuyNum'] = $val['total'];
  807. $tmp_data['spuDescribe'] = $val['subtitle'];
  808. $tmp_data['end_time'] = $val['end_time'];
  809. $tmp_data['soldNum'] = $val['seller_count'] + $val['sales'];
  810. $productprice = $val['productprice'];
  811. $tmp_data['marketPrice'] = explode('.', $productprice);
  812. if (!empty($val['big_img'])) {
  813. $tmp_data['bigImg'] = tomedia($val['big_img']);
  814. }
  815. $good_image_tp = D('Home/Pingoods')->get_goods_images($val['id']);
  816. if (!empty($good_image_tp)) {
  817. $tmp_data['skuImage'] = tomedia($good_image_tp['image']);
  818. }
  819. $price_arr = D('Home/Pingoods')->get_goods_price($val['id'], $member_id);
  820. $price = $price_arr['price'];
  821. if ($pageNum == 1) {
  822. $copy_text_arr[] = array('goods_name' => $val['goodsname'], 'price' => $price);
  823. }
  824. $tmp_data['actPrice'] = explode('.', $price);
  825. //$tmp_data['skuList']= D('Home/Pingoods')->get_goods_options($val['id'],$member_id);
  826. $tmp_data['skuList'] = D('Home/Pingoods')->get_goods_options_carquantity($val['id'], $member_id, $head_id, $token);
  827. if (!empty($tmp_data['skuList'])) {
  828. $tmp_data['car_count'] = 0;
  829. } else {
  830. $car_count = $cart->get_wecart_goods($val['id'], "", $head_id, $token);
  831. if (empty($car_count)) {
  832. $tmp_data['car_count'] = 0;
  833. } else {
  834. $tmp_data['car_count'] = $car_count;
  835. }
  836. }
  837. if ($is_open_fullreduction == 0) {
  838. $tmp_data['is_take_fullreduction'] = 0;
  839. } else if ($is_open_fullreduction == 1) {
  840. $tmp_data['is_take_fullreduction'] = $val['is_take_fullreduction'];
  841. }
  842. // 商品角标
  843. $label_id = unserialize($val['labelname']);
  844. if ($label_id) {
  845. $label_info = D('Home/Pingoods')->get_goods_tags($label_id);
  846. if ($label_info) {
  847. if ($label_info['type'] == 1) {
  848. $label_info['tagcontent'] = tomedia($label_info['tagcontent']);
  849. } else {
  850. $label_info['len'] = mb_strlen($label_info['tagcontent'], 'utf-8');
  851. }
  852. }
  853. $tmp_data['label_info'] = $label_info;
  854. }
  855. $relative_goods_list[$kk] = $tmp_data;
  856. }
  857. }
  858. }
  859. unset($goods['relative_goods_list']);
  860. $need_data['relative_goods_list'] = $relative_goods_list;
  861. $show_goods_subtitle = D('Home/Front')->get_config_by_name('show_goods_subtitle');
  862. if ($show_goods_subtitle != 1) $goods['subtitle'] = '';
  863. if (empty($relative_goods_list)) {
  864. $goods['cart_quantity'] = D('Home/Car')->get_wecart_goods($goods['id'], "", $head_id, $token);
  865. }
  866. $need_data['goods'] = $goods;
  867. $need_data['goods_image'] = $goods_image;
  868. /**
  869. * $seller_info = M('seller')->field('s_id,s_true_name,s_logo,s_qq,certification')->where(array(
  870. * 's_id' => $goods[0]['store_id']
  871. * ))->find();
  872. * $seller_model = D('Home/Seller');
  873. * $seller_info['seller_count'] = $seller_model->getStoreSellerCount($goods[0]['store_id']);
  874. * $seller_goods_count = M('goods')->where(array(
  875. * 'store_id' => $goods[0]['store_id']
  876. * ))->count();
  877. * $seller_info['goods_count'] = $seller_goods_count;
  878. * $seller_info['s_logo'] = C('SITE_URL') . 'Uploads/image/' . $seller_info['s_logo'];
  879. * $need_data['seller_info'] = $seller_info;
  880. **/
  881. $need_data['site_name'] = D('Home/Front')->get_config_by_name('shoname');
  882. //$need_data['options'] = D('Home/Pingoods')->get_goods_options($id, $member_id); // $goods_model->get_goods_options($id);
  883. $need_data['options'] = D('Home/Pingoods')->get_goods_options_carquantity($id, $member_id, $head_id, $token);
  884. $order_comment_count = M('lionfish_comshop_order_comment')->where(array('state' => 1, 'goods_id' => $id))->count();
  885. $comment_list = array();
  886. if ($order_comment_count > 0) {
  887. $sql = "select o.*,m.username as name2,m.avatar as avatar2 from " . C('DB_PREFIX') . "lionfish_comshop_order_comment as o left join " . C('DB_PREFIX') . "lionfish_comshop_member as m
  888. on o.member_id=m.member_id
  889. where o.state = 1 and o.goods_id = {$id} order by o.add_time desc limit 1";
  890. $comment_list = M()->query($sql);
  891. $order_comment_images = array();
  892. foreach ($comment_list as $key => $val) {
  893. //user_name
  894. if (empty($val['user_name'])) {
  895. $val['name'] = $val['name2'];
  896. $val['avatar'] = tomedia($val['avatar2']);
  897. } else {
  898. $val['name'] = $val['user_name'];
  899. $val['avatar'] = tomedia($val['avatar']);
  900. }
  901. if ($val['type'] == 0) {
  902. $order_goods_info = M('lionfish_comshop_order_goods')->field('order_goods_id')->where(array('goods_id' => $id, 'order_id' => $val['order_id']))->find();
  903. $order_option_info = M('lionfish_comshop_order_option')->field('value')->where(array('order_goods_id' => $order_goods_info['order_goods_id'], 'order_id' => $val['order_id']))->select();
  904. $option_arr = array();
  905. foreach ($order_option_info as $option) {
  906. $option_arr[] = $option['value'];
  907. }
  908. $option_str = implode(',', $option_arr);
  909. } else {
  910. $option_str = '';
  911. }
  912. $img_str = unserialize($val['images']);
  913. if (!empty($img_str) && $img_str != 'undefined') {
  914. //$img_str = unserialize($val['images']);
  915. $img_list = explode(',', $img_str);
  916. $need_img_list = array();
  917. foreach ($img_list as $kk => $vv) {
  918. if (!empty($vv)) {
  919. // $vv = tomedia(resize($vv,400,400));
  920. $vv = tomedia($vv);
  921. $img_list[$kk] = $vv;
  922. $need_img_list[$kk] = $vv;
  923. if (count($order_comment_images) <= 4)
  924. $order_comment_images[] = $vv;
  925. }
  926. }
  927. $val['images'] = $need_img_list;
  928. } else {
  929. $val['images'] = array();
  930. }
  931. $val['option_str'] = $option_str;
  932. $val['add_time'] = date('Y-m-d', $val['add_time']);
  933. $comment_list[$key] = $val;
  934. }
  935. //$this->comment_list = $comment_list;
  936. }
  937. $need_data['cur_time'] = time();
  938. $need_data['pin_id'] = $pin_id;
  939. $need_data['is_show_arrive'] = $goods['is_show_arrive'];
  940. $need_data['diy_arrive_switch'] = $goods['diy_arrive_switch'];
  941. $need_data['diy_arrive_details'] = $goods['diy_arrive_details'];
  942. $need_data['is_can_headsales'] = 1;
  943. //团长休息
  944. $community_id = $gpc['community_id'];
  945. if (isset($community_id) && $community_id > 0) {
  946. $is_can_buy = D('Seller/Communityhead')->check_goods_can_community($id, $community_id);
  947. if (!$is_can_buy) {
  948. $need_data['is_can_headsales'] = 0;
  949. }
  950. // is_all_sale
  951. }
  952. $is_comunity_rest = D('Seller/Communityhead')->is_community_rest($community_id);
  953. $open_man_orderbuy = D('Home/Front')->get_config_by_name('open_man_orderbuy');
  954. $man_orderbuy_money = D('Home/Front')->get_config_by_name('man_orderbuy_money');
  955. //同城配送商品的起卖价格
  956. $goods_supply_info = M('lionfish_comshop_good_common')->where(array('goods_id' => $goods['id']))->find();
  957. $supply_id = $goods_supply_info["supply_id"];
  958. $is_only_distribution = $goods_supply_info["is_only_distribution"];
  959. //达到金额免配送费
  960. $localtown_moneytype_fixed_freemoney = 0;
  961. if ($supply_id == 0) {
  962. //配送费类型:0、固定金额,1、按距离收取
  963. $localtown_delivery_moneytype = D('Home/Front')->get_config_by_name('localtown_delivery_moneytype');
  964. if ($localtown_delivery_moneytype == 0) {
  965. $localtown_moneytype_fixed_freemoney = D('Home/Front')->get_config_by_name('localtown_moneytype_fixed_deliverymoney');
  966. }
  967. } else {
  968. $isopen_localtown_delivery = D('Home/Front')->get_supply_config_by_name('isopen_localtown_delivery', $supply_id);
  969. //配送费类型:0、固定金额,1、按距离收取
  970. $localtown_delivery_moneytype = D('Home/Front')->get_supply_config_by_name('localtown_delivery_moneytype', $supply_id);
  971. if ($isopen_localtown_delivery == 1 && $localtown_delivery_moneytype == 0) {
  972. $localtown_moneytype_fixed_freemoney = D('Home/Front')->get_supply_config_by_name('localtown_moneytype_fixed_deliverymoney', $supply_id);
  973. }
  974. }
  975. $goodsdetails_addcart_bg_color = D('Home/Front')->get_config_by_name('goodsdetails_addcart_bg_color');
  976. $goodsdetails_buy_bg_color = D('Home/Front')->get_config_by_name('goodsdetails_buy_bg_color');
  977. $is_close_details_time = D('Home/Front')->get_config_by_name('is_close_details_time');
  978. $isopen_community_group_share = D('Home/Front')->get_config_by_name('isopen_community_group_share');
  979. $group_share_info = '';
  980. if ($isopen_community_group_share == 1) {
  981. $head_commiss_info = M('lionfish_community_head_commiss')->where(array('head_id' => $community_id))->find();
  982. if (!empty($head_commiss_info)) {
  983. $group_share_info = array();
  984. $group_share_info['share_wxcode'] = $head_commiss_info['share_wxcode'] ? tomedia($head_commiss_info['share_wxcode']) : '';
  985. $share_avatar = D('Home/Front')->get_config_by_name('group_share_avatar');
  986. $group_share_info['share_avatar'] = tomedia($share_avatar);
  987. $group_share_info['share_title'] = D('Home/Front')->get_config_by_name('group_share_title');
  988. $group_share_info['share_desc'] = D('Home/Front')->get_config_by_name('group_share_desc');
  989. }
  990. }
  991. //.... card_price
  992. $is_open_vipcard_buy = D('Home/Front')->get_config_by_name('is_open_vipcard_buy');
  993. $modify_vipcard_name = D('Home/Front')->get_config_by_name('modify_vipcard_name');
  994. $modify_vipcard_logo = D('Home/Front')->get_config_by_name('modify_vipcard_logo');
  995. $modify_vipcard_name = empty($modify_vipcard_name) ? '天机会员' : $modify_vipcard_name;
  996. $is_open_vipcard_buy = !empty($is_open_vipcard_buy) && $is_open_vipcard_buy == 1 ? 1 : 0;
  997. if (!empty($modify_vipcard_logo)) {
  998. $modify_vipcard_logo = tomedia($modify_vipcard_logo);
  999. }
  1000. $goods_details_title_bg = D('Home/Front')->get_config_by_name('goods_details_title_bg');
  1001. if (!empty($goods_details_title_bg)) {
  1002. $goods_details_title_bg = tomedia($goods_details_title_bg);
  1003. }
  1004. $is_vip_card_member = 0;
  1005. $is_member_level_buy = 0;
  1006. //member_id
  1007. if ($member_id > 0) {
  1008. $member_info = M('lionfish_comshop_member')->where(array('member_id' => $member_id))->find();
  1009. if (!empty($is_open_vipcard_buy) && $is_open_vipcard_buy == 1) {
  1010. $now_time = time();
  1011. if ($member_info['card_id'] > 0 && $member_info['card_end_time'] > $now_time) {
  1012. $is_vip_card_member = 1;//还是会员
  1013. } else if ($member_info['card_id'] > 0 && $member_info['card_end_time'] < $now_time) {
  1014. $is_vip_card_member = 2;//已过期
  1015. }
  1016. }
  1017. if (($goods['is_take_vipcard'] != 1) && $member_info['level_id'] > 0 && $goods['is_mb_level_buy'] == 1) {
  1018. $is_member_level_buy = 1;
  1019. }
  1020. }
  1021. //$goods['type'] == 'pin' $member_id
  1022. $is_need_subscript = 0;
  1023. $need_subscript_template = array();
  1024. if ($member_id > 0 && $goods['type'] == 'pin') {
  1025. //'pay_order','send_order','hexiao_success','apply_community','open_tuan','take_tuan','pin_tuansuccess','apply_tixian'
  1026. $open_tuan_info = M('lionfish_comshop_subscribe')->where(array('member_id' => $member_id, 'type' => 'open_tuan'))->find();
  1027. if (empty($open_tuan_info)) {
  1028. $weprogram_subtemplate_open_tuan = D('Home/Front')->get_config_by_name('weprogram_subtemplate_open_tuan');
  1029. if (!empty($weprogram_subtemplate_open_tuan)) {
  1030. $need_subscript_template['open_tuan'] = $weprogram_subtemplate_open_tuan;
  1031. }
  1032. }
  1033. $take_tuan_info = M('lionfish_comshop_subscribe')->where(array('member_id' => $member_id, 'type' => 'take_tuan'))->find();
  1034. if (empty($take_tuan_info)) {
  1035. $weprogram_subtemplate_take_tuan = D('Home/Front')->get_config_by_name('weprogram_subtemplate_take_tuan');
  1036. if (!empty($weprogram_subtemplate_take_tuan)) {
  1037. $need_subscript_template['take_tuan'] = $weprogram_subtemplate_take_tuan;
  1038. }
  1039. }
  1040. if (!empty($need_subscript_template)) {
  1041. $is_need_subscript = 1;
  1042. }
  1043. }
  1044. // 销量开关
  1045. $is_hide_details_count = D('Home/Front')->get_config_by_name('is_hide_details_count');
  1046. $is_open_goods_full_video = D('Home/Front')->get_config_by_name('is_open_goods_full_video');
  1047. $ishide_details_desc = D('Home/Front')->get_config_by_name('ishide_details_desc');
  1048. $delivery_type_ziti = D('Home/Front')->get_config_by_name('delivery_type_ziti');
  1049. $show_goods_preview = D('Home/Front')->get_config_by_name('show_goods_preview');
  1050. //核销门店
  1051. $hx_salesroom_list = array();
  1052. if ($is_only_hexiao == 1) {
  1053. $hx_salesroom_list = D('Home/Salesroom')->get_goods_salesroom($id, $supply_id, 'id,room_name,room_address');
  1054. }
  1055. //判断是否预售 begin
  1056. $need_data['presale_goods_info'] = ['is_presale_goods' => 0];
  1057. if ($goods['type'] == 'presale') {
  1058. $presale_goods_info = [];
  1059. $goods_presale = M('lionfish_comshop_goods_presale')->where(['goods_id' => $id])->find();
  1060. $presale_goods_info['presale_type'] = $goods_presale['presale_type'];//0 定金, 1 全款支付
  1061. $presale_goods_info['presale_ding_money'] = $goods_presale['presale_ding_money'];//定金金额
  1062. $presale_goods_info['presale_deduction_money'] = $goods_presale['presale_deduction_money'];//定金抵扣金额
  1063. $presale_goods_info['presale_ding_time_start'] = $goods_presale['presale_ding_time_start'];//定金开始支付时间
  1064. $presale_goods_info['presale_ding_time_start_date'] = date('m月d日 H:i', $goods_presale['presale_ding_time_start']);//定金支付格式化 开始时间
  1065. $presale_goods_info['presale_ding_time_start_date'] = date('m月d日 H:i', $goods_presale['presale_ding_time_start']);//定金支付格式化 开始时间
  1066. $presale_goods_info['presale_ding_time_end'] = $goods_presale['presale_ding_time_end'];//定金支付结束时间
  1067. $presale_goods_info['presale_ding_time_end_date'] = date('m月d日 H:i', $goods_presale['presale_ding_time_end']);//定金支付格式化 结束时间
  1068. $presale_goods_info['presale_limit_balancepaytime'] = $goods_presale['presale_limit_balancepaytime'];//限制尾款支付时间,0不限制,1限制
  1069. $presale_goods_info['presale_balance_paytime'] = intval($goods_presale['presale_balance_paytime']);//限制尾款支付时间, 几天内
  1070. $presale_goods_info['presale_sendorder_type'] = ($goods_presale['presale_sendorder_type']);//预计发货时间,0 固定发货时间, 1购买后几日发货
  1071. $presale_goods_info['presale_sendorder_datetime'] = date('Y-m-d', $goods_presale['presale_sendorder_datetime']);//固定发货时间 ,具体的固定日期
  1072. $presale_goods_info['presale_sendorder_afterday'] = intval($goods_presale['presale_sendorder_afterday']);//购买后几日发货
  1073. $presale_goods_info['is_presale_goods'] = 1;
  1074. $need_subscript_template = [];
  1075. $weprogram_subtemplate_send_order = D('Home/Front')->get_config_by_name('weprogram_subtemplate_presale_ordercan_continuepay');
  1076. if (!empty($weprogram_subtemplate_send_order)) {
  1077. $need_subscript_template['presale_ordercan_continuepay'] = $weprogram_subtemplate_send_order;
  1078. $is_need_subscript = 1;
  1079. }
  1080. $presale_goods_info['need_subscript_template'] = $need_subscript_template;//预售订阅消息
  1081. $need_data['presale_goods_info'] = $presale_goods_info;
  1082. }
  1083. //预售end..
  1084. $need_data['virtualcard_goods_info'] = ['is_virtualcard_goods' => 0];
  1085. if ($goods['type'] == 'virtualcard') {
  1086. $goods_virturalcard = D('Seller/VirtualCard')->getGoodsVirtualCardInfoByGoodsId($id);
  1087. $virturalcard_info = D('Seller/VirtualCard')->getCodeInfoByCodeId($goods_virturalcard['code_id']);
  1088. $code_money = $virturalcard_info['code_money'];
  1089. $need_data['virtualcard_goods_info']['is_virtualcard_goods'] = 1; //是否礼品卡商品
  1090. $need_data['virtualcard_goods_info']['code_money'] = round($code_money, 2); //兑换金额
  1091. }
  1092. //判断是否礼品卡 begin
  1093. //礼品卡end
  1094. echo json_encode(array(
  1095. 'code' => 1,
  1096. 'comment_list' => $comment_list,
  1097. 'is_only_hexiao' => $is_only_hexiao,
  1098. 'hexiao_arr' => $hx_salesroom_list,
  1099. 'order_comment_images' => $order_comment_images,
  1100. 'order_comment_count' => $order_comment_count,
  1101. 'data' => $need_data,
  1102. 'is_comunity_rest' => $is_comunity_rest,
  1103. 'open_man_orderbuy' => $open_man_orderbuy,
  1104. 'man_orderbuy_money' => $man_orderbuy_money,
  1105. 'localtown_moneytype_fixed_freemoney' => $localtown_moneytype_fixed_freemoney,
  1106. 'is_only_distribution' => $is_only_distribution,
  1107. 'goodsdetails_buy_bg_color' => $goodsdetails_buy_bg_color,
  1108. 'goodsdetails_addcart_bg_color' => $goodsdetails_addcart_bg_color,
  1109. 'isopen_community_group_share' => $isopen_community_group_share,
  1110. 'group_share_info' => $group_share_info,
  1111. 'is_close_details_time' => $is_close_details_time,
  1112. 'is_open_vipcard_buy' => $is_open_vipcard_buy,//是否开启会员卡
  1113. 'modify_vipcard_name' => $modify_vipcard_name,//会员卡名称
  1114. 'modify_vipcard_logo' => $modify_vipcard_logo,//会员卡图标
  1115. 'is_vip_card_member' => $is_vip_card_member,//是否会员卡会员, 0 不是,1是会员,2已过期的会员
  1116. 'is_member_level_buy' => $is_member_level_buy,
  1117. 'is_need_subscript' => $is_need_subscript,
  1118. 'need_subscript_template' => $need_subscript_template,
  1119. 'is_hide_details_count' => $is_hide_details_count,
  1120. 'is_open_goods_full_video' => $is_open_goods_full_video,
  1121. 'goods_details_title_bg' => $goods_details_title_bg,
  1122. 'needauth' => $needauth,
  1123. 'ishide_details_desc' => $ishide_details_desc,
  1124. 'delivery_type_ziti' => $delivery_type_ziti,
  1125. 'show_goods_preview' => $show_goods_preview
  1126. ));
  1127. die();
  1128. }
  1129. /**
  1130. * 获取服务说明
  1131. */
  1132. public function get_instructions()
  1133. {
  1134. $_GPC = I('request.');
  1135. $list = M('lionfish_comshop_config')->field('value')->where(array('name' => 'instructions'))->find();
  1136. $goods_id = isset($_GPC['goods_id']) ? $_GPC['goods_id'] : '';
  1137. if (!empty($list['value']))
  1138. $list['value'] = htmlspecialchars_decode($list['value']);
  1139. $index_bottom_image = D('Home/Front')->get_config_by_name('index_bottom_image');
  1140. if (!empty($index_bottom_image)) $index_bottom_image = tomedia($index_bottom_image);
  1141. $goods_details_middle_image = D('Home/Front')->get_config_by_name('goods_details_middle_image');
  1142. if (!empty($goods_details_middle_image)) $goods_details_middle_image = tomedia($goods_details_middle_image);
  1143. $is_show_buy_record = D('Home/Front')->get_config_by_name('is_show_buy_record');
  1144. $is_show_comment_list = D('Home/Front')->get_config_by_name('is_show_comment_list');
  1145. $order_notify_switch = D('Home/Front')->get_config_by_name('order_notify_switch');
  1146. $goods_details_price_bg = D('Home/Front')->get_config_by_name('goods_details_price_bg');
  1147. if (!empty($goods_details_price_bg)) $goods_details_price_bg = tomedia($goods_details_price_bg);
  1148. $user_service_switch = D('Home/Front')->get_config_by_name('user_service_switch');
  1149. $goods_industrial_switch = D('Home/Front')->get_config_by_name('goods_industrial_switch');
  1150. $goods_industrial = D('Home/Front')->get_config_by_name('goods_industrial');
  1151. if (!empty($goods_industrial)) {
  1152. $goods_industrial = unserialize($goods_industrial);//tomedia($goods_industrial);
  1153. foreach ($goods_industrial as $key => $val) {
  1154. $goods_industrial[$key] = tomedia($val);
  1155. }
  1156. }
  1157. //supply_id
  1158. if ($goods_id > 0) {
  1159. $gd_info = M('lionfish_comshop_good_common')->field('supply_id')->where(array('goods_id' => $goods_id))->find();
  1160. if (!empty($gd_info) && $gd_info['supply_id'] > 0) {
  1161. $su_info = M('lionfish_comshop_supply')->field('qualifications')->where(array('id' => $gd_info['supply_id']))->find();
  1162. $qualifications = unserialize($su_info['qualifications']);
  1163. if (!empty($qualifications)) {
  1164. foreach ($qualifications as $key => $cval) {
  1165. $qualifications[$key] = tomedia($cval);
  1166. }
  1167. }
  1168. $goods_industrial = $qualifications;
  1169. }
  1170. }
  1171. $list['value'] = htmlspecialchars_decode(htmlspecialchars_decode($list['value']));
  1172. $hide_community_change_btn = D('Home/Front')->get_config_by_name('hide_community_change_btn');
  1173. $list['index_bottom_image'] = $index_bottom_image;
  1174. $list['goods_details_middle_image'] = $goods_details_middle_image;
  1175. $list['goods_details_price_bg'] = $goods_details_price_bg;
  1176. $list['is_show_buy_record'] = $is_show_buy_record;
  1177. $list['is_show_comment_list'] = $is_show_comment_list;
  1178. $list['order_notify_switch'] = $order_notify_switch;
  1179. $list['index_service_switch'] = $user_service_switch;
  1180. $list['goods_industrial_switch'] = $goods_industrial_switch;
  1181. $list['goods_industrial'] = $goods_industrial;
  1182. $list['is_show_ziti_time'] = D('Home/Front')->get_config_by_name('is_show_ziti_time');
  1183. $list['is_show_goodsdetails_communityinfo'] = D('Home/Front')->get_config_by_name('is_show_goodsdetails_communityinfo');
  1184. $list['hide_community_change_btn'] = $hide_community_change_btn;
  1185. $result = array('code' => 0, 'data' => $list);
  1186. echo json_encode($result);
  1187. die();
  1188. }
  1189. /**
  1190. * 获取分类列表
  1191. * @return [type] [description]
  1192. */
  1193. public function get_category_list()
  1194. {
  1195. $is_type_show = I('request.is_type_show', 0);
  1196. $is_show = I('request.is_show', 0);
  1197. $category_list = D('Home/GoodsCategory')->get_index_goods_category(0, 'normal', $is_show, $is_type_show);
  1198. $result = array('code' => 0, 'data' => $category_list);
  1199. echo json_encode($result);
  1200. die();
  1201. }
  1202. /**
  1203. * 首页3*3布局列表
  1204. * @return [josn] [description]
  1205. */
  1206. public function get_category_col_list()
  1207. {
  1208. $_GPC = I('request.');
  1209. $head_id = $_GPC['head_id'];
  1210. if ($head_id == 'undefined') $head_id = '';
  1211. $result = array();
  1212. $result['code'] = 1;
  1213. $cate_list = M('lionfish_comshop_goods_category')->field('id,name,banner')->where("is_show = 1 and is_show_topic = 1 and cate_type='normal' ")->order('sort_order desc')->select();
  1214. if (empty($cate_list)) {
  1215. $result['msg'] = '无数据';
  1216. } else {
  1217. foreach ($cate_list as $key => &$val) {
  1218. if (!empty($val['banner'])) {
  1219. $val['banner'] = tomedia($val['banner']);
  1220. }
  1221. $item = $this->get_category_col_list_item($val['id'], $head_id);
  1222. if ($item) {
  1223. $val['list'] = empty($item['list']) ? array() : $item['list'];
  1224. $val['full_reducemoney'] = $item['full_reducemoney'];
  1225. $val['full_money'] = $item['full_money'];
  1226. $val['is_open_fullreduction'] = $item['is_open_fullreduction'];
  1227. }
  1228. }
  1229. $result['code'] = 0;
  1230. $result['data'] = $cate_list;
  1231. }
  1232. echo json_encode($result);
  1233. die();
  1234. }
  1235. /**
  1236. * 获取3*3分类列表项目
  1237. * @return [type] [description]
  1238. */
  1239. private function get_category_col_list_item($gid, $head_id, $is_random = 0)
  1240. {
  1241. $_GPC = I('request.');
  1242. $token = $_GPC['token'];
  1243. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where(array('token' => $token))->find();
  1244. if (empty($weprogram_token) || empty($weprogram_token['member_id'])) {
  1245. $member_id = 0;
  1246. } else {
  1247. $member_id = $weprogram_token['member_id'];
  1248. }
  1249. $now_time = time();
  1250. $where = " g.grounding =1 ";
  1251. $gids = D('Home/GoodsCategory')->get_index_goods_category($gid);
  1252. $gidArr = array();
  1253. $gidArr[] = $gid;
  1254. foreach ($gids as $key => $val) {
  1255. $gidArr[] = $val['id'];
  1256. }
  1257. $gid = implode(',', $gidArr);
  1258. if (!empty($head_id) && $head_id > 0) {
  1259. $sql_goods_ids = "select pg.goods_id from " . C('DB_PREFIX') . "lionfish_community_head_goods as pg," . C('DB_PREFIX') . "lionfish_comshop_goods_to_category as g where pg.goods_id = g.goods_id and g.cate_id in ({$gid}) and pg.head_id = {$head_id} order by pg.id desc ";
  1260. $goods_ids_arr = M()->query($sql_goods_ids);
  1261. $ids_arr = array();
  1262. foreach ($goods_ids_arr as $val) {
  1263. $ids_arr[] = $val['goods_id'];
  1264. }
  1265. $goods_ids_nolimit_sql = "select pg.id from " . C('DB_PREFIX') . "lionfish_comshop_goods as pg," . C('DB_PREFIX') . "lionfish_comshop_goods_to_category as g where pg.id = g.goods_id and g.cate_id in ({$gid}) and pg.is_all_sale=1 ";
  1266. $goods_ids_nolimit_arr = M()->query($goods_ids_nolimit_sql);
  1267. if (!empty($goods_ids_nolimit_arr)) {
  1268. foreach ($goods_ids_nolimit_arr as $val) {
  1269. $ids_arr[] = $val['id'];
  1270. }
  1271. }
  1272. $ids_str = implode(',', $ids_arr);
  1273. if (!empty($ids_str)) {
  1274. $where .= " and g.id in ({$ids_str})";
  1275. } else {
  1276. $where .= " and 0 ";
  1277. }
  1278. } else {
  1279. $goods_ids_nohead_sql = "select pg.id from " . C('DB_PREFIX') . "lionfish_comshop_goods as pg," . C('DB_PREFIX') . "lionfish_comshop_goods_to_category as g where pg.id = g.goods_id and g.cate_id in ({$gid}) ";
  1280. $goods_ids_nohead_arr = M()->query($goods_ids_nohead_sql);
  1281. $ids_arr = array();
  1282. if (!empty($goods_ids_nohead_arr)) {
  1283. foreach ($goods_ids_nohead_arr as $val) {
  1284. $ids_arr[] = $val['id'];
  1285. }
  1286. }
  1287. $ids_str = implode(',', $ids_arr);
  1288. if (!empty($ids_str)) {
  1289. $where .= " and g.id in ({$ids_str})";
  1290. } else {
  1291. $where .= " and 0 ";
  1292. }
  1293. }
  1294. // $where .= " and gc.begin_time <={$now_time} and gc.end_time > {$now_time} ";
  1295. $where .= " and gc.begin_time <={$now_time} ";
  1296. $where .= " and gc.is_new_buy=0 and gc.is_spike_buy = 0 and g.is_seckill = 0 ";
  1297. if ($is_random == 1) {
  1298. $community_goods = D('Home/Pingoods')->get_community_index_goods('g.*,gc.begin_time,gc.end_time,gc.big_img,gc.is_take_fullreduction,gc.labelname,gc.video,gc.oneday_limit_count,gc.total_limit_count,gc.one_limit_count,gc.goods_start_count ', $where, 0, 9, ' rand() ');
  1299. } else {
  1300. $community_goods = D('Home/Pingoods')->get_community_index_goods('g.*,gc.begin_time,gc.end_time,gc.big_img,gc.is_take_fullreduction,gc.labelname,gc.video,gc.oneday_limit_count,gc.total_limit_count,gc.one_limit_count,gc.goods_start_count ', $where, 0, 9);
  1301. }
  1302. if (!empty($community_goods)) {
  1303. $is_open_fullreduction = D('Home/Front')->get_config_by_name('is_open_fullreduction');
  1304. $full_money = D('Home/Front')->get_config_by_name('full_money');
  1305. $full_reducemoney = D('Home/Front')->get_config_by_name('full_reducemoney');
  1306. if (empty($full_reducemoney) || $full_reducemoney <= 0) {
  1307. $is_open_fullreduction = 0;
  1308. }
  1309. $cart = D('Home/Car');
  1310. $list = array();
  1311. foreach ($community_goods as $val) {
  1312. $tmp_data = array();
  1313. $tmp_data['actId'] = $val['id'];
  1314. $goodsname = htmlspecialchars_decode($val['goodsname']);
  1315. $tmp_data['spuName'] = $goodsname;
  1316. $tmp_data['spuCanBuyNum'] = $val['total'];
  1317. $tmp_data['spuDescribe'] = $val['subtitle'];
  1318. $tmp_data['end_time'] = $val['end_time'];
  1319. $tmp_data['soldNum'] = $val['seller_count'] + $val['sales'];
  1320. $tmp_data['actEnd'] = time() > $val['end_time'];
  1321. $tmp_data['oneday_limit_count'] = $val['oneday_limit_count'];
  1322. $tmp_data['total_limit_count'] = $val['total_limit_count'];
  1323. $tmp_data['one_limit_count'] = $val['one_limit_count'];
  1324. $tmp_data['goods_start_count'] = $val['goods_start_count'];
  1325. $productprice = $val['productprice'];
  1326. $tmp_data['marketPrice'] = explode('.', $productprice);
  1327. if (!empty($val['big_img'])) {
  1328. $tmp_data['bigImg'] = tomedia($val['big_img']);
  1329. }
  1330. $good_image = D('Home/Pingoods')->get_goods_images($val['id']);
  1331. if (!empty($good_image)) {
  1332. $tmp_data['skuImage'] = tomedia($good_image['image']);
  1333. }
  1334. $price_arr = D('Home/Pingoods')->get_goods_price($val['id'], $member_id);
  1335. $price = $price_arr['price'];
  1336. $tmp_data['actPrice'] = explode('.', $price);
  1337. $tmp_data['skuList'] = D('Home/Pingoods')->get_goods_options($val['id'], $member_id);
  1338. if (!empty($tmp_data['skuList'])) {
  1339. $tmp_data['car_count'] = 0;
  1340. } else {
  1341. $car_count = $cart->get_wecart_goods($val['id'], "", $head_id, $token);
  1342. if (empty($car_count)) {
  1343. $tmp_data['car_count'] = 0;
  1344. } else {
  1345. $tmp_data['car_count'] = $car_count;
  1346. }
  1347. }
  1348. if ($is_open_fullreduction == 0) {
  1349. $tmp_data['is_take_fullreduction'] = 0;
  1350. } else if ($is_open_fullreduction == 1) {
  1351. $tmp_data['is_take_fullreduction'] = $val['is_take_fullreduction'];
  1352. }
  1353. // 商品角标
  1354. $label_id = unserialize($val['labelname']);
  1355. if ($label_id) {
  1356. $label_info = D('Home/Pingoods')->get_goods_tags($label_id);
  1357. if ($label_info) {
  1358. if ($label_info['type'] == 1) {
  1359. $label_info['tagcontent'] = tomedia($label_info['tagcontent']);
  1360. } else {
  1361. $label_info['len'] = mb_strlen($label_info['tagcontent'], 'utf-8');
  1362. }
  1363. }
  1364. $tmp_data['label_info'] = $label_info;
  1365. }
  1366. //mead
  1367. $price_arr = D('Home/Pingoods')->get_goods_price($val['id'], $member_id);
  1368. $tmp_data['levelprice'] = $price_arr['levelprice']; // 会员等级价格
  1369. $tmp_data['is_mb_level_buy'] = $price_arr['is_mb_level_buy']; //是否 会员等级 可享受
  1370. $tmp_data['is_video'] = empty($val['video']) ? false : true;
  1371. $list[] = $tmp_data;
  1372. }
  1373. $res = array();
  1374. $res['list'] = $list;
  1375. $res['full_reducemoney'] = $full_reducemoney;
  1376. $res['full_money'] = $full_money;
  1377. $res['is_open_fullreduction'] = $is_open_fullreduction;
  1378. return $res;
  1379. } else {
  1380. return false;
  1381. }
  1382. }
  1383. public function check_goods_community_canbuy()
  1384. {
  1385. $_GPC = I('request.');
  1386. $goods_id = $_GPC['goods_id'];
  1387. $community_id = $_GPC['community_id'];
  1388. $is_canshow = D('Seller/Communityhead')->check_goods_can_community($goods_id, $community_id);
  1389. if ($is_canshow) {
  1390. echo json_encode(array('code' => 0));
  1391. die();
  1392. } else {
  1393. echo json_encode(array('code' => 1));
  1394. die();
  1395. }
  1396. }
  1397. //猜你喜欢
  1398. public function goods_guess_like()
  1399. {
  1400. $_GPC = I('request.');
  1401. //猜你喜欢开关
  1402. $show_goods_guess_like = D('Home/Front')->get_config_by_name('show_goods_guess_like');
  1403. if (empty($show_goods_guess_like)) {
  1404. $show_goods_guess_like = 0;
  1405. }
  1406. $token = $_GPC['token'];
  1407. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where(array('token' => $token))->find();
  1408. if (empty($weprogram_token) || empty($weprogram_token['member_id'])) {
  1409. $member_id = 0;
  1410. } else {
  1411. $member_id = $weprogram_token['member_id'];
  1412. }
  1413. //显示数量
  1414. $num_guess_like = D('Home/Front')->get_config_by_name('num_guess_like');
  1415. if (empty($num_guess_like)) {
  1416. $num_guess_like = 8;
  1417. }
  1418. $goods_id = $_GPC['id'];
  1419. $community_id = $_GPC['head_id'];
  1420. $token = $_GPC['token'];
  1421. $now_time = time();
  1422. if (!empty($community_id)) {
  1423. //有社区
  1424. $head_info = M('lionfish_community_head')->field('id')->where(array('id' => $community_id))->find();
  1425. //团长商品和全部可售
  1426. //lionfish_community_head_goods
  1427. //&head_id=303&id=317
  1428. $head_goods = M('lionfish_community_head_goods')->field('goods_id')->where(array('head_id' => $head_info['id']))->select();
  1429. foreach ($head_goods as $hg) {
  1430. $hg = join(",", $hg);
  1431. $temp_array[] = $hg;
  1432. }
  1433. //团长商品id
  1434. $goods_id_list = implode(",", $temp_array);
  1435. $likegoods_list = array();
  1436. if (!empty($goods_id_list)) {
  1437. $sql_likegoods = "select g.*,gc.end_time,gc.begin_time,gc.oneday_limit_count,gc.total_limit_count,gc.one_limit_count,gc.goods_start_count from " . C('DB_PREFIX') . "lionfish_comshop_goods as g," . C('DB_PREFIX') . "lionfish_comshop_good_common as gc
  1438. where g.id = gc.goods_id and gc.begin_time <={$now_time} and gc.end_time > {$now_time} and (g.grounding =1 or g.id in (" . $goods_id_list . ") and g.id <> " . $goods_id . " ) and g.type = 'normal' and g.is_all_sale = 1 order by rand() limit " . $num_guess_like;
  1439. $likegoods_list = M()->query($sql_likegoods);
  1440. } else {
  1441. $sql_likegoods = "select g.*,gc.end_time,gc.begin_time,gc.oneday_limit_count,gc.total_limit_count,gc.one_limit_count,gc.goods_start_count from " . C('DB_PREFIX') . "lionfish_comshop_goods as g," . C('DB_PREFIX') . "lionfish_comshop_good_common as gc
  1442. where g.id = gc.goods_id and gc.begin_time <={$now_time} and gc.end_time > {$now_time} and (g.grounding =1 and g.id <> " . $goods_id . " ) and g.type = 'normal' and g.is_all_sale = 1 order by rand() limit " . $num_guess_like;
  1443. $likegoods_list = M()->query($sql_likegoods);
  1444. }
  1445. } else {
  1446. //无社区
  1447. $sql_likegoods = "select g.*,gc.end_time,gc.begin_time,gc.oneday_limit_count,gc.total_limit_count,gc.one_limit_count,gc.goods_start_count from " . C('DB_PREFIX') . "lionfish_comshop_goods as g," . C('DB_PREFIX') . "lionfish_comshop_good_common as gc
  1448. where g.id = gc.goods_id and gc.begin_time <={$now_time} and gc.end_time > {$now_time} and g.grounding =1 and g.type = 'normal' and g.id <> " . $goods_id . " order by rand() limit " . $num_guess_like;
  1449. $likegoods_list = M()->query($sql_likegoods);
  1450. }
  1451. if (!empty($likegoods_list)) {
  1452. $list = array();
  1453. foreach ($likegoods_list as $val) {
  1454. $tmp_data = array();
  1455. $tmp_data['actId'] = $val['id'];
  1456. $tmp_data['spuName'] = $val['goodsname'];
  1457. $tmp_data['spuCanBuyNum'] = $val['total'];
  1458. $tmp_data['spuDescribe'] = $val['subtitle'];
  1459. $tmp_data['end_time'] = $val['end_time'];
  1460. $tmp_data['soldNum'] = $val['seller_count'] + $val['sales'];
  1461. $tmp_data['oneday_limit_count'] = $val['oneday_limit_count'];
  1462. $tmp_data['total_limit_count'] = $val['total_limit_count'];
  1463. $tmp_data['one_limit_count'] = $val['one_limit_count'];
  1464. $tmp_data['goods_start_count'] = $val['goods_start_count'];
  1465. $productprice = $val['productprice'];
  1466. $tmp_data['marketPrice'] = explode('.', $productprice);
  1467. if (!empty($val['big_img'])) {
  1468. $tmp_data['bigImg'] = tomedia($val['big_img']);
  1469. }
  1470. $good_image = D('Home/Pingoods')->get_goods_images($val['id']);
  1471. if (!empty($good_image)) {
  1472. $tmp_data['skuImage'] = tomedia($good_image['image']);
  1473. }
  1474. $price_arr = D('Home/Pingoods')->get_goods_price($val['id'], $member_id);
  1475. $price = $price_arr['price'];
  1476. if ($pageNum == 1) {
  1477. $copy_text_arr[] = array('goods_name' => $val['goodsname'], 'price' => $price);
  1478. }
  1479. $tmp_data['actPrice'] = explode('.', $price);
  1480. $tmp_data['danPrice'] = $price_arr['danprice'];
  1481. //$tmp_data['skuList']= D('Home/Pingoods')->get_goods_options($val['id'],$member_id);
  1482. $tmp_data['skuList'] = D('Home/Pingoods')->get_goods_options_carquantity($val['id'], $member_id, $community_id, $token);
  1483. if (!empty($tmp_data['skuList'])) {
  1484. $tmp_data['car_count'] = 0;
  1485. } else {
  1486. //$car_count = $cart->get_wecart_goods($val['id'],"",$head_id ,$token);
  1487. $car_count = 0;
  1488. if (empty($car_count)) {
  1489. $tmp_data['car_count'] = 0;
  1490. } else {
  1491. $tmp_data['car_count'] = $car_count;
  1492. }
  1493. }
  1494. if ($is_open_fullreduction == 0) {
  1495. $tmp_data['is_take_fullreduction'] = 0;
  1496. } else if ($is_open_fullreduction == 1) {
  1497. $tmp_data['is_take_fullreduction'] = $val['is_take_fullreduction'];
  1498. }
  1499. // 商品角标
  1500. $label_id = unserialize($val['labelname']);
  1501. if ($label_id) {
  1502. $label_info = D('Home/Pingoods')->get_goods_tags($label_id);
  1503. if ($label_info) {
  1504. if ($label_info['type'] == 1) {
  1505. $label_info['tagcontent'] = tomedia($label_info['tagcontent']);
  1506. } else {
  1507. $label_info['len'] = mb_strlen($label_info['tagcontent'], 'utf-8');
  1508. }
  1509. }
  1510. $tmp_data['label_info'] = $label_info;
  1511. }
  1512. $tmp_data['is_video'] = empty($val['video']) ? false : true;
  1513. $list[] = $tmp_data;
  1514. }
  1515. }
  1516. echo json_encode(array('code' => 0,
  1517. 'show_goods_guess_like' => $show_goods_guess_like,
  1518. 'list' => $list,
  1519. )
  1520. );
  1521. die();
  1522. }
  1523. /**
  1524. * 视频列表分享信息
  1525. * @return [type] [description]
  1526. */
  1527. public function get_video_list_share()
  1528. {
  1529. $_GPC = I('request.');
  1530. $res = array();
  1531. $res['nav_title'] = D('Home/Front')->get_config_by_name('videolist_nav_title');
  1532. $res['share_title'] = D('Home/Front')->get_config_by_name('videolist_share_title');
  1533. $res['share_poster'] = '';
  1534. $videolist_share_poster = D('Home/Front')->get_config_by_name('videolist_share_poster');
  1535. if ($videolist_share_poster)
  1536. $res['share_poster'] = tomedia($videolist_share_poster);
  1537. echo json_encode(array('code' => 0, 'data' => $res));
  1538. die();
  1539. }
  1540. }