Pu Zhibing
2 天以前 50350c428347d68ea1c8fa4fcc7633e4dc2550bc
修改bug
10个文件已修改
169 ■■■■■ 已修改文件
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverWorkServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/TOrderCheckServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/AppUserServiceImpl.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/DriverServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/TOrderCheckServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/DriverController.java
@@ -19,15 +19,19 @@
import com.supersavedriving.driver.modular.system.util.ResultUtil;
import com.supersavedriving.driver.modular.system.util.UUIDUtil;
import com.supersavedriving.driver.modular.system.util.juhe.OCRUtil;
import com.supersavedriving.driver.modular.system.util.qianyuntong.EmployeeUtil;
import com.supersavedriving.driver.modular.system.util.qianyuntong.SMSUtil;
import com.supersavedriving.driver.modular.system.util.qianyuntong.UserUtil;
import com.supersavedriving.driver.modular.system.util.qianyuntong.model.AddAccountInfoRequest;
import com.supersavedriving.driver.modular.system.util.qianyuntong.model.QYTUserInfo;
import com.supersavedriving.driver.modular.system.util.qianyuntong.model.SendSmsRequest;
import com.supersavedriving.driver.modular.system.util.separateAccounts.StrUtil;
import com.supersavedriving.driver.modular.system.util.separateAccounts.TransferUtil;
import com.supersavedriving.driver.modular.system.util.zhenglian.TokenUtil;
import com.supersavedriving.driver.modular.system.util.zhenglian.ZhengLianUtil;
import com.supersavedriving.driver.modular.system.util.zhenglian.model.TokenRequest;
import com.supersavedriving.driver.modular.system.util.zhenglian.model.TradeTerminalInfo;
import com.supersavedriving.driver.modular.system.util.zhenglian.model.ZLUserInfo;
import com.supersavedriving.driver.modular.system.warpper.*;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -43,6 +47,8 @@
import java.io.File;
import java.io.InputStream;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
@@ -1430,13 +1436,48 @@
                    "\t 09 开通支付账户\n" +
                    "\t 10 打开付款码", name = "type", required = true, dataType = "String"),
    })
    public ResponseWarpper<String> getZLToken(String ip, String mac, String type, HttpServletRequest request){
    public ResponseWarpper<String> getZLToken(String ip, String mac, String type){
        try {
            Integer uid = driverService.getUserByRequest();
            if(null == uid){
                return ResponseWarpper.tokenErr();
            }
            Driver driver = driverService.selectById(uid);
            //获取证联数据
            if(null == driver.getCustId() || 0 == driver.getAccOpenFlag()){
                TradeTerminalInfo tradeTerminalInfo = new TradeTerminalInfo();
                tradeTerminalInfo.setTerminal("1");
                InetAddress inetAddress = InetAddress.getLocalHost();
                tradeTerminalInfo.setIp(inetAddress.getHostAddress());
                NetworkInterface networkInterface = NetworkInterface.getByInetAddress(inetAddress);
                byte[] mac1 = networkInterface.getHardwareAddress();
                StringBuilder macAddress = new StringBuilder();
                for (int i = 0; i < mac1.length; i++) {
                    macAddress.append(String.format("%02X%s", mac1[i], (i < mac1.length - 1) ? "-" : ""));
                }
                tradeTerminalInfo.setMac(macAddress.toString());
                ZLUserInfo userInfo = ZhengLianUtil.getUserInfo(driver.getEmpId().toString(), tradeTerminalInfo);
                if(null != userInfo){
                    driver.setCustId(userInfo.getCustId());
                    driver.setAccOpenFlag(userInfo.getAccOpenFlag());
                    driverService.updateById(driver);
                }
            }
            //同步到中台
            if(null != driver.getAccOpenFlag() && 1 == driver.getAccOpenFlag() && 0 == driver.getIsSynchronous()){
                AddAccountInfoRequest request = new AddAccountInfoRequest();
                request.setCustId(driver.getCustId());
                request.setAccountNo(driver.getEmpId().toString());
                request.setAccountName(driver.getName());
                request.setMobile(driver.getPhone());
                Integer status = EmployeeUtil.addAccountInfo(request);
                if(0 == status){
                    driver.setIsSynchronous(1);
                    driverService.updateById(driver);
                }
            }
            TokenRequest tokenRequest = new TokenRequest();
            tokenRequest.setAppUserId(driver.getEmpId().toString());
            tokenRequest.setUserName(driver.getName());
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/api/OrderController.java
@@ -388,6 +388,10 @@
            return new ResponseWarpper(500, e.getMessage());
        }
    }
    @ResponseBody
    @PostMapping("/api/order/transferOrderVerify")
//    @ServiceLog(name = "司机转单操作", url = "/api/order/transferOrder")
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java
@@ -23,6 +23,7 @@
import com.supersavedriving.driver.modular.system.util.MiniPay.MiniAppPay;
import com.supersavedriving.driver.modular.system.util.mongodb.model.Location;
import com.supersavedriving.driver.modular.system.util.qianyuntong.QianYunTongConfig;
import com.supersavedriving.driver.modular.system.util.qianyuntong.UserUtil;
import com.supersavedriving.driver.modular.system.util.rongyun.RongYunUtil;
import com.supersavedriving.driver.modular.system.util.weChat.WeChatUtil;
import com.supersavedriving.driver.modular.system.util.weChat.model.Code2Session;
@@ -165,6 +166,10 @@
        if(null != driver && driver.getApprovalStatus() == 2){
            return ResultUtil.error("该手机账号已审核通过,请直接登录。");
        }
        Boolean b = UserUtil.idCardAuth(driverRegisterWarpper.getName(), driverRegisterWarpper.getIdcard());
        if(b){
            return ResultUtil.error("姓名和身份证号码不匹配");
        }
        //账号审核拒绝后的处理
        if(null != driver && driver.getApprovalStatus() == 3){
@@ -184,6 +189,8 @@
            }catch (Exception e){
                return ResultUtil.error(e.getMessage());
            }
            driver.setSex(1);
            driver.setPassword(ShiroKit.md5("123456", salt));
            driver.setCreateTime(new Date());
            this.insert(driver);
            String s = wechatMiniProgramORCode(driver.getId());
@@ -611,7 +618,7 @@
        Double lat = driverPositionWarpper.getLat();
        Integer driverId = driverPositionWarpper.getDriverId();
        Integer orderId = driverPositionWarpper.getOrderId();
        log.info("存储地理空间:{}", driverPositionWarpper);
//        log.info("存储地理空间:{}", driverPositionWarpper);
        redisUtil.setStrValue("daijia:DRIVER" + driverId, lon + "," + lat, 30);
        Query query = Query.query(Criteria.where("driverId").is(driverId));
        Location old = this.mongoTemplate.findOne(query, Location.class);
@@ -655,7 +662,6 @@
            driver1.setReferralCode(s);
            this.updateById(driver1);
        }
