Просмотр исходного кода

merge from release_toaliyun_real

release_toaliyun_real
xiaohanzi 5 лет назад
Родитель
Сommit
1afa87cfd4
22 измененных файлов: 153 добавлений и 821 удалений
  1. +3
    -58
      mallinkAdmin/src/main/java/com/iformall/controller/sys/UploadController.java
  2. +1
    -83
      mallinkAdmin/src/main/java/com/iformall/ueditor/upload/Uploader.java
  3. +1
    -135
      mallinkBApi/src/main/java/com/iformall/controller/UploadController.java
  4. +1
    -114
      mallinkCApi/src/main/java/com/iformall/controller/UploadController.java
  5. +2
    -2
      mallinkPosApi/src/main/java/com/iformall/controller/PosController.java
  6. +2
    -2
      mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java
  7. +7
    -1
      mallinkService/src/main/java/com/iformall/domain/po/WxCUserBasicInfo.java
  8. +24
    -0
      mallinkService/src/main/java/com/iformall/service/ExcelService.java
  9. +1
    -3
      mallinkService/src/main/java/com/iformall/service/QrCodeService.java
  10. +0
    -110
      mallinkService/src/main/java/com/iformall/service/impl/QrCodeServiceImpl.java
  11. +52
    -27
      mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java
  12. +3
    -3
      mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java
  13. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxMallBuildingServiceImpl.java
  14. +26
    -27
      mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java
  15. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxMsgValidationcodeModelServiceImpl.java
  16. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java
  17. +1
    -1
      mallinkService/src/main/java/com/iformall/utils/Constant.java
  18. +12
    -3
      mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml
  19. +10
    -0
      mallinkService/src/main/resources/mapper/WxMerchantMapper.xml
  20. +3
    -165
      mallinkSysAdmin/src/main/java/com/iformall/controller/sys/UploadController.java
  21. +1
    -78
      mallinkSysAdmin/src/main/java/com/iformall/ueditor/upload/Uploader.java
  22. +0
    -6
      pom.xml

+ 3
- 58
mallinkAdmin/src/main/java/com/iformall/controller/sys/UploadController.java Просмотреть файл

@@ -1,13 +1,11 @@
package com.iformall.controller.sys; package com.iformall.controller.sys;


import com.amazonaws.services.s3.model.*;
import com.iformall.annotation.SystemControllerLog; import com.iformall.annotation.SystemControllerLog;
import com.iformall.common.ErrorCode; import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.controller.base.BaseController; import com.iformall.controller.base.BaseController;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import com.iformall.file.aliyun.AliyunOSS; import com.iformall.file.aliyun.AliyunOSS;
import com.iformall.service.QrCodeService;
import com.iformall.utils.ImgUtil; import com.iformall.utils.ImgUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@@ -37,18 +35,6 @@ public class UploadController extends BaseController {
@Autowired @Autowired
private AliyunOSS aliyunOSS; private AliyunOSS aliyunOSS;


@Autowired
private QrCodeService qrCodeService;

private String getFileName(TenantEntity tenantEntity, String fileName) {
if (StringUtils.isBlank(tenantEntity.getParentTenantId())) {
fileName = tenantEntity.getTenantId() + "/" + fileName;
} else {
fileName = tenantEntity.getTenantId() + "/" + tenantEntity.getParentTenantId() + "/" +fileName;
}
return fileName;
}

/** /**
* 上传文件 * 上传文件
* *
@@ -64,21 +50,12 @@ public class UploadController extends BaseController {


TenantEntity tenantEntity = getTenantInfo(); TenantEntity tenantEntity = getTenantInfo();


ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(multiReq.getContentType());
metadata.setContentLength(multiReq.getSize());

String fileName = UUID.randomUUID().toString();
int dot = multiReq.getOriginalFilename().lastIndexOf('.'); int dot = multiReq.getOriginalFilename().lastIndexOf('.');
String fileFormat = ""; String fileFormat = "";
if (dot >= 0) { if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
fileName = getFileName(tenantEntity, fileName + fileFormat);
} else {
fileName = getFileName(tenantEntity, fileName);
} }


// ResultData data = qrCodeService.awsUpload(multiReq.getInputStream(), metadata, fileName, tenantEntity);
ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream());
return data; return data;
} }
@@ -103,16 +80,13 @@ public class UploadController extends BaseController {
if (size > length) { if (size > length) {
return new ResultData(ErrorCode.PICTURE_SIZE_EXCEED); return new ResultData(ErrorCode.PICTURE_SIZE_EXCEED);
} }
String fileName = UUID.randomUUID().toString();
String tempFileName = fileName;
String tempFileName = UUID.randomUUID().toString();
String fileFormat = ""; String fileFormat = "";


int dot = multiReq.getOriginalFilename().lastIndexOf('.'); int dot = multiReq.getOriginalFilename().lastIndexOf('.');
if (dot >= 0) { if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
fileName = getFileName(tenantEntity, fileName + fileFormat);
} else {
fileName = getFileName(tenantEntity, fileName);
} }




@@ -138,19 +112,11 @@ public class UploadController extends BaseController {
logger.info("local new file: " + localNewImgFileName); logger.info("local new file: " + localNewImgFileName);
// 删除本地缓存 // 删除本地缓存
localFile.delete(); localFile.delete();
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(multiReq.getContentType());
metadata.setContentLength(newFile.length());
// ResultData data = qrCodeService.awsUpload(new FileInputStream(newFile), metadata, fileName, tenantEntity);
ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, new FileInputStream(newFile)); ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, new FileInputStream(newFile));
// 删除本地缓存 // 删除本地缓存
newFile.delete(); newFile.delete();
return data; return data;
} else { } else {
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(multiReq.getContentType());
metadata.setContentLength(size);
// ResultData data = qrCodeService.awsUpload(multiReq.getInputStream(), metadata, fileName, tenantEntity);
ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream());
return data; return data;
} }
@@ -180,26 +146,14 @@ public class UploadController extends BaseController {
for(MultipartFile multipartFile: files) { for(MultipartFile multipartFile: files) {
Map<String, String> map = new HashMap<>(); Map<String, String> map = new HashMap<>();


ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(multipartFile.getContentType());
metadata.setContentLength(multipartFile.getSize());

FileOutputStream fos = null;
BufferedInputStream fs = null;

map.put("key", multipartFile.getOriginalFilename()); map.put("key", multipartFile.getOriginalFilename());


String fileName = UUID.randomUUID().toString();
int dot = multipartFile.getOriginalFilename().lastIndexOf('.'); int dot = multipartFile.getOriginalFilename().lastIndexOf('.');
String fileFormat = ""; String fileFormat = "";
if (dot >= 0) { if (dot >= 0) {
fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length());; fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length());;
fileName = getFileName(tenantEntity, fileName + fileFormat);
} else {
fileName = getFileName(tenantEntity, fileName);
} }


// ResultData data1 = qrCodeService.awsUpload(multipartFile.getInputStream(), metadata, fileName, getTenantInfo());
ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream()); ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream());


if(data1.code == ResultData.SUCCESS) { if(data1.code == ResultData.SUCCESS) {
@@ -233,21 +187,12 @@ public class UploadController extends BaseController {
public ResultData cimgUpload(@RequestParam("file") MultipartFile multiReq) throws Exception{ public ResultData cimgUpload(@RequestParam("file") MultipartFile multiReq) throws Exception{
logger.info("[" + getIpAddr() + "] UploadController::cimgUpload"); logger.info("[" + getIpAddr() + "] UploadController::cimgUpload");


ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(multiReq.getContentType());
metadata.setContentLength(multiReq.getSize());

String fileName = multiReq.getOriginalFilename();

int dot = multiReq.getOriginalFilename().lastIndexOf('.'); int dot = multiReq.getOriginalFilename().lastIndexOf('.');
String fileFormat = ""; String fileFormat = "";
if (dot >= 0) { if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
} }
fileName = "cimg/" + fileName;
// ResultData data = qrCodeService.awsUpload(multiReq.getInputStream(), metadata, fileName, new TenantEntity() {{
// setTenantId("cimg");
// }});

ResultData data = aliyunOSS.uploadFile("cimg", fileFormat, multiReq.getInputStream()); ResultData data = aliyunOSS.uploadFile("cimg", fileFormat, multiReq.getInputStream());
return data; return data;
} }


+ 1
- 83
mallinkAdmin/src/main/java/com/iformall/ueditor/upload/Uploader.java Просмотреть файл

@@ -1,17 +1,5 @@
package com.iformall.ueditor.upload; package com.iformall.ueditor.upload;


import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.amazonaws.AmazonClientException;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWSCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.CannedAccessControlList;
import com.amazonaws.services.s3.model.ObjectMetadata;
import com.amazonaws.services.s3.model.PutObjectRequest;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.po.MallResource; import com.iformall.domain.po.MallResource;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
@@ -25,15 +13,12 @@ import org.apache.shiro.SecurityUtils;
import org.apache.shiro.session.Session; import org.apache.shiro.session.Session;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.MultipartHttpServletRequest;


import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.io.IOException; import java.io.IOException;
import java.net.URL;
import java.util.Map; import java.util.Map;
import java.util.UUID;


public class Uploader { public class Uploader {


@@ -42,38 +27,14 @@ public class Uploader {
private HttpServletRequest request = null; private HttpServletRequest request = null;
private Map<String, Object> conf = null; private Map<String, Object> conf = null;
private MallResourceService mallResourceService = null; private MallResourceService mallResourceService = null;
private AmazonS3 s3 = null;


private AliyunOSS aliyunOSS; private AliyunOSS aliyunOSS;


private String getFileName(TenantEntity tenantEntity, String fileName) {
if (StringUtils.isBlank(tenantEntity.getParentTenantId())) {
fileName = tenantEntity.getTenantId() + "/" + fileName;
} else {
fileName = tenantEntity.getTenantId() + "/" + tenantEntity.getParentTenantId() + "/" + fileName;
}
return fileName;
}

public Uploader(HttpServletRequest request, Map<String, Object> conf, MallResourceService mallResourceService, AliyunOSS aliyunOSS) { public Uploader(HttpServletRequest request, Map<String, Object> conf, MallResourceService mallResourceService, AliyunOSS aliyunOSS) {
this.request = request; this.request = request;
this.conf = conf; this.conf = conf;
this.mallResourceService = mallResourceService; this.mallResourceService = mallResourceService;
this.aliyunOSS = aliyunOSS; this.aliyunOSS = aliyunOSS;
// this.s3 = AmazonS3ClientBuilder.standard()
// .withRegion(conf.get("clientRegion").toString())
// .withCredentials(new AWSCredentialsProvider() {
// @Override
// public AWSCredentials getCredentials() {
// return new BasicAWSCredentials(conf.get("access").toString(), conf.get("secret").toString());
// }
//
// @Override
// public void refresh() {
//
// }
// })
// .build();
} }


public final State doExec() { public final State doExec() {
@@ -99,32 +60,17 @@ public class Uploader {
logger.error("TENANT is null"); logger.error("TENANT is null");
} }


String fileName = UUID.randomUUID().toString();
int dot = multiReq.getOriginalFilename().lastIndexOf('.'); int dot = multiReq.getOriginalFilename().lastIndexOf('.');
String fileFormat = ""; String fileFormat = "";
if (dot >= 0) { if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
fileName = getFileName(tenantEntity, fileName + fileFormat);
} else {
fileName = getFileName(tenantEntity, fileName);
} }


state = state = new BaseState(true);
state = new BaseState(true);
state.putInfo("size", multiReq.getSize()); state.putInfo("size", multiReq.getSize());
state.putInfo("title", filedName); state.putInfo("title", filedName);


JSONObject stateJson = JSON.parseObject(state.toJSONString());

ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(multiReq.getContentType());
metadata.setContentLength(multiReq.getSize());

try { try {
// s3.putObject(
// new PutObjectRequest(conf.get("bucketName").toString(), fileName, multiReq.getInputStream(), metadata)
// .withCannedAcl(CannedAccessControlList.PublicRead));
// URL url = s3.getUrl(conf.get("bucketName").toString(), fileName);
//logger.info(url.toString());


ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream());
Map<String, String> map = (Map<String, String>) data.data; Map<String, String> map = (Map<String, String>) data.data;
@@ -133,38 +79,10 @@ public class Uploader {
MallResource mr = new MallResource(); MallResource mr = new MallResource();
mr.updateTenantInfo(tenantEntity); mr.updateTenantInfo(tenantEntity);
mr.setBucket(map.get("bucketName")); mr.setBucket(map.get("bucketName"));
//mr.setS3Key(fileName);
mr.setUrl(map.get("url")); mr.setUrl(map.get("url"));


// state.putInfo("url", url.toString());
//
// MallResource mr = new MallResource();
// mr.updateTenantInfo(tenantEntity);
// mr.setBucket(conf.get("bucketName").toString());
// mr.setS3Key(fileName);
// mr.setUrl(url.toString());
mallResourceService.saveOrUpdate(mr); mallResourceService.saveOrUpdate(mr);
} catch (AmazonServiceException ase) {
/*
logger.warn("Caught an AmazonServiceException, which " +
"means your request made it " +
"to Amazon S3, but was rejected with an error response" +
" for some reason.");
logger.warn(ase.getMessage());
*/
ase.printStackTrace();
} catch (AmazonClientException ace) {
/*
logger.warn("Caught an AmazonClientException, which " +
"means the client encountered " +
"an internal error while trying to " +
"communicate with S3, " +
"such as not being able to access the network.");
logger.warn("Error Message: " + ace.getMessage());
*/
ace.printStackTrace();
} catch (IOException ioe) { } catch (IOException ioe) {
//logger.warn("Caught an IOException: " + ioe.getMessage());
ioe.printStackTrace(); ioe.printStackTrace();
} }
} }


