doum
9 小时以前 5d3b86a4d0032836c782e5e1319179eced5e5647
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -388,7 +388,7 @@
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),ResponseStatus.DATA_EMPTY.getMessage());
        }
        cancelOrder( query.getId(),  user.getId(),goodsorder.getCancelInfo() );
        cancelOrderNew( query.getId(),  user.getId(),goodsorder.getCancelInfo() );
    }
@@ -411,17 +411,27 @@
                .selectAs(Member::getNickname,Goodsorder::getNickName)
                .selectAs(Member::getPhone,Goodsorder::getPhone)
                .selectAs(Member::getName,Goodsorder::getMemberName)
                .selectAs(SystemUser::getRealname,Goodsorder::getKdUserName)
                .selectAs(MemberCoupon::getName,Goodsorder::getCouponName)
                .select("t4.realname",Goodsorder::getKdUserName)
                .select("t5.realname",Goodsorder::getCancelUserName)
                .select("t6.realname",Goodsorder::getRefundUserName)
                .selectAs(Shop::getName,Goodsorder::getShopName)
                .leftJoin(MemberCoupon.class,MemberCoupon::getId,Goodsorder::getCouponId)
                .leftJoin(Shop.class,Shop::getId,Goodsorder::getDistributionShopId)
                .leftJoin(Member.class,Member::getId,Goodsorder::getMemberId)
                .leftJoin(SystemUser.class,SystemUser::getId,Goodsorder::getKdUser)
                .leftJoin(SystemUser.class,SystemUser::getId,Goodsorder::getCancelUser)
                .leftJoin(SystemUser.class,SystemUser::getId,Goodsorder::getRefundUserId)
                .eq(Goodsorder::getId,id);
        Goodsorder result=goodsorderJoinMapper.selectJoinOne(Goodsorder.class,q);
        if(Objects.nonNull(result)){
            MPJLambdaWrapper<GoodsorderDetail> queryWrapper = new MPJLambdaWrapper<>();
            queryWrapper.selectAll(GoodsorderDetail.class)
                    .selectAs(Labels::getName,GoodsorderDetail::getCategoryName)
                    .eq(GoodsorderDetail::getIsdeleted,Constants.ZERO)
                    .leftJoin(GoodsSku.class,GoodsSku::getId,GoodsorderDetail::getGoodsSkuId)
                    .leftJoin(Goods.class,Goods::getId,GoodsSku::getGoodsId)
                    .leftJoin(Labels.class,Labels::getId,Goods::getCategoryId)
                    .eq(GoodsorderDetail::getOrderId,result.getId()) ;
            List<GoodsorderDetail> goodsorderDetailList=goodsorderDetailMapper.selectList(queryWrapper);
            String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()
@@ -430,6 +440,8 @@
                if(StringUtils.isNotBlank(model.getImgurl())){
                   model.setImgurl(path+ model.getImgurl());
                }
                //小计
                model.setTotalPrice(Constants.formatBigdecimal(model.getPrice()).multiply(new BigDecimal(Constants.formatIntegerNum(model.getGoodsNum()))));
            }
            result.setGoodsorderDetailList(goodsorderDetailList);
        }
@@ -456,6 +468,8 @@
        queryWrapper.selectAll(Goodsorder.class);
        queryWrapper.selectAs(Shop::getName,Goodsorder::getShopName);
        initPageQueryWrapper(queryWrapper,pageWrap);
        queryWrapper.selectAs(MemberCoupon::getName,Goodsorder::getCouponName);
        queryWrapper.leftJoin(MemberCoupon.class,MemberCoupon::getId,Goodsorder::getCouponId);
        queryWrapper.eq(pageWrap.getModel().getStatus()!=null,Goodsorder::getStatus,pageWrap.getModel().getStatus());
        queryWrapper.orderByDesc(Goodsorder::getCreateDate);
