WatermarkImgServiceImpl.java 5.3 KB

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