WatermarkImgServiceImpl.java 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. package com.poteviohealth.cgp.statistics.service.impl;
  2. import com.google.common.collect.Lists;
  3. import com.poteviohealth.cgp.common.filter.TokenContext;
  4. import com.poteviohealth.cgp.common.model.VaultsResponse;
  5. import com.poteviohealth.cgp.common.service.impl.BaseServiceImpl;
  6. import com.poteviohealth.cgp.statistics.mapper.WatermarkImgMapper;
  7. import com.poteviohealth.cgp.statistics.model.WatermarkImg;
  8. import com.poteviohealth.cgp.statistics.model.indto.PriceUploadDto;
  9. import com.poteviohealth.cgp.statistics.model.outdto.OrderImageDTO;
  10. import com.poteviohealth.cgp.statistics.service.IWatermarkImgService;
  11. import com.poteviohealth.cgp.statistics.utils.OssUtils;
  12. import com.poteviohealth.cgp.statistics.utils.Watermark;
  13. import lombok.extern.log4j.Log4j2;
  14. import org.apache.commons.lang3.StringUtils;
  15. import org.springframework.beans.factory.annotation.Value;
  16. import org.springframework.stereotype.Service;
  17. import org.springframework.web.multipart.MultipartFile;
  18. import javax.annotation.Resource;
  19. import java.util.List;
  20. import java.util.stream.Collectors;
  21. /**
  22. * 居家大屏
  23. * @author Qin
  24. */
  25. @Service
  26. @Log4j2
  27. public class WatermarkImgServiceImpl extends BaseServiceImpl<WatermarkImgMapper, WatermarkImg> implements IWatermarkImgService {
  28. @Value("${sync.dbName}")
  29. private String dbName;
  30. @Resource
  31. private OssUtils ossUtils;
  32. @Override
  33. public VaultsResponse updateOrderUrl(List<PriceUploadDto> list) {
  34. List<String> startUrl = Lists.newArrayList();
  35. List<String> endUrl = Lists.newArrayList();
  36. Long orderId = null;
  37. for (PriceUploadDto dto : list) {
  38. orderId = dto.getOrderId();
  39. if(StringUtils.isNotEmpty(dto.getUrl())){
  40. if(dto.getIndex() <=3){
  41. startUrl.add(dto.getUrl());
  42. }else{
  43. endUrl.add(dto.getUrl());
  44. }
  45. }
  46. }
  47. String nowVal = "";
  48. String start = "";
  49. if(!startUrl.isEmpty()){
  50. start = startUrl.stream().map(String::valueOf).collect(Collectors.joining(","));
  51. nowVal = start+",";
  52. }
  53. String end = "";
  54. if(!endUrl.isEmpty()){
  55. end = endUrl.stream().map(String::valueOf).collect(Collectors.joining(","));
  56. nowVal +=end;
  57. }
  58. OrderImageDTO dto = baseMapper.getOrderUrl(TokenContext.cureOperatorId(),dbName, orderId);
  59. String orgVal = "";
  60. if(StringUtils.isNotBlank(dto.getStartUrl())){
  61. orgVal = dto.getStartUrl()+",";
  62. }
  63. if(StringUtils.isNotBlank(dto.getEndUrl())){
  64. orgVal += dto.getEndUrl();
  65. }
  66. WatermarkImg wi = new WatermarkImg();
  67. wi.setUid(orderId.toString());
  68. wi.setOriginalImg(orgVal);
  69. wi.setNowImg(nowVal);
  70. this.save(wi);
  71. if(orderId != null){
  72. baseMapper.updateOrderUrl(TokenContext.cureOperatorId(),start ,end , dbName, orderId);
  73. }
  74. return VaultsResponse.success();
  75. }
  76. @Override
  77. public VaultsResponse<List<PriceUploadDto>> printingWatermark(List<PriceUploadDto> list) {
  78. for (PriceUploadDto dto : list) {
  79. if(StringUtils.isBlank(dto.getDate()) || StringUtils.isBlank(dto.getUrl()) ||StringUtils.isBlank(dto.getType()) || dto.getType().contains("video")){
  80. continue;
  81. }
  82. String uid = (dto.getUrl().split("/")[dto.getUrl().split("/").length-1]).split("\\.")[0];
  83. WatermarkImg watermarkImg = this.getEntityByBeanId("uid",uid );
  84. if(watermarkImg != null){
  85. dto.setUrl(watermarkImg.getOriginalImg());
  86. }
  87. MultipartFile image = Watermark.createPrice(dto);
  88. VaultsResponse vaultsResponse = ossUtils.uploadOneFile(image,dto.getOrderId());
  89. if(!vaultsResponse.validate()){
  90. return VaultsResponse.failed("水印处理失败");
  91. }
  92. WatermarkImg newWi = new WatermarkImg();
  93. newWi.setNowImg(vaultsResponse.getData().toString());
  94. newWi.setOriginalImg(dto.getUrl());
  95. newWi.setUid((newWi.getNowImg().split("/")[newWi.getNowImg().split("/").length-1]).split("\\.")[0]);
  96. this.save(newWi);
  97. dto.setUrl(newWi.getNowImg());
  98. }
  99. return VaultsResponse.success(list);
  100. }
  101. public static void main(String[] args) {
  102. String url = "https://ptsubsidy.oss-cn-beijing.aliyuncs.com/yqaa/S123N-FAD786CB-AFB3-402C-9FD0-953838D74E8E.jpg";
  103. String val = url.split("/")[url.split("/").length-1];
  104. System.out.println(val.split("\\.")[0]);
  105. }
  106. }