From 8e3f0f8de5a83b40d894b69299cff5d3579e77fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= <18222067976@163.com> Date: Thu, 28 Oct 2021 11:44:28 +0800 Subject: [PATCH 01/11] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug#41540?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/PayMailBillServiceImpl.java | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java index 4a540232..f7f5088b 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/mail/service/impl/PayMailBillServiceImpl.java @@ -41,6 +41,8 @@ import com.jero.member.mapper.PayMemberProjectMapper; import com.jero.member.mapper.PayMemberProjectSubitemMapper; import com.jero.member.mapper.TbMemberProjectMapper; import com.jero.member.mapper.TbMemberProjectSubitemMapper; +import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.service.ISysUserService; import com.jero.payment.entity.PayPaymentRecord; import com.jero.payment.service.IPayPaymentRecordService; import com.jero.project.entity.PayCommonProject; @@ -109,6 +111,8 @@ public class PayMailBillServiceImpl extends ServiceImpl queryPayMeetingSysUser = new LambdaQueryWrapper<>(); + queryPayMeetingSysUser.eq(SysUser::getId,payMeeting.getDirectorId()); + List sysPayMeetingUser = sysUserService.list(queryPayMeetingSysUser); //逗号拼接邮寄信息 if(i==0){ projectName.append(payMeeting.getMeetingName()); chargeCompanyName.append(meeting.getCompanyName()); - principalName.append(payMeeting.getDirectorName()); + if(!CollectionUtils.isEmpty(sysPayMeetingUser)) { + principalName.append(sysPayMeetingUser.get(0).getRealname()); + } principalId.append(payMeeting.getDirectorId()); }else{ projectName.append(",").append(payMeeting.getMeetingName()); chargeCompanyName.append(",").append(meeting.getCompanyName()); - principalName.append(",").append(payMeeting.getDirectorName()); + if(!CollectionUtils.isEmpty(sysPayMeetingUser)) { + principalName.append(",").append(sysPayMeetingUser.get(0).getRealname()); + } principalId.append(",").append(payMeeting.getDirectorId()); } break; @@ -572,16 +583,23 @@ public class PayMailBillServiceImpl extends ServiceImpl queryPayMemberProjectSysUser = new LambdaQueryWrapper<>(); + queryPayMemberProjectSysUser.eq(SysUser::getId,payMemberProject.getDirectorId()); + List sysPayMemberProjectUser = sysUserService.list(queryPayMemberProjectSysUser); //逗号拼接邮寄信息 if(i==0){ projectName.append(payMemberProject.getProjectName()); chargeCompanyName.append(memberProject.getCompanyName()); - principalName.append(payMemberProject.getDirectorName()); + if(!CollectionUtils.isEmpty(sysPayMemberProjectUser)) { + principalName.append(sysPayMemberProjectUser.get(0).getRealname()); + } principalId.append(payMemberProject.getDirectorId()); }else{ projectName.append(",").append(payMemberProject.getProjectName()); chargeCompanyName.append(",").append(memberProject.getCompanyName()); - principalName.append(",").append(payMemberProject.getDirectorName()); + if(!CollectionUtils.isEmpty(sysPayMemberProjectUser)) { + principalName.append(",").append(sysPayMemberProjectUser.get(0).getRealname()); + } principalId.append(",").append(payMemberProject.getDirectorId()); } break; From 0aa1abd5af44dcf10c63d6f64e0c632968d36f7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= <18222067976@163.com> Date: Thu, 28 Oct 2021 13:50:29 +0800 Subject: [PATCH 02/11] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug#41520?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/PayIncomeContractCommon.java | 4 +-- .../PaySpendingContractController.java | 3 -- .../contract/entity/PaySpendingContract.java | 28 ++++++++--------- .../PaySpendingContractInstallment.java | 30 +++++++++---------- .../impl/PaySpendingContractServiceImpl.java | 25 +--------------- .../vo/PaySpendingContractExcelModel.java | 6 ---- 6 files changed, 32 insertions(+), 64 deletions(-) diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/common/PayIncomeContractCommon.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/common/PayIncomeContractCommon.java index 304f197d..ed9f433b 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/common/PayIncomeContractCommon.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/common/PayIncomeContractCommon.java @@ -80,11 +80,11 @@ public class PayIncomeContractCommon { */ public final static List LIST_SPENDING_CONTRACT = Arrays.asList("合同编号","合同名称","签订单位","签订联系人","是否开口","负责人", "部门名称","签订合同总金额","税率","未税金额","合同签订日期","合同终止日期","合同约定主要时点", - "应付金额","已付金额","未付金额","账款状态","合同约定付款次数","是否打包","打包年份"); + "应收金额","已收金额","未收金额","账款状态","合同约定付款次数"); /** * 支出合同分期信息excel 表头 */ - public final static List LIST_SPENDING_CONTRACT_INSTALLMENT = Arrays.asList("阶段","阶段应付","阶段应付时间","阶段实付","阶段实付时间"); + public final static List LIST_SPENDING_CONTRACT_INSTALLMENT = Arrays.asList("阶段","阶段应收","阶段应收时间","阶段实收","阶段实收时间"); /** * 来源(1:收入合同,2:打包管理) diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/controller/PaySpendingContractController.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/controller/PaySpendingContractController.java index 3a83699e..af6ec595 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/controller/PaySpendingContractController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/controller/PaySpendingContractController.java @@ -287,7 +287,6 @@ public class PaySpendingContractController extends JeroController listSub = listPaySpendingContractInstallment.stream().filter(item-> Objects.equals(p.getId(),item.getContractId())).collect(Collectors.toList()); if(!CollectionUtils.isEmpty(listSub)){ @@ -330,8 +329,6 @@ public class PaySpendingContractController extends JeroController 0){ for (int i = 1; i <= count; i++){ diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/entity/PaySpendingContract.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/entity/PaySpendingContract.java index 252817fc..9cef8f7f 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/entity/PaySpendingContract.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/entity/PaySpendingContract.java @@ -134,25 +134,25 @@ public class PaySpendingContract implements Serializable { @ApiModelProperty(value = "合同约定主要时点") @Size(max = 200, message = "合同约定主要时点不能大于200个字符") private String contractTimePoints; - /**应付金额*/ - @Excel(name = "应付金额", width = 15) - @ApiModelProperty(value = "应付金额") - @NotNull(message = "应付金额不能为空") + /**应收金额*/ + @Excel(name = "应收金额", width = 15) + @ApiModelProperty(value = "应收金额") + @NotNull(message = "应收金额不能为空") @JsonFormat(shape = JsonFormat.Shape.STRING) - @DecimalMax(value = "9999999999.99",message = "应付金额格式错误") + @DecimalMax(value = "9999999999.99",message = "应收金额格式错误") private BigDecimal accountsReceivableAmount; - /**已付金额*/ - @Excel(name = "已付金额", width = 15) - @ApiModelProperty(value = "已付金额") - @NotNull(message = "已付金额不能为空") + /**已收金额*/ + @Excel(name = "已收金额", width = 15) + @ApiModelProperty(value = "已收金额") + @NotNull(message = "已收金额不能为空") @JsonFormat(shape = JsonFormat.Shape.STRING) - @DecimalMax(value = "9999999999.99",message = "已付金额格式错误") + @DecimalMax(value = "9999999999.99",message = "已收金额格式错误") private BigDecimal amountReceived; - /**未付金额*/ - @Excel(name = "未付金额", width = 15) - @ApiModelProperty(value = "未付金额") + /**未收金额*/ + @Excel(name = "未收金额", width = 15) + @ApiModelProperty(value = "未收金额") @JsonFormat(shape = JsonFormat.Shape.STRING) - @DecimalMax(value = "9999999999.99",message = "未付金额格式错误") + @DecimalMax(value = "9999999999.99",message = "未收金额格式错误") private BigDecimal outstandingAmount; /**账款状态(1:未支付,2:部分支付,3:已付全款)*/ @Excel(name = "账款状态(1:未支付,2:部分支付,3:已付全款)", width = 15) diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/entity/PaySpendingContractInstallment.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/entity/PaySpendingContractInstallment.java index e3ec4ae0..eb3d8d60 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/entity/PaySpendingContractInstallment.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/entity/PaySpendingContractInstallment.java @@ -47,30 +47,30 @@ public class PaySpendingContractInstallment implements Serializable { @NotEmpty(message = "阶段不能为空") @Size(max = 50, message = "阶段长度不能大于50个字符") private String phaseName; - /**应付金额*/ - @Excel(name = "阶段应付金额", width = 15) - @ApiModelProperty(value = "应付金额") - @NotNull(message = "阶段应付不能为空") - @DecimalMax(value = "9999999999.99",message = "阶段应付格式错误") + /**应收金额*/ + @Excel(name = "阶段应收金额", width = 15) + @ApiModelProperty(value = "应收金额") + @NotNull(message = "阶段应收不能为空") + @DecimalMax(value = "9999999999.99",message = "阶段应收格式错误") @JsonFormat(shape = JsonFormat.Shape.STRING) private BigDecimal accountsReceivableAmount; - /**应付时间*/ - @Excel(name = "阶段应付时间", width = 15, format = "yyyy-MM-dd") + /**应收时间*/ + @Excel(name = "阶段应收时间", width = 15, format = "yyyy-MM-dd") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd") - @ApiModelProperty(value = "应付时间") + @ApiModelProperty(value = "应收时间") private Date accountsReceivableTime; - /**实付金额*/ - @Excel(name = "阶段实付金额", width = 15) - @ApiModelProperty(value = "阶段实付金额") - @DecimalMax(value = "9999999999.99",message = "阶段实付格式错误") + /**实收金额*/ + @Excel(name = "阶段实收金额", width = 15) + @ApiModelProperty(value = "阶段实收金额") + @DecimalMax(value = "9999999999.99",message = "阶段实收格式错误") @JsonFormat(shape = JsonFormat.Shape.STRING) private BigDecimal paidAmount; - /**实付时间*/ - @Excel(name = "实付时间", width = 15, format = "yyyy-MM-dd") + /**实收时间*/ + @Excel(name = "实收时间", width = 15, format = "yyyy-MM-dd") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") @DateTimeFormat(pattern="yyyy-MM-dd") - @ApiModelProperty(value = "实付时间") + @ApiModelProperty(value = "实收时间") private Date paidTime; /**创建人*/ @ApiModelProperty(value = "创建人") diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PaySpendingContractServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PaySpendingContractServiceImpl.java index 9b99b4c8..6fdcc50b 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PaySpendingContractServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/service/impl/PaySpendingContractServiceImpl.java @@ -294,9 +294,7 @@ public class PaySpendingContractServiceImpl extends ServiceImpl"); - }else{ - mapPack.forEach((k,v)->{ - if(Objects.equals(map.get(18),k)){ - paySpendingContract.setPack(Integer.parseInt(v)); - } - }); - if(Objects.isNull(paySpendingContract.getPack())){ - sb.append("第").append(n).append("行:是否打包格式错误,请修改。
"); - paySpendingContract.setPack(2); - } - // 打包获取打包年份 - if(Objects.equals(paySpendingContract.getPack(),PayIncomeContractCommon.PACK1)){ - if(StringUtils.isEmpty(map.get(19))){ - sb.append("第").append(n).append("行:打包年份不能为空,请修改。
"); - }else{ - paySpendingContract.setPackYear(map.get(19)); - } - } - } return paySpendingContract; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/contract/vo/PaySpendingContractExcelModel.java b/jero-boot-incoming-payment/src/main/java/com/jero/contract/vo/PaySpendingContractExcelModel.java index 2d266d84..d8565538 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/contract/vo/PaySpendingContractExcelModel.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/contract/vo/PaySpendingContractExcelModel.java @@ -62,12 +62,6 @@ public class PaySpendingContractExcelModel implements Serializable { /**合同约定付款次数*/ @Excel(name = "合同约定付款次数", width = 15) private String contractPaymentTimes; - /**是否打包(1:是,0:否)*/ - @Excel(name = "是否打包", width = 15) - private Integer pack; - /**打包年份*/ - @Excel(name = "打包年份", width = 15) - private String packYear; /**阶段名称*/ @Excel(name = "1阶段", width = 15) private String phaseName1; From 51b89b9227c68a91b0da214c37ccb9f10218f7f7 Mon Sep 17 00:00:00 2001 From: lijiarao Date: Thu, 28 Oct 2021 14:00:30 +0800 Subject: [PATCH 03/11] =?UTF-8?q?fix=20bug=2041581=20=E6=8A=A5=E5=90=8D?= =?UTF-8?q?=E9=93=BE=E6=8E=A5--=E6=96=B0=E5=A2=9E=E7=9A=84=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E9=A6=96=E6=AC=A1=E7=99=BB=E5=BD=95--=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E5=BC=BA=E5=88=B6=E8=AE=BE=E7=BD=AE=E5=AF=86=E7=A0=81?= =?UTF-8?q?=EF=BC=8C=E7=9B=B4=E6=8E=A5=E8=BF=9B=E5=85=A5=E7=B3=BB=E7=BB=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PayContactsManagementController.java | 42 ------------------- 1 file changed, 42 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 9a20613a..1dc0e8d5 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 @@ -203,10 +203,6 @@ public class PayContactsManagementController extends JeroController queryWXByCompany(@RequestParam(name="companyId") String companyId, - @RequestParam(name="name",required = false) String name, - @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, - @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { - if(!StringUtils.isBlank(name)){ - name = oConvertUtils.replaceAllPercent(name); - } - Page page = new Page<>(pageNo, pageSize); - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(PayContactsManagement::getCompanyId,companyId); - queryWrapper.eq(PayContactsManagement::getName,name); - if(!StringUtils.isEmpty(name)){ - queryWrapper.like(PayContactsManagement::getName,name); - } - IPage listPayContactsManagement = payContactsManagementService.page(page,queryWrapper); - if(!CollectionUtils.isEmpty(listPayContactsManagement.getRecords())){ - List list = listPayContactsManagement.getRecords(); - list.forEach(p->{ - if(!StringUtils.isBlank(p.getPhone())){ - p.setPhone(PasswordUtil.decrypt(p.getPhone())); - } - if(!StringUtils.isBlank(p.getEmail())){ - p.setEmail(PasswordUtil.decrypt(p.getEmail())); - } - }); - listPayContactsManagement.setRecords(list); - } - return Result.OK(listPayContactsManagement); - } - /** * 通过企业id查询用户 * From 8f442d309b96dac89d2112a29990312901171ada Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= <18222067976@163.com> Date: Thu, 28 Oct 2021 14:29:12 +0800 Subject: [PATCH 04/11] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug#40985?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/xml/PayPackCompanyProjectMapper.xml | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/pack/mapper/xml/PayPackCompanyProjectMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/pack/mapper/xml/PayPackCompanyProjectMapper.xml index 561b9f9a..5abf6657 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/pack/mapper/xml/PayPackCompanyProjectMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/pack/mapper/xml/PayPackCompanyProjectMapper.xml @@ -30,7 +30,8 @@ from ( - select c.id,c.charge_project,c.invoice_amount, c.charge_use, c.principal_id,c.principal_name,c.contacts_temporary_id,c.contacts_temporary_name,c.charge_company_temporary_name,c.receivable_amount,c.paid_amount,c.need_invoice,c.pack,c.in_account,c.make_invoice,c.mail,c.create_time,1 as projectType,'' as phone,'' as email + select c.id,c.charge_project,c.invoice_amount, c.charge_use, c.principal_id,c.principal_name,c.contacts_temporary_id,c.contacts_temporary_name,c.charge_company_temporary_name,c.receivable_amount, + if(c.paid_amount is null or c.paid_amount = '','0.00',c.paid_amount) as paid_amount,c.need_invoice,c.pack,c.in_account,c.make_invoice,c.mail,c.create_time,1 as projectType,'' as phone,'' as email from pay_common_project c @@ -45,7 +46,8 @@ UNION ALL - select gsub.id,g.working_group_project,gsub.invoice_amount, gsub.charge_use, g.principal_id_a,g.principal_name_a,gsub.contacts_temporary_id_one,gsub.contacts_temporary_name_one,gsub.charge_company_temporary_name,gsub.receivable_amount,gsub.paid_amount,gsub.need_invoice,gsub.pack,gsub.in_account,gsub.make_invoice,gsub.mail,gsub.create_time,2,'','' + select gsub.id,g.working_group_project,gsub.invoice_amount, gsub.charge_use, g.principal_id_a,g.principal_name_a,gsub.contacts_temporary_id_one,gsub.contacts_temporary_name_one,gsub.charge_company_temporary_name,gsub.receivable_amount, + if(gsub.paid_amount is null or gsub.paid_amount = '','0.00',gsub.paid_amount) as paid_amount,gsub.need_invoice,gsub.pack,gsub.in_account,gsub.make_invoice,gsub.mail,gsub.create_time,2,'','' from pay_working_group g inner join pay_working_group_subitem gsub on g.id = gsub.working_group_id @@ -61,7 +63,8 @@ UNION ALL - select sit.id,meeting.meeting_name,sit.invoice_amount,sit.charge_use, meeting.director_id, meeting.director_name,sit.company_contact_temporary_id,sit.company_contact_name,sit.company_name,sit.amount_receivable,sit.paid_amount,sit.need_invoice,sit.pack,sit.in_account,sit.make_invoice,sit.mail,sit.create_time,3,sit.phone,'' + select sit.id,meeting.meeting_name,sit.invoice_amount,sit.charge_use, meeting.director_id, meeting.director_name,sit.company_contact_temporary_id,sit.company_contact_name,sit.company_name,sit.amount_receivable, + if(sit.paid_amount is null or sit.paid_amount = '','0.00',sit.paid_amount) as paid_amount,sit.need_invoice,sit.pack,sit.in_account,sit.make_invoice,sit.mail,sit.create_time,3,sit.phone,'' from pay_meeting meeting inner join pay_meeting_situation sit on meeting.id = sit.meeting_id @@ -78,7 +81,8 @@ UNION ALL - select msub.id,pmp.project_name,msub.invoice_amount,msub.charge_use,pmp.director_id,pmp.director_name,msub.company_contact_temporary_id,msub.company_contact_name,msub.company_name,msub.amount_receivable,msub.paid_amount,msub.need_invoice,msub.pack,msub.in_account,msub.make_invoice,msub.mail,msub.create_time,4,'','' + select msub.id,pmp.project_name,msub.invoice_amount,msub.charge_use,pmp.director_id,pmp.director_name,msub.company_contact_temporary_id,msub.company_contact_name,msub.company_name,msub.amount_receivable, + if(msub.paid_amount is null or msub.paid_amount = '','0.00',msub.paid_amount) as paid_amount,msub.need_invoice,msub.pack,msub.in_account,msub.make_invoice,msub.mail,msub.create_time,4,'','' from pay_member_project pmp inner join pay_member_project_subitem msub on pmp.id = msub.project_id @@ -94,7 +98,8 @@ UNION ALL - select tmsub.id,tmember.project_name,tmsub.invoice_amount,tmsub.charge_use,'','','',tmsub.liaison_man,tmsub.company_name,tmsub.amount_receivable,tmsub.paid_amount,tmsub.invoice_requirements,tmsub.pack,tmsub.in_account,tmsub.make_invoice,tmsub.mail,tmsub.create_time,5,mobile,email + select tmsub.id,tmember.project_name,tmsub.invoice_amount,tmsub.charge_use,'','','',tmsub.liaison_man,tmsub.company_name,tmsub.amount_receivable, + if(tmsub.paid_amount is null or tmsub.paid_amount = '','0.00',tmsub.paid_amount) as paid_amount,tmsub.invoice_requirements,tmsub.pack,tmsub.in_account,tmsub.make_invoice,tmsub.mail,tmsub.create_time,5,mobile,email from tb_member_project tmember inner join tb_member_project_subitem tmsub on tmember.id=tmsub.project_id @@ -120,7 +125,7 @@ AND DATE_FORMAT(ppr.payment_date,'%Y') = #{paymentDate} - GROUP BY ppcp.project_id ORDER BY project.paid_amount asc,ppcp.create_time desc + GROUP BY ppcp.project_id ORDER BY project.paid_amount asc,project.create_time desc + + insert into pay_file_download_record(id, file_id, file_name, file_path, company_name, download_name, meeting_name, create_by, create_time, update_by, update_time) + diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/IOSSFileService.java b/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/IOSSFileService.java index cadfb73d..4ba97bb5 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/IOSSFileService.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/IOSSFileService.java @@ -17,4 +17,8 @@ public interface IOSSFileService extends IService { * @param ossFile */ void updateAndPush(OSSFile ossFile); + + void saveDownloadTimes(String fileId,String userId); + + Integer searchDownloadTimes(String fileId, String userId); } diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/impl/OSSFileServiceImpl.java b/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/impl/OSSFileServiceImpl.java index 63e6d3f5..0f4f1bb5 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/impl/OSSFileServiceImpl.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/oss/service/impl/OSSFileServiceImpl.java @@ -1,20 +1,25 @@ package com.jero.modules.oss.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.util.AuthenticationUtils; import com.jero.common.util.CommonUtils; import com.jero.common.util.oss.OssBootUtil; +import com.jero.modules.oss.entity.FileDownloadRecord; import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.oss.mapper.OSSFileMapper; +import com.jero.modules.oss.mapper.FileDownloadRecordMapper; import com.jero.modules.oss.service.IOSSFileService; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import javax.annotation.Resource; import java.io.IOException; @Service("ossFileService") public class OSSFileServiceImpl extends ServiceImpl implements IOSSFileService { - + @Resource + private FileDownloadRecordMapper fileDownloadRecordMapper; @Override public void upload(MultipartFile multipartFile) throws IOException { String fileName = multipartFile.getOriginalFilename(); @@ -47,4 +52,20 @@ public class OSSFileServiceImpl extends ServiceImpl impl AuthenticationUtils.post("/oss/file/updateAndPush",null,ossFile); } + @Override + public void saveDownloadTimes(String fileId,String userId) { + FileDownloadRecord fileDownloadRecord = new FileDownloadRecord(); + fileDownloadRecord.setFileId(fileId); + fileDownloadRecord.setUserId(userId); + fileDownloadRecordMapper.insert(fileDownloadRecord); + } + + @Override + public Integer searchDownloadTimes(String fileId, String userId) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("user_id",userId); + wrapper.eq("file_id",fileId); + return fileDownloadRecordMapper.selectCount(wrapper); + } + } diff --git a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java index 68e41505..d7ad456a 100644 --- a/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java +++ b/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/CommonController.java @@ -169,6 +169,11 @@ public class CommonController { } response.addHeader("Content-Disposition", "attachment;fileName=" + new String(fileName.getBytes("UTF-8"),"iso-8859-1")); response.setContentType("application/force-download");// 设置强制下载不打开 + if (type == null) { + if (fileName.contains(".jpg") || fileName.contains(".png") || fileName.contains(".gif") || fileName.contains(".jpeg")) { + response.setContentType("image/png;image/jpg;image/gif;image/jpeg"); + } + } outputStream = response.getOutputStream(); byte[] buf = new byte[1024]; int len; @@ -217,6 +222,115 @@ public class CommonController { } + /** + * 预览图片&下载文件 + * + * @param id 传入文件id + * @param request + * @param response + */ + @GetMapping(value = "/userDownload/{id}") + public void download(@PathVariable String id,HttpServletRequest request, HttpServletResponse response,String type) { + // 查询数据表数据是否存在 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(OSSFile::getId,id); + OSSFile ossFile = ossFileService.getOne(queryWrapper); + if( null == ossFile){ + throw new JeroBootException("文件不存在.."); + } + String fileUrl = ossFile.getUrl(); + InputStream inputStream = null; + OutputStream outputStream = null; + try { + String fileName = ""; + if(CommonConstant.UPLOAD_TYPE_LOCAL.equals(uploadType)){ + //本地下载 + String filePath = uploadpath + File.separator + fileUrl; + File file = new File(filePath); + if(!file.exists()){ + response.setStatus(404); + throw new RuntimeException("文件不存在.."); + } + // 文件名称 + fileName = file.getName(); + inputStream = new BufferedInputStream(new FileInputStream(filePath)); + }else if(CommonConstant.UPLOAD_TYPE_MINIO.equals(uploadType)){ + // minio 下载 + // 通过MinioUtil查询时 只需要桶后面的路径 + String minioUrl = MinioUtil.getMinioUrl(); + // Linux/unix 系统下文件路径分隔符为"/" 获取minio与存储桶的路径 + minioUrl = minioUrl + MinioUtil.getBucketName() + "/"; + String url = fileUrl.replace(minioUrl, ""); + // 文件名称 + fileName = ossFile.getFileName(); + inputStream = MinioUtil.getMinioFile(MinioUtil.getBucketName(), url); + } + + ossFileService.updateById(ossFile); + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if (loginUser.getIsCompanyUser()) { + Integer integer = ossFileService.searchDownloadTimes(ossFile.getId(), loginUser.getId()); + if (integer >= 5) { + throw new JeroBootException("超出下载次数限制"); + } + } + ossFileService.saveDownloadTimes(ossFile.getId(), loginUser.getId()); + + response.addHeader("Content-Disposition", "attachment;fileName=" + new String(fileName.getBytes("UTF-8"),"iso-8859-1")); + response.setContentType("application/force-download");// 设置强制下载不打开 + if (type == null) { + if (fileName.contains(".jpg") || fileName.contains(".png") || fileName.contains(".gif") || fileName.contains(".jpeg")) { + response.setContentType("image/png;image/jpg;image/gif;image/jpeg"); + } + } + outputStream = response.getOutputStream(); + byte[] buf = new byte[1024]; + int len; + while ((len = inputStream.read(buf)) > 0) { + outputStream.write(buf, 0, len); + } + response.flushBuffer(); + //统计下载和上传次数 + //if ("download".equals(type)) { + Integer downloadNumber = ossFile.getDownloadNumber(); + if (downloadNumber == null) { + ossFile.setDownloadNumber(0); + } else { + ossFile.setDownloadNumber(downloadNumber + 1); + } + + //} else if ("view".equals(type)) { + // Integer viewNumber = ossFile.getViewNumber(); + // if (viewNumber == null) { + // ossFile.setViewNumber(0); + // } else { + // ossFile.setViewNumber(viewNumber + 1); + // } + // ossFileService.updateAndPush(ossFile); + //} + } catch (IOException e) { + log.error("预览文件失败" + e.getMessage()); + response.setStatus(404); + e.printStackTrace(); + } finally { + if (inputStream != null) { + try { + inputStream.close(); + } catch (IOException e) { + log.error(e.getMessage(), e); + } + } + if (outputStream != null) { + try { + outputStream.close(); + } catch (IOException e) { + log.error(e.getMessage(), e); + } + } + } + + } + /** * @功能:pdf预览Iframe * @param modelAndView From e0c97b1beea14f510e19943f714ff6f27bbb4349 Mon Sep 17 00:00:00 2001 From: lijiarao Date: Fri, 29 Oct 2021 09:09:36 +0800 Subject: [PATCH 11/11] =?UTF-8?q?fix=20=E6=8A=A5=E5=90=8D=E6=88=AA?= =?UTF-8?q?=E6=AD=A2=E6=97=B6=E9=97=B4=E7=B2=BE=E7=A1=AE=E5=88=B0=E6=97=B6?= =?UTF-8?q?=E5=88=86=E7=A7=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../meeting/service/impl/PayMeetingSituationServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 98c36db8..c46a29f8 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 @@ -273,7 +273,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl 0)) { throw new JeroBootException("报名截止时间为:" + DateUtil.formatDate(registerDeadline)); }