GroupController.class.php 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607
  1. <?php
  2. /**
  3. * lionfish 商城系统
  4. *
  5. * 拼团模块
  6. * @author fish
  7. *
  8. */
  9. namespace Home\Controller;
  10. class GroupController extends CommonController {
  11. protected function _initialize()
  12. {
  13. parent::_initialize();
  14. }
  15. public function pintuan_slides()
  16. {
  17. $_GPC = I('request.');
  18. // 活动商品展示方式 pintuan_show_type 0横向布局 1左右布局
  19. $pintuan_show_type_info= D('Home/Front')->get_config_by_name('pintuan_show_type');
  20. if( empty($pintuan_show_type_info) )
  21. {
  22. $pintuan_show_type_info = 0;
  23. }
  24. //拼团页面浮窗 hide_pintuan_page_windows 0开启 1关闭
  25. $hide_pintuan_page_windows_info= D('Home/Front')->get_config_by_name('hide_pintuan_page_windows' );
  26. if( empty($hide_pintuan_page_windows_info) )
  27. {
  28. $hide_pintuan_page_windows_info = 0;
  29. }
  30. //拼团规则介绍 pintuan_publish
  31. $pintuan_publish_info= D('Home/Front')->get_config_by_name('pintuan_publish');
  32. $category_list = D('Home/GoodsCategory')->get_all_goods_category('pintuan');
  33. $params = array();
  34. $params[':uniacid'] = $uniacid;
  35. $params[':type'] = 'pintuan';
  36. $params[':enabled'] = 1;
  37. //拼团幻灯片
  38. $slider_list = M()->query('SELECT * FROM ' . C('DB_PREFIX'). "lionfish_comshop_adv
  39. WHERE type='pintuan' and enabled=1 " . ' order by displayorder desc, id desc ');
  40. if(!empty($slider_list))
  41. {
  42. foreach($slider_list as $key => $val)
  43. {
  44. $val['image'] = tomedia($val['thumb']);
  45. $slider_list[$key] = $val;
  46. }
  47. }else{
  48. $slider_list = array();
  49. }
  50. //tabbar开关
  51. //$open_tabbar_out_weapp = D('Home/Front')->get_config_by_name('open_tabbar_out_weapp');
  52. //$tabbar_out_type = D('Home/Front')->get_config_by_name('tabbar_out_type');
  53. //分享信息
  54. $pintuan_index_share_title = D('Home/Front')->get_config_by_name('pintuan_index_share_title');
  55. $pintuan_index_share_img = D('Home/Front')->get_config_by_name('pintuan_index_share_img');
  56. if(!empty($pintuan_index_share_img)){
  57. $pintuan_index_share_img = tomedia($pintuan_index_share_img);
  58. }
  59. //拼团返利规则
  60. $pintuan_rebate_publish = D('Home/Front')->get_config_by_name('pintuan_rebate_publish');
  61. echo json_encode(
  62. array(
  63. 'code'=>0,
  64. 'pintuan_show_type' => $pintuan_show_type_info,
  65. 'category_list' => $category_list,
  66. 'hide_pintuan_page_windows' => $hide_pintuan_page_windows_info,
  67. 'pintuan_publish' => htmlspecialchars_decode($pintuan_publish_info),
  68. 'pintuan_rebate_publish' => htmlspecialchars_decode($pintuan_rebate_publish),
  69. 'slider_list' => $slider_list,
  70. // 'open_tabbar_out_weapp' => $open_tabbar_out_weapp,
  71. // 'tabbar_out_type' => $tabbar_out_type,
  72. 'pintuan_index_share_title' => $pintuan_index_share_title,
  73. 'pintuan_index_share_img' => $pintuan_index_share_img
  74. )
  75. );
  76. die();
  77. }
  78. //拼团商品首页
  79. public function get_pintuan_list()
  80. {
  81. $_GPC = I('request.');
  82. $head_id = $_GPC['head_id'];
  83. if($head_id == 'undefined') $head_id = '';
  84. $pintuan_model_buy = D('Home/Front')->get_config_by_name('pintuan_model_buy');
  85. if( empty($pintuan_model_buy) || $pintuan_model_buy ==0 )
  86. {
  87. $pintuan_model_buy = 0;
  88. $head_id = '';
  89. }
  90. $pageNum = isset($_GPC['pageNum']) ? intval($_GPC['pageNum']) : 1;
  91. $gid = $_GPC['gid'];
  92. $keyword = $_GPC['keyword'];
  93. $is_random = isset($_GPC['is_random']) ? $_GPC['is_random'] : 0;
  94. $is_index = isset($_GPC['is_index']) ? $_GPC['is_index'] : 0;
  95. $per_page = isset($_GPC['per_page']) ? $_GPC['per_page'] : 10;
  96. if($gid == 'undefined' || $gid =='' || $gid =='null' || $gid ==0)
  97. {
  98. $gid = 0;
  99. }
  100. if( !empty($gid) && $gid > 0)
  101. {
  102. $gids = D('Home/GoodsCategory')->get_index_goods_category($gid,'pintuan','','',1);
  103. $gidArr = array();
  104. $gidArr[] = $gid;
  105. foreach ($gids as $key => $val) {
  106. $gidArr[] = $val['id'];
  107. }
  108. $gid = implode(',', $gidArr);
  109. }
  110. $offset = ($pageNum - 1) * $per_page;
  111. $limit = "{$offset},{$per_page}";
  112. $token = $_GPC['token'];
  113. $weprogram_token = M('lionfish_comshop_weprogram_token')->field('member_id')->where( array('token' => $token ) )->find();
  114. if( empty($weprogram_token) || empty($weprogram_token['member_id']) )
  115. {
  116. }else{
  117. $member_id = $weprogram_token['member_id'];
  118. }
  119. $now_time = time();
  120. $where = " g.grounding =1 and g.type ='pin' ";
  121. if( isset($is_index) && $is_index == 1 )
  122. {
  123. $where .= " and g.is_index_show = 1 ";
  124. $per_page = 20;
  125. }
  126. if( !empty($head_id) && $head_id >0 )
  127. {
  128. $params = array();
  129. $params['uniacid'] = $_W['uniacid'];
  130. $params['head_id'] = $head_id;
  131. if($gid == 0){
  132. $goods_ids_arr = M()->query('SELECT goods_id FROM ' .C('DB_PREFIX'). "lionfish_community_head_goods
  133. WHERE head_id={$head_id} order by id desc ");
  134. } else {
  135. $sql_goods_ids = "select pg.goods_id from ".C('DB_PREFIX')."lionfish_community_head_goods as pg, "
  136. .C('DB_PREFIX')."lionfish_comshop_goods_to_category as g
  137. where pg.goods_id = g.goods_id and g.cate_id in ({$gid}) and pg.head_id = {$head_id} order by pg.id desc ";
  138. $goods_ids_arr = M()->query($sql_goods_ids);
  139. }
  140. $ids_arr = array();
  141. foreach($goods_ids_arr as $val){
  142. $ids_arr[] = $val['goods_id'];
  143. }
  144. if(!empty($keyword)) {
  145. $goods_ids_nolimit_arr = M()->query('SELECT id FROM ' . C('DB_PREFIX') . "lionfish_comshop_goods
  146. WHERE is_all_sale=1 and goodsname like '%{$keyword}%' " );
  147. } else {
  148. if($gid == 0){
  149. $goods_ids_nolimit_arr = M()->query('SELECT id FROM ' . C('DB_PREFIX'). "lionfish_comshop_goods
  150. WHERE is_all_sale=1 " );
  151. } else {
  152. $goods_ids_nolimit_sql = "select pg.id from ".C('DB_PREFIX')."lionfish_comshop_goods as pg,"
  153. .C('DB_PREFIX')."lionfish_comshop_goods_to_category as g
  154. where pg.id = g.goods_id and g.cate_id in ({$gid}) and pg.is_all_sale=1 ";
  155. $goods_ids_nolimit_arr = M()->query($goods_ids_nolimit_sql);
  156. }
  157. }
  158. if( !empty($goods_ids_nolimit_arr) )
  159. {
  160. foreach($goods_ids_nolimit_arr as $val){
  161. $ids_arr[] = $val['id'];
  162. }
  163. }
  164. $ids_str = implode(',',$ids_arr);
  165. if( !empty($ids_str) )
  166. {
  167. $where .= " and g.id in ({$ids_str})";
  168. } else{
  169. $where .= " and 0 ";
  170. }
  171. }else{
  172. if($gid > 0){
  173. $goods_ids_nohead_sql = "select pg.id from ".C('DB_PREFIX')."lionfish_comshop_goods as pg,"
  174. .C('DB_PREFIX')."lionfish_comshop_goods_to_category as g where pg.id = g.goods_id and g.cate_id in ({$gid}) ";
  175. $goods_ids_nohead_arr = M()->query($goods_ids_nohead_sql);
  176. }
  177. $ids_arr = array();
  178. if( !empty($goods_ids_nohead_arr) )
  179. {
  180. foreach($goods_ids_nohead_arr as $val){
  181. $ids_arr[] = $val['id'];
  182. }
  183. }
  184. $ids_str = implode(',',$ids_arr);
  185. if( !empty($ids_str) )
  186. {
  187. $where .= " and g.id in ({$ids_str})";
  188. } else if($gid!=0){
  189. echo json_encode( array('code' => 1) );
  190. die();
  191. }
  192. }
  193. $where .= " and gc.begin_time <={$now_time} and gc.end_time > {$now_time} ";
  194. $where .= " and gc.is_new_buy=0 and gc.is_spike_buy = 0 ";
  195. if($is_random == 1)
  196. {
  197. $community_goods = D('Home/Pingoods')->get_new_community_index_goods($head_id,$gid,'g.*,gc.begin_time,gc.end_time,gc.big_img,gc.is_take_fullreduction,gc.labelname,gc.video ', $where,$offset,$per_page,' rand() ');
  198. }else{
  199. $community_goods = D('Home/Pingoods')->get_new_community_index_goods($head_id,$gid,'g.*,gc.begin_time,gc.end_time,gc.big_img,gc.is_take_fullreduction,gc.labelname,gc.video ', $where,$offset,$per_page);
  200. }
  201. if( !empty($community_goods) )
  202. {
  203. $is_open_fullreduction = D('Home/Front')->get_config_by_name('is_open_fullreduction');
  204. $full_money = D('Home/Front')->get_config_by_name('full_money');
  205. $full_reducemoney = D('Home/Front')->get_config_by_name('full_reducemoney');
  206. $is_open_fullreduction = 0;
  207. $cart= D('Home/Car');
  208. $list = array();
  209. $copy_text_arr = array();
  210. foreach($community_goods as $val)
  211. {
  212. $tmp_data = array();
  213. $tmp_data['actId'] = $val['id'];
  214. $tmp_data['spuName'] = $val['goodsname'];
  215. $tmp_data['spuCanBuyNum'] = $val['total'];
  216. $tmp_data['spuDescribe'] = $val['subtitle'];
  217. $tmp_data['end_time'] = $val['end_time'];
  218. $tmp_data['soldNum'] = $val['seller_count'] + $val['sales'];
  219. $productprice = $val['productprice'];
  220. $tmp_data['marketPrice'] = explode('.', $productprice);
  221. if( !empty($val['big_img']) )
  222. {
  223. $tmp_data['bigImg'] = tomedia($val['big_img']);
  224. }
  225. $good_image = D('Home/Pingoods')->get_goods_images($val['id']);
  226. if( !empty($good_image) )
  227. {
  228. $tmp_data['skuImage'] = tomedia($good_image['image']);
  229. }
  230. $price_arr = D('Home/Pingoods')->get_goods_price($val['id'], $member_id);
  231. $price = $price_arr['price'];
  232. if( $pageNum == 1 )
  233. {
  234. $copy_text_arr[] = array('goods_name' => $val['goodsname'], 'price' => $price);
  235. }
  236. $tmp_data['actPrice'] = explode('.', $price);
  237. $tmp_data['danPrice'] = $price_arr['danprice'];
  238. $tmp_data['skuList']= D('Home/Pingoods')->get_goods_options($val['id'],$member_id);
  239. if( !empty($tmp_data['skuList']) )
  240. {
  241. $tmp_data['car_count'] = 0;
  242. }else{
  243. $car_count = 0;
  244. if( empty($car_count) )
  245. {
  246. $tmp_data['car_count'] = 0;
  247. }else{
  248. $tmp_data['car_count'] = $car_count;
  249. }
  250. }
  251. if($is_open_fullreduction == 0)
  252. {
  253. $tmp_data['is_take_fullreduction'] = 0;
  254. }else if($is_open_fullreduction == 1){
  255. $tmp_data['is_take_fullreduction'] = $val['is_take_fullreduction'];
  256. }
  257. // 商品角标
  258. $label_id = unserialize($val['labelname']);
  259. if($label_id){
  260. $label_info = D('Home/Pingoods')->get_goods_tags($label_id);
  261. if($label_info){
  262. if($label_info['type'] == 1){
  263. $label_info['tagcontent'] = tomedia($label_info['tagcontent']);
  264. } else {
  265. $label_info['len'] = mb_strlen($label_info['tagcontent'], 'utf-8');
  266. }
  267. }
  268. $tmp_data['label_info'] = $label_info;
  269. }
  270. $tmp_data['is_video'] = empty($val['video']) ? false : true;
  271. //根据商品信息查询拼团信息 $val['id'];
  272. $good_pin_list = M('lionfish_comshop_good_pin')->where( array('goods_id' => $val['id'] ) )->find();
  273. //拼团价格
  274. //$tmp_data['pinprice'] = $price ;
  275. //拼团人数
  276. $tmp_data['pin_count'] =$good_pin_list['pin_count'];
  277. //拼团时间
  278. $tmp_data['pin_hour'] =$good_pin_list['pin_hour'];
  279. //拼团开始时间
  280. $tmp_data['pin_begin_time'] =$good_pin_list['begin_time'];
  281. //拼团结束时间
  282. $tmp_data['pin_end_time'] =$good_pin_list['end_time'];
  283. $list[] = $tmp_data;
  284. }
  285. $is_show_list_timer = D('Home/Front')->get_config_by_name('is_show_list_timer');
  286. $pintuan_index_coming_img = D('Home/Front')->get_config_by_name('pintuan_index_coming_img');
  287. $pintuan_index_show = D('Home/Front')->get_config_by_name('pintuan_index_show');
  288. if( !isset($pintuan_index_show) )
  289. {
  290. $pintuan_index_show = 0;
  291. }
  292. $pintuan_index_show_listtop = D('Home/Front')->get_config_by_name('pintuan_index_show_listtop');
  293. if( !isset($pintuan_index_show_listtop) )
  294. {
  295. $pintuan_index_show_listtop = 0;
  296. }
  297. if( isset($pintuan_index_coming_img) && !empty($pintuan_index_coming_img) )
  298. {
  299. $pintuan_index_coming_img = tomedia($pintuan_index_coming_img);
  300. }
  301. $pintuan_show_type = D('Home/Front')->get_config_by_name('pintuan_show_type');
  302. //pintuan_index_coming_img
  303. echo json_encode(array('code' => 0,'pintuan_model_buy' => $pintuan_model_buy,'pintuan_index_show' => $pintuan_index_show,'pintuan_index_coming_img' => $pintuan_index_coming_img, 'list' => $list ,'copy_text_arr' => $copy_text_arr, 'cur_time' => time() ,'full_reducemoney' => $full_reducemoney,'full_money' => $full_money,'is_open_fullreduction' => $is_open_fullreduction,'is_show_list_timer'=>$is_show_list_timer , 'pintuan_index_show_listtop'=>$pintuan_index_show_listtop, 'pintuan_show_type'=>$pintuan_show_type ));
  304. die();
  305. }else{
  306. echo json_encode( array('code' => 1) );
  307. die();
  308. }
  309. }
  310. //猜你喜欢
  311. public function pintuan_like_list()
  312. {
  313. $_GPC = I('request.');
  314. //猜你喜欢开关
  315. $is_show_order_guess_like= D('Home/Front')->get_config_by_name('is_open_pipntuan_like' );
  316. if( empty($is_show_order_guess_like) )
  317. {
  318. $is_show_order_guess_like = 0;
  319. }
  320. $community_id = $_GPC['community_id'];
  321. //community_id
  322. //购买的商品id
  323. $order_list = M('lionfish_comshop_order_goods')->field('goods_id')->where( array('order_id' =>$_GPC["order_id"] ) )->find();
  324. $now_time = time();
  325. $pintuan_model_buy = D('Home/Front')->get_config_by_name('pintuan_model_buy');
  326. if( empty($pintuan_model_buy) )
  327. {
  328. $pintuan_model_buy = 1;
  329. }
  330. if(!empty($community_id) && $pintuan_model_buy == 1){
  331. //有社区
  332. $head_info = M('lionfish_community_head')->field('id')->where( array('id' => $community_id ) )->find();
  333. //团长商品和全部可售
  334. //lionfish_community_head_goods
  335. $head_goods = M('lionfish_community_head_goods')->field('goods_id')->where( array('head_id' => $head_info['id'] ) )->select();
  336. foreach ($head_goods as $hg) {
  337. $hg = join(",",$hg);
  338. $temp_array[] = $hg;
  339. }
  340. $all_goods = M('lionfish_comshop_goods')->field('id')->where( array('type' => 'pin', 'is_all_sale' => 1) )->select();
  341. if( !empty($all_goods) )
  342. {
  343. foreach( $all_goods as $vv )
  344. {
  345. $temp_array[] = $vv['id'];
  346. }
  347. }
  348. //团长商品id
  349. $goods_id_list = implode(",", $temp_array);
  350. $sql_likegoods = "select g.*,gc.end_time,gc.begin_time from ".C('DB_PREFIX')."lionfish_comshop_goods as g,".C('DB_PREFIX')."lionfish_comshop_good_common as gc
  351. where g.id = gc.goods_id and gc.begin_time <={$now_time} and gc.end_time > {$now_time} and g.grounding =1 and ( g.id in (".$goods_id_list.") and g.id <> ".$order_list['goods_id']." ) and g.type = 'pin' order by rand() limit 6";
  352. }else{
  353. //猜你喜欢 随机6条数据
  354. $sql_likegoods = "select g.*,gc.end_time,gc.begin_time from ".C('DB_PREFIX')."lionfish_comshop_goods as g,".C('DB_PREFIX')."lionfish_comshop_good_common as gc
  355. where gc.begin_time <={$now_time} and gc.end_time > {$now_time} and g.id=gc.goods_id and g.id <> ".$order_list['goods_id']." and g.grounding =1 and g.type = 'pin' order by rand() limit 6";
  356. }
  357. $likegoods_list = M()->query($sql_likegoods);
  358. $list = array();
  359. if( !empty($likegoods_list) )
  360. {
  361. foreach($likegoods_list as $val)
  362. {
  363. $tmp_data = array();
  364. $tmp_data['actId'] = $val['id'];
  365. $goodsname = htmlspecialchars_decode($val['goodsname']);
  366. $tmp_data['spuName'] = $goodsname;
  367. $tmp_data['spuCanBuyNum'] = $val['total'];
  368. $tmp_data['spuDescribe'] = $val['subtitle'];
  369. $tmp_data['end_time'] = $val['end_time'];
  370. $tmp_data['soldNum'] = $val['seller_count'] + $val['sales'];
  371. $productprice = $val['productprice'];
  372. $tmp_data['marketPrice'] = explode('.', $productprice);
  373. if( !empty($val['big_img']) )
  374. {
  375. $tmp_data['bigImg'] = tomedia($val['big_img']);
  376. }
  377. $good_image = D('Home/Pingoods')->get_goods_images($val['id']);
  378. if( !empty($good_image) )
  379. {
  380. $tmp_data['skuImage'] = tomedia($good_image['image']);
  381. }
  382. $price_arr = D('Home/Pingoods')->get_goods_price($val['id'], $member_id);
  383. $price = $price_arr['price'];
  384. if( $pageNum == 1 )
  385. {
  386. $copy_text_arr[] = array('goods_name' => $val['goodsname'], 'price' => $price);
  387. }
  388. $tmp_data['actPrice'] = explode('.', $price);
  389. $tmp_data['danPrice'] = $price_arr['danprice'];
  390. $tmp_data['skuList']= D('Home/Pingoods')->get_goods_options($val['id'],$member_id);
  391. if( !empty($tmp_data['skuList']) )
  392. {
  393. $tmp_data['car_count'] = 0;
  394. }else{
  395. $car_count = 0;
  396. if( empty($car_count) )
  397. {
  398. $tmp_data['car_count'] = 0;
  399. }else{
  400. $tmp_data['car_count'] = $car_count;
  401. }
  402. }
  403. if($is_open_fullreduction == 0)
  404. {
  405. $tmp_data['is_take_fullreduction'] = 0;
  406. }else if($is_open_fullreduction == 1){
  407. $tmp_data['is_take_fullreduction'] = $val['is_take_fullreduction'];
  408. }
  409. // 商品角标
  410. $label_id = unserialize($val['labelname']);
  411. if($label_id){
  412. $label_info = D('Home/Pingoods')->get_goods_tags($label_id);
  413. if($label_info){
  414. if($label_info['type'] == 1){
  415. $label_info['tagcontent'] = tomedia($label_info['tagcontent']);
  416. } else {
  417. $label_info['len'] = mb_strlen($label_info['tagcontent'], 'utf-8');
  418. }
  419. }
  420. $tmp_data['label_info'] = $label_info;
  421. }
  422. $tmp_data['is_video'] = empty($val['video']) ? false : true;
  423. //根据商品信息查询拼团信息
  424. $good_pin_list = M('lionfish_comshop_good_pin')->where( array('goods_id' => $val['id'] ) )->find();
  425. //拼团价格
  426. //拼团人数
  427. $tmp_data['pin_count'] =$good_pin_list['pin_count'];
  428. //拼团时间
  429. $tmp_data['pin_hour'] =$good_pin_list['pin_hour'];
  430. //拼团开始时间
  431. $tmp_data['pin_begin_time'] =$good_pin_list['begin_time'];
  432. //拼团结束时间
  433. $tmp_data['pin_end_time'] =$good_pin_list['end_time'];
  434. $list[] = $tmp_data;
  435. }
  436. }
  437. echo json_encode(array('code'=>0,
  438. 'is_show_order_guess_like' => $is_show_order_guess_like,
  439. 'list' => $list,
  440. )
  441. );
  442. die();
  443. }
  444. /**
  445. public function test(){
  446. $pin_id = 688;
  447. //拼团信息
  448. $pin_info = M('lionfish_comshop_pin')->where( array('pin_id' => $pin_id ) )->find();
  449. $pin_order_sql = "select po.order_id,og.order_goods_id,m.openid,m.we_openid,m.member_id,o.type,o.head_id,o.from_type,o.order_num_alias,o.delivery,og.name,og.price,og.store_id
  450. from ".C('DB_PREFIX'). "lionfish_comshop_pin_order as po,".C('DB_PREFIX'). "lionfish_comshop_order as o,
  451. ".C('DB_PREFIX'). "lionfish_comshop_order_goods as og,".C('DB_PREFIX'). "lionfish_comshop_member as m
  452. where po.pin_id = ".$pin_id." 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 ";
  453. $pin_order_arr = M()->query($pin_order_sql);
  454. //拼团返利订单设置是否发货
  455. $pin_order_arr = D('Home/Pin')->setPintuanRebateOrderSuccess($pin_info, $pin_order_arr);
  456. print_r($pin_order_arr);
  457. }**/
  458. }