OrderController.class.php 73 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474
  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. use Home\Model\OrderModel;
  16. class OrderController extends CommonController {
  17. protected function _initialize(){
  18. parent::_initialize();
  19. // 获取当前用户ID
  20. }
  21. /**
  22. 直接取消订单
  23. 1、已付款待发货 状态
  24. 2、是不是自己的订单
  25. 3、判断后台是否开启了状态
  26. 4、记录日志
  27. 5、处理订单,
  28. 6、处理退款,
  29. 7、打印小票
  30. 结束
  31. **/
  32. public function del_cancle_order()
  33. {
  34. $gpc = I('request.');
  35. $_GPC = I('request.');
  36. $token = $gpc['token'];
  37. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find();
  38. if( empty($weprogram_token) || empty($weprogram_token['member_id']) )
  39. {
  40. echo json_encode( array('code' => 2) );
  41. die();
  42. }
  43. $member_id = $weprogram_token['member_id'];
  44. $order_id = $_GPC['order_id'];
  45. $order_info = M('lionfish_comshop_order')->where( array('member_id' => $member_id,'order_id' => $order_id) )->find();
  46. if( empty($order_info) )
  47. {
  48. echo json_encode( array('code' => 1, 'msg' => '订单不存在') );
  49. die();
  50. }
  51. if( $order_info['order_status_id'] == 1)
  52. {
  53. $order_can_del_cancle = D('Home/Front')->get_config_by_name('order_can_del_cancle');
  54. if( empty($order_can_del_cancle) || $order_can_del_cancle == 0 )
  55. {
  56. //4、记录日志
  57. $order_history = array();
  58. $order_history['order_id'] = $order_id;
  59. $order_history['order_status_id'] = 5;
  60. $order_history['notify'] = 0;
  61. $order_history['comment'] = '会员前台申请,直接取消已支付待发货订单';
  62. $order_history['date_added'] = time();
  63. M('lionfish_comshop_order_history')->add($order_history);
  64. //5、处理订单
  65. $result = D('Home/Weixin')->del_cancle_order($order_id);
  66. //6、发送取消通知订单给平台
  67. $weixin_template_cancle_order = D('Home/Front')->get_config_by_name('weixin_template_cancle_order');
  68. $platform_send_info_member_id = D('Home/Front')->get_config_by_name('platform_send_info_member');
  69. if( !empty($weixin_template_cancle_order) && !empty($platform_send_info_member_id) )
  70. {
  71. $weixin_template_order =array();
  72. $weixin_appid = D('Home/Front')->get_config_by_name('weixin_appid' );
  73. if( !empty($weixin_appid) && !empty($weixin_template_cancle_order) )
  74. {
  75. $head_pathinfo = "lionfish_comshop/pages/index/index";
  76. $weopenid = M('lionfish_comshop_member')->where( array('member_id' => $platform_send_info_member_id ) )->find();
  77. $weixin_template_order = array(
  78. 'appid' => $weixin_appid,
  79. 'template_id' => $weixin_template_cancle_order,
  80. 'pagepath' => $head_pathinfo,
  81. 'data' => array(
  82. 'first' => array('value' => '您好,您收到了一个取消订单,请尽快处理','color' => '#030303'),
  83. 'keyword1' => array('value' => $order_info['order_num_alias'],'color' => '#030303'),
  84. 'keyword2' => array('value' => '取消','color' => '#030303'),
  85. 'keyword3' => array('value' => sprintf("%01.2f", $order_info['total']),'color' => '#030303'),
  86. 'keyword4' => array('value' => date('Y-m-d H:i:s'),'color' => '#030303'),
  87. 'keyword5' => array('value' => $weopenid['username'],'color' => '#030303'),
  88. 'remark' => array('value' => '此订单已于'.date('Y-m-d H:i:s').'被用户取消,请尽快处理','color' => '#030303'),
  89. )
  90. );
  91. D('Seller/User')->just_send_wxtemplate($weopenid['we_openid'], 0, $weixin_template_order );
  92. }
  93. }
  94. if( $result['code'] == 0 )
  95. {
  96. $is_print_cancleorder = D('Home/Front')->get_config_by_name('is_print_cancleorder');
  97. if( isset($is_print_cancleorder) && $is_print_cancleorder == 1 )
  98. {
  99. D('Seller/Printaction')->check_print_order($order_id,'用户取消订单');
  100. }
  101. echo json_encode( array('code' => 0 ) );
  102. die();
  103. }else{
  104. echo json_encode( array('code' => 1, 'msg' => $result['msg'] ) );
  105. die();
  106. }
  107. }else{
  108. echo json_encode( array('code' => 1, 'msg' => '未开启此项功能') );
  109. die();
  110. }
  111. }else{
  112. echo json_encode( array('code' => 1, 'msg' => '订单状态不正确,只有已支付,未发货的订单才能取消') );
  113. die();
  114. }
  115. }
  116. public function order_info()
  117. {
  118. $gpc = I('request.');
  119. $token = $gpc['token'];
  120. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find();
  121. if( empty($weprogram_token) || empty($weprogram_token['member_id']) )
  122. {
  123. echo json_encode( array('code' => 2) );
  124. die();
  125. }
  126. $member_id = $weprogram_token['member_id'];
  127. $order_id = $gpc['id'];
  128. $order_info = M('lionfish_comshop_order')->where( array('member_id' => $member_id,'order_id' => $order_id) )->find();
  129. $pick_up_info = array();
  130. $pick_order_info = array();
  131. if( $order_info['delivery'] == 'pickup' )
  132. {
  133. //查询自提点
  134. $pick_order_info = array();
  135. $pick_id = 0;
  136. $pick_up_info = array();
  137. }
  138. $order_status_info = M('lionfish_comshop_order_status')->where( array('order_status_id' => $order_info['order_status_id'] ) )->find();
  139. //10 name
  140. if($order_info['order_status_id'] == 10)
  141. {
  142. $order_status_info['name'] = '等待退款';
  143. }
  144. else if($order_info['order_status_id'] == 4 && $order_info['delivery'] =='pickup')
  145. {
  146. //delivery 6
  147. $order_status_info['name'] = '待自提';
  148. //已自提
  149. }
  150. else if($order_info['order_status_id'] == 6 && $order_info['delivery'] =='pickup')
  151. {
  152. //delivery 6
  153. $order_status_info['name'] = '已自提';
  154. }
  155. else if($order_info['order_status_id'] == 1 && $order_info['type'] == 'lottery')
  156. {
  157. //等待开奖
  158. //一等奖
  159. if($order_info['lottery_win'] == 1)
  160. {
  161. $order_status_info['name'] = '一等奖';
  162. }else {
  163. $order_status_info['name'] = '等待开奖';
  164. }
  165. }
  166. //$order_info['type']
  167. //open_auto_delete
  168. if($order_info['order_status_id'] == 3)
  169. {
  170. $open_auto_delete = D('Home/Front')->get_config_by_name('open_auto_delete');
  171. $auto_cancle_order_time = D('Home/Front')->get_config_by_name('auto_cancle_order_time');
  172. $order_info['open_auto_delete'] = $open_auto_delete;
  173. //date_added
  174. if($open_auto_delete == 1)
  175. {
  176. $order_info['over_buy_time'] = $order_info['date_added'] + 3600 * $auto_cancle_order_time;
  177. $order_info['cur_time'] = time();
  178. }
  179. }
  180. $shipping_province = M('lionfish_comshop_area')->where( array('id' => $order_info['shipping_province_id'] ) )->find();
  181. $shipping_city = M('lionfish_comshop_area')->where( array('id' => $order_info['shipping_city_id'] ) )->find();
  182. $shipping_country = M('lionfish_comshop_area')->where( array('id' => $order_info['shipping_country_id'] ) )->find();
  183. $order_goods_list = M('lionfish_comshop_order_goods')->where( array('order_id' => $order_id ) )->select();
  184. $shiji_total_money = 0;
  185. $member_youhui = 0.00;
  186. $pick_up_time = "";
  187. $pick_up_type = -1;
  188. $pick_up_weekday = '';
  189. $today_time = $order_info['pay_time'];
  190. $arr = array('天','一','二','三','四','五','六');
  191. $url = D('Home/Front')->get_config_by_name('shop_domain').'/';
  192. $attachment_type = D('Home/Front')->get_config_by_name('attachment_type');
  193. $qiniu_url = D('Home/Front')->get_config_by_name('qiniu_url');
  194. foreach($order_goods_list as $key => $order_goods)
  195. {
  196. $order_refund_goods = M('lionfish_comshop_order_refund')->where( array('order_id' =>$order_id,'order_goods_id' => $order_goods['order_goods_id'] ) )->order('ref_id desc')->find();
  197. if(!empty($order_refund_goods))
  198. {
  199. $order_refund_goods['addtime'] = date('Y-m-d H:i:s', $order_refund_goods['addtime']);
  200. }
  201. $order_option_info = M('lionfish_comshop_order_option')->field('value')->where( array('order_goods_id' => $order_goods['order_goods_id'],'order_id' => $order_id) )->select();
  202. $order_goods['order_refund_goods'] = $order_refund_goods;
  203. foreach($order_option_info as $option)
  204. {
  205. $order_goods['option_str'][] = $option['value'];
  206. }
  207. if(empty($order_goods['option_str']))
  208. {
  209. //option_str
  210. $order_goods['option_str'] = '';
  211. }else{
  212. $order_goods['option_str'] = implode(',', $order_goods['option_str']);
  213. }
  214. //
  215. $order_goods['shipping_fare'] = round($order_goods['shipping_fare'],2);
  216. $order_goods['price'] = round($order_goods['price'],2);
  217. $order_goods['total'] = round($order_goods['total'],2);
  218. if( $order_goods['is_vipcard_buy'] == 1 || $order_goods['is_level_buy'] ==1 )
  219. {
  220. $order_goods['price'] = round($order_goods['oldprice'],2);
  221. }
  222. $order_goods['real_total'] = round($order_goods['quantity'] * $order_goods['price'],2);
  223. /**
  224. $goods_images = file_image_thumb_resize($vv['goods_images'],400);
  225. if(is_array($goods_images))
  226. {
  227. $vv['goods_images'] = $vv['goods_images'];
  228. }else{
  229. $vv['goods_images']= tomedia( file_image_thumb_resize($vv['goods_images'],400) );
  230. }
  231. **/
  232. if($attachment_type == 1)
  233. {
  234. $goods_images = $qiniu_url.resize($order_goods['goods_images'],400,400);
  235. }else{
  236. $goods_images = $url.resize($order_goods['goods_images'],400,400);
  237. }
  238. if( !is_array($goods_images) )
  239. {
  240. $order_goods['image']= tomedia( $goods_images );
  241. $order_goods['goods_images']= tomedia( $goods_images );
  242. }else{
  243. $order_goods['image']= $order_goods['goods_images'];
  244. }
  245. $order_goods['hascomment'] = 0;
  246. $order_goods_comment_info = M('lionfish_comshop_order_comment')->field('comment_id')->where( array('goods_id' => $order_goods['goods_id'],'order_id' =>$order_id) )->find();
  247. if( !empty($order_goods_comment_info) )
  248. {
  249. $order_goods['hascomment'] = 1;
  250. }
  251. $order_goods['can_ti_refund'] = 1;
  252. $disable_info = M('lionfish_comshop_order_refund_disable')->where( array('order_id' => $order_id, 'order_goods_id' => $order_goods['order_goods_id']) )->find();
  253. if( !empty($disable_info) )
  254. {
  255. $order_goods['can_ti_refund'] = 0;
  256. }
  257. if($order_goods['is_refund_state'] == 1)
  258. {
  259. //已经再申请退款中了。或者已经退款了。
  260. $order_refund_info = M('lionfish_comshop_order_refund')->field('state')->where( array('order_id' => $order_id,'order_goods_id' => $order_goods['order_goods_id'] ) )->find();
  261. if( $order_refund_info['state'] == 3 )
  262. {
  263. $order_goods['is_refund_state'] = 2;
  264. }
  265. }
  266. //ims_
  267. $goods_info = M('lionfish_comshop_goods')->field('productprice as price')->where( array('id' => $order_goods['goods_id']) )->find();
  268. $goods_cm_info = M('lionfish_comshop_good_common')->field('pick_up_type,pick_up_modify,goods_share_image')->where( array('goods_id' => $order_goods['goods_id']) )->find();
  269. if($pick_up_type == -1 || $goods_cm_info['pick_up_type'] > $pick_up_type)
  270. {
  271. $pick_up_type = $goods_cm_info['pick_up_type'];
  272. if($pick_up_type == 0)
  273. {
  274. $pick_up_time = date('m-d', $today_time);
  275. //$pick_up_weekday = '周'.$arr[date('w',$today_time)];
  276. }else if( $pick_up_type == 1 ){
  277. $pick_up_time = date('m-d', $today_time+86400);
  278. //$pick_up_weekday = '周'.$arr[date('w',$today_time+86400)];
  279. }else if( $pick_up_type == 2 )
  280. {
  281. $pick_up_time = date('m-d', $today_time+86400*2);
  282. //$pick_up_weekday = '周'.$arr[date('w',$today_time+86400*2)];
  283. }else if($pick_up_type == 3)
  284. {
  285. $pick_up_time = $goods_cm_info['pick_up_modify'];
  286. }
  287. }
  288. if( !empty($goods_cm_info['goods_share_image']) )
  289. {
  290. $order_goods['goods_share_image']= tomedia( $goods_cm_info['goods_share_image'] );
  291. }else{
  292. $order_goods['goods_share_image'] = $order_goods['image'];
  293. }
  294. $order_goods['shop_price'] = $goods_info['price'];
  295. $store_info = array('s_true_name' =>'','s_logo' => '');
  296. $store_info['s_true_name'] = D('Home/Front')->get_config_by_name('shoname');
  297. //$store_info['s_logo'] = D('Home/Front')->get_config_by_name('shoplogo');
  298. if( !empty($store_info['s_logo']) )
  299. {
  300. $store_info['s_logo'] = tomedia($store_info['s_logo']);
  301. }else{
  302. $store_info['s_logo'] = '';
  303. }
  304. $order_goods['store_info'] = $store_info;
  305. unset($order_goods['model']);
  306. unset($order_goods['rela_goodsoption_valueid']);
  307. unset($order_goods['comment']);
  308. //ims_ ims_lionfish_comshop_order_goods_refund addtime
  309. $order_goods_refund_list = M('lionfish_comshop_order_goods_refund')->field('real_refund_quantity,money,addtime')->where( "order_goods_id=".$order_goods['order_goods_id'] )->order('id asc')->select();
  310. if( empty($order_goods_refund_list) )
  311. {
  312. $order_goods_refund_list = array();
  313. }else{
  314. foreach( $order_goods_refund_list as $kre => $rval )
  315. {
  316. $rval['addtime'] = date('Y-m-d H:i:s', $rval['addtime']);
  317. $order_goods_refund_list[$kre] = $rval;
  318. }
  319. }
  320. $order_goods['order_goods_refund_list'] = $order_goods_refund_list;
  321. $order_goods_list[$key] = $order_goods;
  322. $shiji_total_money += $order_goods['quantity'] * $order_goods['price'];
  323. $member_youhui += ($order_goods['real_total'] - $order_goods['total']);
  324. }
  325. unset($order_info['store_id']);
  326. unset($order_info['email']);
  327. unset($order_info['shipping_city_id']);
  328. unset($order_info['shipping_country_id']);
  329. unset($order_info['shipping_province_id']);
  330. //unset($order_info['comment']);
  331. unset($order_info['voucher_id']);
  332. unset($order_info['is_balance']);
  333. unset($order_info['lottery_win']);
  334. unset($order_info['ip']);
  335. unset($order_info['ip_region']);
  336. unset($order_info['user_agent']);
  337. $order_info['shipping_fare'] = round($order_info['shipping_fare'],2) < 0.01 ? '0.00':round($order_info['shipping_fare'],2) ;
  338. $order_info['voucher_credit'] = round($order_info['voucher_credit'],2) < 0.01 ? '0.00':round($order_info['voucher_credit'],2) ;
  339. $order_info['fullreduction_money'] = round($order_info['fullreduction_money'],2) < 0.01 ? '0.00':round($order_info['fullreduction_money'],2) ;
  340. $need_data = array();
  341. if($order_info['type'] == 'integral')
  342. {
  343. //暂时屏蔽积分商城
  344. $order_info['score'] = round($order_info['total'],2);
  345. }
  346. $order_info['total'] = round($order_info['total']+$order_info['shipping_fare']-$order_info['voucher_credit']-$order_info['fullreduction_money'] - $order_info['score_for_money'],2) ;
  347. if($order_info['total'] < 0)
  348. {
  349. $order_info['total'] = '0.00';
  350. }
  351. $order_info['real_total'] = round($shiji_total_money,2)+$order_info['shipping_fare'];
  352. $order_info['price'] = round($order_info['price'],2);
  353. $order_info['member_youhui'] = round($member_youhui,2) < 0.01 ? '0.00':round($member_youhui,2);
  354. $order_info['pick_up_time'] = $pick_up_time;
  355. $order_info['shipping_fare'] = sprintf("%.2f",$order_info['shipping_fare']);
  356. $order_info['voucher_credit'] = sprintf("%.2f",$order_info['voucher_credit']);
  357. $order_info['fullreduction_money'] = sprintf("%.2f",$order_info['fullreduction_money']);
  358. $order_info['total'] = sprintf("%.2f",$order_info['total']);
  359. $order_info['real_total'] = sprintf("%.2f",$order_info['real_total']);
  360. $order_info['date_added'] = date('Y-m-d H:i:s', $order_info['date_added']);
  361. if($order_info['delivery'] =='pickup')
  362. {
  363. }else{
  364. }
  365. if( !empty($order_info['pay_time']) && $order_info['pay_time'] >0 )
  366. {
  367. $order_info['pay_date'] = date('Y-m-d H:i:s', $order_info['pay_time']);
  368. }else{
  369. $order_info['pay_date'] = '';
  370. }
  371. $order_info['express_tuanz_date'] = date('Y-m-d H:i:s', $order_info['express_tuanz_time']);
  372. $order_info['receive_date'] = date('Y-m-d H:i:s', $order_info['receive_time']);
  373. //"delivery": "pickup", enum('express', 'pickup', 'tuanz_send')
  374. if($order_info['delivery'] == 'express')
  375. {
  376. $order_info['delivery_name'] = '快递';
  377. }else if($order_info['delivery'] == 'pickup')
  378. {
  379. $order_info['delivery_name'] = '自提';
  380. }else if($order_info['delivery'] == 'tuanz_send'){
  381. $order_info['delivery_name'] = '团长配送';
  382. }
  383. $need_data['order_info'] = $order_info;
  384. $need_data['order_status_info'] = $order_status_info;
  385. $need_data['shipping_province'] = $shipping_province;
  386. $need_data['shipping_city'] = $shipping_city;
  387. $need_data['shipping_country'] = $shipping_country;
  388. $need_data['order_goods_list'] = $order_goods_list;
  389. $need_data['goods_count'] = count($order_goods_list);
  390. //$order_info['order_status_id'] 13 平台介入退款
  391. $order_refund_historylist = array();
  392. $pingtai_deal = 0;
  393. //判断是否已经平台处理完毕
  394. $order_refund_historylist = M('lionfish_comshop_order_refund_history')->where( array('order_id' => $order_id) )->order('addtime asc')->select();
  395. foreach($order_refund_historylist as $key => $val)
  396. {
  397. if($val['type'] ==3)
  398. {
  399. $pingtai_deal = 1;
  400. }
  401. }
  402. $order_refund = M('lionfish_comshop_order_refund')->where( array('order_id' => $order_id) )->find();
  403. if(!empty($order_refund))
  404. {
  405. $order_refund['addtime'] = date('Y-m-d H:i:s', $order_refund['addtime']);
  406. }
  407. $need_data['pick_up'] = $pick_up_info;
  408. if( empty($pick_order_info['qrcode']) && false)
  409. {
  410. }
  411. $need_data['pick_order_info'] = $pick_order_info;
  412. $order_pay_after_share = D('Home/Front')->get_config_by_name('order_pay_after_share');
  413. if($order_pay_after_share==1){
  414. $order_pay_after_share_img = D('Home/Front')->get_config_by_name('order_pay_after_share_img');
  415. $order_pay_after_share_img = $order_pay_after_share_img ? tomedia($order_pay_after_share_img) : '';
  416. $need_data['share_img'] = empty($order_pay_after_share_img) ? $need_data['order_goods_list'][0]['image']: $order_pay_after_share_img;
  417. }else{
  418. if(empty($need_data['order_goods_list'][0]['goods_share_image']))
  419. {
  420. $need_data['share_img'] = $need_data['order_goods_list'][0]['image'];
  421. }
  422. }
  423. $order_can_del_cancle = D('Home/Front')->get_config_by_name('order_can_del_cancle');
  424. $order_can_del_cancle = empty($order_can_del_cancle) || $order_can_del_cancle == 0 ? 1 : 0;
  425. $is_hidden_orderlist_phone = D('Home/Front')->get_config_by_name('is_hidden_orderlist_phone');
  426. $is_show_guess_like = D('Home/Front')->get_config_by_name('is_show_order_guess_like');
  427. $user_service_switch = D('Home/Front')->get_config_by_name('user_service_switch');
  428. echo json_encode(
  429. array(
  430. 'code' => 0,
  431. 'data' => $need_data,
  432. 'pingtai_deal' => $pingtai_deal,
  433. 'order_refund' => $order_refund,
  434. 'order_can_del_cancle' => $order_can_del_cancle,
  435. 'order_pay_after_share' => $order_pay_after_share,
  436. 'is_hidden_orderlist_phone' => $is_hidden_orderlist_phone,
  437. 'is_show_guess_like' => $is_show_guess_like,
  438. 'user_service_switch' => $user_service_switch
  439. )
  440. );
  441. }
  442. public function sign_dan_order()
  443. {
  444. $gpc = I('request.');
  445. $token = $gpc['token'];
  446. $order_id = $gpc['order_id'];
  447. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find();
  448. $member_id = $weprogram_token['member_id'];
  449. $community_info = D('Home/Front')->get_member_community_info($member_id);
  450. $order_info = M('lionfish_comshop_order')->where( array('head_id' => $community_info['id'],'order_id' => $order_id) )->find();
  451. if(!empty($order_info) && $order_info['order_status_id'] == 14)
  452. {
  453. $oh = array();
  454. $oh['order_id']=$order_id;
  455. $oh['order_status_id']= 4;
  456. $oh['comment']='团长签收货物';
  457. $oh['date_added']=time();
  458. $oh['notify']= $order_info['order_status_id'];
  459. M('lionfish_comshop_order_history')->add( $oh );
  460. //更改订单为已发货
  461. D('Home/Frontorder')->send_order_operate($order_id);
  462. echo json_encode( array('code' => 0) );
  463. }else{
  464. echo json_encode( array('code' => 1) );
  465. }
  466. }
  467. public function order_commission()
  468. {
  469. $gpc = I('request.');
  470. $token = $gpc['token'];
  471. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find();
  472. $member_id = $weprogram_token['member_id'];
  473. if( empty($member_id) )
  474. {
  475. echo json_encode( array('code' => 1) );
  476. die();
  477. }
  478. $community_info = D('Home/Front')->get_member_community_info($member_id);
  479. $head_id = $community_info['id'];
  480. $choose_date = $gpc['chooseDate'];
  481. $choose_date = str_replace('年','-', $choose_date);
  482. $choose_date = str_replace('月','-', $choose_date);
  483. $choose_date = $choose_date.'01 00:00:00';
  484. $BeginDate=date('Y-m-d', strtotime($choose_date));
  485. $end_date = date('Y-m-d', strtotime("$BeginDate +1 month -1 day")).' 23:59:59';
  486. $begin_time = strtotime($BeginDate.' 00:00:00');
  487. $end_time = strtotime($end_date);
  488. $where = " and addtime >= {$begin_time} and addtime < {$end_time} ";
  489. $money = M('lionfish_community_head_commiss_order')->where("head_id={$head_id} and state=0 {$where}")->sum('money');
  490. if( empty($money))
  491. {
  492. $money = 0;
  493. }
  494. echo json_encode( array('code' => 0, 'money' => $money) );
  495. die();
  496. }
  497. public function refundorderlist()
  498. {
  499. $gpc = I('request.');
  500. $is_tuanz = isset($gpc['is_tuanz']) ? $gpc['is_tuanz'] :0;
  501. $token = $gpc['token'];
  502. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find();
  503. $member_id = $weprogram_token['member_id'];
  504. $page = isset($gpc['page']) ? $gpc['page']:'1';
  505. $size = isset($gpc['size']) ? $gpc['size']:'6';
  506. $offset = ($page - 1)* $size;
  507. $type = isset($gpc['type']) ? $gpc['type']:'';
  508. $where = ' and o.member_id = '.$member_id;
  509. $fields = " orf.state as refund_state ,orf.order_goods_id as r_order_goods_id, ";
  510. $currentTab = isset($gpc['currentTab']) ? $gpc['currentTab']:0;
  511. if($currentTab == 0)
  512. {
  513. }else if($currentTab == 1){
  514. //售后
  515. $where .= ' and o.order_status_id = 12 ';
  516. }else if($currentTab == 2){
  517. $where .= ' and orf.state =3 ';
  518. }else if($currentTab == 3)
  519. {
  520. $where .= ' and orf.state =1 ';
  521. }
  522. $sql = "select orf.ref_id,orf.state,orf.order_goods_id,o.order_id,o.order_num_alias,o.date_added,o.delivery,o.is_pin,{$fields} o.is_zhuli,o.shipping_fare,o.shipping_tel,o.shipping_name,o.voucher_credit,o.fullreduction_money,o.store_id,o.total,o.order_status_id,o.lottery_win,o.type from ".C('DB_PREFIX')."lionfish_comshop_order_refund as orf left join " .C('DB_PREFIX')."lionfish_comshop_order as o on orf.order_id = o.order_id
  523. where 1 {$where}
  524. order by orf.addtime desc limit {$offset},{$size}";
  525. $list = M()->query($sql);
  526. $lionfish_comshop_order_status_list = M('lionfish_comshop_order_status')->select();
  527. $url = D('Home/Front')->get_config_by_name('shop_domain');
  528. $status_arr = array();
  529. foreach( $lionfish_comshop_order_status_list as $kk => $val )
  530. {
  531. $status_arr[ $val['order_status_id'] ] = $val['name'];
  532. }
  533. //createTime
  534. foreach($list as $key => $val)
  535. {
  536. $val['createTime'] = date('Y-m-d H:i:s', $val['date_added']);
  537. switch( $val['state'] )
  538. {
  539. case 0:
  540. $val['status_name'] = '申请中';
  541. break;
  542. case 1:
  543. $val['status_name'] = '商家拒绝';
  544. break;
  545. case 2:
  546. break;
  547. case 3:
  548. $val['status_name'] = '退款成功';
  549. break;
  550. case 4:
  551. $val['status_name'] = '退款失败';
  552. break;
  553. case 5:
  554. $val['status_name'] = '撤销申请';
  555. break;
  556. }
  557. if($val['shipping_fare']<=0.001 || $val['delivery'] == 'pickup')
  558. {
  559. $val['shipping_fare'] = '免运费';
  560. }else{
  561. $val['shipping_fare'] = ''.$val['shipping_fare'];
  562. }
  563. if($val['order_status_id'] == 10)
  564. {
  565. $val['status_name'] = '等待退款';
  566. }
  567. else if($val['order_status_id'] == 4 && $val['delivery'] =='pickup')
  568. {
  569. //delivery 6
  570. $val['status_name'] = '待自提';
  571. //已自提
  572. }
  573. else if($val['order_status_id'] == 6 && $val['delivery'] =='pickup')
  574. {
  575. //delivery 6
  576. $val['status_name'] = '已自提';
  577. //已自提
  578. }
  579. else if($val['order_status_id'] == 1 && $val['type'] == 'lottery')
  580. {
  581. //等待开奖
  582. //一等奖
  583. if($val['lottery_win'] == 1)
  584. {
  585. $val['status_name'] = '一等奖';
  586. }else {
  587. $val['status_name'] = '等待开奖';
  588. }
  589. }
  590. else if($val['order_status_id'] == 2 && $val['type'] == 'lottery')
  591. {
  592. //等待开奖
  593. $val['status_name'] = '等待开奖';
  594. }
  595. $quantity = 0;
  596. if( $val['order_goods_id'] > 0 )
  597. {
  598. $goods_sql = "select order_goods_id,head_disc,member_disc,level_name,goods_id,is_pin,shipping_fare,name,goods_images,quantity,price,total,rela_goodsoption_valueid
  599. from ".C('DB_PREFIX')."lionfish_comshop_order_goods where order_goods_id=".$val['order_goods_id']." and order_id= ".$val['order_id']."";
  600. }else{
  601. $goods_sql = "select order_goods_id,head_disc,member_disc,level_name,goods_id,is_pin,shipping_fare,name,goods_images,quantity,price,total,rela_goodsoption_valueid
  602. from ".C('DB_PREFIX')."lionfish_comshop_order_goods where order_id= ".$val['order_id']."";
  603. }
  604. $goods_list = M()->query($goods_sql); //M()->query($goods_sql);
  605. $total_commision = 0;
  606. if($val['delivery'] =='tuanz_send')
  607. {
  608. $total_commision += $val['shipping_fare'];
  609. }
  610. foreach($goods_list as $kk => $vv)
  611. {
  612. //commision
  613. $order_option_list = M('lionfish_comshop_order_option')->where( array('order_goods_id' =>$vv['order_goods_id'] ) )->select();
  614. if( !empty($vv['goods_images']))
  615. {
  616. $goods_images = $url. '/'.resize($vv['goods_images'],400,400);
  617. if(is_array($goods_images))
  618. {
  619. $vv['goods_images'] = $vv['goods_images'];
  620. }else{
  621. $vv['goods_images']= $url.'/'.resize($vv['goods_images'],400,400) ;
  622. }
  623. }else{
  624. $vv['goods_images']= '';
  625. }
  626. $goods_filed = M('lionfish_comshop_goods')->field('productprice as price')->where( array('id' => $vv['goods_id'] ) )->find();
  627. $vv['orign_price'] = $goods_filed['price'];
  628. $quantity += $vv['quantity'];
  629. foreach($order_option_list as $option)
  630. {
  631. $vv['option_str'][] = $option['value'];
  632. }
  633. if( !isset($vv['option_str']) )
  634. {
  635. $vv['option_str'] = '';
  636. }else{
  637. $vv['option_str'] = implode(',', $vv['option_str']);
  638. }
  639. // $vv['price'] = round($vv['price'],2);
  640. $vv['price'] = sprintf("%.2f",$vv['price']);
  641. $vv['orign_price'] = sprintf("%.2f",$vv['orign_price']);
  642. $vv['total'] = sprintf("%.2f",$vv['total']);
  643. $goods_list[$kk] = $vv;
  644. }
  645. $val['total_commision'] = $total_commision;
  646. $val['quantity'] = $quantity;
  647. if( empty($val['store_id']) )
  648. {
  649. $val['store_id'] = 1;
  650. }
  651. $store_info = array('s_true_name' =>'','s_logo' => '');
  652. $store_info['s_true_name'] = D('Home/Front')->get_config_by_name('shoname');
  653. $store_info['s_logo'] = D('Home/Front')->get_config_by_name('shoplogo');
  654. if( !empty($store_info['s_logo']))
  655. {
  656. $store_info['s_logo'] = tomedia($store_info['s_logo']);
  657. }else{
  658. $store_info['s_logo'] = '';
  659. }
  660. $order_goods['store_info'] = $store_info;
  661. $val['store_info'] = $store_info;
  662. $val['goods_list'] = $goods_list;
  663. $val['total'] = $val['total'] + $val['shipping_fare']-$val['voucher_credit']-$val['fullreduction_money'];
  664. if($val['total'] < 0)
  665. {
  666. $val['total'] = 0;
  667. }
  668. $val['total'] = sprintf("%.2f",$val['total']);
  669. $list[$key] = $val;
  670. }
  671. $need_data = array('code' => 0);
  672. if( !empty($list) )
  673. {
  674. $need_data['data'] = $list;
  675. }else {
  676. $need_data = array('code' => 1);
  677. }
  678. echo json_encode( $need_data );
  679. die();
  680. }
  681. public function orderlist()
  682. {
  683. $gpc = I('request.');
  684. $_GPC = $gpc;
  685. $is_tuanz = isset($gpc['is_tuanz']) ? $gpc['is_tuanz'] :0;
  686. $token = $gpc['token'];
  687. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find();
  688. $member_id = $weprogram_token['member_id'];
  689. $sqlcondition = "";
  690. $left_join = "";
  691. $page = isset($gpc['page']) ? $gpc['page']:'1';
  692. $size = isset($gpc['size']) ? $gpc['size']:'6';
  693. $offset = ($page - 1)* $size;
  694. $type = isset($gpc['type']) ? $gpc['type']:'';
  695. $order_status = isset($gpc['order_status']) ? $gpc['order_status']:'-1';
  696. $soli_id = isset($_GPC['soli_id']) ? $_GPC['soli_id'] : 0;//是否群接龙
  697. if($is_tuanz == 1)
  698. {
  699. $community_info = D('Home/Front')->get_member_community_info($member_id);
  700. if( isset($_GPC['chooseDate']) && !empty($_GPC['chooseDate']) )
  701. {
  702. $where = ' and o.head_id = '.$community_info['id'] ;
  703. }else{
  704. //$where = ' and o.head_id = '.$community_info['id'].' and o.delivery != "express" ';
  705. $where = ' and o.head_id = '.$community_info['id'].' ';
  706. }
  707. $searchfield = isset($_GPC['searchfield']) && !empty($_GPC['searchfield']) ? $_GPC['searchfield'] : '';
  708. if( !empty($searchfield) && !empty($_GPC['keyword']))
  709. {
  710. $keyword = $_GPC['keyword'];
  711. switch($searchfield)
  712. {
  713. case 'ordersn':
  714. $where .= ' AND locate("'.$keyword.'",o.order_num_alias)>0';
  715. break;
  716. case 'member':
  717. $where .= ' AND (locate("'.$keyword.'",m.username)>0 or "'.$keyword.'"=o.member_id )';
  718. $left_join .= ' left join ' . C('DB_PREFIX'). 'lionfish_comshop_member as m on m.member_id = o.member_id ';
  719. break;
  720. case 'address':
  721. $where .= ' AND ( locate("'.$keyword.'",o.shipping_name)>0 )';
  722. break;
  723. case 'mobile':
  724. $where .= ' AND ( locate("'.$keyword.'",o.shipping_tel)>0 )';
  725. break;
  726. case 'location':
  727. $where .= ' AND (locate("'.$keyword.'",o.shipping_address)>0 )';
  728. break;
  729. case 'shipping_no':
  730. $where .= ' AND (locate("'.$keyword.'",o.shipping_no)>0 )';
  731. break;
  732. case 'goodstitle':
  733. $left_join = ' inner join ( select DISTINCT(og.order_id) from ' . C('DB_PREFIX') . 'lionfish_comshop_order_goods as og where (locate("'.$keyword.'",og.name)>0)) gs on gs.order_id=o.order_id';
  734. break;
  735. case 'trans_id':
  736. $where .= ' AND (locate("'.$keyword.'",o.transaction_id)>0 )';
  737. break;
  738. }
  739. }
  740. }else{
  741. $where = ' and o.member_id = '.$member_id;
  742. }
  743. if( isset($gpc['chooseDate']) && !empty($gpc['chooseDate']) )
  744. {
  745. $choose_date = $gpc['chooseDate'];
  746. $choose_date = str_replace('年','-', $choose_date);
  747. $choose_date = str_replace('月','-', $choose_date);
  748. $choose_date = $choose_date.'01 00:00:00';
  749. $BeginDate=date('Y-m-d', strtotime($choose_date));
  750. $end_date = date('Y-m-d', strtotime("$BeginDate +1 month -1 day")).' 23:59:59';
  751. $begin_time = strtotime($BeginDate.' 00:00:00');
  752. $end_time = strtotime($end_date);
  753. $where .= ' and o.date_added >= '.$begin_time.' and o.date_added < '.$end_time;
  754. }
  755. //全部 -1 待付款 3 待配送1 待提货4 已提货6
  756. //order_status $order_status
  757. $join = "";
  758. $fields = "";
  759. switch($order_status)
  760. {
  761. case -1:
  762. //全部 -1
  763. break;
  764. case 3:
  765. //待付款 3
  766. $where .= ' and o.order_status_id = 3 ';
  767. break;
  768. case 1:
  769. //待配送1
  770. $where .= ' and o.order_status_id = 1 ';
  771. break;
  772. case 4:
  773. //待提货4
  774. $where .= ' and o.order_status_id = 4 ';
  775. break;
  776. case 14:
  777. //待提货4
  778. $where .= ' and o.order_status_id = 14 ';
  779. break;
  780. case 22:
  781. //待确认佣金的
  782. $where .= ' and o.order_status_id in (1,4,14) ';
  783. break;
  784. case 357:
  785. //待确认佣金的
  786. $where .= ' and o.order_status_id in (3,5,7) ';
  787. break;
  788. case 6:
  789. //已提货6
  790. $where .= ' and o.order_status_id in (6,11) ';
  791. break;
  792. case 11:
  793. //已完成
  794. $where .= ' and o.order_status_id = 11 ';
  795. break;
  796. case 12:
  797. $fields = " orf.state as refund_state , ";
  798. $currentTab = isset($gpc['currentTab']) ? $gpc['currentTab']:0;
  799. $join = " ".C('DB_PREFIX').'lionfish_comshop_order_refund as orf, ';
  800. $where .= ' and o.order_id = orf.order_id ';
  801. if($currentTab == 0)
  802. {
  803. }else if($currentTab == 1){
  804. //售后
  805. $where .= ' and o.order_status_id = 12 ';
  806. }else if($currentTab == 2){
  807. $where .= ' and orf.state =3 ';
  808. }else if($currentTab == 3)
  809. {
  810. $where .= ' and orf.state =1 ';
  811. }
  812. break;
  813. case 7:
  814. //已退款
  815. $where .= ' and o.order_status_id = 7 ';
  816. break;
  817. }
  818. $where .= ' and o.type != "ignore" ';
  819. if( isset($soli_id) && $soli_id > 0 )
  820. {
  821. $where .= " and o.soli_id = {$soli_id} ";
  822. }
  823. if( !empty($type) )
  824. {
  825. //$where .= ' and o.type != "ignore" ';
  826. }
  827. $sql = "select o.order_id,o.order_num_alias,o.date_added,o.delivery,o.is_pin,{$fields} o.is_zhuli,o.shipping_fare,o.shipping_tel,o.shipping_name,o.voucher_credit,o.fullreduction_money,o.store_id,o.total,o.order_status_id,o.lottery_win,o.type,os.name as status_name
  828. from ".C('DB_PREFIX')."lionfish_comshop_order as o {$left_join}, {$join}
  829. ".C('DB_PREFIX')."lionfish_comshop_order_status as os ".$sqlcondition."
  830. where o.order_status_id = os.order_status_id {$where}
  831. order by o.date_added desc limit {$offset},{$size}";
  832. $list = M()->query($sql);
  833. $open_auto_delete = D('Home/Front')->get_config_by_name('open_auto_delete');
  834. $cancle_hour = D('Home/Front')->get_config_by_name('auto_cancle_order_time');
  835. $cancle_hour_time = time() - 3600 * $cancle_hour;
  836. $url = D('Home/Front')->get_config_by_name('shop_domain');
  837. //createTime
  838. foreach($list as $key => $val)
  839. {
  840. //判断是否需要取消订单
  841. //order_status_id 3 open_auto_delete
  842. if($open_auto_delete == 1 && $val['order_status_id'] == 3 && $val['date_added'] < $cancle_hour_time )
  843. {
  844. D('Home/Frontorder')->cancel_order($val['order_id'], true);
  845. $val['order_status_id'] == 5;
  846. }
  847. if($val['delivery'] == 'pickup')
  848. {
  849. //$val['total'] = round($val['total'],2) - round($val['voucher_credit'],2);
  850. }else{
  851. //$val['total'] = round($val['total'],2)+round($val['shipping_fare'],2) - round($val['voucher_credit'],2);
  852. }
  853. $val['createTime'] = date('Y-m-d H:i:s', $val['date_added']);
  854. // $val['delivery'] =='pickup'
  855. if($val['shipping_fare']<=0.001 || $val['delivery'] == 'pickup')
  856. {
  857. $val['shipping_fare'] = '免运费';
  858. }else{
  859. $val['shipping_fare'] = ''.$val['shipping_fare'];
  860. }
  861. if($val['order_status_id'] == 10)
  862. {
  863. $val['status_name'] = '等待退款';
  864. }
  865. else if($val['order_status_id'] == 4 && $val['delivery'] =='pickup')
  866. {
  867. //delivery 6
  868. $val['status_name'] = '待自提';
  869. //已自提
  870. }
  871. else if($val['order_status_id'] == 6 && $val['delivery'] =='pickup')
  872. {
  873. //delivery 6
  874. $val['status_name'] = '已自提';
  875. //已自提
  876. }
  877. else if($val['order_status_id'] == 1 && $val['type'] == 'lottery')
  878. {
  879. //等待开奖
  880. //一等奖
  881. if($val['lottery_win'] == 1)
  882. {
  883. $val['status_name'] = '一等奖';
  884. }else {
  885. $val['status_name'] = '等待开奖';
  886. }
  887. }
  888. else if($val['order_status_id'] == 2 && $val['type'] == 'lottery')
  889. {
  890. //等待开奖
  891. $val['status_name'] = '等待开奖';
  892. }
  893. $quantity = 0;
  894. $goods_list = M('lionfish_comshop_order_goods')->field('order_goods_id,head_disc,member_disc,level_name,goods_id,is_pin,shipping_fare,name,goods_images,quantity,price,total,rela_goodsoption_valueid')->where( array('order_id' => $val['order_id']) )->select();
  895. $total_commision = 0;
  896. if($val['delivery'] =='tuanz_send')
  897. {
  898. $total_commision += $val['shipping_fare'];
  899. }
  900. foreach($goods_list as $kk => $vv)
  901. {
  902. //commision
  903. if($is_tuanz == 1){
  904. $community_order_info = M('lionfish_community_head_commiss_order')->where( array('head_id' => $community_info['id'],'order_goods_id' => $vv['order_goods_id']) )->find();
  905. if(!empty($community_order_info))
  906. {
  907. $vv['commision'] = $community_order_info['money']-$community_order_info['add_shipping_fare'];
  908. $vv['commision'] = sprintf("%.2f",$vv['commision']);
  909. $total_commision += $vv['commision'];
  910. }else{
  911. $vv['commision'] = "0.00";
  912. }
  913. $vv['head_shipping_fare'] = $community_order_info['add_shipping_fare'];//团长配送费
  914. $vv['old_commision'] = $vv['commision'];
  915. $vv['del_commision'] = 0;
  916. //fen_type
  917. $vv['fen_type'] = $community_order_info['fen_type'];// 0 按照比例, 1按照金额
  918. $vv['fen_bili'] = $community_order_info['bili'];//比例
  919. $vv['fen_gumoney'] = $community_order_info['bili'];//按照金额
  920. $order_jishu = $vv['total'] -$vv['fullreduction_money']-$vv['voucher_credit']-$vv['has_refund_money'];
  921. $vv['order_jishu'] = $order_jishu;//有效金额:(基数)
  922. //has_refund_commission = 0
  923. $order_goods_refund_list = M('lionfish_comshop_order_goods_refund')->where( array('order_id' => $val['order_id'],'order_goods_id' => $vv['order_goods_id'] ) )->select();
  924. if( !empty($order_goods_refund_list) )
  925. {
  926. $kvbal_total_back_head_orderbuycommiss = 0;//合计退掉佣金
  927. foreach( $order_goods_refund_list as $kvval )
  928. {
  929. $kvbal_total_back_head_orderbuycommiss += $kvval['back_head_orderbuycommiss'];
  930. }
  931. $vv['del_commision'] = $kvbal_total_back_head_orderbuycommiss;
  932. $vv['old_commision'] += $vv['del_commision'];
  933. }
  934. }
  935. $order_option_list = M('lionfish_comshop_order_option')->where( array('order_goods_id' => $vv['order_goods_id']) )->select();
  936. if( !empty($vv['goods_images']))
  937. {
  938. $goods_images = $url. '/'.resize($vv['goods_images'],400,400);
  939. if(is_array($goods_images))
  940. {
  941. $vv['goods_images'] = $vv['goods_images'];
  942. }else{
  943. $vv['goods_images']= $url.'/'.resize($vv['goods_images'],400,400) ;
  944. }
  945. }else{
  946. $vv['goods_images']= '';
  947. }
  948. $goods_filed = M('lionfish_comshop_goods')->field('productprice as price')->where( array('id' => $vv['goods_id']) )->find();
  949. $vv['orign_price'] = $goods_filed['price'];
  950. $quantity += $vv['quantity'];
  951. foreach($order_option_list as $option)
  952. {
  953. $vv['option_str'][] = $option['value'];
  954. }
  955. if( !isset($vv['option_str']) )
  956. {
  957. $vv['option_str'] = '';
  958. }else{
  959. $vv['option_str'] = implode(',', $vv['option_str']);
  960. }
  961. // $vv['price'] = round($vv['price'],2);
  962. $vv['price'] = sprintf("%.2f",$vv['price']);
  963. $vv['orign_price'] = sprintf("%.2f",$vv['orign_price']);
  964. $vv['total'] = sprintf("%.2f",$vv['total']);
  965. $goods_list[$kk] = $vv;
  966. }
  967. $val['total_commision'] = $total_commision;
  968. $val['quantity'] = $quantity;
  969. if( empty($val['store_id']) )
  970. {
  971. $val['store_id'] = 1;
  972. }
  973. $store_info = array('s_true_name' =>'','s_logo' => '');
  974. $store_info['s_true_name'] = D('Home/Front')->get_config_by_name('shoname');
  975. $store_info['s_logo'] = D('Home/Front')->get_config_by_name('shoplogo');
  976. if( !empty($store_info['s_logo']))
  977. {
  978. $store_info['s_logo'] = tomedia($store_info['s_logo']);
  979. }else{
  980. $store_info['s_logo'] = '';
  981. }
  982. $order_goods['store_info'] = $store_info;
  983. $val['store_info'] = $store_info;
  984. $val['goods_list'] = $goods_list;
  985. if($val['type'] == 'integral')
  986. {
  987. //暂时屏蔽积分
  988. $val['score'] = round($val['total'],2);
  989. }
  990. $val['total'] = $val['total'] + $val['shipping_fare']-$val['voucher_credit']-$val['fullreduction_money'];
  991. if($val['total'] < 0)
  992. {
  993. $val['total'] = 0;
  994. }
  995. $val['total'] = sprintf("%.2f",$val['total']);
  996. $list[$key] = $val;
  997. }
  998. $need_data = array('code' => 0);
  999. if( !empty($list) )
  1000. {
  1001. $need_data['data'] = $list;
  1002. }else {
  1003. $need_data = array('code' => 1);
  1004. }
  1005. $open_aftersale = D('Home/Front')->get_config_by_name('open_aftersale');
  1006. if( empty($open_aftersale) )
  1007. {
  1008. $open_aftersale = 0;
  1009. }
  1010. $open_aftersale_time = D('Home/Front')->get_config_by_name('open_aftersale_time');
  1011. if( empty($open_aftersale_time) )
  1012. {
  1013. $open_aftersale_time = 0;
  1014. }
  1015. $need_data['open_aftersale'] = $open_aftersale;
  1016. $need_data['open_aftersale_time'] = $open_aftersale_time;
  1017. echo json_encode( $need_data );
  1018. die();
  1019. }
  1020. function receive_order_list()
  1021. {
  1022. $gpc = I('request.');
  1023. $order_data = $gpc['order_data'];
  1024. $token = $gpc['token'];
  1025. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find();
  1026. $member_id = $weprogram_token['member_id'];
  1027. $member_info = M('lionfish_comshop_member')->where( array('member_id' => $member_id) )->find();
  1028. if( empty($member_info) )
  1029. {
  1030. echo json_encode( array('code' => 1) );
  1031. die();
  1032. }
  1033. $community_info = D('Home/Front')->get_member_community_info($member_id);
  1034. $is_member_hexiao = false;
  1035. if( empty($community_info) && $member_info['pickup_id'] > 0 )
  1036. {
  1037. $parent_community_info = M('lionfish_comshop_community_pickup_member')->where( array('member_id' =>$member_id ) )->find();
  1038. if(!empty($parent_community_info))
  1039. {
  1040. $is_member_hexiao = true;
  1041. $community_info = M('lionfish_community_head')->where( array('id' => $parent_community_info['community_id'] ) )->find();
  1042. }
  1043. }
  1044. if( empty($community_info) || $community_info['state'] != 1 )
  1045. {
  1046. echo json_encode( array('code' => 1) );
  1047. die();
  1048. }
  1049. if( is_array($order_data) )
  1050. {
  1051. $order_data_str = implode(',', $order_data);
  1052. }else{
  1053. $order_data_str = $order_data;
  1054. }
  1055. $where = ' and o.head_id = '.$community_info['id'];
  1056. $where .= ' and o.order_status_id = 4 and order_id in ('.$order_data_str.') ';
  1057. $sql = "select o.order_id,o.order_num_alias
  1058. from ".C('DB_PREFIX')."lionfish_comshop_order as o ,
  1059. ".C('DB_PREFIX')."lionfish_comshop_order_status as os
  1060. where o.order_status_id = os.order_status_id {$where}
  1061. order by o.date_added desc ";
  1062. $list = M()->query($sql);
  1063. if( !empty($list) )
  1064. {
  1065. foreach($list as $val)
  1066. {
  1067. D('Home/Frontorder')->receive_order($val['order_id']);
  1068. if($is_member_hexiao)
  1069. {
  1070. $pickup_member_record_data = array();
  1071. $pickup_member_record_data['order_id'] = $val['order_id'];
  1072. $pickup_member_record_data['order_sn'] = $val['order_num_alias'];
  1073. $pickup_member_record_data['community_id'] = $community_info['id'];
  1074. $pickup_member_record_data['member_id'] = $member_id;
  1075. $pickup_member_record_data['addtime'] = time();
  1076. M('lionfish_comshop_community_pickup_member_record')->add( $pickup_member_record_data );
  1077. }
  1078. }
  1079. echo json_encode( array('code' => 0) );
  1080. die();
  1081. }else{
  1082. echo json_encode( array('code' => 1) );
  1083. die();
  1084. }
  1085. //load_model_class('frontorder')->receive_order($order_id);
  1086. //string(15) "35,34,31,19,5,2"
  1087. //string(32) "b55feabc517fa686f79c1bbd303cdeda"
  1088. }
  1089. function receive_order()
  1090. {
  1091. $gpc = I('request.');
  1092. $token = $gpc['token'];
  1093. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find();
  1094. $member_id = $weprogram_token['member_id'];
  1095. $order_id = $gpc['order_id'];
  1096. if( empty($member_id) )
  1097. {
  1098. $result['code'] = 2;
  1099. $result['msg'] = '登录失效';
  1100. echo json_encode($result);
  1101. die();
  1102. }
  1103. $order_info = M('lionfish_comshop_order')->where( array('order_id' => $order_id,'member_id' => $member_id) )->find();
  1104. if(empty($order_info)){
  1105. $result['code'] = 1;
  1106. $result['msg'] = '非法操作,会员不存在该订单';
  1107. echo json_encode($result);
  1108. die();
  1109. }
  1110. D('Home/Frontorder')->receive_order($order_id);
  1111. $result['code'] = 0;
  1112. echo json_encode($result);
  1113. die();
  1114. }
  1115. /**
  1116. 取消订单操作
  1117. **/
  1118. public function cancel_order()
  1119. {
  1120. $gpc = I('request.');
  1121. $token = $gpc['token'];
  1122. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find();
  1123. $member_id = $weprogram_token['member_id'];
  1124. $order_id = $gpc['order_id'];
  1125. if( empty($member_id) )
  1126. {
  1127. $result['code'] = 2;
  1128. $result['msg'] = '登录失效';
  1129. echo json_encode($result);
  1130. die();
  1131. }
  1132. $order_info = M('lionfish_comshop_order')->where( array('member_id' => $member_id,'order_id' => $order_id) )->find();
  1133. if(empty($order_info)){
  1134. $result['code'] = 1;
  1135. $result['msg'] = '非法操作,会员不存在该订单';
  1136. echo json_encode($result);
  1137. die();
  1138. }
  1139. //order_status_id == 3
  1140. if($order_info['order_status_id'] != 3)
  1141. {
  1142. $result['code'] = 1;
  1143. $result['msg'] = '订单可能已取消,请刷新页面';
  1144. echo json_encode($result);
  1145. die();
  1146. }
  1147. D('Home/Frontorder')->cancel_order($order_id);
  1148. $result['code'] = 0;
  1149. echo json_encode($result);
  1150. die();
  1151. }
  1152. public function order_head_info()
  1153. {
  1154. $_GPC = I('request.');
  1155. $token = $_GPC['token'];
  1156. $is_share = $_GPC['is_share'];
  1157. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find();
  1158. $member_id = $weprogram_token['member_id'];
  1159. $order_id = $_GPC['id'];
  1160. $order_info = M('lionfish_comshop_order')->where( array('order_id' => $order_id) )->find();
  1161. $pick_up_info = array();
  1162. $pick_order_info = array();
  1163. $community_info = D('Home/Front')->get_member_community_info($member_id);
  1164. if($is_share){
  1165. $userInfo = M('lionfish_comshop_member')->field('avatar')->where( array('member_id' => $order_info['member_id'] ) )->find();
  1166. $order_info['avatar'] = $userInfo['avatar'];
  1167. }
  1168. if( $order_info['delivery'] == 'pickup' )
  1169. {
  1170. //查询自提点
  1171. //$pick_order_info = M('lionfish_comshop_pick_order')->where( array('order_id' => $order_id) )->find();
  1172. //$pick_id = $pick_order_info['pick_id'];
  1173. //$pick_up_info = M('lionfish_comshop_pick_up')->where( array('id' => $pick_id ) )->find();
  1174. }
  1175. $order_status_info = M('lionfish_comshop_order_status')->where( array('order_status_id' => $order_info['order_status_id']) )->find();
  1176. //10 name
  1177. if($order_info['order_status_id'] == 10)
  1178. {
  1179. $order_status_info['name'] = '等待退款';
  1180. }
  1181. else if($order_info['order_status_id'] == 4 && $order_info['delivery'] =='pickup')
  1182. {
  1183. //delivery 6
  1184. $order_status_info['name'] = '待自提';
  1185. //已自提
  1186. }
  1187. else if($order_info['order_status_id'] == 6 && $order_info['delivery'] =='pickup')
  1188. {
  1189. //delivery 6
  1190. $order_status_info['name'] = '已自提';
  1191. }
  1192. else if($order_info['order_status_id'] == 1 && $order_info['type'] == 'lottery')
  1193. {
  1194. //等待开奖
  1195. //一等奖
  1196. if($order_info['lottery_win'] == 1)
  1197. {
  1198. $order_status_info['name'] = '一等奖';
  1199. }else {
  1200. $order_status_info['name'] = '等待开奖';
  1201. }
  1202. }
  1203. //$order_info['type']
  1204. //open_auto_delete
  1205. if($order_info['order_status_id'] == 3)
  1206. {
  1207. $open_auto_delete = D('Home/Front')->get_config_by_name('open_auto_delete');
  1208. $auto_cancle_order_time = D('Home/Front')->get_config_by_name('auto_cancle_order_time');
  1209. $order_info['open_auto_delete'] = $open_auto_delete;
  1210. //date_added
  1211. if($open_auto_delete == 1)
  1212. {
  1213. $order_info['over_buy_time'] = $order_info['date_added'] + 3600 * $auto_cancle_order_time;
  1214. $order_info['cur_time'] = time();
  1215. }
  1216. }
  1217. $shipping_province = M('lionfish_comshop_area')->where( array('id' => $order_info['shipping_province_id'] ) )->find();
  1218. $shipping_city = M('lionfish_comshop_area')->where( array('id' => $order_info['shipping_city_id'] ) )->find();
  1219. $shipping_country = M('lionfish_comshop_area')->where( array('id' => $order_info['shipping_country_id']) )->find();
  1220. $order_goods_list = M('lionfish_comshop_order_goods')->where( array('order_id' => $order_id ) )->select();
  1221. $shiji_total_money = 0;
  1222. $member_youhui = 0.00;
  1223. $pick_up_time = "";
  1224. $pick_up_type = -1;
  1225. $pick_up_weekday = '';
  1226. $today_time = $order_info['pay_time'];
  1227. $arr = array('天','一','二','三','四','五','六');
  1228. foreach($order_goods_list as $key => $order_goods)
  1229. {
  1230. $order_option_info = M('lionfish_comshop_order_option')->field('value')->where( array('order_goods_id' => $order_goods['order_goods_id'],'order_id' => $order_id) )->select();
  1231. foreach($order_option_info as $option)
  1232. {
  1233. $order_goods['option_str'][] = $option['value'];
  1234. }
  1235. if(empty($order_goods['option_str']))
  1236. {
  1237. //option_str
  1238. $order_goods['option_str'] = '';
  1239. }else{
  1240. $order_goods['option_str'] = implode(',', $order_goods['option_str']);
  1241. }
  1242. //
  1243. $order_goods['shipping_fare'] = round($order_goods['shipping_fare'],2);
  1244. $order_goods['price'] = round($order_goods['price'],2);
  1245. $order_goods['total'] = round($order_goods['total'],2);
  1246. if( $order_goods['is_vipcard_buy'] == 1 || $order_goods['is_level_buy'] ==1 )
  1247. {
  1248. $order_goods['price'] = round($order_goods['oldprice'],2);
  1249. }
  1250. $order_goods['real_total'] = round($order_goods['quantity'] * $order_goods['price'],2);
  1251. $community_order_info = M('lionfish_community_head_commiss_order')->where( array('head_id' => $community_info['id'],'order_goods_id' => $order_goods['order_goods_id']) )->find();
  1252. if(!empty($community_order_info))
  1253. {
  1254. $order_goods['commision'] = $community_order_info['money'];
  1255. }else{
  1256. $order_goods['commision'] = 0;
  1257. }
  1258. $order_goods['old_commision'] = $order_goods['commision'];
  1259. $order_goods['del_commision'] = 0;
  1260. $order_goods['statements_end_date'] = date('Y-m-d H:i:s', $order_goods['statements_end_time']);
  1261. //has_refund_commission = 0
  1262. $order_goods_refund_list = M('lionfish_comshop_order_goods_refund')->where( "order_id={$order_id} and order_goods_id=".$order_goods['order_goods_id'] )->select();
  1263. if( !empty($order_goods_refund_list) )
  1264. {
  1265. $kvbal_total_back_head_orderbuycommiss = 0;//合计退掉佣金
  1266. foreach( $order_goods_refund_list as $kvval )
  1267. {
  1268. $kvbal_total_back_head_orderbuycommiss += $kvval['back_head_orderbuycommiss'];
  1269. }
  1270. $order_goods['del_commision'] = $kvbal_total_back_head_orderbuycommiss;
  1271. $order_goods['old_commision'] += $order_goods['del_commision'];
  1272. }
  1273. //fen_type
  1274. $order_goods['fen_type'] = $community_order_info['fen_type'];// 0 按照比例, 1按照金额
  1275. $order_goods['fen_bili'] = $community_order_info['bili'];//比例
  1276. $order_goods['fen_gumoney'] = $community_order_info['bili'];//按照金额
  1277. $order_jishu = $order_goods['total'] -$order_goods['fullreduction_money']-$order_goods['voucher_credit']-$order_goods['has_refund_money'];
  1278. $order_goods['order_jishu'] = $order_jishu;//有效金额:(基数)
  1279. $order_goods['head_shipping_fare'] = $community_order_info['add_shipping_fare'];//团长配送费
  1280. /**
  1281. $goods_images = file_image_thumb_resize($vv['goods_images'],400);
  1282. if(is_array($goods_images))
  1283. {
  1284. $vv['goods_images'] = $vv['goods_images'];
  1285. }else{
  1286. $vv['goods_images']= tomedia( file_image_thumb_resize($vv['goods_images'],400) );
  1287. }
  1288. **/
  1289. $goods_images = $order_goods['goods_images'];
  1290. if( !is_array($goods_images) )
  1291. {
  1292. $order_goods['image']= tomedia( $goods_images );
  1293. $order_goods['goods_images']= tomedia( $goods_images );
  1294. }else{
  1295. $order_goods['image']= $order_goods['goods_images'];
  1296. }
  1297. $order_goods['hascomment'] = 0;
  1298. $order_goods_comment_info = M('lionfish_comshop_order_comment')->field('comment_id')->where( array('goods_id' => $order_goods['goods_id'],'order_id' => $order_id) )->find();
  1299. if( !empty($order_goods_comment_info) )
  1300. {
  1301. $order_goods['hascomment'] = 1;
  1302. }
  1303. //ims_
  1304. $goods_info = M('lionfish_comshop_goods')->field('productprice as price')->where( array('id' => $order_goods['goods_id']) )->find();
  1305. $goods_cm_info = M('lionfish_comshop_good_common')->field('pick_up_type,pick_up_modify')->where( array('goods_id' => $order_goods['goods_id']) )->find();
  1306. if($pick_up_type == -1 || $goods_cm_info['pick_up_type'] > $pick_up_type)
  1307. {
  1308. $pick_up_type = $goods_cm_info['pick_up_type'];
  1309. if($pick_up_type == 0)
  1310. {
  1311. $pick_up_time = date('m-d', $today_time);
  1312. //$pick_up_weekday = '周'.$arr[date('w',$today_time)];
  1313. }else if( $pick_up_type == 1 ){
  1314. $pick_up_time = date('m-d', $today_time+86400);
  1315. //$pick_up_weekday = '周'.$arr[date('w',$today_time+86400)];
  1316. }else if( $pick_up_type == 2 )
  1317. {
  1318. $pick_up_time = date('m-d', $today_time+86400*2);
  1319. //$pick_up_weekday = '周'.$arr[date('w',$today_time+86400*2)];
  1320. }else if($pick_up_type == 3)
  1321. {
  1322. $pick_up_time = $goods_cm_info['pick_up_modify'];
  1323. }
  1324. }
  1325. $order_goods['shop_price'] = $goods_info['price'];
  1326. $store_info = array('s_true_name' =>'','s_logo' => '');
  1327. $store_info['s_true_name'] = D('Home/Front')->get_config_by_name('shoname');
  1328. if( !empty($store_info['s_logo']) )
  1329. {
  1330. $store_info['s_logo'] = tomedia($store_info['s_logo']);
  1331. }else{
  1332. $store_info['s_logo'] = '';
  1333. }
  1334. $order_goods['store_info'] = $store_info;
  1335. unset($order_goods['model']);
  1336. unset($order_goods['rela_goodsoption_valueid']);
  1337. unset($order_goods['comment']);
  1338. $order_goods_list[$key] = $order_goods;
  1339. $shiji_total_money += $order_goods['quantity'] * $order_goods['price'];
  1340. $member_youhui += ($order_goods['real_total'] - $order_goods['total']);
  1341. }
  1342. unset($order_info['store_id']);
  1343. unset($order_info['email']);
  1344. unset($order_info['shipping_city_id']);
  1345. unset($order_info['shipping_country_id']);
  1346. unset($order_info['shipping_province_id']);
  1347. //unset($order_info['comment']);
  1348. unset($order_info['voucher_id']);
  1349. unset($order_info['is_balance']);
  1350. unset($order_info['lottery_win']);
  1351. unset($order_info['ip']);
  1352. unset($order_info['ip_region']);
  1353. unset($order_info['user_agent']);
  1354. $order_info['shipping_fare'] = round($order_info['shipping_fare'],2) < 0.01 ? '0.00':round($order_info['shipping_fare'],2) ;
  1355. $order_info['voucher_credit'] = round($order_info['voucher_credit'],2) < 0.01 ? '0.00':round($order_info['voucher_credit'],2) ;
  1356. $order_info['fullreduction_money'] = round($order_info['fullreduction_money'],2) < 0.01 ? '0.00':round($order_info['fullreduction_money'],2) ;
  1357. $order_info['total'] = round($order_info['total'],2)< 0.01 ? '0.00':round($order_info['total']+$order_info['shipping_fare']-$order_info['voucher_credit']-$order_info['fullreduction_money'],2) ;
  1358. if($order_info['total'] < 0)
  1359. {
  1360. $order_info['total'] = '0.00';
  1361. }
  1362. $order_info['total'] = round($order_info['total'],2)< 0.01 ? '0.00':round($order_info['total'],2) ;
  1363. $order_info['real_total'] = round($shiji_total_money,2)+$order_info['shipping_fare'];
  1364. $order_info['price'] = round($order_info['price'],2);
  1365. $order_info['member_youhui'] = round($member_youhui,2) < 0.01 ? '0.00':round($member_youhui,2);
  1366. $order_info['pick_up_time'] = $pick_up_time;
  1367. $order_info['shipping_fare'] = sprintf("%.2f",$order_info['shipping_fare']);
  1368. $order_info['voucher_credit'] = sprintf("%.2f",$order_info['voucher_credit']);
  1369. $order_info['fullreduction_money'] = sprintf("%.2f",$order_info['fullreduction_money']);
  1370. $order_info['total'] = sprintf("%.2f",$order_info['total']);
  1371. $order_info['real_total'] = sprintf("%.2f",$order_info['real_total']);
  1372. $order_info['date_added'] = date('Y-m-d H:i:s', $order_info['date_added']);
  1373. $need_data = array();
  1374. if($order_info['delivery'] =='pickup')
  1375. {
  1376. }else{
  1377. }
  1378. if($order_info['type'] == 'integral')
  1379. {
  1380. //暂时屏蔽积分商城
  1381. //$integral_order = M('integral_order')->field('score')->where( array('order_id' => $order_id) )->find();
  1382. //$need_data['score'] = intval($integral_order['score']);
  1383. }
  1384. if( !empty($order_info['pay_time']) && $order_info['pay_time'] >0 )
  1385. {
  1386. $order_info['pay_date'] = date('Y-m-d H:i:s', $order_info['pay_time']);
  1387. }else{
  1388. $order_info['pay_date'] = '';
  1389. }
  1390. $order_info['express_tuanz_date'] = empty($order_info['express_tuanz_time']) ? '' : date('Y-m-d H:i:s', $order_info['express_tuanz_time']);
  1391. $order_info['receive_date'] = date('Y-m-d H:i:s', $order_info['receive_time']);
  1392. if($is_share==1){ $order_info['shipping_tel'] = substr_replace($order_info['shipping_tel'],'****',3,4); }
  1393. $need_data['order_info'] = $order_info;
  1394. $need_data['order_status_info'] = $order_status_info;
  1395. $need_data['shipping_province'] = $shipping_province;
  1396. $need_data['shipping_city'] = $shipping_city;
  1397. $need_data['shipping_country'] = $shipping_country;
  1398. $need_data['order_goods_list'] = $order_goods_list;
  1399. $need_data['goods_count'] = count($order_goods_list);
  1400. //$order_info['order_status_id'] 13 平台介入退款
  1401. $order_refund_historylist = array();
  1402. $pingtai_deal = 0;
  1403. //判断是否已经平台处理完毕
  1404. $order_refund_historylist = M('lionfish_comshop_order_refund_history')->where( array('order_id' => $order_id) )->order('addtime asc')->select();
  1405. foreach($order_refund_historylist as $key => $val)
  1406. {
  1407. if($val['type'] ==3)
  1408. {
  1409. $pingtai_deal = 1;
  1410. }
  1411. }
  1412. $order_refund = M('lionfish_comshop_order_refund')->where( array('order_id' => $order_id) )->find();
  1413. if(!empty($order_refund))
  1414. {
  1415. $order_refund['addtime'] = date('Y-m-d H:i:s', $order_refund['addtime']);
  1416. }
  1417. $need_data['pick_up'] = $pick_up_info;
  1418. if( empty($pick_order_info['qrcode']) && false)
  1419. {
  1420. }
  1421. $need_data['pick_order_info'] = $pick_order_info;
  1422. $open_aftersale = D('Home/Front')->get_config_by_name('open_aftersale');
  1423. if( empty($open_aftersale) )
  1424. {
  1425. $open_aftersale = 0;
  1426. }
  1427. $open_aftersale_time = D('Home/Front')->get_config_by_name('open_aftersale_time');
  1428. if( empty($open_aftersale_time) )
  1429. {
  1430. $open_aftersale_time = 0;
  1431. }
  1432. echo json_encode( array('code' => 0,'data' => $need_data,'pingtai_deal' => $pingtai_deal,'order_refund' => $order_refund, 'open_aftersale' => $open_aftersale, 'open_aftersale_time' => $open_aftersale_time ) );
  1433. die();
  1434. }
  1435. public function order_share_info(){
  1436. $_GPC = I('request.');
  1437. $is_share = $_GPC['is_share'];
  1438. $token = $_GPC['token'];
  1439. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token) )->find();
  1440. $member_id = $weprogram_token['member_id'];
  1441. $order_id = $_GPC['id'];
  1442. $order_info = M('lionfish_comshop_order')->where( array('order_id' => $order_id ) )->find();
  1443. if($is_share){
  1444. $userInfo = M('lionfish_comshop_member')->field('avatar')->where( array('member_id' => $order_info['member_id'] ) )->find();
  1445. $order_info['avatar'] = $userInfo['avatar'];
  1446. }
  1447. $pick_up_info = array();
  1448. $pick_order_info = array();
  1449. if( $order_info['delivery'] == 'pickup' )
  1450. {
  1451. //查询自提点
  1452. // $pick_order_info = M('lionfish_comshop_pick_order')->where( array('order_id' => $order_id ) )->find();
  1453. // $pick_id = $pick_order_info['pick_id'];
  1454. // $pick_up_info = M('lionfish_comshop_pick_up')->where( array('id' => $pick_id ) )->find();
  1455. }
  1456. $order_status_info = M('lionfish_comshop_order_status')->where( array('order_status_id' => $order_info['order_status_id'] ) )->find();
  1457. //10 name
  1458. if($order_info['order_status_id'] == 10)
  1459. {
  1460. $order_status_info['name'] = '等待退款';
  1461. }
  1462. else if($order_info['order_status_id'] == 4 && $order_info['delivery'] =='pickup')
  1463. {
  1464. //delivery 6
  1465. $order_status_info['name'] = '待自提';
  1466. //已自提
  1467. }
  1468. else if($order_info['order_status_id'] == 6 && $order_info['delivery'] =='pickup')
  1469. {
  1470. //delivery 6
  1471. $order_status_info['name'] = '已自提';
  1472. }
  1473. else if($order_info['order_status_id'] == 1 && $order_info['type'] == 'lottery')
  1474. {
  1475. //等待开奖
  1476. //一等奖
  1477. if($order_info['lottery_win'] == 1)
  1478. {
  1479. $order_status_info['name'] = '一等奖';
  1480. }else {
  1481. $order_status_info['name'] = '等待开奖';
  1482. }
  1483. }
  1484. //$order_info['type']
  1485. //open_auto_delete
  1486. if($order_info['order_status_id'] == 3)
  1487. {
  1488. $open_auto_delete = D('Home/Front')->get_config_by_name('open_auto_delete');
  1489. $auto_cancle_order_time = D('Home/Front')->get_config_by_name('auto_cancle_order_time');
  1490. $order_info['open_auto_delete'] = $open_auto_delete;
  1491. //date_added
  1492. if($open_auto_delete == 1)
  1493. {
  1494. $order_info['over_buy_time'] = $order_info['date_added'] + 3600 * $auto_cancle_order_time;
  1495. $order_info['cur_time'] = time();
  1496. }
  1497. }
  1498. $shipping_province = M('lionfish_comshop_area')->where( array('id' => $order_info['shipping_province_id'] ) )->find();
  1499. $shipping_city = M('lionfish_comshop_area')->where( array('id' => $order_info['shipping_city_id'] ) )->find();
  1500. $shipping_country = M('lionfish_comshop_area')->where( array('id' => $order_info['shipping_country_id'] ) )->find();
  1501. $order_goods_list = M('lionfish_comshop_order_goods')->where( array('order_id' => $order_id ) )->select();
  1502. $shiji_total_money = 0;
  1503. $member_youhui = 0.00;
  1504. $pick_up_time = "";
  1505. $pick_up_type = -1;
  1506. $pick_up_weekday = '';
  1507. $today_time = $order_info['pay_time'];
  1508. $arr = array('天','一','二','三','四','五','六');
  1509. foreach($order_goods_list as $key => $order_goods)
  1510. {
  1511. $order_refund_goods = M('lionfish_comshop_order_refund')->where( array('order_id' => $order_id, 'order_goods_id' => $order_goods['order_goods_id'] ) )->order('ref_id desc')->find();
  1512. if(!empty($order_refund_goods))
  1513. {
  1514. $order_refund_goods['addtime'] = date('Y-m-d H:i:s', $order_refund_goods['addtime']);
  1515. }
  1516. $order_option_info = M('lionfish_comshop_order_option')->field('value')->where( array('order_id' => $order_id ,'order_goods_id' => $order_goods['order_goods_id'] ) )->select();
  1517. $order_goods['order_refund_goods'] = $order_refund_goods;
  1518. foreach($order_option_info as $option)
  1519. {
  1520. $order_goods['option_str'][] = $option['value'];
  1521. }
  1522. if(empty($order_goods['option_str']))
  1523. {
  1524. //option_str
  1525. $order_goods['option_str'] = '';
  1526. }else{
  1527. $order_goods['option_str'] = implode(',', $order_goods['option_str']);
  1528. }
  1529. //
  1530. $order_goods['shipping_fare'] = round($order_goods['shipping_fare'],2);
  1531. $order_goods['price'] = round($order_goods['price'],2);
  1532. $order_goods['total'] = round($order_goods['total'],2);
  1533. if( $order_goods['is_vipcard_buy'] == 1 || $order_goods['is_level_buy'] ==1 )
  1534. {
  1535. $order_goods['price'] = round($order_goods['oldprice'],2);
  1536. }
  1537. $order_goods['real_total'] = round($order_goods['quantity'] * $order_goods['price'],2);
  1538. /**
  1539. $goods_images = file_image_thumb_resize($vv['goods_images'],400);
  1540. if(is_array($goods_images))
  1541. {
  1542. $vv['goods_images'] = $vv['goods_images'];
  1543. }else{
  1544. $vv['goods_images']= tomedia( file_image_thumb_resize($vv['goods_images'],400) );
  1545. }
  1546. **/
  1547. $goods_images = $order_goods['goods_images'];
  1548. if( !is_array($goods_images) )
  1549. {
  1550. $order_goods['image']= tomedia( $goods_images );
  1551. $order_goods['goods_images']= tomedia( $goods_images );
  1552. }else{
  1553. $order_goods['image']= $order_goods['goods_images'];
  1554. }
  1555. $order_goods['hascomment'] = 0;
  1556. $order_goods_comment_info = M('lionfish_comshop_order_comment')->field('comment_id')->where( array('order_id' => $order_id, 'goods_id' => $order_goods['goods_id'] ) )->find();
  1557. if( !empty($order_goods_comment_info) )
  1558. {
  1559. $order_goods['hascomment'] = 1;
  1560. }
  1561. $order_goods['can_ti_refund'] = 1;
  1562. $disable_info = M('lionfish_comshop_order_refund_disable')->where( array('order_id' => $order_id, 'order_goods_id' => $order_goods['order_goods_id'] ) )->find();
  1563. if( !empty($disable_info) )
  1564. {
  1565. $order_goods['can_ti_refund'] = 0;
  1566. }
  1567. if($order_goods['is_refund_state'] == 1)
  1568. {
  1569. //已经再申请退款中了。或者已经退款了。
  1570. $order_refund_info = M('lionfish_comshop_order_refund')->field('state')->where( array('order_id' =>$order_id,'order_goods_id' => $order_goods['order_goods_id'] ) )->find();
  1571. if( $order_refund_info['state'] == 3 )
  1572. {
  1573. $order_goods['is_refund_state'] = 2;
  1574. }
  1575. }
  1576. //ims_
  1577. $goods_info = M('lionfish_comshop_goods')->field('productprice as price')->where( array('id' => $order_goods['goods_id'] ) )->find();
  1578. $goods_cm_info = M('lionfish_comshop_good_common')->field('pick_up_type,pick_up_modify,goods_share_image')->where( array('goods_id' => $order_goods['goods_id'] ) )->find();
  1579. if($pick_up_type == -1 || $goods_cm_info['pick_up_type'] > $pick_up_type)
  1580. {
  1581. $pick_up_type = $goods_cm_info['pick_up_type'];
  1582. if($pick_up_type == 0)
  1583. {
  1584. $pick_up_time = date('m-d', $today_time);
  1585. //$pick_up_weekday = '周'.$arr[date('w',$today_time)];
  1586. }else if( $pick_up_type == 1 ){
  1587. $pick_up_time = date('m-d', $today_time+86400);
  1588. //$pick_up_weekday = '周'.$arr[date('w',$today_time+86400)];
  1589. }else if( $pick_up_type == 2 )
  1590. {
  1591. $pick_up_time = date('m-d', $today_time+86400*2);
  1592. //$pick_up_weekday = '周'.$arr[date('w',$today_time+86400*2)];
  1593. }else if($pick_up_type == 3)
  1594. {
  1595. $pick_up_time = $goods_cm_info['pick_up_modify'];
  1596. }
  1597. }
  1598. if( !empty($goods_cm_info['goods_share_image']) )
  1599. {
  1600. $order_goods['goods_share_image']= tomedia( $goods_cm_info['goods_share_image'] );
  1601. }else{
  1602. $order_goods['goods_share_image'] = $order_goods['image'];
  1603. }
  1604. $order_goods['shop_price'] = $goods_info['price'];
  1605. $store_info = array('s_true_name' =>'','s_logo' => '');
  1606. $store_info['s_true_name'] = D('Home/Front')->get_config_by_name('shoname');
  1607. //$store_info['s_logo'] = load_model_class('front')->get_config_by_name('shoplogo');
  1608. if( !empty($store_info['s_logo']) )
  1609. {
  1610. $store_info['s_logo'] = tomedia($store_info['s_logo']);
  1611. }else{
  1612. $store_info['s_logo'] = '';
  1613. }
  1614. $order_goods['store_info'] = $store_info;
  1615. unset($order_goods['model']);
  1616. unset($order_goods['rela_goodsoption_valueid']);
  1617. unset($order_goods['comment']);
  1618. //ims_ ims_lionfish_comshop_order_goods_refund addtime
  1619. $order_goods_refund_list = M('lionfish_comshop_order_goods_refund')->field('real_refund_quantity,money,addtime')->where( array('order_goods_id' =>$order_goods['order_goods_id'] ) )->order('id asc')->select();
  1620. if( empty($order_goods_refund_list) )
  1621. {
  1622. $order_goods_refund_list = array();
  1623. }else{
  1624. foreach( $order_goods_refund_list as $kre => $rval )
  1625. {
  1626. $rval['addtime'] = date('Y-m-d H:i:s', $rval['addtime']);
  1627. $order_goods_refund_list[$kre] = $rval;
  1628. }
  1629. }
  1630. $order_goods['order_goods_refund_list'] = $order_goods_refund_list;
  1631. $order_goods_list[$key] = $order_goods;
  1632. $shiji_total_money += $order_goods['quantity'] * $order_goods['price'];
  1633. $member_youhui += ($order_goods['real_total'] - $order_goods['total']);
  1634. }
  1635. unset($order_info['store_id']);
  1636. unset($order_info['email']);
  1637. unset($order_info['shipping_city_id']);
  1638. unset($order_info['shipping_country_id']);
  1639. unset($order_info['shipping_province_id']);
  1640. // unset($order_info['comment']);
  1641. unset($order_info['voucher_id']);
  1642. unset($order_info['is_balance']);
  1643. unset($order_info['lottery_win']);
  1644. unset($order_info['ip']);
  1645. unset($order_info['ip_region']);
  1646. unset($order_info['user_agent']);
  1647. //enum('express', 'pickup', 'tuanz_send')
  1648. //var_dump($order_info['total'],$order_info['shipping_fare'],$order['voucher_credit'],$order['fullreduction_money'] );die();
  1649. $order_info['shipping_fare'] = round($order_info['shipping_fare'],2) < 0.01 ? '0.00':round($order_info['shipping_fare'],2) ;
  1650. $order_info['voucher_credit'] = round($order_info['voucher_credit'],2) < 0.01 ? '0.00':round($order_info['voucher_credit'],2) ;
  1651. $order_info['fullreduction_money'] = round($order_info['fullreduction_money'],2) < 0.01 ? '0.00':round($order_info['fullreduction_money'],2) ;
  1652. $need_data = array();
  1653. if($order_info['type'] == 'integral')
  1654. {
  1655. //暂时屏蔽积分商城
  1656. $order_info['score'] = round($order_info['total'],2);
  1657. }
  1658. $order_info['total'] = round($order_info['total']+$order_info['shipping_fare']-$order_info['voucher_credit']-$order_info['fullreduction_money'] - $order_info['score_for_money'],2) ;
  1659. if($order_info['total'] < 0)
  1660. {
  1661. $order_info['total'] = '0.00';
  1662. }
  1663. $order_info['real_total'] = round($shiji_total_money,2)+$order_info['shipping_fare'];
  1664. $order_info['price'] = round($order_info['price'],2);
  1665. $order_info['member_youhui'] = round($member_youhui,2) < 0.01 ? '0.00':round($member_youhui,2);
  1666. $order_info['pick_up_time'] = $pick_up_time;
  1667. $order_info['shipping_fare'] = sprintf("%.2f",$order_info['shipping_fare']);
  1668. $order_info['voucher_credit'] = sprintf("%.2f",$order_info['voucher_credit']);
  1669. $order_info['fullreduction_money'] = sprintf("%.2f",$order_info['fullreduction_money']);
  1670. $order_info['total'] = sprintf("%.2f",$order_info['total']);
  1671. $order_info['real_total'] = sprintf("%.2f",$order_info['real_total']);
  1672. $order_info['date_added'] = date('Y-m-d H:i:s', $order_info['date_added']);
  1673. // if($order_info['delivery'] =='pickup')
  1674. // {}else{}
  1675. if( !empty($order_info['pay_time']) && $order_info['pay_time'] >0 )
  1676. {
  1677. $order_info['pay_date'] = date('Y-m-d H:i:s', $order_info['pay_time']);
  1678. }else{
  1679. $order_info['pay_date'] = '';
  1680. }
  1681. $order_info['express_tuanz_date'] = date('Y-m-d H:i:s', $order_info['express_tuanz_time']);
  1682. $order_info['receive_date'] = date('Y-m-d H:i:s', $order_info['receive_time']);
  1683. //"delivery": "pickup", enum('express', 'pickup', 'tuanz_send')
  1684. if($order_info['delivery'] == 'express')
  1685. {
  1686. $order_info['delivery_name'] = '快递';
  1687. }else if($order_info['delivery'] == 'pickup')
  1688. {
  1689. $order_info['delivery_name'] = '用户自提';
  1690. }else if($order_info['delivery'] == 'tuanz_send'){
  1691. $order_info['delivery_name'] = '团长配送';
  1692. }
  1693. $need_data['order_info'] = $order_info;
  1694. $need_data['order_status_info'] = $order_status_info;
  1695. $need_data['shipping_province'] = $shipping_province;
  1696. $need_data['shipping_city'] = $shipping_city;
  1697. $need_data['shipping_country'] = $shipping_country;
  1698. $need_data['order_goods_list'] = $order_goods_list;
  1699. $need_data['goods_count'] = count($order_goods_list);
  1700. //$order_info['order_status_id'] 13 平台介入退款
  1701. $order_refund_historylist = array();
  1702. $pingtai_deal = 0;
  1703. //判断是否已经平台处理完毕
  1704. $order_refund_historylist = M('lionfish_comshop_order_refund_history')->where( array('order_id' => $order_id ) )->order('addtime asc')->select();
  1705. foreach($order_refund_historylist as $key => $val)
  1706. {
  1707. if($val['type'] ==3)
  1708. {
  1709. $pingtai_deal = 1;
  1710. }
  1711. }
  1712. $order_refund = M('lionfish_comshop_order_refund')->where( array('order_id' => $order_id ) )->find();
  1713. if(!empty($order_refund))
  1714. {
  1715. $order_refund['addtime'] = date('Y-m-d H:i:s', $order_refund['addtime']);
  1716. }
  1717. $need_data['pick_up'] = $pick_up_info;
  1718. $need_data['pick_order_info'] = $pick_order_info;
  1719. $order_pay_after_share = D('Home/Front')->get_config_by_name('order_pay_after_share');
  1720. if($order_pay_after_share==1){
  1721. $order_pay_after_share_img = D('Home/Front')->get_config_by_name('order_pay_after_share_img');
  1722. $order_pay_after_share_img = $order_pay_after_share_img ? tomedia($order_pay_after_share_img) : '';
  1723. $need_data['share_img'] = $order_pay_after_share_img;
  1724. }
  1725. //$order_info['order_status_id']
  1726. //0开启,1关闭 取消订单
  1727. $order_can_del_cancle = D('Home/Front')->get_config_by_name('order_can_del_cancle');
  1728. $order_can_del_cancle = empty($order_can_del_cancle) || $order_can_del_cancle == 0 ? 1 : 0;
  1729. $is_hidden_orderlist_phone = D('Home/Front')->get_config_by_name('is_hidden_orderlist_phone');
  1730. $is_show_guess_like = D('Home/Front')->get_config_by_name('is_show_order_guess_like');
  1731. $user_service_switch = D('Home/Front')->get_config_by_name('user_service_switch');
  1732. echo json_encode(
  1733. array(
  1734. 'code' => 0,
  1735. 'data' => $need_data,
  1736. 'pingtai_deal' => $pingtai_deal,
  1737. 'order_refund' => $order_refund,
  1738. 'order_can_del_cancle' => $order_can_del_cancle,
  1739. 'order_pay_after_share' => $order_pay_after_share,
  1740. 'is_hidden_orderlist_phone' => $is_hidden_orderlist_phone,
  1741. 'is_show_guess_like' => $is_show_guess_like,
  1742. 'user_service_switch' => $user_service_switch
  1743. )
  1744. );
  1745. die();
  1746. }
  1747. }