package com.vci.web.service.impl;
|
|
|
import com.vci.starter.web.exception.VciBaseException;
|
import com.vci.starter.web.pagemodel.DataGrid;
|
import com.vci.starter.web.pagemodel.PageHelper;
|
import com.vci.starter.web.pagemodel.SessionInfo;
|
import com.vci.starter.web.util.ApplicationContextProvider;
|
import com.vci.starter.web.util.BeanUtil;
|
import com.vci.starter.web.util.VciBaseUtil;
|
import com.vci.web.dto.WebHomeTaskActionDTO;
|
import com.vci.web.model.WebHomeTaskActionDO;
|
import com.vci.web.pageModel.WebHomeTaskActionVO;
|
import com.vci.web.service.WebBoServiceI;
|
import com.vci.web.service.WebHomeTaskServiceI;
|
import com.vci.web.util.WebUtil;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.cache.annotation.Cacheable;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.CollectionUtils;
|
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
import static com.vci.web.constant.CacheNameConstant.VCI_USER;
|
|
/**
|
* 首页待办任务的服务
|
* @author weidy
|
*/
|
@Service
|
public class WebHomeTaskServiceImpl implements WebHomeTaskServiceI {
|
|
/**
|
* 日志
|
*/
|
private Logger logger = LoggerFactory.getLogger(getClass());
|
|
/**
|
* 业务数据的服务
|
*/
|
@Autowired
|
private WebBoServiceI boService;
|
|
/**
|
* 获取当前用户的首页待办任务
|
*
|
* @return 任务汇总的数量
|
*/
|
@Override
|
public List<WebHomeTaskActionVO> listMyHomeTask() {
|
List<WebHomeTaskActionVO> actionVOS = new ArrayList<>();
|
List<WebHomeTaskActionDO> allActions = boService.queryObject(WebHomeTaskActionDO.class,null);
|
if (!CollectionUtils.isEmpty(allActions)) {
|
SessionInfo sessionInfo = WebUtil.getCurrentUserSessionInfo();
|
if(sessionInfo ==null){
|
throw new VciBaseException("没有登录");
|
}
|
List<String> myFunctionOids = sessionInfo.getFunctionOids();
|
allActions = allActions.stream().filter(s -> !CollectionUtils.isEmpty(myFunctionOids) && myFunctionOids.contains(s.getId())).collect(Collectors.toList());
|
}
|
if(!CollectionUtils.isEmpty(allActions)){
|
allActions.stream().forEach(action->{
|
WebHomeTaskActionVO taskActionVO = new WebHomeTaskActionVO();
|
BeanUtil.convert(action,taskActionVO);
|
actionVOS.add(taskActionVO);
|
});
|
}
|
return actionVOS;
|
}
|
/**
|
* 获取当前用户,用于缓存中 。。。别的地方不要调用
|
* @return 当前用户的主键
|
*/
|
@Override
|
public String getCurrentUserOid(){
|
return WebUtil.getCurrentUserOid();
|
}
|
|
/**
|
* 添加首页待办任务的action
|
*
|
* @param action 数据对象
|
*/
|
@Override
|
public void addAction(WebHomeTaskActionDTO action){
|
WebUtil.alertNotNull(action,"要添加的信息为空",action.getId(),"菜单的主键",action.getName(),"菜单的名称",action.getCountUrl(),"调用的地址");
|
WebHomeTaskActionDO actionDO = new WebHomeTaskActionDO();
|
BeanUtil.convert(action,actionDO);
|
actionDO.setOid(VciBaseUtil.getPk());
|
boService.addSave(actionDO);
|
}
|
|
/**
|
* 修改待办任务的action信息
|
*
|
* @param action 数据对象
|
*/
|
@Override
|
public void editAction(WebHomeTaskActionDTO action) {
|
WebUtil.alertNotNull(action,"要修改的信息为空",action.getOid(),"主键",action.getTs(),"时间戳");
|
WebHomeTaskActionDO actionDO = boService.selectByOid(action.getOid(),WebHomeTaskActionDO.class);
|
BeanUtil.convert(action,actionDO);
|
boService.editSave(actionDO);
|
}
|
|
/**
|
* 删除待办任务的action信息
|
*
|
* @param action 数据对象
|
*/
|
@Override
|
public void deleteAction(WebHomeTaskActionDTO action) throws VciBaseException {
|
WebUtil.alertNotNull(action,"要删除的信息为空",action.getOid(),"主键",action.getTs(),"时间戳");
|
if(boService.checkTs(action)) {
|
WebHomeTaskActionDO actionDO = boService.selectByOid(action.getOid(), WebHomeTaskActionDO.class);
|
boService.delete(actionDO);
|
}
|
}
|
|
/**
|
* 查询所有的待办任务动作定义
|
*
|
* @param conditionMap 查询条件
|
* @param pageHelper 分页信息
|
* @return 数据对象
|
*/
|
@Override
|
public DataGrid dataGrid(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{
|
if(pageHelper == null){
|
pageHelper = new PageHelper(-1);
|
}
|
pageHelper.addDefaultDesc("createTime");
|
DataGrid dataGrid = boService.queryGridClass(WebHomeTaskActionDO.class,conditionMap,pageHelper);
|
if(!CollectionUtils.isEmpty(dataGrid.getData())){
|
List<WebHomeTaskActionVO> taskActionVOS = new ArrayList<>();
|
dataGrid.getData().forEach(action->{
|
WebHomeTaskActionVO taskActionVO = new WebHomeTaskActionVO();
|
BeanUtil.convert((WebHomeTaskActionDO)action,taskActionVO);
|
taskActionVOS.add(taskActionVO);
|
});
|
dataGrid.setData(taskActionVOS);
|
}
|
return dataGrid;
|
}
|
|
}
|