//        promotionWarpper.setUrl("https://chaoshengdaijia.com/share/driverShare/index.html?inviterId=" + uid);
        promotionWarpper.setUrl(driver1.getReferralCode());
        int user =0;
        List<AppUser> appUsers = appUserService.selectList(new EntityWrapper<AppUser>().eq("inviterType", 2).eq("inviterId", uid).eq("status", 1));
@@ -797,8 +803,12 @@
            driverInfo.setOnline(second);
        }
        driverInfo.setWechatAuthorization(driver.getOpenid() == null ? 0 : 1);
        Agent agent = agentService.selectById(driver.getAgentId());
        driverInfo.setServiceCalls(agent.getServiceCalls());
        driverInfo.setServiceCalls("");
        SystemConfig systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 7).eq("companyType", 1).eq("status", 2));
        if(null != systemConfig){
            JSONObject jsonObject = JSON.parseObject(systemConfig.getContent());
            driverInfo.setServiceCalls(jsonObject.getString("num1"));
        }
        if (driverInfo.getWithdrawBalance()==null){
            driverInfo.setWithdrawBalance(0.00);
        }
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverWorkServiceImpl.java
@@ -137,12 +137,12 @@
        List<Driver> drivers = driverService.selectList(new EntityWrapper<Driver>().eq("approvalStatus", 2).eq("status", 1).lt("balance", num1));
        for (Driver driver : drivers) {
            if (driver.getVipEndTime()==null||driver.getVipEndTime().isBefore(LocalDateTime.now())){
            DriverWork driverWork = this.selectOne(new EntityWrapper<DriverWork>().eq("driverId", driver.getId()).eq("status", 1));
            if(null != driverWork){
                driverWork.setStatus(2);
                driverWork.setOffWorkTime(new Date());
                this.updateById(driverWork);
            }
                DriverWork driverWork = this.selectOne(new EntityWrapper<DriverWork>().eq("driverId", driver.getId()).eq("status", 1));
                if(null != driverWork){
                    driverWork.setStatus(2);
                    driverWork.setOffWorkTime(new Date());
                    this.updateById(driverWork);
                }
            }else {
                if (driver.getBalance()<num1){
                    DriverWork driverWork = this.selectOne(new EntityWrapper<DriverWork>().eq("driverId", driver.getId()).eq("status", 1));
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java
@@ -770,50 +770,13 @@
     */
    @Override
    public List<HallOrderList> queryOrderHall(Integer uid, Integer pageNum, Integer pageSize) throws Exception {
        Driver driver = driverService.selectById(uid);
        //获取证联数据
        if(null == driver.getCustId() || 0 == driver.getAccOpenFlag()){
            TradeTerminalInfo tradeTerminalInfo = new TradeTerminalInfo();
            tradeTerminalInfo.setTerminal("1");
            InetAddress inetAddress = InetAddress.getLocalHost();
            String ip = inetAddress.getHostAddress();
            tradeTerminalInfo.setIp(ip);
            NetworkInterface networkInterface = NetworkInterface.getByInetAddress(inetAddress);
            byte[] mac = networkInterface.getHardwareAddress();
            StringBuilder macAddress = new StringBuilder();
            for (int i = 0; i < mac.length; i++) {
                macAddress.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
            }
            tradeTerminalInfo.setMac(macAddress.toString());
            ZLUserInfo userInfo = ZhengLianUtil.getUserInfo(driver.getEmpId().toString(), tradeTerminalInfo);
            if(null != userInfo){
                driver.setCustId(userInfo.getCustId());
                driver.setAccOpenFlag(userInfo.getAccOpenFlag());
                driverService.updateById(driver);
            }
        }
        //同步到中台
        if(null != driver.getAccOpenFlag() && 1 == driver.getAccOpenFlag() && 0 == driver.getIsSynchronous()){
            AddAccountInfoRequest request = new AddAccountInfoRequest();
            request.setCustId(driver.getCustId());
            request.setAccountNo(driver.getEmpId().toString());
            request.setAccountName(driver.getName());
            request.setMobile(driver.getPhone());
            Integer status = EmployeeUtil.addAccountInfo(request);
            if(0 == status){
                driver.setIsSynchronous(1);
                driverService.updateById(driver);
            }
        }
        pageNum = (pageNum - 1) * pageSize;
        String value = redisUtil.getValue("daijia:DRIVER" + uid);
        List<HallOrderList> hallOrderLists = this.baseMapper.queryOrderHall(pageNum, pageSize);
        List<HallOrderList> lists = new ArrayList<>();
        hallOrderLists.forEach(hallOrderList -> {
            if(ToolUtil.isEmpty(hallOrderList.getAvatar())){
                hallOrderList.setAvatar("https://csxdj.obs.cn-south-1.myhuaweicloud.com:443/66cc269703a84e4da87fb21e2c21ab1f.png");
                hallOrderList.setAvatar("https://traffic.qytzt.cn/v1/AUTH_d8bef0a04db511f0b79d01a3e2b7587e/qyt20250702/imgs/management/d081e7a9-13d4-4eec-afb6-afd10885a664.png");
            }
            hallOrderList.setCurrentDistance(0D);
            if(ToolUtil.isNotEmpty(value)){
@@ -1066,7 +1029,7 @@
        orderInfoWarpper.setBalance(null == appUser ? 0D : appUser.getAccountBalance());
        orderInfoWarpper.setCurrentDistance(0D);
        if(ToolUtil.isEmpty(orderInfoWarpper.getAvatar())){
            orderInfoWarpper.setAvatar("https://csxdj.obs.cn-south-1.myhuaweicloud.com:443/66cc269703a84e4da87fb21e2c21ab1f.png");
            orderInfoWarpper.setAvatar("https://traffic.qytzt.cn/v1/AUTH_d8bef0a04db511f0b79d01a3e2b7587e/qyt20250702/imgs/management/d081e7a9-13d4-4eec-afb6-afd10885a664.png");
        }
        String value = redisUtil.getValue("daijia:DRIVER" + uid);
        orderInfoWarpper.setPickUpTime(0);
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/TOrderCheckServiceImpl.java
@@ -73,7 +73,7 @@
        }
        CheckOrderInfoWarpper orderInfoWarpper = this.baseMapper.queryOrderInfo(orderId);
        if(ToolUtil.isEmpty(orderInfoWarpper.getAvatar())){
            orderInfoWarpper.setAvatar("https://csxdj.obs.cn-south-1.myhuaweicloud.com:443/66cc269703a84e4da87fb21e2c21ab1f.png");
            orderInfoWarpper.setAvatar("https://traffic.qytzt.cn/v1/AUTH_d8bef0a04db511f0b79d01a3e2b7587e/qyt20250702/imgs/management/d081e7a9-13d4-4eec-afb6-afd10885a664.png");
        }
        orderInfoWarpper.setDriverId(order.getDriverId());
        Driver driver = driverService.selectById(orderInfoWarpper.getDriverId());
user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/AppUserServiceImpl.java
@@ -190,6 +190,25 @@
            }
            JSONObject phone = JSON.parseObject(decrypt);
            String purePhoneNumber = phone.getString("purePhoneNumber");
            //调中台接口查询用户
            List<QYTUserInfo> infoByPhone = UserUtil.getUserInfoByPhone(purePhoneNumber);
            String onconUUID = null;
            if (null == infoByPhone || infoByPhone.isEmpty()) {
                RegisterViaMobileRequest request = new RegisterViaMobileRequest();
                request.setMobile(purePhoneNumber);
                request.setEncryptType("aesbase64");
                request.setPassword(AESUtils.encryptBase64("123456"));
                request.setNickname("亲爱的用户");
                RegisterViaMobile register = UserUtil.registerViaMobile(request);
                if (!"0".equals(register.getStatus())) {
                    return ResultUtil.error(register.getDesc());
                }
                onconUUID = register.getOnconUUID();
            }else{
                onconUUID = UserUtil.getOnconUUIDByMobile(purePhoneNumber);
            }
            AppUser appUser = this.selectOne(new EntityWrapper<AppUser>().eq("phone", purePhoneNumber).ne("status", 3));
            if(null == appUser){
                appUser = new AppUser();
@@ -202,10 +221,17 @@
                appUser.setStatus(1);
                appUser.setCreateTime(new Date());
                appUser.setIsException(1);
                appUser.setOnconUUID(onconUUID);
                if(null != signInToRegister.getInviterId()){
                    appUser.setInviterId(signInToRegister.getInviterId());
                    appUser.setInviterType(signInToRegister.getInviterType());
                }
                //同步用户数据到打车系统
                String s = AppUserUtil.addUser(purePhoneNumber, "", "", onconUUID);
                if(ToolUtil.isEmpty(s)){
                    return ResultUtil.error("登录失败");
                }
                appUser.setTaxiUserId(Integer.valueOf(s));
                this.insert(appUser);
                //发送优惠券
                boolean lock = redisUtil.lock(5);
@@ -267,7 +293,9 @@
            if (!"1234".equals(code) && (null == value || !code.equals(String.valueOf(value)))) {
                return ResultUtil.paranErr("无效的验证码");
            }
            if(ToolUtil.isEmpty(verificationCodeLogin.getJscode())){
                return ResultUtil.paranErr("无效的jscode");
            }
            Code2Session code2Session = weChatUtil.code2Session(verificationCodeLogin.getJscode());
            if(null != code2Session.getErrcode() && code2Session.getErrcode() != 0){
                return ResultUtil.error(code2Session.getErrmsg());
@@ -297,6 +325,8 @@
                    return ResultUtil.error(register.getDesc());
                }
                onconUUID = register.getOnconUUID();
            }else{
                onconUUID = UserUtil.getOnconUUIDByMobile(phone);
            }
            if(null == appUser){
@@ -310,12 +340,10 @@
                appUser.setStatus(1);
                appUser.setCreateTime(new Date());
                appUser.setIsException(1);
                appUser.setOnconUUID(onconUUID);
                if(null != verificationCodeLogin.getInviterId()){
                    appUser.setInviterId(verificationCodeLogin.getInviterId());
                    appUser.setInviterType(verificationCodeLogin.getInviterType());
                }
                if(null != onconUUID){
                    appUser.setOnconUUID(onconUUID);
                }
                //同步用户数据到打车系统
                String s = AppUserUtil.addUser(phone, code, verificationCodeLogin.getAreaCode(), onconUUID);
user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/DriverServiceImpl.java
@@ -103,7 +103,7 @@
        // 构造query对象
        Query query = Query.query(Criteria.where("location").withinSphere(circle));
        List<Location> locations = mongoTemplate.find(query, Location.class);
        log.info("地理空间检索结果:{}", locations);
//        log.info("地理空间检索结果:{}", locations);
        List<Integer> collect = locations.stream().map(Location::getDriverId).collect(Collectors.toList());
        if(collect.size() == 0){
            return list;
user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java
@@ -533,7 +533,7 @@
                    request.setCustomerId(appUser.getOnconUUID());
                    request.setDriverId(driver.getEmpId().toString());
                    request.setSupplierShopId(branchOffice.getEnterCode());
                    request.setServiceType(2);
                    request.setServiceType(5);
                    String travelItinerary = OrderUtil.createTravelItinerary(request);
                    order.setTravelId(travelItinerary);
                    this.insertOrUpdate(order);
@@ -753,12 +753,10 @@
                    @Override
                    public void run() {
                        Order order1 = OrderServiceImpl.this.selectById(order.getId());
                        if(order1.getState() != 101 && order1.getState() != 201 && order1.getState() != 301 && order1.getDriverId().compareTo(driver1.getId()) != 0){
                        if(order1.getState() == 201 || order1.getState() == 301 || (order1.getState() == 101 && null == order1.getDriverId())){
                            driver1.setServerStatus(1);
                            driverService.updateById(driver1);
                        }
                        if(order1.getState() == 201 || order1.getState() == 301 || (order1.getState() == 101 && null == order1.getDriverId())){
                        }else if(order1.getState() != 101 && order1.getState() != 201 && order1.getState() != 301 && order1.getDriverId().compareTo(driver1.getId()) != 0){
                            driver1.setServerStatus(1);
                            driverService.updateById(driver1);
                        }
@@ -1186,6 +1184,7 @@
        if(null == order.getIsCreated() || 0 == order.getIsCreated()){
            //调用中台创建订单及拉起支付接口
            TradeOrderCreateData tradeOrderCreateData = new TradeOrderCreateData();
            tradeOrderCreateData.setOrderId(order.getTravelId());
            tradeOrderCreateData.setTreatShopId(driver.getEmpId().toString());
            tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isCompensate\":\"0\",\"isPromote\":\"0\"}");
            tradeOrderCreateData.setCharge(new BigDecimal(payMoney).setScale(2, RoundingMode.HALF_EVEN));
user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/TOrderCheckServiceImpl.java
@@ -396,7 +396,7 @@
        }
        CheckOrderInfoWarpper orderInfoWarpper = this.baseMapper.queryOrderInfo(orderId);
        if(ToolUtil.isEmpty(orderInfoWarpper.getAvatar())){
            orderInfoWarpper.setAvatar("https://csxdj.obs.cn-south-1.myhuaweicloud.com:443/66cc269703a84e4da87fb21e2c21ab1f.png");
            orderInfoWarpper.setAvatar("https://traffic.qytzt.cn/v1/AUTH_d8bef0a04db511f0b79d01a3e2b7587e/qyt20250702/imgs/management/d081e7a9-13d4-4eec-afb6-afd10885a664.png");
        }
        orderInfoWarpper.setDriverId(order.getDriverId());
        Driver driver = driverService.selectById(orderInfoWarpper.getDriverId());