33import java .text .DecimalFormat ;
44import java .util .ArrayList ;
55import java .util .Calendar ;
6- import java .util .Collection ;
76import java .util .Date ;
87import java .util .HashMap ;
9- import java .util .Iterator ;
108import java .util .List ;
11- import java .util .ListIterator ;
129import java .util .Map ;
1310
11+ import javax .servlet .http .HttpServletRequest ;
12+
1413import org .slf4j .Logger ;
1514import org .slf4j .LoggerFactory ;
1615import org .springframework .beans .factory .annotation .Autowired ;
3433import com .changyu .foryou .model .SmallOrder ;
3534import com .changyu .foryou .model .SuperAdminOrder ;
3635import com .changyu .foryou .model .TogetherOrder ;
36+ import com .changyu .foryou .payment .ChargeInterface ;
3737import com .changyu .foryou .service .CampusService ;
3838import com .changyu .foryou .service .FoodService ;
3939import com .changyu .foryou .service .OrderService ;
@@ -504,21 +504,21 @@ public void setOrderService(OrderService orderService) {
504504 public @ ResponseBody Map <String , Object > changeOrderStatus2Buy (
505505 @ RequestParam String phoneId , @ RequestParam String orderId ,
506506 @ RequestParam String rank , String reserveTime , String message ,@ RequestParam Short payWay ,
507- @ RequestParam Float totalPrice ,Integer preferentialsId ) {
507+ @ RequestParam Float totalPrice ,Integer preferentialsId , HttpServletRequest request ) {
508508 Map <String , Object > map = new HashMap <String , Object >();
509509 Map <String , Object > paramMap = new HashMap <String , Object >();
510510
511511 try {
512512 Calendar calendar = Calendar .getInstance ();
513513
514- String [] orderString = orderId .split ("," );
514+ String [] orderString = orderId .split ("," ); //传过来的orderId是一个以逗号隔开d字符串
515515 int flag = 0 ;
516516 String togetherId = phoneId + String .valueOf (new Date ().getTime ());
517517
518518 paramMap .put ("orderId" ,orderString [0 ]);
519519 paramMap .put ("phoneId" ,phoneId );
520520 Campus campus =campusService .getCampus (paramMap ); //根据订单获取该校区的详细情况
521-
521+ final Integer campusIdForPush = campus . getCampusId ();
522522 //判断该校区是否正在营业
523523 if (campus .getStatus ()==0 ){
524524 map .put (Constants .STATUS , Constants .FAILURE );
@@ -562,7 +562,7 @@ public void setOrderService(OrderService orderService) {
562562 return map ;
563563 }
564564
565- //写入单价操作
565+ //写入单价操作
566566 for (String id : orderString ) {
567567 float price =(float ) 0.0 ;
568568 paramMap .put ("orderId" ,id );
@@ -587,10 +587,19 @@ public void setOrderService(OrderService orderService) {
587587 }
588588 }
589589
590+ String channel ;
591+ if (payWay ==1 ){
592+ channel ="alipay" ;
593+ }else {
594+ channel ="wx" ;
595+ }
590596 DecimalFormat df = new DecimalFormat ("0.0" );
591597 if (flag != -1 && flag != 0 ) {
592598 map .put (Constants .STATUS , Constants .SUCCESS );
593599 map .put (Constants .MESSAGE , "下单成功,即将开始配送!" );
600+
601+ String clientIp =getIpAddr (request );
602+ map .put ("charge" , ChargeInterface .charge (channel ,togetherId ,(int )(totalPrice *100 ),clientIp ));
594603 map .put ("totalPrice" ,df .format (totalPrice ));
595604
596605 // 开启线程去访问极光推送
@@ -603,8 +612,8 @@ public void setOrderService(OrderService orderService) {
603612 //pushService.sendPushByTag("0","一笔新的订单已经到达,请前往选单中查看,并尽早分派配送员进行配送。For优。", 1);
604613
605614 Map <String , Object > paramterMap =new HashMap <String ,Object >();
606- List < String >
607- superPhones =userService .getAllSuperAdminPhone (paramterMap );
615+ paramterMap . put ( "campusId" , campusIdForPush );
616+ List < String > superPhones =userService .getAllSuperAdminPhone (paramterMap );
608617 for (String phone :superPhones ){
609618
610619 //推送
@@ -1312,4 +1321,25 @@ public Map<String, Object> getBigOrderById(@RequestParam String togetherId) {
13121321 resultMap .put (Constants .MESSAGE ,"获取成功" );
13131322 return resultMap ;
13141323 }
1324+
1325+ //获取客户端ip
1326+ public String getIpAddr (HttpServletRequest request ){
1327+ String ip = request .getHeader ("x-forwarded-for" );
1328+ if (ip == null || ip .length () == 0 || "unknown" .equalsIgnoreCase (ip )) {
1329+ ip = request .getHeader ("Proxy-Client-IP" );
1330+ }
1331+ if (ip == null || ip .length () == 0 || "unknown" .equalsIgnoreCase (ip )) {
1332+ ip = request .getHeader ("WL-Proxy-Client-IP" );
1333+ }
1334+ if (ip == null || ip .length () == 0 || "unknown" .equalsIgnoreCase (ip )) {
1335+ ip = request .getHeader ("HTTP_CLIENT_IP" );
1336+ }
1337+ if (ip == null || ip .length () == 0 || "unknown" .equalsIgnoreCase (ip )) {
1338+ ip = request .getHeader ("HTTP_X_FORWARDED_FOR" );
1339+ }
1340+ if (ip == null || ip .length () == 0 || "unknown" .equalsIgnoreCase (ip )) {
1341+ ip = request .getRemoteAddr ();
1342+ }
1343+ return ip ;
1344+ }
13151345}
0 commit comments