diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/common/MeetingSubitemCommon.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/common/MeetingSubitemCommon.java index c4e5caf4..a784b2c9 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/common/MeetingSubitemCommon.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/common/MeetingSubitemCommon.java @@ -18,6 +18,11 @@ public class MeetingSubitemCommon { */ public final static Integer NEI_BU_QI_YE = 3; + /** + * 缴费方式:汇款 + */ + public final static Integer PAY_MODE_1 = 1; + /** * 缴费方式:线上缴费 */ @@ -26,7 +31,7 @@ public class MeetingSubitemCommon { /** * 缴费方式:打包 */ - public final static Integer PAY_MODE_PACK = 3; + public final static Integer PAY_MODE_3 = 3; /** * vip嘉宾 */ diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingController.java index dc6b414b..b4510c63 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayMeetingController.java @@ -189,7 +189,6 @@ public class PayMeetingController extends JeroController queryById(@RequestParam(name = "id") String id) { diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java index 2b8101f7..07e70e73 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/service/impl/PayMeetingServiceImpl.java @@ -3,9 +3,13 @@ package com.jero.meeting.service.impl; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.jero.common.dto.SendMessageDTO; +import com.jero.common.enums.CompanyMessageEnums; import com.jero.common.exception.JeroBootException; +import com.jero.common.service.SendMessageService; import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.vo.LoginUser; +import com.jero.common.util.PasswordUtil; import com.jero.common.util.ValidUtil; import com.jero.company.entity.PayContactsManagement; import com.jero.company.service.IPayContactsManagementService; @@ -34,13 +38,16 @@ import com.jero.project.service.IPayWorkingGroupSubItemService; import com.jero.standards.xuanguan.stablecrosstraining.service.IStableCrossTrainingService; import com.jero.temporary.entity.PayContactsManagementTemporary; import com.jero.temporary.service.IPayContactsManagementTemporaryService; +import org.apache.commons.lang3.StringUtils; import org.apache.shiro.util.CollectionUtils; import org.jetbrains.annotations.NotNull; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -75,6 +82,8 @@ public class PayMeetingServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PayWorkingGroupSubItem::getWorkingGroupId,workingGroupId); + List groupSubItemList = payWorkingGroupSubItemService.list(wrapper); + for (PayWorkingGroupSubItem payWorkingGroupSubItem : groupSubItemList) { + String chargeCompanyId = payWorkingGroupSubItem.getChargeCompanyId(); + //根据企业id查询所有联系人 + List list = payContactsManagementService.list( + new LambdaQueryWrapper() + .eq(PayContactsManagement::getCompanyId, chargeCompanyId) + ); + for (PayContactsManagement payContactsManagement : list) { + sendMessage(payMeeting, payContactsManagement); + } + } + } + } + /** + * 工作组创建会议通知 + * @param payMeeting 会议信息 + * @param payContactsManagement 联系人信息 + * @author lijiarao + * @date 2021/9/24 + */ + private void sendMessage(PayMeeting payMeeting, PayContactsManagement payContactsManagement) { + String phone = payContactsManagement.getPhone(); + String email = payContactsManagement.getEmail(); + SendMessageDTO sendMessageDTO = new SendMessageDTO(); + if (!StringUtils.isBlank(email)) { + sendMessageDTO.setEmail(PasswordUtil.decrypt(email)); + } + if (!StringUtils.isBlank(phone)) { + sendMessageDTO.setToUser(PasswordUtil.decrypt(phone)); + sendMessageDTO.setPhone(PasswordUtil.decrypt(phone)); + } + HashMap map = new HashMap<>(); + map.put("meetingName", payMeeting.getMeetingName()); + sendMessageDTO.setFromUser(payMeeting.getDirectorName()); + sendMessageDTO.setTemplateCode(CompanyMessageEnums.MSG1.getCode()); + sendMessageDTO.setTemplateParam(map); + sendMessageDTO.setBusType("email"); + sendMessageDTO.setBusId(payMeeting.getId()); + sendMessageService.SendMessageService(sendMessageDTO); } @Override 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 3942f202..d3e5e54c 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 @@ -10,7 +10,6 @@ import com.jero.common.common.ProjectCommon; import com.jero.common.dto.SendMessageDTO; import com.jero.common.enums.CompanyMessageEnums; import com.jero.common.enums.ManagementMessageEnums; -import com.jero.common.common.ProjectCommon; import com.jero.common.exception.JeroBootException; import com.jero.common.service.SendMessageService; import com.jero.common.service.ContractCreateProjectSendMessageService; @@ -121,7 +120,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PayWorkingGroupSubItem::getWorkingGroupId, payMeeting.getWorkingGroupId()); + wrapper.eq(PayWorkingGroupSubItem::getChargeCompanyId, payMeetingSituation1.getCompanyId()); + boolean isSubItem = payWorkingGroupSubItemService.count(wrapper) > 0; + judgeSend(payMeeting, payMeetingSituation1, isSubItem); + + + } else if (meetingType.equals(Integer.parseInt(MeetingCommon.COMMITTEE_MEETING))) { + //分标委以人为维度 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PayCaseCommitteeSubitem::getCommitteeId, payMeeting.getCaseCommitteeId()); + wrapper.eq(PayCaseCommitteeSubitem::getContactsId, payMeetingSituation1.getCompanyContactId()); + + int count = payCaseCommitteeSubitemService.count(wrapper); + if (count > 0) { + payMeetingSituation1.setRegisterCheckResult(MeetingSubitemCommon.SIGNUP_STATUS_0); + } + } + } + + /** + * 判断发送哪种类型的消息 + * @param payMeeting + * @param payMeetingSituation + * @param isSubItem 是否是组成员 + */ + private void judgeSend(PayMeeting payMeeting, PayMeetingSituation payMeetingSituation, boolean isSubItem) { + //工作组成员 + if (isSubItem) { + //不是汇款和线上缴费 + if (payMeetingSituation.getPayMode().equals(MeetingSubitemCommon.PAY_MODE_3)){ + sendMessage(payMeeting, payMeetingSituation,CompanyMessageEnums.MSG4); + } + }else { + //不是汇款和线上缴费 + if (payMeetingSituation.getPayMode().equals(MeetingSubitemCommon.PAY_MODE_3)){ + sendMessage(payMeeting, payMeetingSituation,CompanyMessageEnums.MSG2); + }else { + sendMessage(payMeeting, payMeetingSituation,CompanyMessageEnums.MSG3); + } + } + } + + /** + * 工作组会议/分标委会议的非成员单位人报名发送消息 CompanyMessageEnums.MSG2 + * 工作组会议/分标委会议的非成员单位人报名审核允许参会,但是需要上传缴费凭证/订单后四位的发送消息 CompanyMessageEnums.MSG3 + * 既不是非成员单位,也不需要上传缴费凭证的直接发送发送消息 CompanyMessageEnums.MSG4 + * @param payMeetingSituation + * @author lijiarao + * @date 2021/9/24 17:51 + */ + public void sendMessage(PayMeeting payMeeting, + PayMeetingSituation payMeetingSituation, + CompanyMessageEnums companyMessageEnums) { + String companyContactId = payMeetingSituation.getCompanyContactId(); + PayContactsManagement contactsManagement = contactsManagementService.getById(companyContactId); + String phone = contactsManagement.getPhone(); + String email = contactsManagement.getEmail(); + SendMessageDTO sendMessageDTO = new SendMessageDTO(); + if (!StringUtils.isBlank(email)) { + sendMessageDTO.setEmail(PasswordUtil.decrypt(email)); + } + if (!StringUtils.isBlank(phone)) { + sendMessageDTO.setToUser(PasswordUtil.decrypt(phone)); + sendMessageDTO.setPhone(PasswordUtil.decrypt(phone)); + } + HashMap map = new HashMap<>(); + map.put("meetingName", payMeeting.getMeetingName()); + sendMessageDTO.setFromUser(payMeeting.getDirectorName()); + sendMessageDTO.setTemplateCode(companyMessageEnums.getCode()); + sendMessageDTO.setTemplateParam(map); + sendMessageDTO.setBusType("email"); + sendMessageDTO.setBusId(payMeetingSituation.getId()); + sendMessageService.SendMessageService(sendMessageDTO); } /** @@ -223,7 +299,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl map = new HashMap<>(); + map.put("meetingName", payMeeting.getMeetingName()); + map.put("userName1", sysUser.getUsername()); + map.put("userName2", payMeetingSituation.getCompanyContactName()); + map.put("record", record); + sendMessageDTO.setFromUser(sysUser.getId()); + sendMessageDTO.setTemplateCode(ManagementMessageEnums.MSG8.getCode()); + sendMessageDTO.setTemplateParam(map); + sendMessageDTO.setBusType("email"); + sendMessageDTO.setBusId(id); + sendMessageService.SendMessageService(sendMessageDTO); } } @@ -506,7 +603,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); wrapper.eq(PayWorkingGroupSubItem::getWorkingGroupId, payMeeting.getWorkingGroupId()); wrapper.eq(PayWorkingGroupSubItem::getChargeCompanyId, payMeetingSituation1.getCompanyId()); - wrapper.and(i -> i.eq(PayWorkingGroupSubItem::getContactsIdOne, payMeetingSituation1.getCompanyContactId()) - .or() - .eq(PayWorkingGroupSubItem::getContactsIdTwo, payMeetingSituation1.getCompanyContactId()) - .or() - .eq(PayWorkingGroupSubItem::getContactsIdThree, payMeetingSituation1.getCompanyContactId()) - ); int count = payWorkingGroupSubItemService.count(wrapper); if (count <= 0) { payMeetingSituation1.setRegisterCheckResult(MeetingSubitemCommon.SIGNUP_STATUS_0); @@ -589,7 +680,6 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); wrapper.eq(PayCaseCommitteeSubitem::getCommitteeId, payMeeting.getCaseCommitteeId()); - wrapper.eq(PayCaseCommitteeSubitem::getCompanyId, payMeetingSituation1.getCompanyId()); wrapper.eq(PayCaseCommitteeSubitem::getContactsId, payMeetingSituation1.getCompanyContactId()); int count = payCaseCommitteeSubitemService.count(wrapper); @@ -617,8 +707,8 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); wrapper.eq(PayMeetingSituation::getMeetingId, meetingId); wrapper.eq(PayMeetingSituation::getCompanyContactId, contactsManagementId); - if (StringUtils.isNotBlank(payMeetingSituation.getId())){ - wrapper.ne(PayMeetingSituation::getId,payMeetingSituation.getId()); + if (StringUtils.isNotBlank(payMeetingSituation.getId())) { + wrapper.ne(PayMeetingSituation::getId, payMeetingSituation.getId()); } if ((count(wrapper) > 0)) { throw new JeroBootException("联系人不能多次参加相同会议"); @@ -726,7 +816,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl