From 9ef2e272c6ef99d152c5d6afc95af70a3822c57d Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期六, 09 九月 2023 18:12:28 +0800 Subject: [PATCH] 修改bug --- DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java | 149 +++++++++++++++++++++++++++++++++++-------------- 1 files changed, 106 insertions(+), 43 deletions(-) diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java index 0956daf..8f23512 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java @@ -15,17 +15,17 @@ import com.stylefeng.guns.modular.system.dao.PhoneMapper; import com.stylefeng.guns.modular.system.dao.RegionMapper; import com.stylefeng.guns.modular.system.dao.SysReformistMapper; +import com.stylefeng.guns.modular.system.model.BankCard; import com.stylefeng.guns.modular.system.model.Driver; import com.stylefeng.guns.modular.system.model.OrderPosition; import com.stylefeng.guns.modular.system.model.Region; -import com.stylefeng.guns.modular.system.service.IDriverService; -import com.stylefeng.guns.modular.system.service.IOrderService; -import com.stylefeng.guns.modular.system.service.ISystemNoticeService; -import com.stylefeng.guns.modular.system.service.ITransactionDetailsService; +import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; import com.stylefeng.guns.modular.system.util.GoogleMap.DistancematrixVo; import com.stylefeng.guns.modular.system.util.GoogleMap.GoogleMapUtil; import com.stylefeng.guns.modular.system.util.GoogleMap.ReverseGeocodeVo; +import com.stylefeng.guns.modular.system.util.Tingg.TinggPayUtil; +import com.stylefeng.guns.modular.system.util.Tingg.model.CheckoutRequest; import com.stylefeng.guns.modular.system.warpper.OrderListWarpper; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; @@ -34,6 +34,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.text.SimpleDateFormat; import java.util.*; /** @@ -84,6 +85,16 @@ @Autowired private ITransactionDetailsService transactionDetailsService; + @Value("${callbackPath}") + private String callbackPath; + + @Autowired + private IPaymentRecordService paymentRecordService; + + @Autowired + private IBankCardService bankCardService; + + @@ -99,20 +110,20 @@ * @throws Exception */ @Override - public List<Map<String, Object>> queryOrderList(Integer state, Integer pageNum, Integer size, Integer uid) throws Exception { + public List<Map<String, Object>> queryOrderList(Integer state, Integer pageNum, Integer size, Integer uid, Integer language) throws Exception { pageNum = (pageNum - 1) * size; List<Map<String, Object>> datas = new ArrayList<>(); //出租车 // List<Map<String, Object>> list = orderTaxiService.queryOrderList(state, uid); // datas.addAll(list); //专车 - List<Map<String, Object>> list1 = orderPrivateCarService.queryOrderList(state, uid); + List<Map<String, Object>> list1 = orderPrivateCarService.queryOrderList(state, uid, language); datas.addAll(list1); //跨城 // List<Map<String, Object>> list2 = orderCrossCityService.queryOrderList(state, uid); // datas.addAll(list2); //小件物流 - List<Map<String, Object>> list3 = orderLogisticsService.queryOrderList(uid); + List<Map<String, Object>> list3 = orderLogisticsService.queryOrderList(uid, language); datas.addAll(list3); //分页 @@ -138,7 +149,7 @@ * @throws Exception */ @Override - public List<Map<String, Object>> queryOrderList1(Integer state, Integer type, Integer pageNum, Integer size, Integer uid) throws Exception { + public List<Map<String, Object>> queryOrderList1(Integer state, Integer type, Integer pageNum, Integer size, Integer uid, Integer language) throws Exception { pageNum = (pageNum - 1) * size; List<Map<String, Object>> datas = new ArrayList<>(); if(type == 1){ @@ -146,13 +157,13 @@ List<Map<String, Object>> list = orderTaxiService.queryOrderList(state, uid); datas.addAll(list); //专车 - List<Map<String, Object>> list1 = orderPrivateCarService.queryOrderList(state, uid); + List<Map<String, Object>> list1 = orderPrivateCarService.queryOrderList(state, uid, language); datas.addAll(list1); //跨城 List<Map<String, Object>> list2 = orderCrossCityService.queryOrderList(state, uid); datas.addAll(list2); }else{//小件物流 - List<Map<String, Object>> list3 = orderLogisticsService.queryOrderList(uid); + List<Map<String, Object>> list3 = orderLogisticsService.queryOrderList(uid, language); datas.addAll(list3); } @@ -180,20 +191,20 @@ * @throws Exception */ @Override - public List<OrderListWarpper> queryMyAllOrder(Integer state, Integer pageNum, Integer size, Integer uid) throws Exception { + public List<OrderListWarpper> queryMyAllOrder(Integer state, Integer pageNum, Integer size, Integer uid, Integer language) throws Exception { pageNum = (pageNum - 1) * size; List<Map<String, Object>> datas = new ArrayList<>(); //出租车 // List<Map<String, Object>> list = orderTaxiService.queryMyAllOrder(state, uid); // datas.addAll(list); //专车 - List<Map<String, Object>> list1 = orderPrivateCarService.queryMyAllOrder(state, uid); + List<Map<String, Object>> list1 = orderPrivateCarService.queryMyAllOrder(state, uid, language); datas.addAll(list1); //跨城 // List<Map<String, Object>> list2 = orderCrossCityService.queryMyAllOrder(state, uid); // datas.addAll(list2); //小件物流 - List<Map<String, Object>> list3 = orderLogisticsService.queryMyAllOrder(state, uid); + List<Map<String, Object>> list3 = orderLogisticsService.queryMyAllOrder(state, uid, language); datas.addAll(list3); List<OrderListWarpper> orderListWarpper = OrderListWarpper.getOrderListWarpper(datas); @@ -218,11 +229,11 @@ * @return */ @Override - public Map<String, Object> queryPushOrder(Integer orderId, Integer orderType, String lon, String lat) throws Exception{ + public Map<String, Object> queryPushOrder(Integer orderId, Integer orderType, String lon, String lat, Integer language) throws Exception{ Map<String, Object> map = null; switch (orderType){ case 1://专车 - map = orderPrivateCarService.queryPushOrder(orderId); + map = orderPrivateCarService.queryPushOrder(orderId, language); DistancematrixVo distancematrix = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(lat), Double.valueOf(lon)); map.put("startDistance", null != distancematrix ? distancematrix.getDistance() / 1000 : 0); @@ -233,30 +244,30 @@ Integer orderSource = Integer.valueOf(String.valueOf(map.get("orderSource"))); if(orderSource == 1 || orderSource == 2 || orderSource == 3){ if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){ - map.put("type", "乘客创建"); + map.put("type", language == 1 ? "乘客创建" : language == 2 ? "Passenger creation" : "Créé par passager"); } if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){ - map.put("type", "改派"); + map.put("type", language == 1 ? "改派" : language == 2 ? "reassignment" : "recruté"); } if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){ - map.put("type", "预约"); + map.put("type", language == 1 ? "预约" : language == 2 ? "Make an appointment" : "rendez-vous"); } if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){ - map.put("type", "改派"); + map.put("type", language == 1 ? "改派" : language == 2 ? "reassignment" : "recruté"); } } if(orderSource == 5){ if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){ - map.put("type", "调度创建"); + map.put("type", language == 1 ? "调度创建" : language == 2 ? "Scheduling creation" : "Création de planning"); } if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 1 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){ - map.put("type", "改派"); + map.put("type", language == 1 ? "改派" : language == 2 ? "reassignment" : "recruté"); } if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){ - map.put("type", "预约"); + map.put("type", language == 1 ? "预约" : language == 2 ? "Make an appointment" : "rendez-vous"); } if(Integer.valueOf(String.valueOf(map.get("orderType"))) == 2 && Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){ - map.put("type", "改派"); + map.put("type", language == 1 ? "改派" : language == 2 ? "reassignment" : "recruté"); } } break; @@ -331,7 +342,7 @@ // } break; case 4://市内小件物流 - map = orderLogisticsService.queryPushOrder(orderId); + map = orderLogisticsService.queryPushOrder(orderId, language); DistancematrixVo distancematrix1 = GoogleMapUtil.getDistancematrix(Double.valueOf(map.get("startLat").toString()), Double.valueOf(map.get("startLon").toString()), Double.valueOf(lat), Double.valueOf(lon)); map.put("startDistance", null != distancematrix1 ? distancematrix1.getDistance() / 1000 : 0); @@ -342,18 +353,18 @@ Integer orderSource3 = Integer.valueOf(String.valueOf(map.get("orderSource"))); if(orderSource3 == 1 || orderSource3 == 2 || orderSource3 == 3){ if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){ - map.put("type", "乘客创建"); + map.put("type", language == 1 ? "乘客创建" : language == 2 ? "Passenger creation" : "Créé par passager"); } if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){ - map.put("type", "改派"); + map.put("type", language == 1 ? "改派" : language == 2 ? "reassignment" : "recruté"); } } if(orderSource3 == 5){ if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 1){ - map.put("type", "调度创建"); + map.put("type", language == 1 ? "调度创建" : language == 2 ? "Scheduling creation" : "Création de planning"); } if(Integer.valueOf(String.valueOf(map.get("isReassign"))) == 2){ - map.put("type", "改派"); + map.put("type", language == 1 ? "改派" : language == 2 ? "reassignment" : "recruté"); } } break; @@ -1053,8 +1064,9 @@ @Override - public ResultUtil payOrder(Integer uid, Integer orderId, Integer orderType, Integer payType, Integer language) throws Exception { + public ResultUtil payOrder(Integer uid, Integer orderId, Integer orderType, Integer payType, Integer bankCardId, Integer language) throws Exception { Double money = 0D; + Driver driver = driverService.selectById(uid); if(orderType == 1){//专车 OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId); money = orderPrivateCar.getPayMoney(); @@ -1064,14 +1076,11 @@ if(orderPrivateCar.getDriverPay() == 2){ return ResultUtil.error(language == 1 ? "不能重复支付" : language == 2 ? "Non-repeatable payment" : "Aucun paiement en double"); } - if(payType == 2){//余额支付 - Driver driver = driverService.selectById(uid); + if(payType == 3){//余额支付 if(driver.getBalance().compareTo(money) < 0){ return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient account balance" : "Solde insuffisant du compte"); } } - orderPrivateCar.setDriverPay(2); - orderPrivateCarService.updateById(orderPrivateCar); } if(orderType == 4){//小件 OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId); @@ -1082,22 +1091,66 @@ if(orderLogistics.getDriverPay() == 2){ return ResultUtil.error(language == 1 ? "不能重复支付" : language == 2 ? "Non-repeatable payment" : "Aucun paiement en double"); } - if(payType == 2){//余额支付 - Driver driver = driverService.selectById(uid); + if(payType == 3){//余额支付 if(driver.getBalance().compareTo(money) < 0){ return ResultUtil.error(language == 1 ? "账户余额不足" : language == 2 ? "Insufficient account balance" : "Solde insuffisant du compte"); } } - orderLogistics.setDriverPay(2); - orderLogisticsService.updateById(orderLogistics); } if(0 < money){ - 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(driver.getPhone())); + checkoutRequest.setCustomerEmail(driver.getEmail()); + checkoutRequest.setAccountNumber(driver.getPhone()); + checkoutRequest.setCustomerFirstName(driver.getFirstName()); + checkoutRequest.setCustomerLastName(driver.getLastName()); + checkoutRequest.setRequestAmount(money); + checkoutRequest.setMerchantTransactionId(merchantTransactionId); + checkoutRequest.setRequestDescription("Travel completion payment"); + checkoutRequest.setCallbackUrl(callbackPath + "/base/wxPayOrderTaxi"); + checkoutRequest.setPendingRedirectUrl(""); + checkoutRequest.setSuccessRedirectUrl("http://182.160.16.251:81/payMoney/pages/success.html"); + checkoutRequest.setFailRedirectUrl("http://182.160.16.251:81/payMoney/pages/fail.html"); + ResultUtil resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest); + if(resultUtil.getCode()==200){ + paymentRecordService.saveData(1, uid, 2, orderId, orderType, 1, money, null, 1);//添加预支付数据 + }else{ + resultUtil = ResultUtil.error(language == 1 ? "支付失败" : language == 2 ? "Payment failure" : "Paiement échoué", ""); + } + return resultUtil; } - if(payType == 2){//余额支付 - Driver driver = driverService.selectById(uid); + + 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(driver.getEmail()); + checkoutRequest.setAccountNumber(bankCard.getCode()); + checkoutRequest.setCustomerFirstName(bankCard.getFirstName()); + checkoutRequest.setCustomerLastName(bankCard.getLastName()); + checkoutRequest.setRequestAmount(money); + checkoutRequest.setMerchantTransactionId(merchantTransactionId); + checkoutRequest.setRequestDescription("Travel completion payment"); + checkoutRequest.setCallbackUrl(callbackPath + "/base/wxPayOrderTaxi"); + checkoutRequest.setPendingRedirectUrl(""); + checkoutRequest.setSuccessRedirectUrl("http://182.160.16.251:81/payMoney/pages/success.html"); + checkoutRequest.setFailRedirectUrl("http://182.160.16.251:81/payMoney/pages/fail.html"); + ResultUtil resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest); + + if(resultUtil.getCode()==200){ + paymentRecordService.saveData(1, uid, 2, orderId, orderType, 2, money, null, 1);//添加预支付数据 + }else{ + resultUtil = ResultUtil.error(language == 1 ? "支付失败" : language == 2 ? "Payment failure" : "Paiement échoué", ""); + } + return resultUtil; + } + if(payType == 3){//余额支付 driver.setBalance(driver.getBalance() - money); if(driver.getLaveBusinessMoney().compareTo(money) < 0){ double b = money - driver.getLaveBusinessMoney(); @@ -1108,9 +1161,19 @@ driver.setLaveBusinessMoney(driver.getLaveBusinessMoney() - money); driverService.updateById(driver); } - } - transactionDetailsService.saveData(uid, "现金收款代付", money, 2, 1, 2, orderType, orderId); + if(orderType == 1){//专车 + OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId); + orderPrivateCar.setDriverPay(2); + orderPrivateCarService.updateById(orderPrivateCar); + } + if(orderType == 4){//小件 + OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId); + orderLogistics.setDriverPay(2); + orderLogisticsService.updateById(orderLogistics); + } + transactionDetailsService.saveData(uid, "现金收款代付", money, 2, 1, 2, orderType, orderId); + } } return ResultUtil.success(); } -- Gitblit v1.7.1