Browse Source

解决运营端生成小程序体验码时文件表没有客户Id问题

dev_shibei_match
sunyuchao 4 years ago
parent
commit
a5bef8fcd7
  1. 11
      epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/feign/OssFeignClient.java
  2. 5
      epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/feign/fallback/OssFeignClientFallback.java
  3. 11
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/controller/OssController.java
  4. 8
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/service/OssService.java
  5. 32
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/service/impl/OssServiceImpl.java
  6. 3
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeServiceImpl.java

11
epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/feign/OssFeignClient.java

@ -16,9 +16,9 @@ import feign.codec.Encoder;
import feign.form.spring.SpringFormEncoder;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.multipart.MultipartFile;
@ -45,6 +45,15 @@ public interface OssFeignClient {
@PostMapping(value ="oss/file/uploadqrcode", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
Result<UploadImgResultDTO> uploadQrCode(@RequestPart(value = "file") MultipartFile file);
/**
* 运营端生成小程序体验码传递客户Id
* @param file 文件
* @param file 文件
* @author sun
*/
@PostMapping(value ="oss/file/uploadqrcodeV2", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
Result<UploadImgResultDTO> uploadQrCodeV2(@RequestPart(value = "file") MultipartFile file, @RequestParam("customerId") String customerId);
//@Configuration
class MultipartSupportConfig {

5
epmet-module/epmet-oss/epmet-oss-client/src/main/java/com/epmet/feign/fallback/OssFeignClientFallback.java

@ -35,4 +35,9 @@ public class OssFeignClientFallback implements OssFeignClient {
return ModuleUtils.feignConError(ServiceConstant.EPMET_OSS_SERVER, "uploadQrCode", file);
}
@Override
public Result<UploadImgResultDTO> uploadQrCodeV2(MultipartFile file, String customerId) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_OSS_SERVER, "uploadQrCodeV2", file, customerId);
}
}

11
epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/controller/OssController.java

@ -362,4 +362,15 @@ public class OssController {
return new Result<Boolean>().ok(ossService.articleRemoveFile(formDTO));
}
/**
* 运营端生成小程序体验码传递客户Id [开发测试环境会直接访问生产third没有token需要业务中传递客户Id值]
* @param file 文件
* @param file 文件
* @author sun
*/
@PostMapping("uploadqrcodeV2")
public Result<UploadImgResultDTO> uploadQrCodeV2(@RequestPart(value = "file") MultipartFile file, @RequestParam("customerId") String customerId) {
return ossService.uploadImgV2(file, null, customerId);
}
}

8
epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/service/OssService.java

@ -45,4 +45,12 @@ public interface OssService extends BaseService<OssEntity> {
* @return boolean
*/
boolean articleRemoveFile(RemoveFileFormDTO formDTO);
/**
* 运营端生成小程序体验码传递客户Id [开发测试环境会直接访问生产third没有token需要业务中传递客户Id值]
* @param file 文件
* @param file 文件
* @author sun
*/
Result<UploadImgResultDTO> uploadImgV2(MultipartFile file, String privacy, String customerId);
}

32
epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/service/impl/OssServiceImpl.java

@ -210,5 +210,37 @@ public class OssServiceImpl extends BaseServiceImpl<OssDao, OssEntity> implement
return true;
}
@Override
public Result<UploadImgResultDTO> uploadImgV2(MultipartFile file, String privacy, String customerId) {
if (file.isEmpty()) {
return new Result<UploadImgResultDTO>().error(ModuleErrorCode.UPLOAD_FILE_EMPTY);
}
//上传文件
String extension = FilenameUtils.getExtension(file.getOriginalFilename());
String url = null;
String ossDomain = null;
try {
AbstractCloudStorageService storageService = OssFactory.build();
url = storageService.uploadSuffix(file.getBytes(), extension, privacy);
ossDomain = storageService.getOssDomain(privacy);
} catch (IOException e) {
logger.error("图片上传异常", e);
throw new RenException("图片上传异常");
}
//保存文件信息
OssEntity ossEntity = new OssEntity();
ossEntity.setUrl(url);
ossEntity.setCustomerId(customerId);
baseDao.insert(ossEntity);
//文件信息
UploadImgResultDTO dto = new UploadImgResultDTO();
dto.setUrl(url);
dto.setDomain(ossDomain);
return new Result<UploadImgResultDTO>().ok(dto);
}
}

3
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeServiceImpl.java

@ -549,7 +549,8 @@ public class CodeServiceImpl implements CodeService {
WxResult<byte[]> wxResult = wxMaCodeService.getQrCode(authInfo.getAuthorizerAccessToken(), formDTO.getPath());
MultipartFile file = null;
file = new MockMultipartFile("file", "QRCode.jpg", "image/jpeg", wxResult.getData());
Result<UploadImgResultDTO> uploadResult = ossFeignClient.uploadQrCode(file);
//2021.5.7 sun 开发、测试运营端生成小程序体验码都是直接访问生产third服务,没有token 需要业务层传递客户Id
Result<UploadImgResultDTO> uploadResult = ossFeignClient.uploadQrCodeV2(file, codeCustomerDTO.getCustomerId());
codeCustomerDTO.setQrCode(uploadResult.getData().getUrl());
codeCustomerService.update(codeCustomerDTO);
result.setQrcode(uploadResult.getData().getUrl());

Loading…
Cancel
Save