package com.zteits.pay.biz; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang3.StringUtils; import com.alibaba.fastjson.JSONObject; import com.clouds.common.cache.park.ParkingLotCacheUtil; import com.clouds.common.cache.sys.SysCodeValueCacheUtil; import com.clouds.common.constants.CodeValKindEnum; import com.clouds.common.constants.SysFileTypeEnum; import com.clouds.common.utils.DateUtil; import com.xiaoleilu.hutool.util.CollectionUtil; import com.zteits.clouds.api.apibase.bean.BizResult; import com.zteits.clouds.api.apibase.constants.DataStatusEnum; import com.zteits.clouds.api.dto.park.dto.ParkingLotDTO; import com.zteits.clouds.api.dto.pay.TdCFileDTO; import com.zteits.clouds.api.dto.pay.param.GetFileRequest; import com.zteits.clouds.api.dto.pay.param.SysFileGetBySourceIdAndTypeRequest; import com.zteits.clouds.api.dto.pay.param.SysFileSaveBySourceIdAndTypeRequest; import com.zteits.clouds.api.dto.pay.param.TdcFileSaveRequest; import com.zteits.clouds.api.dto.sys.param.ParkLotPicDeleteReq; import com.zteits.clouds.api.service.pay.TdCFileService; import com.zteits.pay.dao.TdCFileDao; import com.zteits.pay.domain.TdCFile; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; /** * Copyright: Copyright (c) 2017 zteits * * @ClassName: com.zteits.pay.biz * @Description: * @version: v1.0.0 * @author: atao * @date: 2017/7/11 下午8:02 * Modification History: * Date Author Version Description * ---------------------------------------------------------* * 2017/7/11 atao v1.0.0 创建 */ @Service("com.zteits.pay.biz.TdCFileServiceImpl") public class TdCFileServiceImpl implements TdCFileService { private static final Logger logger = LoggerFactory.getLogger(TdCFileServiceImpl.class); @Autowired private TdCFileDao tdCFileDao; @Override public BizResult getSysFileBySourceIdAndType(SysFileGetBySourceIdAndTypeRequest request) { TdCFileDTO tdCFileDTO = new TdCFileDTO(); List files = tdCFileDao.getFilesBySourceIdAndType(request.getSourceId(), request.getFileType()); if (!CollectionUtil.isEmpty(files)) { BeanUtils.copyProperties(files.get(0), tdCFileDTO); } return new BizResult<>(tdCFileDTO); } @Override public BizResult> getFilesBySourceIdAndType(SysFileGetBySourceIdAndTypeRequest request) { List dtoList = new ArrayList<>(); List files = tdCFileDao.getFilesBySourceIdAndType(request.getSourceId(), request.getFileType()); if (CollectionUtil.isEmpty(files) && request.getQueryDefaultParkPic() ) { if (SysFileTypeEnum.ParkPicFile.val().equals(request.getFileType())) { //车场图片没有查询到,查询默认值 ParkingLotDTO parkingLotDTO = ParkingLotCacheUtil.getParkLotByPlNo(request.getSourceId()); if (parkingLotDTO == null) { } else if (parkingLotDTO.getPlType() == 1) { //路测 files = tdCFileDao.getFilesBySourceIdAndType("defaul_park_pic_out", request.getFileType()); } else if (parkingLotDTO.getPlType() == 2) { //封闭 files = tdCFileDao.getFilesBySourceIdAndType("defaul_park_pic_in", request.getFileType()); } } } if (!CollectionUtil.isEmpty(files)) { for (TdCFile file : files) { TdCFileDTO tdCFileDTO = new TdCFileDTO(); BeanUtils.copyProperties(file, tdCFileDTO); if (!StringUtils.isBlank(tdCFileDTO.getFilePath()) && !tdCFileDTO.getFilePath().startsWith("http")) { //拼接上前缀 String filePath = SysCodeValueCacheUtil.queryCodeValue(CodeValKindEnum.FASTDFS_URL_PREFIX) + tdCFileDTO.getFilePath(); tdCFileDTO.setFilePath(filePath); } dtoList.add(tdCFileDTO); } } return new BizResult<>(dtoList); } @Override public BizResult> getFiles(GetFileRequest request) { List dtoList = new ArrayList<>(); List files = tdCFileDao.getFilesBySourceIdsAndTypes(request.getSourceIds(),request.getFileTypes()); if(CollectionUtil.isEmpty(files)){ return new BizResult<>(dtoList); } for(TdCFile file : files){ TdCFileDTO tdCFileDTO = new TdCFileDTO(); BeanUtils.copyProperties(file, tdCFileDTO); if(!StringUtils.isBlank(tdCFileDTO.getFilePath()) && !tdCFileDTO.getFilePath().startsWith("http")){ //拼接上前缀 String filePath = SysCodeValueCacheUtil.queryCodeValue(CodeValKindEnum.FASTDFS_URL_PREFIX)+tdCFileDTO.getFilePath(); tdCFileDTO.setFilePath(filePath); } dtoList.add(tdCFileDTO); } return new BizResult<>(dtoList); } @Transactional(rollbackFor = Exception.class) @Override public BizResult saveFilesBySourceIdAndType( SysFileSaveBySourceIdAndTypeRequest sysFileSaveBySourceIdAndTypeRequest) { TdCFile tdCFile = new TdCFile(); BeanUtils.copyProperties(sysFileSaveBySourceIdAndTypeRequest, tdCFile); //把之前的头像变为失效 if (sysFileSaveBySourceIdAndTypeRequest.getFileType() != null && sysFileSaveBySourceIdAndTypeRequest.getFileType() == 3) { tdCFileDao.updateFileState(tdCFile); } //保存最新的头像 tdCFile.setFileState(DataStatusEnum.DATA_STATUS_NO_VALID.value()); tdCFile.setDataState(DataStatusEnum.DATA_STATUS_VALID.value()); tdCFile.setCreateDate(DateUtil.getDateTime()); Integer flg = tdCFileDao.saveFilesBySourceIdAndType(tdCFile); return new BizResult<>(tdCFile.getId()); } @Override public BizResult deleteFilesByIds(ParkLotPicDeleteReq req) { Integer num = tdCFileDao.deleteFilesByIds(req.getIds()); return new BizResult<>(true); } @Override public BizResult deleteFilesBySourceIdAndType(SysFileGetBySourceIdAndTypeRequest request) { Integer num = tdCFileDao.deleteFilesBySourceIdAndType(request); return new BizResult<>(num); } @Override public BizResult insertFiles(TdcFileSaveRequest req) { TdCFile tdCFile = new TdCFile(); BeanUtils.copyProperties(req, tdCFile); tdCFile.setFileState(0); tdCFile.setDataState(1); tdCFile.setCreateDate(DateUtil.getDateTime()); Integer flg = tdCFileDao.saveFilesBySourceIdAndType(tdCFile); return new BizResult<>(true); } @Override public BizResult getFilesBySourceIdAndTypeLimt1(SysFileGetBySourceIdAndTypeRequest request) { TdCFile filesBySourceIdAndTypeLimt1 = tdCFileDao.getFilesBySourceIdAndTypeLimt1(request.getSourceId(), request.getFileType(), request.getFileState()); TdCFileDTO tdCFileDTO = new TdCFileDTO(); BeanUtils.copyProperties(filesBySourceIdAndTypeLimt1, tdCFileDTO); return new BizResult<>(tdCFileDTO); } }