fix bug 在企业端我的会议中增加其他会议,标协会议,国际研讨会会议在[可报名]标签和[全部]标签

This commit is contained in:
lijiarao
2021-11-26 20:06:37 +08:00
parent b4b28d59a1
commit 31d9ede97f
5 changed files with 309 additions and 135 deletions
@@ -1,20 +1,14 @@
package com.jero.meeting.controller;
import java.io.File;
import java.util.*;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.jero.common.api.vo.Result;
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;
@@ -24,12 +18,10 @@ import com.jero.common.util.AuthenticationUtils;
import com.jero.common.util.PasswordUtil;
import com.jero.common.util.ValidUtil;
import com.jero.common.util.oConvertUtils;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayContactsManagementService;
import com.jero.data.entity.PayCaseCommittee;
import com.jero.data.service.IPayCaseCommitteeService;
import com.jero.meeting.common.MeetingCommon;
import com.jero.meeting.common.MeetingSubitemCommon;
import com.jero.meeting.entity.PayMeeting;
import com.jero.meeting.entity.PayMeetingHotelContacts;
import com.jero.meeting.entity.PayMeetingSituation;
@@ -40,16 +32,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.meeting.service.IPayMeetingSituationService;
import com.jero.meeting.vo.PayMeetingVO;
import com.jero.meeting.vo.PublishReminderVO;
import com.jero.meeting.vo.UploadFileVO;
import com.jero.meeting.vo.excel.*;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.system.volid.group.UpdateGroup;
import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.PayWorkingGroup;
import com.jero.project.service.IPayWorkingGroupService;
import com.jero.standards.xuanguan.stablecrosstraining.entity.StableCrossTraining;
import com.jero.util.QrcodeUtil;
import io.swagger.annotations.ApiImplicitParam;
import lombok.extern.slf4j.Slf4j;
@@ -123,71 +112,11 @@ public class PayMeetingController extends JeroController<PayMeeting, IPayMeeting
public Result<?> queryPageListContract(PayMeeting payMeeting,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<PayMeeting> queryWrapper = QueryGenerator.initQueryWrapper(payMeeting, req.getParameterMap());
String meetingStartTime;
String meetingEndTime;
Date month = payMeeting.getMonth();
if (Objects.nonNull(month)) {
meetingStartTime = DateUtil.formatDate(DateUtil.beginOfMonth(month));
meetingEndTime = DateUtil.formatDate(DateUtil.endOfMonth(month));
} else {
meetingStartTime = req.getParameter("meetingStartTime");
meetingEndTime = req.getParameter("meetingEndTime");
}
if (ObjectUtil.isNotEmpty(meetingStartTime) && ObjectUtil.isNotEmpty(meetingEndTime)) {
queryWrapper.not(
a -> a.gt("start_time", meetingEndTime).or().lt("end_time", meetingStartTime)
);
} else if (ObjectUtil.isNotEmpty(meetingStartTime)) {
queryWrapper.not(
a -> a.lt("end_time", meetingStartTime)
);
} else if (ObjectUtil.isNotEmpty(meetingEndTime)) {
queryWrapper.not(
a -> a.gt("start_time", meetingEndTime)
);
}
String meetingStatus = req.getParameter("meetingStatus");
String now = DateUtil.formatDate(new Date());
if (StringUtils.isNotBlank(meetingStatus)) {
switch (meetingStatus) {
case MeetingCommon.MEETING_STATUS_2:
queryWrapper.gt("date_format(start_time,'%Y-%m-%d')", now);
break;
case MeetingCommon.MEETING_STATUS_3:
queryWrapper.le("date_format(start_time,'%Y-%m-%d')", now);
queryWrapper.ge("date_format(end_time,'%Y-%m-%d')", now);
break;
case MeetingCommon.MEETING_STATUS_4:
queryWrapper.lt("date_format(end_time,'%Y-%m-%d')", now);
break;
}
}
HttpServletRequest request) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String contactId = sysUser.getId();
//会议报名状态:1可报名/2已报名
String meetingSignUpType = req.getParameter("meetingSignUpType");
if (Objects.equals(meetingSignUpType, 1 + "")) {
queryWrapper.eq("pmrr.contact_id", contactId);
queryWrapper.isNull("pms.company_contact_id");
queryWrapper.ge("date_format(end_time,'%Y-%m-%d')", now);
} else if (Objects.equals(meetingSignUpType, 2 + "")) {
queryWrapper.eq("pms.company_contact_id", contactId);
} else {
queryWrapper.and(
a -> a.eq("pms.company_contact_id", contactId)
.or()
.eq("pms.post_contact_id", contactId)
.or()
.eq("pmrr.contact_id", contactId)
);
}
queryWrapper.orderByDesc("pm.start_time");
Page<PayMeeting> page = new Page<>(pageNo, pageSize);
IPage<PayMeeting> pageList = payMeetingService.pageListContract(page, queryWrapper, now);
IPage<PayMeeting> pageList = payMeetingService.pageListContract(page, payMeeting, request,sysUser);
for (PayMeeting meeting : pageList.getRecords()) {
//查询会议负责人
LoginUser user = sysBaseAPI.getUserById(meeting.getDirectorId());
@@ -198,11 +127,15 @@ public class PayMeetingController extends JeroController<PayMeeting, IPayMeeting
LambdaQueryWrapper<PayMeetingSituation> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PayMeetingSituation::getMeetingId, meeting.getId());
wrapper.eq(PayMeetingSituation::getCompanyContactId, contactId);
int count = payMeetingSituationService.count(wrapper);
if (count > 0) {
PayMeetingSituation meetingSituation = payMeetingSituationService.getOne(wrapper);
if (meetingSituation!=null) {
meeting.setMeetingSignUpType(2);
meeting.setRegisterCheckResult(meetingSituation.getRegisterCheckResult());
meeting.setSituationId(meetingSituation.getId());
meeting.setPayMode(meetingSituation.getPayMode());
} else {
meeting.setMeetingSignUpType(1);
meeting.setPayMode(null);
}
}
@@ -8,8 +8,6 @@ import org.apache.ibatis.annotations.Param;
import com.jero.meeting.entity.PayMeeting;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
/**
* @Description: 会议管理
* @Author: jero-boot
@@ -19,12 +17,22 @@ import java.util.List;
public interface PayMeetingMapper extends BaseMapper<PayMeeting> {
IPage<PayMeeting> pageListContract(Page<PayMeeting> page,
@Param(Constants.WRAPPER) QueryWrapper<PayMeeting> queryWrapper,
@Param("now") String now);
@Param(Constants.WRAPPER) QueryWrapper<PayMeeting> queryWrapper,
@Param("now") String now);
IPage<PayMeeting> pageListContract2(Page<PayMeeting> page,
@Param(Constants.WRAPPER) QueryWrapper<PayMeeting> queryWrapper,
@Param("now") String now);
IPage<PayMeeting> pageListContract3(Page<PayMeeting> page,
@Param(Constants.WRAPPER) QueryWrapper<PayMeeting> queryWrapper,
@Param("now") String now);
IPage<PayMeeting> internelPage(Page<PayMeeting> page, @Param(Constants.WRAPPER) QueryWrapper<PayMeeting> queryWrapper);
IPage<PayMeeting> workGroupPage(Page<PayMeeting> page, @Param(Constants.WRAPPER) QueryWrapper<PayMeeting> queryWrapper);
IPage<PayMeeting> standardPage(Page<PayMeeting> page, @Param(Constants.WRAPPER) QueryWrapper<PayMeeting> queryWrapper);
}
@@ -35,53 +35,207 @@
<result column="meetingStatus" property="meetingStatus"/>
<result column="register_check_result" property="registerCheckResult"/>
</resultMap>
<!-- 将原有id改为会议id, 新增situationId 为成员id -->
<select id="pageListContract" resultMap="PayMeetingResultMap">
select distinct meeting_name,
meeting_type,
tb_meeting_type,
working_group_id,
working_group_name,
start_time,
end_time,
particular_year,
start_sign_in_time,
end_sign_in_time,
venue,
convoke_locale,
address,
estimated_number,
meeting_content,
register_deadline,
vip_invitation_code,
speaker_invitation_code,
guest_invitation_code,
cooperative_invitation_code,
meeting_costs,
meeting_costs_vip,
director_id,
director_name,
director_phone,
hotel_name,
hotel_address,
meeting_files,
meeting_data,
remind,
payment_qr_code,
case_committee_id,
case_committee_name,
notice,
pms.pay_mode,
pms.register_check_result,
pms.id as situationId,
pm.id,
(case
when date_format(start_time, '%Y-%m-%d') > #{now} then 2
when date_format(start_time, '%Y-%m-%d') <![CDATA[<=]]> #{now}
and #{now} <![CDATA[<=]]> date_format(end_time, '%Y-%m-%d') then 3
when date_format(end_time, '%Y-%m-%d') <![CDATA[<=]]> #{now} then 4
END
) as meetingStatus
meeting_type,
tb_meeting_type,
working_group_id,
working_group_name,
start_time,
end_time,
particular_year,
start_sign_in_time,
end_sign_in_time,
venue,
convoke_locale,
address,
estimated_number,
meeting_content,
register_deadline,
vip_invitation_code,
speaker_invitation_code,
guest_invitation_code,
cooperative_invitation_code,
meeting_costs,
meeting_costs_vip,
director_id,
director_name,
director_phone,
hotel_name,
hotel_address,
meeting_files,
meeting_data,
remind,
payment_qr_code,
case_committee_id,
case_committee_name,
notice,
(case
when meeting_type = 2 then null
when meeting_type = 3 then null
else pms.pay_mode
END
) as pay_mode,
(case
when meeting_type = 2 then null
when meeting_type = 3 then null
else pms.register_check_result
END
) as register_check_result,
(case
when meeting_type = 2 then null
when meeting_type = 3 then null
else pms.id
END
) as situationId,
pm.id,
GROUP_CONCAT(pms.company_contact_id) company_contact_ids,
(case
when date_format(start_time, '%Y-%m-%d') > #{now} then 2
when date_format(start_time, '%Y-%m-%d') <![CDATA[<=]]> #{now}
and #{now} <![CDATA[<=]]> date_format(end_time, '%Y-%m-%d') then 3
when date_format(end_time, '%Y-%m-%d') <![CDATA[<=]]> #{now} then 4
END
) as meetingStatus
from pay_meeting pm
left join pay_meeting_situation pms on pm.id = pms.meeting_id
left join pay_meeting_remind_record pmrr on pm.id = pmrr.meeting_id
${ew.customSqlSegment}
</select>
<!-- 将原有id改为会议id, 新增situationId 为成员id -->
<select id="pageListContract2" resultMap="PayMeetingResultMap">
select distinct meeting_name,
meeting_type,
tb_meeting_type,
working_group_id,
working_group_name,
start_time,
end_time,
particular_year,
start_sign_in_time,
end_sign_in_time,
venue,
convoke_locale,
address,
estimated_number,
meeting_content,
register_deadline,
vip_invitation_code,
speaker_invitation_code,
guest_invitation_code,
cooperative_invitation_code,
meeting_costs,
meeting_costs_vip,
director_id,
director_name,
director_phone,
hotel_name,
hotel_address,
meeting_files,
meeting_data,
remind,
payment_qr_code,
case_committee_id,
case_committee_name,
notice,
(case
when meeting_type = 2 then null
when meeting_type = 3 then null
else pms.pay_mode
END
) as pay_mode,
(case
when meeting_type = 2 then null
when meeting_type = 3 then null
else pms.register_check_result
END
) as register_check_result,
(case
when meeting_type = 2 then null
when meeting_type = 3 then null
else pms.id
END
) as situationId,
pm.id,
(case
when date_format(start_time, '%Y-%m-%d') > #{now} then 2
when date_format(start_time, '%Y-%m-%d') <![CDATA[<=]]> #{now}
and #{now} <![CDATA[<=]]> date_format(end_time, '%Y-%m-%d') then 3
when date_format(end_time, '%Y-%m-%d') <![CDATA[<=]]> #{now} then 4
END
) as meetingStatus
from pay_meeting pm
left join pay_meeting_situation pms on pm.id = pms.meeting_id
left join pay_meeting_remind_record pmrr on pm.id = pmrr.meeting_id
${ew.customSqlSegment}
</select>
<!-- 将原有id改为会议id, 新增situationId 为成员id -->
<select id="pageListContract3" resultMap="PayMeetingResultMap">
select distinct meeting_name,
meeting_type,
tb_meeting_type,
working_group_id,
working_group_name,
start_time,
end_time,
particular_year,
start_sign_in_time,
end_sign_in_time,
venue,
convoke_locale,
address,
estimated_number,
meeting_content,
register_deadline,
vip_invitation_code,
speaker_invitation_code,
guest_invitation_code,
cooperative_invitation_code,
meeting_costs,
meeting_costs_vip,
director_id,
director_name,
director_phone,
hotel_name,
hotel_address,
meeting_files,
meeting_data,
remind,
payment_qr_code,
case_committee_id,
case_committee_name,
notice,
(case
when meeting_type = 2 then null
when meeting_type = 3 then null
else pms.pay_mode
END
) as pay_mode,
(case
when meeting_type = 2 then null
when meeting_type = 3 then null
else pms.register_check_result
END
) as register_check_result,
(case
when meeting_type = 2 then null
when meeting_type = 3 then null
else pms.id
END
) as situationId,
pm.id,
(case
when date_format(start_time, '%Y-%m-%d') > #{now} then 2
when date_format(start_time, '%Y-%m-%d') <![CDATA[<=]]> #{now}
and #{now} <![CDATA[<=]]> date_format(end_time, '%Y-%m-%d') then 3
when date_format(end_time, '%Y-%m-%d') <![CDATA[<=]]> #{now} then 4
END
) as meetingStatus
from pay_meeting pm
left join pay_meeting_situation pms on pm.id = pms.meeting_id
left join pay_meeting_remind_record pmrr on pm.id = pmrr.meeting_id
@@ -91,22 +245,22 @@
<select id="internelPage" resultMap="PayMeetingResultMap">
select distinct pm.*
from pay_meeting pm
left join pay_meeting_situation pms on pm.id = pms.meeting_id
${ew.customSqlSegment}
left join pay_meeting_situation pms on pm.id = pms.meeting_id
${ew.customSqlSegment}
</select>
<select id="workGroupPage" resultMap="PayMeetingResultMap">
select distinct pm.*
from pay_meeting pm
left join pay_meeting_situation pms on pm.id = pms.meeting_id
left join pay_working_group pwg on pwg.id = pm.working_group_id
${ew.customSqlSegment}
left join pay_meeting_situation pms on pm.id = pms.meeting_id
left join pay_working_group pwg on pwg.id = pm.working_group_id
${ew.customSqlSegment}
</select>
<select id="standardPage" resultMap="PayMeetingResultMap">
select distinct pm.*
from pay_meeting pm
left join tb_member_project tmp on tmp.id = pm.standards_id
${ew.customSqlSegment}
left join tb_member_project tmp on tmp.id = pm.standards_id
${ew.customSqlSegment}
</select>
</mapper>
@@ -1,9 +1,9 @@
package com.jero.meeting.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.enums.CompanyMessageEnums;
import com.jero.common.system.vo.LoginUser;
import com.jero.meeting.entity.PayMeeting;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.meeting.vo.PayMeetingVO;
@@ -66,7 +66,7 @@ public interface IPayMeetingService extends IService<PayMeeting> {
void publishReminder(PublishReminderVO publishReminderVO, CompanyMessageEnums companyMessageEnums, String busType);
IPage<PayMeeting> pageListContract(Page<PayMeeting> page, QueryWrapper<PayMeeting> queryWrapper, String now);
IPage<PayMeeting> pageListContract(Page<PayMeeting> page, PayMeeting payMeeting, HttpServletRequest request, LoginUser sysUser);
IPage<PayMeeting> queryPageList(PayMeeting payMeeting, Integer pageNo, Integer pageSize, HttpServletRequest req);
@@ -9,7 +9,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.common.RoleCommon;
import com.jero.common.dto.SendMessageDTO;
import com.jero.common.enums.CompanyMessageEnums;
import com.jero.common.exception.JeroBootException;
@@ -564,8 +563,88 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
}
@Override
public IPage<PayMeeting> pageListContract(Page<PayMeeting> page, QueryWrapper<PayMeeting> queryWrapper, String now) {
return baseMapper.pageListContract(page, queryWrapper, now);
public IPage<PayMeeting> pageListContract(Page<PayMeeting> page, PayMeeting payMeeting, HttpServletRequest request, LoginUser sysUser) {
QueryWrapper<PayMeeting> queryWrapper = QueryGenerator.initQueryWrapper(payMeeting, request.getParameterMap());
String meetingStartTime;
String meetingEndTime;
Date month = payMeeting.getMonth();
if (Objects.nonNull(month)) {
meetingStartTime = DateUtil.formatDate(DateUtil.beginOfMonth(month));
meetingEndTime = DateUtil.formatDate(DateUtil.endOfMonth(month));
} else {
meetingStartTime = request.getParameter("meetingStartTime");
meetingEndTime = request.getParameter("meetingEndTime");
}
if (ObjectUtil.isNotEmpty(meetingStartTime) && ObjectUtil.isNotEmpty(meetingEndTime)) {
queryWrapper.not(
a -> a.gt("start_time", meetingEndTime).or().lt("end_time", meetingStartTime)
);
} else if (ObjectUtil.isNotEmpty(meetingStartTime)) {
queryWrapper.not(
a -> a.lt("end_time", meetingStartTime)
);
} else if (ObjectUtil.isNotEmpty(meetingEndTime)) {
queryWrapper.not(
a -> a.gt("start_time", meetingEndTime)
);
}
String meetingStatus = request.getParameter("meetingStatus");
String now = DateUtil.formatDate(new Date());
if (StringUtils.isNotBlank(meetingStatus)) {
switch (meetingStatus) {
case MeetingCommon.MEETING_STATUS_2:
queryWrapper.gt("date_format(start_time,'%Y-%m-%d')", now);
break;
case MeetingCommon.MEETING_STATUS_3:
queryWrapper.le("date_format(start_time,'%Y-%m-%d')", now);
queryWrapper.ge("date_format(end_time,'%Y-%m-%d')", now);
break;
case MeetingCommon.MEETING_STATUS_4:
queryWrapper.lt("date_format(end_time,'%Y-%m-%d')", now);
break;
}
}
String contactId = sysUser.getId();
queryWrapper.orderByDesc("pm.start_time");
//会议报名状态:1可报名/2已报名
String meetingSignUpType = request.getParameter("meetingSignUpType");
if (Objects.equals(meetingSignUpType, 1 + "")) {
//queryWrapper.ne("pms.company_contact_id",contactId);
queryWrapper.ge("date_format(register_deadline,'%Y-%m-%d')", now);
queryWrapper.ge("date_format(end_time,'%Y-%m-%d')", now);
queryWrapper.and(
b -> b.eq("pm.meeting_type",MeetingCommon.STANDARD_MEETING)
.or()
.eq("pm.meeting_type",MeetingCommon.INTERNATIONAL_MEETING)
.or()
.eq("pm.meeting_type",MeetingCommon.OTHER_MEETING)
.or()
.eq("pmrr.contact_id", contactId)
);
queryWrapper.groupBy("meeting_name");
queryWrapper.having("company_contact_ids not like concat('%',{0},'%')",contactId);
return baseMapper.pageListContract(page, queryWrapper, now);
} else if (Objects.equals(meetingSignUpType, 2 + "")) {
queryWrapper.eq("pms.company_contact_id", contactId);
return baseMapper.pageListContract2(page, queryWrapper, now);
} else {
queryWrapper.and(
a -> a.eq("pms.company_contact_id", contactId)
.or()
.eq("pms.post_contact_id", contactId)
.or()
.eq("pmrr.contact_id", contactId)
.or()
.eq("pm.meeting_type",MeetingCommon.STANDARD_MEETING)
.or()
.eq("pm.meeting_type",MeetingCommon.INTERNATIONAL_MEETING)
.or()
.eq("pm.meeting_type",MeetingCommon.OTHER_MEETING)
);
queryWrapper.groupBy("meeting_name");
return baseMapper.pageListContract3(page, queryWrapper, now);
}
}
@Override