|
|
@@ -22,6 +22,7 @@ import org.jeecg.common.util.oConvertUtils;
|
|
|
import org.jeecg.modules.message.websocket.WebSocket;
|
|
|
import org.jeecg.modules.system.entity.SysAnnouncement;
|
|
|
import org.jeecg.modules.system.entity.SysAnnouncementSend;
|
|
|
+import org.jeecg.modules.system.entity.vo.SysAnnouncementVO;
|
|
|
import org.jeecg.modules.system.service.ISysAnnouncementSendService;
|
|
|
import org.jeecg.modules.system.service.ISysAnnouncementService;
|
|
|
import org.jeecg.modules.system.service.impl.SysBaseApiImpl;
|
|
|
@@ -45,10 +46,8 @@ import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.io.IOException;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.lang.reflect.Field;
|
|
|
+import java.util.*;
|
|
|
|
|
|
import static org.jeecg.common.constant.CommonConstant.ANNOUNCEMENT_SEND_STATUS_1;
|
|
|
|
|
|
@@ -115,6 +114,27 @@ public class SysAnnouncementController {
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ @RequestMapping(value = "/custom/list", method = RequestMethod.GET)
|
|
|
+ public Result<IPage<SysAnnouncement>> queryPageList_custom(SysAnnouncementVO sysAnnouncement,
|
|
|
+ @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
|
|
+ @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
|
|
+ HttpServletRequest req) {
|
|
|
+ Result<IPage<SysAnnouncement>> result = new Result<IPage<SysAnnouncement>>();
|
|
|
+ sysAnnouncement.setDelFlag(CommonConstant.DEL_FLAG_0.toString());
|
|
|
+ QueryWrapper<SysAnnouncement> queryWrapper = QueryGenerator.initQueryWrapper(sysAnnouncement, req.getParameterMap());
|
|
|
+ Page<SysAnnouncement> page = new Page<SysAnnouncement>(pageNo,pageSize);
|
|
|
+
|
|
|
+ // 查询字段
|
|
|
+ queryWrapper.select("(select GROUP_CONCAT(DISTINCT tu.realname) from sys_announcement_send ts LEFT JOIN sys_user tu on ts.user_id = tu.id where ts.annt_id = sys_announcement.id GROUP BY ts.annt_id) user_ids",
|
|
|
+ "sys_announcement.id","sys_announcement.titile","sys_announcement.msg_content","sys_announcement.start_time","sys_announcement.end_time","sys_announcement.sender","sys_announcement.priority","sys_announcement.msg_category","sys_announcement.msg_type","sys_announcement.send_status","sys_announcement.send_time","sys_announcement.cancel_time","sys_announcement.del_flag","sys_announcement.create_by","sys_announcement.create_time","sys_announcement.update_by","sys_announcement.update_time","sys_announcement.bus_type","sys_announcement.bus_id","sys_announcement.open_type","sys_announcement.open_page","sys_announcement.msg_abstract","sys_announcement.dt_task_id");
|
|
|
+ String sqlSelect = queryWrapper.getSqlSelect();
|
|
|
+
|
|
|
+ IPage<SysAnnouncement> pageList = sysAnnouncementService.page(page, queryWrapper);
|
|
|
+ result.setSuccess(true);
|
|
|
+ result.setResult(pageList);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 添加
|
|
|
* @param sysAnnouncement
|
|
|
@@ -393,12 +413,55 @@ public class SysAnnouncementController {
|
|
|
//导出文件名称
|
|
|
mv.addObject(NormalExcelConstants.FILE_NAME, "系统通告列表");
|
|
|
mv.addObject(NormalExcelConstants.CLASS, SysAnnouncement.class);
|
|
|
+ String fields = fields_exclude("userIds");
|
|
|
+ mv.addObject(NormalExcelConstants.EXPORT_FIELDS,fields);
|
|
|
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("系统通告列表数据", "导出人:"+user.getRealname(), "导出信息"));
|
|
|
mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
|
|
|
return mv;
|
|
|
}
|
|
|
|
|
|
+ @RequestMapping(value = "/custom/exportXls")
|
|
|
+ public ModelAndView exportXls_custom(SysAnnouncement sysAnnouncement,HttpServletRequest req) {
|
|
|
+ Result<IPage<SysAnnouncement>> result = new Result<IPage<SysAnnouncement>>();
|
|
|
+ sysAnnouncement.setDelFlag(CommonConstant.DEL_FLAG_0.toString());
|
|
|
+ QueryWrapper<SysAnnouncement> queryWrapper = QueryGenerator.initQueryWrapper(sysAnnouncement, req.getParameterMap());
|
|
|
+
|
|
|
+ // 查询字段
|
|
|
+ queryWrapper.select("(select GROUP_CONCAT(DISTINCT tu.realname) from sys_announcement_send ts LEFT JOIN sys_user tu on ts.user_id = tu.id where ts.annt_id = sys_announcement.id GROUP BY ts.annt_id) user_ids",
|
|
|
+ "sys_announcement.id","sys_announcement.titile","sys_announcement.msg_content","sys_announcement.start_time","sys_announcement.end_time","sys_announcement.sender","sys_announcement.priority","sys_announcement.msg_category","sys_announcement.msg_type","sys_announcement.send_status","sys_announcement.send_time","sys_announcement.cancel_time","sys_announcement.del_flag","sys_announcement.create_by","sys_announcement.create_time","sys_announcement.update_by","sys_announcement.update_time","sys_announcement.bus_type","sys_announcement.bus_id","sys_announcement.open_type","sys_announcement.open_page","sys_announcement.msg_abstract","sys_announcement.dt_task_id");
|
|
|
+ String sqlSelect = queryWrapper.getSqlSelect();
|
|
|
+
|
|
|
+ List<SysAnnouncement> pageList = sysAnnouncementService.list(queryWrapper);
|
|
|
+
|
|
|
+ //导出文件名称
|
|
|
+ JeecgEntityExcelView jeecgEntityExcelView = new JeecgEntityExcelView();
|
|
|
+
|
|
|
+ ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
|
|
|
+ mv.addObject(NormalExcelConstants.FILE_NAME, "系统通告列表");
|
|
|
+ mv.addObject(NormalExcelConstants.CLASS, SysAnnouncement.class);
|
|
|
+ LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
|
|
+ mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("系统通告列表数据", "导出人:"+user.getRealname(), "导出信息"));
|
|
|
+ mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
|
|
|
+ return mv;
|
|
|
+ }
|
|
|
+
|
|
|
+ private String fields_exclude(String... excFiled){
|
|
|
+ List<Field> excludeList = new ArrayList(Arrays.asList(excFiled));
|
|
|
+
|
|
|
+ List<String> exportFieldsList = new ArrayList<>();
|
|
|
+
|
|
|
+ Field[] fields = SysAnnouncement.class.getDeclaredFields();
|
|
|
+ List<Field> list = new ArrayList(Arrays.asList(fields));
|
|
|
+ for(Field field : list){
|
|
|
+ if(!excludeList.contains(field.getName())){
|
|
|
+ exportFieldsList.add(field.getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return exportFieldsList != null && exportFieldsList.size()>0 ? String.join(",", exportFieldsList) : "";
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 通过excel导入数据
|
|
|
*
|
|
|
@@ -506,4 +569,33 @@ public class SysAnnouncementController {
|
|
|
return modelAndView;
|
|
|
}
|
|
|
|
|
|
+ @GetMapping("/showAnnUser/{id}")
|
|
|
+ public ModelAndView showAnnUserContent(ModelAndView modelAndView, @PathVariable("id") String id, HttpServletRequest request) {
|
|
|
+ SysAnnouncement announcement = sysAnnouncementService.getById(id);
|
|
|
+
|
|
|
+ if (announcement != null) {
|
|
|
+ boolean tokenOK = false;
|
|
|
+ try {
|
|
|
+ // 验证Token有效性
|
|
|
+ tokenOK = TokenUtils.verifyToken(request, sysBaseApi, redisUtil);
|
|
|
+ } catch (Exception ignored) {
|
|
|
+ }
|
|
|
+ // 判断是否传递了Token,并且Token有效,如果传了就不做查看限制,直接返回
|
|
|
+ // 如果Token无效,就做查看限制:只能查看已发布的
|
|
|
+ if (tokenOK || ANNOUNCEMENT_SEND_STATUS_1.equals(announcement.getSendStatus())) {
|
|
|
+ String ann_id = announcement.getId();
|
|
|
+ List<Map<String, Object>> annUsers_list = sysAnnouncementSendService.listAnnUser(ann_id);
|
|
|
+
|
|
|
+ Map<String,Object> result = new HashMap<>();
|
|
|
+ result.put("ann",announcement);
|
|
|
+ result.put("sendUsers",annUsers_list);
|
|
|
+ modelAndView.addObject("data", result);
|
|
|
+ modelAndView.setViewName("announcement/showAnnUserContent");
|
|
|
+ return modelAndView;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ modelAndView.setStatus(HttpStatus.NOT_FOUND);
|
|
|
+ return modelAndView;
|
|
|
+ }
|
|
|
+
|
|
|
}
|