手机号、邮箱加密

This commit is contained in:
梁琦涛
2021-09-02 14:25:05 +08:00
parent cc1b30616f
commit 797ec35257
16 changed files with 312 additions and 103 deletions
@@ -13,17 +13,25 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.PasswordUtil;
import com.jero.common.util.ValidUtil;
import com.jero.common.util.oConvertUtils;
import com.jero.company.common.PayCompanyManagementCommon;
import com.jero.company.entity.PayCompanyManagement;
import com.jero.company.service.IPayCompanyManagementService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.SecurityUtils;
import org.jeecgframework.poi.excel.ExcelImportCheckUtil;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
@@ -44,6 +52,8 @@ import io.swagger.annotations.ApiOperation;
public class PayCompanyManagementController extends JeroController<PayCompanyManagement, IPayCompanyManagementService> {
@Autowired
private IPayCompanyManagementService payCompanyManagementService;
@Autowired
private Environment env;
/**
* 分页列表查询
@@ -66,6 +76,19 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
QueryWrapper<PayCompanyManagement> queryWrapper = QueryGenerator.initQueryWrapper(payCompanyManagement, req.getParameterMap());
Page<PayCompanyManagement> page = new Page<PayCompanyManagement>(pageNo, pageSize);
IPage<PayCompanyManagement> pageList = payCompanyManagementService.page(page, queryWrapper);
List<PayCompanyManagement> listPayCompanyManagement = pageList.getRecords();
if(!CollectionUtils.isEmpty(listPayCompanyManagement)){
try {
listPayCompanyManagement.forEach(p->{
if (!StringUtils.isBlank(p.getCompanyPhone())){
p.setCompanyPhone(PasswordUtil.decrypt(p.getCompanyPhone()));
}
});
pageList.setRecords(listPayCompanyManagement);
}catch (Exception e){
log.error("公司电话解密异常!",e);
}
}
return Result.OK(pageList);
}
@@ -105,6 +128,13 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
}
return Result.error("该企业名称已存在!");
}
if(!StringUtils.isBlank(payCompanyManagement.getCompanyPhone())){
try {
payCompanyManagement.setCompanyPhone(PasswordUtil.encrypt(payCompanyManagement.getCompanyPhone()));
}catch (Exception e){
log.error("公司电话加密异常!",e);
}
}
payCompanyManagementService.save(payCompanyManagement);
return Result.OK("添加成功!");
}
@@ -135,6 +165,13 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
log.info("企业管理-编辑异常",e);
return Result.error("企业名称已存在!");
}
if(!StringUtils.isBlank(payCompanyManagement.getCompanyPhone())){
try {
payCompanyManagement.setCompanyPhone(PasswordUtil.encrypt(payCompanyManagement.getCompanyPhone()));
}catch (Exception e){
log.error("公司电话加密异常!",e);
}
}
payCompanyManagementService.updateById(payCompanyManagement);
return Result.OK("编辑成功!");
}
@@ -233,7 +270,40 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
@ApiOperation(value="企业管理-导出excel", notes="企业管理-导出excel")
@GetMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, PayCompanyManagement payCompanyManagement) {
return super.exportXls(request, payCompanyManagement, PayCompanyManagement.class, "企业信息");
// Step.1 组装查询条件
QueryWrapper<PayCompanyManagement> queryWrapper = QueryGenerator.initQueryWrapper(payCompanyManagement, request.getParameterMap());
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// Step.2 获取导出数据
List<PayCompanyManagement> pageList = payCompanyManagementService.list(queryWrapper);
List<PayCompanyManagement> exportList = null;
// 过滤选中数据
String selections = request.getParameter("selections");
if (oConvertUtils.isNotEmpty(selections)) {
List<String> selectionList = Arrays.asList(selections.split(","));
exportList = pageList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
} else {
exportList = pageList;
}
if(!CollectionUtils.isEmpty(exportList)){
exportList.forEach(p->{
if (!StringUtils.isBlank(p.getCompanyPhone())){
p.setCompanyPhone(PasswordUtil.decrypt(p.getCompanyPhone()));
}
});
}
// Step.3 AutoPoi 导出Excel
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
mv.addObject(NormalExcelConstants.FILE_NAME, "企业信息"); //此处设置的filename无效 ,前端会重更新设置一下
mv.addObject(NormalExcelConstants.CLASS, PayCompanyManagement.class);
//update-begin--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置--------------------
ExportParams exportParams=new ExportParams("企业信息", "企业信息");
exportParams.setImageBasePath(env.getProperty("jero.path.upload"));
//update-end--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置----------------------
mv.addObject(NormalExcelConstants.PARAMS,exportParams);
mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
return mv;
}
/**
@@ -309,6 +379,9 @@ public class PayCompanyManagementController extends JeroController<PayCompanyMan
msg.append("第").append(count + 3).append("行:企业名称已经存在,请修改。</br>");
}
}
if (!StringUtils.isBlank(p.getCompanyPhone())){
p.setCompanyPhone(PasswordUtil.encrypt(p.getCompanyPhone()));
}
});
if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString());
@@ -16,7 +16,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.PasswordUtil;
import com.jero.common.util.ValidUtil;
import com.jero.common.util.oConvertUtils;
import com.jero.company.common.PayCompanyManagementCommon;
import com.jero.company.common.PayContactsManagementCommon;
import com.jero.company.entity.PayCompanyManagement;
@@ -26,11 +29,16 @@ import com.jero.company.service.IPayContactsManagementService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.jeecgframework.poi.excel.ExcelImportCheckUtil;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
@@ -53,6 +61,8 @@ public class PayContactsManagementController extends JeroController<PayContactsM
private IPayContactsManagementService payContactsManagementService;
@Autowired
private IPayCompanyManagementService payCompanyManagementService;
@Autowired
private Environment env;
// todo 缺少联系人加入到用户表,可以登录
@@ -82,6 +92,22 @@ public class PayContactsManagementController extends JeroController<PayContactsM
}
Page<PayContactsManagement> page = new Page<PayContactsManagement>(pageNo, pageSize);
IPage<PayContactsManagement> pageList = payContactsManagementService.queryPageList(page, payContactsManagement);
List<PayContactsManagement> listPayContactsManagement = pageList.getRecords();
if(!CollectionUtils.isEmpty(listPayContactsManagement)){
try {
listPayContactsManagement.forEach(p->{
if (!StringUtils.isBlank(p.getPhone())){
p.setPhone(PasswordUtil.decrypt(p.getPhone()));
}
if (!StringUtils.isBlank(p.getEmail())){
p.setEmail(PasswordUtil.decrypt(p.getEmail()));
}
});
pageList.setRecords(listPayContactsManagement);
}catch (Exception e){
log.error("手机号、邮箱解密异常!",e);
}
}
return Result.OK(pageList);
}
@@ -98,9 +124,14 @@ public class PayContactsManagementController extends JeroController<PayContactsM
if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString());
}
PayCompanyManagement payCompanyManagement = payCompanyManagementService.getById(payContactsManagement.getCompanyId());
if(Objects.isNull(payCompanyManagement)){
return Result.error("企业不存在!");
}
payContactsManagement.setCompanyName(payCompanyManagement.getCompanyName());
PayContactsManagement payContactsManagementNew = null;
try {
// 新增企业前在次校验企业名称是否存在
// 新增联系人前在次校验手机号是否存在
LambdaQueryWrapper<PayContactsManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayContactsManagement::getPhone,payContactsManagement.getPhone());
payContactsManagementNew = payContactsManagementService.getOne(queryWrapper);
@@ -121,6 +152,16 @@ public class PayContactsManagementController extends JeroController<PayContactsM
}
return Result.error("手机号已存在!");
}
try {
if (!StringUtils.isBlank(payContactsManagement.getPhone())){
payContactsManagement.setPhone(PasswordUtil.encrypt(payContactsManagement.getPhone()));
}
if (!StringUtils.isBlank(payContactsManagement.getEmail())){
payContactsManagement.setEmail(PasswordUtil.encrypt(payContactsManagement.getEmail()));
}
}catch (Exception e){
log.error("手机号、邮箱加密异常!",e);
}
payContactsManagementService.save(payContactsManagement);
return Result.OK("添加成功!");
}
@@ -138,12 +179,17 @@ public class PayContactsManagementController extends JeroController<PayContactsM
if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString());
}
PayCompanyManagement payCompanyManagement = payCompanyManagementService.getById(payContactsManagement.getCompanyId());
if(Objects.isNull(payCompanyManagement)){
return Result.error("企业不存在!");
}
payContactsManagement.setCompanyName(payCompanyManagement.getCompanyName());
try {
// 编辑保存企业前再次校验企业名称是否存在
// 编辑保存联系人前再次校验手机号是否存在
LambdaQueryWrapper<PayContactsManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayContactsManagement::getPhone,payContactsManagement.getPhone());
PayContactsManagement payContactsManagementNew = payContactsManagementService.getOne(queryWrapper);
// 企业名称存在,并且编辑id与查询不同,则校验不通过
// 手机号存在,并且编辑id与查询不同,则校验不通过
if(!Objects.isNull(payContactsManagementNew) && !Objects.equals(payContactsManagementNew.getId(),payContactsManagement.getId())) {
return Result.error("手机号已存在!");
}
@@ -151,6 +197,16 @@ public class PayContactsManagementController extends JeroController<PayContactsM
log.info("联系人管理-编辑异常",e);
return Result.error("手机号已存在!");
}
try {
if (!StringUtils.isBlank(payContactsManagement.getPhone())){
payContactsManagement.setPhone(PasswordUtil.encrypt(payContactsManagement.getPhone()));
}
if (!StringUtils.isBlank(payContactsManagement.getEmail())){
payContactsManagement.setEmail(PasswordUtil.encrypt(payContactsManagement.getEmail()));
}
}catch (Exception e){
log.error("手机号、邮箱加密异常!",e);
}
payContactsManagementService.updateById(payContactsManagement);
return Result.OK("编辑成功!");
}
@@ -266,7 +322,44 @@ public class PayContactsManagementController extends JeroController<PayContactsM
@ApiOperation(value="联系人管理-导出excel", notes="联系人管理-导出excel")
@GetMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, PayContactsManagement payContactsManagement) {
return super.exportXls(request, payContactsManagement, PayContactsManagement.class, "联系人信息");
// Step.1 组装查询条件
QueryWrapper<PayContactsManagement> queryWrapper = QueryGenerator.initQueryWrapper(payContactsManagement, request.getParameterMap());
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// Step.2 获取导出数据
List<PayContactsManagement> pageList = payContactsManagementService.list(queryWrapper);
List<PayContactsManagement> exportList = null;
// 过滤选中数据
String selections = request.getParameter("selections");
if (oConvertUtils.isNotEmpty(selections)) {
List<String> selectionList = Arrays.asList(selections.split(","));
exportList = pageList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
} else {
exportList = pageList;
}
if(!CollectionUtils.isEmpty(exportList)){
exportList.forEach(p->{
if (!StringUtils.isBlank(p.getPhone())){
p.setPhone(PasswordUtil.decrypt(p.getPhone()));
}
if (!StringUtils.isBlank(p.getEmail())){
p.setEmail(PasswordUtil.decrypt(p.getEmail()));
}
});
}
// Step.3 AutoPoi 导出Excel
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
mv.addObject(NormalExcelConstants.FILE_NAME, "联系人信息"); //此处设置的filename无效 ,前端会重更新设置一下
mv.addObject(NormalExcelConstants.CLASS, PayContactsManagement.class);
//update-begin--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置--------------------
ExportParams exportParams=new ExportParams("联系人信息", "联系人信息");
exportParams.setImageBasePath(env.getProperty("jero.path.upload"));
//update-end--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置----------------------
mv.addObject(NormalExcelConstants.PARAMS,exportParams);
mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
return mv;
}
/**
@@ -353,6 +446,12 @@ public class PayContactsManagementController extends JeroController<PayContactsM
msg.append("第").append(count + 3).append("行:手机号已经存在,请修改。</br>");
}
}
if (!StringUtils.isBlank(p.getPhone())){
p.setPhone(PasswordUtil.encrypt(p.getPhone()));
}
if (!StringUtils.isBlank(p.getEmail())){
p.setEmail(PasswordUtil.encrypt(p.getEmail()));
}
});
if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString());
@@ -38,43 +38,51 @@ public class PayCompanyManagement implements Serializable {
@Excel(name = "企业名称", width = 15)
@ApiModelProperty(value = "企业名称")
@NotEmpty(message = "企业名称不能为空!")
@Size(max = 50, message = "企业名称长度不能大于50个字符")
private String companyName;
/**公司地址*/
@Excel(name = "公司地址", width = 15)
@ApiModelProperty(value = "公司地址")
@NotEmpty(message = "公司地址不能为空!")
@Size(max = 200, message = "公司地址长度不能大于200个字符")
private String companyAddress;
/**公司电话*/
@Excel(name = "公司电话", width = 15)
@ApiModelProperty(value = "公司电话")
@NotEmpty(message = "公司电话不能为空!")
@Size(max = 15, message = "公司电话长度不能大于15个字符")
@Pattern(regexp = "^(([0-9]{3,4}-)?[0-9]{7,8})|(((13[0-9])|(14[579])|(15([0-3]|[5-9]))|(17[0135678])|(18[0-9])|(19[8|9])|(16[6]))\\d{8})$",message = "公司电话格式错误")
private String companyPhone;
/**邮编*/
@Excel(name = "邮编", width = 15)
@ApiModelProperty(value = "邮编")
@NotEmpty(message = "邮编不能为空!")
@Size(min=6,max = 6,message = "邮编长度必须为6个字符")
@Pattern(regexp = "^[0-9]\\d{5}$",message = "邮编格式错误")
private String postalCode;
/**银行户名*/
@Excel(name = "银行户名", width = 15)
@ApiModelProperty(value = "银行户名")
@NotEmpty(message = "银行户名不能为空!")
@Size(max = 50,message = "银行户名长度不能大于50个字符")
private String bankAccountName;
/**开户行*/
@Excel(name = "开户行", width = 15)
@ApiModelProperty(value = "开户行")
@NotEmpty(message = "开户行不能为空!")
@Size(max = 50, message = "开户行长度不能大于50个字符")
private String openingBank;
/**银行账号*/
@Excel(name = "银行账号", width = 15)
@ApiModelProperty(value = "银行账号")
@NotEmpty(message = "银行账号不能为空!")
@Size(max = 50, message = "银行账号长度不能大于50个字符")
@Pattern(regexp = "^[0-9]*$",message = "银行账号格式错误")
private String bankAccount;
/**税号*/
@Excel(name = "税号", width = 15)
@ApiModelProperty(value = "税号")
@NotEmpty(message = "税号不能为空!")
@Size(max = 50, message = "税号长度不能大于50个字符")
@Pattern(regexp = "^[A-Z0-9]{15}$|^[A-Z0-9]{17}$|^[A-Z0-9]{18}$|^[A-Z0-9]{20}$",message = "税号格式错误")
private String dutyCode;
@@ -37,11 +37,11 @@ public class PayContactsManagement implements Serializable {
private String id;
/**企业id*/
@ApiModelProperty(value = "企业id")
@Size(max = 32, message = "企业id长度不能大于32个字符")
private String companyId;
/**企业名称*/
@Excel(name = "企业名称", width = 15)
@ApiModelProperty(value = "企业名称")
@NotEmpty(message = "企业名称不能为空!")
@Size(max = 200, message = "企业名称长度不能大于200个字符")
private String companyName;
/**姓名*/