提交 da767ec9 authored 作者: zjm's avatar zjm

修改

上级 c129ad90
流水线 #4 已失败 于阶段
//package com.zjty.tynotes.job.basic.controller;
package com.zjty.tynotes.job.basic.controller;//package com.zjty.tynotes.job.basic.controller;
//
//import com.zjty.tynotes.job.basic.entity.database.Comment;
//import com.zjty.tynotes.job.basic.entity.response.JobResponse;
......
......@@ -12,7 +12,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import static org.springframework.http.ResponseEntity.ok;
......@@ -47,7 +46,7 @@ public class ScController {
return ok(new JobResponse(saveId));
}
@PutMapping()
@PutMapping("/upDate")
@ApiOperation(value = "考评信息修改.", notes = "修改必须在数据中附带id.")
public ResponseEntity<JobResponse> modify(@RequestBody ScoreCoefficient scoreCoefficient,
@RequestParam String userId) {
......@@ -56,12 +55,6 @@ public class ScController {
return ok(new JobResponse(saveId));
}
@GetMapping("/{workId}")
@ApiOperation(value = "考评信息.", notes = "修改必须在数据中附带id.")
public ResponseEntity<ScoreCoefficient> findSc(@PathVariable String workId) {
return ok(scoreCoefficientService.findById(workId));
}
}
......@@ -5,12 +5,11 @@ import com.zjty.tynotes.job.basic.entity.request.UpdateCrew;
import com.zjty.tynotes.job.basic.entity.request.WorkRo;
import com.zjty.tynotes.job.basic.entity.response.JobResponse;
import com.zjty.tynotes.job.basic.service.WorkService;
import com.zjty.tynotes.job.business.service.AlterTaskService;
import com.zjty.tynotes.job.business.service.NoteMessageService;
import com.zjty.tynotes.job.common.Action;
import com.zjty.tynotes.job.status.service.BusinessTreeManagement;
import com.zjty.tynotes.misc.config.AutoDocument;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -18,11 +17,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import static com.zjty.tynotes.job.common.Action.PUBLISH_WORK;
import static java.util.Objects.nonNull;
import static org.springframework.http.ResponseEntity.ok;
/**
......@@ -37,23 +32,13 @@ import static org.springframework.http.ResponseEntity.ok;
@Slf4j
public class WorkController {
private final
@Autowired
WorkService workService;
private final
NoteMessageService noteMessageService;
@Autowired
private AlterTaskService alterTaskService;
@Autowired
private BusinessTreeManagement businessTreeManagement;
@Autowired
public WorkController(WorkService workService,NoteMessageService noteMessageService) {
this.workService = workService;
this.noteMessageService = noteMessageService;
}
......@@ -66,7 +51,7 @@ public class WorkController {
}
@PostMapping(value = "/")
@PostMapping(value = "/save")
@ApiOperation(value = "新增工作.", notes = "新增不可在数据中附带id.成功时返回新增数据保存的id.")
public ResponseEntity<JobResponse> add(@RequestBody WorkRo workRo) {
String userId = workRo.getUserId();
......@@ -75,19 +60,21 @@ public class WorkController {
String workId = workService.add(work);
if (work.getStatus().equals("ongoing")) {
businessTreeManagement.saveAction(userId, workId, Action.PUBLISH_WORK, new Date(), remarks);
}else {
businessTreeManagement.saveAction(userId,workId,Action.SAVE_WORK,new Date(),remarks);
}
return ok(new JobResponse(workId));
}
@PutMapping(value = "/")
@ApiOperation(value = "更新工作.", notes = "修改必须在数据中附带id.")
@ApiOperation(value = "把任务从未发布到进行中.", notes = "修改必须在数据中附带id.")
public ResponseEntity<JobResponse> modify(@RequestBody WorkRo workRo) {
String userId = workRo.getUserId();
String remarks = workRo.getRemarks();
Work newWork = workRo.getWork();
Work oldWork = workService.findById(newWork.getId());
String workId = workService.modify(newWork);
//noteMessageService.saveNoteMessage(userId, workId, newWork, oldWork, remarks);
businessTreeManagement.saveAction(userId,workId,Action.SAVE_PUBLISH_WORK,new Date(),remarks);
return ok(new JobResponse(workId));
}
......
......@@ -2,7 +2,6 @@ package com.zjty.tynotes.job.basic.entity.response;
import com.zjty.tynotes.job.basic.entity.database.Attachment;
import com.zjty.tynotes.misc.config.AutoDocument;
import com.zjty.tynotes.job.basic.entity.database.Comment;
import com.zjty.tynotes.pas.entity.User;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......
......@@ -2,12 +2,8 @@ package com.zjty.tynotes.job.basic.repository;
import com.zjty.tynotes.job.basic.entity.database.Work;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.mongodb.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.Date;
import java.util.List;
/**
* <p>Description : note
* <p>Date : 2019/4/23 9:45
......
//package com.zjty.tynotes.job.basic.service;
package com.zjty.tynotes.job.basic.service;//package com.zjty.tynotes.job.basic.service;
//
//import com.zjty.tynotes.job.basic.entity.database.Comment;
//import com.zjty.tynotes.job.basic.service.impl.CommentServiceImpl;
......
//package com.zjty.tynotes.job.basic.service;
package com.zjty.tynotes.job.basic.service;//package com.zjty.tynotes.job.basic.service;
//
//import com.zjty.tynotes.job.basic.entity.database.Work;
//import com.zjty.tynotes.job.basic.entity.response.WorkVo;
......
......@@ -92,7 +92,7 @@ public interface WorkService {
* @param personalWorkload 是否记录个人工作量 默认记录1 0 为不记录
* @param workloadCount 是否记录任务总工作量
*/
void deleteWork(String taskId, int personalWorkload,int workloadCount);
void deleteWork(String taskId, int personalWorkload, int workloadCount);
/**
* 修改任务 组员
......@@ -100,7 +100,7 @@ public interface WorkService {
*
* @param crews 组员名单
*/
void updateWorkCrew(String taskId,List<String> crews);
void updateWorkCrew(String taskId, List<String> crews);
/**
* 修改任务 组员
......@@ -109,7 +109,7 @@ public interface WorkService {
* @param workload 工作量
* @param workCoefficient 考评系数 只能修改0.1-0.2
*/
void updateWorkload(String taskId,int workload,int workCoefficient);
void updateWorkload(String taskId, int workload, int workCoefficient);
// /**
// * 查看正在进行中的任务
......
//package com.zjty.tynotes.job.basic.service.impl;
package com.zjty.tynotes.job.basic.service.impl;//package com.zjty.tynotes.job.basic.service.impl;
//
//import com.google.common.collect.Lists;
//import com.zjty.tynotes.job.basic.entity.database.Comment;
......
......@@ -2,7 +2,6 @@ package com.zjty.tynotes.job.basic.service.impl;
import com.zjty.tynotes.job.basic.entity.database.ScoreCoefficient;
import com.zjty.tynotes.job.basic.repository.ScoreCoefficientRepository;
import com.zjty.tynotes.job.basic.repository.WorkRepository;
import com.zjty.tynotes.job.basic.service.ScoreCoefficientService;
import com.zjty.tynotes.job.common.exception.BadRequestException;
import lombok.extern.slf4j.Slf4j;
......
//package com.zjty.tynotes.job.basic.service.impl;
package com.zjty.tynotes.job.basic.service.impl;//package com.zjty.tynotes.job.basic.service.impl;
//
//import com.zjty.tynotes.job.basic.entity.database.Attachment;
//import com.zjty.tynotes.job.basic.entity.database.Comment;
......
......@@ -10,9 +10,6 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneOffset;
import java.util.Date;
import java.util.List;
import java.util.Optional;
......
......@@ -53,4 +53,14 @@ public interface Action {
* 考评任务
*/
int APPRAISAL_WORD=9;
/**
* 发布者保存任务
*/
int SAVE_WORK=10;
/**
* 任务重未发布到进行中
*/
int SAVE_PUBLISH_WORK=11;
}
package com.zjty.tynotes.job.common;
import org.springframework.beans.factory.annotation.Value;
/**
* 公用类
*
......
......@@ -8,7 +8,6 @@ import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
......
package com.zjty.tynotes.job.status.controller;
import com.zjty.tynotes.job.status.entity.BouncedMessage;
import com.zjty.tynotes.job.status.entity.EsListSum;
import com.zjty.tynotes.job.status.service.EventService;
import com.zjty.tynotes.job.status.service.PrivateService;
import com.zjty.tynotes.job.status.service.WorkShowSeeService;
import com.zjty.tynotes.job.status.service.WorkShowService;
import com.zjty.tynotes.misc.config.AutoDocument;
......@@ -203,7 +200,7 @@ public class Read1Controller {
public ResponseEntity loginFirstOneManualPush(@RequestParam(value = "id") String id
){
workShowSeeService.loginFirstOneManualPush(id);
workShowService.loginFirstOneManualPush(id);
return ResponseEntity.ok().build();
}
......
......@@ -3,7 +3,6 @@ package com.zjty.tynotes.job.status.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import java.util.List;
/**
......
package com.zjty.tynotes.job.status.entity;
import com.zjty.tynotes.misc.config.AutoDocument;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@AutoDocument
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "人员管理页面人员列表")
public class Personnel {
private String id;
private String name;
private int count;
}
......@@ -7,6 +7,8 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@AutoDocument
@Data
@AllArgsConstructor
......@@ -20,6 +22,12 @@ public class RedisPersonalWork {
@ApiModelProperty(value = "任务id",name = "workId",example = "3y8735217537c")
private String workId;
/**
* 时间 秒
*/
@ApiModelProperty(value = "时间",name = "time",example = "7878979686L")
private Long time;
/**
*任务标题
*/
......@@ -64,4 +72,10 @@ public class RedisPersonalWork {
*/
@ApiModelProperty(value = "上级任务id",name = "superiorId",example = "root留言")
private String superiorId;
/**
* 子任务id集合
*/
@ApiModelProperty(value = "上级任务id",name = "superiorId",example = "root留言")
private List<String> subtaskIds;
}
package com.zjty.tynotes.job.status.service;
import com.zjty.tynotes.job.status.entity.Personnel;
import java.util.List;
/**
* 接其他模块使用的service
*/
public interface InternalService {
/**
* 根据id集合返任务数量
* @param list
* @return
*/
List<Personnel> personnels(List<String> list);
}
......@@ -52,10 +52,5 @@ public interface WorkShowSeeService {
*/
EsListSum titleSelect(String id, int page, int size, String title);
/**
* 人员登入 第一次的数据 接口触发
* @param id 人员id
*/
void loginFirstOneManualPush(String id);
}
......@@ -10,10 +10,19 @@ public interface WorkShowService {
*/
void saveTakePushWork(String executorId, String latestNews, List<String> userIds, Work work);
/**
* 新增分解任务
*/
void saveTakePushWork1(String executorId, String latestNews, List<String> userIds, Work work);
void saveWork(String executorId, String latestNews, Work work);
void unpublishedToOngoing(String executorId, String latestNews, List<String> userIds, Work work);
/**
* 修改任务 操作人 最近一次操作 看到人员id
*/
void updateWorkStatus(String executorId,String latestNews,List<String> userIds,String status,String workId);
void updateWorkStatus(String executorId, String latestNews, List<String> userIds, String status, String workId);
/**
* 修改任务 常用
......@@ -22,7 +31,7 @@ public interface WorkShowService {
* @param userIds 所有人员集合
* @param workId 任务id
*/
void upDateWork(String executorId,String latestNews,List<String> userIds,String workId);
void upDateWork(String executorId, String latestNews, List<String> userIds, String workId);
/**
* 查看事件的时候
......@@ -31,4 +40,10 @@ public interface WorkShowService {
* @param readState 是否阅读过 判读是否阅读过 否修改 阅读状态
*/
void readsStatus(String id, String eventId, int readState);
/**
* 人员登入 第一次的数据 接口触发
* @param id 人员id
*/
void loginFirstOneManualPush(String id);
}
......@@ -8,16 +8,15 @@ import com.zjty.tynotes.job.status.entity.ActionHistory;
import com.zjty.tynotes.job.status.entity.NoteResource;
import com.zjty.tynotes.job.status.repository.ActionHistoryRepository;
import com.zjty.tynotes.job.status.service.BusinessTreeManagement;
import com.zjty.tynotes.job.status.service.EventService;
import com.zjty.tynotes.job.status.service.WorkShowService;
import com.zjty.tynotes.pas.service.IUserService;
import com.zjty.tynotes.pas.service.impl.UserServiceImpl;
import com.zjty.tynotes.search.subject.service.EsUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.annotation.Id;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author LJJ cnljj1995@gmail.com
......@@ -31,7 +30,7 @@ public class BusinessTreeManagementImpl implements BusinessTreeManagement {
private WorkService workService;
@Autowired
private EventService eventService;
private WorkShowService workShowService;
@Autowired
private IUserService iUserService;
......@@ -55,7 +54,7 @@ public class BusinessTreeManagementImpl implements BusinessTreeManagement {
Work work = workService.findById(noteResource.getTaskId());
String status = work.getStatus();
String name = iUserService.findUserById(noteResource.getId()).getName();
String name = iUserService.findUserById(noteResource.getId()).getUsername();
......@@ -65,8 +64,24 @@ public class BusinessTreeManagementImpl implements BusinessTreeManagement {
actionHistory.setMsg(msg);
actionHistory.setTaskId(noteResource.getTaskId());
//添加任务的发布者上级id集合
List <String> ids=new ArrayList<>();
//调用接口获得发布者所有上级id
List <String> ids1=new ArrayList<>();
//除了操作人 其他人员的所有id集合
if (!noteResource.getId().equals(work.getExecutor())){
ids1.add(work.getExecutor());
}
if (!noteResource.getId().equals(work.getPublisher())){
ids1.add(work.getPublisher());
}
for (String id:ids){
if (!id.equals(noteResource.getId())){
ids1.add(id);
}
}
int UPDATE_WORKLOAD=8;
// * 1 -> 发布者发布任务
// * 2 -> 执行者提交任务
......@@ -78,16 +93,28 @@ public class BusinessTreeManagementImpl implements BusinessTreeManagement {
// * 8 -> 修改 工作量 以及考评系数
switch (noteResource.getAction()) {
case 1:
if (work.getSuperiorId()==null) {
actionHistory.setActionMsg(name + "新建了任务");
actionHistoryRepository.save(actionHistory);
log.info("[TREE] {}新建任务,执行人id是{}", name, work.getPublisher());
workShowService.saveTakePushWork(work.getPublisher(), actionHistory.getActionMsg(), ids, work);
log.info("[TREE] {}新建任务", name);
}else {
actionHistory.setActionMsg(name + "新建了分解任务");
actionHistoryRepository.save(actionHistory);
workShowService.saveTakePushWork1(work.getPublisher(), actionHistory.getActionMsg(), ids, work);
log.info("[TREE] {}新建分解任务,执行人id是{}", name);
}
break;
case 2:
actionHistory.setActionMsg(name + "提交了任务");
actionHistoryRepository.save(actionHistory);
workShowService.updateWorkStatus(noteResource.getId(),
actionHistory.getActionMsg(),
ids1,
status,
work.getId());
log.info("[TREE] {}提交了任务", name);
break;
......@@ -95,6 +122,11 @@ public class BusinessTreeManagementImpl implements BusinessTreeManagement {
actionHistory.setActionMsg(name + "撤回了任务");
actionHistoryRepository.save(actionHistory);
workShowService.updateWorkStatus(noteResource.getId(),
actionHistory.getActionMsg(),
ids1,
status,
work.getId());
log.info("[TREE] {}退回了任务", name);
break;
......@@ -102,14 +134,24 @@ public class BusinessTreeManagementImpl implements BusinessTreeManagement {
actionHistory.setActionMsg(name + "审核任务不通过");
actionHistoryRepository.save(actionHistory);
log.info("[TREE] {}完结了任务", name);
workShowService.updateWorkStatus(noteResource.getId(),
actionHistory.getActionMsg(),
ids1,
status,
work.getId());
log.info("[TREE] {}审核任务不通过", name);
break;
case 5:
actionHistory.setActionMsg(name + "审核任务通过");
actionHistoryRepository.save(actionHistory);
log.info("[TREE] {}修改了审核人", name);
workShowService.updateWorkStatus(noteResource.getId(),
actionHistory.getActionMsg(),
ids1,
status,
work.getId());
log.info("[TREE] {}审核任务通过", name);
break;
case 6:
......@@ -117,18 +159,31 @@ public class BusinessTreeManagementImpl implements BusinessTreeManagement {
actionHistory.setActionMsg(name + "删除任务");
actionHistoryRepository.save(actionHistory);
log.info("[TREE] {}修改了关注者", name);
workShowService.updateWorkStatus(noteResource.getId(),
actionHistory.getActionMsg(),
ids1,
status,
work.getId());
log.info("[TREE] {}删除任务", name);
break;
case 7:
actionHistory.setActionMsg(name + "修改了任务的组员");
actionHistoryRepository.save(actionHistory);
log.info("[TREE] {}对任务留言了", name);
workShowService.upDateWork(noteResource.getId(),
actionHistory.getActionMsg(),
ids1,
noteResource.getTaskId());
log.info("[TREE] {}修改了任务的组员", name);
break;
case 8:
actionHistory.setActionMsg(name + "修改了任务的工作量和考评系数");
actionHistoryRepository.save(actionHistory);
log.info("[TREE] {}对任务留言了", name);
workShowService.upDateWork(noteResource.getId(),
actionHistory.getActionMsg(),
ids1,
noteResource.getTaskId());
log.info("[TREE] {}修改了任务的工作量和考评系数", name);
break;
case 9:
......@@ -143,9 +198,23 @@ public class BusinessTreeManagementImpl implements BusinessTreeManagement {
}
actionHistory.setActionMsg(actionMsg);
actionHistoryRepository.save(actionHistory);
workShowService.upDateWork(noteResource.getId(),actionMsg,ids1,noteResource.getTaskId());
log.info("[TREE] {}对任务评价了", name);
break;
case 10:
//保存任务
actionHistory.setActionMsg(name + "保存了任务");
actionHistoryRepository.save(actionHistory);
workShowService.saveWork(work.getPublisher(),actionHistory.getActionMsg(),work);
log.info("[TREE] {}保存任务", name);
break;
case 11:
actionHistory.setActionMsg(name + "修改任务从未发布到进行中");
actionHistoryRepository.save(actionHistory);
workShowService.unpublishedToOngoing(work.getPublisher(), actionHistory.getActionMsg(), ids, work);
log.info("[TREE] {}修改任务从未发布到进行中", name);
break;
default:
log.warn("[es] 状态处理模块传入参数有误");
break;
......
package com.zjty.tynotes.job.status.service.impl;
public class InternalServiceImpl {
import com.zjty.tynotes.job.common.Constants;
import com.zjty.tynotes.job.common.exception.WorkAttribution;
import com.zjty.tynotes.job.status.entity.Personnel;
import com.zjty.tynotes.job.status.entity.RedisPersonalWork;
import com.zjty.tynotes.job.status.service.InternalService;
import com.zjty.tynotes.pas.service.IUserService;
import com.zjty.tynotes.search.subject.service.EsUtil;
import com.zjty.tynotes.sms.service.MessageTemplateService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class InternalServiceImpl implements InternalService {
@Autowired
private RedisTemplate<String,Object> redisTemplate;
@Autowired
IUserService iUserService;
@Override
public List<Personnel> personnels(List<String> list) {
List<Personnel> personnels=new ArrayList<>();
for (String id:list) {
List<Object> lists = redisTemplate.opsForList().range(Constants.REDIS_EVENT + id, 0, -1);
int count=0;
for (Object object:lists){
RedisPersonalWork redisPersonalWork=(RedisPersonalWork)object;
if (redisPersonalWork.getWorkAttribution()==WorkAttribution.ME_WORK){
count++;
}
}
personnels.add(new Personnel(id,iUserService.findUserById(id).getUsername(),count));
}
return personnels;
}
}
package com.zjty.tynotes.job.status.service.impl;
import com.fasterxml.jackson.core.type.TypeReference;
import com.zjty.tynotes.job.common.Constants;
import com.zjty.tynotes.job.status.entity.EsListSum;
import com.zjty.tynotes.job.status.entity.EventTitle;
import com.zjty.tynotes.job.status.entity.RedisPersonalWork;
import com.zjty.tynotes.job.status.entity.RoleSum;
import com.zjty.tynotes.job.status.service.WorkShowSeeService;
import com.zjty.tynotes.job.status.utils.JacksonUtil;
import com.zjty.tynotes.search.subject.entity.CollectionRs;
import com.zjty.tynotes.search.subject.entity.EsSearchArg;
import com.zjty.tynotes.search.subject.entity.EsSource;
import com.zjty.tynotes.search.subject.service.EsUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import javax.naming.ldap.Rdn;
import java.util.*;
@Service
@Slf4j
public class WorkShowSeeServiceImpl implements WorkShowSeeService {
@Autowired
EsUtil esUtil;
@Autowired
RedisTemplate<String,Object> redisTemplate;
@Override
public EsListSum selectMeWork(String id, int page, int size) {
return null;
List<Object> objectList=redisTemplate.opsForList().range(Constants.REDIS_EVENT+id,0,-1);
CollectionRs collection=esUtil.getMeTask(id,new EsSearchArg.Builder().page(page).size(size).build());
assert objectList != null;
List<RedisPersonalWork> list=redisToEs(objectList,collection.getSource());
list.sort(Comparator.comparing(RedisPersonalWork::getTime).reversed());
return new EsListSum(collection.getTotal(),list);
}
@Override
public EsListSum selectMeReceiveWork(String id, int page, int size) {
return null;
List<Object> objectList=redisTemplate.opsForList().range(Constants.REDIS_EVENT+id,0,-1);
//分解任务中的子任务
List<String> list=new ArrayList<>();
//没有子任务的分解任务
List<String> list1=new ArrayList<>();
List<RedisPersonalWork> redisPersonalWorks=new ArrayList<>();
for (Object object:objectList){
RedisPersonalWork redisPersonalWork=(RedisPersonalWork) object;
if (redisPersonalWork.getSubtaskIds()!=null){
list.addAll(redisPersonalWork.getSubtaskIds());
}else {
list1.add(redisPersonalWork.getWorkId());
}
}
list1.removeAll(list);
for (Object object:objectList){
RedisPersonalWork redisPersonalWork=(RedisPersonalWork) object;
for (String ids:list1){
if (redisPersonalWork.getWorkId().equals(ids)){
redisPersonalWorks.add(redisPersonalWork);
}
}
}
return new EsListSum((long) redisPersonalWorks.size(),redisPersonalWorks);
}
@Override
public EsListSum selectMeResolveWork(String id, int page, int size) {
return null;
List<Object> objectList=redisTemplate.opsForList().range(Constants.REDIS_EVENT+id,0,-1);
CollectionRs collection=esUtil.getMeResolveTask(id,new EsSearchArg.Builder().page(page).size(size).build());
assert objectList != null;
List<RedisPersonalWork> list=redisToEs(objectList,collection.getSource());
list.sort(Comparator.comparing(RedisPersonalWork::getTime).reversed());
return new EsListSum(collection.getTotal(),list);
}
@Override
public EsListSum selectMeReleaseWork(String id, int page, int size) {
return null;
List<Object> objectList=redisTemplate.opsForList().range(Constants.REDIS_EVENT+id,0,-1);
CollectionRs collection=esUtil.getMeReleaseTask(id,new EsSearchArg.Builder().page(page).size(size).build());
assert objectList != null;
List<RedisPersonalWork> list=redisToEs(objectList,collection.getSource());
list.sort(Comparator.comparing(RedisPersonalWork::getTime).reversed());
return new EsListSum(collection.getTotal(),list);
}
@Override
public EsListSum titleSelect(String id, int page, int size, String title) {
return null;
CollectionRs collection=esUtil.getTaskByTitle(id,title,page,size);
String s = JacksonUtil.toJSon(collection.getSource());
List<RedisPersonalWork> eventTitles = JacksonUtil.readValue(s, new TypeReference<List<RedisPersonalWork>>() {
});
assert eventTitles != null;
eventTitles.sort(Comparator.comparing(RedisPersonalWork::getTime).reversed());
return new EsListSum(collection.getTotal(),eventTitles);
}
@Override
public void loginFirstOneManualPush(String id) {
private List<RedisPersonalWork> redisToEs(List<Object> objectList, List<Map<String,Object>> esList){
List<RedisPersonalWork> eventTitles=new ArrayList<>();
for (Object obj:objectList){
RedisPersonalWork eventTitle=(RedisPersonalWork)obj;
for (Map<String,Object> map:esList){
if (eventTitle.getWorkId().equals(map.get("workId"))){
eventTitles.add(eventTitle);
}
}
}
return eventTitles;
}
}
......@@ -16,10 +16,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.concurrent.CompletableFuture;
@Slf4j
@Service
public class WorkShowServiceImpl implements WorkShowService {
......@@ -34,11 +33,13 @@ public class WorkShowServiceImpl implements WorkShowService {
@Autowired
IUserService iUserService;
//加一个时间
@Override
public void saveTakePushWork(String executorId, String latestNews, List<String> userIds, Work work) {
String releaseName= iUserService.findUserById(work.getPublisher()).getName();
String executorName= iUserService.findUserById(work.getExecutor()).getName();
RedisPersonalWork personalWork=new RedisPersonalWork(work.getId(),work.getTitle(),work.getStatus(),releaseName,executorName,1,WorkAttribution.ME_WORK,latestNews,work.getSuperiorId());
Long time=new Date().getTime();
String releaseName= iUserService.findUserById(work.getPublisher()).getUsername();
String executorName= iUserService.findUserById(work.getExecutor()).getUsername();
RedisPersonalWork personalWork=new RedisPersonalWork(work.getId(),time,work.getTitle(),work.getStatus(),releaseName,executorName,1,WorkAttribution.ME_WORK,latestNews,work.getSuperiorId(),new ArrayList<>());
//发布人
if (work.getSuperiorId()==null){
personalWork.setWorkAttribution(WorkAttribution.ME_RELEASE_WORK);
......@@ -63,8 +64,76 @@ public class WorkShowServiceImpl implements WorkShowService {
log.info("{}这里发送{}",work.getPublisher(), JacksonUtil.toJSon(statisticalRoleCount(list)));
}
//执行人 判断执行人是否有分解权限
boolean flag=true;
if (flag){
personalWork.setWorkAttribution(WorkAttribution.ME_RECEIVE_WORK);
personalWork.setReadState(1);
redisTemplate.opsForList().leftPush(Constants.REDIS_EVENT+work.getExecutor(),personalWork);
asynchronousAddEs(Constants.REDIS_EVENT+work.getExecutor(),personalWork);
List<Object> list=redisTemplate.opsForList().range(Constants.REDIS_EVENT+work.getExecutor(),0,-1);
assert list != null;
pushData(work.getExecutor(),JacksonUtil.toJSon(statisticalRoleCount(list)));
log.info("{}这里发送{}",work.getExecutor(), JacksonUtil.toJSon(statisticalRoleCount(list)));
}else {
personalWork.setWorkAttribution(WorkAttribution.ME_WORK);
personalWork.setReadState(1);
redisTemplate.opsForList().leftPush(Constants.REDIS_EVENT+work.getExecutor(),personalWork);
asynchronousAddEs(Constants.REDIS_EVENT+work.getExecutor(),personalWork);
List<Object> list=redisTemplate.opsForList().range(Constants.REDIS_EVENT+work.getExecutor(),0,-1);
assert list != null;
pushData(work.getExecutor(),JacksonUtil.toJSon(statisticalRoleCount(list)));
log.info("{}这里发送{}",work.getExecutor(), JacksonUtil.toJSon(statisticalRoleCount(list)));
}
//有待修改
for (String id:userIds){
personalWork.setWorkAttribution(WorkAttribution.ME_RELEASE_WORK);
personalWork.setReadState(1);
redisTemplate.opsForList().leftPush(Constants.REDIS_EVENT+id,personalWork);
asynchronousAddEs(Constants.REDIS_EVENT+id,personalWork);
List<Object> list=redisTemplate.opsForList().range(Constants.REDIS_EVENT+id,0,-1);
assert list != null;
pushData(id,JacksonUtil.toJSon(statisticalRoleCount(list)));
log.info("{}这里发送{}",id, JacksonUtil.toJSon(statisticalRoleCount(list)));
}
}
@Override
public void saveTakePushWork1(String executorId, String latestNews, List<String> userIds, Work work) {
Long time=new Date().getTime();
String releaseName= iUserService.findUserById(work.getPublisher()).getUsername();
String executorName= iUserService.findUserById(work.getExecutor()).getUsername();
RedisPersonalWork personalWork=new RedisPersonalWork(work.getId(),time,work.getTitle(),work.getStatus(),releaseName,executorName,1,WorkAttribution.ME_WORK,latestNews,work.getSuperiorId(),new ArrayList<>());
//发布人
if (work.getSuperiorId()==null){
personalWork.setWorkAttribution(WorkAttribution.ME_RELEASE_WORK);
personalWork.setReadState(0);
redisTemplate.opsForList().leftPush(Constants.REDIS_EVENT+work.getPublisher(),personalWork);
asynchronousAddEs(Constants.REDIS_EVENT+work.getPublisher(),personalWork);
List<Object> list=redisTemplate.opsForList().range(Constants.REDIS_EVENT+work.getPublisher(),0,-1);
assert list != null;
pushData(work.getPublisher(),JacksonUtil.toJSon(statisticalRoleCount(list)));
subWork(list,work,work.getPublisher());
log.info("{}这里发送{}",work.getPublisher(), JacksonUtil.toJSon(statisticalRoleCount(list)));
if (){
}else {
personalWork.setWorkAttribution(WorkAttribution.ME_RESOLVE_WORK);
personalWork.setReadState(0);
redisTemplate.opsForList().leftPush(Constants.REDIS_EVENT+work.getPublisher(),personalWork);
asynchronousAddEs(Constants.REDIS_EVENT+work.getPublisher(),personalWork);
List<Object> list=redisTemplate.opsForList().range(Constants.REDIS_EVENT+work.getPublisher(),0,-1);
assert list != null;
pushData(work.getPublisher(),JacksonUtil.toJSon(statisticalRoleCount(list)));
subWork(list,work,work.getPublisher());
log.info("{}这里发送{}",work.getPublisher(), JacksonUtil.toJSon(statisticalRoleCount(list)));
}
//执行人 判断执行人是否有分解权限
boolean flag=true;
if (flag){
personalWork.setWorkAttribution(WorkAttribution.ME_RECEIVE_WORK);
personalWork.setReadState(1);
redisTemplate.opsForList().leftPush(Constants.REDIS_EVENT+work.getExecutor(),personalWork);
......@@ -73,6 +142,7 @@ public class WorkShowServiceImpl implements WorkShowService {
List<Object> list=redisTemplate.opsForList().range(Constants.REDIS_EVENT+work.getExecutor(),0,-1);
assert list != null;
pushData(work.getExecutor(),JacksonUtil.toJSon(statisticalRoleCount(list)));
subWork(list,work,work.getExecutor());
log.info("{}这里发送{}",work.getExecutor(), JacksonUtil.toJSon(statisticalRoleCount(list)));
}else {
personalWork.setWorkAttribution(WorkAttribution.ME_WORK);
......@@ -83,18 +153,115 @@ public class WorkShowServiceImpl implements WorkShowService {
List<Object> list=redisTemplate.opsForList().range(Constants.REDIS_EVENT+work.getExecutor(),0,-1);
assert list != null;
pushData(work.getExecutor(),JacksonUtil.toJSon(statisticalRoleCount(list)));
subWork(list,work,work.getExecutor());
log.info("{}这里发送{}",work.getExecutor(), JacksonUtil.toJSon(statisticalRoleCount(list)));
}
//有待修改
for (String id:userIds){
personalWork.setWorkAttribution(WorkAttribution.ME_RELEASE_WORK);
personalWork.setReadState(1);
redisTemplate.opsForList().leftPush(Constants.REDIS_EVENT+id,personalWork);
asynchronousAddEs(Constants.REDIS_EVENT+id,personalWork);
List<Object> list=redisTemplate.opsForList().range(Constants.REDIS_EVENT+id,0,-1);
assert list != null;
pushData(id,JacksonUtil.toJSon(statisticalRoleCount(list)));
subWork(list,work,id);
log.info("{}这里发送{}",id, JacksonUtil.toJSon(statisticalRoleCount(list)));
}
}
@Override
public void saveWork(String executorId, String latestNews, Work work) {
Long time=new Date().getTime();
String releaseName= iUserService.findUserById(work.getPublisher()).getUsername();
String executorName= iUserService.findUserById(work.getExecutor()).getUsername();
RedisPersonalWork personalWork=new RedisPersonalWork(work.getId(),time,work.getTitle(),work.getStatus(),releaseName,executorName,1,WorkAttribution.ME_WORK,latestNews,work.getSuperiorId(),new ArrayList<>());
//发布人
if (work.getSuperiorId()==null){
personalWork.setWorkAttribution(WorkAttribution.ME_RELEASE_WORK);
personalWork.setReadState(0);
redisTemplate.opsForList().leftPush(Constants.REDIS_EVENT+work.getPublisher(),personalWork);
asynchronousAddEs(Constants.REDIS_EVENT+work.getPublisher(),personalWork);
List<Object> list=redisTemplate.opsForList().range(Constants.REDIS_EVENT+work.getPublisher(),0,-1);
assert list != null;
pushData(work.getPublisher(),JacksonUtil.toJSon(statisticalRoleCount(list)));
log.info("{}这里发送{}",work.getPublisher(), JacksonUtil.toJSon(statisticalRoleCount(list)));
}else {
personalWork.setWorkAttribution(WorkAttribution.ME_RESOLVE_WORK);
personalWork.setReadState(0);
redisTemplate.opsForList().leftPush(Constants.REDIS_EVENT+work.getPublisher(),personalWork);
asynchronousAddEs(Constants.REDIS_EVENT+work.getPublisher(),personalWork);
List<Object> list=redisTemplate.opsForList().range(Constants.REDIS_EVENT+work.getPublisher(),0,-1);
assert list != null;
pushData(work.getPublisher(),JacksonUtil.toJSon(statisticalRoleCount(list)));
subWork(list,work,work.getPublisher());
log.info("{}这里发送{}",work.getPublisher(), JacksonUtil.toJSon(statisticalRoleCount(list)));
}
}
@Override
public void unpublishedToOngoing(String executorId, String latestNews, List<String> userIds, Work work) {
Long time=new Date().getTime();
String releaseName= iUserService.findUserById(work.getPublisher()).getUsername();
String executorName= iUserService.findUserById(work.getExecutor()).getUsername();
RedisPersonalWork personalWork=new RedisPersonalWork(work.getId(),time,work.getTitle(),work.getStatus(),releaseName,executorName,1,WorkAttribution.ME_WORK,latestNews,work.getSuperiorId(),new ArrayList<>());
//发布人
List<Object> objects = redisTemplate.opsForList().range(Constants.REDIS_EVENT + work.getPublisher(), 0, -1);
for (Object object:objects){
RedisPersonalWork redisPersonalWork=(RedisPersonalWork) object;
if (work.getId().equals(redisPersonalWork.getWorkId())){
redisTemplate.opsForList().remove(Constants.REDIS_EVENT+work.getPublisher(),1,redisPersonalWork);
redisPersonalWork.setStatus(work.getStatus());
redisPersonalWork.setTime(time);
redisPersonalWork.setLatestNews(latestNews);
redisTemplate.opsForList().leftPush(Constants.REDIS_EVENT+work.getPublisher(),redisPersonalWork);
asynchronousAddEs(Constants.REDIS_EVENT+work.getPublisher(),personalWork);
}
}
pushData(work.getPublisher(),JacksonUtil.toJSon(statisticalRoleCount(objects)));
subWork(objects,work,work.getPublisher());
log.info("{}这里发送{}",work.getPublisher(), JacksonUtil.toJSon(statisticalRoleCount(objects)));
boolean flag=true;
if (flag){
personalWork.setWorkAttribution(WorkAttribution.ME_RECEIVE_WORK);
personalWork.setReadState(1);
redisTemplate.opsForList().leftPush(Constants.REDIS_EVENT+work.getExecutor(),personalWork);
asynchronousAddEs(Constants.REDIS_EVENT+work.getExecutor(),personalWork);
List<Object> list=redisTemplate.opsForList().range(Constants.REDIS_EVENT+work.getExecutor(),0,-1);
assert list != null;
pushData(work.getExecutor(),JacksonUtil.toJSon(statisticalRoleCount(list)));
subWork(list,work,work.getExecutor());
log.info("{}这里发送{}",work.getExecutor(), JacksonUtil.toJSon(statisticalRoleCount(list)));
}else {
personalWork.setWorkAttribution(WorkAttribution.ME_WORK);
personalWork.setReadState(1);
redisTemplate.opsForList().leftPush(Constants.REDIS_EVENT+work.getExecutor(),personalWork);
asynchronousAddEs(Constants.REDIS_EVENT+work.getExecutor(),personalWork);
List<Object> list=redisTemplate.opsForList().range(Constants.REDIS_EVENT+work.getExecutor(),0,-1);
assert list != null;
pushData(work.getExecutor(),JacksonUtil.toJSon(statisticalRoleCount(list)));
subWork(list,work,work.getExecutor());
log.info("{}这里发送{}",work.getExecutor(), JacksonUtil.toJSon(statisticalRoleCount(list)));
}
//有待修改
for (String id:userIds){
personalWork.setWorkAttribution(WorkAttribution.ME_RELEASE_WORK);
personalWork.setReadState(1);
redisTemplate.opsForList().leftPush(Constants.REDIS_EVENT+id,personalWork);
asynchronousAddEs(Constants.REDIS_EVENT+id,personalWork);
List<Object> list=redisTemplate.opsForList().range(Constants.REDIS_EVENT+id,0,-1);
assert list != null;
pushData(id,JacksonUtil.toJSon(statisticalRoleCount(list)));
subWork(list,work,id);
log.info("{}这里发送{}",id, JacksonUtil.toJSon(statisticalRoleCount(list)));
}
}
......@@ -148,6 +315,22 @@ public class WorkShowServiceImpl implements WorkShowService {
pushData(uId,JacksonUtil.toJSon(statisticalRoleCount(list)));
}
private void subWork(List<Object> list,Work work,String userId){
for (Object object:list){
RedisPersonalWork personalWork=(RedisPersonalWork)object;
if (personalWork.getWorkId().equals(work.getSuperiorId())){
redisTemplate.opsForList().remove(Constants.REDIS_EVENT+userId,1,personalWork);
List<String> list1=personalWork.getSubtaskIds();
list1.add(work.getId());
personalWork.setSubtaskIds(list1);
asynchronousAddEs(Constants.REDIS_EVENT + userId, personalWork);
redisTemplate.opsForList().leftPush(Constants.REDIS_EVENT+userId,personalWork);
}
}
pushData(userId,JacksonUtil.toJSon(statisticalRoleCount(list)));
}
@Override
public void readsStatus(String id, String eventId, int readState) {
List<Object> list = redisTemplate.opsForList().range(Constants.REDIS_EVENT + id, 0, -1);
......@@ -180,6 +363,8 @@ public class WorkShowServiceImpl implements WorkShowService {
objectMap.put("workAttribution", personalWork.getWorkAttribution());
objectMap.put("latestNews", personalWork.getLatestNews());
objectMap.put("superiorId", personalWork.getSuperiorId());
objectMap.put("time", personalWork.getTime());
objectMap.put("subtaskIds", personalWork.getSubtaskIds());
esSource.setJsonMap(objectMap);
return esSource;
}
......@@ -207,6 +392,11 @@ public class WorkShowServiceImpl implements WorkShowService {
}
break;
case WorkAttribution.ME_RECEIVE_WORK :
int size=0;
if (redisPersonalWork.getSubtaskIds()!=null){
size=redisPersonalWork.getSubtaskIds().size();
}
role2=role2-size;
role2++;
if (redisPersonalWork.getReadState()==1){
unread2=1;
......@@ -219,7 +409,9 @@ public class WorkShowServiceImpl implements WorkShowService {
}
break;
case WorkAttribution.ME_RELEASE_WORK :
if (redisPersonalWork.getSuperiorId()==null) {
role4++;
}
if (redisPersonalWork.getReadState()==1){
unread4=1;
}
......@@ -230,6 +422,22 @@ public class WorkShowServiceImpl implements WorkShowService {
}
@Override
public void loginFirstOneManualPush(String id) {
log.info("redis :{}",Constants.REDIS_EVENT);
List<Object> list= redisTemplate.opsForList().range(Constants.REDIS_EVENT+id,0,-1);
assert list != null;
RoleSum roleSum= statisticalRoleCount(list);
String receive=iUserService.findUserById(id).getUsername();
log.info("{}调用了id查询的接口",receive);
if (receive!=null) {
messageTemplateService.beingPushed(receive, "/topic/note", JacksonUtil.toJSon(roleSum));
}else {
log.info("{}数据库查询不到,请尝试",id);
}
}
private void pushData(String id,String payload){
log.info("[Status,pushData] 传入的id值为:{} ", id);
String receive= iUserService.findUserById(id).getUsername();
......
package com.zjty.tynotes.pas.config.handler;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.zjty.tynotes.pas.entity.Authority;
import com.zjty.tynotes.pas.entity.Menu;
import com.zjty.tynotes.pas.entity.Role;
import com.zjty.tynotes.pas.entity.User;
import com.zjty.tynotes.pas.entity.vo.RoleVo;
import com.zjty.tynotes.pas.entity.vo.UserVo;
import com.zjty.tynotes.pas.service.IAuthorityService;
import com.zjty.tynotes.pas.service.IMenuSerivce;
import com.zjty.tynotes.pas.service.IRoleService;
import com.zjty.tynotes.pas.service.IUserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.session.SessionInformation;
import org.springframework.security.core.session.SessionRegistry;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
import org.springframework.security.web.authentication.session.SessionAuthenticationException;
import org.springframework.security.web.session.ConcurrentSessionFilter;
import org.springframework.stereotype.Component;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
/**
* @author mcj
*/
@Component
@Slf4j
public class MySuccessHandler implements AuthenticationSuccessHandler {
@Autowired
private SessionRegistry sessionRegistry;
@Autowired
private IAuthorityService iAuthorityService;
@Autowired
IRoleService iRoleService;
@Autowired
IMenuSerivce iMenuSerivce;
private BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
@Autowired
IUserService iUserService;
@Autowired
RedisTemplate redisTemplate;
@Override
public void onAuthenticationSuccess(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Authentication authentication) throws IOException, ServletException {
Cookie[] cookies = httpServletRequest.getCookies();
if(cookies==null){
return;
}
String value = cookies[0].getValue();
List<Object> o = sessionRegistry.getAllPrincipals();
User user = (User) authentication.getPrincipal();
for (Object principal : o) {
User cacheUser = (User) principal;
if (cacheUser.getUsername().equals(user.getUsername())) {
log.info("当前用户已经在线上.现顶替:{}",user.getUsername());
List<SessionInformation> sessions = sessionRegistry.getAllSessions(cacheUser, false);
for (SessionInformation sessionInformation : sessions) {
String sessionId = sessionInformation.getSessionId();
sessionInformation.expireNow();
}
}
}
redisTemplate.opsForValue().set(user.getUsername(),0);
UserVo userVo = new UserVo().user2userVo(user);
User username = iUserService.findUserByUsername(userVo.getUsername());
Role role = iRoleService.findRoleById(user.getRoleId());
RoleVo roleVo = new RoleVo();
User user1 = iUserService.findUserByUsername(userVo.getUsername());
userVo.setPassword(user1.getPassword());
roleVo.setRoleId(user.getRoleId());
List<Menu> allByMenuId = iMenuSerivce.findAllByMenuId(role.getMenuIds());
roleVo.setMenus(allByMenuId);
roleVo.setRoleName(role.getName());
userVo.setRole(roleVo);
List<Authority> authorityByIds = iAuthorityService.findAuthorityByIds(role.getAuthorityIds());
roleVo.setAuthorities(authorityByIds);
sessionRegistry.registerNewSession(value, authentication.getPrincipal());
httpServletResponse.setStatus(200);
httpServletResponse.setContentType("application/json; charset=utf-8");
httpServletResponse.getWriter().println(new ObjectMapper().writeValueAsString(userVo));
}
}
//package com.zjty.tynotes.pas.config.handler;
//
//import com.fasterxml.jackson.databind.ObjectMapper;
//import com.zjty.tynotes.pas.entity.Authority;
//import com.zjty.tynotes.pas.entity.Role;
//import com.zjty.tynotes.pas.entity.User;
//import com.zjty.tynotes.pas.service.IAuthorityService;
//import com.zjty.tynotes.pas.service.IRoleService;
//import com.zjty.tynotes.pas.service.IUserService;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.data.redis.core.RedisTemplate;
//import org.springframework.data.redis.core.ValueOperations;
//import org.springframework.security.core.Authentication;
//import org.springframework.security.core.context.SecurityContext;
//import org.springframework.security.core.context.SecurityContextHolder;
//import org.springframework.security.core.session.SessionInformation;
//import org.springframework.security.core.session.SessionRegistry;
//import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
//import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
//import org.springframework.security.web.authentication.session.SessionAuthenticationException;
//import org.springframework.security.web.session.ConcurrentSessionFilter;
//import org.springframework.stereotype.Component;
//
//import javax.servlet.ServletException;
//import javax.servlet.http.Cookie;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import java.io.IOException;
//import java.util.List;
//
///**
// * @author mcj
// */
//@Component
//@Slf4j
//public class MySuccessHandler implements AuthenticationSuccessHandler {
// @Autowired
// private SessionRegistry sessionRegistry;
//
// @Autowired
// private IAuthorityService iAuthorityService;
//
// @Autowired
// IRoleService iRoleService;
//
// @Autowired
// IMenuSerivce iMenuSerivce;
//
// private BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
//
// @Autowired
// IUserService iUserService;
//
// @Autowired
// RedisTemplate redisTemplate;
//
// @Override
// public void onAuthenticationSuccess(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Authentication authentication) throws IOException, ServletException {
// Cookie[] cookies = httpServletRequest.getCookies();
// if(cookies==null){
// return;
// }
// String value = cookies[0].getValue();
// List<Object> o = sessionRegistry.getAllPrincipals();
// User user = (User) authentication.getPrincipal();
// for (Object principal : o) {
// User cacheUser = (User) principal;
// if (cacheUser.getUsername().equals(user.getUsername())) {
// log.info("当前用户已经在线上.现顶替:{}",user.getUsername());
// List<SessionInformation> sessions = sessionRegistry.getAllSessions(cacheUser, false);
// for (SessionInformation sessionInformation : sessions) {
// String sessionId = sessionInformation.getSessionId();
//
// sessionInformation.expireNow();
// }
// }
// }
//
// redisTemplate.opsForValue().set(user.getUsername(),0);
//
// UserVo userVo = new UserVo().user2userVo(user);
// User username = iUserService.findUserByUsername(userVo.getUsername());
// Role role = iRoleService.findRoleById(user.getRoleId());
// RoleVo roleVo = new RoleVo();
// User user1 = iUserService.findUserByUsername(userVo.getUsername());
// userVo.setPassword(user1.getPassword());
// roleVo.setRoleId(user.getRoleId());
// List<Menu> allByMenuId = iMenuSerivce.findAllByMenuId(role.getMenuIds());
// roleVo.setMenus(allByMenuId);
// roleVo.setRoleName(role.getName());
// userVo.setRole(roleVo);
// List<Authority> authorityByIds = iAuthorityService.findAuthorityByIds(role.getAuthorityIds());
// roleVo.setAuthorities(authorityByIds);
//
// sessionRegistry.registerNewSession(value, authentication.getPrincipal());
// httpServletResponse.setStatus(200);
// httpServletResponse.setContentType("application/json; charset=utf-8");
// httpServletResponse.getWriter().println(new ObjectMapper().writeValueAsString(userVo));
//
//
// }
//}
......@@ -60,6 +60,23 @@ public interface EsUtil {
*/
CollectionRs getPresentTask(String id, EsSearchArg esSearchArg);
/**
* 搜索我的任务列表
*/
CollectionRs getMeTask(String id, EsSearchArg esSearchArg);
/**
* 搜索我的接收任务
*/
CollectionRs getMeReceiveTask(String id, EsSearchArg esSearchArg);
/**
* 搜索我的分解任务
*/
CollectionRs getMeResolveTask(String id, EsSearchArg esSearchArg);
/**
* 搜索我的发布的任务
*/
CollectionRs getMeReleaseTask(String id, EsSearchArg esSearchArg);
/**
* 搜索已提交任务的方法
*
......
......@@ -191,11 +191,30 @@ public class EsUtilImpl implements EsUtil {
SearchSourceBuilder builder = new SearchSourceBuilder();
builder.query(QueryBuilders.boolQuery()
.should(QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("executor", id))
.must(QueryBuilders.matchQuery("state", "underway")))
.should(QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("inspector", id))
.must(QueryBuilders.matchQuery("state", "committed"))))
.sort("updateTime", SortOrder.DESC);
.should(QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("executor", id))))
.sort("time", SortOrder.DESC);
builder.size(esSearchArg.getSize());
builder.from(esSearchArg.getSize() * esSearchArg.getPage());
searchRequest.source(builder);
return getSearchTotalAndSource(client, searchRequest);
}
@Override
public CollectionRs getMeTask(String id, EsSearchArg esSearchArg) {
RestHighLevelClient client = esConfiguration.conn();
SearchRequest searchRequest = new SearchRequest(ES_PREFIX + id);
searchRequest.types("doc");
SearchSourceBuilder builder = new SearchSourceBuilder();
builder.query(QueryBuilders.boolQuery()
.should(QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("workAttribution",1))))
.sort("time", SortOrder.DESC);
builder.size(esSearchArg.getSize());
builder.from(esSearchArg.getSize() * esSearchArg.getPage());
......@@ -203,7 +222,70 @@ public class EsUtilImpl implements EsUtil {
searchRequest.source(builder);
return getSearchTotalAndSource(client, searchRequest);
}
@Override
public CollectionRs getMeReceiveTask(String id, EsSearchArg esSearchArg) {
RestHighLevelClient client = esConfiguration.conn();
SearchRequest searchRequest = new SearchRequest(ES_PREFIX + id);
searchRequest.types("doc");
SearchSourceBuilder builder = new SearchSourceBuilder();
builder.query(QueryBuilders.boolQuery()
.should(QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("workAttribution", 2))))
.sort("time", SortOrder.DESC);
builder.size(esSearchArg.getSize());
builder.from(esSearchArg.getSize() * esSearchArg.getPage());
searchRequest.source(builder);
return getSearchTotalAndSource(client, searchRequest);
}
@Override
public CollectionRs getMeResolveTask(String id, EsSearchArg esSearchArg) {
RestHighLevelClient client = esConfiguration.conn();
SearchRequest searchRequest = new SearchRequest(ES_PREFIX + id);
searchRequest.types("doc");
SearchSourceBuilder builder = new SearchSourceBuilder();
builder.query(QueryBuilders.boolQuery()
.should(QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("workAttribution", 3))))
.sort("time", SortOrder.DESC);
builder.size(esSearchArg.getSize());
builder.from(esSearchArg.getSize() * esSearchArg.getPage());
searchRequest.source(builder);
return getSearchTotalAndSource(client, searchRequest);
}
@Override
public CollectionRs getMeReleaseTask(String id, EsSearchArg esSearchArg) {
RestHighLevelClient client = esConfiguration.conn();
SearchRequest searchRequest = new SearchRequest(ES_PREFIX + id);
searchRequest.types("doc");
SearchSourceBuilder builder = new SearchSourceBuilder();
builder.query(QueryBuilders.boolQuery()
.should(QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("workAttribution", 4)))
.mustNot(QueryBuilders.matchQuery("superiorId","")))
.sort("time", SortOrder.DESC);
builder.size(esSearchArg.getSize());
builder.from(esSearchArg.getSize() * esSearchArg.getPage());
searchRequest.source(builder);
return getSearchTotalAndSource(client, searchRequest);
}
@Override
......@@ -293,7 +375,7 @@ public class EsUtilImpl implements EsUtil {
builder.query(QueryBuilders.boolQuery()
.must(QueryBuilders.matchQuery("title", title))
.mustNot(QueryBuilders.matchQuery("state", "finished")));
);
builder.size(size)
.from(size * page)
.sort("updateTime", SortOrder.DESC);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论