MrShi
2025-08-21 d98b610bd0793dd5d29f623400a1d0a81bb55334
server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java
@@ -101,6 +101,7 @@
        orders.setPayStatus(Constants.ZERO);
        orders.setDeleted(Constants.ZERO);
        orders.setReleaseMemberId(orders.getMember().getId());
        orders.setCommentStatus(Constants.ZERO);
        //查询手续费
        Category platformCategory = categoryMapper.selectOne(new QueryWrapper<Category>().lambda().eq(Category::getType,Constants.THREE).eq(Category::getName,orders.getType()).eq(Category::getDeleted,Constants.ZERO).last("limit 1 "));
        if(Objects.isNull(platformCategory)){
@@ -121,6 +122,7 @@
        if(Constants.equalsInteger(orders.getType(),Constants.TWO)){
            orders.setStatus(Constants.ordersStatus.waitPay.getKey());
            orders.setOutTradeNo(UUID.randomUUID().toString().replace("-",""));
            orders.setPayAccount(orders.getEstimatedAccount());
            //唤起支付业务
            objects = this.getWxPayResponse(orders,orders.getMember().getOpenid());
            orderReleaseVO.setObject(objects);
@@ -182,7 +184,7 @@
        request.setOutTradeNo(orders.getOutTradeNo());
        request.setNotifyUrl(WxMiniConfig.wxProperties.getNotifyUrl());//这个回调url必须是https开头的
        Amount amount = new Amount();
        amount.setTotal(1);//orders.getEstimatedAccount().intValue());
        amount.setTotal(1);//orders.getPayAccount().intValue());
        request.setAmount(amount);
//        PrepayResponse res = WxMiniConfig.wxPayService.prepay(request);
        // 跟之前下单示例一样,填充预下单参数
@@ -328,12 +330,40 @@
    }
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public void updateById(Orders orders) {
    public void update(Orders orders){
        if(Objects.isNull(orders)
        || Objects.isNull(orders.getId())){
                || Objects.isNull(orders.getId())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        Orders model = ordersMapper.selectById(orders.getId());
        if(!Constants.equalsInteger(model.getReleaseMemberId(),orders.getMember().getId())){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"非您的订单无法进行该操作");
        }
        if(Constants.equalsInteger(model.getIsUpdate(),Constants.ONE)){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"订单已修改,待接单方确认,无法进行该操作");
        }
        if(!Constants.equalsInteger(model.getType(),Constants.TWO)){
            if(Constants.equalsInteger(model.getStatus(),Constants.ZERO)||Constants.equalsInteger(model.getStatus(),Constants.ONE)){
                this.updateById(orders);
            }else if(Constants.equalsInteger(model.getStatus(),Constants.TWO)){
                this.updOrderData(orders,model);
            }else{
                throw new BusinessException(ResponseStatus.NOT_ALLOWED);
            }
        }else{
            throw new BusinessException(ResponseStatus.NOT_ALLOWED);
        }
    }
//    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public void updateById(Orders orders) {
        Orders model = ordersMapper.selectById(orders.getId());
        if(Constants.equalsInteger(model.getType(),Constants.TWO)){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"此类订单无法进行修改");
@@ -362,6 +392,7 @@
                        || StringUtils.isEmpty(multifile.getName())){
                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"附件信息错误");
                }
                multifile.setId(null);
                multifile.setIsdeleted(Constants.ZERO);
                multifile.setCreateDate(new Date());
                multifile.setObjId(orders.getId());
@@ -378,7 +409,7 @@
            return;
        }
        for (Orders orders: orderss) {
            this.updateById(orders);
            //this.updateById(orders);
        }
    }
