Merge branch 'master' into xuqiubiangeng1026

This commit is contained in:
梁琦涛
2021-10-29 09:59:57 +08:00
28 changed files with 498 additions and 269 deletions
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.demo.payFileDownloadRecord.mapper.PayFileDownloadRecordMapper">
<mapper namespace="org.jeecg.modules.demo.fileDownloadRecord.mapper.PayFileDownloadRecordMapper">
</mapper>
@@ -217,8 +217,8 @@ public class CommitteeMeetingController extends JeroController<PayMeeting, IPayM
@GetMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, PayMeeting payMeeting) {
payMeeting.setMeetingType(MeetingCommon.COMMITTEE_MEETING_INT);
QueryWrapper<PayMeeting> queryWrapper = QueryGenerator.initQueryWrapper(payMeeting, request.getParameterMap());
List<PayMeeting> pageList = payMeetingService.list(queryWrapper);
IPage<PayMeeting> queryPageList = payMeetingService.queryPageList(payMeeting, -1, -1, request);
List<PayMeeting> pageList = queryPageList.getRecords();
List<Object> exportList = new ArrayList<>();
// 过滤选中数据
String selections = request.getParameter("selections");
@@ -90,13 +90,9 @@ public class CommitteeMeetingSituationController extends JeroController<PayMeeti
if (StringUtils.isNotBlank(particularYear)) {
queryWrapper.eq("DATE_FORMAT( ppr.payment_date, '%Y' )", particularYear);
}
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if (!rolePermissionService.getRolePermission("committeeMeetingSituation:search")) {
queryWrapper.eq("pm.director_id", loginUser.getId());
}
queryWrapper.eq("pm.meeting_type",MEETING_TYPE);
Page<PayMeetingSituation> page = new Page<>(pageNo, pageSize);
IPage<PayMeetingSituation> pageList = payMeetingSituationService.pageListContract(page, queryWrapper);
IPage<PayMeetingSituation> pageList = payMeetingSituationService.pageListContract(page, queryWrapper,MEETING_TYPE);
List<PayMeetingSituation> situationList = pageList.getRecords();
for (PayMeetingSituation meetingSituation : situationList) {
Integer payMode = meetingSituation.getPayMode();
@@ -118,27 +114,11 @@ public class CommitteeMeetingSituationController extends JeroController<PayMeeti
@ApiOperation(value = "参会人员信息-添加参会人", notes = "参会人员信息-添加参会人")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody PayMeetingSituation payMeetingSituation) {
String meetingId = payMeetingSituation.getMeetingId();
PayMeeting payMeeting = meetingService.getById(meetingId);
if (!Objects.equals(payMeeting.getMeetingType(),MEETING_TYPE)){
throw new JeroBootException("数据权限不足");
}
payMeetingSituationService.add(payMeetingSituation);
payMeetingSituationService.add(payMeetingSituation,MEETING_TYPE);
return Result.OK("添加成功!");
}
/**
* 报名
*/
@AutoLog(value = "报名信息-报名")
@ApiOperation(value = "报名信息-报名", notes = "报名信息-报名")
@PostMapping(value = "/signUp")
public Result<?> signUp(@RequestBody PayMeetingSituation payMeetingSituation) {
payMeetingSituationService.signUp(payMeetingSituation);
return Result.OK("添加成功!");
}
/**
* 编辑
*/
@@ -147,8 +127,7 @@ public class CommitteeMeetingSituationController extends JeroController<PayMeeti
@ApiOperation(value = "参会人员信息-编辑", notes = "参会人员信息-编辑")
@PostMapping(value = "/edit")
public Result<?> edit(@RequestBody PayMeetingSituationVO payMeetingSituationVO) {
payMeetingSituationService.checkCan(payMeetingSituationVO.getId(),MEETING_TYPE);
payMeetingSituationService.editById(payMeetingSituationVO);
payMeetingSituationService.editById(payMeetingSituationVO,MEETING_TYPE);
return Result.OK("编辑成功!");
}
@@ -160,7 +139,6 @@ public class CommitteeMeetingSituationController extends JeroController<PayMeeti
@ApiOperation(value = "参会人员信息-通过id删除", notes = "参会人员信息-通过id删除")
@GetMapping(value = "/delete")
public Result<?> delete(@RequestParam(name = "id") String id) {
payMeetingSituationService.checkCan(id,MEETING_TYPE);
payMeetingSituationService.deleteById(id);
return Result.OK("删除成功!");
}
@@ -174,9 +152,6 @@ public class CommitteeMeetingSituationController extends JeroController<PayMeeti
@GetMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name = "ids") String ids) {
List<String> stringList = Arrays.asList(ids.split(","));
for (String id : stringList) {
payMeetingSituationService.checkCan(id,MEETING_TYPE);
}
this.payMeetingSituationService.deleteByIds(stringList);
return Result.OK("批量删除成功!");
}
@@ -189,7 +164,6 @@ public class CommitteeMeetingSituationController extends JeroController<PayMeeti
@ApiOperation(value = "参会人员信息-通过id查询", notes = "参会人员信息-通过id查询")
@GetMapping(value = "/queryById")
public Result<?> queryById(@RequestParam(name = "id") String id) {
payMeetingSituationService.checkCan(id,MEETING_TYPE);
PayMeetingSituation payMeetingSituation = payMeetingSituationService.queryById(id);
if (payMeetingSituation == null) {
return Result.error("未找到对应数据");
@@ -312,10 +286,6 @@ public class CommitteeMeetingSituationController extends JeroController<PayMeeti
@ApiOperation(value = "设置对接人", notes = "设置对接人")
@PostMapping(value = "/addDock")
public Result<?> addDock(@RequestBody AddDockVO addDockVO) {
List<String> meetingSituationIds = addDockVO.getMeetingSituationIds();
for (String id : meetingSituationIds) {
payMeetingSituationService.checkCan(id,MEETING_TYPE);
}
payMeetingSituationService.addDock(addDockVO);
return Result.OK("设置对接人成功!");
}
@@ -328,7 +298,6 @@ public class CommitteeMeetingSituationController extends JeroController<PayMeeti
@ApiOperation(value = "审核付款凭证")
@PostMapping(value = "/check")
public Result<?> check(@RequestBody CheckVO checkVO) {
payMeetingSituationService.checkCan(checkVO.getId(),MEETING_TYPE);
payMeetingSituationService.check(checkVO);
return Result.OK("审核成功!");
}
@@ -341,7 +310,6 @@ public class CommitteeMeetingSituationController extends JeroController<PayMeeti
@ApiOperation(value = "审核报名信息")
@PostMapping(value = "/checkRegister")
public Result<?> checkRegister(@RequestBody CheckVO checkVO) {
payMeetingSituationService.checkCan(checkVO.getId(),MEETING_TYPE);
payMeetingSituationService.checkRegister(checkVO);
return Result.OK("审核成功!");
}
@@ -216,8 +216,8 @@ public class InternalMeetingController extends JeroController<PayMeeting, IPayMe
@GetMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, PayMeeting payMeeting) {
payMeeting.setMeetingType(MeetingCommon.INTERNATIONAL_MEETING_INT);
QueryWrapper<PayMeeting> queryWrapper = QueryGenerator.initQueryWrapper(payMeeting, request.getParameterMap());
List<PayMeeting> pageList = payMeetingService.list(queryWrapper);
IPage<PayMeeting> queryPageList = payMeetingService.queryPageList(payMeeting, -1, -1, request);
List<PayMeeting> pageList = queryPageList.getRecords();
List<Object> exportList = new ArrayList<>();
// 过滤选中数据
String selections = request.getParameter("selections");
@@ -8,38 +8,32 @@ import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.aspect.annotation.DictPoint;
import com.jero.common.exception.JeroBootException;
import com.jero.common.service.RolePermissionService;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
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.PayCompanyManagement;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayCompanyManagementService;
import com.jero.company.service.IPayContactsManagementService;
import com.jero.meeting.common.MeetingCommon;
import com.jero.meeting.entity.PayMeeting;
import com.jero.meeting.entity.PayMeetingSituation;
import com.jero.meeting.service.IPayMeetingSituationService;
import com.jero.meeting.vo.*;
import com.jero.meeting.vo.excel.*;
import com.jero.project.common.PayProjectCommon;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -61,6 +55,10 @@ public class InternalMeetingSituationController extends JeroController<PayMeetin
private IPayContactsManagementService contactsManagementService;
@Resource
private IPayCompanyManagementService companyManagementService;
@Resource
private RolePermissionService rolePermissionService;
private final Integer MEETING_TYPE = MeetingCommon.INTERNATIONAL_MEETING_INT;
/**
* 分页列表查询
*/
@@ -71,14 +69,14 @@ public class InternalMeetingSituationController extends JeroController<PayMeetin
public Result<?> queryPageList(PayMeetingSituation payMeetingSituation,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<PayMeetingSituation> queryWrapper = QueryGenerator.initQueryWrapper(payMeetingSituation, req.getParameterMap());
String particularYear = req.getParameter("particularYear");
HttpServletRequest request) {
QueryWrapper<PayMeetingSituation> queryWrapper = QueryGenerator.initQueryWrapper(payMeetingSituation, request.getParameterMap());
String particularYear = request.getParameter("particularYear");
if (StringUtils.isNotBlank(particularYear)){
queryWrapper.eq("DATE_FORMAT( ppr.payment_date, '%Y' )",particularYear);
}
Page<PayMeetingSituation> page = new Page<>(pageNo, pageSize);
IPage<PayMeetingSituation> pageList = payMeetingSituationService.pageListContract(page, queryWrapper);
IPage<PayMeetingSituation> pageList = payMeetingSituationService.pageListContract(page, queryWrapper,MEETING_TYPE);
List<PayMeetingSituation> situationList = pageList.getRecords();
for (PayMeetingSituation meetingSituation : situationList) {
Integer payMode = meetingSituation.getPayMode();
@@ -100,22 +98,10 @@ public class InternalMeetingSituationController extends JeroController<PayMeetin
@ApiOperation(value = "参会人员信息-添加参会人", notes = "参会人员信息-添加参会人")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody PayMeetingSituation payMeetingSituation) {
payMeetingSituationService.add(payMeetingSituation);
payMeetingSituationService.add(payMeetingSituation, MEETING_TYPE);
return Result.OK("添加成功!");
}
/**
* 报名
*/
@AutoLog(value = "报名信息-报名")
@ApiOperation(value = "报名信息-报名", notes = "报名信息-报名")
@PostMapping(value = "/signUp")
public Result<?> signUp(@RequestBody PayMeetingSituation payMeetingSituation) {
payMeetingSituationService.signUp(payMeetingSituation);
return Result.OK("添加成功!");
}
/**
* 编辑
*/
@@ -124,7 +110,7 @@ public class InternalMeetingSituationController extends JeroController<PayMeetin
@ApiOperation(value = "参会人员信息-编辑", notes = "参会人员信息-编辑")
@PostMapping(value = "/edit")
public Result<?> edit(@RequestBody PayMeetingSituationVO payMeetingSituationVO) {
payMeetingSituationService.editById(payMeetingSituationVO);
payMeetingSituationService.editById(payMeetingSituationVO, MEETING_TYPE);
return Result.OK("编辑成功!");
}
@@ -186,87 +172,15 @@ public class InternalMeetingSituationController extends JeroController<PayMeetin
@RequiresPermissions("internalMeetingSituation:export")
@GetMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, PayMeetingSituation payMeetingSituation) {
QueryWrapper<PayMeetingSituation> queryWrapper = QueryGenerator.initQueryWrapper(payMeetingSituation, request.getParameterMap());
List<PayMeetingSituation> pageList = payMeetingSituationService.list(queryWrapper);
// 过滤选中数据
String selections = request.getParameter("selections");
if (oConvertUtils.isNotEmpty(selections)) {
List<String> selectionList = Arrays.asList(selections.split(","));
pageList = pageList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
}
if (pageList.isEmpty()) {
throw new JeroBootException("没有数据");
}
String meetingType = payMeetingSituationService.getMeetingType(payMeetingSituation);
List<Object> exportList = new ArrayList<>();
for (PayMeetingSituation meetingSituation : pageList) {
String companyContactId = meetingSituation.getCompanyContactId();
PayContactsManagement contactsManagement = contactsManagementService.getById(companyContactId);
meetingSituation.setCompanyContactName(contactsManagement.getName());
meetingSituation.setPost(contactsManagement.getPost());
meetingSituation.setPhone(PasswordUtil.decrypt(contactsManagement.getPhone()));
meetingSituation.setEmail(PasswordUtil.decrypt(contactsManagement.getEmail()));
PayCompanyManagement companyManagement = companyManagementService.getById(contactsManagement.getCompanyId());
meetingSituation.setCompanyName(companyManagement.getCompanyName());
switch (meetingType) {
case MeetingCommon.STANDARD_MEETING:
//保存数据
StandardsSituationExcel standardsSituationExcel = new StandardsSituationExcel();
BeanUtils.copyProperties(meetingSituation, standardsSituationExcel);
exportList.add(standardsSituationExcel);
// 工作组项目查询工作组项目名
break;
case MeetingCommon.WORKING_GROUP_MEETING:
//保存数据
WorkingGroupSituationExcel workingGroupSituationExcel = new WorkingGroupSituationExcel();
BeanUtils.copyProperties(meetingSituation, workingGroupSituationExcel);
exportList.add(workingGroupSituationExcel);
break;
case MeetingCommon.INTERNATIONAL_MEETING:
//保存数据
InternationalSituationExcel internationalSituationExcel = new InternationalSituationExcel();
BeanUtils.copyProperties(meetingSituation, internationalSituationExcel);
exportList.add(internationalSituationExcel);
break;
case MeetingCommon.OTHER_MEETING:
//保存数据
SituationExcel situationExcel = new SituationExcel();
BeanUtils.copyProperties(meetingSituation, situationExcel);
exportList.add(situationExcel);
break;
case MeetingCommon.COMMITTEE_MEETING:
//保存数据
CommitteeSituationExcel committeeSituationExcel = new CommitteeSituationExcel();
BeanUtils.copyProperties(meetingSituation, committeeSituationExcel);
exportList.add(committeeSituationExcel);
break;
}
}
Class<?> classToExport = null;
switch (meetingType) {
case MeetingCommon.WORKING_GROUP_MEETING:
classToExport = WorkingGroupSituationExcel.class;
break;
case MeetingCommon.STANDARD_MEETING:
classToExport = StandardsSituationExcel.class;
break;
case MeetingCommon.INTERNATIONAL_MEETING:
classToExport = InternationalSituationExcel.class;
break;
case MeetingCommon.OTHER_MEETING:
classToExport = SituationExcel.class;
break;
case MeetingCommon.COMMITTEE_MEETING:
classToExport = CommitteeSituationExcel.class;
break;
}
return super.exportListXls(exportList, classToExport, "参会人员信息");
List<Object> objects = payMeetingSituationService.MeetingSituationGetModelAndView(request, payMeetingSituation,MEETING_TYPE);
Class<?> aClass = payMeetingSituationService.getaClass(MEETING_TYPE);
return super.exportListXls(objects, aClass, "参会人员信息");
}
/**
* 设置对接人
*/
@@ -216,8 +216,8 @@ public class OtherMeetingController extends JeroController<PayMeeting, IPayMeeti
@GetMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, PayMeeting payMeeting) {
payMeeting.setMeetingType(MeetingCommon.OTHER_MEETING_INT);
QueryWrapper<PayMeeting> queryWrapper = QueryGenerator.initQueryWrapper(payMeeting, request.getParameterMap());
List<PayMeeting> pageList = payMeetingService.list(queryWrapper);
IPage<PayMeeting> queryPageList = payMeetingService.queryPageList(payMeeting, -1, -1, request);
List<PayMeeting> pageList = queryPageList.getRecords();
List<Object> exportList = new ArrayList<>();
// 过滤选中数据
String selections = request.getParameter("selections");
@@ -61,6 +61,8 @@ public class OtherMeetingSituationController extends JeroController<PayMeetingSi
private IPayContactsManagementService contactsManagementService;
@Resource
private IPayCompanyManagementService companyManagementService;
private final Integer MEETING_TYPE = MeetingCommon.OTHER_MEETING_INT;
/**
* 分页列表查询
*/
@@ -78,7 +80,7 @@ public class OtherMeetingSituationController extends JeroController<PayMeetingSi
queryWrapper.eq("DATE_FORMAT( ppr.payment_date, '%Y' )",particularYear);
}
Page<PayMeetingSituation> page = new Page<>(pageNo, pageSize);
IPage<PayMeetingSituation> pageList = payMeetingSituationService.pageListContract(page, queryWrapper);
IPage<PayMeetingSituation> pageList = payMeetingSituationService.pageListContract(page, queryWrapper,MEETING_TYPE);
List<PayMeetingSituation> situationList = pageList.getRecords();
for (PayMeetingSituation meetingSituation : situationList) {
Integer payMode = meetingSituation.getPayMode();
@@ -100,22 +102,10 @@ public class OtherMeetingSituationController extends JeroController<PayMeetingSi
@ApiOperation(value = "参会人员信息-添加参会人", notes = "参会人员信息-添加参会人")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody PayMeetingSituation payMeetingSituation) {
payMeetingSituationService.add(payMeetingSituation);
payMeetingSituationService.add(payMeetingSituation, MEETING_TYPE);
return Result.OK("添加成功!");
}
/**
* 报名
*/
@AutoLog(value = "报名信息-报名")
@ApiOperation(value = "报名信息-报名", notes = "报名信息-报名")
@PostMapping(value = "/signUp")
public Result<?> signUp(@RequestBody PayMeetingSituation payMeetingSituation) {
payMeetingSituationService.signUp(payMeetingSituation);
return Result.OK("添加成功!");
}
/**
* 编辑
*/
@@ -124,7 +114,7 @@ public class OtherMeetingSituationController extends JeroController<PayMeetingSi
@ApiOperation(value = "参会人员信息-编辑", notes = "参会人员信息-编辑")
@PostMapping(value = "/edit")
public Result<?> edit(@RequestBody PayMeetingSituationVO payMeetingSituationVO) {
payMeetingSituationService.editById(payMeetingSituationVO);
payMeetingSituationService.editById(payMeetingSituationVO, MEETING_TYPE);
return Result.OK("编辑成功!");
}
@@ -62,36 +62,38 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
private IPayContactsManagementService contactsManagementService;
@Resource
private IPayCompanyManagementService companyManagementService;
private final Integer MEETING_TYPE = null;
/**
* 分页列表查询
*/
@CompanyNameTranslate
@RequiresPermissions("meetingSituation:search")
@ApiOperation(value = "参会人员信息-分页列表查询", notes = "参会人员信息-分页列表查询")
@GetMapping(value = "/page")
public Result<?> queryPageList(PayMeetingSituation payMeetingSituation,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<PayMeetingSituation> queryWrapper = QueryGenerator.initQueryWrapper(payMeetingSituation, req.getParameterMap());
String particularYear = req.getParameter("particularYear");
if (StringUtils.isNotBlank(particularYear)){
queryWrapper.eq("DATE_FORMAT( ppr.payment_date, '%Y' )",particularYear);
}
Page<PayMeetingSituation> page = new Page<>(pageNo, pageSize);
IPage<PayMeetingSituation> pageList = payMeetingSituationService.pageListContract(page, queryWrapper);
List<PayMeetingSituation> situationList = pageList.getRecords();
for (PayMeetingSituation meetingSituation : situationList) {
Integer payMode = meetingSituation.getPayMode();
//汇款并且缴费凭证为空
if (Objects.equals(payMode,1) && StringUtils.isBlank(meetingSituation.getPaymentRecord())){
meetingSituation.setIdentification(PayProjectCommon.YES);
}else {
meetingSituation.setIdentification(PayProjectCommon.NO);
}
}
return Result.OK(pageList);
}
//@CompanyNameTranslate
//@RequiresPermissions("meetingSituation:search")
//@ApiOperation(value = "参会人员信息-分页列表查询", notes = "参会人员信息-分页列表查询")
//@GetMapping(value = "/page")
//public Result<?> queryPageList(PayMeetingSituation payMeetingSituation,
// @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
// @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
// HttpServletRequest req) {
// QueryWrapper<PayMeetingSituation> queryWrapper = QueryGenerator.initQueryWrapper(payMeetingSituation, req.getParameterMap());
// String particularYear = req.getParameter("particularYear");
// if (StringUtils.isNotBlank(particularYear)){
// queryWrapper.eq("DATE_FORMAT( ppr.payment_date, '%Y' )",particularYear);
// }
// Page<PayMeetingSituation> page = new Page<>(pageNo, pageSize);
// IPage<PayMeetingSituation> pageList = payMeetingSituationService.pageListContract(page, queryWrapper,MEETING_TYPE);
// List<PayMeetingSituation> situationList = pageList.getRecords();
// for (PayMeetingSituation meetingSituation : situationList) {
// Integer payMode = meetingSituation.getPayMode();
// //汇款并且缴费凭证为空
// if (Objects.equals(payMode,1) && StringUtils.isBlank(meetingSituation.getPaymentRecord())){
// meetingSituation.setIdentification(PayProjectCommon.YES);
// }else {
// meetingSituation.setIdentification(PayProjectCommon.NO);
// }
// }
// return Result.OK(pageList);
//}
/**
* 合同查询未关联参会人列表
@@ -136,7 +138,7 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
@ApiOperation(value = "参会人员信息-添加参会人", notes = "参会人员信息-添加参会人")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody PayMeetingSituation payMeetingSituation) {
payMeetingSituationService.add(payMeetingSituation);
payMeetingSituationService.add(payMeetingSituation, MEETING_TYPE);
return Result.OK("添加成功!");
}
@@ -152,17 +154,17 @@ public class PayMeetingSituationController extends JeroController<PayMeetingSitu
}
/**
* 编辑
*/
@AutoLog(value = "参会人员信息-编辑")
@RequiresPermissions("meetingSituation:edit")
@ApiOperation(value = "参会人员信息-编辑", notes = "参会人员信息-编辑")
@PostMapping(value = "/edit")
public Result<?> edit(@RequestBody PayMeetingSituationVO payMeetingSituationVO) {
payMeetingSituationService.editById(payMeetingSituationVO);
return Result.OK("编辑成功!");
}
///**
// * 编辑
// */
//@AutoLog(value = "参会人员信息-编辑")
//@RequiresPermissions("meetingSituation:edit")
//@ApiOperation(value = "参会人员信息-编辑", notes = "参会人员信息-编辑")
//@PostMapping(value = "/edit")
//public Result<?> edit(@RequestBody PayMeetingSituationVO payMeetingSituationVO) {
// payMeetingSituationService.editById(payMeetingSituationVO, MEETING_TYPE);
// return Result.OK("编辑成功!");
//}
/**
* 企业端上传缴费凭证 编辑
@@ -243,8 +243,8 @@ public class StandardsMeetingController extends JeroController<PayMeeting, IPayM
@GetMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, PayMeeting payMeeting) {
payMeeting.setMeetingType(MeetingCommon.STANDARD_MEETING_INT);
QueryWrapper<PayMeeting> queryWrapper = QueryGenerator.initQueryWrapper(payMeeting, request.getParameterMap());
List<PayMeeting> pageList = payMeetingService.list(queryWrapper);
IPage<PayMeeting> queryPageList = payMeetingService.queryPageList(payMeeting, -1, -1, request);
List<PayMeeting> pageList = queryPageList.getRecords();
List<Object> exportList = new ArrayList<>();
// 过滤选中数据
String selections = request.getParameter("selections");
@@ -61,6 +61,8 @@ public class StandardsMeetingSituationController extends JeroController<PayMeeti
private IPayContactsManagementService contactsManagementService;
@Resource
private IPayCompanyManagementService companyManagementService;
private final Integer MEETING_TYPE = MeetingCommon.STANDARD_MEETING_INT;
/**
* 分页列表查询
*/
@@ -78,7 +80,7 @@ public class StandardsMeetingSituationController extends JeroController<PayMeeti
queryWrapper.eq("DATE_FORMAT( ppr.payment_date, '%Y' )",particularYear);
}
Page<PayMeetingSituation> page = new Page<>(pageNo, pageSize);
IPage<PayMeetingSituation> pageList = payMeetingSituationService.pageListContract(page, queryWrapper);
IPage<PayMeetingSituation> pageList = payMeetingSituationService.pageListContract(page, queryWrapper,MEETING_TYPE);
List<PayMeetingSituation> situationList = pageList.getRecords();
for (PayMeetingSituation meetingSituation : situationList) {
Integer payMode = meetingSituation.getPayMode();
@@ -100,22 +102,10 @@ public class StandardsMeetingSituationController extends JeroController<PayMeeti
@ApiOperation(value = "参会人员信息-添加参会人", notes = "参会人员信息-添加参会人")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody PayMeetingSituation payMeetingSituation) {
payMeetingSituationService.add(payMeetingSituation);
payMeetingSituationService.add(payMeetingSituation, MEETING_TYPE);
return Result.OK("添加成功!");
}
/**
* 报名
*/
@AutoLog(value = "报名信息-报名")
@ApiOperation(value = "报名信息-报名", notes = "报名信息-报名")
@PostMapping(value = "/signUp")
public Result<?> signUp(@RequestBody PayMeetingSituation payMeetingSituation) {
payMeetingSituationService.signUp(payMeetingSituation);
return Result.OK("添加成功!");
}
/**
* 编辑
*/
@@ -124,7 +114,7 @@ public class StandardsMeetingSituationController extends JeroController<PayMeeti
@ApiOperation(value = "参会人员信息-编辑", notes = "参会人员信息-编辑")
@PostMapping(value = "/edit")
public Result<?> edit(@RequestBody PayMeetingSituationVO payMeetingSituationVO) {
payMeetingSituationService.editById(payMeetingSituationVO);
payMeetingSituationService.editById(payMeetingSituationVO, MEETING_TYPE);
return Result.OK("编辑成功!");
}
@@ -218,8 +218,8 @@ public class WorkGroupMeetingController extends JeroController<PayMeeting, IPayM
@GetMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, PayMeeting payMeeting) {
payMeeting.setMeetingType(MeetingCommon.WORKING_GROUP_MEETING_INT);
QueryWrapper<PayMeeting> queryWrapper = QueryGenerator.initQueryWrapper(payMeeting, request.getParameterMap());
List<PayMeeting> pageList = payMeetingService.list(queryWrapper);
IPage<PayMeeting> queryPageList = payMeetingService.queryPageList(payMeeting, -1, -1, request);
List<PayMeeting> pageList = queryPageList.getRecords();
List<Object> exportList = new ArrayList<>();
// 过滤选中数据
String selections = request.getParameter("selections");
@@ -61,6 +61,8 @@ public class WorkGroupMeetingSituationController extends JeroController<PayMeeti
private IPayContactsManagementService contactsManagementService;
@Resource
private IPayCompanyManagementService companyManagementService;
private final Integer MEETING_TYPE = MeetingCommon.WORKING_GROUP_MEETING_INT;
/**
* 分页列表查询
*/
@@ -78,7 +80,7 @@ public class WorkGroupMeetingSituationController extends JeroController<PayMeeti
queryWrapper.eq("DATE_FORMAT( ppr.payment_date, '%Y' )",particularYear);
}
Page<PayMeetingSituation> page = new Page<>(pageNo, pageSize);
IPage<PayMeetingSituation> pageList = payMeetingSituationService.pageListContract(page, queryWrapper);
IPage<PayMeetingSituation> pageList = payMeetingSituationService.pageListContract(page, queryWrapper,MEETING_TYPE);
List<PayMeetingSituation> situationList = pageList.getRecords();
for (PayMeetingSituation meetingSituation : situationList) {
Integer payMode = meetingSituation.getPayMode();
@@ -100,22 +102,10 @@ public class WorkGroupMeetingSituationController extends JeroController<PayMeeti
@ApiOperation(value = "参会人员信息-添加参会人", notes = "参会人员信息-添加参会人")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody PayMeetingSituation payMeetingSituation) {
payMeetingSituationService.add(payMeetingSituation);
payMeetingSituationService.add(payMeetingSituation, MEETING_TYPE);
return Result.OK("添加成功!");
}
/**
* 报名
*/
@AutoLog(value = "报名信息-报名")
@ApiOperation(value = "报名信息-报名", notes = "报名信息-报名")
@PostMapping(value = "/signUp")
public Result<?> signUp(@RequestBody PayMeetingSituation payMeetingSituation) {
payMeetingSituationService.signUp(payMeetingSituation);
return Result.OK("添加成功!");
}
/**
* 编辑
*/
@@ -124,7 +114,7 @@ public class WorkGroupMeetingSituationController extends JeroController<PayMeeti
@ApiOperation(value = "参会人员信息-编辑", notes = "参会人员信息-编辑")
@PostMapping(value = "/edit")
public Result<?> edit(@RequestBody PayMeetingSituationVO payMeetingSituationVO) {
payMeetingSituationService.editById(payMeetingSituationVO);
payMeetingSituationService.editById(payMeetingSituationVO, MEETING_TYPE);
return Result.OK("编辑成功!");
}
@@ -22,5 +22,4 @@ public interface PayMeetingSituationMapper extends BaseMapper<PayMeetingSituatio
IPage<PayMeetingSituation> pageListContract(Page<PayMeetingSituation> page,
@Param(Constants.WRAPPER) QueryWrapper<PayMeetingSituation> queryWrapper);
}
@@ -4,11 +4,12 @@ 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.api.vo.Result;
import com.jero.meeting.common.MeetingCommon;
import com.jero.meeting.entity.PayMeetingSituation;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.meeting.vo.*;
import org.jetbrains.annotations.Nullable;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
@@ -22,12 +23,12 @@ public interface IPayMeetingSituationService extends IService<PayMeetingSituatio
/**
* 保存
*/
void add(PayMeetingSituation payMeetingSituation);
void add(PayMeetingSituation payMeetingSituation, Integer meetingType);
/**
* 更新
*/
void editById(PayMeetingSituationVO payMeetingSituationVO);
void editById(PayMeetingSituationVO payMeetingSituationVO, Integer meetingType);
Boolean checkMember(String companyName);
@@ -77,7 +78,10 @@ public interface IPayMeetingSituationService extends IService<PayMeetingSituatio
void editTerminal(PayMeetingSituationVO payMeetingSituationVO);
IPage<PayMeetingSituation> pageListContract(Page<PayMeetingSituation> page, QueryWrapper<PayMeetingSituation> queryWrapper);
IPage<PayMeetingSituation> pageListContract(Page<PayMeetingSituation> page, QueryWrapper<PayMeetingSituation> queryWrapper,Integer meetingType);
void checkCan(String situationId, Integer meetingCommon);
List<Object> MeetingSituationGetModelAndView(HttpServletRequest request, PayMeetingSituation payMeetingSituation, Integer meetingType);
@Nullable
Class<?> getaClass(Integer meetingType);
}
@@ -45,6 +45,7 @@ import com.jero.meeting.valid.group.WorkingGroupMeeting;
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.project.entity.PayWorkingGroup;
@@ -562,23 +563,40 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
}
Page<PayMeeting> page = new Page<>(pageNo, pageSize);
IPage<PayMeeting> pageList;
if (!rolePermissionService.getRolePermission("generalProject:search")) {
if (!payMeeting.getMeetingType().equals(MeetingCommon.INTERNATIONAL_MEETING_INT)) {
payMeeting.setDirectorId(sysUser.getId());
pageList = page(page, queryWrapper);
String permission = null;
Integer meetingType = payMeeting.getMeetingType();
if (meetingType != null) {
if (meetingType.equals(MeetingCommon.WORKING_GROUP_MEETING_INT)){
permission = "workGroupMeeting:search";
}else if (meetingType.equals(MeetingCommon.STANDARD_MEETING_INT)){
permission = "standardMeeting:search";
}else if (meetingType.equals(MeetingCommon.INTERNATIONAL_MEETING_INT)){
permission = "internalMeeting:search";
}else if (meetingType.equals(MeetingCommon.OTHER_MEETING_INT)){
permission = "otherMeeting:search";
}else if (meetingType.equals(MeetingCommon.COMMITTEE_MEETING_INT)){
permission = "committeeMeeting:search";
}
}
if (StringUtils.isNotBlank(permission)) {
if (!Objects.equals(permission,"standardMeeting:search") && !rolePermissionService.getRolePermission(permission)) {
if (!meetingType.equals(MeetingCommon.INTERNATIONAL_MEETING_INT)) {
queryWrapper.eq("director_id", sysUser.getId());
pageList = page(page, queryWrapper);
}else {
queryWrapper.and(
a -> a.eq("director_id", sysUser.getId())
.or()
.eq("dock_id", sysUser.getId())
);
pageList = baseMapper.internelPage(page,queryWrapper);
}
}else {
queryWrapper.and(
a -> a.eq("director_id", sysUser.getId())
.or()
.eq("dock_id", sysUser.getId())
);
pageList = baseMapper.internelPage(page,queryWrapper);
pageList = page(page, queryWrapper);
}
}else {
pageList = page(page, queryWrapper);
}
for (PayMeeting meeting : pageList.getRecords()) {
//查询会议负责人
LoginUser user = sysBaseAPI.getUserById(meeting.getDirectorId());
@@ -19,9 +19,11 @@ import com.jero.common.service.RolePermissionService;
import com.jero.common.service.SendMessageService;
import com.jero.common.service.ContractCreateProjectSendMessageService;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.PasswordUtil;
import com.jero.common.util.ValidUtil;
import com.jero.common.util.oConvertUtils;
import com.jero.company.entity.PayCompanyManagement;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayCompanyManagementService;
@@ -44,6 +46,7 @@ import com.jero.meeting.service.IPayMeetingService;
import com.jero.meeting.service.IPayMeetingSituationService;
import com.jero.meeting.valid.group.*;
import com.jero.meeting.vo.*;
import com.jero.meeting.vo.excel.*;
import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.payment.entity.PayPaymentRecord;
@@ -59,15 +62,18 @@ import com.jero.util.module.ObjRecordUtilModule;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.transaction.annotation.Transactional;
@@ -123,9 +129,13 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
* 保存
*/
@Override
public void add(PayMeetingSituation payMeetingSituation) {
public void add(PayMeetingSituation payMeetingSituation, Integer meetingType) {
String meetingId1 = payMeetingSituation.getMeetingId();
PayMeeting payMeeting1 = meetingService.getById(meetingId1);
if (meetingType != null && !Objects.equals(payMeeting1.getMeetingType(), meetingType)) {
throw new JeroBootException("数据权限不足");
}
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if (!Objects.equals(payMeeting1.getDirectorId(),loginUser.getId())) {
throw new JeroBootException("只有会议负责人可以新增参会人");
@@ -263,7 +273,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
PayMeeting payMeeting = meetingService.getById(meetingId);
//判断报名时间
Date registerDeadline = payMeeting.getRegisterDeadline();
DateTime date = DateUtil.beginOfDay(DateUtil.date());
DateTime date = DateUtil.date();
if ((DateUtil.compare(date, registerDeadline) > 0)) {
throw new JeroBootException("报名截止时间为:" + DateUtil.formatDate(registerDeadline));
}
@@ -706,7 +716,20 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
}
@Override
public IPage<PayMeetingSituation> pageListContract(Page<PayMeetingSituation> page, QueryWrapper<PayMeetingSituation> queryWrapper) {
public IPage<PayMeetingSituation> pageListContract(Page<PayMeetingSituation> page, QueryWrapper<PayMeetingSituation> queryWrapper,Integer meetingType) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if (!rolePermissionService.getRolePermission("committeeMeetingSituation:search")) {
if (meetingType.equals(MeetingCommon.INTERNATIONAL_MEETING_INT)){
queryWrapper.and(
a -> a.eq("pms.dock_id",loginUser.getId())
.or()
.eq("pm.director_id",loginUser.getId())
);
}else {
queryWrapper.eq("pm.director_id", loginUser.getId());
}
}
queryWrapper.eq("pm.meeting_type",meetingType);
return baseMapper.pageListContract(page,queryWrapper);
}
@@ -714,12 +737,17 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
* 更新
*/
@Override
public void editById(PayMeetingSituationVO payMeetingSituationVO) {
public void editById(PayMeetingSituationVO payMeetingSituationVO, Integer meetingType1) {
String meetingId = payMeetingSituationVO.getMeetingId();
PayMeeting payMeeting = meetingService.getById(meetingId);
String meetingType = payMeeting.getMeetingType().toString();
String id = payMeetingSituationVO.getId();
PayMeetingSituation payMeetingSituation = this.getById(id);
if (meetingType1 != null && !Objects.equals(payMeeting.getMeetingType(),meetingType1)) {
throw new JeroBootException("数据权限不足");
}
//把原始数据保存下来,后面用于判断修改了那些字段
PayMeetingSituation oldObject = new PayMeetingSituation();
BeanUtils.copyProperties(payMeetingSituation, oldObject);
@@ -775,8 +803,8 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
}
HashMap<String, String> map = new HashMap<>();
map.put("meetingName", payMeeting.getMeetingName());
map.put("userName1", sysUser.getUsername());
map.put("userName2", payMeetingSituation1.getCompanyContactName());
map.put("username1", sysUser.getRealname());
map.put("username2", payMeetingSituation1.getCompanyContactName());
map.put("record", record);
sendMessageDTO.setFromUser(sysUser.getUsername());
sendMessageDTO.setTemplateCode(ManagementMessageEnums.MSG8.getCode());
@@ -1176,13 +1204,91 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
return date.after(begin) && date.before(end);
}
@Override
public void checkCan(String situationId, Integer meetingCommon){
PayMeetingSituation payMeetingSituation = getById(situationId);
String meetingId = payMeetingSituation.getMeetingId();
PayMeeting payMeeting = meetingService.getById(meetingId);
if (!Objects.equals(payMeeting.getMeetingType(),meetingCommon)) {
throw new JeroBootException("数据权限不足");
public List<Object> MeetingSituationGetModelAndView(HttpServletRequest request, PayMeetingSituation payMeetingSituation, Integer meetingType) {
QueryWrapper<PayMeetingSituation> queryWrapper = QueryGenerator.initQueryWrapper(payMeetingSituation, request.getParameterMap());
String particularYear = request.getParameter("particularYear");
if (StringUtils.isNotBlank(particularYear)){
queryWrapper.eq("DATE_FORMAT( ppr.payment_date, '%Y' )",particularYear);
}
IPage<PayMeetingSituation> pageListContract = pageListContract(new Page<>(-1, -1), queryWrapper,meetingType);
List<PayMeetingSituation> pageList = pageListContract.getRecords();
// 过滤选中数据
String selections = request.getParameter("selections");
if (oConvertUtils.isNotEmpty(selections)) {
List<String> selectionList = Arrays.asList(selections.split(","));
pageList = pageList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
}
if (pageList.isEmpty()) {
throw new JeroBootException("没有数据");
}
String meetingType1 = getMeetingType(payMeetingSituation);
List<Object> exportList = new ArrayList<>();
for (PayMeetingSituation meetingSituation : pageList) {
String companyContactId = meetingSituation.getCompanyContactId();
PayContactsManagement contactsManagement = contactsManagementService.getById(companyContactId);
meetingSituation.setCompanyContactName(contactsManagement.getName());
meetingSituation.setPost(contactsManagement.getPost());
meetingSituation.setPhone(PasswordUtil.decrypt(contactsManagement.getPhone()));
meetingSituation.setEmail(PasswordUtil.decrypt(contactsManagement.getEmail()));
PayCompanyManagement companyManagement = companyManagementService.getById(contactsManagement.getCompanyId());
meetingSituation.setCompanyName(companyManagement.getCompanyName());
switch (meetingType1) {
case MeetingCommon.STANDARD_MEETING:
//保存数据
StandardsSituationExcel standardsSituationExcel = new StandardsSituationExcel();
BeanUtils.copyProperties(meetingSituation, standardsSituationExcel);
exportList.add(standardsSituationExcel);
// 工作组项目查询工作组项目名
break;
case MeetingCommon.WORKING_GROUP_MEETING:
//保存数据
WorkingGroupSituationExcel workingGroupSituationExcel = new WorkingGroupSituationExcel();
BeanUtils.copyProperties(meetingSituation, workingGroupSituationExcel);
exportList.add(workingGroupSituationExcel);
break;
case MeetingCommon.INTERNATIONAL_MEETING:
//保存数据
InternationalSituationExcel internationalSituationExcel = new InternationalSituationExcel();
BeanUtils.copyProperties(meetingSituation, internationalSituationExcel);
exportList.add(internationalSituationExcel);
break;
case MeetingCommon.OTHER_MEETING:
//保存数据
SituationExcel situationExcel = new SituationExcel();
BeanUtils.copyProperties(meetingSituation, situationExcel);
exportList.add(situationExcel);
break;
case MeetingCommon.COMMITTEE_MEETING:
//保存数据
CommitteeSituationExcel committeeSituationExcel = new CommitteeSituationExcel();
BeanUtils.copyProperties(meetingSituation, committeeSituationExcel);
exportList.add(committeeSituationExcel);
break;
}
}
return exportList;
}
@Nullable
@Override
public Class<?> getaClass(Integer meetingType) {
Class<?> classToExport = null;
if (meetingType.equals(MeetingCommon.WORKING_GROUP_MEETING_INT)){
classToExport = WorkingGroupSituationExcel.class;
}else if (meetingType.equals(MeetingCommon.STANDARD_MEETING_INT)){
classToExport = StandardsSituationExcel.class;
}else if (meetingType.equals(MeetingCommon.INTERNATIONAL_MEETING_INT)){
classToExport = InternationalSituationExcel.class;
}else if (meetingType.equals(MeetingCommon.OTHER_MEETING_INT)){
classToExport = SituationExcel.class;
}else if (meetingType.equals(MeetingCommon.COMMITTEE_MEETING_INT)){
classToExport = CommitteeSituationExcel.class;
}
return classToExport;
}
}
@@ -35,7 +35,6 @@ public class CommonPeopleVO{
/**邮寄联系人地址*/
@Excel(name = "地址", width = 15)
@ApiModelProperty(value = "邮寄联系人地址")
@NotBlank(message = "地址不能为空",groups = NotPack.class)
private String postContactAddress;
/**缴费方式*/
@@ -82,7 +82,7 @@ public class PayMemberProjectController extends JeroController<PayMemberProject,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if (!rolePermissionService.getRolePermission("generalProject:search")) {
if (!rolePermissionService.getRolePermission("memberProject:search")) {
payMemberProject.setDirectorId(sysUser.getId());
}
QueryWrapper<PayMemberProject> queryWrapper = QueryGenerator.initQueryWrapper(payMemberProject, req.getParameterMap());
@@ -257,6 +257,10 @@ public class PayMemberProjectController extends JeroController<PayMemberProject,
@RequiresPermissions("memberProject:export")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, PayMemberProject payMemberProject) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if (!rolePermissionService.getRolePermission("memberProject:search")) {
payMemberProject.setDirectorId(sysUser.getId());
}
QueryWrapper<PayMemberProject> queryWrapper = QueryGenerator.initQueryWrapper(payMemberProject, request.getParameterMap());
List<PayMemberProject> pageList = memberProjectService.list(queryWrapper);
// 过滤选中数据
@@ -59,7 +59,13 @@ public class ObjRecordUtil {
Dict dict = field1.getAnnotation(Dict.class);
if (pn != null) {
Object old = field1.get(oldObj);
if (Objects.isNull(old)) {
old = "";
}
Object newo = field2.get(newObj);
if (Objects.isNull(newo)) {
newo = "";
}
if (pn.value().contains("id")) {
break;
} else if (pn.value().contains("文件")) {
@@ -0,0 +1,59 @@
package com.jero.modules.oss.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* @Description: pay_file_download_record
* @Author: jeecg-boot
* @Date: 2021-08-30
* @Version: V1.0
*/
@Data
@TableName("pay_file_download_record")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="pay_file_download_record对象", description="pay_file_download_record")
public class FileDownloadRecord implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private String id;
@ApiModelProperty(value = "文件id")
private String fileId;
/**用户id*/
@Excel(name = "用户id", width = 15)
@ApiModelProperty(value = "用户id")
private String userId;
/**创建人*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**创建时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@Excel(name = "下载时间", width = 15,exportFormat = "yyyy-MM-dd")
@ApiModelProperty(value = "创建时间")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**更新时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "更新时间")
private java.util.Date updateTime;
}
@@ -0,0 +1,16 @@
package com.jero.modules.oss.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.oss.entity.FileDownloadRecord;
/**
* @Description: pay_file_download_record
* @Author: jeecg-boot
* @Date: 2021-08-30
* @Version: V1.0
*/
public interface FileDownloadRecordMapper extends BaseMapper<FileDownloadRecord> {
}
@@ -4,9 +4,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.oss.entity.OSSFile;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
public interface OSSFileMapper extends BaseMapper<OSSFile> {
/**
* 根据文件id获取文件名称
*/
String findFileNameByFileId(@Param("fileId")String fileId);
String findFileNameByFileId(@Param("fileId") String fileId);
void saveDownloadTimes(@Param("userId") String userId, @Param("fileId") String fileId, @Param("date") Date date);
}
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.modules.oss.mapper.FileDownloadRecordMapper">
</mapper>
@@ -12,4 +12,7 @@
a.id = #{fileId}
</select>
<insert id="saveDownloadTimes">
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)
</insert>
</mapper>
@@ -17,4 +17,8 @@ public interface IOSSFileService extends IService<OSSFile> {
* @param ossFile
*/
void updateAndPush(OSSFile ossFile);
void saveDownloadTimes(String fileId,String userId);
Integer searchDownloadTimes(String fileId, String userId);
}
@@ -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<OSSFileMapper, OSSFile> 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<OSSFileMapper, OSSFile> 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<FileDownloadRecord> wrapper = new QueryWrapper<>();
wrapper.eq("user_id",userId);
wrapper.eq("file_id",fileId);
return fileDownloadRecordMapper.selectCount(wrapper);
}
}
@@ -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<OSSFile> 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
@@ -494,6 +494,19 @@ public class SysUserController {
}
return result;
}
@RequestMapping(value = "/queryByIdStandards", method = RequestMethod.GET)
public Result<SysUser> queryByIdStandards(@RequestParam(name = "id", required = true) String id) {
Result<SysUser> result = new Result<SysUser>();
SysUser sysUser = sysUserService.getById(id);
if (sysUser == null) {
return result.error500("未找到对应实体");
} else {
sysUser.setPhone(PasswordUtil.decrypt(sysUser.getPhone()));
return Result.OK(sysUser);
}
}
@RequiresPermissions("sys:user:list")
@RequestMapping(value = "/queryUserRole", method = RequestMethod.GET)
public Result<List<String>> queryUserRole(@RequestParam(name = "userid", required = true) String userid) {