GroupdoController.class.php 37 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328
  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 GroupdoController extends CommonController {
  16. protected function _initialize()
  17. {
  18. parent::_initialize();
  19. }
  20. public function get_goods_detail() {
  21. $_GPC = I('request.');
  22. $id = $_GPC['id'];
  23. $pin_id = isset($_GPC['pin_id']) ? $_GPC['pin_id'] : 0;
  24. $token = $_GPC['token'];
  25. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find();
  26. $member_id = $weprogram_token['member_id'];
  27. $pintuan_model_buy = D('Home/Front')->get_config_by_name('pintuan_model_buy');
  28. if( empty($pintuan_model_buy) || $pintuan_model_buy ==0 )
  29. {
  30. $pintuan_model_buy = 0;
  31. }
  32. //团长休息
  33. $community_id = $_GPC['community_id'];
  34. $is_comunity_rest = D('Seller/Communityhead')->is_community_rest($community_id);
  35. $need_data = array();
  36. $sql = "select g.*,gd.content,gd.begin_time,gd.end_time,gd.video,gd.is_take_fullreduction,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.goods_share_image,gd.relative_goods_list,gd.is_show_arrive,gd.diy_arrive_switch,gd.diy_arrive_details from " . C('DB_PREFIX'). "lionfish_comshop_goods as g," . C('DB_PREFIX') . "lionfish_comshop_good_common as gd
  37. where g.id=gd.goods_id and g.id=" . $id;
  38. $goods_arr = M()->query($sql);
  39. $goods = $goods_arr[0];
  40. $goods['goods_id'] = $id;
  41. $goods['is_take_fullreduction'] = 0;
  42. $goods['is_video'] = 0;
  43. $goods['video_size_width'] = 0;
  44. $goods['vedio_size_height'] = 0;
  45. $goods['video_src'] = '';
  46. if( !empty($goods['goods_share_image']) )
  47. {
  48. $goods['goods_share_image'] = tomedia($goods['goods_share_image']);
  49. }
  50. //video
  51. if( !empty($goods['video']) )
  52. {
  53. $goods['video'] = tomedia($goods['video']);
  54. }
  55. $goods['description'] = htmlspecialchars_decode($goods['content']);
  56. $qian = array(
  57. "\r\n"
  58. );
  59. $hou = array(
  60. "<br/>"
  61. );
  62. $goods['subtitle'] = str_replace($qian, $hou, $goods['subtitle']);
  63. $hou = array(
  64. "@EOF@"
  65. );
  66. $today_time = strtotime( date('Y-m-d').' 00:00:00' );
  67. //pick_up_type
  68. //gd.begin_time,gd.end_time,
  69. //over_type =0 未开始,over_type =2已结束,over_type =1距结束
  70. $now_time = time();
  71. if($goods['begin_time'] > $now_time)
  72. {
  73. $goods['over_type'] = 0;
  74. }else if( $goods['begin_time'] <= $now_time && $goods['end_time'] > $now_time ){
  75. $goods['over_type'] = 1;
  76. }else if($goods['end_time'] < $now_time){
  77. $goods['over_type'] = 2;
  78. $goods['end_date'] = date('m/d H:i', $goods['end_time']);
  79. }
  80. $goods['activity_summary'] = '';
  81. $onegood_image = D('Home/Pingoods')->get_goods_images($id);
  82. if( !empty($onegood_image) )
  83. {
  84. $goods['image_thumb'] = tomedia($onegood_image['image']);
  85. $goods['image'] = tomedia($onegood_image['image']);
  86. }
  87. $buy_record_arr = D('Home/Frontorder')->get_goods_buy_record($id,9);
  88. $goods_image = D('Home/Pingoods')->get_goods_images($id, 10);
  89. if (isset($goods_image)) {
  90. foreach ($goods_image as $k => $v) {
  91. $goods_image[$k]['image'] = tomedia($v['image']);
  92. }
  93. }
  94. $goods['seller_count']+= $goods['sales'];
  95. $goods_price_arr = D('Home/Pingoods')->get_goods_price($id, $member_id);
  96. $goods['price'] = $goods_price_arr['price'];
  97. $goods['danprice'] = $goods_price_arr['danprice'];
  98. $price_dol = explode('.', $goods_price_arr['price']);
  99. $goods['price_front'] = $price_dol[0];
  100. $goods['price_after'] = $price_dol[1];
  101. $labelname_arr = unserialize( $goods['labelname'] );
  102. $tag_arr = array();
  103. if( !empty($labelname_arr) )
  104. {
  105. $goods['tag'] = $labelname_arr;
  106. }else{
  107. if( $goods['quality'] == 1)
  108. {
  109. $tag_arr[] = '正品保证';
  110. }
  111. if( $goods['seven'] == 1)
  112. {
  113. $tag_arr[] = '7天无理由退换';
  114. }
  115. if( $goods['repair'] == 1)
  116. {
  117. $tag_arr[] = '保修';
  118. }
  119. $goods['tag'] = $tag_arr;
  120. }
  121. $goods['fan_image'] = $goods['image'];
  122. $one_image = D('Home/Pingoods')->get_goods_images($id, 1);
  123. $goods['one_image'] = tomedia($one_image['image']);
  124. $pin_info = $goods_price_arr;
  125. $pin_goods_info = M('lionfish_comshop_good_pin')->where( array('goods_id' => $id ) )->find();
  126. $user_favgoods = D('Home/Pingoods')->fav_goods_state($id, $member_id);
  127. if( !empty($user_favgoods) )
  128. {
  129. $goods['favgoods'] = 2;
  130. }else{
  131. $goods['favgoods'] = 1;
  132. }
  133. $price = $goods['danprice'];
  134. $lottery_info = array();
  135. $need_data['lottery_info'] = $lottery_info;
  136. if(empty($goods['share_title'])) $goods['share_title'] = $price.'元 '.$goods['goodsname'];
  137. /** 商品会员折扣begin **/
  138. $is_show_member_disc = 0;
  139. $member_disc = 100;
  140. /** 商品会员折扣end **/
  141. $goods['memberprice'] = sprintf('%.2f', round( ($goods['danprice'] * $member_disc) / 100 ,2));
  142. $max_get_dan_money = round( ($goods['danprice'] * (100 - $max_member_level['discount']) ) / 100 ,2);
  143. $max_get_money = $max_get_dan_money;
  144. if(!empty($pin_info))
  145. {
  146. $pin_info['member_pin_price'] = sprintf('%.2f',round( ($pin_info['pin_price'] * $member_disc) / 100 ,2));
  147. $max_get_pin_money = round( ($pin_info['pin_price'] * (100 - $max_member_level['discount']) ) / 100 ,2);
  148. $max_get_money = $max_get_pin_money;
  149. }
  150. // 商品角标
  151. $label_id = unserialize($goods['labelname']);
  152. if($label_id){
  153. $label_info = D('Home/Pingoods')->get_goods_tags($label_id);
  154. if($label_info){
  155. if($label_info['type'] == 1){
  156. $label_info['tagcontent'] = tomedia($label_info['tagcontent']);
  157. } else {
  158. $label_info['len'] = mb_strlen($label_info['tagcontent'], 'utf-8');
  159. }
  160. }
  161. $goods['label_info'] = $label_info;
  162. }
  163. $pintuan_newman_notice = D('Home/Front')->get_config_by_name('pintuan_newman_notice');
  164. if( !empty($pintuan_newman_notice) )
  165. {
  166. $pintuan_newman_notice = htmlspecialchars_decode($pintuan_newman_notice);
  167. $qian = array(
  168. "\r\n"
  169. );
  170. $hou = array(
  171. "<br/>"
  172. );
  173. $pintuan_newman_notice = str_replace($qian, $hou, $pintuan_newman_notice);
  174. }
  175. $pin_info['is_commiss_tuan'] = $pin_goods_info['is_commiss_tuan'];
  176. $pin_info['is_zero_open'] = $pin_goods_info['is_commiss_tuan'] == 1 ? $pin_goods_info['is_zero_open'] : 0;
  177. $pin_info['is_newman'] = $pin_goods_info['is_newman'];
  178. $pin_info['pintuan_newman_notice'] = $pintuan_newman_notice;
  179. $pin_info['commiss_type'] = $pin_goods_info['commiss_type'];
  180. $pin_info['commiss_money'] = $pin_goods_info['commiss_money'];
  181. $need_data['pin_info'] = $pin_info;
  182. /**
  183. if(!empty($member_id) && $member_id > 0 && $goods[0]['type'] == 'integral')
  184. {
  185. $member_info = M('member')->field('score')->where( array('member_id' => $member_id) )->find();
  186. if($member_info['score'] < $goods[0]['score'])
  187. {
  188. $goods[0]['score_enough'] = 0;
  189. }else{
  190. $goods[0]['score_enough'] = 1;
  191. }
  192. }
  193. **/
  194. $need_data['member_level_info'] = $member_level_info;
  195. $need_data['member_level_list'] = $member_level_list;
  196. $need_data['max_member_level'] = $max_member_level;
  197. $need_data['max_get_money'] = sprintf('%.2f',$max_get_money);
  198. $need_data['max_get_pin_money'] = $max_get_pin_money;
  199. $need_data['max_get_dan_money'] = $max_get_dan_money;
  200. $need_data['buy_record_arr'] = $buy_record_arr;
  201. $need_data['is_show_max_level'] = $is_show_max_level;
  202. $goods['actPrice'] = explode('.', $goods['price']);
  203. $goods['marketPrice'] = explode('.', $goods['productprice']);
  204. ///relative_goods_list member_id
  205. $relative_goods_list = array();
  206. unset($goods['relative_goods_list']);
  207. $need_data['relative_goods_list'] = $relative_goods_list;
  208. $need_data['goods'] = $goods;
  209. $need_data['goods_image'] = $goods_image;
  210. $need_data['site_name'] = D('Home/Front')->get_config_by_name('shoname');
  211. $need_data['options'] = D('Home/Pingoods')->get_goods_options($id, $member_id); // $goods_model->get_goods_options($id);
  212. $order_comment_count = M('lionfish_comshop_order_comment')->where( array('state' => 1, 'goods_id' => $id ) )->count();
  213. $comment_list = array();
  214. if($order_comment_count > 0)
  215. {
  216. $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
  217. on o.member_id=m.member_id
  218. where o.state = 1 and o.goods_id = {$id} order by o.add_time desc limit 1";
  219. $comment_list= M()->query($sql);
  220. $order_comment_images = array();
  221. foreach($comment_list as $key => $val)
  222. {
  223. //user_name
  224. if( empty($val['user_name']) )
  225. {
  226. $val['name'] = $val['name2'];
  227. $val['avatar'] = tomedia($val['avatar2']);
  228. }else{
  229. $val['name'] = $val['user_name'];
  230. $val['avatar'] = tomedia($val['avatar']);
  231. }
  232. if($val['type'] == 0)
  233. {
  234. $order_goods_info = M('lionfish_comshop_order_goods')->field('order_goods_id')->where( array('goods_id' => $id,'order_id' => $val['order_id'] ) )->find();
  235. $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();
  236. $option_arr = array();
  237. foreach($order_option_info as $option)
  238. {
  239. $option_arr[] = $option['value'];
  240. }
  241. $option_str = implode(',', $option_arr);
  242. }else{
  243. $option_str = '';
  244. }
  245. $img_str = unserialize($val['images']);
  246. if( !empty($img_str) && $img_str != 'undefined' )
  247. {
  248. // $img_str = unserialize($val['images']);
  249. $img_list = explode(',', $img_str);
  250. $need_img_list = array();
  251. foreach($img_list as $kk => $vv)
  252. {
  253. if(!empty($vv) )
  254. {
  255. $vv = tomedia($vv );
  256. $img_list[$kk] = $vv;
  257. $need_img_list[$kk] = $vv;
  258. if(count($order_comment_images) <= 4)
  259. $order_comment_images[] = $vv;
  260. }
  261. }
  262. $val['images'] = $need_img_list ;
  263. } else {
  264. $val['images'] = array();
  265. }
  266. $val['option_str'] = $option_str;
  267. $val['add_time'] = date('Y-m-d', $val['add_time']) ;
  268. $comment_list[$key] = $val;
  269. }
  270. //$this->comment_list = $comment_list;
  271. }
  272. $need_data['cur_time'] = time();
  273. $need_data['pin_id'] = $pin_id;
  274. $need_data['is_show_arrive'] = $goods['is_show_arrive'];
  275. $need_data['diy_arrive_switch'] = $goods['diy_arrive_switch'];
  276. $need_data['diy_arrive_details'] = $goods['diy_arrive_details'];
  277. //团长休息
  278. $goodsdetails_addcart_bg_color = D('Home/Front')->get_config_by_name('goodsdetails_addcart_bg_color');
  279. $goodsdetails_buy_bg_color = D('Home/Front')->get_config_by_name('goodsdetails_buy_bg_color');
  280. $is_close_details_time = D('Home/Front')->get_config_by_name('is_close_details_time');
  281. $pintuan_close_stranger = D('Home/Front')->get_config_by_name('pintuan_close_stranger');
  282. $isopen_community_group_share = D('Home/Front')->get_config_by_name('isopen_community_group_share');
  283. $group_share_info = '';
  284. echo json_encode(array(
  285. 'code' => 1,
  286. 'comment_list' => $comment_list,
  287. 'order_comment_images' => $order_comment_images,
  288. 'order_comment_count' => $order_comment_count,
  289. 'data' => $need_data,
  290. 'is_comunity_rest' => $is_comunity_rest,
  291. 'open_man_orderbuy' => $open_man_orderbuy,
  292. 'man_orderbuy_money' => $man_orderbuy_money,
  293. 'goodsdetails_buy_bg_color' => $goodsdetails_buy_bg_color,
  294. 'goodsdetails_addcart_bg_color' => $goodsdetails_addcart_bg_color,
  295. 'isopen_community_group_share' => $isopen_community_group_share,
  296. 'group_share_info' => $group_share_info,
  297. 'is_close_details_time' => $is_close_details_time,
  298. 'pintuan_model_buy' => $pintuan_model_buy,
  299. 'pintuan_close_stranger' => $pintuan_close_stranger
  300. ));
  301. die();
  302. }
  303. public function get_goods_fujin_tuan()
  304. {
  305. $_GPC = I('request.');
  306. $pintuan_model_buy = D('Home/Front')->get_config_by_name('pintuan_model_buy');
  307. if( empty($pintuan_model_buy) )
  308. {
  309. $pintuan_model_buy = 0;
  310. }
  311. $head_id = isset($_GPC['head_id']) ? $_GPC['head_id']:0;
  312. $goods_id = $_GPC['goods_id'];
  313. $limit = isset($_GPC['limit']) ? $_GPC['limit']:8;
  314. $where = "";
  315. if( $pintuan_model_buy == 1 )
  316. {
  317. //o.order_id head_id
  318. $where .= " and o.head_id = {$head_id} ";
  319. }
  320. $pintuan_stranger_zero = D('Home/Front')->get_config_by_name('pintuan_stranger_zero');
  321. if( !isset($pintuan_stranger_zero) || $pintuan_stranger_zero == 0 )
  322. {
  323. $where .= " and o.type !='ignore' ";
  324. }
  325. $fujin_sql = "select distinct(p.pin_id) as pin_id,p.need_count,o.order_id,p.end_time,m.username,m.avatar from ".C('DB_PREFIX')."lionfish_comshop_pin as p,".C('DB_PREFIX')."lionfish_comshop_order_goods as og,".C('DB_PREFIX')."lionfish_comshop_pin_order as po,
  326. ".C('DB_PREFIX')."lionfish_comshop_order as o,".C('DB_PREFIX')."lionfish_comshop_member as m
  327. where p.pin_id = po.pin_id and po.order_id = o.order_id and og.order_id=o.order_id and o.member_id = m.member_id {$where} and o.order_status_id =2 and og.goods_id={$goods_id} and p.end_time>".time()." group by po.pin_id order by p.end_time asc limit {$limit}";
  328. $fujin_countsql = "select distinct(p.pin_id) as pin_id,p.need_count,o.order_id,p.end_time,m.username,m.avatar from ".C('DB_PREFIX')."lionfish_comshop_pin as p,".C('DB_PREFIX')."lionfish_comshop_order_goods as og,".C('DB_PREFIX')."lionfish_comshop_pin_order as po,
  329. ".C('DB_PREFIX')."lionfish_comshop_order as o,".C('DB_PREFIX')."lionfish_comshop_member as m
  330. where p.pin_id = po.pin_id and po.order_id=o.order_id and og.order_id=o.order_id and o.member_id = m.member_id {$where} and o.order_status_id =2 and og.goods_id={$goods_id} and p.end_time>".time()." group by po.pin_id order by p.end_time asc ";
  331. $fujin_tuan_arr_count = M()->query($fujin_countsql );
  332. $fujin_tuan_count = count($fujin_tuan_arr_count);
  333. $fujin_tuan = M()->query($fujin_sql);
  334. $result = array();
  335. if(!empty($fujin_tuan))
  336. {
  337. foreach($fujin_tuan as $pintuan)
  338. {
  339. $buy_count = $this->get_tuan_buy_count($pintuan['pin_id']);
  340. $pintuan['buy_count'] =$buy_count;
  341. $pintuan['cur_interface_time'] = time();
  342. $pintuan['re_need_count'] = $pintuan['need_count'] - $buy_count;
  343. //shipping_city_id
  344. //$pintuan['area_name'] = $area_info['area_name'];
  345. $order_id = $pintuan['order_id'];
  346. if($buy_count > 0)
  347. {
  348. //存在进行中的
  349. $result[] = $pintuan;
  350. }
  351. }
  352. }
  353. if( empty($result) )
  354. {
  355. echo json_encode( array('code' => 1) );
  356. die();
  357. }else{
  358. echo json_encode( array('code' => 0, 'list' => $result, 'count' => $fujin_tuan_count) );
  359. die();
  360. }
  361. }
  362. /**
  363. * 获取拼团已成功购买价数量
  364. */
  365. public function get_tuan_buy_count($pin_id=0)
  366. {
  367. $buy_count_sql = "select count(o.order_id) as count from ".C('DB_PREFIX')."lionfish_comshop_pin as p,".C('DB_PREFIX')."lionfish_comshop_pin_order as po,"
  368. .C('DB_PREFIX')."lionfish_comshop_order_goods as og,
  369. ".C('DB_PREFIX')."lionfish_comshop_order as o
  370. where p.pin_id = po.pin_id and po.order_id=o.order_id and og.order_id = o.order_id and o.order_status_id =2 and p.pin_id={$pin_id} ";
  371. $count_tuan_arr = M()->query($buy_count_sql );
  372. return $count_tuan_arr[0]['count'];
  373. }
  374. function group_info()
  375. {
  376. $_GPC = I('request.');
  377. $interface_get_time = time();
  378. $token = $_GPC['token'];
  379. $order_id = $_GPC['order_id'];
  380. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find();
  381. $member_id = $weprogram_token['member_id'];
  382. if( empty($member_id) )
  383. {
  384. $member_id = 0;
  385. }
  386. $is_show = 0;
  387. //获取拼团商品信息
  388. $order_goods = M('lionfish_comshop_order_goods')->field('name,goods_id,price,total,goods_images,quantity')->where( array('order_id' => $order_id ) )->find();
  389. if(empty($order_goods))
  390. {
  391. //未找到
  392. echo json_encode( array('code' =>1) );
  393. die();
  394. }
  395. //分享标题为购买价格
  396. //$order_goods['price'] = round($order_goods['price'],2);
  397. $order_goods['total'] = round($order_goods['total'],2);
  398. $order_info = M('lionfish_comshop_order')->field('member_id,type,head_id')->where( array('order_id' =>$order_id ) )->find();
  399. $good_image = D('Home/Pingoods')->get_goods_images($order_goods['goods_id']);
  400. if( !empty($good_image) )
  401. {
  402. //$order_goods['goods_images'] = tomedia($good_image['image']);
  403. }
  404. $goods_info = M('lionfish_comshop_goods')->field('goodsname as name,subtitle,productprice ,seller_count,sales as virtual_count,is_all_sale')->where( array('id' => $order_goods['goods_id'] ) )->find();
  405. $goods_desc = M('lionfish_comshop_good_common')->field('share_title as share_group_title')->where( array('goods_id' => $order_goods['goods_id'] ) )->find();
  406. $goods_info['seller_count'] = $goods_info['seller_count'] + $goods_info['virtual_count'];
  407. if( !empty($good_image) )
  408. {
  409. $goods_info['goods_images'] = tomedia($good_image['image']);
  410. }
  411. unset($goods_info['virtual_count']);
  412. $pin_order = M('lionfish_comshop_pin_order')->where( array('order_id' => $order_id ) )->find();
  413. //获取拼团信息
  414. $pin_info = M('lionfish_comshop_pin')->where( array('pin_id' =>$pin_order['pin_id'] ) )->find();
  415. $pintuan_isvirs_success = D('Home/Front')->get_config_by_name('pintuan_isvirs_success');
  416. if( !empty($pintuan_isvirs_success) && $pintuan_isvirs_success == 1 && $pin_info['state'] == 0 && $pin_info['end_time'] < time() )
  417. {
  418. $res = D('Home/Pin')->jia_over_order( $pin_info['pin_id'] );
  419. $pin_info = M('lionfish_comshop_pin')->where( array('pin_id' =>$pin_order['pin_id'] ) )->find();
  420. }
  421. //拼团状态:0进行中, 1成功, 2 已经过期了
  422. if($pin_info['state'] == 0 && $pin_info['end_time'] < time()){
  423. $pin_info['state'] = 2;
  424. }
  425. if( !empty($pin_info['success_time']) )
  426. {
  427. $pin_info['success_time'] = date('Y-m-d H:i:s', $pin_info['success_time']);
  428. }
  429. $goods_info['pin_count'] = $pin_info['need_count'];
  430. $price_arr = D('Home/Pingoods')->get_goods_price($order_goods['goods_id'], $member_id);
  431. $goods_info['pinprice'] = $price_arr['price'];
  432. //分享标题为规格最低价格
  433. $order_goods['price'] = round($price_arr['price'],2);
  434. $goods_info['danprice'] = $price_arr['danprice'];
  435. //ims_
  436. $tuanzhang_info = M('lionfish_comshop_member')->field('member_id,username,telephone,avatar')->where( array('member_id' => $pin_info['user_id'] ) )->find();
  437. $pin_order_sql = "select po.add_time,m.member_id,m.username as name,m.telephone,m.avatar from ".C('DB_PREFIX')."lionfish_comshop_pin_order as po,".C('DB_PREFIX')."lionfish_comshop_order as o,
  438. ".C('DB_PREFIX')."lionfish_comshop_order_goods as og,".C('DB_PREFIX')."lionfish_comshop_member as m
  439. where po.pin_id = ".$pin_info['pin_id']." and o.order_status_id in(1,2,4,6,7,8,9,10,11,14)
  440. and og.order_id = po.order_id and o.order_id = po.order_id and o.member_id= m.member_id order by po.add_time asc ";
  441. $pin_order_arr = M()->query($pin_order_sql);
  442. $me_take_in = 0;
  443. foreach($pin_order_arr as $key =>$val)
  444. {
  445. if($member_id == $val['member_id'])
  446. {
  447. $me_take_in = 1;
  448. }
  449. $pin_order_arr[$key] = $val;
  450. }
  451. //pin_order_arr
  452. if( $pin_info['is_jiqi'] == 1 )
  453. {
  454. $jiapinorder = M('lionfish_comshop_jiapinorder')->where( array('pin_id' => $pin_info['pin_id'] ) )->order('id asc')->select();
  455. if( !empty($jiapinorder) )
  456. {
  457. foreach( $jiapinorder as $vv )
  458. {
  459. $tp_arr_info = array();
  460. $tp_arr_info['add_time'] = $vv['addtime'];
  461. $tp_arr_info['member_id'] = $vv['id'];
  462. $tp_arr_info['name'] = $vv['uname'];
  463. $tp_arr_info['telephone'] = $vv['mobile'];
  464. $tp_arr_info['avatar'] = tomedia( $vv['avatar']);
  465. $pin_order_arr[] = $tp_arr_info ;
  466. }
  467. }
  468. }
  469. $is_me = 0;
  470. if($order_info['member_id'] == $member_id)
  471. {
  472. $is_me = 1;
  473. }
  474. $share_title = "不要错过~我".round($order_goods['price'],2)."元拼了".$goods_info['name'];
  475. if(!empty($goods_desc['share_group_title']) )
  476. {
  477. $share_title = $goods_desc['share_group_title'];
  478. $share_title = str_replace('{pin_price}',round($order_goods['price'],2),$share_title);
  479. $share_title = str_replace('{name}',$goods_info['name'],$share_title);
  480. }
  481. /* 商品规格begin */
  482. /* 商品规格end */
  483. unset( $tuanzhang_info['reg_type'] );
  484. unset( $tuanzhang_info['openid'] );
  485. unset( $tuanzhang_info['we_openid'] );
  486. unset( $tuanzhang_info['bindmobile'] );
  487. unset( $tuanzhang_info['uname'] );
  488. unset( $tuanzhang_info['email'] );
  489. unset( $tuanzhang_info['pwd'] );
  490. unset( $tuanzhang_info['address_id'] );
  491. unset( $tuanzhang_info['share_id'] );
  492. unset( $tuanzhang_info['comsiss_flag'] );
  493. unset( $tuanzhang_info['bind_seller_id'] );
  494. unset( $tuanzhang_info['bind_seller_pickup'] );
  495. unset( $tuanzhang_info['cart'] );
  496. unset( $tuanzhang_info['wishlist'] );
  497. unset( $tuanzhang_info['id_cardreal_name'] );
  498. unset( $tuanzhang_info['id_card'] );
  499. unset( $tuanzhang_info['login_count'] );
  500. unset( $tuanzhang_info['last_login_ip'] );
  501. unset( $tuanzhang_info['last_ip_region'] );
  502. unset( $tuanzhang_info['create_time'] );
  503. unset( $tuanzhang_info['last_login_time'] );
  504. unset( $tuanzhang_info['status'] );
  505. $options = D('Home/Pingoods')->get_goods_options($order_goods['goods_id']);
  506. $need_data = array();
  507. $need_data['is_me'] = $is_me;
  508. $need_data['goods_info'] = $goods_info;
  509. //$need_data['pin_goods'] = $pin_goods;
  510. //$need_data['pin_order'] = $pin_order;
  511. $need_data['me_take_in'] = $me_take_in;
  512. $need_data['share_title'] = $share_title;
  513. //$need_data['tuanzhang_info'] = $tuanzhang_info;
  514. $need_data['pin_order_arr'] = $pin_order_arr;
  515. $need_data['order_goods'] = $order_goods;
  516. $need_data['order_id'] = $order_id;
  517. $need_data['order_type'] = $order_info['type'];
  518. $need_data['community_id'] = $order_info['head_id'];
  519. $need_data['group_order_id'] = $group_order_id;
  520. $need_data['options'] = $options;
  521. $need_data['interface_get_time'] = $interface_get_time;
  522. $need_data['member_id'] = $member_id;
  523. $need_data['del_count'] = $pin_info['need_count'] - count($pin_order_arr);
  524. if( $need_data['del_count'] <= 0 && $pin_info['state'] != 2 )
  525. {
  526. $pin_info['state'] = 1;
  527. }
  528. $need_data['pin_info'] = $pin_info;
  529. $pintuan_model_buy = D('Home/Front')->get_config_by_name('pintuan_model_buy');
  530. if( empty($pintuan_model_buy) || $pintuan_model_buy ==0 )
  531. {
  532. $pintuan_model_buy = 0;
  533. }
  534. $need_data['pintuan_model_buy'] = $pintuan_model_buy;
  535. $hide_community_change_btn = D('Home/Front')->get_config_by_name('hide_community_change_btn');
  536. $need_data['hide_community_change_btn'] = $hide_community_change_btn;
  537. $pintuan_show_community_info = D('Home/Front')->get_config_by_name('pintuan_show_community_info');
  538. $need_data['pintuan_show_community_info'] = $pintuan_show_community_info;
  539. echo json_encode( array('code' =>0, 'data' => $need_data) );
  540. die();
  541. }
  542. /***
  543. 获取会员佣金团的收益账户金额
  544. **/
  545. public function get_pincommiss_account_info()
  546. {
  547. $_GPC = I('request.');
  548. $token = $_GPC['token'];
  549. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find();
  550. $member_id = $weprogram_token['member_id'];
  551. if( empty($member_id) )
  552. {
  553. $member_id = 0;
  554. }
  555. $member_info = M('lionfish_comshop_member')->where( array('member_id' => $member_id ) )->find();
  556. if( empty($member_info) )
  557. {
  558. echo json_encode( array('code' => 1,'msg' => '您未登录') );
  559. die();
  560. }
  561. //commission_account($member_id)
  562. D('Home/Pin')->commission_account($member_id);
  563. $pintuan_commiss = M('lionfish_comshop_pintuan_commiss')->where( array('member_id' => $member_id ) )->find();
  564. //可提现金额 money
  565. //待结算金额 ims_lionfish_comshop_pintuan_commiss_order
  566. $wait_statements_money = M('lionfish_comshop_pintuan_commiss_order')->where( array('member_id' =>$member_id,'state' => 0 ) )->sum('money');
  567. //已结算金额 has_statements_money
  568. $has_statements_money = M('lionfish_comshop_pintuan_commiss_order')->where( array('member_id' =>$member_id,'state' => 1 ) )->sum('money');
  569. //已提现金额 getmoney
  570. $pintuan_commiss['wait_statements_money'] = empty($wait_statements_money) ? 0:$wait_statements_money;//待结算金额
  571. $pintuan_commiss['has_statements_money'] = empty($has_statements_money) ? 0 :$has_statements_money;//已结算金额
  572. echo json_encode( array('code' => 0, 'data' => $pintuan_commiss ) );
  573. die();
  574. }
  575. /**
  576. 获取佣金订单列表
  577. **/
  578. public function listorder_list()
  579. {
  580. $_GPC = I('request.');
  581. $token = $_GPC['token'];
  582. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find();
  583. $member_id = $weprogram_token['member_id'];
  584. if( empty($member_id) )
  585. {
  586. $member_id = 0;
  587. }
  588. $member_info = M('lionfish_comshop_member')->where( array('member_id' => $member_id ) )->find();
  589. if( empty($member_info) )
  590. {
  591. echo json_encode( array('code' => 1, 'msg' => '会员不存在') );
  592. die();
  593. }
  594. $per_page = 6;
  595. $page = isset($_GPC['page']) ? $_GPC['page']:1;
  596. $offset = ($page - 1) * $per_page;
  597. $list = array();
  598. $where = '';
  599. $state = isset($_GPC['state']) ? $_GPC['state']: -1;
  600. //state
  601. if($state >=0)
  602. {
  603. $where .= ' and mco.state = '.$state;
  604. }
  605. $sql = 'select mco.money,mco.addtime,mco.statement_time,mco.state,o.order_id,o.order_num_alias,o.order_status_id,
  606. o.order_num_alias,o.total,o.pay_time,o.date_added,og.goods_id,og.quantity,og.name,og.price,og.goods_images,og.order_goods_id,mco.store_id,m.username as uname from '
  607. .C('DB_PREFIX')."lionfish_comshop_pintuan_commiss_order as mco , ".C('DB_PREFIX')."lionfish_comshop_order_goods as og,
  608. ".C('DB_PREFIX')."lionfish_comshop_order as o ,
  609. ".C('DB_PREFIX')."lionfish_comshop_member as m
  610. where mco.order_id=og.order_id and mco.order_id = o.order_id and mco.order_goods_id=og.order_goods_id and m.member_id=o.member_id and mco.member_id=".$member_id." {$where} order by mco.id desc limit {$offset},{$per_page}";
  611. $list = M()->query($sql );
  612. $status_arr = D('Seller/Order')->get_order_status_name();
  613. foreach($list as $key =>$val)
  614. {
  615. $val['total'] = round($val['total'],2);
  616. $val['money'] = round($val['money'],2);
  617. $val['status_name'] = $status_arr[$val['order_status_id']];
  618. //$val['addtime'] = date('Y-m-d H:i:s', $val['addtime']);
  619. unset($val['addtime']);
  620. $val['pay_time'] = date('Y-m-d H:i:s', $val['pay_time']);
  621. $val['date_added'] = date('Y-m-d H:i:s', $val['date_added']);
  622. if( !empty($val['goods_images']))
  623. {
  624. if(is_array($goods_images))
  625. {
  626. $val['goods_images'] = $val['goods_images'];
  627. }else{
  628. $val['goods_images']= tomedia( $val['goods_images'] );
  629. }
  630. }else{
  631. $val['goods_images']= '';
  632. }
  633. $order_option_list = M('lionfish_comshop_order_option')->where( array('order_goods_id' => $val['order_goods_id'] ) )->select();
  634. foreach($order_option_list as $option)
  635. {
  636. $val['option_str'][] = $option['value'];
  637. }
  638. if( !isset($val['option_str']) )
  639. {
  640. $val['option_str'] = '';
  641. }else{
  642. $val['option_str'] = implode(',', $val['option_str']);
  643. }
  644. if( $val['state'] == 1 )
  645. {
  646. $val['statement_time'] = date('Y-m-d H:i:s', $val['statement_time']);
  647. }
  648. $pin_order = M('lionfish_comshop_pin_order')->where( array('order_id' => $val['order_id'] ) )->find();
  649. $pin_info = M('lionfish_comshop_pin')->field('need_count')->where( array('pin_id' => $pin_order['pin_id'] ) )->find();
  650. $val['pin_count'] = $pin_info['need_count'];
  651. $list[$key] = $val;
  652. }
  653. if(empty($list))
  654. {
  655. echo json_encode( array('code' => 1) );
  656. die();
  657. }else {
  658. echo json_encode( array('code' => 0, 'data' => $list) );
  659. die();
  660. }
  661. }
  662. /**
  663. 获取会员拼团佣金基础数据
  664. **/
  665. public function get_commission_info()
  666. {
  667. $_GPC = I('request.');
  668. $token = $_GPC['token'];
  669. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find();
  670. $member_id = $weprogram_token['member_id'];
  671. if( empty($member_id) )
  672. {
  673. $member_id = 0;
  674. }
  675. $member_info = M('lionfish_comshop_member')->where( array('member_id' => $member_id ) )->find();
  676. if( empty($member_info) )
  677. {
  678. echo json_encode( array('code' => 1, 'msg' => '会员不存在') );
  679. die();
  680. }
  681. //最小提现金额
  682. $commiss_min_tixian_money = D('Home/Front')->get_config_by_name('pintuan_min_tixian_money');
  683. if( empty($commiss_min_tixian_money) )
  684. {
  685. $commiss_min_tixian_money = 0;
  686. }
  687. $commiss_tixian_bili = D('Home/Front')->get_config_by_name('pintuan_tixian_bili');
  688. if( empty($commiss_tixian_bili) )
  689. {
  690. $commiss_tixian_bili = 0;
  691. }
  692. $member_commiss = M('lionfish_comshop_pintuan_commiss')->where( array('member_id' => $member_id ) )->find();
  693. $member_commiss['commiss_min_tixian_money'] = $commiss_min_tixian_money;//最小提现金额, 0标识不限制
  694. $member_commiss['commiss_tixian_bili'] = $commiss_tixian_bili;
  695. $member_commiss['total_commiss_money'] = $member_commiss['money'] + $member_commiss['dongmoney'] + $member_commiss['getmoney'];
  696. $commiss_tixianway_yuer = D('Home/Front')->get_config_by_name('pintuan_tixianway_yuer');
  697. $commiss_tixianway_weixin = D('Home/Front')->get_config_by_name('pintuan_tixianway_weixin');
  698. $commiss_tixianway_alipay = D('Home/Front')->get_config_by_name('pintuan_tixianway_alipay');
  699. $commiss_tixianway_bank = D('Home/Front')->get_config_by_name('pintuan_tixianway_bank');
  700. $member_commiss['commiss_tixianway_yuer'] = empty($commiss_tixianway_yuer) ? 1 : ($commiss_tixianway_yuer == 2 ? 1:0);
  701. $member_commiss['commiss_tixianway_weixin'] = empty($commiss_tixianway_weixin) ? 1 : ($commiss_tixianway_weixin == 2 ? 1:0);
  702. $member_commiss['commiss_tixianway_alipay'] = empty($commiss_tixianway_alipay) ? 1 : ($commiss_tixianway_alipay == 2 ? 1:0);
  703. $member_commiss['commiss_tixianway_bank'] = empty($commiss_tixianway_bank) ? 1 : ($commiss_tixianway_bank == 2 ? 1:0);
  704. //上一微信真实姓名
  705. $last_weixin_realname = "";
  706. $last_weixin_info = M('lionfish_comshop_pintuan_tixian_order')->where( array('member_id' => $member_id, 'type' => 2 ) )->find();
  707. if( !empty($last_weixin_info) )
  708. {
  709. $last_weixin_realname = $last_weixin_info['bankusername'];
  710. }
  711. //上一支付宝账号
  712. $last_alipay_name = '';
  713. $last_alipay_account = '';
  714. $last_alipay_info = M('lionfish_comshop_pintuan_tixian_order')->where( array('member_id' => $member_id, 'type' => 3 ) )->find();
  715. if( !empty($last_alipay_info) )
  716. {
  717. $last_alipay_name = $last_alipay_info['bankusername'];
  718. $last_alipay_account = $last_alipay_info['bankaccount'];
  719. }
  720. //上一银行卡信息
  721. $last_bank_bankname = '';
  722. $last_bank_account = '';
  723. $last_bank_name = '';
  724. $last_bank_info = M('lionfish_comshop_pintuan_tixian_order')->where( array('member_id' => $member_id, 'type' => 4 ) )->find();
  725. if( !empty($last_bank_info) )
  726. {
  727. $last_bank_bankname = $last_bank_info['bankname'];
  728. $last_bank_account = $last_bank_info['bankaccount'];
  729. $last_bank_name = $last_bank_info['bankusername'];
  730. }
  731. $member_commiss['last_weixin_realname'] = $last_weixin_realname;
  732. $member_commiss['last_alipay_name'] = $last_alipay_name;
  733. $member_commiss['last_alipay_account'] = $last_alipay_account;
  734. $member_commiss['last_bank_bankname'] = $last_bank_bankname;
  735. $member_commiss['last_bank_account'] = $last_bank_account;
  736. $member_commiss['last_bank_name'] = $last_bank_name;
  737. $commiss_tixian_publish = D('Home/Front')->get_config_by_name('pintuan_tixian_publish');
  738. $member_commiss['commiss_tixian_publish'] = htmlspecialchars_decode( $commiss_tixian_publish );
  739. $member_commiss['total_money'] = sprintf('%.2f', $member_commiss['money'] + $member_commiss['dongmoney'] + $member_commiss['getmoney']);
  740. echo json_encode( array('code' =>0,'data' => $member_commiss) );
  741. die();
  742. }
  743. /**
  744. 会员拼团佣金提现 提交接口
  745. **/
  746. public function tixian_sub()
  747. {
  748. $_GPC = I('request.');
  749. $token = $_GPC['token'];
  750. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find();
  751. $member_id = $weprogram_token['member_id'];
  752. if( empty($member_id) )
  753. {
  754. $member_id = 0;
  755. }
  756. $member_info = M('lionfish_comshop_member')->where( array('member_id' => $member_id ) )->find();
  757. if( empty($member_info) )
  758. {
  759. echo json_encode( array('code' => 1, 'msg' => '会员不存在') );
  760. die();
  761. }
  762. $result = array('code' => 1,'msg' => '提现失败');
  763. $member_commiss = M('lionfish_comshop_pintuan_commiss')->where( array('member_id' => $member_id ) )->find();
  764. $datas = array();
  765. $datas['money'] = $_GPC['money'];
  766. $money = $datas['money'];//I('post.money',0,'floatval');
  767. $type = $_GPC['type'];// 1余额 2 微信 3 支付宝 4 银行
  768. $bankname = isset($_GPC['bankname']) ? $_GPC['bankname'] : ''; //银行名称
  769. $bankaccount = isset($_GPC['bankaccount']) ? $_GPC['bankaccount'] : '';//卡号,支付宝账号 使用该字段
  770. $bankusername = isset($_GPC['bankusername']) ? $_GPC['bankusername'] : '';//持卡人姓名,微信名称,支付宝名称, 使用该字段
  771. $commiss_money_limit = D('Home/Front')->get_config_by_name('pintuan_min_tixian_money');
  772. if(!empty($commiss_money_limit) && $commiss_money_limit >0)
  773. {
  774. if($member_commiss['money'] < $commiss_money_limit)
  775. {
  776. $result['msg'] = '佣金满'.$commiss_money_limit.'才能提现';
  777. echo json_encode($result);
  778. die();
  779. }
  780. }
  781. if($money > 0 && $money <= $member_commiss['money'])
  782. {
  783. //判断提现手续费,+ 判断提现金额免审直接到账
  784. $service_charge = D('Home/Front')->get_config_by_name('pintuan_tixian_bili');
  785. $data = array();
  786. $data['member_id'] = $member_id;
  787. $data['money'] = $money;
  788. $data['service_charge'] = $service_charge;
  789. $data['service_charge_money'] = round( ($money * $service_charge) /100 ,2);
  790. $data['state'] = 0;
  791. $data['shentime'] = 0;
  792. $data['type'] = $type;
  793. $data['bankname'] = $bankname;
  794. $data['bankaccount'] = $bankaccount;
  795. $data['bankusername'] = $bankusername;
  796. $data['addtime'] = time();
  797. M('lionfish_comshop_pintuan_tixian_order')->add($data);
  798. $com_arr = array();
  799. $com_arr['money'] = $member_commiss['money'] - $money;
  800. $com_arr['dongmoney'] = $member_commiss['dongmoney'] + $money;
  801. M('lionfish_comshop_pintuan_commiss')->where( array('member_id' => $member_id ) )->setInc('money',-$money);
  802. M('lionfish_comshop_pintuan_commiss')->where( array('member_id' => $member_id ) )->setInc('dongmoney',$money);
  803. $result['code'] = 0;
  804. //commiss_tixian_reviewed 0 , 1
  805. $commiss_tixian_reviewed = D('Home/Front')->get_config_by_name('pintuan_tixian_reviewed');
  806. if(empty($commiss_tixian_reviewed) || $commiss_tixian_reviewed == 0)
  807. {
  808. //手动
  809. } else if( !empty($commiss_tixian_reviewed) && $commiss_tixian_reviewed == 1 ){
  810. //自动
  811. }
  812. }
  813. echo json_encode($result);
  814. die();
  815. }
  816. /**
  817. 提现记录
  818. **/
  819. public function tixian_record()
  820. {
  821. $_GPC = I('request.');
  822. $token = $_GPC['token'];
  823. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find();
  824. $member_id = $weprogram_token['member_id'];
  825. if( empty($member_id) )
  826. {
  827. $member_id = 0;
  828. }
  829. $member_info = M('lionfish_comshop_member')->where( array('member_id' => $member_id ) )->find();
  830. if( empty($member_info) )
  831. {
  832. echo json_encode( array('code' => 1, 'msg' => '会员不存在') );
  833. die();
  834. }
  835. $per_page = 10;
  836. $page = isset($_GPC['page']) ? $_GPC['page']:1;
  837. $offset = ($page - 1) * $per_page;
  838. $list = array();
  839. $list = M('lionfish_comshop_pintuan_tixian_order')->where( array('member_id' =>$member_id ) )->order('addtime desc')->limit($offset,$per_page )->select();
  840. foreach($list as $key => $val)
  841. {
  842. $val['addtime'] = date('Y-m-d H:i', $val['addtime']);
  843. $list[$key] = $val;
  844. }
  845. if( !empty($list) )
  846. {
  847. echo json_encode( array('code' =>0, 'data'=>$list) );
  848. die();
  849. }else{
  850. echo json_encode( array('code' => 1) );
  851. die();
  852. }
  853. }
  854. }