|
@@ -232,7 +232,12 @@ public class AppPayController extends BaseController {
|
|
|
throw new CommonBaseException(ResultCodeEnum.D101 , "更新订单为取消成功状态失败");
|
|
|
}
|
|
|
log.info("更新订单[{}]的支付状态为退款成功" , dbOrder.getId());
|
|
|
- TmDesk tmDesk = tmDeskService.getById(dbOrder.getDeskId());
|
|
|
+ /**
|
|
|
+ * 这里不再维护桌子的互斥变量了,因为一个变量只能维护一把锁,一个桌子一天可以有两个时间段被预定
|
|
|
+ * 一把锁无法锁住所有,这里通过使用串化的思想,一个桌子只要有一个人进入预定流程,则直接认为卡住位置了
|
|
|
+ * 其他人无法进入预定流程
|
|
|
+ */
|
|
|
+ /*TmDesk tmDesk = tmDeskService.getById(dbOrder.getDeskId());
|
|
|
if(null != tmDesk){
|
|
|
if(null == tmDesk.getStatus() || tmDesk.getStatus().compareTo(1) == 0){
|
|
|
tmDesk.setStatus(0);
|
|
@@ -241,33 +246,11 @@ public class AppPayController extends BaseController {
|
|
|
}
|
|
|
log.info("更新桌子[{}]的状态为可预订" , tmDesk.getId());
|
|
|
}
|
|
|
- }
|
|
|
+ }*/
|
|
|
}
|
|
|
}
|
|
|
return Result.failure("退款处理中," + return_msg);
|
|
|
} else if (return_code.equalsIgnoreCase("SUCCESS")) {
|
|
|
- String refundStatus = "";
|
|
|
- //TODO:改成jdk8的形式
|
|
|
- for ( String key : result.keySet()) {
|
|
|
- if(key.startsWith("refund_status_")){
|
|
|
- refundStatus = (String) result.get(key);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- if("SUCCESS".equals(refundStatus)){
|
|
|
- //退款成功,更新状态
|
|
|
-
|
|
|
- return Result.success( "退款成功");
|
|
|
- }else if("REFUNDCLOSE".equals(refundStatus)){
|
|
|
- log.info("微信支付退款查询,微信返回退款关闭");
|
|
|
- //退款关闭
|
|
|
- }else if("PROCESSING".equals(refundStatus)){
|
|
|
- //退款处理中
|
|
|
- log.info("微信支付退款查询,微信返回退款处理中");
|
|
|
- }else if("CHANGE".equals(refundStatus)){
|
|
|
- //退款异常
|
|
|
- log.info("微信支付退款查询,微信返回退款异常");
|
|
|
- }
|
|
|
boolean needUpdate = false;
|
|
|
if(null != dbOrder.getStatus() && OrderStatusEnum.ORDER_CANCEL.getStatus().compareTo(dbOrder.getStatus()) != 0){
|
|
|
needUpdate = true;
|
|
@@ -283,7 +266,12 @@ public class AppPayController extends BaseController {
|
|
|
throw new CommonBaseException(ResultCodeEnum.D101 , "更新订单为取消成功状态失败");
|
|
|
}
|
|
|
log.info("更新订单[{}]的支付状态为退款成功" , dbOrder.getId());
|
|
|
- TmDesk tmDesk = tmDeskService.getById(dbOrder.getDeskId());
|
|
|
+ /**
|
|
|
+ * 这里不再维护桌子的互斥变量了,因为一个变量只能维护一把锁,一个桌子一天可以有两个时间段被预定
|
|
|
+ * 一把锁无法锁住所有,这里通过使用串化的思想,一个桌子只要有一个人进入预定流程,则直接认为卡住位置了
|
|
|
+ * 其他人无法进入预定流程
|
|
|
+ */
|
|
|
+ /*TmDesk tmDesk = tmDeskService.getById(dbOrder.getDeskId());
|
|
|
if(null != tmDesk){
|
|
|
if(null == tmDesk.getStatus() || tmDesk.getStatus().compareTo(1) == 0){
|
|
|
tmDesk.setStatus(0);
|
|
@@ -292,7 +280,7 @@ public class AppPayController extends BaseController {
|
|
|
}
|
|
|
log.info("更新桌子[{}]的状态为可预订" , tmDesk.getId());
|
|
|
}
|
|
|
- }
|
|
|
+ }*/
|
|
|
}
|
|
|
}
|
|
|
return Result.success( "退款成功");
|
|
@@ -364,7 +352,12 @@ public class AppPayController extends BaseController {
|
|
|
//更新订单的支付状态为已支付,同时跟新订单的状态为预定成功 TODO:这里二期需要改成:审核中
|
|
|
tmOrderService.updateOrderStatusAndPayStatus(orderDetail ,
|
|
|
OrderPayStatusEnum.PAY_SUCCESS.getStatus() , OrderStatusEnum.ORDER_SUCCESS.getStatus());
|
|
|
- if(StringUtils.isNotBlank(orderDetail.getDeskId())){
|
|
|
+ /**
|
|
|
+ * 这里不再维护桌子的互斥变量了,因为一个变量只能维护一把锁,一个桌子一天可以有两个时间段被预定
|
|
|
+ * 一把锁无法锁住所有,这里通过使用串化的思想,一个桌子只要有一个人进入预定流程,则直接认为卡住位置了
|
|
|
+ * 其他人无法进入预定流程
|
|
|
+ */
|
|
|
+ /*if(StringUtils.isNotBlank(orderDetail.getDeskId())){
|
|
|
//上锁,抢锁成功才可以
|
|
|
TmDesk tmDesk = tmDeskService.getBySelectForUpdate(orderDetail.getDeskId());
|
|
|
if(null != tmDesk){
|
|
@@ -380,7 +373,7 @@ public class AppPayController extends BaseController {
|
|
|
log.info("抢锁失败,订单[{}]无法预定桌子:[{}]" , orderDetail.getOrderNo() , orderDetail.getDeskName());
|
|
|
throw new CommonBaseException(ResultCodeEnum.D101 , "抢锁失败");
|
|
|
}
|
|
|
- }
|
|
|
+ }*/
|
|
|
return Result.success("支付成功");
|
|
|
} else if ("USERPAYING".equals(trade_state)) {
|
|
|
//在途,正在支付中,则递归调用3次
|
|
@@ -459,7 +452,13 @@ public class AppPayController extends BaseController {
|
|
|
//TODO:收归重复代码
|
|
|
tmOrderService.updateOrderStatusAndPayStatus(dbOrder ,
|
|
|
OrderPayStatusEnum.PAY_SUCCESS.getStatus() , OrderStatusEnum.ORDER_SUCCESS.getStatus());
|
|
|
- if(StringUtils.isNotBlank(dbOrder.getDeskId())){
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 这里不再维护桌子的互斥变量了,因为一个变量只能维护一把锁,一个桌子一天可以有两个时间段被预定
|
|
|
+ * 一把锁无法锁住所有,这里通过使用串化的思想,一个桌子只要有一个人进入预定流程,则直接认为卡住位置了
|
|
|
+ * 其他人无法进入预定流程
|
|
|
+ */
|
|
|
+ /*if(StringUtils.isNotBlank(dbOrder.getDeskId())){
|
|
|
//上锁,抢锁成功才可以
|
|
|
TmDesk tmDesk = tmDeskService.getBySelectForUpdate(dbOrder.getDeskId());
|
|
|
if(null != tmDesk){
|
|
@@ -474,7 +473,7 @@ public class AppPayController extends BaseController {
|
|
|
log.info("抢锁失败,订单[{}]无法预定桌子:[{}]" , dbOrder.getOrderNo() , dbOrder.getDeskName());
|
|
|
throw new CommonBaseException(ResultCodeEnum.D101 , "抢锁失败");
|
|
|
}
|
|
|
- }
|
|
|
+ }*/
|
|
|
}
|
|
|
|
|
|
response.getWriter().write(DataUtils.setXml("SUCCESS", "OK"));
|