Skip to content

Commit 2d21a7d

Browse files
author
xiaowei
committed
update pay
1 parent 9d6704c commit 2d21a7d

4 files changed

Lines changed: 63 additions & 27 deletions

File tree

src/main/java/com/changyu/foryou/controller/OrderController.java

Lines changed: 39 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,13 @@
33
import java.text.DecimalFormat;
44
import java.util.ArrayList;
55
import java.util.Calendar;
6-
import java.util.Collection;
76
import java.util.Date;
87
import java.util.HashMap;
9-
import java.util.Iterator;
108
import java.util.List;
11-
import java.util.ListIterator;
129
import java.util.Map;
1310

11+
import javax.servlet.http.HttpServletRequest;
12+
1413
import org.slf4j.Logger;
1514
import org.slf4j.LoggerFactory;
1615
import org.springframework.beans.factory.annotation.Autowired;
@@ -34,6 +33,7 @@
3433
import com.changyu.foryou.model.SmallOrder;
3534
import com.changyu.foryou.model.SuperAdminOrder;
3635
import com.changyu.foryou.model.TogetherOrder;
36+
import com.changyu.foryou.payment.ChargeInterface;
3737
import com.changyu.foryou.service.CampusService;
3838
import com.changyu.foryou.service.FoodService;
3939
import 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
}

src/main/java/com/changyu/foryou/mapping/UsersMapper.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,13 +272,14 @@
272272
where together_id=#{togetherId,jdbcType=VARCHAR}
273273
</select>
274274

275-
<!-- 获取所有的超级管理员 -->
275+
<!-- 获取对应校区所有的超级管理员 -->
276276
<select id="getAllSuperAdminPhone" resultType="String"
277277
parameterType="map">
278278
select
279279
phone
280280
from users
281281
where type=0
282+
and campus_id=#{campusId,jdbcType=INTEGER}
282283
</select>
283284

284285
<!-- 获取用户token,通过手机号 -->

src/main/java/com/changyu/foryou/payment/ChargeInterface.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,17 @@ public class ChargeInterface {
1818
*/
1919
public static String appId = Constants.appId;
2020

21-
public static Charge charge(String orderId,Integer amount) {
21+
public static Charge charge(String channel,String orderId,Integer amount,String clientIp) {
2222
Pingpp.apiKey = apiKey;
2323
Charge charge = null;
2424
Map<String, Object> chargeMap = new HashMap<String, Object>();
2525
chargeMap.put("amount", amount); //金额,以分为单位
2626
chargeMap.put("currency", "cny");
27-
chargeMap.put("subject", "Your Subject"); //商品的标题
28-
chargeMap.put("body", "Your Body"); //商品的描述
27+
chargeMap.put("subject", "For优商品"); //商品的标题
28+
chargeMap.put("body", "For优商品值得信赖"); //商品的描述
2929
chargeMap.put("order_no", orderId); //订单号 唯一
30-
chargeMap.put("channel", "alipay"); //支付渠道
31-
chargeMap.put("client_ip", "127.0.0.1"); //发起支付请求的客户端ip
30+
chargeMap.put("channel",channel); //支付渠道
31+
chargeMap.put("client_ip", clientIp); //发起支付请求的客户端ip
3232
Map<String, String> app = new HashMap<String, String>();
3333
app.put("id",appId);
3434
chargeMap.put("app", app);

src/test/java/com/changyu/test/orderTest.java

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import com.changyu.foryou.model.Order;
2222
import com.changyu.foryou.model.SmallOrder;
2323
import com.changyu.foryou.model.TogetherOrder;
24+
import com.changyu.foryou.payment.ChargeInterface;
2425
import com.changyu.foryou.service.CampusService;
2526
import com.changyu.foryou.service.FoodService;
2627
import com.changyu.foryou.service.OrderService;
@@ -166,7 +167,7 @@ public void changeOrderStatus2Buy(){
166167
Map<String, Object> map = new HashMap<String, Object>();
167168
Map<String, Object> paramMap = new HashMap<String, Object>();
168169

169-
String orderId="1439889845846";
170+
String orderId="1429972027467";
170171
String phoneId="18896554880";
171172
String rank="1427691760293";
172173
String reserveTime="立即送达";
@@ -186,6 +187,7 @@ public void changeOrderStatus2Buy(){
186187
paramMap.put("phoneId",phoneId);
187188
Campus campus=campusService.getCampus(paramMap);
188189

190+
final Integer campusIdForPush=campus.getCampusId();
189191
LOGGER.debug("campus is"+JSON.toJSONString(campus));
190192
//判断该校区是否正在营业
191193
if(campus.getStatus()==0){
@@ -247,36 +249,39 @@ public void changeOrderStatus2Buy(){
247249
paramMap.put("campusId",campus.getCampusId());
248250
int flag2=foodService.changeFoodCount(paramMap); // 增加销量,减少存货
249251
LOGGER.info(flag2);
250-
if (flag == 0 || flag == -1) {
252+
if (flag == -1) {
251253
break;
252254
}
253255
}
254256

255-
if (flag != -1 && flag != 0) {
257+
LOGGER.info("flag is"+flag);
258+
if (flag != -1) {
256259
map.put(Constants.STATUS, Constants.SUCCESS);
257260
map.put(Constants.MESSAGE, "下单成功,即将开始配送!");
258-
261+
//String clientIp=getIpAddr(request);
262+
map.put("charge", ChargeInterface.charge("alipay",togetherId,(int)(totalPrice*100),"127.0.0.1"));
259263
// 开启线程去访问极光推送
260-
pushService.sendPush("18896554880","一笔新的订单已经到达,请前往选单中查看,并尽早分派配送员进行配送。for优。", 1);
264+
//pushService.sendPush("18896554880","一笔新的订单已经到达,请前往选单中查看,并尽早分派配送员进行配送。for优。", 1);
261265
new Thread(new Runnable() {
262266

263267
@Override public void run() { //向超级管理员推送,让其分发订单
264268

265269
//推送
266270
//pushService.sendPushByTag("0","一笔新的订单已经到达,请前往选单中查看,并尽早分派配送员进行配送。米奇零点。", 1);
267271

268-
//Map<String, Object> paramterMap=new HashMap<String,Object>();
269-
//List<String>
270-
//superPhones=userService.getAllSuperAdminPhone(paramterMap);
271-
//for(String phone:superPhones){
272+
Map<String, Object> paramterMap=new HashMap<String,Object>();
273+
paramterMap.put("campusId",campusIdForPush);
274+
LOGGER.info(JSON.toJSONString(paramterMap));
275+
List<String> superPhones=userService.getAllSuperAdminPhone(paramterMap);
276+
LOGGER.info("超级管理员手机号为:"+JSON.toJSONString(superPhones));
277+
for(String phone:superPhones){
272278

273279
//推送
274-
//pushService.sendPush("18896554880","一笔新的订单已经到达,请前往选单中查看,并尽早分派配送员进行配送。for优。", 1);
275-
//}
280+
pushService.sendPush("18896554880","一笔新的订单已经到达,请前往选单中查看,并尽早分派配送员进行配送。for优。", 1);
281+
}
276282
}
277283
}).start();
278284

279-
280285
} else {
281286
map.put(Constants.STATUS, Constants.FAILURE);
282287
map.put(Constants.MESSAGE, "下单失败,请重新开始下单");

0 commit comments

Comments
 (0)