TdCFileServiceImpl.java 7.36 KB
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<TdCFileDTO> getSysFileBySourceIdAndType(SysFileGetBySourceIdAndTypeRequest request) {
        TdCFileDTO tdCFileDTO = new TdCFileDTO();
        List<TdCFile> files = tdCFileDao.getFilesBySourceIdAndType(request.getSourceId(), request.getFileType());
        if (!CollectionUtil.isEmpty(files)) {
            BeanUtils.copyProperties(files.get(0), tdCFileDTO);
        }

        return new BizResult<>(tdCFileDTO);
    }

    @Override
    public BizResult<List<TdCFileDTO>> getFilesBySourceIdAndType(SysFileGetBySourceIdAndTypeRequest request) {
        List<TdCFileDTO> dtoList = new ArrayList<>();
        List<TdCFile> 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<List<TdCFileDTO>> getFiles(GetFileRequest request) {
        List<TdCFileDTO> dtoList = new ArrayList<>();
        List<TdCFile> 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<Long> 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<Boolean> deleteFilesByIds(ParkLotPicDeleteReq req) {

        Integer num = tdCFileDao.deleteFilesByIds(req.getIds());

        return new BizResult<>(true);
    }

    @Override
    public BizResult<Integer> deleteFilesBySourceIdAndType(SysFileGetBySourceIdAndTypeRequest request) {

         Integer num = tdCFileDao.deleteFilesBySourceIdAndType(request);
        return new BizResult<>(num);
    }

    @Override
    public BizResult<Boolean> 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<TdCFileDTO> 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);
    }
}