+ 1
- 135
mallinkBApi/src/main/java/com/iformall/controller/UploadController.java Просмотреть файл

@@ -1,22 +1,9 @@
package com.iformall.controller; package com.iformall.controller;




import com.amazonaws.AmazonClientException;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWSCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.CannedAccessControlList;
import com.amazonaws.services.s3.model.ObjectMetadata;
import com.amazonaws.services.s3.model.PutObjectRequest;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.config.AwsProperty;
import com.iformall.domain.po.MallResource;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import com.iformall.file.aliyun.AliyunOSS; import com.iformall.file.aliyun.AliyunOSS;
import com.iformall.service.MallResourceService;
import com.iformall.utils.ImgUtil; import com.iformall.utils.ImgUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@@ -31,7 +18,6 @@ import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;


import java.io.*; import java.io.*;
import java.net.URL;
import java.util.*; import java.util.*;
import java.util.List; import java.util.List;


@@ -42,94 +28,12 @@ public class UploadController extends BaseController {


private final Logger logger = LoggerFactory.getLogger(this.getClass()); private final Logger logger = LoggerFactory.getLogger(this.getClass());


@Autowired
private AwsProperty awsProperty;

@Autowired
private MallResourceService mallResourceService;

@Autowired @Autowired
private String fmUploadDir; private String fmUploadDir;


@Autowired @Autowired
private AliyunOSS aliyunOSS; private AliyunOSS aliyunOSS;


private AmazonS3 s3 = null;

private String getFileName(TenantEntity tenantEntity, String fileName) {
if (StringUtils.isBlank(tenantEntity.getParentTenantId())) {
fileName = tenantEntity.getTenantId() + "/" + fileName;
} else {
fileName = tenantEntity.getTenantId() + "/" + tenantEntity.getParentTenantId() + "/" + fileName;
}
return fileName;
}

private ResultData awsUpload(InputStream inputStream, ObjectMetadata metadata, String fileName, TenantEntity tenantEntity) {
ResultData data = new ResultData();
try {
if (s3 == null) {
s3 = AmazonS3ClientBuilder.standard()
.withRegion(awsProperty.getClientRegion())
.withCredentials(new AWSCredentialsProvider() {
@Override
public AWSCredentials getCredentials() {
return new BasicAWSCredentials(awsProperty.getAccess(), awsProperty.getSecret());
}

@Override
public void refresh() {

}
})
.build();
}

s3.putObject(
new PutObjectRequest(awsProperty.getBucketName(), fileName, inputStream, metadata)
.withCannedAcl(CannedAccessControlList.PublicRead));
URL url = s3.getUrl(awsProperty.getBucketName(), fileName);
logger.info(url.toString());

MallResource mr = new MallResource();
mr.updateTenantInfo(tenantEntity);
mr.setBucket(awsProperty.getBucketName());
mr.setS3Key(fileName);
mr.setUrl(url.toString());
mallResourceService.saveOrUpdate(mr);

data.code = ResultData.SUCCESS;
Map<String, String> map = new HashMap<>();
map.put("url", url.toString());
data.data = map;
} catch (AmazonServiceException ase) {
data.code = ResultData.ERROR;
logger.warn("Caught an AmazonServiceException, which " +
"means your request made it " +
"to Amazon S3, but was rejected with an error response" +
" for some reason.");
logger.warn(ase.getMessage());
data.code = ResultData.ERROR;
data.message = "上传失败";
} catch (AmazonClientException ace) {
data.code = ResultData.ERROR;
logger.warn("Caught an AmazonClientException, which " +
"means the client encountered " +
"an internal error while trying to " +
"communicate with S3, " +
"such as not being able to access the network.");
logger.warn("Error Message: " + ace.getMessage());
data.code = ResultData.ERROR;
data.message = "上传失败";
} catch (Exception ioe) {
data.code = ResultData.ERROR;
logger.warn("Caught an IOException: " + ioe.getMessage());
data.code = ResultData.ERROR;
data.message = "上传失败";
}
return data;
}

/** /**
* 上传文件 * 上传文件
* *
@@ -144,24 +48,12 @@ public class UploadController extends BaseController {


TenantEntity tenantEntity = getTenantInfo(); TenantEntity tenantEntity = getTenantInfo();


ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(multiReq.getContentType());
metadata.setContentLength(multiReq.getSize());

FileOutputStream fos = null;
BufferedInputStream fs = null;

String fileName = UUID.randomUUID().toString();
int dot = multiReq.getOriginalFilename().lastIndexOf('.'); int dot = multiReq.getOriginalFilename().lastIndexOf('.');
String fileFormat = ""; String fileFormat = "";
if (dot >= 0) { if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
fileName = getFileName(tenantEntity, fileName + fileFormat);
} else {
fileName = getFileName(tenantEntity, fileName);
} }


// ResultData data = awsUpload(multiReq.getInputStream(), metadata, fileName, tenantEntity);
ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream());
return data; return data;
} }
@@ -180,20 +72,14 @@ public class UploadController extends BaseController {


TenantEntity tenantEntity = getTenantInfo(); TenantEntity tenantEntity = getTenantInfo();


String fileName = UUID.randomUUID().toString();
String tempFileName = fileName;
String tempFileName = UUID.randomUUID().toString();
String fileFormat = ""; String fileFormat = "";


int dot = multiReq.getOriginalFilename().lastIndexOf('.'); int dot = multiReq.getOriginalFilename().lastIndexOf('.');
if (dot >= 0) { if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
fileName = getFileName(tenantEntity, fileName + fileFormat);
} else {
fileName = getFileName(tenantEntity, fileName);
} }


System.out.println(fileName);

FileOutputStream fos = null; FileOutputStream fos = null;


String imgFormat = ImgUtil.getImgFormat(fileFormat); String imgFormat = ImgUtil.getImgFormat(fileFormat);
@@ -215,19 +101,11 @@ public class UploadController extends BaseController {
File newFile = ImgUtil.thinImage(localImgFileName, localNewImgFileName, imgFormat); File newFile = ImgUtil.thinImage(localImgFileName, localNewImgFileName, imgFormat);
// 删除本地缓存 // 删除本地缓存
localFile.delete(); localFile.delete();
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(multiReq.getContentType());
metadata.setContentLength(newFile.length());
// ResultData data = awsUpload(new FileInputStream(newFile), metadata, fileName, tenantEntity);
ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, new FileInputStream(newFile)); ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, new FileInputStream(newFile));
// 删除本地缓存 // 删除本地缓存
newFile.delete(); newFile.delete();
return data; return data;
} else { } else {
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(multiReq.getContentType());
metadata.setContentLength(multiReq.getSize());
// ResultData data = awsUpload(multiReq.getInputStream(), metadata, fileName, tenantEntity);
ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream());
return data; return data;
} }
@@ -253,26 +131,14 @@ public class UploadController extends BaseController {
for (MultipartFile multipartFile : files) { for (MultipartFile multipartFile : files) {
Map<String, String> map = new HashMap<>(); Map<String, String> map = new HashMap<>();


ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(multipartFile.getContentType());
metadata.setContentLength(multipartFile.getSize());

FileOutputStream fos = null;
BufferedInputStream fs = null;

map.put("key", multipartFile.getOriginalFilename()); map.put("key", multipartFile.getOriginalFilename());


String fileName = UUID.randomUUID().toString();
int dot = multipartFile.getOriginalFilename().lastIndexOf('.'); int dot = multipartFile.getOriginalFilename().lastIndexOf('.');
String fileFormat = ""; String fileFormat = "";
if (dot >= 0) { if (dot >= 0) {
fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length()); fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length());
getFileName(tenantEntity, fileName + fileFormat);
} else {
getFileName(tenantEntity, fileName);
} }


// ResultData data1 = awsUpload(multipartFile.getInputStream(), metadata, fileName, tenantEntity);
ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream()); ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream());
if (data1.code == ResultData.SUCCESS) { if (data1.code == ResultData.SUCCESS) {
Map _data = (Map) data1.data; Map _data = (Map) data1.data;


+ 1
- 114
mallinkCApi/src/main/java/com/iformall/controller/UploadController.java Просмотреть файл

@@ -1,24 +1,11 @@
package com.iformall.controller; package com.iformall.controller;



import com.amazonaws.AmazonClientException;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWSCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.CannedAccessControlList;
import com.amazonaws.services.s3.model.ObjectMetadata;
import com.amazonaws.services.s3.model.PutObjectRequest;
import com.iformall.common.ErrorCode; import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.config.AwsProperty;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import com.iformall.file.aliyun.AliyunOSS; import com.iformall.file.aliyun.AliyunOSS;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -28,10 +15,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;


import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.net.URL;
import java.util.*; import java.util.*;


@RestController @RestController
@@ -41,80 +25,9 @@ public class UploadController extends BaseController {


private final Logger logger = LoggerFactory.getLogger(this.getClass()); private final Logger logger = LoggerFactory.getLogger(this.getClass());


@Autowired
private AwsProperty awsProperty;

@Autowired @Autowired
private AliyunOSS aliyunOSS; private AliyunOSS aliyunOSS;


private AmazonS3 s3 = null;

private ResultData awsUpload(MultipartFile multiReq, ObjectMetadata metadata, String fileName) {
ResultData data = new ResultData();
try {
if (s3 == null) {
s3 = AmazonS3ClientBuilder.standard()
.withRegion(awsProperty.getClientRegion())
.withCredentials(new AWSCredentialsProvider() {
@Override
public AWSCredentials getCredentials() {
return new BasicAWSCredentials(awsProperty.getAccess(), awsProperty.getSecret());
}

@Override
public void refresh() {

}
})
.build();
}

s3.putObject(
new PutObjectRequest(awsProperty.getBucketName(), fileName, multiReq.getInputStream(), metadata)
.withCannedAcl(CannedAccessControlList.PublicRead));
URL url = s3.getUrl(awsProperty.getBucketName(), fileName);
logger.info(url.toString());

data.code = ResultData.SUCCESS;
Map<String, String> map = new HashMap<>();
map.put("url", url.toString());
data.data = map;
} catch (AmazonServiceException ase) {
data.code = ResultData.ERROR;
logger.warn("Caught an AmazonServiceException, which " +
"means your request made it " +
"to Amazon S3, but was rejected with an error response" +
" for some reason.");
logger.warn(ase.getMessage());
data.code = ResultData.ERROR;
data.message = "上传失败";
} catch (AmazonClientException ace) {
data.code = ResultData.ERROR;
logger.warn("Caught an AmazonClientException, which " +
"means the client encountered " +
"an internal error while trying to " +
"communicate with S3, " +
"such as not being able to access the network.");
logger.warn("Error Message: " + ace.getMessage());
data.code = ResultData.ERROR;
data.message = "上传失败";
} catch (IOException ioe) {
data.code = ResultData.ERROR;
logger.warn("Caught an IOException: " + ioe.getMessage());
data.code = ResultData.ERROR;
data.message = "上传失败";
}
return data;
}

private String getFileName(TenantEntity tenantEntity, String fileName) {
if (StringUtils.isBlank(tenantEntity.getParentTenantId())) {
fileName = tenantEntity.getTenantId() + "/" + fileName;
} else {
fileName = tenantEntity.getTenantId() + "/" + tenantEntity.getParentTenantId() + "/" + fileName;
}
return fileName;
}


/** /**
* 上传文件 * 上传文件
@@ -130,29 +43,16 @@ public class UploadController extends BaseController {


TenantEntity tenantEntity = getTenantInfo(); TenantEntity tenantEntity = getTenantInfo();


ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(multiReq.getContentType());
metadata.setContentLength(multiReq.getSize());

FileOutputStream fos = null;
BufferedInputStream fs = null;

String fileName = UUID.randomUUID().toString();
int dot = multiReq.getOriginalFilename().lastIndexOf('.'); int dot = multiReq.getOriginalFilename().lastIndexOf('.');
String fileFormat = ""; String fileFormat = "";
if (dot >= 0) { if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
fileName = getFileName(tenantEntity, fileName + fileFormat);
} else {
fileName = getFileName(tenantEntity, fileName);
} }


// ResultData data = awsUpload(multiReq, metadata, fileName);
try { try {
ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream());
return data; return data;
} catch (IOException e) { } catch (IOException e) {
//e.printStackTrace();
logger.error(e.getMessage()); logger.error(e.getMessage());
return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR);
} }
@@ -179,26 +79,14 @@ public class UploadController extends BaseController {
for (MultipartFile multipartFile : files) { for (MultipartFile multipartFile : files) {
Map<String, String> map = new HashMap<>(); Map<String, String> map = new HashMap<>();


ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(multipartFile.getContentType());
metadata.setContentLength(multipartFile.getSize());

FileOutputStream fos = null;
BufferedInputStream fs = null;

map.put("key", multipartFile.getOriginalFilename()); map.put("key", multipartFile.getOriginalFilename());


String fileName = UUID.randomUUID().toString();
int dot = multipartFile.getOriginalFilename().lastIndexOf('.'); int dot = multipartFile.getOriginalFilename().lastIndexOf('.');
String fileFormat = ""; String fileFormat = "";
if (dot >= 0) { if (dot >= 0) {
fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length()); fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length());
fileName = getFileName(tenantEntity, fileName + fileFormat);
} else {
fileName = getFileName(tenantEntity, fileName);
} }

// ResultData data1 = awsUpload(multipartFile, metadata, fileName);
try { try {
ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream()); ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream());
if (data1.code == ResultData.SUCCESS) { if (data1.code == ResultData.SUCCESS) {
@@ -212,7 +100,6 @@ public class UploadController extends BaseController {
return data; return data;
} }
} catch (IOException e) { } catch (IOException e) {
//e.printStackTrace();
logger.error(e.getMessage()); logger.error(e.getMessage());
return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR); return new ResultData(ErrorCode.PICTURE_ANALYZING_ERROR);
} }


+ 2
- 2
mallinkPosApi/src/main/java/com/iformall/controller/PosController.java Просмотреть файл

@@ -46,9 +46,9 @@ public class PosController extends BaseController {
"\"return_code\":\"SUCCESS\",\"return_msg\":\"\",\"result_code\":\"SUCCESS\"," + "\"return_code\":\"SUCCESS\",\"return_msg\":\"\",\"result_code\":\"SUCCESS\"," +
"\"tenant_id\":\"456\",\"mall_name\":\"富茂中心\"," + "\"tenant_id\":\"456\",\"mall_name\":\"富茂中心\"," +
"\"merchant_id\":\"320833942159982592\",\"merchant_name\":\"东软合作\"," + "\"merchant_id\":\"320833942159982592\",\"merchant_name\":\"东软合作\"," +
"\"merchant_img\":\"https://s3.cn-northwest-1.amazonaws.com.cn/iformall-net/234/WechatIMG5071.png\"," +
"\"merchant_img\":\"https://formall.oss-accelerate.aliyuncs.com/234/WechatIMG5071.png\"," +
"\"order_operation_id\":\"320834180694245376\"," + "\"order_operation_id\":\"320834180694245376\"," +
"\"qrcode_url\":\"https://s3.cn-northwest-1.amazonaws.com.cn/iformall-net/456/formall_c.png\"," +
"\"qrcode_url\":\" https://formall.oss-accelerate.aliyuncs.com/456/formall_c.png\"," +
"\"pos_qrcode_rule\":\"https://ctest.malls.iformall.com/order/(二维码规则: url + POS订单ID)\"," + "\"pos_qrcode_rule\":\"https://ctest.malls.iformall.com/order/(二维码规则: url + POS订单ID)\"," +
"\"discount\":\"false(是否支持会员折扣,false:禁用,true:可用)\"," + "\"discount\":\"false(是否支持会员折扣,false:禁用,true:可用)\"," +
"\"coupon\":\"0(会员优惠券是否开启,0-禁用,1-单选可用,2-多选可用)\",\"coupon_desc\":\"禁用(会员优惠券是否开启描述)\"," + "\"coupon\":\"0(会员优惠券是否开启,0-禁用,1-单选可用,2-多选可用)\",\"coupon_desc\":\"禁用(会员优惠券是否开启描述)\"," +


+ 2
- 2
mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java Просмотреть файл

@@ -34,9 +34,9 @@ public class ContractSchedule {




/** /**
* 2小时执行一次
* 凌晨5分
*/ */
@Scheduled(cron = "0 */1 * * * ?")
@Scheduled(cron = "0 5 0 * * ?")
public void sendMsg() { public void sendMsg() {
logger.info("合同状态更新开始"); logger.info("合同状态更新开始");




+ 7
- 1
mallinkService/src/main/java/com/iformall/domain/po/WxCUserBasicInfo.java Просмотреть файл

@@ -108,7 +108,7 @@ public class WxCUserBasicInfo extends BaseEntity {
private Integer status; private Integer status;


@TableField(exist = false) @TableField(exist = false)
@Excel(name="标签",width = 50,orderNum = "10")
//@Excel(name="标签",width = 50,orderNum = "10")
private String tagNames; private String tagNames;




@@ -129,6 +129,12 @@ public class WxCUserBasicInfo extends BaseEntity {


@TableField(exist = false) @TableField(exist = false)
private Date endTime; private Date endTime;
@TableField(exist = false)
private Integer begin;
@TableField(exist = false)
private Integer limit;


@TableField(exist = false) @TableField(exist = false)
@io.swagger.annotations.ApiModelProperty(value="操作人类型 枚举:EnumUserType",name="operatorType") @io.swagger.annotations.ApiModelProperty(value="操作人类型 枚举:EnumUserType",name="operatorType")


+ 24
- 0
mallinkService/src/main/java/com/iformall/service/ExcelService.java Просмотреть файл

@@ -7,6 +7,8 @@ import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.ImportParams; import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import cn.afterturn.easypoi.handler.inter.IExcelExportServer;

import com.iformall.common.ErrorCode; import com.iformall.common.ErrorCode;
import com.iformall.exception.MallinkException; import com.iformall.exception.MallinkException;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@@ -37,6 +39,28 @@ public class ExcelService {
defaultExport(list, pojoClass, fileName, response, exportParams, false); defaultExport(list, pojoClass, fileName, response, exportParams, false);
} }


public void exportBigExcel(IExcelExportServer server,Object queryParams, String title, String sheetName, Class<?> pojoClass, String fileName, HttpServletResponse response, boolean template) {
exportBig(server,queryParams, pojoClass, fileName, response, new ExportParams(title, sheetName, ExcelType.XSSF), template);
}
private void exportBig(IExcelExportServer server,Object queryParams,Class<?> pojoClass, String fileName, HttpServletResponse response, ExportParams exportParams, boolean template) {
Workbook workbook = ExcelExportUtil.exportBigExcel(exportParams, pojoClass, server, queryParams);
if (workbook != null) {
if (template) {
Sheet sheetAt = workbook.getSheetAt(0);
CellStyle cellStyle = workbook.createCellStyle();
Font font = workbook.createFont();
font.setColor(IndexedColors.RED.getIndex());
cellStyle.setFont(font);
Row row = sheetAt.createRow(sheetAt.getLastRowNum() + 2);
Cell cell = row.createCell(0);
cell.setCellValue("*为必填字段(导入数据时此行文字请删除)");
cell.setCellStyle(cellStyle);
}
}
downLoadExcel(fileName, response, workbook);
}
public void exportExcel(List<?> list, String title, String sheetName, Class<?> pojoClass, String fileName, HttpServletResponse response, boolean template) { public void exportExcel(List<?> list, String title, String sheetName, Class<?> pojoClass, String fileName, HttpServletResponse response, boolean template) {
defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName, ExcelType.XSSF), template); defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName, ExcelType.XSSF), template);
} }


