package com.zteits.sys.biz; import java.util.Date; import java.util.List; import com.clouds.common.constants.SuperAdminEnum; import com.clouds.common.utils.BeanValidatorsUtils; import com.clouds.common.utils.ListCopyUtil; import com.clouds.common.utils.ListPageHelper; import com.github.pagehelper.PageInfo; import com.google.common.collect.Lists; import com.zteits.clouds.api.apibase.bean.BizResult; import com.zteits.clouds.api.apibase.bean.PageBean; import com.zteits.clouds.api.apibase.constants.DataStatusEnum; import com.zteits.clouds.api.apibase.constants.ErrorType; import com.zteits.clouds.api.apibase.exception.BizException; import com.zteits.clouds.api.dto.sys.SysResDTO; import com.zteits.clouds.api.dto.sys.param.SysOrgResRelationRequest; import com.zteits.clouds.api.dto.sys.param.SysResDeleteRequest; import com.zteits.clouds.api.dto.sys.param.SysResQueryAllRequest; import com.zteits.clouds.api.dto.sys.param.SysResQueryByIdRequest; import com.zteits.clouds.api.dto.sys.param.SysResQueryByOpIdRequest; import com.zteits.clouds.api.dto.sys.param.SysResQueryBySysCodeRequest; import com.zteits.clouds.api.dto.sys.param.SysResSaveOrUpdateRequest; import com.zteits.clouds.api.service.sys.SysResService; import com.zteits.sys.dao.SysResDao; import com.zteits.sys.dao.SysResJobFuncDao; import com.zteits.sys.domain.SysRes; import com.zteits.sys.pagepaper.PageBeanUtil; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @Service("com.zteits.sys.biz.SysResServiceImpl") public class SysResServiceImpl implements SysResService { @Autowired private SysResDao sysResDao; @Autowired private SysResJobFuncDao sysResJobFuncDao; private static final Integer PAGE_SIZE = 500; @Override @Transactional public BizResult deleteSysRes(SysResDeleteRequest request) { BeanValidatorsUtils.validateWithException(request); SysRes sysRes = new SysRes(); //置为失效 sysRes.setDataState(DataStatusEnum.DATA_STATUS_NO_VALID.value()); sysRes.setModfiyEmpid(request.getOpId()); for(Long id:request.getResIds()){ //更新删除后的资源排序 sysResDao.updateSysResSortNumOfDelete(id); } Integer num = sysResDao.updateBatchSysRes(sysRes, request.getResIds(), request.getSysCode()); return new BizResult<>(num); } @Override @Transactional public BizResult saveOrUpdateSysRes(SysResSaveOrUpdateRequest request) { BeanValidatorsUtils.validateWithException(request); int oldSortNum = request.getOldSortNum().intValue(); int sortNum = request.getSortNum().intValue(); SysRes sysRes = new SysRes(); BeanUtils.copyProperties(request, sysRes); sysRes.setModfiyEmpid(request.getCreateEmpid()); sysRes.setModfiyDate(new Date()); if (request.getId() == null) { //保存 sysRes.setCreateDate(new Date()); sysResDao.saveSysRes(sysRes); } else { //更新 sysResDao.updateSysRes(sysRes); } sysResDao.updateSysResSortNumOfSaveOrUpdate(sysRes.getId(),sysRes.getParentResId(),sortNum,oldSortNum); return new BizResult(sysRes.getId()); } @Override public BizResult> querySysResBySysCode(SysResQueryBySysCodeRequest request) { BeanValidatorsUtils.validateWithException(request); SysRes sysRes = new SysRes(); BeanUtils.copyProperties(request, sysRes); PageInfo pageInfo = sysResDao.querySysResBySysCode(sysRes, request.getBaseRequest().getPageNum(), request.getBaseRequest().getPageSize(), request.getSysCode()); PageBean pageBean = new PageBean(); PageBeanUtil.copyProperties(pageInfo, pageBean, SysResDTO.class); return new BizResult>(pageBean); } @Override public BizResult isUsedForResByResId(SysResQueryByIdRequest request) { //验证参数 BeanValidatorsUtils.validateWithException(request); List ids = Lists.newArrayList(); ids.add(request.getId()); List jobfuncs = sysResJobFuncDao.queryJobFuncIdsByResId(ids, DataStatusEnum.DATA_STATUS_VALID.value(), request.getSysCode()); return new BizResult(!CollectionUtils.isEmpty(jobfuncs)); } @Override public BizResult> queryResIdsByOpId(SysResQueryByOpIdRequest request) { if (null == request || 0L == request.getOpId()) { throw new BizException(ErrorType.PARAMM_NULL, "操作员ID"); } List resIds = sysResDao.queryResIdsByOpId(request.getOpId()); return new BizResult<>(resIds); } @Override public BizResult> queryAllRes(SysResQueryAllRequest request) { List list = Lists.newArrayList(); if(request == null){ throw new BizException(ErrorType.BIZ_ERROR, "入参不能为空"); } if(Long.valueOf(SuperAdminEnum.SUPER_ORG_ID.getValue()).equals(request.getOrgId())){ List sysResList = sysResDao.queryAllRes(request.getDataStatus(), request.getSysCode(),null); ListCopyUtil.listCopyProperties(sysResList, list, SysResDTO.class); }else{ if(!CollectionUtils.isEmpty(request.getResIds())){ //500条分一页查询停车场 ListPageHelper pageInfo = new ListPageHelper(request.getResIds(),PAGE_SIZE); for(int i=1;i<=pageInfo.getTotalPages();i++){ List pageList = Lists.newArrayList(); List sysResList = sysResDao.queryAllRes(request.getDataStatus(), request.getSysCode(),request.getResIds()); ListCopyUtil.listCopyProperties(sysResList, pageList, SysResDTO.class); list.addAll(pageList); } } } return new BizResult>(list); } @Override public BizResult batchInsertOrgRes(SysOrgResRelationRequest request) { if(request == null){ throw new BizException(ErrorType.BIZ_ERROR, "入参不能为空"); } return new BizResult(sysResDao.batchInsertOrgRes(request)); } @Override public BizResult> queryResIdsByOrgId(SysOrgResRelationRequest request) { if(request == null || request.getOrgId() == null){ throw new BizException(ErrorType.BIZ_ERROR, "入参不能为空"); } List list = sysResDao.queryResIdsByOrgId(request); return new BizResult>(list); } }