xuhy
2025-01-16 2e97a0b58cc60cb076843b3a860732f71762cff7
修改
8个文件已修改
260 ■■■■ 已修改文件
DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/CallbackController.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ZiOnController.java 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/HistoryVo.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TransactionDetails.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITransactionDetailsService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TransactionDetailsServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/MoneyInfoWarpper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/CallbackController.java
@@ -1,6 +1,12 @@
package com.stylefeng.guns.modular.api;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.stylefeng.guns.modular.system.model.Driver;
import com.stylefeng.guns.modular.system.model.TransactionDetails;
import com.stylefeng.guns.modular.system.service.IDriverService;
import com.stylefeng.guns.modular.system.service.IReassignService;
import com.stylefeng.guns.modular.system.service.ITransactionDetailsService;
import com.stylefeng.guns.modular.system.util.PayMoneyUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -9,6 +15,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
import java.util.Map;
/**
@@ -78,4 +85,43 @@
            e.printStackTrace();
        }
    }
    @Autowired
    private ITransactionDetailsService transactionDetailsService;
    @Autowired
    private PayMoneyUtil payMoneyUtil;
    @Autowired
    private IDriverService driverService;
    @ResponseBody
    @PostMapping("/wxRecharge")
    public void wxRecharge(HttpServletRequest request, HttpServletResponse response){
        try {
            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
            if (null != map) {
                String out_trade_no = map.get("out_trade_no");
                String transaction_id = map.get("transaction_id");
                String result = map.get("result");
                TransactionDetails transactionDetails = transactionDetailsService.selectOne(new EntityWrapper<TransactionDetails>()
                        .eq("code", out_trade_no));
                if (transactionDetails!=null){
                    if (transactionDetails.getState()==2){
                        return;
                    }
                    Driver driver = driverService.selectById(transactionDetails.getUserId());
                    if (driver!=null){
                        driver.setBalance(driver.getBalance() + transactionDetails.getMoney());
                        driverService.updateById(driver);
                    }
                    transactionDetails.setState(2);
                    transactionDetailsService.updateById(transactionDetails);
                    PrintWriter out = response.getWriter();
                    out.write(result);
                    out.flush();
                    out.close();
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}
DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ZiOnController.java
@@ -1,4 +1,5 @@
package com.stylefeng.guns.modular.api;
import java.text.SimpleDateFormat;
import java.util.Date;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
@@ -11,8 +12,10 @@
import com.stylefeng.guns.modular.system.dao.TUseMoneyMapper;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.*;
import com.stylefeng.guns.modular.system.util.PayMoneyUtil;
import com.stylefeng.guns.modular.system.util.PushUtil;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.util.UUIDUtil;
import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
@@ -60,10 +63,10 @@
    private IWithdrawalService withdrawalService;
    @Autowired
    private ITRechargeMoneyService rechargeMoneyService;
    @Autowired
    private PayMoneyUtil payMoneyUtil;
    @Autowired
    private TUseMoneyMapper useMoneyMapper;
    @ResponseBody
    @PostMapping ("/money/get")
    @ApiOperation(value = "拿到后台配置的充值金额")
@@ -80,9 +83,39 @@
    @ResponseBody
    @PostMapping ("/recharge")
    @ApiOperation(value = "微信充值操作")
    public ResultUtil recharge(BigDecimal money,HttpServletRequest request){
        return ResultUtil.success();
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(value = "充值金额", name = "money", required = true, dataType = "double"),
    })
    public ResultUtil recharge(BigDecimal money,HttpServletRequest request) throws Exception {
        Integer uid = driverService.getUserIdFormRedis(request);
        if (null == uid) {
            return ResultUtil.tokenErr();
        }
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
        String s = sdf.format(new Date()) + UUIDUtil.getRandomCode(3);
        ResultUtil weixinpay = payMoneyUtil.weixinpay("充值",
                "",
                s,
                money.toString(),
                "/base/wxRecharge",
                "APP");
        if (weixinpay.getCode()==200){
            // 新增扣除使用费记录
            TransactionDetails transactionDetails = new TransactionDetails();
            transactionDetails.setCode(s);
            transactionDetails.setUserId(uid);
            transactionDetails.setInsertTime(new Date());
            transactionDetails.setRemark("充值");
            // 将money转化为double类型
            transactionDetails.setMoney(money.doubleValue());
            transactionDetails.setState(1);
            transactionDetails.setType(1);
            transactionDetails.setUserType(2);
            transactionDetails.setOrderType(5);
            iTransactionDetailsService.insert(transactionDetails);
        }
        return weixinpay;
    }
@@ -231,13 +264,21 @@
            if (state!=null&&state==2){
                eq.eq("state",2);
            }
            eq.orderBy("insertTime",false);
            List<TransactionDetails> transactionDetails = iTransactionDetailsService.selectList(eq);
            if ((state!=null&&state==1)||(state!=null&&state==2)){
                List<HistoryVo> historyVos = new ArrayList<>();
                for (TransactionDetails transactionDetail : transactionDetails) {
                    HistoryVo historyVo  = new HistoryVo();
                    if (transactionDetail.getState()==1){
                        historyVo.setState("充值");
                        switch (transactionDetail.getOrderType()){
                            case 2:
                                historyVo.setState("订单收入");
                                break;
                            default:
                                historyVo.setState("充值");
                                break;
                        }
                        historyVo.setAddordown(1);
                    }else {
                        historyVo.setState("扣除");
@@ -262,7 +303,14 @@
            for (TransactionDetails transactionDetail : transactionDetails) {
                HistoryVo historyVo  = new HistoryVo();
                if (transactionDetail.getState()==1){
                    historyVo.setState("充值");
                    switch (transactionDetail.getOrderType()){
                        case 2:
                            historyVo.setState("订单收入");
                            break;
                        default:
                            historyVo.setState("充值");
                            break;
                    }
                    historyVo.setAddordown(1);
                }else {
                    historyVo.setState("扣除");
DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/HistoryVo.java
@@ -9,6 +9,7 @@
public class HistoryVo {
    Date createTime;
    String state;
    // 0减少 1增加
    Integer addordown;
    Double money;
DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TransactionDetails.java
@@ -23,6 +23,8 @@
     */
    @TableField("userId")
    private Integer userId;
    @TableField("code")
    private String code;
    /**
     * 添加时间
     */