+ 1
- 3
mallinkService/src/main/java/com/iformall/service/QrCodeService.java Просмотреть файл

@@ -1,6 +1,5 @@
package com.iformall.service; package com.iformall.service;


import com.amazonaws.services.s3.model.ObjectMetadata;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import com.iformall.enums.EnumPayWay; import com.iformall.enums.EnumPayWay;
@@ -9,7 +8,6 @@ import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.util.Map; import java.util.Map;


@Service @Service
@@ -24,5 +22,5 @@ public interface QrCodeService {
ResultData uploadQrcode(TenantEntity tenantEntity, int type, String pageUrl, String sceneParam, ResultData uploadQrcode(TenantEntity tenantEntity, int type, String pageUrl, String sceneParam,
int withText, String text1, String text2, int withText, String text1, String text2,
String name,EnumPayWay payWay); String name,EnumPayWay payWay);
ResultData awsUpload(InputStream inputStream, ObjectMetadata metadata, String fileName, TenantEntity tenantEntity);
} }

+ 0
- 110
mallinkService/src/main/java/com/iformall/service/impl/QrCodeServiceImpl.java Просмотреть файл

@@ -1,33 +1,16 @@
package com.iformall.service.impl; package com.iformall.service.impl;


import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.bean.WxMaCodeLineColor;
import com.amazonaws.AmazonClientException;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWSCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.CannedAccessControlList;
import com.amazonaws.services.s3.model.ObjectMetadata;
import com.amazonaws.services.s3.model.PutObjectRequest;
import com.iformall.common.ErrorCode; import com.iformall.common.ErrorCode;
import com.iformall.common.Result; import com.iformall.common.Result;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.config.AwsProperty;
import com.iformall.domain.po.MallResource;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import com.iformall.enums.EnumPayWay; import com.iformall.enums.EnumPayWay;
import com.iformall.domain.po.WxAppinfo; import com.iformall.domain.po.WxAppinfo;
import com.iformall.exception.MallinkException; import com.iformall.exception.MallinkException;
import com.iformall.file.aliyun.AliyunOSS; import com.iformall.file.aliyun.AliyunOSS;
import com.iformall.service.MallResourceService;
import com.iformall.service.QrCodeService; import com.iformall.service.QrCodeService;
import com.iformall.service.WxAppinfoService; import com.iformall.service.WxAppinfoService;
import com.iformall.service.pay.PayServiceFactory; import com.iformall.service.pay.PayServiceFactory;
import com.iformall.service.wechat.FmOpenService;
import com.iformall.utils.MaUtil;
import com.iformall.utils.QRCodeUtils; import com.iformall.utils.QRCodeUtils;
import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.common.error.WxErrorException;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@@ -38,7 +21,6 @@ import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.*; import java.io.*;
import java.net.URL;
import java.util.*; import java.util.*;


