parent
70fce1b0c1
commit
c29f27225e
File diff suppressed because one or more lines are too long
@ -0,0 +1,108 @@ |
|||||||
|
package com.cweb.controller; |
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject; |
||||||
|
import com.hai.common.security.AESEncodeUtil; |
||||||
|
import com.hai.config.CommonSysConst; |
||||||
|
import com.hai.config.WxOrderConfig; |
||||||
|
import com.hai.dao.HighGasOrderRefundMapper; |
||||||
|
import com.hai.entity.HighChildOrder; |
||||||
|
import com.hai.entity.HighGasOrderRefund; |
||||||
|
import com.hai.entity.HighOrder; |
||||||
|
import com.hai.model.OrderRefundModel; |
||||||
|
import com.hai.service.HighOrderService; |
||||||
|
import io.swagger.annotations.Api; |
||||||
|
import io.swagger.annotations.ApiOperation; |
||||||
|
import org.slf4j.Logger; |
||||||
|
import org.slf4j.LoggerFactory; |
||||||
|
import org.springframework.stereotype.Controller; |
||||||
|
import org.springframework.web.bind.annotation.RequestBody; |
||||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||||
|
import org.springframework.web.bind.annotation.RequestMethod; |
||||||
|
import org.springframework.web.bind.annotation.ResponseBody; |
||||||
|
|
||||||
|
import javax.annotation.Resource; |
||||||
|
import javax.servlet.http.HttpServletRequest; |
||||||
|
import javax.servlet.http.HttpServletResponse; |
||||||
|
import java.io.PrintWriter; |
||||||
|
import java.util.Date; |
||||||
|
|
||||||
|
@Controller |
||||||
|
@RequestMapping(value = "/qianzhu") |
||||||
|
@Api(value = "千猪回调") |
||||||
|
public class QzOrderController { |
||||||
|
|
||||||
|
private static Logger log = LoggerFactory.getLogger(QzOrderController.class); |
||||||
|
|
||||||
|
@Resource |
||||||
|
private HighOrderService highOrderService; |
||||||
|
|
||||||
|
|
||||||
|
@RequestMapping(value = "/orderNotify", method = RequestMethod.POST) |
||||||
|
@ApiOperation(value = "千猪订单回调") |
||||||
|
public void orderNotify(@RequestBody String reqBodyStr,HttpServletRequest request, HttpServletResponse response) { |
||||||
|
try { |
||||||
|
log.info(reqBodyStr); |
||||||
|
JSONObject dataObject = JSONObject.parseObject(reqBodyStr, JSONObject.class); |
||||||
|
HighOrder order = highOrderService.getOrderByOrderNo(dataObject.getString("orderNo")); |
||||||
|
if (order != null) { |
||||||
|
JSONObject data = dataObject.getJSONObject("data"); |
||||||
|
for (HighChildOrder childOrder : order.getHighChildOrderList()) { |
||||||
|
// 4:KFC肯德基 5:电影票
|
||||||
|
if (childOrder.getGoodsType() == 4) { |
||||||
|
// 10:已出票 -5:已取消 -3:部分取消 -10:退款
|
||||||
|
if (dataObject.getInteger("eventType") == -5) { |
||||||
|
// 微信退款
|
||||||
|
OrderRefundModel orderRefundModel = WxOrderConfig.orderToRefund(order.getPaySerialNo(), data.getBigDecimal("cancelReason"), data.getBigDecimal("cancelReason")); |
||||||
|
if(orderRefundModel.getResult_code().equals("SUCCESS")) { |
||||||
|
childOrder.setChildOrderStatus(5); |
||||||
|
order.setOrderStatus(5); |
||||||
|
order.setCancelTime(new Date()); |
||||||
|
order.setCancelRemarks(data.getString("cancelReason")); |
||||||
|
highOrderService.updateOrderDetail(order); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (dataObject.getInteger("eventType") == -10) { |
||||||
|
// 微信退款
|
||||||
|
OrderRefundModel orderRefundModel = WxOrderConfig.orderToRefund(order.getPaySerialNo(), data.getBigDecimal("refundAmount"), data.getBigDecimal("refundAmount")); |
||||||
|
if(orderRefundModel.getResult_code().equals("SUCCESS")) { |
||||||
|
childOrder.setChildOrderStatus(4); |
||||||
|
order.setOrderStatus(4); |
||||||
|
//order.setRefundTime(new Date());
|
||||||
|
//order.setRefundPrice(data.getBigDecimal("refundAmount"));
|
||||||
|
highOrderService.updateOrderDetail(order); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (childOrder.getGoodsType() == 5) { |
||||||
|
|
||||||
|
// 5:已支付(默认不发) 10:已出票 -5:已取消 15:交易成功
|
||||||
|
if (dataObject.getInteger("eventType") == -5) { |
||||||
|
childOrder.setChildOrderStatus(5); |
||||||
|
order.setOrderStatus(5); |
||||||
|
order.setCancelTime(new Date()); |
||||||
|
order.setCancelRemarks(data.getString("cancelReason")); |
||||||
|
} |
||||||
|
|
||||||
|
if (dataObject.getInteger("eventType") == 15) { |
||||||
|
childOrder.setChildOrderStatus(3); |
||||||
|
order.setOrderStatus(3); |
||||||
|
order.setFinishTime(new Date()); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
highOrderService.updateOrder(order); |
||||||
|
|
||||||
|
response.setCharacterEncoding("UTF-8"); |
||||||
|
response.setContentType("text/html;charset=utf-8"); |
||||||
|
PrintWriter writer= response.getWriter(); |
||||||
|
writer.write("success"); |
||||||
|
} |
||||||
|
} catch (Exception e) { |
||||||
|
log.error("WechatPayController --> wechatNotify() error!", e); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
Loading…
Reference in new issue