diff --git a/lib/javax.annotation.jar b/lib/javax.annotation.jar new file mode 100644 index 0000000..52dca7f Binary files /dev/null and b/lib/javax.annotation.jar differ diff --git a/lib/javax.ejb.jar b/lib/javax.ejb.jar new file mode 100644 index 0000000..4ebf5ec Binary files /dev/null and b/lib/javax.ejb.jar differ diff --git a/lib/javax.jms.jar b/lib/javax.jms.jar new file mode 100644 index 0000000..d31451a Binary files /dev/null and b/lib/javax.jms.jar differ diff --git a/lib/javax.persistence.jar b/lib/javax.persistence.jar new file mode 100644 index 0000000..21d80e0 Binary files /dev/null and b/lib/javax.persistence.jar differ diff --git a/lib/javax.resource.jar b/lib/javax.resource.jar new file mode 100644 index 0000000..696a234 Binary files /dev/null and b/lib/javax.resource.jar differ diff --git a/lib/javax.servlet.jar b/lib/javax.servlet.jar new file mode 100644 index 0000000..0519e4a Binary files /dev/null and b/lib/javax.servlet.jar differ diff --git a/lib/javax.servlet.jsp.jar b/lib/javax.servlet.jsp.jar new file mode 100644 index 0000000..9c0631c Binary files /dev/null and b/lib/javax.servlet.jsp.jar differ diff --git a/lib/javax.servlet.jsp.jstl.jar b/lib/javax.servlet.jsp.jstl.jar new file mode 100644 index 0000000..7be17cc Binary files /dev/null and b/lib/javax.servlet.jsp.jstl.jar differ diff --git a/lib/javax.transaction.jar b/lib/javax.transaction.jar new file mode 100644 index 0000000..729c695 Binary files /dev/null and b/lib/javax.transaction.jar differ diff --git a/mailbox-outer-admin/pom.xml b/mailbox-outer-admin/pom.xml index 591aee8..a51a99e 100644 --- a/mailbox-outer-admin/pom.xml +++ b/mailbox-outer-admin/pom.xml @@ -3,18 +3,8 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - - - - org.apache.maven.plugins - maven-compiler-plugin - - 8 - 8 - - - - + + com.biutag mailbox-boot @@ -75,6 +65,11 @@ ${groupId} mailbox-common + + com.alibaba + easyexcel + 3.3.2 + diff --git a/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/config/MyBatisPlusConfig.java b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/config/MyBatisPlusConfig.java new file mode 100644 index 0000000..d5f2f48 --- /dev/null +++ b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/config/MyBatisPlusConfig.java @@ -0,0 +1,19 @@ +package com.biutag.outeradmin.config; + +import com.baomidou.mybatisplus.annotation.DbType; +import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +@MapperScan("com.biutag.outeradmin.mapper") +public class MyBatisPlusConfig { + @Bean + public MybatisPlusInterceptor mybatisPlusInterceptor() { + MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); + interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.POSTGRE_SQL)); + return interceptor; + } +} diff --git a/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/controller/HolidayController.java b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/controller/HolidayController.java index 1f07223..b831691 100644 --- a/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/controller/HolidayController.java +++ b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/controller/HolidayController.java @@ -1,7 +1,7 @@ package com.biutag.outeradmin.controller; import com.biutag.core.AjaxResult; -import com.biutag.outeradmin.model.dto.LoginDto; + import com.biutag.outeradmin.model.vo.HolidayVo; import com.biutag.outeradmin.service.HolidayService; import io.swagger.annotations.Api; diff --git a/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/controller/MailController.java b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/controller/MailController.java new file mode 100644 index 0000000..fa1c142 --- /dev/null +++ b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/controller/MailController.java @@ -0,0 +1,129 @@ +package com.biutag.outeradmin.controller; + +import com.alibaba.fastjson2.JSON; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.biutag.outeradmin.entity.*; +import com.biutag.outeradmin.mapper.MailMapper; +import com.biutag.outeradmin.service.MailService; +import com.biutag.outeradmin.util.DesensitizedUtil; +import com.biutag.outeradmin.util.ExcelUtil; +import com.biutag.util.StringUtils; +import jakarta.servlet.http.HttpServletResponse; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + + +import java.io.IOException; +import java.util.List; + +@RequiredArgsConstructor +@RequestMapping("/mailbox") +@RestController +public class MailController { + private final MailService mailService; + private final MailMapper mailMapper; + + /** + * 查询所有信件 + * + * @return 信件列表json + */ + @RequestMapping("/list") + public MailPageInfo list(@RequestBody String req) { + PageSet pageSet = JSON.parseObject(req, PageSet.class); + Page page = new Page<>(pageSet.getCurrentPage(), pageSet.getPageSize()); + List mailPage = mailMapper.selectPage(page, null).getRecords(); + for (Mail mail : mailPage) { + mail.setContactIdCard(DesensitizedUtil.encryptIDCard(mail.getContactIdCard())); + mail.setContactPhone(DesensitizedUtil.encryptPhone(mail.getContactPhone())); + } + pageSet.setTotalSize((int) page.getTotal()); + MailPageInfo result = new MailPageInfo(); + result.setMails(mailPage); + result.setPageSet(pageSet); + return result; + } + + /** + * 查询指定信件 + * + * @param form 前端信件表单数据 + * @return 指定信件json + */ + @RequestMapping("/list-submit") + public MailPageInfo siftList(@RequestBody String form) { + //todo 这里根据表单数据查询数据库,记得删掉 + System.out.println(form); + FormPage formPage = JSON.parseObject(form, FormPage.class); + QueryWrapper queryWrapper = new QueryWrapper<>(); + if(formPage != null && formPage.getFormData()!= null && formPage.getPageData()!= null){ + FormData formData = formPage.getFormData(); + + queryWrapper.lambda().like(StringUtils.isNotEmpty(formData.getContactName()), Mail::getContactName, formData.getContactName()) + .like(StringUtils.isNotEmpty(formData.getContactPhone()), Mail::getContactPhone, formData.getContactPhone()) + .like(StringUtils.isNotEmpty(formData.getContactIdCard()), Mail::getContactIdCard, formData.getContactIdCard()) + .like(StringUtils.isNotEmpty(formData.getId()), Mail::getId, formData.getId()) + .like(StringUtils.isNotEmpty(formData.getContent()), Mail::getContent, formData.getContent()); + if (CollectionUtils.isNotEmpty(formData.getDate()) && formData.getDate().size() == 2) { + queryWrapper.lambda().between(Mail::getCreateTime, formData.getDate().get(0), formData.getDate().get(1)); + } + } + PageSet pageSet = formPage.getPageData(); + + Page page = new Page<>(pageSet.getCurrentPage(), pageSet.getPageSize()); + List mailPage = mailMapper.selectPage(page, queryWrapper).getRecords(); + for (Mail mail : mailPage) { + mail.setContactIdCard(DesensitizedUtil.encryptIDCard(mail.getContactIdCard())); + mail.setContactPhone(DesensitizedUtil.encryptPhone(mail.getContactPhone())); + } + pageSet.setTotalSize((int) page.getTotal()); + MailPageInfo result = new MailPageInfo(); + result.setMails(mailPage); + result.setPageSet(pageSet); + + return result; + } + + /** + * 查询指定信件详情 + * + * @param id 信件ID + * @return 指定信件详情json + */ + @RequestMapping("/detail") + public String detail(@RequestBody String id) { + MailID mailID = JSON.parseObject(id, MailID.class); + //TODO 这里根据ID查询数据库,记得删掉 + System.out.println(mailID.getID()); + Mail mail = mailService.getById(mailID.getID()); + mail.setContactIdCard(DesensitizedUtil.encryptIDCard(mail.getContactIdCard())); + mail.setContactPhone(DesensitizedUtil.encryptPhone(mail.getContactPhone())); + return JSON.toJSONString(mail); + } + + @RequestMapping("/exportexcel") + public void exportexcel(HttpServletResponse response,@RequestBody String form) throws IOException { + FormPage formPage = JSON.parseObject(form, FormPage.class); + QueryWrapper queryWrapper = new QueryWrapper<>(); + if(formPage != null && formPage.getFormData()!= null && formPage.getPageData()!= null){ + FormData formData = formPage.getFormData(); + queryWrapper.lambda().like(StringUtils.isNotEmpty(formData.getContactName()), Mail::getContactName, formData.getContactName()) + .like(StringUtils.isNotEmpty(formData.getContactPhone()), Mail::getContactPhone, formData.getContactPhone()) + .like(StringUtils.isNotEmpty(formData.getContactIdCard()), Mail::getContactIdCard, formData.getContactIdCard()) + .like(StringUtils.isNotEmpty(formData.getId()), Mail::getId, formData.getId()) + .like(StringUtils.isNotEmpty(formData.getContent()), Mail::getContent, formData.getContent()); + if (CollectionUtils.isNotEmpty(formData.getDate()) && formData.getDate().size() == 2) { + queryWrapper.lambda().between(Mail::getCreateTime, formData.getDate().get(0), formData.getDate().get(1)); + } + } + + List mailPage = mailMapper.selectList( queryWrapper); + for (Mail mail : mailPage) { + mail.setContactIdCard(DesensitizedUtil.encryptIDCard(mail.getContactIdCard())); + mail.setContactPhone(DesensitizedUtil.encryptPhone(mail.getContactPhone())); + } + ExcelUtil.exportExcel(response, mailPage); + } +} diff --git a/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/domain/MailDto.java b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/domain/MailDto.java new file mode 100644 index 0000000..1775812 --- /dev/null +++ b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/domain/MailDto.java @@ -0,0 +1,74 @@ +package com.biutag.outeradmin.domain; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class MailDto { + + /** + * 联系人姓名 + */ + private String contactName; + + /** + * 联系人性别 + */ + private String contactSex; + + /** + * 联系人身份证号码 + */ + private String contactIdCard; + + /** + * 联系人手机号码 + */ + private String contactPhone; + + /** + * 案件编号 + */ + private String caseNumber; + + /** + * 内容 + */ + private String content; + + /** + * 附件 + */ + private String attachments; + + /** + * 用户ID + */ + private Integer userId; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; + +// /** +// * 评价 +// */ +// private String evaluate; + + /** + * 是否满意 + */ + private String satisfaction; +} diff --git a/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/entity/FormData.java b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/entity/FormData.java new file mode 100644 index 0000000..8388b1d --- /dev/null +++ b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/entity/FormData.java @@ -0,0 +1,16 @@ +package com.biutag.outeradmin.entity; + +import lombok.Data; + +import java.util.List; + +@Data +public class FormData { + private List date; + private String contactName; + private String contactPhone; + private String contactIdCard; + private String id; + private String content; + private String evaluate; +} diff --git a/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/entity/FormPage.java b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/entity/FormPage.java new file mode 100644 index 0000000..74ebb03 --- /dev/null +++ b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/entity/FormPage.java @@ -0,0 +1,10 @@ +package com.biutag.outeradmin.entity; + +import lombok.Data; + +@Data +public class FormPage { + private FormData formData; + private PageSet pageData; + +} diff --git a/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/entity/Mail.java b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/entity/Mail.java new file mode 100644 index 0000000..91cfb89 --- /dev/null +++ b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/entity/Mail.java @@ -0,0 +1,75 @@ +package com.biutag.outeradmin.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName("mail") +public class Mail { + @TableId + private String id; + + /** + * 联系人姓名 + */ + private String contactName; + + /** + * 联系人性别 + */ + private String contactSex; + + /** + * 联系人身份证号码 + */ + private String contactIdCard; + + /** + * 联系人手机号码 + */ + private String contactPhone; + + /** + * 案件编号 + */ + private String caseNumber; + + /** + * 内容 + */ + private String content; + + /** + * 附件 + */ + private String attachments; + + /** + * 用户ID + */ + private Integer userId; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; + +// /** +// * 评价 +// */ +// private String evaluate; + + /** + * 是否满意 + */ + private String satisfaction; +} diff --git a/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/entity/MailID.java b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/entity/MailID.java new file mode 100644 index 0000000..3b99519 --- /dev/null +++ b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/entity/MailID.java @@ -0,0 +1,8 @@ +package com.biutag.outeradmin.entity; + +import lombok.Data; + +@Data +public class MailID { + private String ID; +} diff --git a/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/entity/MailPageInfo.java b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/entity/MailPageInfo.java new file mode 100644 index 0000000..a8f8b36 --- /dev/null +++ b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/entity/MailPageInfo.java @@ -0,0 +1,11 @@ +package com.biutag.outeradmin.entity; + +import lombok.Data; + +import java.util.List; + +@Data +public class MailPageInfo { + private List mails; + private PageSet pageSet; +} diff --git a/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/entity/PageSet.java b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/entity/PageSet.java new file mode 100644 index 0000000..0cad16e --- /dev/null +++ b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/entity/PageSet.java @@ -0,0 +1,10 @@ +package com.biutag.outeradmin.entity; + +import lombok.Data; + +@Data +public class PageSet { + private int currentPage; + private int pageSize; + private int totalSize; +} diff --git a/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/mapper/MailMapper.java b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/mapper/MailMapper.java new file mode 100644 index 0000000..66b4ba3 --- /dev/null +++ b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/mapper/MailMapper.java @@ -0,0 +1,9 @@ +package com.biutag.outeradmin.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.biutag.outeradmin.entity.Mail; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface MailMapper extends BaseMapper { +} diff --git a/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/service/MailService.java b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/service/MailService.java new file mode 100644 index 0000000..1ec9275 --- /dev/null +++ b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/service/MailService.java @@ -0,0 +1,10 @@ +package com.biutag.outeradmin.service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.biutag.outeradmin.entity.Mail; +import com.biutag.outeradmin.mapper.MailMapper; +import org.springframework.stereotype.Service; + +@Service +public class MailService extends ServiceImpl { +} diff --git a/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/service/impl/HolidayServiceImpl.java b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/service/impl/HolidayServiceImpl.java index 3e363b5..c107dde 100644 --- a/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/service/impl/HolidayServiceImpl.java +++ b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/service/impl/HolidayServiceImpl.java @@ -5,7 +5,8 @@ import com.biutag.outeradmin.mapper.HolidayMapper; import com.biutag.outeradmin.model.vo.HolidayVo; import com.biutag.outeradmin.service.HolidayService; -import com.biutag.outeradmin.utils.HolidayUtil; +import com.biutag.outeradmin.util.HolidayUtil; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/util/DesensitizedUtil.java b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/util/DesensitizedUtil.java new file mode 100644 index 0000000..7ee7272 --- /dev/null +++ b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/util/DesensitizedUtil.java @@ -0,0 +1,23 @@ +package com.biutag.outeradmin.util; + +import com.biutag.util.StringUtils; + +public class DesensitizedUtil { + public static String encryptIDCard(String idCard) { + if (StringUtils.isNotBlank(idCard)) { + if (idCard.length() == 15) { + idCard = idCard.replaceAll("(\\w{6})\\w*(\\w{4})", "$1******$2"); + } + if (idCard.length() == 18) { + idCard = idCard.replaceAll("(\\w{6})\\w*(\\w{4})", "$1*********$2"); + } + } + return idCard; + } + public static String encryptPhone(String phone) { + if (StringUtils.isNotBlank(phone)) { + phone = phone.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2"); + } + return phone; + } +} diff --git a/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/util/ExcelUtil.java b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/util/ExcelUtil.java new file mode 100644 index 0000000..d03b99d --- /dev/null +++ b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/util/ExcelUtil.java @@ -0,0 +1,76 @@ +package com.biutag.outeradmin.util; + + + + +import com.alibaba.excel.EasyExcel; + +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.excel.write.metadata.fill.FillConfig; +import com.alibaba.excel.write.metadata.fill.FillWrapper; +import com.biutag.outeradmin.entity.Mail; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.core.io.ClassPathResource; +import org.springframework.core.io.Resource; + + +import java.io.IOException; +import java.io.InputStream; + +import java.text.SimpleDateFormat; +import java.util.*; + + +public class ExcelUtil { + public static void exportExcel(HttpServletResponse response,List mailPage) throws IOException { + // 模板文件 +// String templateFile = "/excelmodel.xlsx"; + Resource resource = new ClassPathResource("excelmodel.xlsx"); + InputStream is = resource.getInputStream(); +// long date = new Date().getTime(); + Calendar calendar = Calendar.getInstance(); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + System.out.println(formatter.format(calendar.getTime())); + String name = formatter.format(calendar.getTime())+".xlsx"; + String fileName = new String(name.getBytes()); + response.setContentType("application/octet-stream"); + response.setCharacterEncoding("utf8"); + response.setHeader("Content-disposition", "attachment;filename=" + fileName); + // 根据模板文件生成目标文件 + ExcelWriter excelWriter = EasyExcel + .write(response.getOutputStream(), Mail.class) + .withTemplate(is) + // 单独设置单元格格式 +// .registerWriteHandler(new CellStyleHandler()) + .build(); + WriteSheet writeSheet = EasyExcel.writerSheet().build(); + // 每次都会重新生成新的一行,而不是使用下面的空行 + FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build(); + // 第一种占位符替换 +// Map map = new HashMap(); +// map.put("reportDate", reportDate); +// excelWriter.fill(map, writeSheet); + // 第二种占位符替换,这里定义了 hisData + System.out.println(mailPage); + excelWriter.fill(new FillWrapper("mailPage",mailPage),fillConfig, writeSheet); + excelWriter.finish(); + } + +// +// private static List mailData(){ +// List resList = new ArrayList<>(); +// MailDto mailData = MailDto.builder() +// .contactName("today") +// .contactIdCard("34.211") +// .contactPhone("1.222") +// .caseNumber("34.211") +// .createTime(new Date()) +// .build(); +// resList.add(mailData); +// return resList; +// } + + + +} diff --git a/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/utils/HolidayUtil.java b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/util/HolidayUtil.java similarity index 98% rename from mailbox-outer-admin/src/main/java/com/biutag/outeradmin/utils/HolidayUtil.java rename to mailbox-outer-admin/src/main/java/com/biutag/outeradmin/util/HolidayUtil.java index 933db8c..3a23b83 100644 --- a/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/utils/HolidayUtil.java +++ b/mailbox-outer-admin/src/main/java/com/biutag/outeradmin/util/HolidayUtil.java @@ -1,4 +1,4 @@ -package com.biutag.outeradmin.utils; +package com.biutag.outeradmin.util; import com.biutag.outeradmin.domain.Holiday; @@ -11,10 +11,8 @@ import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.StandardCharsets; -import java.text.SimpleDateFormat; import java.time.DayOfWeek; import java.time.LocalDate; -import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; diff --git a/mailbox-outer-admin/src/main/resources/excelmodel.xlsx b/mailbox-outer-admin/src/main/resources/excelmodel.xlsx new file mode 100644 index 0000000..9e4f9fa Binary files /dev/null and b/mailbox-outer-admin/src/main/resources/excelmodel.xlsx differ