GoodsController.class.php 56 KB

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