From 9fc493d1808dd32efd0b2767b4766ce3a604aeb5 Mon Sep 17 00:00:00 2001 From: zhangqinlin <1500920753@qq.com> Date: Wed, 27 Oct 2021 09:14:36 +0800 Subject: [PATCH 1/4] fixbug:41485,41439 --- .../PayContactsManagementController.java | 27 ++++++++++++------- .../entity/PayMemberProjectSubitem.java | 4 +-- 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/company/controller/PayContactsManagementController.java b/jero-boot-incoming-payment/src/main/java/com/jero/company/controller/PayContactsManagementController.java index 0a7f16f4..41f96251 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/company/controller/PayContactsManagementController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/company/controller/PayContactsManagementController.java @@ -17,6 +17,7 @@ import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.exception.JeroBootException; 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.ImportExcelUtil; import com.jero.common.util.PasswordUtil; import com.jero.common.util.ValidUtil; @@ -42,6 +43,7 @@ import com.jero.project.service.IPayWorkingGroupSubItemService; 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; @@ -634,17 +636,22 @@ public class PayContactsManagementController extends JeroController queryByIdMeeting(@RequestParam(name="id") String id) { - PayContactsManagement payContactsManagement = payContactsManagementService.getById(id); - if(payContactsManagement == null) { - return Result.error("未找到对应数据"); + LoginUser sysUser =(LoginUser) SecurityUtils.getSubject().getPrincipal(); + if(sysUser.getId().equals(id)) { + PayContactsManagement payContactsManagement = payContactsManagementService.getById(id); + if (payContactsManagement == null) { + return Result.error("未找到对应数据"); + } + if (!StringUtils.isBlank(payContactsManagement.getPhone())) { + payContactsManagement.setPhone(PasswordUtil.decrypt(payContactsManagement.getPhone())); + } + if (!StringUtils.isBlank(payContactsManagement.getEmail())) { + payContactsManagement.setEmail(PasswordUtil.decrypt(payContactsManagement.getEmail())); + } + return Result.OK(payContactsManagement); + }else { + return Result.OK("权限异常"); } - if (!StringUtils.isBlank(payContactsManagement.getPhone())){ - payContactsManagement.setPhone(PasswordUtil.decrypt(payContactsManagement.getPhone())); - } - if (!StringUtils.isBlank(payContactsManagement.getEmail())){ - payContactsManagement.setEmail(PasswordUtil.decrypt(payContactsManagement.getEmail())); - } - return Result.OK(payContactsManagement); } /** diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/entity/PayMemberProjectSubitem.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/entity/PayMemberProjectSubitem.java index 49d8ae02..edcac9ee 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/entity/PayMemberProjectSubitem.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/entity/PayMemberProjectSubitem.java @@ -115,7 +115,7 @@ public class PayMemberProjectSubitem implements Serializable { /** * 企业联系人临时id */ - @Excel(name = "企业联系人名称", width = 15, dictTable = "pay_contacts_management_temporary", dicText = "name", dicCode = "id",orderNum = "2") + @Excel(name = "企业联系人", width = 15, dictTable = "pay_contacts_management_temporary", dicText = "name", dicCode = "id",orderNum = "2") private String companyContactTemporaryId; /** @@ -134,7 +134,7 @@ public class PayMemberProjectSubitem implements Serializable { /** * 邮寄联系人临时id */ - @Excel(name = "邮寄联系人姓名", width = 15, dictTable = "pay_contacts_management_temporary", dicText = "name", dicCode = "id",orderNum = "3") + @Excel(name = "邮寄联系人", width = 15, dictTable = "pay_contacts_management_temporary", dicText = "name", dicCode = "id",orderNum = "3") private String postContactTemporaryId; /** From 08de09502b0a6097eed7603d030421f494be6054 Mon Sep 17 00:00:00 2001 From: lijiarao Date: Wed, 27 Oct 2021 11:59:43 +0800 Subject: [PATCH 2/4] =?UTF-8?q?fix=20bug=2040291=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9C=BA=E6=9E=84=E5=AF=BC=E5=85=A5=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E8=AF=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jero/modules/system/controller/SysDepartController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDepartController.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDepartController.java index 9a619e85..efcaf10e 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDepartController.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDepartController.java @@ -404,7 +404,7 @@ public class SysDepartController { //导入Excel格式校验,看匹配的字段文本概率 Boolean t = ExcelImportCheckUtil.check(file.getInputStream(), SysDepartExcel.class, params,1.0); if(!t){ - return Result.error("文件格式有误,请下载模板后上传 !"); + return Result.error("文件格式有误!"); } try { // orgCode编码长度 From 0bbb6cd2c223cdde3c2e6187c07d2d9875d9641d Mon Sep 17 00:00:00 2001 From: lijiarao Date: Wed, 27 Oct 2021 16:14:57 +0800 Subject: [PATCH 3/4] =?UTF-8?q?fix=20bug=20=E4=BF=AE=E6=94=B9=E7=BB=84?= =?UTF-8?q?=E7=BB=87=E6=9C=BA=E6=9E=84=E5=AF=BC=E5=85=A5=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E8=AF=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/jero/common/util/ValidUtil.java | 16 +++++ .../impl/PayMeetingSituationServiceImpl.java | 2 +- .../PayMemberProjectSubitemController.java | 42 ++++++------- ...PayPayMemberProjectSubitemServiceImpl.java | 60 +++++++++++-------- .../vo/PayMemberProjectSubitemExcel.java | 10 ++-- .../controller/SysDepartController.java | 2 +- .../system/controller/SysUserController.java | 2 +- 7 files changed, 82 insertions(+), 52 deletions(-) diff --git a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/util/ValidUtil.java b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/util/ValidUtil.java index 6dd11713..b8fae457 100644 --- a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/util/ValidUtil.java +++ b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/util/ValidUtil.java @@ -66,6 +66,22 @@ public class ValidUtil { return list; } + /** + * 手动校验@Vaild并抛出异常信息list + * + * @param object 待校验对象 + * @param groups 待校验的组 + * @return errorList + */ + public static List validateReturnListWithNum(Object object, int errorRowNum, Class... groups){ + List list = new ArrayList<>(); + Set> set = validator.validate(object, groups); + for (ConstraintViolation constraintViolation : set) { + list.add("第" + errorRowNum + "行:"+constraintViolation.getMessage()); + } + return list; + } + /** * @Description 校验全部数据格式 * @Author lqt diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java index 7d22d84a..a1a6bf28 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingSituationServiceImpl.java @@ -870,7 +870,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl errorMessage = new ArrayList<>(); + //来款方式 + List paymentType = sysBaseAPI.queryDictItemsByCode("payment_type"); + Map paymentTypeMap = paymentType.stream().collect(Collectors.toMap(DictModel::getText, DictModel::getValue)); + //需要发票 + List invoiceType = sysBaseAPI.queryDictItemsByCode("invoice_type"); + Map invoiceTypeMap = invoiceType.stream().collect(Collectors.toMap(DictModel::getText, DictModel::getValue)); for (Object obj : excelData) { errorRowNum += 1; //复制属性 PayMemberProjectSubitemExcel projectSubitemExcel = (PayMemberProjectSubitemExcel) obj; projectSubitemExcel.setProjectId(projectId); PayMemberProjectSubitem projectSubitem = new PayMemberProjectSubitem(); - + errorMessage.addAll(ValidUtil.validateReturnListWithNum(projectSubitemExcel,errorRowNum)); //应收金额 String amountReceivable = projectSubitemExcel.getAmountReceivable(); - if (!NumberUtil.isNumber(amountReceivable)) { - errorMessage.add("第" + errorRowNum + "行:应收金额格式错误"); - } else { + if (errorMessage.isEmpty()) { projectSubitem.setAmountReceivable(new BigDecimal(amountReceivable)); } //来款方式 - List paymentType = sysBaseAPI.queryDictItemsByCode("payment_type"); - Map paymentTypeMap = paymentType.stream().collect(Collectors.toMap(DictModel::getText, DictModel::getValue)); String paymentMethod = projectSubitemExcel.getPaymentMethod(); - if (StringUtils.isBlank(paymentMethod)){ - errorMessage.add("第" + errorRowNum + "行:来款方式不能为空"); - }else if (paymentTypeMap.containsKey(paymentMethod)) { - projectSubitem.setPaymentMethod(Integer.parseInt(paymentTypeMap.get(paymentMethod))); - } else { - errorMessage.add("第" + errorRowNum + "行:来款方式不符合规范"); + if (errorMessage.isEmpty()) { + if (paymentTypeMap.containsKey(paymentMethod)) { + projectSubitem.setPaymentMethod(Integer.parseInt(paymentTypeMap.get(paymentMethod))); + } else { + errorMessage.add("第" + errorRowNum + "行:来款方式格式错误"); + } } //需要发票 - List invoiceType = sysBaseAPI.queryDictItemsByCode("invoice_type"); - Map invoiceTypeMap = invoiceType.stream().collect(Collectors.toMap(DictModel::getText, DictModel::getValue)); String needInvoice = projectSubitemExcel.getNeedInvoice(); - if (StringUtils.isBlank(needInvoice)){ - errorMessage.add("第" + errorRowNum + "行:需要发票不能为空"); - }else if (invoiceTypeMap.containsKey(needInvoice)) { - projectSubitem.setNeedInvoice(Integer.parseInt(invoiceTypeMap.get(needInvoice))); - } else { - errorMessage.add("第" + errorRowNum + "行:需要发票不符合规范"); + if (errorMessage.isEmpty()) { + if (invoiceTypeMap.containsKey(needInvoice)) { + projectSubitem.setNeedInvoice(Integer.parseInt(invoiceTypeMap.get(needInvoice))); + } else { + errorMessage.add("第" + errorRowNum + "行:需要发票不符合规范"); + } } //复制属性 BeanUtils.copyProperties(projectSubitemExcel, projectSubitem); try { - ValidUtil.validate(projectSubitem); + //ValidUtil.validate(projectSubitem); memberProjectSubitemService.add(projectSubitem); } catch (JeroBootException e) { errorMessage.add("第" + errorRowNum + "行:" + e.getMessage()); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java index 279029cf..1c831d2b 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/PayPayMemberProjectSubitemServiceImpl.java @@ -29,14 +29,12 @@ import com.jero.member.service.IPayMemberProjectService; import com.jero.member.service.IPayMemberProjectSubitemService; import com.jero.valid.group.ChargeNotice; import com.jero.valid.group.Contract; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Objects; +import java.util.*; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.transaction.annotation.Transactional; @@ -212,38 +210,52 @@ public class PayPayMemberProjectSubitemServiceImpl extends ServiceImpl errors = new ArrayList<>(); // 企业 - PayCompanyManagementTemporary chargeCompanyName = companyManagementTemporaryService.insertCompanyManagementTemporary(payMemberProjectSubitem.getCompanyId()); - if(Objects.isNull(chargeCompanyName)){ - throw new JeroBootException("企业名称为空!"); + try { + PayCompanyManagementTemporary chargeCompanyName = companyManagementTemporaryService.insertCompanyManagementTemporary(payMemberProjectSubitem.getCompanyId()); + if (Objects.isNull(chargeCompanyName)) { + throw new JeroBootException("企业名称为空!"); + } + payMemberProjectSubitem.setCompanyTemporaryId(chargeCompanyName.getId()); + payMemberProjectSubitem.setCompanyName(chargeCompanyName.getCompanyName()); + } catch (JeroBootException e) { + errors.add("会员单位不存在"); } - payMemberProjectSubitem.setCompanyTemporaryId(chargeCompanyName.getId()); - payMemberProjectSubitem.setCompanyName(chargeCompanyName.getCompanyName()); - // 联系人 - PayContactsManagementTemporary contactsName = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getCompanyContactId()); - if(Objects.isNull(contactsName)){ - throw new JeroBootException("联系人名称为空!"); + try { + PayContactsManagementTemporary contactsName = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getCompanyContactId()); + if (Objects.isNull(contactsName)) { + throw new JeroBootException("联系人名称为空!"); + } + payMemberProjectSubitem.setCompanyContactTemporaryId(contactsName.getId()); + payMemberProjectSubitem.setCompanyContactName(contactsName.getName()); + } catch (JeroBootException e) { + errors.add("企业联系人不存在"); } - payMemberProjectSubitem.setCompanyContactTemporaryId(contactsName.getId()); - payMemberProjectSubitem.setCompanyContactName(contactsName.getName()); - - // 联系人 - PayContactsManagementTemporary postContactsName = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getPostContactId()); - if(Objects.isNull(postContactsName)){ - throw new JeroBootException("邮寄联系人为空!"); + try { + // 联系人 + PayContactsManagementTemporary postContactsName = contactsManagementTemporaryService.insertContactsManagementTemporary(payMemberProjectSubitem.getPostContactId()); + if (Objects.isNull(postContactsName)) { + throw new JeroBootException("邮寄联系人为空!"); + } + payMemberProjectSubitem.setPostContactTemporaryId(postContactsName.getId()); + payMemberProjectSubitem.setPostContactName(postContactsName.getName()); + } catch (JeroBootException e) { + errors.add("邮寄联系人不存在"); } - payMemberProjectSubitem.setPostContactTemporaryId(postContactsName.getId()); - payMemberProjectSubitem.setPostContactName(postContactsName.getName()); + if (!errors.isEmpty()) { + throw new JeroBootException(StringUtils.join(errors, ",")); + } //校验来款方式 Integer paymentMethod = payMemberProjectSubitem.getPaymentMethod(); //合同 - if (Objects.equals(paymentMethod,2)){ + if (Objects.equals(paymentMethod, 2)) { ValidUtil.validate(payMemberProjectSubitem, Contract.class); } //收费通知 - if (Objects.equals(paymentMethod,3)){ + if (Objects.equals(paymentMethod, 3)) { ValidUtil.validate(payMemberProjectSubitem, ChargeNotice.class); } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/vo/PayMemberProjectSubitemExcel.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/vo/PayMemberProjectSubitemExcel.java index 9344a050..5f4a9f69 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/vo/PayMemberProjectSubitemExcel.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/vo/PayMemberProjectSubitemExcel.java @@ -40,7 +40,7 @@ public class PayMemberProjectSubitemExcel { /** * 企业联系人id */ - @Excel(name = "企业联系人名称", width = 15, dictTable = "pay_contacts_management", dicText = "name", dicCode = "id",orderNum = "2") + @Excel(name = "企业联系人", width = 15, dictTable = "pay_contacts_management", dicText = "name", dicCode = "id",orderNum = "2") @ApiModelProperty(value = "企业联系人id") @NotBlank(message = "企业联系人不能为空") @Size(max = 50, message = "企业联系人最大为50字符") @@ -49,7 +49,7 @@ public class PayMemberProjectSubitemExcel { /** * 邮寄联系人id */ - @Excel(name = "邮寄联系人姓名", width = 15, dictTable = "pay_contacts_management", dicText = "name", dicCode = "id",orderNum = "3") + @Excel(name = "邮寄联系人", width = 15, dictTable = "pay_contacts_management", dicText = "name", dicCode = "id",orderNum = "3") @ApiModelProperty(value = "邮寄联系人id") @NotBlank(message = "邮寄联系人不能为空") private String postContactId; @@ -59,8 +59,8 @@ public class PayMemberProjectSubitemExcel { */ @Excel(name = "应收金额", width = 15,orderNum = "4") @ApiModelProperty(value = "应收金额") - @NotNull(message = "应收金额不能为空") - @DecimalMax(value = "9999999999.99", message = "应收金额格式错误") + @NotBlank(message = "应收金额不能为空") + @Pattern(regexp = "^[0-9]{1,10}(\\.[0-9]{1,2})?$",message = "应收金额格式错误") private String amountReceivable; @@ -69,6 +69,7 @@ public class PayMemberProjectSubitemExcel { */ @Excel(name = "来款方式", width = 15, orderNum = "7") @ApiModelProperty(value = "来款方式(2:合同,3:收费通知)") + @NotBlank(message = "来款方式不能为空") private String paymentMethod; /** @@ -109,6 +110,7 @@ public class PayMemberProjectSubitemExcel { */ @Excel(name = "需要发票", width = 15, orderNum = "6") @ApiModelProperty(value = "需要发票") + @NotBlank(message = "需要发票不能为空") private String needInvoice; } diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDepartController.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDepartController.java index efcaf10e..7e7a03e5 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDepartController.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysDepartController.java @@ -443,7 +443,7 @@ public class SysDepartController { try { List errorList = ValidUtil.validateReturnList(sysDepart); if (!errorList.isEmpty()){ - errorMessage.add("第 " + lineNumber + " 行:"+ StringUtils.strip(errorList.toString(),"[]")); + errorMessage.add("第 " + lineNumber + " 行:"+ StringUtils.join(errorList,",")); } LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(SysDepart::getDepartName,sysDepart.getDepartName()); diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java index af22bd65..610173ef 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java @@ -773,7 +773,7 @@ public class SysUserController { List errorList = ValidUtil.validateReturnList(sysUser); if (!errorList.isEmpty()){ errorLines++; - errorMessage.add("第 " + lineNumber + " 行:"+ StringUtils.strip(errorList.toString(),"[]")); + errorMessage.add("第 " + lineNumber + " 行:"+ StringUtils.join(errorList,",")); } //处理邮箱和手机号的加密 UserUtil.encryptUser(sysUser); From a89926f5fdd04e98193641f0604d2b5e6156b89e Mon Sep 17 00:00:00 2001 From: zhangqinlin <1500920753@qq.com> Date: Wed, 27 Oct 2021 16:26:30 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=B3=A8=E9=87=8A=E4=B8=8D=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PayContactsManagementController.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/company/controller/PayContactsManagementController.java b/jero-boot-incoming-payment/src/main/java/com/jero/company/controller/PayContactsManagementController.java index 41f96251..f5daf185 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/company/controller/PayContactsManagementController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/company/controller/PayContactsManagementController.java @@ -637,7 +637,7 @@ public class PayContactsManagementController extends JeroController queryByIdMeeting(@RequestParam(name="id") String id) { LoginUser sysUser =(LoginUser) SecurityUtils.getSubject().getPrincipal(); - if(sysUser.getId().equals(id)) { +// if(sysUser.getId().equals(id)) { PayContactsManagement payContactsManagement = payContactsManagementService.getById(id); if (payContactsManagement == null) { return Result.error("未找到对应数据"); @@ -649,9 +649,9 @@ public class PayContactsManagementController extends JeroController