package com.stylefeng.guns.modular.api; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.modular.system.model.Driver; import com.stylefeng.guns.modular.system.model.TransactionDetails; import com.stylefeng.guns.modular.system.service.IDriverService; import com.stylefeng.guns.modular.system.service.IReassignService; import com.stylefeng.guns.modular.system.service.ITransactionDetailsService; import com.stylefeng.guns.modular.system.util.PayMoneyUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.PrintWriter; import java.util.Map; /** * 第三方支付回调控制器 */ @RestController @RequestMapping("/base") public class CallbackController { @Autowired private IReassignService reassignService; // @Autowired // private ICBCPayUtil icbcPayUtil; /** * 订单改派微信回调 * @param request */ @ResponseBody @PostMapping("/wxReassign") public void wxReassign(HttpServletRequest request, HttpServletResponse response){ try { // Map map = icbcPayUtil.payCallback(request); // if(null != map){ // String id = map.get("out_trade_no"); // String order_id = map.get("order_id"); // //调用查询 // String s = icbcPayUtil.queryTransaction("", order_id); // if(s.equals("0")){ // icbcPayUtil.answer(response);//回调应答 // } // if(ToolUtil.isNotEmpty(id) && ToolUtil.isNotEmpty(order_id) && s.equals("0")){ // reassignService.payReassign(id, order_id, 1); // } // } }catch (Exception e){ e.printStackTrace(); } } /** * 订单改派支付宝回调 * @param request */ @ResponseBody @PostMapping("/aliReassign") public void aliReassign(HttpServletRequest request, HttpServletResponse response){ try { // Map map = icbcPayUtil.payCallback(request); // if(null != map){ // String id = map.get("out_trade_no"); // String order_id = map.get("order_id"); // //调用查询 // String s = icbcPayUtil.queryTransaction("", order_id); // if(s.equals("0")){ // icbcPayUtil.answer(response);//回调应答 // } // if(ToolUtil.isNotEmpty(id) && ToolUtil.isNotEmpty(order_id) && s.equals("0")){ // reassignService.payReassign(id, order_id, 2); // } // } }catch (Exception e){ e.printStackTrace(); } } @Autowired private ITransactionDetailsService transactionDetailsService; @Autowired private PayMoneyUtil payMoneyUtil; @Autowired private IDriverService driverService; @ResponseBody @PostMapping("/wxRecharge") public void wxRecharge(HttpServletRequest request, HttpServletResponse response){ try { Map map = payMoneyUtil.weixinpayCallback(request); if (null != map) { String out_trade_no = map.get("out_trade_no"); String transaction_id = map.get("transaction_id"); String result = map.get("result"); TransactionDetails transactionDetails = transactionDetailsService.selectOne(new EntityWrapper() .eq("code", out_trade_no)); if (transactionDetails!=null){ if (transactionDetails.getState()==2){ return; } Driver driver = driverService.selectById(transactionDetails.getUserId()); if (driver!=null){ driver.setBalance(driver.getBalance() + transactionDetails.getMoney()); driverService.updateById(driver); } transactionDetails.setState(2); transactionDetailsService.updateById(transactionDetails); PrintWriter out = response.getWriter(); out.write(result); out.flush(); out.close(); } } }catch (Exception e){ e.printStackTrace(); } } }