@@ -501,8 +532,11 @@
        queryWrapper.like(org.apache.commons.lang3.StringUtils.isNotBlank(model.getCode()),Orders::getCode, model.getCode());
        queryWrapper.eq(Objects.nonNull(model.getType()),Orders::getType, model.getType());
        queryWrapper.eq(Objects.nonNull(model.getStatus()),Orders::getStatus, model.getStatus());
        queryWrapper.eq(Objects.nonNull(model.getCommentStatus()),Orders::getCommentStatus, model.getCommentStatus());
        queryWrapper.eq(Objects.nonNull(model.getReleaseMemberId()),Orders::getReleaseMemberId, model.getReleaseMemberId());
        queryWrapper.eq(Objects.nonNull(model.getAcceptMemberId()),Orders::getAcceptMemberId, model.getAcceptMemberId());
        queryWrapper.eq(Objects.nonNull(model.getAcceptType()),Orders::getAcceptType, model.getAcceptType());
        queryWrapper.apply(org.apache.commons.lang3.StringUtils.isNotBlank(model.getReleaseName()),"m1.name", model.getReleaseName());
        queryWrapper.apply(org.apache.commons.lang3.StringUtils.isNotBlank(model.getReleaseName()),"m1.name like '%"+model.getReleaseName()+"%' or m1.TELEPHONE like '%"+model.getReleaseName()+"%' ");
        queryWrapper.apply(org.apache.commons.lang3.StringUtils.isNotBlank(model.getAcceptName()),"( i.LINK_NAME like '%"+model.getAcceptName()+"%' or i.company_name like '%"+model.getAcceptName()+"%' or i.TELEPHONE like '%"+model.getAcceptName()+"%' ) ");
        IPage<Orders> iPage = ordersMapper.selectJoinPage(page,Orders.class,queryWrapper);
        for (Orders orders:iPage.getRecords()) {
@@ -595,22 +629,23 @@
        if(Constants.equalsInteger(orders.getReleaseMemberId(),member.getId())){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"您自己的订单无法进行该操作");
        }
         member = memberMapper.selectById(member.getId());
        //查询用户是否有对应身份
        if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){
            if(!Constants.equalsInteger(member.getWorkerIdentity(),Constants.TWO)){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"身份信息异常,请联系管理员");
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"身份信息异常,请前往个人中心进行身份认证!");
            }
        }else if(Constants.equalsInteger(orders.getType(),Constants.ONE)){
            if(!Constants.equalsInteger(member.getDriverIdentity(),Constants.TWO)){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"身份信息异常,请联系管理员");
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"身份信息异常,请前往个人中心进行身份认证!");
            }
        }else{
            if(!Constants.equalsInteger(member.getChefIdentity(),Constants.TWO)){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"身份信息异常,请联系管理员");
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"身份信息异常,请前往个人中心进行身份认证!");
            }
        }
        ordersMapper.update(new UpdateWrapper<Orders>().lambda().eq(Orders::getId,orders.getId())
         ordersMapper.update(new UpdateWrapper<Orders>().lambda().eq(Orders::getId,orders.getId())
                .set(Orders::getUpdateTime,new Date())
                .set(Orders::getAcceptType,Constants.ZERO)
                .set(Orders::getAcceptTime,new Date())
@@ -670,50 +705,36 @@
    /**
     * 发单方修改订单 - 已接单状态
     * @param updOrderDataDTO
     */
    @Override
//    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public void updOrderData(UpdOrderDataDTO updOrderDataDTO){
        if(Objects.isNull(updOrderDataDTO)
            || Objects.isNull(updOrderDataDTO.getOrderId())
            || Objects.isNull(updOrderDataDTO.getStartDate())
            || Objects.isNull(updOrderDataDTO.getEndDate())){
    public void updOrderData(Orders orders,Orders model){
        if(Objects.isNull(orders)
            || Objects.isNull(orders.getStartDate())
            || Objects.isNull(orders.getEndDate())){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        Orders orders = ordersMapper.selectById(updOrderDataDTO.getOrderId());
        if(Objects.isNull(orders)||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if(!Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.accept.getKey())){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"订单状态已流转,无法进行该操作");
        }
        if(!Constants.equalsInteger(orders.getReleaseMemberId(),updOrderDataDTO.getMember().getId())){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"非您的订单无法进行该操作");
        }
        if(Constants.equalsInteger(orders.getIsUpdate(),Constants.ONE)){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"订单已修改,待接单方确认,无法进行该操作");
        }
        orders.setStartDate(updOrderDataDTO.getStartDate());
        orders.setEndDate(updOrderDataDTO.getEndDate());
        orders.setTotalDays(updOrderDataDTO.getTotalDays());
        model.setTotalDays(DateUtil.daysBetweenDates(orders.getEndDate(),orders.getStartDate())+1);
        model.setStartDate(orders.getStartDate());
        model.setEndDate(orders.getEndDate());
        //用车类型
        if(Constants.equalsInteger(orders.getType(),Constants.ONE)){
            if(Constants.equalsInteger(orders.getCarType(),Constants.ZERO)) {
                orders.setPriceNum1(updOrderDataDTO.getTotalDays());
        if(Constants.equalsInteger(model.getType(),Constants.ONE)){
            if(Constants.equalsInteger(model.getCarType(),Constants.ZERO)) {
                model.setPriceNum1(orders.getTotalDays());
            }
        }else if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){
            if(Constants.equalsInteger(orders.getWorkType(),Constants.ONE)||(Constants.equalsInteger(orders.getWorkType(),Constants.TWO)&&Constants.equalsInteger(orders.getCarType(),Constants.ZERO))){
                orders.setPriceNum1(updOrderDataDTO.getTotalDays());
        }else if(Constants.equalsInteger(model.getType(),Constants.ZERO)){
            if(Constants.equalsInteger(model.getWorkType(),Constants.ONE)||
                    (Constants.equalsInteger(model.getWorkType(),Constants.TWO)&&Constants.equalsInteger(model.getCarType(),Constants.ZERO))){
                model.setPriceNum1(orders.getTotalDays());
            }
        }else{
            orders.setPriceNum1(updOrderDataDTO.getTotalDays());
            model.setPriceNum1(orders.getTotalDays());
        }
        Long total = this.getTotal(orders);
        ordersMapper.update(new UpdateWrapper<Orders>().lambda()
                .set(Orders::getStartDate,updOrderDataDTO.getStartDate())
                .set(Orders::getEndDate,updOrderDataDTO.getEndDate())
                .set(Orders::getTotalDays,updOrderDataDTO.getTotalDays())
                .set(Orders::getStartDate,model.getStartDate())
                .set(Orders::getEndDate,model.getEndDate())
                .set(Orders::getTotalDays,model.getTotalDays())
                .set(Orders::getIsUpdate,Constants.ONE)
                .set(Orders::getIsUpdateTime,new Date())
                .set(Orders::getUpdateTime,new Date())
@@ -722,8 +743,8 @@
        );
        //创建操作日志
        Constants.OrdersLog ordersLog = Constants.OrdersLog.UPD_ORDER;
        this.saveOrderLog(orders,ordersLog,
                ordersLog.getInfo(),updOrderDataDTO.getMember().getId(),null);
        this.saveOrderLog(model,ordersLog,
                ordersLog.getInfo(),orders.getMember().getId(),null);
        //TODO 通知接单人 订单发生变更
    }
@@ -779,7 +800,7 @@
        if(!Constants.equalsInteger(orders.getAcceptMemberId(),confirmUpdOrderDTO.getMember().getId())){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"非您的订单无法进行该操作");
        }
        if( Constants.equalsInteger(confirmUpdOrderDTO.getStatus(),Constants.ONE)){
        if(!Constants.equalsInteger(confirmUpdOrderDTO.getStatus(),Constants.ONE)){
            ordersMapper.update(new UpdateWrapper<Orders>().lambda()
                    .set(Orders::getIsUpdate,Constants.TWO)
                    .set(Orders::getUpdateTime,new Date())
@@ -799,7 +820,7 @@
                    .eq(Orders::getId,orders.getId())
            );
            memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getReceiveNum,"receive_num - 1").eq(Member::getId,confirmUpdOrderDTO.getMember().getId()));
            memberMapper.update(new UpdateWrapper<Member>().lambda().setSql("receive_num = receive_num - 1").eq(Member::getId,confirmUpdOrderDTO.getMember().getId()));
            //记录不同意修改的日志
            Constants.OrdersLog ordersLog = Constants.OrdersLog.UPD_DISAGREE;
@@ -810,18 +831,55 @@
    }
    /**
     * 发单方取消订单
     * @param orderId
     * @param member
     */
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public void releaseCancelOrder(Integer orderId,Member member){
    public void cancelOrder(Integer orderId,Member member){
        Orders orders = ordersMapper.selectById(orderId);
        if(Objects.isNull(orders)||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if(Constants.equalsInteger(orders.getReleaseMemberId(),member.getId())){
            this.releaseCancelOrder(orders,member);
        }else if(Constants.equalsInteger(orders.getAcceptMemberId(),member.getId())){
            this.receiveCancelOrder(orders,member);
        }else{
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"非您的订单无法进行该操作");
        }
    }
    @Override
    public String cancelTips(Integer orderId,Member member){
        Orders orders = ordersMapper.selectById(orderId);
        if(Objects.isNull(orders)||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        Integer totalCancelTimes = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RELEASE_CANCEL_TIMES).getCode());
        Long cancelTimes = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda()
                .apply(" DATE(cancel_time) = DATE(NOW()) ")
                .eq(Orders::getStatus,Constants.ordersStatus.cancel.getKey())
                .eq(Orders::getReleaseMemberId,member.getId()));
        //查询取消次数
        if(totalCancelTimes<=cancelTimes){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"今日订单主动取消次数已超出"+totalCancelTimes+"次,无法取消订单,如需处理请联系客服");
        }
        Integer cancelTimeHour = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RELEASE_CANCEL_TIME).getCode());
        Long hours = DateUtil.getBetweenHours(new Date(),orders.getStartDate());
        if(hours < cancelTimeHour){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"距离订单开始时间不足"+cancelTimeHour+"小时,无法取消订单,如需处理请联系客服");
        }
        return  "今日还可主动取消"+(totalCancelTimes-cancelTimes)+"次,是否确认取消";
    }
    /**
     * 发单方取消订单
     * @param member
     */
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public void releaseCancelOrder(Orders orders,Member member){
        if(!(Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.wait.getKey())
                ||Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.waitPay.getKey())
        || Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.accept.getKey()))){
@@ -893,30 +951,27 @@
            //TODO 发单方取消订单通知接单方
            //减少接单量
            memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getReceiveNum,"receive_num - 1").eq(Member::getId,orders.getAcceptMemberId()));
            memberMapper.update(new UpdateWrapper<Member>().lambda().setSql("receive_num = (receive_num - 1) ").eq(Member::getId,orders.getAcceptMemberId()));
        }
        //减少发单量
        memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getPublishNum,"publish_num - 1").eq(Member::getId,orders.getReleaseMemberId()));
        memberMapper.update(new UpdateWrapper<Member>().lambda().setSql("publish_num = (publish_num - 1)").eq(Member::getId,orders.getReleaseMemberId()));
        //日志存储
        Constants.OrdersLog ordersLog = Constants.OrdersLog.RELEASE_CANCEL;
        this.saveOrderLog(orders,ordersLog,
                ordersLog.getInfo(),member.getId(),null);
    }
    /**
     * 接单方取消接单
     * @param orderId
     * @param member
     */
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public void receiveCancelOrder(Integer orderId,Member member){
        Orders orders = ordersMapper.selectById(orderId);
        if(Objects.isNull(orders)||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
    public void receiveCancelOrder(Orders orders,Member member){
        if(!Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.accept.getKey())){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"订单状态已流转,无法进行取消");
        }
@@ -948,7 +1003,7 @@
        );
        //减少接单量
        memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getReceiveNum,"receive_num - 1").eq(Member::getId,orders.getAcceptMemberId()));
        memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" receive_num = receive_num - 1 ").eq(Member::getId,orders.getAcceptMemberId()));
        //日志存储
        Constants.OrdersLog ordersLog = Constants.OrdersLog.CANCEL;
        this.saveOrderLog(orders,ordersLog,
@@ -994,7 +1049,7 @@
            orders.setOutTradeNo(UUID.randomUUID().toString().replace("-",""));
            ordersMapper.updateById(orders);
            //唤起支付业务
            object = this.getWxPayResponse(orders,orders.getMember().getOpenid());
            object = this.getWxPayResponse(orders,doneOrderDTO.getMember().getOpenid());
            orderReleaseVO.setObject(object);
        }else{
            orders.setStatus(Constants.ordersStatus.done.getKey());
@@ -1147,13 +1202,14 @@
                .set(Orders::getUpdateTime,new Date())
                .set(Orders::getCommentTime,new Date())
                .set(Orders::getCommentLevel,commentDTO.getLevel())
                .set(org.apache.commons.lang3.StringUtils.isNotBlank(commentDTO.getInfo()),Orders::getCommentInfo,commentDTO.getInfo())
                .set(Orders::getCommentType,Constants.ZERO)
                .eq(Orders::getId,orders.getId())
        );
        memberMapper.update(new UpdateWrapper<Member>().lambda()
                .set(Member::getScore," ( total_score +" + commentDTO.getLevel() + " ) / (score_order_num + 1 )")
                .set(Member::getTotalScore," total_score +" + commentDTO.getLevel())
                .set(Member::getScoreOrderNum," score_order_num + 1 " ).eq(Member::getId,orders.getAcceptMemberId())
                .setSql(" score =  ( total_score +" + commentDTO.getLevel() + " ) / (score_order_num + 1 )")
                .setSql(" total_score =  total_score +" + commentDTO.getLevel())
                .setSql(" score_order_num = score_order_num + 1 " ).eq(Member::getId,orders.getAcceptMemberId())
        );
        //日志存储
        Constants.OrdersLog ordersLog = Constants.OrdersLog.COMMENT;
