liujie
2023-08-16 db7fa6a91b9534ac90e219b6f554c54c43c83a5a
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/DriverServiceImpl.java
@@ -1,5 +1,6 @@
package com.supersavedriving.driver.modular.system.service.impl;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
@@ -15,6 +16,7 @@
import com.supersavedriving.driver.modular.system.util.MallBook.model.*;
import com.supersavedriving.driver.modular.system.util.MallBook.util.TrhRequest;
import com.supersavedriving.driver.modular.system.util.*;
import com.supersavedriving.driver.modular.system.util.huawei.OBSUtil;
import com.supersavedriving.driver.modular.system.util.mongodb.model.Location;
import com.supersavedriving.driver.modular.system.util.rongyun.RongYunUtil;
import com.supersavedriving.driver.modular.system.util.weChat.WeChatUtil;
@@ -41,11 +43,15 @@
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.io.InputStream;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.math.RoundingMode;
import java.net.InetAddress;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.*;
/**
@@ -162,6 +168,10 @@
            }
            driver.setCreateTime(new Date());
            this.insert(driver);
            String s = wechatMiniProgramORCode(driver.getId());
            driver.setReferralCode(s);
            this.updateById(driver);
            //司机邀请注册奖励
            if(null != driver.getInviterId()){
@@ -190,6 +200,16 @@
    }
    //生成小程序二维码
    public String wechatMiniProgramORCode(Integer driverId) throws Exception{
        InputStream release = weChatUtil.getwxacodeunlimit("pages/index/index", "driverId=" + driverId, "release");
        String s = OBSUtil.putObjectToBucket(release, "driver_" + driverId + "_" + UUIDUtil.getNumberRandom(5) + ".jpg");
        return s;
    }
    /**
     * 组装个人信息
     * @param driver
@@ -198,6 +218,7 @@
     */
    public Driver setDriverParamete(Driver driver, DriverRegisterWarpper driverRegisterWarpper) throws Exception{
        driver.setAvatar(driverRegisterWarpper.getAvatar());
        driver.setName(driverRegisterWarpper.getName());
        driver.setPhone(driverRegisterWarpper.getPhone());
        driver.setEmergencyContact(driverRegisterWarpper.getEmergencyContact());
        driver.setEmergencyPhone(driverRegisterWarpper.getEmergencyPhone());
@@ -293,6 +314,11 @@
            }
        }
        if(ToolUtil.isEmpty(driver.getReferralCode())){
            String s = wechatMiniProgramORCode(driver.getId());
            driver.setReferralCode(s);
            this.updateById(driver);
        }
        return ResultUtil.success(tokenWarpper);
    }
@@ -490,7 +516,7 @@
                }
                String value1 = redisUtil.getValue("DRIVER" + s.getDriverId());
                if(s.getDriverId().compareTo(uid) != 0 && ToolUtil.isNotEmpty(value1)){
                    list.add(s.getLocation().getX() + "," + s.getLocation().getY()+","+i);
                    list.add(s.getLocation().getX() + "," + s.getLocation().getY()+","+i+","+driver.getName());
                }
            });
        }
@@ -502,7 +528,12 @@
        orders.forEach(e-> blue.add(e.getStartLng()+","+e.getStartLat()));
        map.put("orderList",blue);
        List<Order> ordersOne = orderService.selectList(new EntityWrapper<Order>().eq("state",301));
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(System.currentTimeMillis());
        calendar.add(Calendar.HOUR_OF_DAY, -2);
        Date time = calendar.getTime();
        List<Order> ordersOne = orderService.selectList(new EntityWrapper<Order>().eq("state",301).between("createTime",time,new Date()));
        ArrayList<String> red = new ArrayList<>();
        ordersOne.forEach(e-> red.add(e.getStartLng()+","+e.getStartLat()));
@@ -510,6 +541,7 @@
        map.put("cancelOrder",red);
        return ResultUtil.success(map);
    }
    /**
@@ -561,13 +593,19 @@
    @Override
    public PromotionWarpper queryPromotionQRCode(Integer uid) throws Exception {
        PromotionWarpper promotionWarpper = new PromotionWarpper();
        promotionWarpper.setUrl("https://chaoshengdaijia.com/share/driverShare/index.html?inviterId=" + uid);
        Driver driver1 = this.selectById(uid);
        if(ToolUtil.isEmpty(driver1.getReferralCode())){
            String s = wechatMiniProgramORCode(driver1.getId());
            driver1.setReferralCode(s);
            this.updateById(driver1);
        }
//        promotionWarpper.setUrl("https://chaoshengdaijia.com/share/driverShare/index.html?inviterId=" + uid);
        promotionWarpper.setUrl(driver1.getReferralCode());
        int user = appUserService.selectCount(new EntityWrapper<AppUser>().eq("inviterType", 2).eq("inviterId", uid).eq("status", 1));
        int driver = this.selectCount(new EntityWrapper<Driver>().eq("inviterType", 2).eq("inviterId", uid).eq("approvalStatus", 2).eq("status", 1));
        promotionWarpper.setTotal(user + driver);
        promotionWarpper.setUser(user);
        promotionWarpper.setDriver(driver);
        Driver driver1 = this.selectById(uid);
        promotionWarpper.setAvatar(driver1.getAvatar());
        promotionWarpper.setName(driver1.getName());
        return promotionWarpper;
@@ -1082,8 +1120,8 @@
        int orderNum = orderService.selectCount(wrapper);
        map.put("orderNum",orderNum);
        // 有效时长
        int okTime =  this.baseMapper.getTime(sTime,eTime,uid);
        map.put("okTime",okTime);
        Integer okTime =  this.baseMapper.getTime(sTime,eTime,uid);
        map.put("okTime",okTime==null?0:okTime);
        wrapperOne.eq("inviterType",2);
        wrapperOne.eq("inviterId",uid);
        int userNum = appUserService.selectCount(wrapperOne);