package com.vci.web.service.impl;
|
|
import com.vci.constant.FrameWorkBtmTypeConstant;
|
import com.vci.frameworkcore.compatibility.ISmFunctionQueryService;
|
import com.vci.pagemodel.SmFunctionVO;
|
import com.vci.starter.revision.service.RevisionModelUtil;
|
import com.vci.starter.web.exception.VciBaseException;
|
import com.vci.starter.web.util.VciBaseUtil;
|
import com.vci.model.SmFavFunctionDO;
|
import com.vci.web.service.SmFavFunctionServiceI;
|
import com.vci.web.service.WebBoServiceI;
|
import com.vci.web.util.WebUtil;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.CollectionUtils;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* 收藏功能服务
|
* @author weidy
|
* @date 2020/7/12
|
*/
|
@Service
|
public class SmFavFunctionServiceImpl implements SmFavFunctionServiceI {
|
|
/**
|
* 业务类型的服务
|
*/
|
@Autowired
|
private WebBoServiceI boService;
|
|
|
/**
|
* 菜单功能的数据操作
|
*/
|
@Autowired
|
private ISmFunctionQueryService functionQueryService;
|
|
/**
|
* 版本和对象操作类
|
*/
|
@Autowired(required = false)
|
private RevisionModelUtil revisionModelUtil;
|
|
/**
|
* 添加收藏
|
*
|
* @param functionId 功能编号
|
* @throws VciBaseException 参数为空会抛出异常
|
*/
|
@Override
|
public void addFav(String functionId) throws VciBaseException {
|
VciBaseUtil.alertNotNull(functionId,"功能菜单编号");
|
Map<String,String> conditionMap = new HashMap<>();
|
conditionMap.put("functionId",functionId.trim());
|
conditionMap.put("userOid", WebUtil.getCurrentUserOid());
|
if(boService.queryCount(FrameWorkBtmTypeConstant.SM_FAV_FUNCTION,conditionMap)<1){
|
SmFavFunctionDO favFunctionDO = new SmFavFunctionDO();
|
favFunctionDO.setFunctionId(functionId);
|
favFunctionDO.setUserOid(VciBaseUtil.getCurrentUserOid());
|
revisionModelUtil.wrapperForAdd(favFunctionDO);
|
boService.editSave(favFunctionDO);
|
}
|
}
|
|
/**
|
* 移除收藏
|
*
|
* @param functionId 功能编号
|
* @throws VciBaseException 参数为空会抛出异常
|
*/
|
@Override
|
public void removeFav(String functionId) throws VciBaseException {
|
VciBaseUtil.alertNotNull(functionId,"功能菜单编号");
|
SmFavFunctionDO favFunctionDO = boService.selectByOid(functionId.trim(), SmFavFunctionDO.class);
|
if(favFunctionDO!=null && StringUtils.isNotBlank(favFunctionDO.getOid())){
|
boService.delete(favFunctionDO);
|
}
|
}
|
|
/**
|
* 获取当前用户的收藏功能
|
*
|
* @return 功能的显示对象
|
* @throws VciBaseException 查询出错会抛出异常
|
*/
|
@Override
|
public List<SmFunctionVO> listFavFunction() throws VciBaseException {
|
Map<String,String> conditionMap = new HashMap<>();
|
conditionMap.put("userOid", WebUtil.getCurrentUserOid());
|
List<SmFavFunctionDO> favFunctionDOS = boService.queryObject(SmFavFunctionDO.class, conditionMap);
|
if(CollectionUtils.isEmpty(favFunctionDOS)){
|
return new ArrayList<>();
|
}else{
|
Map<String, SmFunctionVO> functionMap = functionQueryService.selectAllFunctionMap();
|
List<SmFunctionVO> functionVOS = new ArrayList<>();
|
favFunctionDOS.stream().map(SmFavFunctionDO::getFunctionId).forEach(functionOid->{
|
if(functionMap.containsKey(functionOid)){
|
functionVOS.add(functionMap.get(functionOid));
|
}
|
});
|
return functionVOS;
|
}
|
}
|
}
|