package com.poteviohealth.cgp.statistics.service.impl; import com.google.common.collect.Lists; import com.poteviohealth.cgp.common.filter.TokenContext; import com.poteviohealth.cgp.common.model.VaultsResponse; import com.poteviohealth.cgp.common.service.impl.BaseServiceImpl; import com.poteviohealth.cgp.statistics.mapper.WatermarkImgMapper; import com.poteviohealth.cgp.statistics.model.WatermarkImg; import com.poteviohealth.cgp.statistics.model.indto.PriceUploadDto; import com.poteviohealth.cgp.statistics.model.outdto.OrderImageDTO; import com.poteviohealth.cgp.statistics.service.IWatermarkImgService; import com.poteviohealth.cgp.statistics.utils.OssUtils; import com.poteviohealth.cgp.statistics.utils.Watermark; import lombok.extern.log4j.Log4j2; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.util.List; import java.util.stream.Collectors; /** * 居家大屏 * @author Qin */ @Service @Log4j2 public class WatermarkImgServiceImpl extends BaseServiceImpl implements IWatermarkImgService { @Value("${sync.dbName}") private String dbName; @Resource private OssUtils ossUtils; @Override public VaultsResponse updateOrderUrl(List list) { List startUrl = Lists.newArrayList(); List endUrl = Lists.newArrayList(); Long orderId = null; for (PriceUploadDto dto : list) { orderId = dto.getOrderId(); if(StringUtils.isNotEmpty(dto.getUrl())){ if(dto.getIndex() <=3){ startUrl.add(dto.getUrl()); }else{ endUrl.add(dto.getUrl()); } } } String nowVal = ""; String start = ""; if(!startUrl.isEmpty()){ start = startUrl.stream().map(String::valueOf).collect(Collectors.joining(",")); nowVal = start+","; } String end = ""; if(!endUrl.isEmpty()){ end = endUrl.stream().map(String::valueOf).collect(Collectors.joining(",")); nowVal +=end; } OrderImageDTO dto = baseMapper.getOrderUrl(TokenContext.cureOperatorId(),dbName, orderId); String orgVal = ""; if(StringUtils.isNotBlank(dto.getStartUrl())){ orgVal = dto.getStartUrl()+","; } if(StringUtils.isNotBlank(dto.getEndUrl())){ orgVal += dto.getEndUrl(); } WatermarkImg wi = new WatermarkImg(); wi.setUid(orderId.toString()); wi.setOriginalImg(orgVal); wi.setNowImg(nowVal); this.save(wi); if(orderId != null){ baseMapper.updateOrderUrl(TokenContext.cureOperatorId(),start ,end , dbName, orderId); } return VaultsResponse.success(); } @Override public VaultsResponse> printingWatermark(List list) { for (PriceUploadDto dto : list) { if(StringUtils.isBlank(dto.getDate()) || StringUtils.isBlank(dto.getUrl()) ||StringUtils.isBlank(dto.getType()) || dto.getType().contains("video")){ continue; } String uid = (dto.getUrl().split("/")[dto.getUrl().split("/").length-1]).split("\\.")[0]; WatermarkImg watermarkImg = this.getEntityByBeanId("uid",uid ); if(watermarkImg != null){ dto.setUrl(watermarkImg.getOriginalImg()); } MultipartFile image = Watermark.createPrice(dto); VaultsResponse vaultsResponse = ossUtils.uploadOneFile(image,dto.getOrderId()); if(!vaultsResponse.validate()){ return VaultsResponse.failed("水印处理失败"); } WatermarkImg newWi = new WatermarkImg(); newWi.setNowImg(vaultsResponse.getData().toString()); newWi.setOriginalImg(dto.getUrl()); newWi.setUid((newWi.getNowImg().split("/")[newWi.getNowImg().split("/").length-1]).split("\\.")[0]); this.save(newWi); dto.setUrl(newWi.getNowImg()); } return VaultsResponse.success(list); } public static void main(String[] args) { String url = "https://ptsubsidy.oss-cn-beijing.aliyuncs.com/yqaa/S123N-FAD786CB-AFB3-402C-9FD0-953838D74E8E.jpg"; String val = url.split("/")[url.split("/").length-1]; System.out.println(val.split("\\.")[0]); } }