/** /**
@@ -52,83 +34,12 @@ public class QrCodeServiceImpl implements QrCodeService {
@Autowired @Autowired
private boolean isFmOpen; private boolean isFmOpen;
@Autowired @Autowired
private AwsProperty awsProperty;
@Autowired
private MallResourceService mallResourceService;
@Autowired
private String fmUploadDir; private String fmUploadDir;
@Autowired @Autowired
private PayServiceFactory payServiceFactory; private PayServiceFactory payServiceFactory;
@Autowired @Autowired
private AliyunOSS aliyunOSS; private AliyunOSS aliyunOSS;


private AmazonS3 s3 = null;

@Override
public ResultData awsUpload(InputStream inputStream, ObjectMetadata metadata, String fileName, TenantEntity tenantEntity) {
ResultData data = new ResultData();
try {
if(s3 == null) {
s3 = AmazonS3ClientBuilder.standard()
.withRegion(awsProperty.getClientRegion())
.withCredentials(new AWSCredentialsProvider() {
@Override
public AWSCredentials getCredentials() {
return new BasicAWSCredentials(awsProperty.getAccess(), awsProperty.getSecret());
}

@Override
public void refresh() {

}
})
.build();
}

s3.putObject(
new PutObjectRequest(awsProperty.getBucketName(), fileName, inputStream, metadata)
.withCannedAcl(CannedAccessControlList.PublicRead));
URL url = s3.getUrl(awsProperty.getBucketName(), fileName);
logger.info(url.toString());

MallResource mr = new MallResource();
mr.updateTenantInfo(tenantEntity);
mr.setBucket(awsProperty.getBucketName());
mr.setS3Key(fileName);
mr.setUrl(url.toString());
mallResourceService.saveOrUpdate(mr);

data.code = ResultData.SUCCESS;
Map<String, String> map = new HashMap<>();
map.put("url", url.toString());
data.data = map;
} catch (AmazonServiceException ase) {
data.code = ResultData.ERROR;
logger.warn("Caught an AmazonServiceException, which " +
"means your request made it " +
"to Amazon S3, but was rejected with an error response" +
" for some reason.");
logger.warn(ase.getMessage());
data.code = ResultData.ERROR;
data.message = "上传失败";
} catch (AmazonClientException ace) {
data.code = ResultData.ERROR;
logger.warn("Caught an AmazonClientException, which " +
"means the client encountered " +
"an internal error while trying to " +
"communicate with S3, " +
"such as not being able to access the network.");
logger.warn("Error Message: " + ace.getMessage());
data.code = ResultData.ERROR;
data.message = "上传失败";
} catch (Exception ioe) {
data.code = ResultData.ERROR;
logger.warn("Caught an IOException: " + ioe.getMessage());
data.code = ResultData.ERROR;
data.message = "上传失败";
}
return data;
}


@Override @Override
public void downQrCode(TenantEntity tenantEntity, HttpServletRequest request, HttpServletResponse response, Map<String, Object> params,EnumPayWay payWay) throws MallinkException { public void downQrCode(TenantEntity tenantEntity, HttpServletRequest request, HttpServletResponse response, Map<String, Object> params,EnumPayWay payWay) throws MallinkException {
@@ -232,24 +143,12 @@ public class QrCodeServiceImpl implements QrCodeService {


try { try {
//上传 //上传
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType("image/jpeg");
metadata.setContentLength(dest.length());

FileOutputStream fos = null;
BufferedInputStream fs = null;

String fn = UUID.randomUUID().toString();
int dot = fileName.lastIndexOf('.'); int dot = fileName.lastIndexOf('.');
String fileFormat = ""; String fileFormat = "";
if (dot >= 0) { if (dot >= 0) {
fileFormat = dest.getName().substring(dot, dest.getName().length()); fileFormat = dest.getName().substring(dot, dest.getName().length());
fn = getFileName(tenantEntity, fn + fileFormat);
} else {
fn = getFileName(tenantEntity, fn);
} }


// ResultData data = awsUpload(new FileInputStream(dest), metadata, fn, tenantEntity);
ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, new FileInputStream(dest)); ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, new FileInputStream(dest));
org.apache.commons.io.FileUtils.forceDelete(dest); org.apache.commons.io.FileUtils.forceDelete(dest);
return data; return data;
@@ -259,15 +158,6 @@ public class QrCodeServiceImpl implements QrCodeService {
return new ResultData(); return new ResultData();
} }


private String getFileName(TenantEntity tenantEntity, String fn) {
if (StringUtils.isBlank(tenantEntity.getParentTenantId())) {
fn = tenantEntity.getTenantId() + "/" + fn;
} else {
fn = tenantEntity.getTenantId() + "/" + tenantEntity.getParentTenantId() + "/" + fn;
}
return fn;
}

private void copyFileToDest(int withText, String text1, String text2, String destPath1, File dest, File codeFile) throws IOException { private void copyFileToDest(int withText, String text1, String text2, String destPath1, File dest, File codeFile) throws IOException {
if (withText == 1) { if (withText == 1) {
File dest1 = new File(destPath1); File dest1 = new File(destPath1);


+ 52
- 27
mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java Просмотреть файл

@@ -16,6 +16,9 @@ import com.iformall.domain.vo.*;
import com.iformall.enums.*; import com.iformall.enums.*;
import com.iformall.mapper.*; import com.iformall.mapper.*;
import com.iformall.service.*; import com.iformall.service.*;

import cn.afterturn.easypoi.handler.inter.IExcelExportServer;

import org.apache.commons.compress.utils.Lists; import org.apache.commons.compress.utils.Lists;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
@@ -38,7 +41,7 @@ import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;


@Service @Service
public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService,IExcelExportServer {
private final Logger logger = LoggerFactory.getLogger(this.getClass()); private final Logger logger = LoggerFactory.getLogger(this.getClass());


@Autowired @Autowired
@@ -731,36 +734,40 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {


@Override @Override
public void exportData(WxCUserBasicInfo basicInfo, HttpServletRequest request, HttpServletResponse response) { public void exportData(WxCUserBasicInfo basicInfo, HttpServletRequest request, HttpServletResponse response) {
List<WxCUserBasicInfoVo> list = wxCUserBasicInfoMapper.findVoList(basicInfo);
List<WxTags> tagList = wxTagsMapper.findListAll();
Map<Long, String> tagMap = tagList.stream().collect(Collectors.toMap(WxTags::getId, WxTags::getName));
list.stream().filter(u->u.getTags()!=null).forEach(u->{
List<Long> ids = JSONObject.parseArray(u.getTags(), Long.class);
String tagNames = StringUtils.join(ids.stream().map(id->tagMap.get(id)).collect(Collectors.toList()),"/");
u.setTagNames(tagNames);
});
excelService.exportExcel(list, null, "会员信息", WxCUserBasicInfoVo.class, "会员信息数据.xlsx", response, false);
// List<WxCUserBasicInfoVo> list = wxCUserBasicInfoMapper.findVoList(basicInfo);
// List<WxTags> tagList = wxTagsMapper.findListAll();
// Map<Long, String> tagMap = tagList.stream().collect(Collectors.toMap(WxTags::getId, WxTags::getName));
// list.stream().filter(u->u.getTags()!=null).forEach(u->{
// List<Long> ids = JSONObject.parseArray(u.getTags(), Long.class);
// String tagNames = StringUtils.join(ids.stream().map(id->tagMap.get(id)).collect(Collectors.toList()),"/");
// u.setTagNames(tagNames);
// });
excelService.exportBigExcel(this,basicInfo, null, "会员信息", WxCUserBasicInfoVo.class, "会员信息数据.xlsx", response, false);
} }


@Override @Override
public void exportData(TenantEntity tenantInfo, WxCUserBasicInfo basicInfo, HttpServletRequest request, HttpServletResponse response) { public void exportData(TenantEntity tenantInfo, WxCUserBasicInfo basicInfo, HttpServletRequest request, HttpServletResponse response) {
List<WxCUserBasicInfoVo> list = new ArrayList<WxCUserBasicInfoVo>();
if(StringUtils.isNotBlank(tenantInfo.getParentTenantId())){
//关联微信表查询
list = wxCUserBasicInfoMapper.findVoList1(tenantInfo,basicInfo);
}else{
//直接查询本表
basicInfo.undateFinalTenantId(tenantInfo);
list = wxCUserBasicInfoMapper.findVoList(basicInfo);
}
List<WxTags> tagList = wxTagsMapper.findListAll();
Map<Long, String> tagMap = tagList.stream().collect(Collectors.toMap(WxTags::getId, WxTags::getName));
list.stream().filter(u->u.getTags()!=null).forEach(u->{
List<Long> ids = JSONObject.parseArray(u.getTags(), Long.class);
String tagNames = StringUtils.join(ids.stream().map(id->tagMap.get(id)).collect(Collectors.toList()),"/");
u.setTagNames(tagNames);
});
excelService.exportExcel(list, null, "会员信息", WxCUserBasicInfoVo.class, "会员信息数据.xlsx", response, false);
// List<WxCUserBasicInfoVo> list = new ArrayList<WxCUserBasicInfoVo>();
// if(StringUtils.isNotBlank(tenantInfo.getParentTenantId())){
// //关联微信表查询
// list = wxCUserBasicInfoMapper.findVoList1(tenantInfo,basicInfo);
// }else{
// //直接查询本表
// basicInfo.undateFinalTenantId(tenantInfo);
// list = wxCUserBasicInfoMapper.findVoList(basicInfo);
// }
// List<WxTags> tagList = wxTagsMapper.findListAll();
// Map<Long, String> tagMap = tagList.stream().collect(Collectors.toMap(WxTags::getId, WxTags::getName));
// list.stream().filter(u->u.getTags()!=null).forEach(u->{
// List<Long> ids = JSONObject.parseArray(u.getTags(), Long.class);
// String tagNames = StringUtils.join(ids.stream().map(id->tagMap.get(id)).collect(Collectors.toList()),"/");
// u.setTagNames(tagNames);
// });
// excelService.exportExcel(list, null, "会员信息", WxCUserBasicInfoVo.class, "会员信息数据.xlsx", response, false);
Map params = new HashMap();
params.put("tenantInfo", tenantInfo);
params.put("basicInfo", basicInfo);
excelService.exportBigExcel(this,params, null, "会员信息", WxCUserBasicInfoVo.class, "会员信息数据.xlsx", response, false);
} }


public void exportTemplate(HttpServletRequest request, HttpServletResponse response) { public void exportTemplate(HttpServletRequest request, HttpServletResponse response) {
@@ -1200,5 +1207,23 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
return wxCUserBasicInfoMapper.findBirthdayList(finalTenantId,format,format1); return wxCUserBasicInfoMapper.findBirthdayList(finalTenantId,format,format1);
} }
} }
@Override
public List<Object> selectListForExcelExport(Object queryParams, int page) {
Map params = (Map) queryParams;
WxCUserBasicInfo basicInfo = (WxCUserBasicInfo) params.get("basicInfo");
TenantEntity tenantInfo = (TenantEntity) params.get("tenantInfo");
List list = new ArrayList<WxCUserBasicInfoVo>();
basicInfo.setBegin((page-1)*10000);
basicInfo.setLimit(10000);
if(StringUtils.isNotBlank(tenantInfo.getParentTenantId())){
//关联微信表查询
list = wxCUserBasicInfoMapper.findVoList1(tenantInfo,basicInfo);
}else{
//直接查询本表
basicInfo.undateFinalTenantId(tenantInfo);
list = wxCUserBasicInfoMapper.findVoList(basicInfo);
}
return list;
}
} }



+ 3
- 3
mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java Просмотреть файл

@@ -545,7 +545,7 @@ public class WxFlowServiceImpl implements WxFlowService {
if (record.getStatus().equals(EnumFlowRecordStatus.NEW.getCode())) { if (record.getStatus().equals(EnumFlowRecordStatus.NEW.getCode())) {
taskListHtml += "<div style=\"overflow: hidden;\">"; taskListHtml += "<div style=\"overflow: hidden;\">";
taskListHtml += "<div style=\"overflow: hidden;\">"; taskListHtml += "<div style=\"overflow: hidden;\">";
taskListHtml += "<div style=\"float: left; width: 40px;height: 30px;\"><img src=\"https://s3.cn-northwest-1.amazonaws.com.cn/iformall-net/cimg/emailduihao.png\" style=\"display: block; width: 20px;height: 20px;margin-top: 10px;\"></div>";
taskListHtml += "<div style=\"float: left; width: 40px;height: 30px;\"><img src=\"https://formall.oss-accelerate.aliyuncs.com/cimg/emailduihao.png\" style=\"display: block; width: 20px;height: 20px;margin-top: 10px;\"></div>";
taskListHtml += "<div style=\"float: left; width: auto;margin-right:10px;height: 30px;line-height: 18px;font-size:18px;font-family:MicrosoftYaHei;font-weight:400;color:rgba(51,51,51,1);margin-top: 11px;\">发起申请</div>"; taskListHtml += "<div style=\"float: left; width: auto;margin-right:10px;height: 30px;line-height: 18px;font-size:18px;font-family:MicrosoftYaHei;font-weight:400;color:rgba(51,51,51,1);margin-top: 11px;\">发起申请</div>";
taskListHtml += "<div style=\"float: left; width: auto;margin-right:10px;height: 30px;margin-top:15px;line-height: 14px;font-size:14px;font-family:MicrosoftYaHei;font-weight:400;color:rgba(51,51,51,1);\">"+record.getUserName()+"</div>"; taskListHtml += "<div style=\"float: left; width: auto;margin-right:10px;height: 30px;margin-top:15px;line-height: 14px;font-size:14px;font-family:MicrosoftYaHei;font-weight:400;color:rgba(51,51,51,1);\">"+record.getUserName()+"</div>";
taskListHtml += "</div>"; taskListHtml += "</div>";
@@ -558,7 +558,7 @@ public class WxFlowServiceImpl implements WxFlowService {
} else if (record.getStatus().equals(EnumFlowRecordStatus.ASSIGNEE.getCode())) { } else if (record.getStatus().equals(EnumFlowRecordStatus.ASSIGNEE.getCode())) {
taskListHtml += "<div style=\"overflow: hidden;\">"; taskListHtml += "<div style=\"overflow: hidden;\">";
taskListHtml += "<div style=\"overflow: hidden;\">"; taskListHtml += "<div style=\"overflow: hidden;\">";
taskListHtml += "<div style=\"float: left; width: 40px;height: 30px;\"><img src=\"https://s3.cn-northwest-1.amazonaws.com.cn/iformall-net/cimg/emailhong.png\" style=\"display: block; width: 20px;height: 20px;margin-top: 10px;\"></div>";
taskListHtml += "<div style=\"float: left; width: 40px;height: 30px;\"><img src=\"https://formall.oss-accelerate.aliyuncs.com/cimg/emailhong.png\" style=\"display: block; width: 20px;height: 20px;margin-top: 10px;\"></div>";
taskListHtml += "<div style=\"float: left; width: auto;margin-right:10px;height: 30px;line-height: 18px;font-size:18px;font-family:MicrosoftYaHei;font-weight:400;color:rgba(200,89,98,1);margin-top: 11px;\">待审批</div>"; taskListHtml += "<div style=\"float: left; width: auto;margin-right:10px;height: 30px;line-height: 18px;font-size:18px;font-family:MicrosoftYaHei;font-weight:400;color:rgba(200,89,98,1);margin-top: 11px;\">待审批</div>";
taskListHtml += "<div style=\"float: left; width: auto;margin-right:10px;height: 30px;margin-top:15px;line-height: 14px;font-size:14px;font-family:MicrosoftYaHei;font-weight:400;color:rgba(200,89,98,1);\">"+record.getUserName()+"</div>"; taskListHtml += "<div style=\"float: left; width: auto;margin-right:10px;height: 30px;margin-top:15px;line-height: 14px;font-size:14px;font-family:MicrosoftYaHei;font-weight:400;color:rgba(200,89,98,1);\">"+record.getUserName()+"</div>";
taskListHtml += "</div>"; taskListHtml += "</div>";
@@ -571,7 +571,7 @@ public class WxFlowServiceImpl implements WxFlowService {
} else { } else {
taskListHtml += "<div style=\"overflow: hidden;\">"; taskListHtml += "<div style=\"overflow: hidden;\">";
taskListHtml += "<div style=\"overflow: hidden;\">"; taskListHtml += "<div style=\"overflow: hidden;\">";
taskListHtml += "<div style=\"float: left; width: 40px;height: 30px;\"><img src=\"https://s3.cn-northwest-1.amazonaws.com.cn/iformall-net/cimg/emailhui.png\" style=\"display: block; width: 20px;height: 20px;margin-top: 10px;\"></div>";
taskListHtml += "<div style=\"float: left; width: 40px;height: 30px;\"><img src=\"https://formall.oss-accelerate.aliyuncs.com/cimg/emailhui.png\" style=\"display: block; width: 20px;height: 20px;margin-top: 10px;\"></div>";
taskListHtml += "<div style=\"float: left; width: auto;margin-right:10px;height: 30px;line-height: 18px;font-size:18px;font-family:MicrosoftYaHei;font-weight:400;color:rgba(153,153,153,1);margin-top: 11px;\">审批通过</div>"; taskListHtml += "<div style=\"float: left; width: auto;margin-right:10px;height: 30px;line-height: 18px;font-size:18px;font-family:MicrosoftYaHei;font-weight:400;color:rgba(153,153,153,1);margin-top: 11px;\">审批通过</div>";
taskListHtml += "<div style=\"float: left; width: auto;margin-right:10px;height: 30px;margin-top:15px;line-height: 14px;font-size:14px;font-family:MicrosoftYaHei;font-weight:400;color:rgba(153,153,153,1);\">"+record.getUserName()+"</div>"; taskListHtml += "<div style=\"float: left; width: auto;margin-right:10px;height: 30px;margin-top:15px;line-height: 14px;font-size:14px;font-family:MicrosoftYaHei;font-weight:400;color:rgba(153,153,153,1);\">"+record.getUserName()+"</div>";
taskListHtml += "</div>"; taskListHtml += "</div>";


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxMallBuildingServiceImpl.java Просмотреть файл

@@ -64,7 +64,7 @@ public class WxMallBuildingServiceImpl implements WxMallBuildingService {
wxMallFloor.setBuildingId(wxMallBuilding.getId()); wxMallFloor.setBuildingId(wxMallBuilding.getId());
wxMallFloor.setFloorName(cha); wxMallFloor.setFloorName(cha);
//默认图片---------------------------------------------------- //默认图片----------------------------------------------------
wxMallFloor.setBackgroundImg("https://s3.cn-northwest-1.amazonaws.com.cn/iformall-net/789/9eea8e0e-15ea-4be0-a43d-31e2e9d8db8c.jpg");
wxMallFloor.setBackgroundImg("https://formall.oss-accelerate.aliyuncs.com/789/9eea8e0e-15ea-4be0-a43d-31e2e9d8db8c.jpg");
wxMallFloor.setCreateDate(new Date()); wxMallFloor.setCreateDate(new Date());
wxMallFloor.setUpdateDate(new Date()); wxMallFloor.setUpdateDate(new Date());
wxMallFloorMapper.insert(wxMallFloor); wxMallFloorMapper.insert(wxMallFloor);


+ 26
- 27
mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java Просмотреть файл

@@ -247,13 +247,10 @@ public class WxMerchantServiceImpl implements WxMerchantService {
return; return;
} }


if(!wxMerchant.getCarVendorType().equals(EnumCarVendor.CAR_NOTFOUND.getCode())){
if (!wxMerchant.getCarVendorType().equals(EnumCarVendor.CAR_NOTFOUND.getCode())) {
logger.info("不能停用停车商户"); logger.info("不能停用停车商户");
return; return;
} }

wxMerchant.setStatus(EnumMerchantStatus.NOT_VALID.getCode());
wxMerchantMapper.updateById(wxMerchant);
//是否有租赁合同 //是否有租赁合同
WxRentContract wxRentContract = new WxRentContract(); WxRentContract wxRentContract = new WxRentContract();
wxRentContract.setMerchantId(id); wxRentContract.setMerchantId(id);
@@ -274,6 +271,8 @@ public class WxMerchantServiceImpl implements WxMerchantService {
c.getStatus().equals(EnumRentContractStatus.PAING.getCode())).count(); c.getStatus().equals(EnumRentContractStatus.PAING.getCode())).count();
//解绑商铺-没有租赁合同或物业合同才可以 //解绑商铺-没有租赁合同或物业合同才可以
if (countRentContract == 0 || countPropertyContract == 0) { if (countRentContract == 0 || countPropertyContract == 0) {
wxMerchant.setStatus(EnumMerchantStatus.NOT_VALID.getCode());
wxMerchantMapper.updateById(wxMerchant);
WxMerchantShop wxMerchantShopQuery = new WxMerchantShop(); WxMerchantShop wxMerchantShopQuery = new WxMerchantShop();
wxMerchantShopQuery.updateTenantInfo(wxMerchant); wxMerchantShopQuery.updateTenantInfo(wxMerchant);
wxMerchantShopQuery.setMerchantId(wxMerchant.getId()); wxMerchantShopQuery.setMerchantId(wxMerchant.getId());
@@ -289,30 +288,30 @@ public class WxMerchantServiceImpl implements WxMerchantService {
wxShop.setStatus(EnumShopStatus.NOT_RENT.getCode()); wxShop.setStatus(EnumShopStatus.NOT_RENT.getCode());
wxShopMapper.updateById(wxShop); wxShopMapper.updateById(wxShop);
} }
//解绑用户
WxMerchantBUser bUser = new WxMerchantBUser();
bUser.setMerchantId(wxMerchant.getId());
List<WxMerchantBUser> wxMerchantBUserMapperList = wxMerchantBUserMapper.findList(bUser);
for (WxMerchantBUser wxMerchantBUser : wxMerchantBUserMapperList) {
wxMerchantBUser.setStatus(EnumMerchantBUserStatus.INVALID.getCode());
wxMerchantBUserMapper.updateById(wxMerchantBUser);
}
//作废卡券
WxCouponMerchant wxCouponMerchant = new WxCouponMerchant();
wxCouponMerchant.updateTenantInfo(wxMerchant);
wxCouponMerchant.setMerchantId(wxMerchant.getId());
wxCouponMerchant.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode());
List<WxCouponMerchant> wxCouponMerchantList = wxCouponMerchantMapper.findList(wxCouponMerchant);
List<Long> couponIds = wxCouponMerchantList.stream().map(cm -> cm.getProductId()).collect(Collectors.toList());

couponIds.stream().filter(cid -> !isCouponMerchantValid(cid)).forEach(cid -> {
WxCoupon wxCoupon = new WxCoupon();
wxCoupon.setId(cid);
wxCoupon.updateTenantInfo(wxMerchant);
wxCoupon.setStatus(EnumCouponStatus.COUPON_STATUS_TAKE_OFFF.getCode());
wxCouponService.saveOrUpdate(wxCoupon);
});
} }
//解绑用户
WxMerchantBUser bUser = new WxMerchantBUser();
bUser.setMerchantId(wxMerchant.getId());
List<WxMerchantBUser> wxMerchantBUserMapperList = wxMerchantBUserMapper.findList(bUser);
for (WxMerchantBUser wxMerchantBUser : wxMerchantBUserMapperList) {
wxMerchantBUser.setStatus(EnumMerchantBUserStatus.INVALID.getCode());
wxMerchantBUserMapper.updateById(wxMerchantBUser);
}
//作废卡券
WxCouponMerchant wxCouponMerchant = new WxCouponMerchant();
wxCouponMerchant.updateTenantInfo(wxMerchant);
wxCouponMerchant.setMerchantId(wxMerchant.getId());
wxCouponMerchant.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode());
List<WxCouponMerchant> wxCouponMerchantList = wxCouponMerchantMapper.findList(wxCouponMerchant);
List<Long> couponIds = wxCouponMerchantList.stream().map(cm->cm.getProductId()).collect(Collectors.toList());

couponIds.stream().filter(cid->!isCouponMerchantValid(cid)).forEach(cid->{
WxCoupon wxCoupon = new WxCoupon();
wxCoupon.setId(cid);
wxCoupon.updateTenantInfo(wxMerchant);
wxCoupon.setStatus(EnumCouponStatus.COUPON_STATUS_TAKE_OFFF.getCode());
wxCouponService.saveOrUpdate(wxCoupon);
});
} }


@Transactional(rollbackFor = {Exception.class}) @Transactional(rollbackFor = {Exception.class})


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxMsgValidationcodeModelServiceImpl.java Просмотреть файл

@@ -57,7 +57,7 @@ public class WxMsgValidationcodeModelServiceImpl implements WxMsgValidationcodeM
" ( '" + idWorker.nextId() + "', '" + tenantId + "', '16', '商户分账账户删除提醒', '" + signature + "', '{merchant}商户的收款账户[{account}]于{time}取消绑定,营销活动与销售分成将无法正常进行,请尽快绑定新收款账户', '" + nowTimestr + "', '1', '0', null, null);" + " ( '" + idWorker.nextId() + "', '" + tenantId + "', '16', '商户分账账户删除提醒', '" + signature + "', '{merchant}商户的收款账户[{account}]于{time}取消绑定,营销活动与销售分成将无法正常进行,请尽快绑定新收款账户', '" + nowTimestr + "', '1', '0', null, null);" +
"insert into `mallink`.`wx_msg_validationcode_model` ( `id`, `tenant_id`, `type`, `name`, `signature`, `content`, `createtime`, `status`, `minutes`, `model_id`, `email_bg_img`)" + "insert into `mallink`.`wx_msg_validationcode_model` ( `id`, `tenant_id`, `type`, `name`, `signature`, `content`, `createtime`, `status`, `minutes`, `model_id`, `email_bg_img`)" +
"values ( '" + idWorker.nextId() + "', '" + tenantId + "', '10', '审批通过通知', '富茂', " + "values ( '" + idWorker.nextId() + "', '" + tenantId + "', '10', '审批通过通知', '富茂', " +
" '<!DOCTYPE html>\\n<html>\\n\\n<head>\\n <meta charset=\\\"utf-8\\\">\\n <meta name=\\\"viewport\\\" content=\\\"width=device-width,initial-scale=1.0\\\">\\n <meta http-equiv=\\\"Content-Type\\\" content=\\\"text/html; charset=utf-8\\\" />\\n <meta name=\\\"viewport\\\" content=\\\"initial-scale=1.0, user-scalable=no\\\" />\\n <meta name=\\\"renderer\\\" content=\\\"webkit\\\">\\n <meta http-equiv=\\\"X-UA-Compatible\\\" content=\\\"IE=edge,chrome=1\\\">\\n <title>富茂审批邮件</title>\\n <title></title>\\n <script> document.documentElement.style.fontSize = document.documentElement.clientWidth / 7.5 + \\'px\\';</script>\\n</head>\\n\\n<body>\\n <div id=\\\"box\\\" style=\\\"padding:80px 20%;background:#E9E7E7;min-height:100vh;\\\">\\n <header style=\\\"height:140px;width:100%;display:flex;background:rgba(31,47,62,1);border-radius:15px 15px 0px 0px;\\\">\\n <img style=\\\"height:auto;width:292px;display:flex;align-self: center;justify-content: center;padding:0 40px;\\\" src=\\\"https://s3.cn-northwest-1.amazonaws.com.cn/iformall-net/cimg/changrong-logo.png\\\"/>\\n </header>\\n <div style=\\\"background:#fff;\\\">\\n <div style=\\\"font-size:26px;font-family:MicrosoftYaHei-Bold;font-weight:bold;color:rgba(85,85,85,1);line-height: 32px;padding:56px 55px 0;\\\">审批通过通知</div>\\n <div style=\\\"font-size:18px;font-family:MicrosoftYaHei;font-weight:400;color:rgba(85,85,85,1);padding: 36px 55px;\\\">编号<span>{contract}</span>的{bustype}已经审批通过,请登录<a href=\\\"{page}\\\">{page}</a>跟进后续工作</div>\\n </div>\\n </div>\\n</body>\\n\\n</html>', " +
" '<!DOCTYPE html>\\n<html>\\n\\n<head>\\n <meta charset=\\\"utf-8\\\">\\n <meta name=\\\"viewport\\\" content=\\\"width=device-width,initial-scale=1.0\\\">\\n <meta http-equiv=\\\"Content-Type\\\" content=\\\"text/html; charset=utf-8\\\" />\\n <meta name=\\\"viewport\\\" content=\\\"initial-scale=1.0, user-scalable=no\\\" />\\n <meta name=\\\"renderer\\\" content=\\\"webkit\\\">\\n <meta http-equiv=\\\"X-UA-Compatible\\\" content=\\\"IE=edge,chrome=1\\\">\\n <title>富茂审批邮件</title>\\n <title></title>\\n <script> document.documentElement.style.fontSize = document.documentElement.clientWidth / 7.5 + \\'px\\';</script>\\n</head>\\n\\n<body>\\n <div id=\\\"box\\\" style=\\\"padding:80px 20%;background:#E9E7E7;min-height:100vh;\\\">\\n <header style=\\\"height:140px;width:100%;display:flex;background:rgba(31,47,62,1);border-radius:15px 15px 0px 0px;\\\">\\n <img style=\\\"height:auto;width:292px;display:flex;align-self: center;justify-content: center;padding:0 40px;\\\" src=\\\"https://formall.oss-accelerate.aliyuncs.com/cimg/changrong-logo.png\\\"/>\\n </header>\\n <div style=\\\"background:#fff;\\\">\\n <div style=\\\"font-size:26px;font-family:MicrosoftYaHei-Bold;font-weight:bold;color:rgba(85,85,85,1);line-height: 32px;padding:56px 55px 0;\\\">审批通过通知</div>\\n <div style=\\\"font-size:18px;font-family:MicrosoftYaHei;font-weight:400;color:rgba(85,85,85,1);padding: 36px 55px;\\\">编号<span>{contract}</span>的{bustype}已经审批通过,请登录<a href=\\\"{page}\\\">{page}</a>跟进后续工作</div>\\n </div>\\n </div>\\n</body>\\n\\n</html>', " +
" '" + nowTimestr + "', '1', null, '500', '" + emailBgImg + "');" + " '" + nowTimestr + "', '1', null, '500', '" + emailBgImg + "');" +
"insert into `mallink`.`wx_msg_validationcode_model` ( `id`, `tenant_id`, `type`, `name`, `signature`, `content`, `createtime`, `status`, `minutes`, `model_id`, `email_bg_img`)" + "insert into `mallink`.`wx_msg_validationcode_model` ( `id`, `tenant_id`, `type`, `name`, `signature`, `content`, `createtime`, `status`, `minutes`, `model_id`, `email_bg_img`)" +
"values ( '" + idWorker.nextId() + "', '" + tenantId + "', '11', '待缴账单通知', '富茂', " + "values ( '" + idWorker.nextId() + "', '" + tenantId + "', '11', '待缴账单通知', '富茂', " +


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java Просмотреть файл

@@ -1593,7 +1593,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {
WxMerchant merchant = wxMerchantMapper.selectById((Long) merchantId); WxMerchant merchant = wxMerchantMapper.selectById((Long) merchantId);
Integer status = merchant.getStatus(); Integer status = merchant.getStatus();
if (status.equals(EnumMerchantStatus.VALID.getCode())) { if (status.equals(EnumMerchantStatus.VALID.getCode())) {
wxMerchantService.disable((Long) merchantId);
//wxMerchantService.disable((Long) merchantId);
} }
} }
} }


+ 1
- 1
mallinkService/src/main/java/com/iformall/utils/Constant.java Просмотреть файл

@@ -35,7 +35,7 @@ public class Constant {
public static final String adminPage = "https://admin.malls.iformall.com"; public static final String adminPage = "https://admin.malls.iformall.com";




public static final String floor_back_img = "https://s3.cn-northwest-1.amazonaws.com.cn/iformall-net/789/9eea8e0e-15ea-4be0-a43d-31e2e9d8db8c.jpg";
public static final String floor_back_img = " https://formall.oss-accelerate.aliyuncs.com/789/9eea8e0e-15ea-4be0-a43d-31e2e9d8db8c.jpg";




/// REDIS key Prev /// REDIS key Prev


+ 12
- 3
mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml Просмотреть файл

@@ -38,6 +38,11 @@
where poins >= points and tenant_id=wcubi.final_tenant_id where poins >= points and tenant_id=wcubi.final_tenant_id
order by points desc limit 1 ) level,wcubi.status order by points desc limit 1 ) level,wcubi.status
</sql> </sql>
<sql id="allSimpleColumns">
`id`,`phone`,`birthdate`,`education`,`sex`,`email`,`address`,`poins`,`tag_id`,
`create_date`,`update_date`,`tenant_id`,`parent_tenant_id`,`name`,`nick_name`,`credit`,`active_time`,`act_record`
</sql>


<sql id="dynamicWhereConditions"> <sql id="dynamicWhereConditions">
where 1 = 1 where 1 = 1
@@ -792,10 +797,12 @@


<select id="findVoList" parameterType="com.iformall.domain.po.WxCUserBasicInfo" resultMap="VoBaseResultMap"> <select id="findVoList" parameterType="com.iformall.domain.po.WxCUserBasicInfo" resultMap="VoBaseResultMap">
select select
<include refid="allVoColumns"/>
<include refid="allSimpleColumns"/>
from wx_c_user_basic_info cu from wx_c_user_basic_info cu
left join wx_c_user_tags cut on cut.`id` = cu.`tag_id`
<include refid="dynamicVoWhereConditions"/> <include refid="dynamicVoWhereConditions"/>
<if test=" null != begin ">
limit #{begin}, #{limit}
</if>
order by cu.`active_time` DESC order by cu.`active_time` DESC
</select> </select>


@@ -806,6 +813,9 @@
left join wx_c_user c on c.user_id = cu.id left join wx_c_user c on c.user_id = cu.id
left join wx_c_user_tags cut on cut.`id` = cu.`tag_id` left join wx_c_user_tags cut on cut.`id` = cu.`tag_id`
<include refid="dynamicVoWhereConditions1"/> <include refid="dynamicVoWhereConditions1"/>
<if test=" null != begin ">
limit #{begin}, #{limit}
</if>
order by cu.`active_time` DESC order by cu.`active_time` DESC
</select> </select>


@@ -813,7 +823,6 @@
select select
count(distinct cu.id) count(distinct cu.id)
from wx_c_user_basic_info cu from wx_c_user_basic_info cu
left join wx_c_user_tags cut on cut.`id` = cu.`tag_id`
<include refid="dynamicVoWhereConditions"/> <include refid="dynamicVoWhereConditions"/>
</select> </select>




+ 10
- 0
mallinkService/src/main/resources/mapper/WxMerchantMapper.xml Просмотреть файл

@@ -588,5 +588,15 @@
</select> </select>




<select id="getMerchantList" parameterType="com.iformall.domain.po.WxMerchant" resultMap="BaseResultMap">
select * from wx_merchant where 1=1 and is_del=0 and status=1
<if test=" null != tenantId and '' != tenantId">
and `tenant_id` = #{tenantId}
</if>
<if test=" null != parentTenantId and '' != parentTenantId">
and `parent_tenant_id` = #{parentTenantId}
</if>
order by create_date desc
</select>


</mapper> </mapper>

+ 3
- 165
mallinkSysAdmin/src/main/java/com/iformall/controller/sys/UploadController.java Просмотреть файл

@@ -1,21 +1,10 @@
package com.iformall.controller.sys; package com.iformall.controller.sys;




import com.amazonaws.AmazonClientException;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWSCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.*;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.config.AwsProperty;
import com.iformall.controller.base.BaseController; import com.iformall.controller.base.BaseController;
import com.iformall.domain.po.MallResource;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import com.iformall.file.aliyun.AliyunOSS; import com.iformall.file.aliyun.AliyunOSS;
import com.iformall.service.MallResourceService;
import com.iformall.utils.ImgUtil; import com.iformall.utils.ImgUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@@ -27,7 +16,6 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;


import java.io.*; import java.io.*;
import java.net.URL;
import java.util.*; import java.util.*;
import java.util.List; import java.util.List;


@@ -38,93 +26,12 @@ public class UploadController extends BaseController {


private final Logger logger = LoggerFactory.getLogger(this.getClass()); private final Logger logger = LoggerFactory.getLogger(this.getClass());


@Autowired
private AwsProperty awsProperty;

@Autowired @Autowired
private String fmUploadDir; private String fmUploadDir;


@Autowired @Autowired
private AliyunOSS aliyunOSS; private AliyunOSS aliyunOSS;


@Autowired
private MallResourceService mallResourceService;

private String getFileName(TenantEntity tenantEntity, String fileName) {
if (StringUtils.isBlank(tenantEntity.getParentTenantId())) {
fileName = tenantEntity.getTenantId() + "/" + fileName;
} else {
fileName = tenantEntity.getTenantId() + "/" + tenantEntity.getParentTenantId() + "/" +fileName;
}
return fileName;
}

private AmazonS3 s3 = null;

private ResultData awsUpload(InputStream inputStream, ObjectMetadata metadata, String fileName, TenantEntity tenantVEntity) {
ResultData data = new ResultData();
try {
if(s3 == null) {
s3 = AmazonS3ClientBuilder.standard()
.withRegion(awsProperty.getClientRegion())
.withCredentials(new AWSCredentialsProvider() {
@Override
public AWSCredentials getCredentials() {
return new BasicAWSCredentials(awsProperty.getAccess(), awsProperty.getSecret());
}

@Override
public void refresh() {

}
})
.build();
}

s3.putObject(
new PutObjectRequest(awsProperty.getBucketName(), fileName, inputStream, metadata)
.withCannedAcl(CannedAccessControlList.PublicRead));
URL url = s3.getUrl(awsProperty.getBucketName(), fileName);
logger.info(url.toString());

MallResource mr = new MallResource();
mr.updateTenantInfo(tenantVEntity);
mr.setBucket(awsProperty.getBucketName());
mr.setS3Key(fileName);
mr.setUrl(url.toString());
mallResourceService.saveOrUpdate(mr);

data.code = ResultData.SUCCESS;
Map<String, String> map = new HashMap<>();
map.put("url", url.toString());
data.data = map;
} catch (AmazonServiceException ase) {
data.code = ResultData.ERROR;
logger.warn("Caught an AmazonServiceException, which " +
"means your request made it " +
"to Amazon S3, but was rejected with an error response" +
" for some reason.");
logger.warn(ase.getMessage());
data.code = ResultData.ERROR;
data.message = "上传失败";
} catch (AmazonClientException ace) {
data.code = ResultData.ERROR;
logger.warn("Caught an AmazonClientException, which " +
"means the client encountered " +
"an internal error while trying to " +
"communicate with S3, " +
"such as not being able to access the network.");
logger.warn("Error Message: " + ace.getMessage());
data.code = ResultData.ERROR;
data.message = "上传失败";
} catch (Exception ioe) {
data.code = ResultData.ERROR;
logger.warn("Caught an IOException: " + ioe.getMessage());
data.code = ResultData.ERROR;
data.message = "上传失败";
}
return data;
}


/** /**
* 上传文件 * 上传文件
@@ -140,24 +47,12 @@ public class UploadController extends BaseController {


TenantEntity tenantEntity = getTenantInfo(); TenantEntity tenantEntity = getTenantInfo();


ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(multiReq.getContentType());
metadata.setContentLength(multiReq.getSize());

FileOutputStream fos = null;
BufferedInputStream fs = null;

String fileName = UUID.randomUUID().toString();
int dot = multiReq.getOriginalFilename().lastIndexOf('.'); int dot = multiReq.getOriginalFilename().lastIndexOf('.');
String fileFormat = ""; String fileFormat = "";
if (dot >= 0) { if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
fileName = getFileName(tenantEntity, fileName + fileFormat);
} else {
fileName = getFileName(tenantEntity, fileName);
} }


// ResultData data = awsUpload(multiReq.getInputStream(), metadata, fileName, tenantEntity);
ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream());
return data; return data;
} }
@@ -176,20 +71,13 @@ public class UploadController extends BaseController {


TenantEntity tenantEntity = getTenantInfo(); TenantEntity tenantEntity = getTenantInfo();


String fileName = UUID.randomUUID().toString();
String tempFileName = fileName;
String tempFileName = UUID.randomUUID().toString();
String fileFormat = ""; String fileFormat = "";

int dot = multiReq.getOriginalFilename().lastIndexOf('.'); int dot = multiReq.getOriginalFilename().lastIndexOf('.');
if (dot >= 0) { if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
fileName = getFileName(tenantEntity, fileName + fileFormat);
} else {
fileName = getFileName(tenantEntity, fileName);
} }


System.out.println(fileName);

FileOutputStream fos = null; FileOutputStream fos = null;
String imgFormat = ImgUtil.getImgFormat(fileFormat); String imgFormat = ImgUtil.getImgFormat(fileFormat);
if(StringUtils.isNotBlank(imgFormat)) { if(StringUtils.isNotBlank(imgFormat)) {
@@ -210,19 +98,12 @@ public class UploadController extends BaseController {
File newFile = ImgUtil.thinImage(localImgFileName, localNewImgFileName, imgFormat); File newFile = ImgUtil.thinImage(localImgFileName, localNewImgFileName, imgFormat);
// 删除本地缓存 // 删除本地缓存
localFile.delete(); localFile.delete();
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(multiReq.getContentType());
metadata.setContentLength(newFile.length());
// ResultData data = awsUpload(new FileInputStream(newFile), metadata, fileName, tenantEntity);

ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, new FileInputStream(newFile)); ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, new FileInputStream(newFile));
// 删除本地缓存 // 删除本地缓存
newFile.delete(); newFile.delete();
return data; return data;
} else { } else {
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(multiReq.getContentType());
metadata.setContentLength(multiReq.getSize());
// ResultData data = awsUpload(multiReq.getInputStream(), metadata, fileName, tenantEntity);
ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream());
return data; return data;
} }
@@ -248,26 +129,14 @@ public class UploadController extends BaseController {
for(MultipartFile multipartFile: files) { for(MultipartFile multipartFile: files) {
Map<String, String> map = new HashMap<>(); Map<String, String> map = new HashMap<>();


ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(multipartFile.getContentType());
metadata.setContentLength(multipartFile.getSize());

FileOutputStream fos = null;
BufferedInputStream fs = null;

map.put("key", multipartFile.getOriginalFilename()); map.put("key", multipartFile.getOriginalFilename());


String fileName = UUID.randomUUID().toString();
int dot = multipartFile.getOriginalFilename().lastIndexOf('.'); int dot = multipartFile.getOriginalFilename().lastIndexOf('.');
String fileFormat = ""; String fileFormat = "";
if (dot >= 0) { if (dot >= 0) {
fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length()); fileFormat = multipartFile.getOriginalFilename().substring(dot, multipartFile.getOriginalFilename().length());
fileName = getFileName(tenantEntity, fileName + fileFormat);
} else {
fileName = getFileName(tenantEntity, fileName);
} }


// ResultData data1 = awsUpload(multipartFile.getInputStream(), metadata, fileName, tenantEntity);
ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream()); ResultData data1 = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multipartFile.getInputStream());
if(data1.code == ResultData.SUCCESS) { if(data1.code == ResultData.SUCCESS) {
Map _data = (Map)data1.data; Map _data = (Map)data1.data;
@@ -300,46 +169,15 @@ public class UploadController extends BaseController {
public ResultData cimgUpload(@RequestParam("file") MultipartFile multiReq) throws Exception { public ResultData cimgUpload(@RequestParam("file") MultipartFile multiReq) throws Exception {
logger.info("[" + getIpAddr() + "] UploadController::cimgUpload"); logger.info("[" + getIpAddr() + "] UploadController::cimgUpload");


ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(multiReq.getContentType());
metadata.setContentLength(multiReq.getSize());

String fileName = multiReq.getOriginalFilename();
fileName = "cimg/" + fileName;
int dot = multiReq.getOriginalFilename().lastIndexOf('.'); int dot = multiReq.getOriginalFilename().lastIndexOf('.');
String fileFormat = ""; String fileFormat = "";
if (dot >= 0) { if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
} }
// ResultData data = awsUpload(multiReq.getInputStream(), metadata, fileName, new TenantEntity() {{
// setTenantId("cimg");
// }});

ResultData data = aliyunOSS.uploadFile("cimg", fileFormat, multiReq.getInputStream()); ResultData data = aliyunOSS.uploadFile("cimg", fileFormat, multiReq.getInputStream());
return data; return data;
} }


// /**
// * AWS
// * @return
// * @throws Exception
// */
// @GetMapping(value = "/lists")
// @ApiOperation("aws列举文件")
// public ResultData awsList() throws Exception {
// logger.info("[" + getIpAddr() + "] UploadController::cimgUpload");
//
// try{
// ObjectListing ol = s3.listObjects(awsProperty.getBucketName());
// List<S3ObjectSummary> objects = ol.getObjectSummaries();
// for (S3ObjectSummary os: objects) {
// logger.info(os.toString());
// break;
// }
// }catch (Exception e){
// e.printStackTrace();
// }
//
// return new ResultData();
// }


} }

