111
k94314517
2023-11-06 f5a2465a271372121c5e60efd52035f83c3226dc
server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -170,14 +170,60 @@
    public PageData<GoodsorderExportVO> findAccountDetailPage(PageWrap<Goodsorder> pageWrap) {
        IPage<Goodsorder> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        pageWrap.getModel().setPayStatus(Constants.ONE); //只查询支付成功的
        MPJLambdaWrapper<Goodsorder> queryWrapper = initQueryParamByModel(pageWrap.getModel());
        return PageData.from(goodsorderJoinMapper.selectJoinPage(page, GoodsorderExportVO.class,queryWrapper));
        // 因为修改排序问题
//        MPJLambdaWrapper<Goodsorder> queryWrapper = initQueryParamByModel(pageWrap.getModel());
        MPJLambdaWrapper<Goodsorder> queryWrapper = new MPJLambdaWrapper<>();
        Goodsorder model = pageWrap.getModel();
        Utils.MP.blankToNull(model);
        queryWrapper.selectAll(Goodsorder.class);
        queryWrapper.selectAs(Member::getOpenid, Goodsorder::getOpenid);
        queryWrapper.leftJoin(Member.class, Member::getId  ,Goodsorder::getMemberId);
        queryWrapper.select("(select max(r.done_date) from refund r where r.obj_id=t.id  and r.status=2 ) as refund_date");
        queryWrapper.select("(select sum(r.money) from refund r where r.obj_id=t.id and r.status=2) as refund_money");
        //时间段筛选
        if (Objects.nonNull(model.getStartDate())){
            queryWrapper.ge(Goodsorder::getPayDate, Utils.Date.getStart(model.getStartDate()));
        }
        if (Objects.nonNull(model.getEndDate())){
            queryWrapper.le( Goodsorder::getPayDate, Utils.Date.getEnd(model.getEndDate()));
        }
        queryWrapper.eq(model.getPayStatus() !=null,Goodsorder::getPayStatus,model.getPayStatus());
        queryWrapper.like(model.getCode() !=null,Goodsorder::getCode,model.getCode());
        queryWrapper.like(model.getId() !=null,Goodsorder::getId,model.getId());
        queryWrapper.eq(model.getStatus() !=null,Goodsorder::getStatus,model.getStatus());
        queryWrapper.like(model.getOnlineOrderid() !=null,Goodsorder::getOnlineOrderid,model.getOnlineOrderid());
        queryWrapper.like(model.getOpenid() !=null,Member::getOpenid,model.getOpenid());
        queryWrapper.eq(Goodsorder::getIsdeleted,Constants.ZERO);
        queryWrapper.eq(Goodsorder::getPayStatus,Constants.ONE);
        queryWrapper.orderByAsc(Goodsorder::getPayDate);
        //type 1 为退款记录
        if (Objects.equals(model.getType(),Constants.ONE)){
            queryWrapper.exists("select * from refund re where re.obj_id = t.id");
        }
        IPage<GoodsorderExportVO> goodsorderExportVOIPage = goodsorderJoinMapper.selectJoinPage(page, GoodsorderExportVO.class, queryWrapper);
        if (!CollectionUtils.isEmpty(goodsorderExportVOIPage.getRecords())){
            goodsorderExportVOIPage.getRecords().forEach(s->{
                s.setMoney(Constants.translateMoney(s.getMoney()));
                s.setRefundMoney(Constants.translateMoney(s.getRefundMoney()));
                s.setCloseMoney(Constants.translateMoney(s.getCloseMoney()).compareTo(s.getMoney()) > 0 ? s.getMoney() : Constants.translateMoney(s.getCloseMoney()));
            });
        }
        return PageData.from(goodsorderExportVOIPage);
    }
    @Override
    public   List<GoodsorderExportVO> findExportAccountDetailPage(Goodsorder model){
        model.setPayStatus(Constants.ONE); //只查询支付成功的
        MPJLambdaWrapper<Goodsorder> queryWrapper = initQueryParamByModel(model);
        List<GoodsorderExportVO> goodsorderList = goodsorderJoinMapper.selectJoinList(GoodsorderExportVO.class,queryWrapper);
        if (!CollectionUtils.isEmpty(goodsorderList)){
            goodsorderList.forEach(s->{
                s.setMoney(Constants.translateMoney(s.getMoney()));
                s.setCloseMoney(Constants.translateMoney(s.getCloseMoney()).compareTo(s.getMoney()) > 0 ? s.getMoney() : Constants.translateMoney(s.getCloseMoney()));
                s.setRefundMoney(Constants.translateMoney(s.getRefundMoney()));
            });
        }
       /*   List<GoodsorderExportVO> list = new ArrayList<>();
        if(goodsorderList!=null){
            for(Goodsorder order : goodsorderList){
@@ -229,7 +275,7 @@
    public PageData<Goodsorder> findPage(PageWrap<Goodsorder> pageWrap) {
        IPage<Goodsorder> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        MPJLambdaWrapper<Goodsorder> queryWrapper = initQueryParamByModel(pageWrap.getModel());
        queryWrapper.select("(select  er.status from member_rides  er  where er.ordre_id=t.id order by er.create_date limit 1) as memberRidesStatus");
        queryWrapper.select("(select  er.status from member_rides  er  where er.ordre_id=t.id order by er.create_date desc limit 1) as memberRidesStatus");
        if(Objects.nonNull(pageWrap.getModel().getCloseStatus()) && pageWrap.getModel().getCloseStatus().equals(Constants.ZERO)){
            queryWrapper.ne(Goodsorder::getStatus,Constants.GOODSORDER_STATUS.CLOSE.getKey());
        }
@@ -266,7 +312,7 @@
        homeResponse.setLeaseNoticeUrl(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.LEASE_NOTICE_URL).getCode());
        homeResponse.setLeaseNotice(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.LEASE_NOTICE).getCode());
        homeResponse.setDeposit(new BigDecimal(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.RENT_DEPOSIT).getCode()).multiply(BigDecimal.valueOf(100)));
        homeResponse.setTips(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.TIPS).getCode());
        homeResponse.setTips(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.RENT_NOTICE).getCode());
        homeResponse.setLeaseVideoUrl(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.RENT_TIPS_VIDEO).getCode());
        homeResponse.setStopServeTips(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.STOP_SERVE_TIPS).getCode());
        homeResponse.setIsStopServe(this.checkTemporaryStop()?1:0);
@@ -275,7 +321,7 @@
        homeResponse.setAdList(adMapper.selectList(new QueryWrapper<Ad>()
                .eq("isdeleted",Constants.ZERO)
                .eq("status",Constants.ZERO)
                .orderByDesc("create_date")
                .orderByAsc("sortnum")
        ));;
        if(!Objects.isNull(homeResponse.getAdList())&&homeResponse.getAdList().size()>Constants.ZERO){
            homeResponse.getAdList().forEach(i->{
@@ -295,6 +341,7 @@
            MemberRides memberRides = memberRidesJoinMapper.selectOne(new QueryWrapper<MemberRides>().lambda()
                    .eq(MemberRides::getMemberId, memberId)
                    .eq(MemberRides::getOrdreId,goodsorder.getId())
                    .ne(MemberRides::getStatus,Constants.MEMBER_RIDES_STATUS.LOCKING_DEFEAT.getKey())
                    .orderByDesc(MemberRides::getCreateDate)
                    .last(" limit 1  "));
            if (!Objects.isNull(memberRides)) {
@@ -396,7 +443,7 @@
    @Override
    public void closeGoodsorder( Goodsorder goodsorder ,int type ) {
        LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
//
        List<MemberRides> memberRides = getMemberRidesForClose(goodsorder.getId());
        //默认结算为押金金额
        BigDecimal closeMoney = new BigDecimal(0.00);
@@ -427,6 +474,8 @@
        if(Constants.REFUND_TYPE.PLAT_FORCE.getKey() == type){
            //如果是强制结算
            update.setCloseType(Constants.ONE);
            LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
            update.setEditor(principal.getId());
        }else  if(Constants.REFUND_TYPE.NORMAL.getKey() == type){
            //如果是自行結算
            update.setCloseType(Constants.ZERO);
@@ -444,7 +493,7 @@
            refundDTO.setTotalAmount(goodsorder.getMoney());
            refundDTO.setMemberId(goodsorder.getMemberId());
            refundDTO.setReason(Constants.REFUND_TYPE.get(type).getName());
            refundDTO.setCreator(principal.getId());
            refundDTO.setCreator(update.getEditor());
            refundDTO.setType(type);
            Refund refund = wxMiniUtilService.wxRefund(refundDTO);
            update.setCloseId(refund.getId());
@@ -504,6 +553,7 @@
        MPJLambdaWrapper<MemberRides> wrapper = new MPJLambdaWrapper<>();
        wrapper.eq(MemberRides::getOrdreId,id);
        wrapper.ne(MemberRides::getStatus,Constants.MEMBER_RIDES_STATUS.LOCKING_DEFEAT.getKey());
        wrapper.selectAll(MemberRides.class).selectAs(BaseParam::getName, MemberRides::getParamName);
        wrapper.leftJoin(BaseParam.class, BaseParam::getId, MemberRides::getParamId);
        wrapper.orderByDesc(BaseParam::getSortnum);
@@ -536,7 +586,7 @@
        if(canBalance.compareTo(money) >= Constants.ZERO){
            RefundDTO refundDTO = new RefundDTO();
            refundDTO.setOrderId(orderId);
            refundDTO.setCanBalance(canBalance);
            refundDTO.setCanBalance(canBalance.multiply(new BigDecimal(100)));
            refundDTO.setRefundAmount(money.multiply(new BigDecimal(100)));
            refundDTO.setTotalAmount(goodsorder.getMoney());
            refundDTO.setMemberId(goodsorder.getMemberId());
@@ -587,8 +637,12 @@
            model.setPayNum(0);
            model.setRefundNum(0);
            QueryWrapper<Goodsorder> queryWrapper = new QueryWrapper<>();
            queryWrapper.lambda().ge(param.getStartDate() !=null,Goodsorder::getPayDate, Utils.Date.getStart(param.getStartDate()));
            queryWrapper.lambda().le(param.getEndDate() !=null,Goodsorder::getPayDate, Utils.Date.getEnd(param.getEndDate()));
            if(Objects.nonNull(param.getStartDate())){
                queryWrapper.lambda().ge(param.getStartDate() !=null,Goodsorder::getPayDate, Utils.Date.getStart(param.getStartDate()));
            }
            if(Objects.nonNull(param.getEndDate())) {
                queryWrapper.lambda().le(param.getEndDate() != null, Goodsorder::getPayDate, Utils.Date.getEnd(param.getEndDate()));
            }
            queryWrapper.lambda().eq(Goodsorder::getPayStatus, Constants.ONE);//已支付
            queryWrapper.lambda().eq(Goodsorder::getIsdeleted, Constants.ZERO);
            queryWrapper.lambda().groupBy(Goodsorder::getStatus);
@@ -600,22 +654,27 @@
                if(Constants.formatIntegerNum(goodsorder.getStatus()) == Constants.GOODSORDER_STATUS.CLOSE.getKey()){
                    //已结算
                    model.setClosedNum(model.getClosedNum()+goodsorder.getCountNum());
                    model.setClosedMoney(Constants.translateMoney(model.getClosedMoney().add(Constants.formatDecimalNum(goodsorder.getCloseMoney()))));
                    //修改bug 结算收入 = 支付金额-退款-未结算
//                    model.setClosedMoney(model.getClosedMoney().add(Constants.translateMoney(goodsorder.getCloseMoney())));
                    model.setPayNum(model.getPayNum()+goodsorder.getCountNum());
                    model.setPayMoney(Constants.translateMoney(model.getPayMoney().add(Constants.formatDecimalNum(goodsorder.getMoney()))));
                    model.setPayMoney(model.getPayMoney().add(Constants.translateMoney(goodsorder.getMoney())));
                }else  if(Constants.formatIntegerNum(goodsorder.getStatus()) == Constants.GOODSORDER_STATUS.HAVING_PAY.getKey()){
                    //已支付未结算
                    model.setUnClosedNum(model.getUnClosedNum()+goodsorder.getCountNum());
                    model.setUnClosedMoney(Constants.translateMoney(model.getUnClosedMoney().add(Constants.formatDecimalNum(goodsorder.getMoney()))));
                    model.setUnClosedMoney(model.getUnClosedMoney().add(Constants.translateMoney(goodsorder.getMoney())));
                    model.setPayNum(model.getPayNum()+goodsorder.getCountNum());
                    model.setPayMoney(Constants.translateMoney(model.getPayMoney().add(Constants.formatDecimalNum(goodsorder.getMoney()))));
                    model.setPayMoney(model.getPayMoney().add(Constants.translateMoney(goodsorder.getMoney())));
                }
            }
        QueryWrapper<Refund> queryWrapper2 = new QueryWrapper<>();
        queryWrapper2.lambda().ge(param.getStartDate() !=null,Refund::getDoneDate,Utils.Date.getStart(param.getStartDate()));
        queryWrapper2.lambda().le(param.getEndDate() !=null,Refund::getDoneDate,Utils.Date.getEnd(param.getEndDate()));
        if(Objects.nonNull(param.getStartDate())) {
            queryWrapper2.lambda().ge(Refund::getDoneDate, Utils.Date.getStart(param.getStartDate()));
        }
        if(Objects.nonNull(param.getEndDate())) {
            queryWrapper2.lambda().le(Refund::getDoneDate, Utils.Date.getEnd(param.getEndDate()));
        }
        queryWrapper2.lambda().eq(Refund::getIsdeleted, Constants.ZERO);
        queryWrapper2.select( "count(id) as count_num"
                ,"sum(money) as money" );
@@ -625,6 +684,7 @@
            model.setRefundNum(Constants.formatIntegerNum(refund.getCountNum()));
            model.setRefundMoney(Constants.translateMoney(Constants.formatDecimalNum(refund.getMoney())));
        }
        model.setClosedMoney(model.getPayMoney().subtract(model.getRefundMoney()).subtract(model.getUnClosedMoney()));
        return  model;
    }
    @Override
@@ -639,6 +699,7 @@
                .selectAs(BaseParam::getName,MemberRides::getParamName)
                .leftJoin(BaseParam.class,BaseParam::getId,MemberRides::getParamId)
                .eq(MemberRides::getOrdreId,id)
                .in(MemberRides::getStatus,Constants.MEMBER_RIDES_STATUS.RIDES_RUNNING.getKey(),Constants.MEMBER_RIDES_STATUS.BACK_CYCLING.getKey())
                .orderByDesc(MemberRides::getCreateDate));
        if (!CollectionUtils.isEmpty(memberRides)){
            //预计结算价格和计算时长
@@ -723,7 +784,7 @@
        try {
            Object response = null;
            WxPayUnifiedOrderRequest request = new WxPayUnifiedOrderRequest();
            request.setBody("支付押金");
            request.setBody("骑行押金");
            request.setAttach("createGoodsOrder");
            request.setOutTradeNo(goodsorder.getId());
            request.setTotalFee(goodsorder.getMoney().intValue());