@@ -68,6 +70,27 @@
     */
    @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 String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public Integer getPlaceOrderWay() {
        return placeOrderWay;
DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITransactionDetailsService.java
@@ -20,4 +20,18 @@
     */
    void saveData(Integer userId, String remark, Double money, Integer state,
                  Integer type, Integer userType, Integer orderType, Integer orderId) 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=余额提现)
     * @param orderId
     * @throws Exception
     */
    void saveData(Integer userId, String remark, Double money, Integer state,
                  Integer type, Integer userType, Integer orderType, Integer orderId,Integer companyId) throws Exception;
}
DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TransactionDetailsServiceImpl.java
@@ -41,4 +41,20 @@
        transactionDetails.setUserType(userType);
        this.insert(transactionDetails);
    }
    @Override
    public void saveData(Integer userId, String remark, Double money, Integer state, Integer type, Integer userType, Integer orderType, Integer orderId, 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.setCompanyId(companyId);
        this.insert(transactionDetails);
    }
}
DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/MoneyInfoWarpper.java
@@ -44,6 +44,16 @@
    private Double discountMoney;
    @ApiModelProperty("折扣")
    private Double discount;
    @ApiModelProperty("平台服务费")
    private Double platformFee;
    public Double getPlatformFee() {
        return platformFee;
    }
    public void setPlatformFee(Double platformFee) {
        this.platformFee = platformFee;
    }
    public Double getOrderMoney() {
        return orderMoney;
@@ -223,6 +233,7 @@
            moneyInfoWarpper.setCouponMoney(null != map.get("couponMoney") ? Double.valueOf(map.get("couponMoney").toString()) : 0D);
            moneyInfoWarpper.setDiscountMoney(null != map.get("discountMoney") ? Double.valueOf(map.get("discountMoney").toString()) : 0D);
            moneyInfoWarpper.setDiscount(null != map.get("discount") ? Double.valueOf(map.get("discount").toString()) : 0D);
            moneyInfoWarpper.setPlatformFee(null != map.get("platformFee") ? Double.valueOf(map.get("platformFee").toString()) : 0D);
        }
        return moneyInfoWarpper;
    }
DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
@@ -46,7 +46,8 @@
    @Autowired
    private GDMapElectricFenceUtil gdMapElectricFenceUtil;
    @Autowired
    private ITransactionDetailsService transactionDetailsService;
    @Autowired
    private GDFalconUtil gdFalconUtil;
@@ -208,7 +209,22 @@
            Company company = companyService.selectById(driver.getCompanyId());
            orderTaxi.setState(9);
            driver.setState(2);
            driver.setBalance(driver.getBalance() - company.getFixedDeduction());
//            driver.setBalance(driver.getBalance() - company.getFixedDeduction());
            if(Objects.isNull(company)){
                company = companyService.selectById(driver.getCompanyId());
            }
            // 平台收入
            double money;
            if(orderTaxi.getOrderSource() == 2 || orderTaxi.getOrderSource() == 3){
                double v = company.getPercentageDeduction() / 100;
                money = v * orderTaxi.getOrderMoney();
            }else {
                money = company.getFixedDeduction();
            }
            driver.setBalance(driver.getBalance() - money);
            // 新增扣除使用费记录
            transactionDetailsService.saveData(driver.getId(), "软件使用费", money, 2, 1, 2, 6, orderTaxi.getId(),company.getId());
            driverService.updateById(driver);
            Car car = carService.selectById(driver.getCarId());
