From 38ef4fef1899d8bdbd8d444a2e833a79e9253f5d Mon Sep 17 00:00:00 2001
From: jiaosong <jiaosong6760@dingtalk.com>
Date: 星期一, 04 十二月 2023 17:55:15 +0800
Subject: [PATCH] #供应人员新增查询

---
 server/dmvisit_admin/src/main/resources/application.yml                                       |    4 
 server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/LaborMemberDTO.java         |   50 ++++++++
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java  |  108 +++++++++++++++++
 server/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java           |   24 +++
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/TrainTime.java             |    4 
 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java |    2 
 server/dmvisit_service/src/main/java/com/doumee/core/utils/Secure.java                        |   14 ++
 server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/MemberInfoDTO.java         |   90 +++++++++++++++
 server/dmvisit_service/src/main/java/com/doumee/dao/business/join/MemberJoinMapper.java       |   12 ++
 server/dmvisit_service/src/main/java/com/doumee/core/utils/Date.java                          |   10 +
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Empower.java               |    4 
 server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Company.java               |    8 +
 12 files changed, 318 insertions(+), 12 deletions(-)

diff --git a/server/dmvisit_admin/src/main/resources/application.yml b/server/dmvisit_admin/src/main/resources/application.yml
index 46e8cd1..bf9742c 100644
--- a/server/dmvisit_admin/src/main/resources/application.yml
+++ b/server/dmvisit_admin/src/main/resources/application.yml
@@ -10,7 +10,7 @@
   #  application:
   #    name: doumeemes
   profiles:
-    active: pro
+    active: dev
 
   # JSON杩斿洖閰嶇疆
   jackson:
@@ -75,4 +75,4 @@
     max-swallow-size: -1
   servlet:
     session:
-      timeout: PT3H  #琛ㄧず12灏忔椂
\ No newline at end of file
+      timeout: PT3H  #琛ㄧず12灏忔椂
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/utils/Date.java b/server/dmvisit_service/src/main/java/com/doumee/core/utils/Date.java
index 99c696f..3e8e209 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/utils/Date.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/utils/Date.java
@@ -25,6 +25,16 @@
         return calendar.getTime();
     }
 
