MrShi
2024-02-28 92f94b0a4e65b0ab5c4195e632b5e4d1b0158aac
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/RetentionServiceImpl.java
@@ -205,6 +205,13 @@
                            +dataMap.get(Constants.MEMBER_IMG).getCode()
                            +obj.getFaceImg());
                }
                if(Objects.nonNull(obj.getType())){
                    if(!obj.getType().equals(Constants.memberType.visitor)){
                        obj.setExcelCompanyName(obj.getCompanyName());
                    }else{
                        obj.setExcelCompanyName(obj.getVisitCompanyName());
                    }
                }
            });
        }
        return PageData.from(retentionIPage);
@@ -252,17 +259,19 @@
        IPage<Retention> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        MPJLambdaWrapper<Retention> queryWrapper = new MPJLambdaWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        queryWrapper.leftJoin(Company.class,Company::getId,Retention::getId);
        queryWrapper.leftJoin(Company.class,Company::getId,Retention::getCompanyId);
        queryWrapper.selectAll(Retention.class)
                .selectAs(Company::getName,Retention::getCompanyName);
                .selectAs(Company::getName,Retention::getCompanyName)
                .select(" ( SELECT v.company_name FROM visits v WHERE v.member_id = t.member_id and v.status = "+Constants.VisitStatus.signin+" ORDER BY create_date DESC limit 1 ) as visitCompanyName ");
        queryWrapper.like(number,Retention::getPhone,pageWrap.getModel().getKeyWords())
                .like((b||hasWord),Retention::getName,pageWrap.getModel().getKeyWords())
                .eq(Objects.nonNull(pageWrap.getModel().getType()),
                        Retention::getType,
                        pageWrap.getModel().getType())
                .like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),
                        Company::getName,
                        pageWrap.getModel().getCompanyName())
                .and(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),
                        p-> p.like(Company::getName, pageWrap.getModel().getCompanyName())
                                .or()
                                .exists(" select 1 from visits v where  v.member_id = t.member_id and v.company_name like '%"+pageWrap.getModel().getCompanyName()+"%' and v.status = "+Constants.VisitStatus.signin+""))
                .ge(Objects.nonNull(pageWrap.getModel().getStartTime()),
                        Retention::getEventDate,pageWrap.getModel().getStartTime())
                .le(Objects.nonNull(pageWrap.getModel().getEndTime()),