package com.zbkj.service.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zbkj.common.request.PageParamRequest; import com.zbkj.common.constants.Constants; import com.zbkj.common.request.SystemAttachmentMoveRequest; import com.zbkj.common.request.SystemAttachmentRequest; import com.github.pagehelper.PageHelper; import com.zbkj.common.utils.CarUtil; import com.zbkj.common.model.system.SystemAttachment; import com.zbkj.service.dao.SystemAttachmentDao; import com.zbkj.service.service.SystemAttachmentService; import com.zbkj.service.service.SystemConfigService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; /** * SystemAttachmentServiceImpl 接口实现 */ @Service public class SystemAttachmentServiceImpl extends ServiceImpl implements SystemAttachmentService { @Resource private SystemAttachmentDao dao; @Autowired private SystemConfigService systemConfigService; /** * 同步到云服务, 更新图片上传类型 * @param attId Integer 主键id * @param type int 图片上传类型 1本地 2七牛云 3OSS 4COS */ @Override public void updateCloudType(Integer attId, int type) { SystemAttachment systemAttachment = new SystemAttachment(); systemAttachment.setAttId(attId); systemAttachment.setImageType(type); updateById(systemAttachment); } /** * 附件分页 * @param pid Integer pid * @param pageParamRequest PageParamRequest 分页参数 * @return List */ @Override public List getList(Integer pid, String attType, PageParamRequest pageParamRequest) { PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit()); LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(SystemAttachment::getPid, pid); if(StringUtils.isNotEmpty(attType)){ lambdaQueryWrapper.in(SystemAttachment::getAttType, StringUtils.split(attType,",")); } lambdaQueryWrapper.orderByDesc(SystemAttachment::getAttId); return dao.selectList(lambdaQueryWrapper); } /** * 给图片加前缀 * @param path String 路径 * @return String */ @Override public String prefixImage(String path) { // 如果那些域名不需要加,则跳过 return path.replace(Constants.UPLOAD_TYPE_IMAGE+"/", getCdnUrl() + "/"+ Constants.UPLOAD_TYPE_IMAGE+"/"); } /** * 给文件加前缀 * @param path String 路径 * @return String */ @Override public String prefixFile(String path) { if (path.contains("file/excel")) { String cdnUrl = systemConfigService.getValueByKey("local" + "UploadUrl"); return path.replace("file/", cdnUrl + "/file/"); } return path.replace("file/", getCdnUrl() + "/file/"); } /** * 获取cdn url * @return String */ private String getCdnUrl() { // return asyncService.getCurrentBaseUrl(); String uploadType = systemConfigService.getValueByKeyException("uploadType"); //获取配置信息 int type = Integer.parseInt(uploadType); String pre = "local"; switch (type) { case 2: pre = "qn"; break; case 3: pre = "al"; break; case 4: pre = "tx"; break; default: break; } return systemConfigService.getValueByKey(pre+"UploadUrl"); } /** * 清除 cdn url, 在保存数据的时候使用 * @param path String 文件路径 * @return String */ @Override public String clearPrefix(String path) { if(StringUtils.isBlank(path)){ return path; } Constants.CND_URL = getCdnUrl(); if(path.contains(getCdnUrl() + "/")){ return path.replace(getCdnUrl() + "/", ""); } return path; } /** * 新增附件 * @param systemAttachmentRequest 新增参数 */ @Override public Boolean add(SystemAttachmentRequest systemAttachmentRequest) { SystemAttachment systemAttachment = new SystemAttachment(); BeanUtils.copyProperties(systemAttachmentRequest, systemAttachment); return save(systemAttachment); } /** * 编辑附件 * @param systemAttachmentRequest 更新参数 */ @Override public Boolean edit(SystemAttachmentRequest systemAttachmentRequest) { SystemAttachment systemAttachment = new SystemAttachment(); BeanUtils.copyProperties(systemAttachmentRequest, systemAttachment); return updateById(systemAttachment); } /** * 更改图片目录 * @param move 参数 */ @Override public Boolean updateAttrId(SystemAttachmentMoveRequest move) { LambdaUpdateWrapper lup = new LambdaUpdateWrapper<>(); lup.in(SystemAttachment::getAttId, CarUtil.stringToArray(move.getAttrId())); lup.set(SystemAttachment::getPid, move.getPid()); return update(lup); } }