update 标协会员门户端权限判断

This commit is contained in:
lijiarao
2024-03-18 11:10:28 +08:00
parent b6d7fc633d
commit c05f05a7c2
9 changed files with 120 additions and 96 deletions
@@ -139,6 +139,9 @@ public class ShiroConfig {
filterChainDefinitionMap.put("/sys/oss/file/queryById","anon");//通过id查询文件
filterChainDefinitionMap.put("/meeting/internalMeetingSituation/checkMember","anon");//校验是否为会员单位
filterChainDefinitionMap.put("/meeting/internalMeeting/getLinkTopics","anon");//查询关联会议
//通过单位名称查询该单位是否可用
filterChainDefinitionMap.put("/member/tbMemberProjectSubitem/enableMemberByCompanyName", "anon");
filterChainDefinitionMap.put("/", "anon");
filterChainDefinitionMap.put("/doc.html", "anon");
@@ -66,6 +66,8 @@ import com.jero.meeting.service.PayRandomCodeService;
import com.jero.meeting.valid.group.*;
import com.jero.meeting.vo.*;
import com.jero.meeting.vo.excel.*;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.service.ITbMemberProjectSubitemService;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.pack.entity.PayPackCompanyProject;
@@ -166,6 +168,8 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
private ISysBaseAPI sysBaseAPI;
@Resource
private IPayDraftingGroupSubItemContactsService draftingGroupSubItemContactsService;
@Resource
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
private static final String[] CAN_MODIFY_LIST =
@@ -1481,7 +1485,9 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
*/
@Override
public Boolean checkMemberCompany(String companyName){
return memberInfoService.check(companyName) > 0;
PayCompanyManagement company = companyManagementService.getCompanyByName(companyName);
TbMemberProjectSubitem takeEffectInfo = tbMemberProjectSubitemService.getTakeEffectInfo(company.getId());
return takeEffectInfo != null;
}
private void canHuiContact(PayMeetingSituation payMeetingSituation, String companyId, PayContactsManagement contactsManagement) {
@@ -17,10 +17,7 @@ import com.jero.member.service.ITbMemberProjectSubitemService;
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.member.vo.CopyMemberVO;
import com.jero.member.vo.EditMemberBenefitsVO;
import com.jero.member.vo.PaymentInfo;
import com.jero.member.vo.TbMemberProjectSubitemEditVO;
import com.jero.member.vo.*;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.system.base.controller.JeroController;
import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -150,6 +147,22 @@ public class TbMemberProjectSubitemController extends JeroController<TbMemberPro
return Result.OK("编辑会员权益成功!");
}
@ApiOperation(value = "资料_下载权限校验", notes = "资料_下载权限校验")
@PostMapping(value = "/dataDownloadPower")
public Result<?> dataDownloadPower(@RequestBody QueryAggVO queryAggVO, HttpServletRequest request) {
tbMemberProjectSubitemService.dataDownloadPower(queryAggVO, request);
return Result.OK(Result.SELECT_SUCCESS, Boolean.TRUE);
}
/**
* 通过单位名称查询该单位是否可用,即已缴费状态
*/
@PostMapping(value = "/enableMemberByCompanyName")
public Result<?> enableMemberByCompanyName(@RequestBody String companyName) {
tbMemberProjectSubitemService.enableMemberByCompanyName(companyName);
return Result.OK();
}
/**
* 导出excel
*/
@@ -162,21 +175,4 @@ public class TbMemberProjectSubitemController extends JeroController<TbMemberPro
return super.exportListXls(pageList.getRecords(), TbMemberProjectSubitem.class, "标协会员项目成员表");
}
@PostMapping(value = "/incomingUpdatePayment")
public Result<Object> incomingUpdatePayment(@RequestBody TbMemberProjectSubitem tbMemberProjectSubitem) {
PaymentInfo paymentInfo = new PaymentInfo();
paymentInfo.setId(tbMemberProjectSubitem.getTbPaymentId());
paymentInfo.setMemberId(tbMemberProjectSubitem.getMemberId());
paymentInfo.setInvoiceRequirements(tbMemberProjectSubitem.getInvoiceRequirements());
paymentInfo.setHeaderName(tbMemberProjectSubitem.getHeaderName());
paymentInfo.setTaxNumber(tbMemberProjectSubitem.getTaxNumber());
paymentInfo.setDepositBank(tbMemberProjectSubitem.getDepositBank());
paymentInfo.setBankAccount(tbMemberProjectSubitem.getBankAccount());
paymentInfo.setInvoiceAddress(tbMemberProjectSubitem.getInvoiceAddress());
paymentInfo.setInvoicePhone(tbMemberProjectSubitem.getInvoicePhone());
paymentInfo.setLinkBankNumber(tbMemberProjectSubitem.getLinkBankNumber());
AuthenticationUtils.post("/paymentInfo/incomingUpdatePayment",null,paymentInfo);
return Result.OK();
}
}
@@ -7,9 +7,11 @@ import com.jero.member.entity.TbMemberProjectSubitem;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.member.vo.CopyMemberVO;
import com.jero.member.vo.EditMemberBenefitsVO;
import com.jero.member.vo.QueryAggVO;
import com.jero.statistics.entity.MemberLineChartVO;
import com.jero.statistics.entity.MemberPieChartVO;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
@@ -99,4 +101,8 @@ public interface ITbMemberProjectSubitemService extends IService<TbMemberProject
List<MemberPieChartVO> pieChart();
IPage<TbMemberProjectSubitem> pieChartPage(Page<TbMemberProjectSubitem> page, QueryWrapper<TbMemberProjectSubitem> queryWrapper);
void dataDownloadPower(QueryAggVO queryAggVO, HttpServletRequest request);
void enableMemberByCompanyName(String companyName);
}
@@ -16,18 +16,25 @@ import com.jero.common.service.RolePermissionService;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.vo.DictModel;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.AuthenticationUtils;
import com.jero.common.util.PasswordUtil;
import com.jero.company.entity.PayCompanyManagement;
import com.jero.company.service.IPayCompanyManagementService;
import com.jero.contract.entity.PayIncomeContractAssociated;
import com.jero.contract.service.IPayIncomeContractAssociatedService;
import com.jero.contract.service.IPayIncomeContractService;
import com.jero.mail.entity.PayMailBillProject;
import com.jero.mail.service.IPayMailBillProjectService;
import com.jero.mail.service.IPayMailBillService;
import com.jero.meeting.entity.PayMeetingSituation;
import com.jero.meeting.mapper.PayMeetingSituationMapper;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.enums.MemberStatusEnum;
import com.jero.member.mapper.TbMemberProjectSubitemMapper;
import com.jero.member.service.ITbMemberProjectSubitemService;
import com.jero.member.vo.CopyMemberVO;
import com.jero.member.vo.EditMemberBenefitsVO;
import com.jero.member.vo.QueryAggVO;
import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.payment.entity.PayConfirmPaymentRecord;
@@ -40,6 +47,7 @@ import com.jero.statistics.entity.MemberLineChartVO;
import com.jero.statistics.entity.MemberPieChartVO;
import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import com.sun.javaws.exceptions.JreExecException;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -51,6 +59,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import static freemarker.template.utility.NullArgumentException.check;
@@ -73,7 +82,7 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl<TbMemberProje
@Autowired
private IPayPackCompanyProjectService payPackCompanyProjectService;
@Autowired
private IPayCompanyManagementTemporaryService payCompanyManagementTemporaryService;
private IPayCompanyManagementService companyManagementService;
@Autowired
private IPayContactsManagementTemporaryService payContactsManagementTemporaryService;
@Resource
@@ -90,6 +99,8 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl<TbMemberProje
private IPayMailBillService payMailBillService;
@Resource
private ISysBaseAPI sysBaseAPI;
@Resource
private PayMeetingSituationMapper payMeetingSituationMapper;
/**
* 保存
@@ -397,6 +408,43 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl<TbMemberProje
return baseMapper.pieChartPage(page,queryWrapper);
}
@Override
public void dataDownloadPower(QueryAggVO queryAggVO, HttpServletRequest request) {
String meetingId = queryAggVO.getMeetingId();
String meetingType = queryAggVO.getMeetingType();
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String userId = loginUser.getId();
String companyId = loginUser.getCompanyId();
TbMemberProjectSubitem takeEffectInfo = getTakeEffectInfo(companyId);
boolean isNotMember = false;
if (takeEffectInfo == null){
isNotMember = true;
}
//如果是标准宣贯&&学习培训要判断是否为参会人员
if ("6".equals(meetingType) || "7".equals(meetingType)) {
LambdaQueryWrapper<PayMeetingSituation> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PayMeetingSituation::getMeetingId,meetingId);
wrapper.eq(PayMeetingSituation::getCompanyContactId,userId);
Integer count = payMeetingSituationMapper.selectCount(wrapper);
if (count <= 0 && isNotMember) {
throw new JeroBootException("只有参会人员和有效期内的缴费会员可以下载和预览文件!");
}
}else if (isNotMember){
throw new JeroBootException("只有有效期内的缴费会员可以下载和预览文件!");
}
}
@Override
public void enableMemberByCompanyName(String companyName) {
PayCompanyManagement company = companyManagementService.getCompanyByName(companyName);
TbMemberProjectSubitem takeEffectInfo = getTakeEffectInfo(company.getId());
if (takeEffectInfo == null){
throw new JeroBootException(companyName + "不是有效会员");
}
}
private TbMemberProjectSubitem setCopyValue(TbMemberProjectSubitem memberProjectSubitem) {
TbMemberProjectSubitem tbMemberProjectSubitem = new TbMemberProjectSubitem();
tbMemberProjectSubitem.setMemberNo(memberProjectSubitem.getMemberNo());
@@ -0,0 +1,38 @@
package com.jero.member.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value="QueryAggVO对象", description="查询聚合VO")
public class QueryAggVO {
@ApiModelProperty(value = "用户id")
private String userId;
@ApiModelProperty(value = "页数")
private Integer pageNo;
@ApiModelProperty(value = "条数")
private Integer pageSize;
@ApiModelProperty(value = "会议id")
private String meetingId;
/**
* 会议类型
* 协会概况: 1, SURVEY
* 工作动态: 2, WORK_TREND
* 行业新闻: 3, NEWS
* 会员服务: 4, SERVE
* 合作交流: 5, CONTACT
* 标准宣贯: 6, TRAIN
* 学习培训: 7, LEARN
* 技术资料: 8, SKILL
* 期刊杂志: 9, MAGAZINE
* 综合资源: 10, RESOURCE
*/
@ApiModelProperty(value = "会议类型")
private String meetingType;
}
@@ -44,7 +44,6 @@ import java.util.*;
*/
@Service
@Transactional
@DS(value = "multi-datasource1")
public class MeetingNewsServiceImpl extends ServiceImpl<MeetingNewsMapper, MeetingNews> implements IMeetingNewsService {
}
@@ -15,12 +15,4 @@ import java.util.Map;
*/
public interface IMemberInfoService extends IService<MemberInfo> {
int check(String companyName);
/**
* 查询会员信息
* @param contacts
* @return
*/
Map<String,Object> baseInfo(PayCompanyManagement company);
}
@@ -1,27 +1,15 @@
package com.jero.standards.memberinfo.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.PasswordUtil;
import com.jero.company.entity.PayCompanyManagement;
import com.jero.company.entity.PayContactsManagement;
import com.jero.member.entity.PayMemberProject;
import com.jero.standards.memberinfo.entity.MemberInfo;
import com.jero.standards.memberinfo.entity.SysUser;
import com.jero.standards.memberinfo.entity.TbContacts;
import com.jero.standards.memberinfo.mapper.MemberInfoMapper;
import com.jero.standards.memberinfo.service.IMemberInfoService;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;
/**
* @Description: 会员信息表
@@ -30,58 +18,6 @@ import java.util.Map;
* @Version: V1.0
*/
@Service
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
@DS(value = "multi-datasource1")
public class MemberInfoServiceImpl extends ServiceImpl<MemberInfoMapper, MemberInfo> implements IMemberInfoService {
@Resource
MemberInfoMapper memberInfoMapper;
@Override
public int check(String companyName) {
return baseMapper.countByCompanyName(companyName);
}
/**
* 查询会员信息
* @return
*/
@Override
public Map<String,Object> baseInfo(PayCompanyManagement company) {
//右侧本企业信息
LambdaQueryWrapper<MemberInfo> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(MemberInfo::getId,company.getMemberId());
MemberInfo memberInfo = memberInfoMapper.selectOne(wrapper);
if (memberInfo != null){
//解密
String memberMobile = PasswordUtil.decrypt(memberInfo.getMobile());
memberInfo.setMobile(memberMobile);
String memberEmail = PasswordUtil.decrypt(memberInfo.getEmail());
memberInfo.setEmail(memberEmail);
String memberInfoPhone = PasswordUtil.decrypt(memberInfo.getPhone());
memberInfo.setPhone(memberInfoPhone);
String standardMobile = PasswordUtil.decrypt(memberInfo.getStandardMobile());
memberInfo.setStandardMobile(standardMobile);
String standardPhone = PasswordUtil.decrypt(memberInfo.getStandardPhone());
memberInfo.setStandardPhone(standardPhone);
String standardEmail = PasswordUtil.decrypt(memberInfo.getStandardEmail());
memberInfo.setStandardEmail(standardEmail);
}
//左侧秘书处信息
SysUser secretariat = memberInfoMapper.getBXGLZ();
//解密
String phone = PasswordUtil.decrypt(secretariat.getPhone());
secretariat.setPhone(phone);
String email = PasswordUtil.decrypt(secretariat.getEmail());
secretariat.setEmail(email);
TbContacts tbContacts = memberInfoMapper.getTbContacts();
Map<String,Object> map = new HashMap<>();
map.put("memberInfo",memberInfo);
map.put("secretariat",secretariat);
map.put("tbContacts",tbContacts);
return map;
}
}