@@ -1171,7 +1227,7 @@
    @Override
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public String payNotify(String preOrderId,String paymentNo){
        Orders orders = ordersMapper.selectOne(new QueryWrapper<Orders>().lambda().eq(Orders::getCode,preOrderId).last("limit 1"));
        Orders orders = ordersMapper.selectOne(new QueryWrapper<Orders>().lambda().eq(Orders::getOutTradeNo,preOrderId).last("limit 1"));
        if(Constants.equalsInteger(orders.getType(),Constants.TWO)){
            //用餐订单  如果已经流转到已支付  则直接返回
            if(!Constants.equalsInteger(orders.getStatus(),Constants.ZERO)){
@@ -1214,6 +1270,8 @@
                //存储流水记录
                MemberRevenue memberRevenue = new MemberRevenue();
                memberRevenue.setCreateTime(new Date());
                memberRevenue.setDeleted(Constants.ZERO);
                memberRevenue.setTransactionNo(orders.getCode());
                memberRevenue.setMemberId(orders.getAcceptMemberId());
                memberRevenue.setType(orders.getType());
                memberRevenue.setOptType(Constants.ONE);
@@ -1233,8 +1291,8 @@
                //更新接单用户的余额与历史总金额
                memberMapper.update(new UpdateWrapper<Member>().lambda()
                        .set(Member::getAmount,"amount + " + orders.getReceiveAccount() )
                        .set(Member::getTotalAmount,"amount + " + orders.getReceiveAccount() )
                        .setSql(" amount = ( amount + " + orders.getReceiveAccount() +")" )
                        .setSql(" total_amount = ( amount + " + orders.getReceiveAccount() + ")" )
                        .eq(Member::getId,member.getId())
                );
@@ -1320,7 +1378,7 @@
                //接单方 我的订单
                queryWrapper.eq(Orders::getAcceptMemberId,model.getMember().getId());
                queryWrapper.eq(Objects.nonNull(model.getStatus()),Orders::getStatus,model.getStatus());
                queryWrapper.orderByDesc(Orders::getCreateTime);
                queryWrapper.orderByDesc(Orders::getAcceptTime);
            }else{
                //查询用户的接单权重
                ReceiveWeight receiveWeight = receiveWeightMapper.selectOne(new QueryWrapper<ReceiveWeight>().lambda().eq(ReceiveWeight::getDeleted,Constants.ZERO).apply(" RECEIVE_MIN < "+model.getMember().getReceiveNum()+" and RECEIVE_MAX > " + model.getMember().getReceiveNum()).last(" limit 1 "));
@@ -1427,7 +1485,7 @@
    @Override
    public Orders getDetail(Integer id,Integer userType) {
    public Orders getDetail(Integer id,Member member) {
        Orders orders = ordersMapper.selectJoinOne(Orders.class,new MPJLambdaWrapper<Orders>()
                        .selectAll(Orders.class)
                        .select(" m1.name " , Orders::getReleaseName)
@@ -1472,11 +1530,56 @@
            orders.setMultifileList(multifileList);
        }
        orders.setStatusName(Constants.ordersStatus.getName(orders.getStatus()));
        orders.setCancelStatus(Constants.ZERO);
        this.getPriceUnit(orders);
        if(orders.getStatus() <= Constants.ordersStatus.accept.getKey()){
            if(Constants.equalsInteger(orders.getReleaseMemberId(),member.getId())){
                //判断是否可修改 已取消次数 与 时间限制
                Integer totalCancelTimes = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RELEASE_CANCEL_TIMES).getCode());
                Long cancelTimes = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda()
                        .apply(" DATE(cancel_time) = DATE(NOW()) ")
                        .eq(Orders::getStatus,Constants.ordersStatus.cancel.getKey())
                        .eq(Orders::getReleaseMemberId,orders.getReleaseMemberId()));
                //查询取消次数
                if(totalCancelTimes<=cancelTimes){
                    orders.setCancelStatus(Constants.ONE);
                    return orders;
                }
                Integer cancelTimeHour = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RELEASE_CANCEL_TIME).getCode());
                Long hours = DateUtil.getBetweenHours(new Date(),orders.getStartDate());
                if(hours < cancelTimeHour){
                    orders.setCancelStatus(Constants.ONE);
                    return orders;
                }
            }else if(Constants.equalsInteger(orders.getAcceptMemberId(),member.getId())){
                //判断是否可修改 已取消次数 与 时间限制
                Integer totalCancelTimes = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RECEIVE_CANCEL_TIMES).getCode());
                Long cancelTimes = orderLogMapper.selectCount(new QueryWrapper<OrderLog>().lambda()
                        .apply(" DATE(create_time) = DATE(NOW()) ")
                        .eq(OrderLog::getObjType,Constants.OrdersLog.CANCEL.getKey())
                        .eq(OrderLog::getMemberId,member.getId()));
                //查询取消次数
                if(totalCancelTimes<=cancelTimes){
                    orders.setCancelStatus(Constants.ONE);
                    return orders;
                }
                Integer cancelTimeHour = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RECEIVE_CANCEL_TIME).getCode());
                Long hours = DateUtil.getBetweenHours(new Date(),orders.getStartDate());
                if(hours < cancelTimeHour){
                    orders.setCancelStatus(Constants.ONE);
                    return orders;
                }
            }
        } else{
            orders.setCancelStatus(Constants.ONE);
        }
        return orders;
    }
    public synchronized String  getNextCode(Integer type){
        String prefix = "YG";
        if(!Constants.equalsInteger(type,Constants.ZERO)){