+ 1
- 78
mallinkSysAdmin/src/main/java/com/iformall/ueditor/upload/Uploader.java Просмотреть файл

@@ -1,17 +1,5 @@
package com.iformall.ueditor.upload; package com.iformall.ueditor.upload;


import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.amazonaws.AmazonClientException;
import com.amazonaws.AmazonServiceException;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWSCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.CannedAccessControlList;
import com.amazonaws.services.s3.model.ObjectMetadata;
import com.amazonaws.services.s3.model.PutObjectRequest;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.po.MallResource; import com.iformall.domain.po.MallResource;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
@@ -30,9 +18,7 @@ import org.springframework.web.multipart.MultipartHttpServletRequest;


import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.io.IOException; import java.io.IOException;
import java.net.URL;
import java.util.Map; import java.util.Map;
import java.util.UUID;


public class Uploader { public class Uploader {


@@ -41,34 +27,14 @@ public class Uploader {
private HttpServletRequest request = null; private HttpServletRequest request = null;
private Map<String, Object> conf = null; private Map<String, Object> conf = null;
private MallResourceService mallResourceService = null; private MallResourceService mallResourceService = null;
private AmazonS3 s3 = null;


private AliyunOSS aliyunOSS; private AliyunOSS aliyunOSS;


private String getFileName(TenantEntity tenantEntity, String fileName) {
fileName = tenantEntity.getTenantId() + "/" + fileName;
return fileName;
}

public Uploader(HttpServletRequest request, Map<String, Object> conf, MallResourceService mallResourceService, AliyunOSS aliyunOSS) { public Uploader(HttpServletRequest request, Map<String, Object> conf, MallResourceService mallResourceService, AliyunOSS aliyunOSS) {
this.request = request; this.request = request;
this.conf = conf; this.conf = conf;
this.mallResourceService = mallResourceService; this.mallResourceService = mallResourceService;
this.aliyunOSS = aliyunOSS; this.aliyunOSS = aliyunOSS;
// this.s3 = AmazonS3ClientBuilder.standard()
// .withRegion(conf.get("clientRegion").toString())
// .withCredentials(new AWSCredentialsProvider() {
// @Override
// public AWSCredentials getCredentials() {
// return new BasicAWSCredentials(conf.get("access").toString(), conf.get("secret").toString());
// }
//
// @Override
// public void refresh() {
//
// }
// })
// .build();
} }


public final State doExec() { public final State doExec() {
@@ -89,32 +55,17 @@ public class Uploader {
logger.error("TENANT is null"); logger.error("TENANT is null");
} }


String fileName = UUID.randomUUID().toString();
int dot = multiReq.getOriginalFilename().lastIndexOf('.'); int dot = multiReq.getOriginalFilename().lastIndexOf('.');
String fileFormat = ""; String fileFormat = "";
if (dot >= 0) { if (dot >= 0) {
fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length()); fileFormat = multiReq.getOriginalFilename().substring(dot, multiReq.getOriginalFilename().length());
fileName = getFileName(tenantEntity, fileName + fileFormat);
} else {
fileName = getFileName(tenantEntity, fileName);
} }


state = state = new BaseState(true);
state = new BaseState(true);
state.putInfo("size", multiReq.getSize()); state.putInfo("size", multiReq.getSize());
state.putInfo("title", filedName); state.putInfo("title", filedName);


JSONObject stateJson = JSON.parseObject(state.toJSONString());

ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType(multiReq.getContentType());
metadata.setContentLength(multiReq.getSize());

try { try {
// s3.putObject(
// new PutObjectRequest(conf.get("bucketName").toString(), fileName, multiReq.getInputStream(), metadata)
// .withCannedAcl(CannedAccessControlList.PublicRead));
// URL url = s3.getUrl(conf.get("bucketName").toString(), fileName);
//logger.info(url.toString());
ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream()); ResultData data = aliyunOSS.uploadFile(tenantEntity.getTenantId(), fileFormat, multiReq.getInputStream());
Map<String, String> map = (Map<String, String>) data.data; Map<String, String> map = (Map<String, String>) data.data;
state.putInfo("url",map.get("url")); state.putInfo("url",map.get("url"));
@@ -122,38 +73,10 @@ public class Uploader {
MallResource mr = new MallResource(); MallResource mr = new MallResource();
mr.updateTenantInfo(tenantEntity); mr.updateTenantInfo(tenantEntity);
mr.setBucket(map.get("bucketName")); mr.setBucket(map.get("bucketName"));
//mr.setS3Key(fileName);
mr.setUrl(map.get("url")); mr.setUrl(map.get("url"));


// state.putInfo("url", url.toString());
//
// MallResource mr = new MallResource();
// mr.updateTenantInfo(tenantEntity);
// mr.setBucket(conf.get("bucketName").toString());
// mr.setS3Key(fileName);
// mr.setUrl(url.toString());
mallResourceService.saveOrUpdate(mr); mallResourceService.saveOrUpdate(mr);
} catch (AmazonServiceException ase) {
/*
logger.warn("Caught an AmazonServiceException, which " +
"means your request made it " +
"to Amazon S3, but was rejected with an error response" +
" for some reason.");
logger.warn(ase.getMessage());
*/
ase.printStackTrace();
} catch (AmazonClientException ace) {
/*
logger.warn("Caught an AmazonClientException, which " +
"means the client encountered " +
"an internal error while trying to " +
"communicate with S3, " +
"such as not being able to access the network.");
logger.warn("Error Message: " + ace.getMessage());
*/
ace.printStackTrace();
} catch (IOException ioe) { } catch (IOException ioe) {
//logger.warn("Caught an IOException: " + ioe.getMessage());
ioe.printStackTrace(); ioe.printStackTrace();
} }
} }


+ 0
- 6
pom.xml Просмотреть файл

@@ -362,12 +362,6 @@
<version>2.1.0</version> <version>2.1.0</version>
</dependency> </dependency>


<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>1.11.423</version>
</dependency>

<!-- https://mvnrepository.com/artifact/com.belerweb/pinyin4j --> <!-- https://mvnrepository.com/artifact/com.belerweb/pinyin4j -->
<dependency> <dependency>
<groupId>com.belerweb</groupId> <groupId>com.belerweb</groupId>


Загрузка…
Отмена
Сохранить