From a1dd6582ec1a00911095ad7023e8935300eab93e Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期四, 16 一月 2025 19:09:35 +0800 Subject: [PATCH] 修改 --- UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml | 1 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/TransactionDetails.java | 13 ++ UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/controller/OrderTaxiController.java | 4 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java | 33 ++++-- UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Company.java | 38 +++++++ UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java | 137 ++++++++++++++++++-------- UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IOrderTaxiService.java | 2 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/warpper/OrderTaxiWarpper.java | 10 ++ UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/ITransactionDetailsService.java | 15 +++ UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/TransactionDetailsServiceImpl.java | 29 +++++ 10 files changed, 223 insertions(+), 59 deletions(-) diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java index e6bb96d..f14e98f 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java @@ -28,6 +28,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.*; @@ -90,6 +91,8 @@ @Autowired private IOrderCancelService orderCancelService; + @Autowired + private PayMoneyUtil payMoneyUtil; @Value("${pushMinistryOfTransport}") private boolean pushMinistryOfTransport; @@ -1247,33 +1250,37 @@ @PostMapping("/base/wxPayOrderTaxi") public void wxPayOrderTaxi(HttpServletRequest request, HttpServletResponse response){ try { - Map<String, String> map = icbcPayUtil.payCallback(request); + System.out.println("完成订单微信支付回调"); + Map<String, String> map = payMoneyUtil.weixinpayCallback(request); + System.out.println("wx支付信息:"+map); + + if(null != map){ + String order_id = map.get("transaction_id"); String out_trade_no = 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(out_trade_no) && ToolUtil.isNotEmpty(order_id) && s.equals("0")){ - String[] split = out_trade_no.split(","); + String result = map.get("result"); + String total_fee = map.get("total_fee"); + String transaction_id = map.get("transaction_id"); + + if(ToolUtil.isNotEmpty(out_trade_no) && ToolUtil.isNotEmpty(order_id)){ + PrintWriter out = response.getWriter(); + out.write(result); + out.flush(); + out.close(); + String[] split = out_trade_no.split("_"); Integer id = Integer.valueOf(split[0]); Integer type = Integer.valueOf(split[1]); switch (type){ case 1: - orderPrivateCarService.payOrderPrivateCarCallback(id, order_id, 1); break; case 2: - orderTaxiService.payOrderTaxiCallback(id, order_id, 1); + orderTaxiService.payOrderTaxiCallback(id, order_id, 2); break; case 3: - orderCrossCityService.payOrderCrossCityCallback(id, order_id, 1); break; case 4: - orderLogisticsService.payOrderLogisticsCallback(id, order_id, 1); break; case 5: - orderLogisticsService.payOrderLogisticsCallback(id, order_id, 1); break; } } diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Company.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Company.java index aa38c5c..6cabb63 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Company.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Company.java @@ -253,7 +253,45 @@ */ @TableField("insertTime") private Date insertTime; + /** + * 司机接单限制 + */ + @TableField("driverRestriction") + private Double driverRestriction; + /** + * 固定费用 + */ + @TableField("fixedDeduction") + private Double fixedDeduction; + /** + * 线上下单扣除 + */ + @TableField("percentageDeduction") + private Double percentageDeduction; + public Double getFixedDeduction() { + return fixedDeduction; + } + + public void setFixedDeduction(Double fixedDeduction) { + this.fixedDeduction = fixedDeduction; + } + + public Double getPercentageDeduction() { + return percentageDeduction; + } + + public void setPercentageDeduction(Double percentageDeduction) { + this.percentageDeduction = percentageDeduction; + } + + public Double getDriverRestriction() { + return driverRestriction; + } + + public void setDriverRestriction(Double driverRestriction) { + this.driverRestriction = driverRestriction; + } public Integer getId() { return id; } diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/controller/OrderTaxiController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/controller/OrderTaxiController.java index fbc5480..6fb45e2 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/controller/OrderTaxiController.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/controller/OrderTaxiController.java @@ -49,12 +49,14 @@ }) public ResultUtil<BaseWarpper> taxiOrder(OrderTaxiWarpper orderTaxiWarpper, HttpServletRequest request){ try { + System.err.println(orderTaxiWarpper); OrderTaxi orderTaxi = OrderTaxiWarpper.getOrderTaxi(orderTaxiWarpper); + System.err.println(orderTaxiWarpper); Integer uid = userInfoService.getUserIdFormRedis(request); if(null == uid){ return ResultUtil.tokenErr(); } - return orderTaxiService.taxiOrder(orderTaxi, uid); + return orderTaxiService.taxiOrder(orderTaxi, uid, orderTaxiWarpper.getAreaCode()); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml index ba10711..8cb61eb 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml @@ -213,6 +213,7 @@ a.endLat as endLat, a.endAddress as endAddress, a.driverId as driverId, + a.payManner as payManner, a.orderMoney as orderMoney, a.startMileage as startMileage, a.startMoney as startMoney, diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/TransactionDetails.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/TransactionDetails.java index 95bfa8d..5d63a58 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/TransactionDetails.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/TransactionDetails.java @@ -68,6 +68,19 @@ */ @TableField("placeOrderWay") private Integer placeOrderWay; + /** + * 公司id + */ + @TableField("companyId") + private Integer companyId; + + public Integer getCompanyId() { + return companyId; + } + + public void setCompanyId(Integer companyId) { + this.companyId = companyId; + } public Integer getId() { return id; diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IOrderTaxiService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IOrderTaxiService.java index f2eabed..e3a28e2 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IOrderTaxiService.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IOrderTaxiService.java @@ -26,7 +26,7 @@ * @return * @throws Exception */ - ResultUtil<BaseWarpper> taxiOrder(OrderTaxi orderTaxi, Integer uid) throws Exception; + ResultUtil<BaseWarpper> taxiOrder(OrderTaxi orderTaxi, Integer uid,String areaCode) throws Exception; /** diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/ITransactionDetailsService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/ITransactionDetailsService.java index 9592bf4..e18a494 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/ITransactionDetailsService.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/ITransactionDetailsService.java @@ -35,4 +35,19 @@ */ void saveDataTaxi(Integer userId, String remark, Double money, Integer state, Integer type, Integer userType, Integer orderType, Integer orderId, Integer placeOrderWay) throws Exception; + /** + * 添加数据 + * @param userId 对象id + * @param remark 备注 + * @param money 金额 + * @param state 状态(1=添加,2=减少) + * @param type 类型(1=金额,2=积分) + * @param userType 用户类型(1=用户,2=司机) + * @param orderType 订单类型(1=专车,2=出租车,3=城际,4=小件物流,5=余额充值,6=余额提现,7=积分兑换) + * @param placeOrderWay 下单方式 1=语音下单 2=一键下单 3=后台添加订单 4=普通订单 + * @param orderId + * @throws Exception + */ + void saveDataTaxi(Integer userId, String remark, Double money, Integer state, + Integer type, Integer userType, Integer orderType, Integer orderId, Integer placeOrderWay,Integer companyId) throws Exception; } diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java index 7041973..2f2386d 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java @@ -20,9 +20,11 @@ import com.stylefeng.guns.modular.system.warpper.OrderServerWarpper; import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper; import com.stylefeng.guns.modular.taxi.dao.TPhoneMapper; +import com.stylefeng.guns.modular.taxi.dao.TransactionDetailsMapper; import com.stylefeng.guns.modular.taxi.model.OrderTaxi; import com.stylefeng.guns.modular.taxi.model.PaymentRecord; import com.stylefeng.guns.modular.taxi.model.TPhone; +import com.stylefeng.guns.modular.taxi.model.TransactionDetails; import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService; import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService; @@ -164,7 +166,6 @@ - @Resource private TPhoneMapper tPhoneMapper; @@ -177,7 +178,8 @@ * @throws Exception */ @Override - public synchronized ResultUtil<BaseWarpper> taxiOrder(OrderTaxi orderTaxi, Integer uid) throws Exception { + public synchronized ResultUtil<BaseWarpper> taxiOrder(OrderTaxi orderTaxi, Integer uid,String areaCode) throws Exception { + System.out.println("出租车==========================================="+orderTaxi); //定义用户所属公司 UserInfo userInfo1 = userInfoService.selectById(uid); if (userInfo1.getIsBlack()==1){ @@ -577,8 +579,9 @@ placeOrderWay = 3; break; } + Company company = companyService.selectById(orderTaxi.getCompanyId()); //添加交易明细 - transactionDetailsService.saveDataTaxi(uid, "取消订单", query.getMoney(), 2, 1, 1, 2, id,placeOrderWay); + transactionDetailsService.saveDataTaxi(uid, "取消订单", query.getMoney(), 2, 1, 1, 2, id,placeOrderWay,company.getId()); userInfoService.updateById(userInfo); //解除小号绑定 @@ -778,7 +781,7 @@ userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); SysIntegral query1 = sysIntegralMapper.query(orderTaxi.getCompanyId()); - userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分 +// userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分 Integer placeOrderWay = null; switch (orderTaxi.getOrderSource()){ case 2: @@ -798,7 +801,7 @@ break; } //添加交易明细 - transactionDetailsService.saveDataTaxi(uid, "完成订单", orderMoney, 2, 1, 1, 2, orderId,placeOrderWay); +// transactionDetailsService.saveDataTaxi(uid, "完成订单", orderMoney, 2, 1, 1, 2, orderId,placeOrderWay); userInfoService.updateById(userInfo); orderTaxi.setState(8); @@ -818,24 +821,46 @@ } //添加已收入明细 - Company company = companyService.selectById(orderTaxi.getCompanyId()); - Double taxi = company.getTaxiMoney(); - BigDecimal d = null;//企业收入 - BigDecimal c = null;//司机收入 - if(company.getIsTaxiFixedOrProportional() == 2){//固定 - d = new BigDecimal(taxi); - c = new BigDecimal(orderTaxi.getOrderMoney()).subtract(d);//只有出行金额参与抽成,其余归属司机 - } - if(company.getIsTaxiFixedOrProportional() == 1){//比例 - d = new BigDecimal(orderTaxi.getTravelMoney()).multiply(new BigDecimal(taxi).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_EVEN); - c = new BigDecimal(orderTaxi.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); - } - incomeService.saveData(1, orderTaxi.getCompanyId(), 2, orderTaxi.getId(), 2, d.doubleValue()); - incomeService.saveData(2, orderTaxi.getDriverId(), 2, orderTaxi.getId(), 2, c.doubleValue()); +// Company company = companyService.selectById(orderTaxi.getCompanyId()); +// Double taxi = company.getTaxiMoney(); +// BigDecimal d = null;//企业收入 +// BigDecimal c = null;//司机收入 +// if(company.getIsTaxiFixedOrProportional() == 2){//固定 +// d = new BigDecimal(taxi); +// c = new BigDecimal(orderTaxi.getOrderMoney()).subtract(d);//只有出行金额参与抽成,其余归属司机 +// } +// if(company.getIsTaxiFixedOrProportional() == 1){//比例 +// d = new BigDecimal(orderTaxi.getTravelMoney()).multiply(new BigDecimal(taxi).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_EVEN); +// c = new BigDecimal(orderTaxi.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); +// } +// incomeService.saveData(1, orderTaxi.getCompanyId(), 2, orderTaxi.getId(), 2, d.doubleValue()); +// incomeService.saveData(2, orderTaxi.getDriverId(), 2, orderTaxi.getId(), 2, c.doubleValue()); Driver driver = driverService.selectById(orderTaxi.getDriverId()); - driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); +// driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); +// driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); +// driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + Company company = companyService.selectById(driver.getFranchiseeId()); + if(Objects.isNull(company)){ + company = companyService.selectById(driver.getCompanyId()); + } + // 司机收入 + double moneyTwo; + // 平台收入 + double money; + if(orderTaxi.getOrderSource() == 2 || orderTaxi.getOrderSource() == 3){ + double v = company.getPercentageDeduction() / 100; + money = v * orderTaxi.getOrderMoney(); + moneyTwo = orderTaxi.getOrderMoney()-money; + }else { + money = company.getFixedDeduction(); + moneyTwo = orderTaxi.getOrderMoney()-money; + } + driver.setBalance(driver.getBalance() + moneyTwo); + // 新增扣除使用费记录 + transactionDetailsService.saveDataTaxi(driver.getId(), "软件使用费", money, 2, 1, 2, 6, orderTaxi.getId(),placeOrderWay,company.getId()); + // 司机订单收入 + transactionDetailsService.saveDataTaxi(driver.getId(), "完成订单", moneyTwo, 1, 1, 2, 2, orderTaxi.getId(),placeOrderWay,company.getId()); + driverService.updateById(driver); // TODO: 2020/5/24 这里需要给司机和用户推送订单状态 @@ -1076,8 +1101,8 @@ if(null == distance){ System.err.println("查询距离出错了"); }else{ - d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString(); - t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + ""; + d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000),2, RoundingMode.HALF_UP).toString(); + t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60),2, RoundingMode.HALF_UP) + ""; } orderServerWarpper.setReservationMileage("0"); orderServerWarpper.setReservationTime("0"); @@ -1226,8 +1251,9 @@ placeOrderWay = 3; break; } - //添加交易明细 - transactionDetailsService.saveDataTaxi(orderTaxi.getUserId(), "完成订单", query.getAmount(), 2, 1, 1, 2, query.getOrderId(),placeOrderWay); +// Company company = companyService.selectById(orderTaxi.getCompanyId()); +// //添加交易明细 +// transactionDetailsService.saveDataTaxi(orderTaxi.getUserId(), "完成订单", query.getAmount(), 2, 1, 1, 2, query.getOrderId(),placeOrderWay,company.getId()); orderTaxi.setState(8); orderTaxi.setPayType(type); orderTaxi.setPayMoney(query.getAmount()); @@ -1258,24 +1284,46 @@ paymentRecordService.updateById(query); //添加已收入明细 - Company company = companyService.selectById(orderTaxi.getCompanyId()); - Double taxi = company.getTaxiMoney(); - BigDecimal d = null;//企业收入 - BigDecimal c = null;//司机收入 - if(company.getIsTaxiFixedOrProportional() == 2){//固定 - d = new BigDecimal(taxi); - c = new BigDecimal(orderTaxi.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); - } - if(company.getIsTaxiFixedOrProportional() == 1){//比例 - d = new BigDecimal(orderTaxi.getTravelMoney()).multiply(new BigDecimal(taxi).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_EVEN); - c = new BigDecimal(orderTaxi.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); - } - incomeService.saveData(1, orderTaxi.getCompanyId(), 2, orderTaxi.getId(), 2, d.doubleValue()); - incomeService.saveData(2, orderTaxi.getDriverId(), 2, orderTaxi.getId(), 2, c.doubleValue()); +// Company company = companyService.selectById(orderTaxi.getCompanyId()); +// Double taxi = company.getTaxiMoney(); +// BigDecimal d = null;//企业收入 +// BigDecimal c = null;//司机收入 +// if(company.getIsTaxiFixedOrProportional() == 2){//固定 +// d = new BigDecimal(taxi); +// c = new BigDecimal(orderTaxi.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); +// } +// if(company.getIsTaxiFixedOrProportional() == 1){//比例 +// d = new BigDecimal(orderTaxi.getTravelMoney()).multiply(new BigDecimal(taxi).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_EVEN); +// c = new BigDecimal(orderTaxi.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN); +// } +// incomeService.saveData(1, orderTaxi.getCompanyId(), 2, orderTaxi.getId(), 2, d.doubleValue()); +// incomeService.saveData(2, orderTaxi.getDriverId(), 2, orderTaxi.getId(), 2, c.doubleValue()); Driver driver = driverService.selectById(orderTaxi.getDriverId()); - driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); - driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); +// driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); +// driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); +// driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); + Company company = companyService.selectById(driver.getFranchiseeId()); + if(Objects.isNull(company)){ + company = companyService.selectById(driver.getCompanyId()); + } + // 司机收入 + double moneyTwo; + // 平台收入 + double money; + if(orderTaxi.getOrderSource() == 2 || orderTaxi.getOrderSource() == 3){ + double v = company.getPercentageDeduction() / 100; + money = v * orderTaxi.getOrderMoney(); + moneyTwo = orderTaxi.getOrderMoney()-money; + }else { + money = company.getFixedDeduction(); + moneyTwo = orderTaxi.getOrderMoney()-money; + } + driver.setBalance(driver.getBalance() + moneyTwo); + // 新增扣除使用费记录 + transactionDetailsService.saveDataTaxi(driver.getId(), "软件使用费", money, 2, 1, 2, 6, orderTaxi.getId(),placeOrderWay,company.getId()); + // 司机订单收入 + transactionDetailsService.saveDataTaxi(driver.getId(), "完成订单", moneyTwo, 1, 1, 2, 2, orderTaxi.getId(),placeOrderWay,company.getId()); + driverService.updateById(driver); // TODO: 2020/5/24 这里需要给司机和用户推送订单状态 @@ -1338,8 +1386,9 @@ placeOrderWay = 3; break; } + Company company = companyService.selectById(orderTaxi.getCompanyId()); //添加交易明细 - transactionDetailsService.saveDataTaxi(orderTaxi.getUserId(), "取消订单", query.getAmount(), 2, 1, 1, 2, query.getOrderId(),placeOrderWay); + transactionDetailsService.saveDataTaxi(orderTaxi.getUserId(), "取消订单", query.getAmount(), 2, 1, 1, 2, query.getOrderId(),placeOrderWay,company.getId()); orderTaxi.setState(10); //解除小号绑定 if(orderTaxi.getBindId() != null){ diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/TransactionDetailsServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/TransactionDetailsServiceImpl.java index de9163b..13c3d20 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/TransactionDetailsServiceImpl.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/TransactionDetailsServiceImpl.java @@ -74,4 +74,33 @@ transactionDetails.setPlaceOrderWay(placeOrderWay); this.insert(transactionDetails); } + /** + * 添加数据 + * @param userId 对象id + * @param remark 备注 + * @param money 金额 + * @param state 状态(1=添加,2=减少) + * @param type 类型(1=金额,2=积分) + * @param userType 用户类型(1=用户,2=司机) + * @param orderType 订单类型(1=专车,2=出租车,3=城际,4=小件物流,5=余额充值,6=余额提现,7=积分兑换) + * @param placeOrderWay 下单方式 1=语音下单 2=一键下单 3=后台添加订单 4=普通订单 + * @param orderId + * @throws Exception + */ + @Override + public void saveDataTaxi(Integer userId, String remark, Double money, Integer state, Integer type, Integer userType, Integer orderType, Integer orderId, Integer placeOrderWay,Integer companyId) throws Exception { + TransactionDetails transactionDetails = new TransactionDetails(); + transactionDetails.setInsertTime(new Date()); + transactionDetails.setMoney(money); + transactionDetails.setOrderId(orderId); + transactionDetails.setOrderType(orderType); + transactionDetails.setRemark(remark); + transactionDetails.setState(state); + transactionDetails.setType(type); + transactionDetails.setUserId(userId); + transactionDetails.setUserType(userType); + transactionDetails.setPlaceOrderWay(placeOrderWay); + transactionDetails.setCompanyId(companyId); + this.insert(transactionDetails); + } } diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/warpper/OrderTaxiWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/warpper/OrderTaxiWarpper.java index e0b74be..363033b 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/warpper/OrderTaxiWarpper.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/warpper/OrderTaxiWarpper.java @@ -48,6 +48,16 @@ private Integer oldPeople; @ApiModelProperty(dataType = "int", required = true, value = "支付方式 1=平台支付 2=其他支付") private Integer payManner; + @ApiModelProperty(dataType = "int", required = true, value = "区域code") + private String areaCode; + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } public Integer getPayManner() { return payManner; -- Gitblit v1.7.1