@@ -438,33 +454,37 @@
                orderTaxi.setGetoffLat(lat);
                orderTaxi.setGetoffAddress(address);
                orderTaxi.setGetoffTime(new Date());
                orderTaxi.setState(6);
                if(orderTaxi.getPayManner()==3){
                    orderTaxi.setState(9);
                }else {
                    orderTaxi.setState(6);
                }
                orderTaxi.setEndServiceTime(new Date());
//                List<TUseMoney> money = useMoneyMapper.selectList(null);
                Driver driver = driverService.selectById(orderTaxi.getDriverId());
                Company company = companyService.selectById(driver.getCompanyId());
                TransactionDetails transactionDetails = new TransactionDetails();
                if(orderTaxi.getOrderSource() == 2 || orderTaxi.getOrderSource() == 3){
                    double v = company.getPercentageDeduction() / 100;
                    v = v * orderTaxi.getOrderMoney();
                    driver.setBalance(driver.getBalance() - v);
                    transactionDetails.setMoney(v);
                }else {
                    driver.setBalance(driver.getBalance() - company.getFixedDeduction());
                    transactionDetails.setMoney(company.getFixedDeduction());
                }
                // 新增扣除使用费记录
                transactionDetails.setUserId(driver.getId());
                transactionDetails.setInsertTime(new Date());
                transactionDetails.setRemark("软件使用费");
                transactionDetails.setState(2);
                transactionDetails.setType(1);
                transactionDetails.setUserType(2);
                transactionDetails.setOrderType(6);
                transactionDetails.setOrderId(orderTaxi.getId());
                transactionDetailsMapper.insert(transactionDetails);
                driverService.updateById(driver);
//                Driver driver = driverService.selectById(orderTaxi.getDriverId());
//                Company company = companyService.selectById(driver.getCompanyId());
//                TransactionDetails transactionDetails = new TransactionDetails();
//                if(orderTaxi.getOrderSource() == 2 || orderTaxi.getOrderSource() == 3){
//                    double v = company.getPercentageDeduction() / 100;
//                    v = v * orderTaxi.getOrderMoney();
//                    driver.setBalance(driver.getBalance() - v);
//                    transactionDetails.setMoney(v);
//                }else {
//                    driver.setBalance(driver.getBalance() - company.getFixedDeduction());
//                    transactionDetails.setMoney(company.getFixedDeduction());
//                }
//                // 新增扣除使用费记录
//                transactionDetails.setUserId(driver.getId());
//                transactionDetails.setInsertTime(new Date());
//                transactionDetails.setRemark("软件使用费");
//                transactionDetails.setState(2);
//                transactionDetails.setType(1);
//                transactionDetails.setUserType(2);
//                transactionDetails.setOrderType(6);
//                transactionDetails.setOrderId(orderTaxi.getId());
//                transactionDetailsMapper.insert(transactionDetails);
//                driverService.updateById(driver);
                pushUtil.removeTask(orderId, 2);//删除定时任务,结束推送数据
                systemNoticeService.addSystemNotice(1, "司机已结束本次行程,谢谢使用", orderTaxi.getUserId());
                break;
@@ -500,9 +520,11 @@
        if(type == 2){//其他支付,不需要操作,直接完成订单
            orderTaxi = this.setMoney1(orderTaxi, travelFee, parkingFee, crossingFee);
            orderTaxi.setState(7);
        }else{
        }else if (type == 1){
            orderTaxi = this.setMoney2(orderTaxi, parkingFee, crossingFee);
            orderTaxi.setState(7);
        }else {
            orderTaxi.setState(8);
        }
        this.updateById(orderTaxi);
@@ -776,10 +798,18 @@
        if(orderTaxi.getState() == 5 || orderTaxi.getState() == 6){//服务中的时候获取实时费用数据
            if(orderTaxi.getPayManner() == 2){//其他支付,不需要操作,直接完成订单
                orderTaxi = this.setMoney1(orderTaxi, 0D, 0D, 0D);
            }else{
            }else if(orderTaxi.getPayManner() == 1){
                orderTaxi = this.setMoney2(orderTaxi, 0D, 0D);
            }else {
                // 无
            }
        }
        // 查询平台服务费
        TransactionDetails transactionDetails = transactionDetailsService.selectOne(new EntityWrapper<TransactionDetails>()
                .eq("orderId", orderId)
                .eq("orderType", 6)
                .last("LIMIT 1"));
        Map<String, Object> map = new HashMap<>();
        map.put("orderMoney", orderTaxi.getOrderMoney());//订单金额
@@ -799,6 +829,7 @@
        map.put("couponMoney", orderTaxi.getCouponMoney());//优惠券抵扣金额
        map.put("discountMoney", orderTaxi.getDiscountMoney());//折扣抵扣金额
        map.put("discount", orderTaxi.getDiscount());//折扣
        map.put("platformFee", transactionDetails.getMoney());//折扣
        return map;
    }