+    public java.util.Date getDayEnd (java.util.Date date) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.set(Calendar.HOUR_OF_DAY, 23);
+        calendar.set(Calendar.MINUTE, 59);
+        calendar.set(Calendar.SECOND, 59);
+        calendar.set(Calendar.MILLISECOND, 0);
+        return calendar.getTime();
+    }
+
     /**
      * 鑾峰彇鏃ユ湡鐨勭粨鏉熸椂闂�
      * @param date 鏃ユ湡
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/utils/Secure.java b/server/dmvisit_service/src/main/java/com/doumee/core/utils/Secure.java
index 9710ca1..ff5d086 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/utils/Secure.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/utils/Secure.java
@@ -1,6 +1,10 @@
 package com.doumee.core.utils;
 
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.util.DigestUtils;
+
+import java.util.Arrays;
+import java.util.stream.Collectors;
 
 /**
  * 瀹夊叏澶勭悊宸ュ叿绫�
@@ -19,4 +23,14 @@
     public String encryptPassword(String password, String salt) {
         return DigestUtils.md5DigestAsHex((password + salt).getBytes());
     }
+
+    /**
+     * 瀛楃涓叉満瀵�
+     * @param strings
+     * @return
+     */
+    public String encryptString(String... strings) {
+        String collect = Arrays.asList(strings).stream().filter(s -> StringUtils.isBlank(s)).collect(Collectors.joining());
+        return DigestUtils.md5DigestAsHex((collect).getBytes());
+    }
 }
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/LaborMemberDTO.java b/server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/LaborMemberDTO.java
new file mode 100644
index 0000000..bd60ab8
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/LaborMemberDTO.java
@@ -0,0 +1,50 @@
+package com.doumee.dao.admin.request;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author T14
+ */
+@Data
+public class LaborMemberDTO {
+
+    @ApiModelProperty(value = "鎵�灞炵粍缁囩紪鐮�(鍏宠仈company琛�)")
+    private Integer companyId;
+
+    @ApiModelProperty(value = "浜鸿劯鐓х墖")
+    private String faceImg;
+
+    @ApiModelProperty(value = "鍋ュ悍鐮�")
+    private String imgurl;
+
+    @ApiModelProperty(value = "绫诲瀷 0鍔冲姟璁垮 1鏅�氳瀹�  2鍐呴儴浜哄憳")
+    private Integer type;
+
+    @ApiModelProperty(value = "璁垮鍚嶇О")
+    private String name;
+
+    @ApiModelProperty(value = "鎵嬫満鍙�")
+    private String phone;
+
+    @ApiModelProperty(value = "韬唤璇佸彿")
+    private String idcardNo;
+
+    @ApiModelProperty(value = "璇佷欢鏄剧ず淇℃伅")
+    private String idcardDecode;
+
+    @ApiModelProperty(value = "鍩硅鏈夋晥鏈熻捣濮�")
+    private Date startTime;
+
+    @ApiModelProperty(value = "鍩硅鏈夋晥鏈熺粨鏉�")
+    private Date endTime;
+
+    @ApiModelProperty(value = "鎬у埆 1 : 鐢� 锛� 0 : 濂�")
+    private Integer sex;
+
+    @ApiModelProperty(value = "娣诲姞浜虹紪鐮侊紙鑷叧鑱旓級", example = "1")
+    private Integer parentId;
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/MemberInfoDTO.java b/server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/MemberInfoDTO.java
new file mode 100644
index 0000000..8169aee
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/MemberInfoDTO.java
@@ -0,0 +1,90 @@
+package com.doumee.dao.admin.response;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author T14
+ */
+@Data
+@ApiModel("鍔冲姟浜哄憳淇℃伅琛�")
+public class MemberInfoDTO {
+
+    @ApiModelProperty(value = "涓婚敭")
+    private Integer id;
+
+    @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�")
+    private Integer creator;
+
+    @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�")
+    private String creatorName;
+
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+
+    @ApiModelProperty(value = "鎵�灞炵粍缁囩紪鐮�(鍏宠仈company琛�)")
+    private Integer companyId;
+
+    @ApiModelProperty(value = "鍏徃鍚嶇О")
+    private String companyName;
+
+    @ApiModelProperty(value = "鍏徃璐熻矗浜�")
+    private String linkName;
+
+    @ApiModelProperty(value = "鍏徃璐熻矗浜鸿仈绯荤數璇�")
+    @ExcelColumn(name="鑱旂郴鐢佃瘽")
+    private String linkPhone;
+
+    @ApiModelProperty(value = "浜鸿劯鐓х墖")
+    private String faceImg;
+
+    @ApiModelProperty(value = "鍋ュ悍鐮�")
+    private String imgurl;
+
+    @ApiModelProperty(value = "绫诲瀷 0鍔冲姟璁垮 1鏅�氳瀹�  2鍐呴儴浜哄憳")
+    private Integer type;
+
+    @ApiModelProperty(value = "璁垮鍚嶇О")
+    private String name;
+
+    @ApiModelProperty(value = "璁垮骞撮緞")
+    private Date birthday;
+
+    @ApiModelProperty(value = "鎵嬫満鍙�")
+    private String phone;
+
+    @ApiModelProperty(value = "韬唤璇佸彿锛圡D4鍔犲瘑锛�")
+    private String idcardNo;
+
+    @ApiModelProperty(value = "璇佷欢鏄剧ず淇℃伅")
+    private String idcardDecode;
+
+    @ApiModelProperty(value = "宸ュ彿")
+    private String code;
+
+    @ApiModelProperty(value = "鐝")
+    private String classes;
+
+    @ApiModelProperty(value = "鐘舵�� 0姝e父 1绂佺敤 2鎷夐粦/鍐荤粨")
+    private Integer status;
+
+    @ApiModelProperty(value = "娣诲姞浜虹紪鐮侊紙鑷叧鑱旓級")
+    private Integer parentId;
+
+    @ApiModelProperty(value = "寰俊openid")
+    private String openid;
+
+    @ApiModelProperty(value = "鍩硅鏈夋晥鏈熺粨鏉熸椂闂�")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date trainTimeEndTime;
+
+    @ApiModelProperty(value = "闂ㄧ鏈夋晥鏈熺粨鏉�")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date empowerEndTime;
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/join/MemberJoinMapper.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/join/MemberJoinMapper.java
new file mode 100644
index 0000000..9bcded8
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/join/MemberJoinMapper.java
@@ -0,0 +1,12 @@
+package com.doumee.dao.business.join;
+
+import com.doumee.dao.business.model.Member;
+import com.github.yulichang.base.mapper.MPJJoinMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @author T14
+ */
+@Repository
+public interface MemberJoinMapper extends MPJJoinMapper<Member> {
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Company.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Company.java
index 96d2d41..e9fd108 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Company.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Company.java
@@ -32,7 +32,7 @@
 
     @ApiModelProperty(value = "鍒涘缓浜哄悕绉�")
     @TableField(exist = false)
-    private Integer creatorName;
+    private String creatorName;
 
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
     @ExcelColumn(name="鍒涘缓鏃堕棿")
@@ -66,6 +66,10 @@
     @ExcelColumn(name="鎺掑簭鐮�")
     private Integer sortnum;
 
+    @ApiModelProperty(value = "鍔冲姟浜烘暟")
+    @TableField(exist = false)
+    private Integer countNum;
+
     @ApiModelProperty(value = "鍥炬爣")
     @ExcelColumn(name="鍥炬爣")
     private String imgurl;
@@ -80,7 +84,7 @@
 
     @ApiModelProperty(value = "鍒嗙被缂栫爜鍚嶇О")
     @TableField(exist = false)
-    private Integer categoryName;
+    private String categoryName;
 
     @ApiModelProperty(value = "浼佷笟浠g爜")
     @ExcelColumn(name="浼佷笟浠g爜")
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Empower.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Empower.java
index 40dbea2..fc6fe5b 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Empower.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Empower.java
@@ -65,11 +65,11 @@
 
     @ApiModelProperty(value = "闂ㄧ鏈夋晥鏈熷紑濮�")
     @ExcelColumn(name="闂ㄧ鏈夋晥鏈熷紑濮�")
-    private String startTime;
+    private Date startTime;
 
     @ApiModelProperty(value = "闂ㄧ鏈夋晥鏈熺粨鏉�", example = "1")
     @ExcelColumn(name="闂ㄧ鏈夋晥鏈熺粨鏉�")
-    private Integer endTime;
+    private Date endTime;
 
     @ApiModelProperty(value = "瀵煎叆鐘舵��", example = "1")
     @ExcelColumn(name="瀵煎叆鐘舵��")
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/TrainTime.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/TrainTime.java
index bcc63f7..98b82af 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/TrainTime.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/TrainTime.java
@@ -57,11 +57,11 @@
 
     @ApiModelProperty(value = "鏈夋晥鏈熷紑濮�")
     @ExcelColumn(name="鏈夋晥鏈熷紑濮�")
-    private String startTime;
+    private Date startTime;
 
     @ApiModelProperty(value = "鏈夋晥鏈熺粨鏉�", example = "1")
     @ExcelColumn(name="鏈夋晥鏈熺粨鏉�")
-    private Integer endTime;
+    private Date endTime;
 
     @ApiModelProperty(value = "瀵煎叆鐘舵��", example = "1")
     @ExcelColumn(name="瀵煎叆鐘舵��")
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java
index c2b507b..123bcf2 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java
@@ -2,6 +2,8 @@
 
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.dao.admin.request.LaborMemberDTO;
+import com.doumee.dao.admin.response.MemberInfoDTO;
 import com.doumee.dao.business.model.Member;
 import java.util.List;
 
@@ -14,11 +16,19 @@
 
     /**
      * 鍒涘缓
-     * 
+     *
      * @param member 瀹炰綋瀵硅薄
      * @return Integer
      */
     Integer create(Member member);
+
+    /**
+     *
+     * 鍒涘缓鍔冲姟浜哄憳淇℃伅
+     * @param member
+     * @return
+     */
+    Integer laborMemberCreate(LaborMemberDTO member);
 
     /**
      * 涓婚敭鍒犻櫎
@@ -78,7 +88,7 @@
      * @return List<Member>
      */
     List<Member> findList(Member member);
-  
+
     /**
      * 鍒嗛〉鏌ヨ
      *
@@ -87,6 +97,16 @@
      */
     PageData<Member> findPage(PageWrap<Member> pageWrap);
 
+
+
+    /**
+     * 鍒嗛〉鍔冲姟鐢ㄦ埛淇℃伅鏌ヨ
+     *
+     * @param pageWrap 鍒嗛〉瀵硅薄
+     * @return PageData<Member>
+     */
+    PageData<MemberInfoDTO> findLaborMemberInfoPage(PageWrap<MemberInfoDTO> pageWrap);
+
     /**
      * 鏉′欢缁熻
      *
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
index 3161c88..1009c4a 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -50,7 +50,6 @@
         LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
 
         checkUnique(company);
-
         Company insert = new Company();
         insert.setCreator(loginUserInfo.getId());
         insert.setCreateDate(new Date());
@@ -233,6 +232,7 @@
                     .leftJoin(SystemUser.class,SystemUser::getId,Company::getCreator);
         queryWrapper.selectAll(Company.class)
                     .selectAs(Category::getName,Company::getCategoryName)
+                    .select("count(t1.id) as countNum")
                     .selectAs(SystemUser::getRealname,Company::getCreatorName);
         IPage<Company> companyIPage = companyJoinMapper.selectJoinPage(page, Company.class, queryWrapper);
         return PageData.from(companyIPage);
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 0c7a0ef..5e4213c 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -1,20 +1,40 @@
 package com.doumee.service.business.impl;
 
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.IdcardUtil;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
+import com.doumee.dao.admin.request.LaborMemberDTO;
+import com.doumee.dao.admin.response.MemberInfoDTO;
 import com.doumee.dao.business.MemberMapper;
+import com.doumee.dao.business.TrainTimeMapper;
+import com.doumee.dao.business.join.MemberJoinMapper;
+import com.doumee.dao.business.model.Company;
+import com.doumee.dao.business.model.Empower;
 import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.model.TrainTime;
 import com.doumee.service.business.MemberService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
+import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 浜哄憳淇℃伅琛⊿ervice瀹炵幇
@@ -27,10 +47,70 @@
     @Autowired
     private MemberMapper memberMapper;
 
+    @Autowired
+    private MemberJoinMapper memberJoinMapper;
+
+    @Autowired
+    private TrainTimeMapper trainTimeMapper;
+
     @Override
     public Integer create(Member member) {
         memberMapper.insert(member);
         return member.getId();
+    }
+
+    @Transactional
+    @Override
+    public Integer laborMemberCreate(LaborMemberDTO member) {
+
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+
+        if (IdcardUtil.isValidCard(member.getIdcardNo())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"韬唤璇佸彿鏍煎紡鏈夎");
+        }
+        if (IdcardUtil.getGenderByIdCard(member.getIdcardNo()) == member.getSex()){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鎬у埆鏈夎");
+        }
+        //鑾峰彇鍑虹敓鏃ユ湡
+        String birthByIdCard = IdcardUtil.getBirthByIdCard(member.getIdcardNo());
+        //鑴辨晱鎿嶄綔
+        String hide = IdcardUtil.hide(member.getIdcardNo(), 6, 14);
+        //杞崲鏃ユ湡
+        DateTime yyyyMMdd = DateUtil.parse(birthByIdCard, "yyyyMMdd");
+
+        Member insert = new Member();
+        insert.setCreator(loginUserInfo.getId());
+        insert.setCreateDate(new Date());
+        insert.setEditor(loginUserInfo.getId());
+        insert.setEditDate(new Date());
+        insert.setIsdeleted(Constants.ZERO);
+        insert.setCompanyId(member.getCompanyId());
+        insert.setFaceImg(member.getFaceImg());
+        insert.setImgurl(member.getImgurl());
+        insert.setType(Constants.ZERO);
+        insert.setName(member.getName());
+        insert.setBirthday(yyyyMMdd);
+        insert.setPhone(member.getPhone());
+        insert.setIdcardNo(Utils.Secure.encryptString(member.getIdcardNo()));
+        IdcardUtil.isValidCard(member.getIdcardNo());
+        insert.setIdcardDecode(hide);
+        insert.setStatus(Constants.ZERO);
+        insert.setParentId(member.getParentId());
+        memberMapper.insert(insert);
+
+        TrainTime trainTime = new TrainTime();
+        trainTime.setCreator(loginUserInfo.getId().toString());
+        trainTime.setCreateDate(new Date());
+        trainTime.setEdirot(loginUserInfo.getId().toString());
+        trainTime.setEditDate(new Date());
+        trainTime.setIsdeleted(Constants.ZERO);
+        trainTime.setMemberId(insert.getId());
+        trainTime.setStartTime(Utils.Date.getStart(member.getStartTime()));
+        trainTime.setEndTime(Utils.Date.getDayEnd(member.getEndTime()));
+//        trainTime.setImportStatus();
+//        trainTime.setImportInfo();
+        trainTimeMapper.insert(trainTime);
+        return insert.getId();
     }
 
     @Override
@@ -83,7 +163,7 @@
         QueryWrapper<Member> wrapper = new QueryWrapper<>(member);
         return memberMapper.selectList(wrapper);
     }
-  
+
     @Override
     public PageData<Member> findPage(PageWrap<Member> pageWrap) {
         IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
@@ -225,6 +305,32 @@
     }
 
     @Override
+    public PageData<MemberInfoDTO> findLaborMemberInfoPage(PageWrap<MemberInfoDTO> pageWrap) {
+        IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>();
+        MemberInfoDTO model = pageWrap.getModel();
+        Utils.MP.blankToNull(model);
+        Date end = Utils.Date.getEnd(pageWrap.getModel().getTrainTimeEndTime());
+        queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId)
+                .leftJoin(TrainTime.class,TrainTime::getMemberId,Member::getId)
+                .leftJoin(Empower.class,Empower::getMemberId,Member::getId);
+
+        queryWrapper.selectAll(Member.class)
+                    .selectAs(Company::getName,MemberInfoDTO::getCompanyName)
+                    .selectAs(Company::getLinkName,MemberInfoDTO::getLinkName)
+                    .select("Max(t1.endTime)","trainTimeEndTime")
+                    .select("Max(t2.endTime)","empowerEndTime");
+
+        queryWrapper.eq(Objects.nonNull(model.getCompanyId()),Member::getCompanyId,model.getCompanyId())
+                    .like(StringUtils.isNotBlank(model.getName()),Member::getName,model.getName())
+                    .like(StringUtils.isNotBlank(model.getPhone()),Member::getPhone,model.getPhone())
+                    .like(StringUtils.isNotBlank(model.getIdcardDecode()),Member::getIdcardDecode,model.getIdcardDecode())
+                    .having("trainTimeEndTime < "+ DateUtil.format(end,"yyyy-MM-dd HH:mm:ss"));
+        IPage<MemberInfoDTO> memberIPage = memberJoinMapper.selectJoinPage(page, MemberInfoDTO.class,queryWrapper);
+        return PageData.from(memberIPage);
+    }
+
+    @Override
     public long count(Member member) {
         QueryWrapper<Member> wrapper = new QueryWrapper<>(member);
         return memberMapper.selectCount(wrapper);

--
Gitblit v1.9.3