Pu Zhibing
7 天以前 f2530067b6cd16a87b76190cf524d2ed75bf9592
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TDriverController.java
@@ -5,10 +5,13 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.stylefeng.guns.core.base.controller.BaseController;
import com.stylefeng.guns.core.base.tips.ErrorTip;
import com.stylefeng.guns.core.base.tips.SuccessTip;
import com.stylefeng.guns.core.beetl.ShiroExtUtil;
import com.stylefeng.guns.core.log.LogObjectHolder;
import com.stylefeng.guns.core.shiro.ShiroKit;
import com.stylefeng.guns.core.shiro.ShiroUser;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.controller.resp.TDriverCommissionResp;
import com.stylefeng.guns.modular.system.controller.resp.TDriverResp;
import com.stylefeng.guns.modular.system.controller.util.ExcelUtil;
@@ -19,9 +22,17 @@
import com.stylefeng.guns.modular.system.enums.UserTypeEnum;
import com.stylefeng.guns.modular.system.model.*;
import com.stylefeng.guns.modular.system.service.*;
import com.stylefeng.guns.modular.system.util.AESUtil;
import com.stylefeng.guns.modular.system.util.DateUtil;
import com.stylefeng.guns.modular.system.util.RedisUtil;
//import com.stylefeng.guns.modular.system.util.bank.BankUtil;
import com.stylefeng.guns.modular.system.util.ResultUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.EmployeeUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.UserUtil;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.DeleteStafNodeRequest;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.QYTUserInfo;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.SaveStaffNode;
import com.stylefeng.guns.modular.system.util.qianyuntong.model.SaveStaffNodeRequest;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
@@ -98,6 +109,15 @@
    private AccountChangeDetailMapper accountChangeDetailMapper;
    private Logger log = LoggerFactory.getLogger(this.getClass());
    @Autowired
    private ShiroExtUtil shiroExtUtil;
    @Autowired
    private IUserService userService;
    @Autowired
    private ITBranchOfficeService branchOfficeService;
    /**
     * 跳转到首页
@@ -360,6 +380,9 @@
        List<TDriver> tDrivers = tDriverService.selectList(wrapper);
        List<TDriverResp> tDriverResp = tDriverService.getTDriverResp(tDrivers);
        for (TDriverResp driverResp : tDriverResp) {
            driverResp.setIdcard(AESUtil.encrypt(driverResp.getIdcard()));
            driverResp.setName(AESUtil.encrypt(driverResp.getName()));
            driverResp.setPhone(AESUtil.encrypt(driverResp.getPhone()));
            TDriverWork tDriverWork = tDriverWorkService.selectOne(new EntityWrapper<TDriverWork>()
                    .eq("driverId", driverResp.getId())
                    .orderBy("workTime", false)
@@ -523,20 +546,50 @@
    @RequestMapping(value = "/auditSubmit")
    @ResponseBody
    public Object auditSubmit(Integer id,Integer approvalStatus,String approvalNotes) {
        ShiroUser user1 = shiroExtUtil.getUser();
        User user2 = userService.selectById(user1.getId());
        TDriver tDriver = tDriverService.selectById(id);
        tDriver.setApprovalStatus(approvalStatus);
        tDriver.setApprovalNotes(approvalNotes);
        // 审核用户id
        Subject subject = ShiroKit.getSubject();
        ShiroUser shiroUser = (ShiroUser)subject.getPrincipal();
        tDriver.setApprovalUserId(shiroUser.getId());
        tDriver.setApprovalUserId(user1.getId());
        tDriver.setApprovalTime(new Date());
        if (approvalStatus==2){
//            T21000001Response t21000001Response = BankUtil.addAccount(tDriver);
//            tDriver.setMerchantNumber(t21000001Response.getDATA().getUSER_ID());
            //审核通过,在中台添加司机账号
            Integer objectId = tDriver.getBranchOfficeId();
            TBranchOffice tBranchOffice = branchOfficeService.selectById(objectId);
            List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(tDriver.getPhone(), tBranchOffice.getEnterCode());
            Long empId = null;
            Integer empnew = null;
            if(null == userInfoByPhone || userInfoByPhone.size() == 0){
                SaveStaffNodeRequest request = new SaveStaffNodeRequest();
                request.setMobile(user2.getPhone());
                request.setEntercode(tBranchOffice.getEnterCode());
                request.setEmpName(tDriver.getName());
                request.setEmpNickname(tDriver.getName());
                request.setLoginNo(tDriver.getPhone());
                request.setEmpSex(tDriver.getSex() == 1 ? "男" : "女");
                request.setMphone(tDriver.getPhone());
                request.setEmail(tDriver.getPhone() + "@qyt.com");
                request.setDeptId(0);
                request.setPositionId(1);
                request.setSuperLevel(0);
                request.setHideMobile(0);
                ResultUtil<SaveStaffNode> resultUtil = EmployeeUtil.saveStaffNode(request);
                if(200 != resultUtil.getStatus()){
                    return new ErrorTip(resultUtil.getStatus(), resultUtil.getMsg());
                }
                SaveStaffNode saveStaffNode = resultUtil.getData();
                empId = saveStaffNode.getEmpId();
                empnew = 1;
            }else{
                empId = userInfoByPhone.get(0).getEmpId();
                empnew = 0;
            }
            tDriver.setEmpId(empId);
            tDriver.setEntercode(tBranchOffice.getEnterCode());
            tDriver.setEnterId(Long.valueOf(tBranchOffice.getEnterCode()));
            tDriver.setEmpnew(empnew);
        }
        tDriverService.updateById(tDriver);
@@ -562,10 +615,6 @@
            accountChangeDetailMapper.insert(accountChangeDetail);
            tDriverService.updateById(tDriver1);
        }
        return SUCCESS_TIP;
    }
@@ -575,10 +624,32 @@
    @RequestMapping(value = "/add")
    @ResponseBody
    public Object add(TDriver tDriver) {
        String avatar = tDriver.getAvatar();
        if(ToolUtil.isNotEmpty(avatar) && !avatar.contains("png") && !avatar.contains("jpg")){
            return new SuccessTip(500,"请上传png/jpg格式的头像图片!");
        }
        String driverLicense = tDriver.getDriverLicense();
        if(ToolUtil.isNotEmpty(driverLicense) && !driverLicense.contains("png") && !driverLicense.contains("jpg")){
            return new SuccessTip(500,"请上传png/jpg格式的驾驶证照片!");
        }
        String idcardFront = tDriver.getIdcardFront();
        if(ToolUtil.isNotEmpty(idcardFront) && !idcardFront.contains("png") && !idcardFront.contains("jpg")){
            return new SuccessTip(500,"请上传png/jpg格式的身份证正面照!");
        }
        String idcardBack = tDriver.getIdcardBack();
        if(ToolUtil.isNotEmpty(idcardBack) && !idcardBack.contains("png") && !idcardBack.contains("jpg")){
            return new SuccessTip(500,"请上传png/jpg格式的身份证背面照!");
        }
        int count = tDriverService.selectCount(new EntityWrapper<TDriver>().eq("phone", tDriver.getPhone()));
        if(count>0){
            return new SuccessTip(500,"该司机已存在!");
        }
        if(ToolUtil.isEmpty(tDriver.getIdcard())){
            return "身份证号不能为空";
        }
        Boolean b = UserUtil.idCardAuth(tDriver.getName(), tDriver.getIdcard());
        if(!b){
            return "司机姓名和身份证号不匹配";
        }
        Object o = tDriverService.addOrUpdate(tDriver);
        if(Objects.nonNull(o)){
@@ -591,6 +662,48 @@
        tDriver.setBalance(BigDecimal.ZERO);
        tDriver.setBackgroundBalance(BigDecimal.ZERO);
        tDriver.setCommission(BigDecimal.ZERO);
        if(2 == tDriver.getApprovalStatus()){
            ShiroUser user = shiroExtUtil.getUser();
            User user2 = userService.selectById(user.getId());
            Integer objectId = user.getObjectId();
            TBranchOffice tBranchOffice = branchOfficeService.selectById(objectId);
            List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(tDriver.getPhone(), tBranchOffice.getEnterCode());
            Long empId = null;
            Integer empnew = null;
            if(null == userInfoByPhone || userInfoByPhone.size() == 0){
                SaveStaffNodeRequest request = new SaveStaffNodeRequest();
                request.setMobile(user2.getPhone());
                request.setEntercode(tBranchOffice.getEnterCode());
                request.setEmpName(tDriver.getName());
                request.setEmpNickname(tDriver.getName());
                request.setLoginNo(tDriver.getPhone());
                request.setEmpSex(tDriver.getSex() == 1 ? "男" : "女");
                request.setMphone(tDriver.getPhone());
                request.setEmail(tDriver.getPhone() + "@qyt.com");
                request.setDeptId(0);
                request.setPositionId(1);
                request.setSuperLevel(0);
                request.setHideMobile(0);
                ResultUtil<SaveStaffNode> resultUtil = EmployeeUtil.saveStaffNode(request);
                if(200 != resultUtil.getStatus()){
                    return new ErrorTip(resultUtil.getStatus(), resultUtil.getMsg());
                }
                SaveStaffNode saveStaffNode = resultUtil.getData();
                empId = saveStaffNode.getEmpId();
                empnew = 1;
            }else{
                empId = userInfoByPhone.get(0).getEmpId();
                empnew = 0;
            }
            TBranchOffice tBranchOffice1 = branchOfficeService.selectById(tDriver.getBranchOfficeId());
            tDriver.setEmpId(empId);
            tDriver.setEntercode(tBranchOffice1.getEnterCode());
            tDriver.setEnterId(Long.valueOf(tBranchOffice1.getEnterCode()));
            tDriver.setEmpnew(empnew);
        }
        tDriverService.insert(tDriver);
        return SUCCESS_TIP;
    }
@@ -601,6 +714,24 @@
    @RequestMapping(value = "/delete")
    @ResponseBody
    public Object delete(@RequestParam Integer tDriverId) {
        TDriver driver = tDriverService.selectById(tDriverId);
        ShiroUser user = shiroExtUtil.getUser();
        TBranchOffice tBranchOffice = branchOfficeService.selectById(user.getObjectId());
        if (null != driver.getEmpId() && 1 == driver.getEmpnew()) {
            //中台先删除司机
            List<QYTUserInfo> userInfoByPhone = UserUtil.getUserInfoByPhone(driver.getPhone(), tBranchOffice.getEnterCode());
            if (null != userInfoByPhone && 0 < userInfoByPhone.size() && 1 == driver.getEmpnew()) {
                DeleteStafNodeRequest deleteStafNodeRequest = new DeleteStafNodeRequest();
                deleteStafNodeRequest.setEmpId(driver.getEmpId());
                deleteStafNodeRequest.setEntercode(tBranchOffice.getEnterCode());
                deleteStafNodeRequest.setMobile(tBranchOffice.getPrincipalPhone());
                ResultUtil resultUtil = EmployeeUtil.ecrmDeleteStafNode(deleteStafNodeRequest);
                if(200 != resultUtil.getStatus()){
                    return new ErrorTip(resultUtil.getStatus(), resultUtil.getMsg());
                }
            }
        }
        tDriverService.deleteById(tDriverId);
        return SUCCESS_TIP;
    }
@@ -651,10 +782,10 @@
        // 添加充值记录
        TRechargeRecord tRechargeRecord = new TRechargeRecord();
        Integer roleType = ShiroKit.getUser().getRoleType();
        Integer roleType = shiroExtUtil.getUser().getRoleType();
        if(roleType == 2){
            tRechargeRecord.setType(UserTypeEnum.BRANCH_OFFICE.getCode());
            Integer id1 = Objects.requireNonNull(ShiroKit.getUser()).getObjectId();
            Integer id1 = Objects.requireNonNull(shiroExtUtil.getUser()).getObjectId();
            tRechargeRecord.setBranchOfficeId(id1);
        }
        if(roleType == 3){
@@ -677,13 +808,34 @@
    @RequestMapping(value = "/update")
    @ResponseBody
    public Object update(TDriver tDriver) {
        String avatar = tDriver.getAvatar();
        if(ToolUtil.isNotEmpty(avatar) && !avatar.contains("png") && !avatar.contains("jpg")){
            return new SuccessTip(500,"请上传png/jpg格式的头像图片!");
        }
        String driverLicense = tDriver.getDriverLicense();
        if(ToolUtil.isNotEmpty(driverLicense) && !driverLicense.contains("png") && !driverLicense.contains("jpg")){
            return new SuccessTip(500,"请上传png/jpg格式的驾驶证照片!");
        }
        String idcardFront = tDriver.getIdcardFront();
        if(ToolUtil.isNotEmpty(idcardFront) && !idcardFront.contains("png") && !idcardFront.contains("jpg")){
            return new SuccessTip(500,"请上传png/jpg格式的身份证正面照!");
        }
        String idcardBack = tDriver.getIdcardBack();
        if(ToolUtil.isNotEmpty(idcardBack) && !idcardBack.contains("png") && !idcardBack.contains("jpg")){
            return new SuccessTip(500,"请上传png/jpg格式的身份证背面照!");
        }
        TDriver driver = tDriverService.selectOne(new EntityWrapper<TDriver>().eq("phone", tDriver.getPhone())
                .last("LIMIT 1"));
        if(Objects.nonNull(driver) && !tDriver.getId().equals(driver.getId())){
            return new SuccessTip(500,"该司机已存在!");
        }
//        Object ocr = ocr("E:\\071bf986db0b00355c0ed190bbd3b16.png");
//        System.err.println(ocr);
        if(ToolUtil.isEmpty(tDriver.getIdcard())){
            return "身份证号不能为空";
        }
        Boolean b = UserUtil.idCardAuth(tDriver.getName(), tDriver.getIdcard());
        if(!b){
            return "司机姓名和身份证号不匹配";
        }
        Object o = tDriverService.addOrUpdate(tDriver);
        if(Objects.nonNull(o)){
            return o;
@@ -876,6 +1028,9 @@
            e.printStackTrace();
        }
    }
    @ApiOperation(value = "导出司机佣金列表",notes="导出司机佣金列表")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),