From 7a14e1592dd0c2cfd6cd4e8b11f95c9f46f2ffe7 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期三, 05 七月 2023 20:07:04 +0800 Subject: [PATCH] 修改支付相关逻辑代码 --- UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java | 22 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java | 118 ++++++--- UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java | 243 +++++++++++--------- UserIGOTravel/guns-admin/src/test/java/com/stylefeng/guns/TestGunsApplication.java | 2 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java | 8 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java | 10 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java | 2 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/controller/OrderLogisticsController.java | 9 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/WithdrawalMapper.xml | 1 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java | 8 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java | 12 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/WithdrawalServiceImpl.java | 24 - UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IWithdrawalService.java | 4 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java | 110 ++++++++- UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/BankCardWarpper.java | 42 +++ UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java | 71 ++++- UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/TinggPayoutUtil.java | 4 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserInfoService.java | 5 18 files changed, 445 insertions(+), 250 deletions(-) diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java index 94ba12f..6dadc7a 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java @@ -880,16 +880,17 @@ */ @ResponseBody @PostMapping("/api/taxi/cancleOrderTaxi") - @ApiOperation(value = "取消操作支付", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "") + @ApiOperation(value = "取消操作支付【1.1】", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"), @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"), - @ApiImplicitParam(value = "支付方式(1=线上支付,3=余额)", name = "payType", required = true, dataType = "int"), + @ApiImplicitParam(value = "支付方式(1=手机支付,2=银行卡支付,3=余额)", name = "payType", required = true, dataType = "int"), + @ApiImplicitParam(value = "银行卡id", name = "bankCardId", required = false, dataType = "int"), @ApiImplicitParam(value = "取消单id(取消操作返回)", name = "cancleId", required = false, dataType = "int"), @ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) - public ResultUtil cancleOrderTaxi(Integer id, Integer orderType, Integer payType, Integer cancleId, Integer type, Integer language, HttpServletRequest request){ + public ResultUtil cancleOrderTaxi(Integer id, Integer orderType, Integer payType, Integer bankCardId, Integer cancleId, Integer type, Integer language, HttpServletRequest request){ try { Integer uid = userInfoService.getUserIdFormRedis(request); if(null == uid){ @@ -897,7 +898,7 @@ } switch (orderType){ case 1: - return orderPrivateCarService.cancleOrderPrivateCar(id, payType, "user_" + uid, cancleId, type, language); + return orderPrivateCarService.cancleOrderPrivateCar(id, payType, bankCardId, cancleId, type, language); // case 2: // return orderTaxiService.cancleOrderTaxi(id, payType, cancleId, type); // case 3: @@ -971,18 +972,18 @@ case 1: map = orderPrivateCarService.queryBalance(orderId, uid); break; - case 2: - map = orderTaxiService.queryBalance(orderId, uid); - break; - case 3: - map = orderCrossCityService.queryBalance(orderId, uid); - break; +// case 2: +// map = orderTaxiService.queryBalance(orderId, uid); +// break; +// case 3: +// map = orderCrossCityService.queryBalance(orderId, uid); +// break; case 4: map = orderLogisticsService.queryBalance(orderId, uid); break; - case 5: - map = orderLogisticsService.queryBalance(orderId, uid); - break; +// case 5: +// map = orderLogisticsService.queryBalance(orderId, uid); +// break; } return ResultUtil.success(map); }catch (Exception e){ @@ -1022,12 +1023,12 @@ case 1: list = orderPrivateCarService.queryCoupon(orderId, uid, pageNum, size); break; - case 2: - list = orderTaxiService.queryCoupon(orderId, uid, pageNum, size); - break; - case 3: - list = orderCrossCityService.queryCoupon(orderId, uid, pageNum, size); - break; +// case 2: +// list = orderTaxiService.queryCoupon(orderId, uid, pageNum, size); +// break; +// case 3: +// list = orderCrossCityService.queryCoupon(orderId, uid, pageNum, size); +// break; // case 4: // list = orderLogisticsService.queryCoupon(orderId, uid, pageNum, size); // break; @@ -1231,17 +1232,18 @@ String order_id = payments.getPayer_transaction_id(); if(ToolUtil.isNotEmpty(out_trade_no)){ Integer type = Integer.valueOf(out_trade_no.substring(17, 18)); - Integer id = Integer.valueOf(out_trade_no.substring(18)); + Integer language = Integer.valueOf(out_trade_no.substring(18, 19)); + Integer id = Integer.valueOf(out_trade_no.substring(19)); switch (type){ case 1: - orderPrivateCarService.payCancelOrderPrivateCar(id, order_id, 1); + orderPrivateCarService.payCancelOrderPrivateCar(id, order_id, language); break; - case 2: - orderTaxiService.payCancelOrderTaxi(id, order_id, 1); - break; - case 3: - orderCrossCityService.payCancelOrderCrossCity(id, order_id, 1); - break; +// case 2: +// orderTaxiService.payCancelOrderTaxi(id, order_id, 1); +// break; +// case 3: +// orderCrossCityService.payCancelOrderCrossCity(id, order_id, 1); +// break; } callbackResponse.setCheckout_request_id(order_id); callbackResponse.setMerchant_transaction_id(out_trade_no); @@ -1271,31 +1273,31 @@ @PostMapping("/base/aliCancelOrderTaxi") public void aliCancelOrderTaxi(HttpServletRequest request, HttpServletResponse response){ try { - Map<String, String> map = payMoneyUtil.alipayCallback(request);//icbcPayUtil.payCallback(request); - if(null != map){ - String out_trade_no = map.get("out_trade_no"); - String order_id = map.get("trade_no"); - if(ToolUtil.isNotEmpty(out_trade_no)){ - String[] split = out_trade_no.split("_"); - Integer id = Integer.valueOf(split[0]); - Integer type = Integer.valueOf(split[1]); - switch (type){ - case 1: - orderPrivateCarService.payCancelOrderPrivateCar(id, order_id, 2); - break; - case 2: - orderTaxiService.payCancelOrderTaxi(id, order_id, 2); - break; - case 3: - orderCrossCityService.payCancelOrderCrossCity(id, order_id, 2); - break; - } - } - response.setContentType("text/html;charset=UTF-8"); - PrintWriter out; - out = response.getWriter(); - out.println("success"); // 请不要修改或删除 - } +// Map<String, String> map = payMoneyUtil.alipayCallback(request);//icbcPayUtil.payCallback(request); +// if(null != map){ +// String out_trade_no = map.get("out_trade_no"); +// String order_id = map.get("trade_no"); +// if(ToolUtil.isNotEmpty(out_trade_no)){ +// String[] split = out_trade_no.split("_"); +// Integer id = Integer.valueOf(split[0]); +// Integer type = Integer.valueOf(split[1]); +// switch (type){ +// case 1: +// orderPrivateCarService.payCancelOrderPrivateCar(id, order_id, 2); +// break; +// case 2: +// orderTaxiService.payCancelOrderTaxi(id, order_id, 2); +// break; +// case 3: +// orderCrossCityService.payCancelOrderCrossCity(id, order_id, 2); +// break; +// } +// } +// response.setContentType("text/html;charset=UTF-8"); +// PrintWriter out; +// out = response.getWriter(); +// out.println("success"); // 请不要修改或删除 +// } }catch (Exception e){ e.printStackTrace(); } @@ -1328,25 +1330,25 @@ Payments payments = callbackRequest.getPayments().get(0); String order_id = payments.getPayer_transaction_id(); if(ToolUtil.isNotEmpty(out_trade_no)){ - Integer type = Integer.valueOf(out_trade_no.substring(17, 18)); + Integer orderType = Integer.valueOf(out_trade_no.substring(17, 18)); Integer language = Integer.valueOf(out_trade_no.substring(18, 19)); Integer id = Integer.valueOf(out_trade_no.substring(19)); - switch (type){ + switch (orderType){ case 1: - orderPrivateCarService.payOrderPrivateCarCallback(id, order_id, 1, language); + orderPrivateCarService.payOrderPrivateCarCallback(id, order_id, language); break; - case 2: - orderTaxiService.payOrderTaxiCallback(id, order_id, 1); - break; - case 3: - orderCrossCityService.payOrderCrossCityCallback(id, order_id, 1); - break; +// case 2: +// orderTaxiService.payOrderTaxiCallback(id, order_id, 1); +// break; +// case 3: +// orderCrossCityService.payOrderCrossCityCallback(id, order_id, 1); +// break; case 4: - orderLogisticsService.payOrderLogisticsCallback(id, order_id, 1, language); + orderLogisticsService.payOrderLogisticsCallback(id, order_id, language); break; - case 5: - orderLogisticsService.payOrderLogisticsCallback(id, order_id, 1, language); - break; +// case 5: +// orderLogisticsService.payOrderLogisticsCallback(id, order_id, 1, language); +// break; } callbackResponse.setCheckout_request_id(order_id); callbackResponse.setMerchant_transaction_id(out_trade_no); @@ -1386,21 +1388,21 @@ Integer type = Integer.valueOf(split[1]); Integer language = Integer.valueOf(split[2]); switch (type){ - case 1: - orderPrivateCarService.payOrderPrivateCarCallback(id, order_id, 2, language); - break; - case 2: - orderTaxiService.payOrderTaxiCallback(id, order_id, 2); - break; - case 3: - orderCrossCityService.payOrderCrossCityCallback(id, order_id, 2); - break; - case 4: - orderLogisticsService.payOrderLogisticsCallback(id, order_id, 2, language); - break; - case 5: - orderLogisticsService.payOrderLogisticsCallback(id, order_id, 2, language); - break; +// case 1: +// orderPrivateCarService.payOrderPrivateCarCallback(id, order_id, 2, language); +// break; +// case 2: +// orderTaxiService.payOrderTaxiCallback(id, order_id, 2); +// break; +// case 3: +// orderCrossCityService.payOrderCrossCityCallback(id, order_id, 2); +// break; +// case 4: +// orderLogisticsService.payOrderLogisticsCallback(id, order_id, 2, language); +// break; +// case 5: +// orderLogisticsService.payOrderLogisticsCallback(id, order_id, 2, language); +// break; } response.setContentType("text/html;charset=UTF-8"); PrintWriter out; @@ -1419,30 +1421,49 @@ /** * 小件物流差价微信支付回调 - * @param request */ @ResponseBody @PostMapping("/base/wxPayOrderLogisticsSpread") - public void wxPayOrderLogisticsSpread(HttpServletRequest request, HttpServletResponse response){ + public CallbackResponse wxPayOrderLogisticsSpread(@RequestBody CallbackRequest callbackRequest){ + CallbackResponse callbackResponse = new CallbackResponse(); try { - Map<String, String> map = payMoneyUtil.weixinpayCallback(request);//icbcPayUtil.payCallback(request); - if(null != map){ - String out_trade_no = map.get("out_trade_no"); - String order_id = map.get("transaction_id"); - String s = null;//icbcPayUtil.queryTransaction("", order_id); - if(!s.equals("") && !s.equals("2")){ - //icbcPayUtil.answer(response);//回调应答 + /** + * 指示服务是否成功或付费的总体请求代码。。 + * 177-部分付费请求 + * 178-表明请求已全额支付 + * 179-表示请求已部分支付但已过期。 + * 129-请求已过期,未付款。 + * 180.商户拒绝请求 + * 183-商户接受请求,我们可以结算资金 + * 188-商户收到请求。 + */ + String request_status_code = callbackRequest.getRequest_status_code(); + String out_trade_no = callbackRequest.getMerchant_transaction_id(); + if("177".equals(request_status_code) || "178".equals(request_status_code)){ + Payments payments = callbackRequest.getPayments().get(0); + String order_id = payments.getPayer_transaction_id(); + if(ToolUtil.isNotEmpty(out_trade_no)){ + Integer orderType = Integer.valueOf(out_trade_no.substring(17, 18)); + Integer language = Integer.valueOf(out_trade_no.substring(18, 19)); + Integer id = Integer.valueOf(out_trade_no.substring(19)); + orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, language); + callbackResponse.setCheckout_request_id(order_id); + callbackResponse.setMerchant_transaction_id(out_trade_no); + callbackResponse.setStatus_code("183"); + callbackResponse.setStatus_description("Payment processed successfully"); + callbackResponse.setReceipt_number(UUIDUtil.getRandomCode(16)); } - if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id) && s.equals("0")){ - String[] split = out_trade_no.split(","); - Integer id = Integer.valueOf(split[0]); - Integer type = Integer.valueOf(split[1]); - orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, 1); - } + }else{ + callbackResponse.setCheckout_request_id(UUIDUtil.getRandomCode(16)); + callbackResponse.setMerchant_transaction_id(out_trade_no); + callbackResponse.setStatus_code("180"); + callbackResponse.setStatus_description("means payment rejected."); + callbackResponse.setReceipt_number(UUIDUtil.getRandomCode(16)); } }catch (Exception e){ e.printStackTrace(); } + return callbackResponse; } @@ -1454,22 +1475,22 @@ @PostMapping("/base/aliPayOrderLogisticsSpread") public void aliPayOrderLogisticsSpread(HttpServletRequest request, HttpServletResponse response){ try { - Map<String, String> map = payMoneyUtil.alipayCallback(request);//icbcPayUtil.payCallback(request); - if(null != map){ - String out_trade_no = map.get("out_trade_no"); - String order_id = map.get("trade_no"); - String s = null;//icbcPayUtil.queryTransaction("", order_id); - if(!s.equals("") && !s.equals("2")){ - //icbcPayUtil.answer(response);//回调应答 - } - if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id) && s.equals("0")){ - String[] split = out_trade_no.split(","); - Integer id = Integer.valueOf(split[0]); - Integer type = Integer.valueOf(split[1]); - orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, 2); - } - - } +// Map<String, String> map = payMoneyUtil.alipayCallback(request);//icbcPayUtil.payCallback(request); +// if(null != map){ +// String out_trade_no = map.get("out_trade_no"); +// String order_id = map.get("trade_no"); +// String s = null;//icbcPayUtil.queryTransaction("", order_id); +// if(!s.equals("") && !s.equals("2")){ +// //icbcPayUtil.answer(response);//回调应答 +// } +// if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id) && s.equals("0")){ +// String[] split = out_trade_no.split(","); +// Integer id = Integer.valueOf(split[0]); +// Integer type = Integer.valueOf(split[1]); +// orderLogisticsService.payOrderLogisticsSpreadCallback(id, order_id, 2); +// } +// +// } }catch (Exception e){ e.printStackTrace(); } diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java index 982f9c8..4e29146 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java @@ -61,7 +61,7 @@ if(ToolUtil.isNotEmpty(out_trade_no)){ Integer language = Integer.valueOf(out_trade_no.substring(17, 18)); Integer id = Integer.valueOf(out_trade_no.substring(18)); - userInfoService.payCancelUserBalance(null, order_id, Integer.valueOf(id), 1, language); + userInfoService.payCancelUserBalance(null, order_id, Integer.valueOf(id), language); callbackResponse.setCheckout_request_id(order_id); callbackResponse.setMerchant_transaction_id(out_trade_no); callbackResponse.setStatus_code("183"); @@ -90,16 +90,16 @@ @PostMapping("/aliCancelUserBalance") public void aliCancelUserBalance(HttpServletRequest request, HttpServletResponse response){ try { - Map<String, String> map = payMoneyUtil.alipayCallback(request); - String id = map.get("out_trade_no"); - String order_id = map.get("out_trade_no"); - String[] s = order_id.split("_"); - Integer language = Integer.valueOf(s[1]); - userInfoService.payCancelUserBalance(null, s[0], Integer.valueOf(id), 2, language); - response.setContentType("text/html;charset=UTF-8"); - PrintWriter out; - out = response.getWriter(); - out.println("success"); // 请不要修改或删除 +// Map<String, String> map = payMoneyUtil.alipayCallback(request); +// String id = map.get("out_trade_no"); +// String order_id = map.get("out_trade_no"); +// String[] s = order_id.split("_"); +// Integer language = Integer.valueOf(s[1]); +// userInfoService.payCancelUserBalance(null, s[0], Integer.valueOf(id), 2, language); +// response.setContentType("text/html;charset=UTF-8"); +// PrintWriter out; +// out = response.getWriter(); +// out.println("success"); // 请不要修改或删除 }catch (Exception e){ e.printStackTrace(); } diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java index 0e672e2..0fa2132 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java @@ -1,21 +1,17 @@ package com.stylefeng.guns.modular.api; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.google.code.kaptcha.Constants; import com.stylefeng.guns.core.common.constant.JwtConstants; import com.stylefeng.guns.core.common.exception.InvalidKaptchaException; import com.stylefeng.guns.core.support.HttpKit; import com.stylefeng.guns.core.util.ToolUtil; +import com.stylefeng.guns.modular.system.model.BankCard; import com.stylefeng.guns.modular.system.model.UserInfo; -import com.stylefeng.guns.modular.system.service.IReportLossService; -import com.stylefeng.guns.modular.system.service.ISmsrecordService; -import com.stylefeng.guns.modular.system.service.IUserInfoService; -import com.stylefeng.guns.modular.system.service.IVerifiedService; +import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; -import com.stylefeng.guns.modular.system.warpper.LoginWarpper; -import com.stylefeng.guns.modular.system.warpper.UserInfoWarpper; -import com.stylefeng.guns.modular.system.warpper.UserInviteInfoWarpper; -import com.stylefeng.guns.modular.system.warpper.VerifiedWarpper; +import com.stylefeng.guns.modular.system.warpper.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -55,6 +51,9 @@ @Autowired private IReportLossService reportLossService; + + @Autowired + private IBankCardService bankCardService; @Value("${spring.mail.template-path}") private String templatePath; @@ -788,25 +787,25 @@ */ @ResponseBody @PostMapping("/api/user/updateInfo") - @ApiOperation(value = "修改个人信息", tags = {"用户端-个人中心"}, notes = "") + @ApiOperation(value = "修改个人信息【1.1】", tags = {"用户端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "头像", name = "avatar", required = false, dataType = "string"), @ApiImplicitParam(value = "昵称", name = "nickname", required = false, dataType = "string"), @ApiImplicitParam(value = "性别(1=男,2=女)", name = "sex", required = false, dataType = "int"), @ApiImplicitParam(value = "生日(2020-06-15)", name = "birthday", required = false, dataType = "string"), @ApiImplicitParam(value = "邮箱", name = "email", required = false, dataType = "string"), + @ApiImplicitParam(value = "邮箱验证码", name = "code", required = false, dataType = "string"), @ApiImplicitParam(value = "姓氏", name = "lastName", required = false, dataType = "string"), @ApiImplicitParam(value = "名字", name = "firstName", required = false, dataType = "string"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) - public ResultUtil updateInfo(String avatar, String nickname, Integer sex, Date birthday, String email, String lastName, String firstName, HttpServletRequest request){ + public ResultUtil updateInfo(String avatar, String nickname, Integer sex, Date birthday, String email, String code, String lastName, String firstName, Integer language, HttpServletRequest request){ try { Integer uid = userInfoService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } - userInfoService.updateInfo(avatar, nickname, sex, birthday, email, lastName, firstName, uid); - return ResultUtil.success(); + return userInfoService.updateInfo(avatar, nickname, sex, birthday, email, code, lastName, firstName, uid, language); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); @@ -988,4 +987,91 @@ return ResultUtil.runErr(); } } + + + @ResponseBody + @PostMapping("/api/user/queryBankCardList") + @ApiOperation(value = "获取银行卡列表【1.1】", tags = {"用户端-个人中心"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil<List<BankCardWarpper>> queryBankCardList(HttpServletRequest request){ + try { + Integer uid = userInfoService.getUserIdFormRedis(request); + if(null == uid){ + return ResultUtil.tokenErr(); + } + List<BankCard> bankCards = bankCardService.selectList(new EntityWrapper<BankCard>().eq("userType", 1).eq("userId", uid)); + List<BankCardWarpper> list = new ArrayList<>(); + for (BankCard bankCard : bankCards) { + BankCardWarpper bankCardWarpper = new BankCardWarpper(); + bankCardWarpper.setId(bankCard.getId()); + bankCardWarpper.setBankName(bankCard.getBank()); + bankCardWarpper.setCode(bankCard.getCode()); + list.add(bankCardWarpper); + } + return ResultUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + + @ResponseBody + @PostMapping("/api/user/addBankCard") + @ApiOperation(value = "添加银行卡【1.1】", tags = {"用户端-个人中心"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "银行", name = "bank", required = true, dataType = "string"), + @ApiImplicitParam(value = "姓", name = "lastName", required = true, dataType = "string"), + @ApiImplicitParam(value = "名", name = "firstName", required = true, dataType = "string"), + @ApiImplicitParam(value = "卡号", name = "code", required = true, dataType = "string"), + @ApiImplicitParam(value = "1=中文,2=英文,3=法语", name = "language", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil addBankCard(String bank, String lastName, String firstName, String code, Integer language, HttpServletRequest request) { + try { + Integer uid = userInfoService.getUserIdFormRedis(request); + if(null == uid){ + return ResultUtil.tokenErr(); + } + BankCard bankCard = bankCardService.selectOne(new EntityWrapper<BankCard>().eq("code", code)); + if(null != bankCard){ + return ResultUtil.error(language == 1 ? "银行卡重复" : language == 2 ? "Duplicate bank card" : "Double carte bancaire"); + } + bankCard = new BankCard(); + bankCard.setUserId(uid); + bankCard.setUserType(1); + bankCard.setCode(code); + bankCard.setBank(bank); + bankCard.setFirstName(firstName); + bankCard.setLastName(lastName); + bankCard.setInsertTime(new Date()); + bankCardService.insert(bankCard); + return ResultUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + + @ResponseBody + @PostMapping("/api/user/addBankCard") + @ApiOperation(value = "删除银行卡【1.1】", tags = {"用户端-个人中心"}, notes = "") + @ApiImplicitParams({ + @ApiImplicitParam(value = "银行卡id", name = "id", required = true, dataType = "int"), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil delBankCard(Integer id){ + try { + bankCardService.deleteById(id); + return ResultUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ResultUtil.runErr(); + } + } } diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java index ff3e0c4..89b4c8f 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java @@ -37,28 +37,24 @@ /** * 账户余额提现操作 * @param money - * @param code - * @param name * @param request * @return */ @ResponseBody @PostMapping("/api/withdrawal/withdrawal") - @ApiOperation(value = "账户余额提现", tags = {"用户端-个人中心"}, notes = "") + @ApiOperation(value = "账户余额提现【1.1】", tags = {"用户端-个人中心"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "提现金额", name = "money", required = true, dataType = "double"), - @ApiImplicitParam(value = "银行卡号", name = "code", required = true, dataType = "string"), - @ApiImplicitParam(value = "银行卡只有人姓名", name = "name", required = true, dataType = "string"), @ApiImplicitParam(value = "语言类型(1=简体中文,2=英语,3=法语)", name = "language", required = false, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) - public ResultUtil withdrawal(Double money, String code, String name, Integer language, HttpServletRequest request){ + public ResultUtil withdrawal(Double money, Integer language, HttpServletRequest request){ try { Integer uid = userInfoService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } - return withdrawalService.withdrawal(money, code, name, uid, language); + return withdrawalService.withdrawal(money, uid, language); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/controller/OrderLogisticsController.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/controller/OrderLogisticsController.java index d626b7c..3283856 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/controller/OrderLogisticsController.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/controller/OrderLogisticsController.java @@ -185,20 +185,21 @@ @ResponseBody @PostMapping("/api/orderLogistics/payOrderLogisticsSpread") - @ApiOperation(value = "小件物流补差价支付", tags = {"用户端-小件物流"}, notes = "") + @ApiOperation(value = "小件物流补差价支付【1.1】", tags = {"用户端-小件物流"}, notes = "") @ApiImplicitParams({ - @ApiImplicitParam(value = "支付方式(1=线上支付,3=余额,4=现金)", name = "payType", required = true, dataType = "int"), + @ApiImplicitParam(value = "支付方式(1=手机支付,2=银行卡支付,3=余额,4=现金)", name = "payType", required = true, dataType = "int"), + @ApiImplicitParam(value = "银行卡id", name = "bankCardId", required = false, dataType = "int"), @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), @ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = true, dataType = "int"), @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) - public ResultUtil payOrderLogisticsSpread(Integer orderId, Integer payType, Integer type, Integer language, HttpServletRequest request){ + public ResultUtil payOrderLogisticsSpread(Integer orderId, Integer payType, Integer bankCardId, Integer type, Integer language, HttpServletRequest request){ try { Integer uid = userInfoService.getUserIdFormRedis(request); if(null == uid) { return ResultUtil.tokenErr(); } - return orderLogisticsService.payLogisticsOrder_(payType, "user_" + uid, orderId, type, language); + return orderLogisticsService.payLogisticsOrder_(payType, bankCardId, orderId, type, language); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java index deaace9..aea536b 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java @@ -87,7 +87,7 @@ * @return * @throws Exception */ - ResultUtil payLogisticsOrder_(Integer payType, String accountNumber, Integer orderId, Integer type, Integer language)throws Exception; + ResultUtil payLogisticsOrder_(Integer payType, Integer bankCardId, Integer orderId, Integer type, Integer language)throws Exception; @@ -95,10 +95,9 @@ * 支付完成后的订单处理 * @param id 订单=id * @param order_id 工行支付单号 - * @param type 1=微信,2=支付宝 * @throws Exception */ - void payOrderLogisticsCallback(Integer id, String order_id, Integer type, Integer language) throws Exception; + void payOrderLogisticsCallback(Integer id, String order_id, Integer language) throws Exception; @@ -106,10 +105,9 @@ * 差价支付完成后的回调处理 * @param id 订单=id * @param order_id 工行支付单号 - * @param type 1=微信,2=支付宝 * @throws Exception */ - void payOrderLogisticsSpreadCallback(Integer id, String order_id, Integer type) throws Exception; + void payOrderLogisticsSpreadCallback(Integer id, String order_id, Integer language) throws Exception; diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java index 7178fb7..deffbbc 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java @@ -495,7 +495,13 @@ checkoutRequest.setPendingRedirectUrl(""); checkoutRequest.setSuccessRedirectUrl("https://10pz685243.zicp.fun"); checkoutRequest.setFailRedirectUrl("https://www.baidu.com"); - return TinggPayUtil.checkoutRequest(checkoutRequest); + resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest); + if(resultUtil.getCode()==200){ + paymentRecordService.saveData(1, null, null, orderId, 4, 1, orderMoney, null, 1);//添加预支付数据 + }else{ + resultUtil = ResultUtil.error("支付失败"); + } + return resultUtil; } if(payType == 2) {//银行卡支付 @@ -515,7 +521,14 @@ checkoutRequest.setPendingRedirectUrl(""); checkoutRequest.setSuccessRedirectUrl("https://10pz685243.zicp.fun"); checkoutRequest.setFailRedirectUrl("https://www.baidu.com"); - return TinggPayUtil.checkoutRequest(checkoutRequest); + resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest); + + if(resultUtil.getCode()==200){ + paymentRecordService.saveData(1, null, null, orderId, 4, 2, orderMoney, null, 1);//添加预支付数据 + }else{ + resultUtil = ResultUtil.error("支付失败"); + } + return resultUtil; } if(payType == 3){//余额支付 @@ -614,9 +627,9 @@ pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0); } }).start(); - systemNoticeService.addSystemNotice(1, language == 1 ? "您已使用余额成功完成小件物流订单支付,谢谢使用!" : language == 2 - ? "You have successfully used the balance to complete the small logistics order payment, thank you for using!" - : "Vous avez utilisé le solde pour compléter avec succès le paiement de la commande logistique de petites pièces. Merci d’utiliser!", uid, 1); + systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功完成小件物流订单支付,谢谢使用!" : language == 2 + ? "You have successfully completed the small parts logistics order payment, thank you for using!" : + "Vous avez complété avec succès le paiement de la commande small pieces logistics. Merci d’utiliser!", uid, 1); this.pushOrder(orderLogistics);//推单 } @@ -712,9 +725,9 @@ } }).start(); - systemNoticeService.addSystemNotice(1, language == 1 ? "您已使用现金成功完成小件物流订单支付,谢谢使用!" : language == 2 - ? "You have successfully completed the payment of small logistics order with cash, thank you for using!" : - "Vous avez utilisé de l’argent pour compléter avec succès le paiement de la commande small pieces logistics. Merci d’utiliser!", uid, 1); + systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功完成小件物流订单支付,谢谢使用!" : language == 2 + ? "You have successfully completed the small parts logistics order payment, thank you for using!" : + "Vous avez complété avec succès le paiement de la commande small pieces logistics. Merci d’utiliser!", uid, 1); this.pushOrder(orderLogistics);//推单 } @@ -735,33 +748,51 @@ * @throws Exception */ @Override - public ResultUtil payLogisticsOrder_(Integer payType, String accountNumber, Integer orderId, Integer type, Integer language) throws Exception { + public ResultUtil payLogisticsOrder_(Integer payType, Integer bankCardId, Integer orderId, Integer type, Integer language) throws Exception { OrderLogistics orderLogistics = this.selectById(orderId); Integer uid = orderLogistics.getUserId(); OrderLogisticsSpread orderLogisticsSpread = orderLogisticsSpreadService.selectOne(new EntityWrapper<OrderLogisticsSpread>().eq("orderLogisticsId", orderId)); Double orderMoney = orderLogisticsSpread.getPrice(); UserInfo userInfo = userInfoService.selectById(uid); ResultUtil resultUtil = ResultUtil.success(""); - if(payType == 1){//线上支付 + if(payType == 1){//手机支付 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String merchantTransactionId = sdf.format(new Date()) + "4" + language + orderId; CheckoutRequest checkoutRequest = new CheckoutRequest(); checkoutRequest.setMsisdn(Long.valueOf(userInfo.getPhone())); checkoutRequest.setCustomerEmail(userInfo.getEmail()); - checkoutRequest.setAccountNumber(accountNumber); + checkoutRequest.setAccountNumber(userInfo.getPhone()); checkoutRequest.setCustomerFirstName(userInfo.getFirstName()); checkoutRequest.setCustomerLastName(userInfo.getLastName()); checkoutRequest.setRequestAmount(orderMoney); checkoutRequest.setMerchantTransactionId(merchantTransactionId); checkoutRequest.setRequestDescription("Travel completion payment"); - checkoutRequest.setCallbackUrl(callbackPath + "/base/wxPayOrderTaxi"); + checkoutRequest.setCallbackUrl(callbackPath + "/base/wxPayOrderLogisticsSpread"); checkoutRequest.setPendingRedirectUrl(""); checkoutRequest.setSuccessRedirectUrl("https://10pz685243.zicp.fun"); checkoutRequest.setFailRedirectUrl("https://www.baidu.com"); return TinggPayUtil.checkoutRequest(checkoutRequest); - - } + if(payType == 2){//银行卡支付 + BankCard bankCard = bankCardService.selectById(bankCardId); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); + String merchantTransactionId = sdf.format(new Date()) + "4" + language + orderId; + CheckoutRequest checkoutRequest = new CheckoutRequest(); + checkoutRequest.setMsisdn(Long.valueOf(bankCard.getCode())); + checkoutRequest.setCustomerEmail(userInfo.getEmail()); + checkoutRequest.setAccountNumber(bankCard.getCode()); + checkoutRequest.setCustomerFirstName(bankCard.getFirstName()); + checkoutRequest.setCustomerLastName(bankCard.getLastName()); + checkoutRequest.setRequestAmount(orderMoney); + checkoutRequest.setMerchantTransactionId(merchantTransactionId); + checkoutRequest.setRequestDescription("Travel completion payment"); + checkoutRequest.setCallbackUrl(callbackPath + "/base/wxPayOrderLogisticsSpread"); + checkoutRequest.setPendingRedirectUrl(""); + checkoutRequest.setSuccessRedirectUrl("https://10pz685243.zicp.fun"); + checkoutRequest.setFailRedirectUrl("https://www.baidu.com"); + return TinggPayUtil.checkoutRequest(checkoutRequest); + } + if(payType == 3){//余额支付 if(userInfo.getBalance() == null || userInfo.getBalance() < orderMoney){ return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient account balance" : "Solde de compte insuffisant"); @@ -819,9 +850,9 @@ } }).start(); - systemNoticeService.addSystemNotice(1, language == 1 ? "您已使用余额成功完成小件物流订单差价支付,谢谢使用!" : language == 2 - ? "You have successfully completed the price difference payment of small logistics order with the balance, thank you for using!" - : "Vous avez utilisé le solde pour compléter avec succès le paiement de la différence de prix de la commande de petites pièces logistiques. Merci d’utiliser!", uid, 1); + systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功完成小件物流订单差价支付,谢谢使用!" : language == 2 + ? "You have successfully completed the price difference payment of small parts logistics order, thank you for using!" + : "Vous avez complété avec succès le paiement de la différence de prix de la commande de petites pièces logistiques, merci d’utiliser!", uid, 1); } if(payType == 4){//现金支付 @@ -876,9 +907,9 @@ } }).start(); - systemNoticeService.addSystemNotice(1, language == 1 ? "您已使用现金成功完成小件物流订单差价支付,谢谢使用!" : language == 2 - ? "You have successfully completed the price difference payment of small logistics order with cash, thank you for using!" - : "Vous avez utilisé de l’argent pour compléter avec succès le paiement de la différence de prix de la commande de petites pièces logistiques. Merci d’utiliser!", uid, 1); + systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功完成小件物流订单差价支付,谢谢使用!" : language == 2 + ? "You have successfully completed the price difference payment of small parts logistics order, thank you for using!" + : "Vous avez complété avec succès le paiement de la différence de prix de la commande de petites pièces logistiques, merci d’utiliser!", uid, 1); } @@ -889,14 +920,14 @@ @Override - public void payOrderLogisticsCallback(Integer id, String order_id, Integer type, Integer language) throws Exception { + public void payOrderLogisticsCallback(Integer id, String order_id, Integer language) throws Exception { OrderLogistics orderLogistics = this.selectById(id); - PaymentRecord query = paymentRecordService.query(1, null, null, Integer.valueOf(id), orderLogistics.getType(), type, 1); + PaymentRecord query = paymentRecordService.query(1, null, null, Integer.valueOf(id), orderLogistics.getType(), null, 1); if(null != query){ //添加交易明细 transactionDetailsService.saveData(orderLogistics.getUserId(), "完成订单", query.getAmount(), 2, 1, 1, orderLogistics.getType(), query.getOrderId()); orderLogistics.setState(1);//先支付后抢单 - orderLogistics.setPayType(type); + orderLogistics.setPayType(query.getPayType()); orderLogistics.setPayMoney(query.getAmount()); this.updateById(orderLogistics); @@ -989,7 +1020,9 @@ }).start(); - systemNoticeService.addSystemNotice(1, "您已使用" + (type == 1 ? "微信" : "支付宝") + "成功完成小件物流订单支付,谢谢使用!", orderLogistics.getUserId(), 1); + systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功完成小件物流订单支付,谢谢使用!" : language == 2 + ? "You have successfully completed the small parts logistics order payment, thank you for using!" : + "Vous avez complété avec succès le paiement de la commande small pieces logistics. Merci d’utiliser!", orderLogistics.getUserId(), 1); this.pushOrder(orderLogistics);//推单 }else{ @@ -1000,29 +1033,32 @@ @Override - public void payOrderLogisticsSpreadCallback(Integer id, String order_id, Integer type) throws Exception { + public void payOrderLogisticsSpreadCallback(Integer id, String order_id, Integer language) throws Exception { OrderLogistics orderLogistics = this.selectById(id); OrderLogisticsSpread orderLogisticsSpread = orderLogisticsSpreadService.selectOne(new EntityWrapper<OrderLogisticsSpread>().eq("orderLogisticsId", id)); - PaymentRecord query = paymentRecordService.query(1, null, null, Integer.valueOf(id), orderLogistics.getType(), type, 1); + PaymentRecord query = paymentRecordService.query(1, null, null, Integer.valueOf(id), orderLogistics.getType(), null, 1); if(null != query){ - //添加交易明细 - transactionDetailsService.saveData(orderLogistics.getUserId(), "小件物流补差价", query.getAmount(), 2, 1, 1, 4, query.getOrderId()); - orderLogistics.setState(4);//待取货 - this.updateById(orderLogistics); + Double orderMoney = query.getAmount(); + query.setState(2); + query.setCode(order_id); + paymentRecordService.updateById(query); orderLogisticsSpread.setPayMoney(query.getAmount()); orderLogisticsSpread.setPayTime(new Date()); - orderLogisticsSpread.setPayType(3); + orderLogisticsSpread.setPayType(query.getPayType()); + orderLogisticsSpread.setDriverPay(1); orderLogisticsSpreadService.updateById(orderLogisticsSpread); UserInfo userInfo = userInfoService.selectById(orderLogistics.getUserId()); SysIntegral query1 = sysIntegralMapper.query(orderLogistics.getCompanyId()); - userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分 + userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分 + + //添加交易明细 + transactionDetailsService.saveData(orderLogistics.getUserId(), "小件物流补差价", orderMoney, 2, 1, 1, 4, id); userInfoService.updateById(userInfo); - query.setState(2); - query.setCode(order_id); - paymentRecordService.updateById(query); + orderLogistics.setState(12);//已支付差价 + this.updateById(orderLogistics); //添加已收入明细 Company company = companyService.selectById(orderLogistics.getCompanyId()); @@ -1031,12 +1067,13 @@ BigDecimal c = null; if(company.getIsSpeFixedOrProportional() == 2){//固定 d = new BigDecimal(speMoney); - c = new BigDecimal(query.getAmount()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); + c = new BigDecimal(orderMoney).subtract(d); } if(company.getIsSpeFixedOrProportional() == 1){//比例 - d = new BigDecimal(query.getAmount()).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN))); - c = new BigDecimal(query.getAmount()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); + d = new BigDecimal(orderMoney).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100), new MathContext(2, RoundingMode.HALF_EVEN))); + c = new BigDecimal(orderMoney).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); } + Income income = incomeService.selectOne(new EntityWrapper<Income>().eq("userType", 1).eq("objectId", orderLogistics.getCompanyId()).eq("type", 2).eq("incomeId", orderLogistics.getId()).eq("orderType", orderLogistics.getType())); income.setMoney(income.getMoney() + d.doubleValue()); incomeService.updateById(income); @@ -1058,8 +1095,9 @@ } }).start(); - - systemNoticeService.addSystemNotice(1, "您已使用" + (type == 1 ? "微信" : "支付宝") + "成功完成小件物流订单差价支付,谢谢使用!", orderLogistics.getUserId(), 1); + systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功完成小件物流订单差价支付,谢谢使用!" : language == 2 + ? "You have successfully completed the price difference payment of small parts logistics order, thank you for using!" + : "Vous avez complété avec succès le paiement de la différence de prix de la commande de petites pièces logistiques, merci d’utiliser!", orderLogistics.getUserId(), 1); }else{ System.err.println("预支付数据异常(orderId = " + id + ")"); } diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java index 45940cd..b2dd8d6 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java @@ -155,7 +155,7 @@ @TableField("payManner") private Integer payManner; /** - * 支付方式(1=微信,2=支付宝,3=余额) + * 支付方式(1=手机支付,2=银行卡支付,3=余额,4=现金支付) */ @TableField("payType") private Integer payType; diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java index 2fdb9ce..08b2ee3 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java @@ -75,7 +75,7 @@ * @return * @throws Exception */ - ResultUtil cancleOrderPrivateCar(Integer id, Integer payType, String accountNumber, Integer cancleId, Integer type, Integer language) throws Exception; + ResultUtil cancleOrderPrivateCar(Integer id, Integer payType, Integer bankCardId, Integer cancleId, Integer type, Integer language) throws Exception; String getOrderNum() throws Exception; @@ -148,10 +148,9 @@ * 取消订单支付后的处理 * @param id 订单=id * @param order_id 工行支付单号 - * @param type 1=微信,2=支付宝 * @throws Exception */ - void payCancelOrderPrivateCar(Integer id, String order_id, Integer type) throws Exception; + void payCancelOrderPrivateCar(Integer id, String order_id, Integer language) throws Exception; @@ -159,10 +158,9 @@ * 支付完成后的订单处理 * @param id 订单=id * @param order_id 工行支付单号 - * @param type 1=微信,2=支付宝 * @throws Exception */ - void payOrderPrivateCarCallback(Integer id, String order_id, Integer type, Integer language) throws Exception; + void payOrderPrivateCarCallback(Integer id, String order_id, Integer language) throws Exception; diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java index 5abfdda..ebfbd21 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java @@ -598,7 +598,7 @@ * @throws Exception */ @Override - public ResultUtil cancleOrderPrivateCar(Integer id, Integer payType, String accountNumber, Integer cancleId, Integer type, Integer language) throws Exception { + public ResultUtil cancleOrderPrivateCar(Integer id, Integer payType, Integer bankCardId, Integer cancleId, Integer type, Integer language) throws Exception { OrderPrivateCar orderPrivateCar = this.selectById(id); Integer uid = orderPrivateCar.getUserId(); UserInfo userInfo = userInfoService.selectById(uid); @@ -619,15 +619,15 @@ CancleOrder query = cancleOrderService.query(orderPrivateCar.getOrderType(), 1, orderPrivateCar.getCompanyId()); if(null != query){ - if(payType == 1){//线上支付 + if(payType == 1){//手机支付 orderCancel.setPayType(1); orderCancelService.updateById(orderCancel); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); - String merchantTransactionId = sdf.format(new Date()) + "1" + id; + String merchantTransactionId = sdf.format(new Date()) + "1" + language + id; CheckoutRequest checkoutRequest = new CheckoutRequest(); checkoutRequest.setMsisdn(Long.valueOf(userInfo.getPhone())); checkoutRequest.setCustomerEmail(userInfo.getEmail()); - checkoutRequest.setAccountNumber(accountNumber); + checkoutRequest.setAccountNumber(userInfo.getPhone()); checkoutRequest.setCustomerFirstName(userInfo.getFirstName()); checkoutRequest.setCustomerLastName(userInfo.getLastName()); checkoutRequest.setRequestAmount(query.getMoney()); @@ -640,6 +640,31 @@ resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest); if(resultUtil.getCode()==200){ paymentRecordService.saveData(1, null, null, id, 1, 1, query.getMoney(), null, 1);//添加预支付数据 + } + + } + if(payType == 2){//银行卡支付 + orderCancel.setPayType(2); + orderCancelService.updateById(orderCancel); + BankCard bankCard = bankCardService.selectById(bankCardId); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); + String merchantTransactionId = sdf.format(new Date()) + "1" + id; + CheckoutRequest checkoutRequest = new CheckoutRequest(); + checkoutRequest.setMsisdn(Long.valueOf(bankCard.getCode())); + checkoutRequest.setCustomerEmail(userInfo.getEmail()); + checkoutRequest.setAccountNumber(bankCard.getCode()); + checkoutRequest.setCustomerFirstName(bankCard.getFirstName()); + checkoutRequest.setCustomerLastName(bankCard.getLastName()); + checkoutRequest.setRequestAmount(query.getMoney()); + checkoutRequest.setMerchantTransactionId(merchantTransactionId); + checkoutRequest.setRequestDescription("Cancel a trip"); + checkoutRequest.setCallbackUrl(callbackPath + "/base/wxCancelOrderTaxi"); + checkoutRequest.setPendingRedirectUrl(""); + checkoutRequest.setSuccessRedirectUrl("https://10pz685243.zicp.fun"); + checkoutRequest.setFailRedirectUrl("https://www.baidu.com"); + resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest); + if(resultUtil.getCode()==200){ + paymentRecordService.saveData(1, null, null, id, 1, 2, query.getMoney(), null, 1);//添加预支付数据 } } @@ -684,8 +709,8 @@ //添加消息 systemNoticeService.addSystemNotice(1, language == 1 ? "您已使用余额成功支付取消订单费用,谢谢使用!" : language == 2 - ? "You have successfully paid the cancellation fee with the balance, thank you for using!" - : "Vous avez utilisé le solde pour payer avec succès les frais d’annulation de commande. Merci d’utiliser!", orderPrivateCar.getUserId(), 1); + ? "You have successfully paid the cancellation fee, thank you for using!" + : "Vous avez payé avec succès les frais d’annulation de commande, merci d’utiliser!", orderPrivateCar.getUserId(), 1); } } return resultUtil; @@ -911,7 +936,7 @@ resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest); if(resultUtil.getCode()==200){ - paymentRecordService.saveData(1, null, null, orderId, 1, 1, orderMoney, null, 1);//添加预支付数据 + paymentRecordService.saveData(1, null, null, orderId, 1, 2, orderMoney, null, 1);//添加预支付数据 }else{ resultUtil = ResultUtil.error("支付失败"); } @@ -1087,9 +1112,9 @@ } }).start(); - systemNoticeService.addSystemNotice(1, language == 1 ? "您已使用余额成功完成出行订单支付,谢谢使用!" : language == 2 - ? "You have successfully completed the payment of travel order with the balance, thank you for using!" - : "Vous avez utilisé le solde pour compléter le paiement de la commande de voyage avec succès. Merci d’utiliser!", uid, 1); + systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功完成出行订单支付,谢谢使用!" : language == 2 + ? "You have successfully completed the travel order payment, thank you for using!" + : "Vous avez complété avec succès le paiement de votre commande de voyage. Merci d’utiliser!", orderPrivateCar.getUserId(), 1); } @@ -1260,9 +1285,9 @@ } }).start(); - systemNoticeService.addSystemNotice(1, language == 1 ? "您已使用现金成功完成出行订单支付,谢谢使用!" : language == 2 - ? "You have successfully completed the payment of travel order with cash, thank you for using!" - : "Vous avez utilisé de l’argent pour compléter avec succès le paiement de votre commande de voyage. Merci d’utiliser!", uid, 1); + systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功完成出行订单支付,谢谢使用!" : language == 2 + ? "You have successfully completed the travel order payment, thank you for using!" + : "Vous avez complété avec succès le paiement de votre commande de voyage. Merci d’utiliser!", orderPrivateCar.getUserId(), 1); } this.updateAllColumnById(orderPrivateCar); @@ -1386,13 +1411,12 @@ * 取消订单支付后的处理 * @param id 订单=id * @param order_id 工行支付单号 - * @param type 1=微信,2=支付宝 * @throws Exception */ @Override - public void payCancelOrderPrivateCar(Integer id, String order_id, Integer type) throws Exception { + public void payCancelOrderPrivateCar(Integer id, String order_id, Integer language) throws Exception { OrderPrivateCar orderPrivateCar = this.selectById(id); - PaymentRecord query = paymentRecordService.query(1, null, null, Integer.valueOf(id), 1, type, 1); + PaymentRecord query = paymentRecordService.query(1, null, null, Integer.valueOf(id), 1, null, 1); if(null != query){ //添加交易明细 transactionDetailsService.saveData(orderPrivateCar.getUserId(), "取消订单", query.getAmount(), 2, 1, 1, 1, query.getOrderId()); @@ -1438,21 +1462,23 @@ // }).start(); //添加消息 - systemNoticeService.addSystemNotice(1, "您已使用" + (type == 1 ? "微信" : "支付宝") + "成功支付取消订单费用,谢谢使用!", orderPrivateCar.getUserId(), 1); + systemNoticeService.addSystemNotice(1, language == 1 ? "您已使用余额成功支付取消订单费用,谢谢使用!" : language == 2 + ? "You have successfully paid the cancellation fee, thank you for using!" + : "Vous avez payé avec succès les frais d’annulation de commande, merci d’utiliser!", orderPrivateCar.getUserId(), 1); }else{ System.err.println("预支付数据异常(orderId = " + id + ")"); } } @Override - public void payOrderPrivateCarCallback(Integer id, String order_id, Integer type, Integer language) throws Exception { + public void payOrderPrivateCarCallback(Integer id, String order_id, Integer language) throws Exception { OrderPrivateCar orderPrivateCar = this.selectById(id); - PaymentRecord query = paymentRecordService.query(1, null, null, Integer.valueOf(id), 1, type, 1); + PaymentRecord query = paymentRecordService.query(1, null, null, id, 1, null, 1); if(null != query){ //添加交易明细 transactionDetailsService.saveData(orderPrivateCar.getUserId(), "完成订单", query.getAmount(), 2, 1, 1, 1, query.getOrderId()); orderPrivateCar.setState(8); - orderPrivateCar.setPayType(type); + orderPrivateCar.setPayType(query.getPayType()); orderPrivateCar.setOrderMoney(orderPrivateCar.getOrderMoney()+orderPrivateCar.getFreeMoney().doubleValue()); orderPrivateCar.setPayMoney(query.getAmount()); this.updateById(orderPrivateCar); @@ -1621,8 +1647,9 @@ } }).start(); - - systemNoticeService.addSystemNotice(1, "您已使用" + (type == 1 ? "微信" : "支付宝") + "成功完成出行订单支付,谢谢使用!", orderPrivateCar.getUserId(), 1); + systemNoticeService.addSystemNotice(1, language == 1 ? "您已成功完成出行订单支付,谢谢使用!" : language == 2 + ? "You have successfully completed the travel order payment, thank you for using!" + : "Vous avez complété avec succès le paiement de votre commande de voyage. Merci d’utiliser!", orderPrivateCar.getUserId(), 1); }else{ System.err.println("预支付数据异常(orderId = " + id + ")"); } diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/WithdrawalMapper.xml b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/WithdrawalMapper.xml index 69c8513..9775762 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/WithdrawalMapper.xml +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/WithdrawalMapper.xml @@ -27,6 +27,7 @@ DATE_FORMAT(insertTime, '%Y.%m.%d') as insertTime, money as money, ('银行卡提现') as name, + code, remark as remark, state as state from t_pub_withdrawal where flag != 3 and userType = #{userType} and userId = #{uid} order by insertTime desc limit #{pageNum}, #{size} diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserInfoService.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserInfoService.java index f32cec1..9ad8545 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserInfoService.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserInfoService.java @@ -205,7 +205,7 @@ * @param uid * @throws Exception */ - void updateInfo(String avatar, String nickname, Integer sex, Date birthday, String email, String lastName, String firstName, Integer uid) throws Exception; + ResultUtil updateInfo(String avatar, String nickname, Integer sex, Date birthday, String email, String code, String lastName, String firstName, Integer uid, Integer language) throws Exception; /** * 获取实名认证数据 @@ -221,10 +221,9 @@ * @param id 用户id * @param order_id 工行订单id * @param paymentRecordId 预支付订单id - * @param type 支付类型(1=微信,2=支付宝) * @throws Exception */ - void payCancelUserBalance(Integer id, String order_id, Integer paymentRecordId, Integer type, Integer language) throws Exception; + void payCancelUserBalance(Integer id, String order_id, Integer paymentRecordId, Integer language) throws Exception; /** diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IWithdrawalService.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IWithdrawalService.java index 510667b..7ab6804 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IWithdrawalService.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IWithdrawalService.java @@ -13,12 +13,10 @@ /** * 提现操作 * @param money - * @param code - * @param name * @param uid * @throws Exception */ - ResultUtil withdrawal(Double money, String code, String name, Integer uid, Integer language) throws Exception; + ResultUtil withdrawal(Double money, Integer uid, Integer language) throws Exception; /** diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java index 03c065d..a29af8f 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java @@ -1230,7 +1230,7 @@ * @throws Exception */ @Override - public void updateInfo(String avatar, String nickname, Integer sex, Date birthday, String email, String lastName, String firstName, Integer uid) throws Exception { + public ResultUtil updateInfo(String avatar, String nickname, Integer sex, Date birthday, String email, String code, String lastName, String firstName, Integer uid, Integer language) throws Exception { UserInfo userInfo = this.selectById(uid); if(ToolUtil.isNotEmpty(avatar)){ userInfo.setAvatar(avatar); @@ -1245,6 +1245,10 @@ userInfo.setBirthday(birthday); } if(null != email){ + String value = redisUtil.getValue(email); + if(ToolUtil.isEmpty(value) || code.equals(value)){ + return ResultUtil.error(language == 1 ? "验证码无效" : language == 2 ? "Invalid captcha" : "Code de vérification invalide"); + } userInfo.setEmail(email); } if(null != lastName){ @@ -1254,6 +1258,7 @@ userInfo.setFirstName(firstName); } this.updateById(userInfo); + return ResultUtil.success(); } @@ -1273,11 +1278,10 @@ * 完成余额充值后的处理 * @param id 用户id * @param order_id 工行订单id - * @param type 支付类型(1=微信,2=支付宝) * @throws Exception */ @Override - public void payCancelUserBalance(Integer id, String order_id, Integer paymentRecordId, Integer type, Integer language) throws Exception { + public void payCancelUserBalance(Integer id, String order_id, Integer paymentRecordId, Integer language) throws Exception { PaymentRecord query = paymentRecordService.selectById(paymentRecordId); UserInfo userInfo = this.selectById(query.getUserId()); if(null != query){ @@ -1294,7 +1298,7 @@ this.addCoupon(userInfo.getId(), query.getAmount(), userInfo.getCompanyId(), query.getId(), language);//添加优惠券 }else{ - System.err.println("预支付数据异常(userId = " + id + ")"); + System.err.println("预支付数据异常(paymentRecordId = " + paymentRecordId + ")"); } } diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/WithdrawalServiceImpl.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/WithdrawalServiceImpl.java index 1b6aab8..8a9ee40 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/WithdrawalServiceImpl.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/WithdrawalServiceImpl.java @@ -44,13 +44,11 @@ /** * 提现操作 * @param money - * @param code - * @param name * @param uid * @throws Exception */ @Override - public ResultUtil withdrawal(Double money, String code, String name, Integer uid, Integer language) throws Exception { + public ResultUtil withdrawal(Double money, Integer uid, Integer language) throws Exception { language = userInfoService.queryLanguage(uid, language); if(money.compareTo(0D) <= 0){ return ResultUtil.error(language == 1 ? "提现金额必须大于0" : language == 2 ? "Withdrawal amount must be greater than 0" : "Le montant du retrait doit être supérieur à 0"); @@ -65,26 +63,14 @@ Withdrawal withdrawal = new Withdrawal(); withdrawal.setBalance(userInfo.getBalance()); - withdrawal.setCode(code); + withdrawal.setCode(userInfo.getPhone());// TODO: 2023/7/5 第三方支支持手机号提现 withdrawal.setFlag(1); withdrawal.setInsertTime(new Date()); withdrawal.setMoney(money); - withdrawal.setName(name); + withdrawal.setName(userInfo.getPhoneOperator()); withdrawal.setState(1); withdrawal.setUserId(uid); withdrawal.setUserType(1); - - PayoutResponse payoutResponse = tinggPayoutUtil.sendPayout("+233" + userInfo.getPhone(), withdrawal.getCode(), withdrawal.getMoney(), "", "用户提现"); - AuthStatus authStatus = payoutResponse.getAuthStatus(); - Results results = payoutResponse.getResults().get(0); - String statusCode = results.getStatusCode(); - if(!"131".equals(authStatus.getAuthStatusCode())){ - return ResultUtil.error(authStatus.getAuthStatusDescription()); - } - if(!"139".equals(statusCode)){ - return ResultUtil.error(results.getStatusDescription()); - } - withdrawal.setSerialNo(results.getBeepTransactionID()); this.insert(withdrawal); double v = new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(money)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); @@ -105,10 +91,10 @@ @Override public List<Map<String, Object>> queryWithdrawal(Integer uid, Integer pageNum, Integer size, Integer language) throws Exception { pageNum = (pageNum - 1) * size; - String name = language == 1 ? "银行卡提现" : language == 2 ? "Bank card withdrawal" : "Retrait par carte bancaire"; + String name = language == 1 ? "手机号:" : language == 2 ? "Phone number:" : "Numéro de portable:"; List<Map<String, Object>> list = withdrawalMapper.queryWithdrawal(uid, 1, pageNum, size); for (Map<String, Object> map : list) { - map.put("name", name); + map.put("name", name + map.get("code")); } return list; } diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/TinggPayoutUtil.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/TinggPayoutUtil.java index 5a72d56..9266451 100644 --- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/TinggPayoutUtil.java +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/TinggPayoutUtil.java @@ -37,12 +37,12 @@ * @param narration 备注 * @return */ - public PayoutResponse sendPayout(String phone, String payerTransactionID, Double amount, String callbackUrl, String narration) { + public PayoutResponse sendPayout(String serviceCode, String phone, String payerTransactionID, Double amount, String callbackUrl, String narration) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Credentials credentials = new Credentials("igo_api_user", "mXo%kJM.p;_i)SSZ&^b?6XSH)D+OCPh8"); List<Packet> packets = new ArrayList<>(); Packet packet = new Packet(); - packet.setServiceCode("GH-TIGO-B2C");//手机网络运营商 GH-MTN-B2C、GH-TIGO-B2C、GH-VODAFONE-B2C、GH-AIRTEL-B2C + packet.setServiceCode(serviceCode);//手机网络运营商 GH-MTN-B2C、GH-TIGO-B2C、GH-VODAFONE-B2C、GH-AIRTEL-B2C packet.setMSISDN(phone); packet.setAccountNumber(phone); packet.setPayerTransactionID(payerTransactionID); diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/BankCardWarpper.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/BankCardWarpper.java new file mode 100644 index 0000000..592d129 --- /dev/null +++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/BankCardWarpper.java @@ -0,0 +1,42 @@ +package com.stylefeng.guns.modular.system.warpper; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * @author zhibing.pu + * @date 2023/7/5 18:37 + */ +@ApiModel +public class BankCardWarpper { + @ApiModelProperty("银行卡id") + private Integer id; + @ApiModelProperty("银行名称") + private String bankName; + @ApiModelProperty("银行卡号") + private String code; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getBankName() { + return bankName; + } + + public void setBankName(String bankName) { + this.bankName = bankName; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } +} diff --git a/UserIGOTravel/guns-admin/src/test/java/com/stylefeng/guns/TestGunsApplication.java b/UserIGOTravel/guns-admin/src/test/java/com/stylefeng/guns/TestGunsApplication.java index c939120..899d88f 100644 --- a/UserIGOTravel/guns-admin/src/test/java/com/stylefeng/guns/TestGunsApplication.java +++ b/UserIGOTravel/guns-admin/src/test/java/com/stylefeng/guns/TestGunsApplication.java @@ -21,6 +21,6 @@ @Test public void test(){ - tinggPayoutUtil.sendPayout("+233277211131", "00007", 1D, "https://10pz685243.zicp.fun/base/IGO/tinggPayoutCallback", "Transfer remittance"); + tinggPayoutUtil.sendPayout("GH-MTN-B2C", "+233277211131", "00007", 1D, "https://10pz685243.zicp.fun/base/IGO/tinggPayoutCallback", "Transfer remittance"); } } -- Gitblit v1.7.1