@@ -469,7 +483,7 @@
            dealOrderDetailsBiz(idList,result);//查询订单明细
        }
        PageData<Goodsorder> rr =  PageData.from(result);
        if(pageWrap.getPage() == 1){
        if(pageWrap.getPage() == 1  && pageWrap.getModel().getNeedCount()!=null&& pageWrap.getModel().getNeedCount()){
            //如果查询第一页,做数据统计
            rr.setCountData(dealCountOrderNum(pageWrap));
        }
@@ -646,41 +660,42 @@
    @Override
    public List<Goodsorder> exportExcel(Goodsorder pageWrap) {
        MPJLambdaWrapper<Goodsorder> queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper.selectAll(Goodsorder.class);
        queryWrapper.selectAs(GoodsorderDetail::getName,Goodsorder::getGoodsName);
        queryWrapper.selectAs(GoodsorderDetail::getSkuName,Goodsorder::getSkuName);
        queryWrapper.selectAs(GoodsorderDetail::getGoodsNum,Goodsorder::getGoodsNum);
        queryWrapper.selectAs(GoodsorderDetail::getPrice,Goodsorder::getGoodsPrice);
        queryWrapper.selectAs(Member::getNickname,Goodsorder::getNickName);
        queryWrapper.selectAs(Member::getPhone,Goodsorder::getPhone);
        queryWrapper.selectAs(Addr::getAddr,Goodsorder::getAddr);
        queryWrapper.select("(select CREATE_DATE  from order_urge where ORDER_ID=t.id and ISDELETED=0 ORDER BY CREATE_DATE desc limit 1) as urgeCreateDate ");
        queryWrapper.leftJoin(Member.class,Member::getId,Goodsorder::getMemberId);
        queryWrapper.leftJoin(Addr.class,Addr::getMemberId,Member::getId);
        queryWrapper.leftJoin(GoodsorderDetail.class,GoodsorderDetail::getOrderId,Goodsorder::getId);
        queryWrapper.eq(GoodsorderDetail::getIsdeleted,Constants.ZERO);
        queryWrapper.eq(Addr::getIsDefault,Constants.ONE);
        queryWrapper.eq(pageWrap.getCode()!=null,Goodsorder::getCode,pageWrap.getCode());
        queryWrapper.and(StringUtils.isNotBlank(pageWrap.getNickName()),ms->ms.like(Goodsorder::getLinkname,pageWrap.getNickName())
                .or().like(Goodsorder::getLinkphone,pageWrap.getNickName())
        );
        queryWrapper.ge(pageWrap.getStarttime()!=null,Goodsorder::getCreateDate,pageWrap.getStarttime());
        queryWrapper.le(pageWrap.getEndtime()!=null,Goodsorder::getCreateDate, pageWrap.getEndtime());
        queryWrapper.eq(pageWrap.getStatus()!=null,Goodsorder::getStatus,pageWrap.getStatus());
        queryWrapper.eq(pageWrap.getIsdeleted()==null,Goodsorder::getIsdeleted,Constants.ZERO);
        queryWrapper.eq(pageWrap.getIsdeleted()!=null,Goodsorder::getIsdeleted,pageWrap.getIsdeleted());
        queryWrapper.orderByDesc(Goodsorder::getCreateDate);
        List<Goodsorder> result = goodsorderJoinMapper.selectJoinList(Goodsorder.class, queryWrapper);
    public List<GoodsorderExport> exportExcel(PageWrap<Goodsorder> pageWrap) {
        pageWrap.getModel().setNeedCount(false);
        PageData<Goodsorder> list = findPage(pageWrap);
        List<GoodsorderExport> result = new ArrayList<>();
        if(list!=null && list.getRecords()!=null){
            for(Goodsorder order: list.getRecords()){
                GoodsorderExport param = new GoodsorderExport();
                param.setCode(order.getCode());
                String goodsInfo = "";
                int goodsNum= 0;
                if(order.getGoodsorderDetailList()!=null && order.getGoodsorderDetailList().size()>0){
                    for(GoodsorderDetail detail:order.getGoodsorderDetailList()){
                        goodsNum += Constants.formatIntegerNum(detail.getGoodsNum());
                        goodsInfo+= StringUtils.defaultString(detail.getName(),"")+"/"+Constants.formatBigdecimal(detail.getGoodsWeight())+"kg"
                                +"("+Constants.formatBigdecimal(detail.getPrice())+"  x  "+Constants.formatIntegerNum(detail.getGoodsNum())+");\n";
                    }
                }
                param.setTotalNum(goodsNum);
                param.setGoodsName(goodsInfo);
                param.setTotalPrice(order.getTotalPrice());
                param.setIntegralPrice(order.getIntegral());
                param.setCouponPrice(order.getCouponPrice());
                param.setMailPrice(order.getMailPrice());
                param.setPrice(order.getPrice());
                param.setShopName(order.getShopName());
                param.setShopSettlement(order.getShopSettlement());
                param.setReceiveType(order.getReceiveType());
                param.setLinkname(order.getLinkname());
                param.setLinkphone(order.getLinkphone());
                param.setAddr(order.getLinkaddr());
                param.setKdInfo(StringUtils.defaultString(order.getKdName(),"")+StringUtils.defaultString(order.getKdCode(),""));
                param.setStatus(order.getStatus());
                param.setCreateDate(order.getCreateDate());
                result.add(param);
            }
        }
        return result;
    }
@@ -1352,11 +1367,12 @@
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if(!(Constants.equalsInteger(goodsorder.getStatus(),Constants.OrderStatus.WAIT_PAY.getKey())
        || Constants.equalsInteger(goodsorder.getStatus(),Constants.OrderStatus.PAY_DONE.getKey())
        || Constants.equalsInteger(goodsorder.getStatus(),Constants.OrderStatus.WAIT_RECEIVE.getKey()) )){
            || Constants.equalsInteger(goodsorder.getStatus(),Constants.OrderStatus.PAY_DONE.getKey())
            || Constants.equalsInteger(goodsorder.getStatus(),Constants.OrderStatus.WAIT_RECEIVE.getKey()) )){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"订单取消失败:订单状态已流转!");
        }
        if(goodsorder.getPrice().compareTo(BigDecimal.ZERO)>Constants.ZERO){
        if(Constants.formatBigdecimal(goodsorder.getPrice()).compareTo(BigDecimal.ZERO)>Constants.ZERO
                && Constants.equalsObject(goodsorder.getPayStatus(),Constants.ONE) ){
            //微信现金退款
            String refundCode = WxMiniUtilService.wxRefund(goodsorder.getCode().toString(), goodsorder.getPrice(), goodsorder.getPrice());
            Fund fund = new Fund();
@@ -1934,7 +1950,6 @@
        }
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void orderComment(OrderCommentRequest orderCommentRequest){
@@ -1973,6 +1988,18 @@
        goodsorder.setIsComment(Constants.ONE);
        goodsorderMapper.updateById(goodsorder);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public  void orderRefund(Goodsorder param){
        Goodsorder goodsorder = goodsorderMapper.selectById(param.getId());
        if(!goodsorder.getMemberId().equals(goodsorder.getMemberId())){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"操作失败:用户信息匹配失败!");
        }
        if(!goodsorder.getStatus().equals(Constants.OrderStatus.DONE.getKey())){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"操作失败:订单未完成,无法退款!");
        }
    }
    @Override