33 changed files with 493 additions and 109 deletions
@ -1,17 +0,0 @@ |
|||
package com.epmet.service; |
|||
|
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.plugin.power.dto.visit.form.VisitorLogoutFormDTO; |
|||
|
|||
public interface PliPowerService { |
|||
|
|||
/** |
|||
* 访客登出 |
|||
* |
|||
* @param formDTO |
|||
* @return com.epmet.commons.tools.utils.Result |
|||
* @author zhy |
|||
* @date 2022/5/30 10:25 |
|||
*/ |
|||
Result visitorLogout(VisitorLogoutFormDTO formDTO); |
|||
} |
@ -1,31 +0,0 @@ |
|||
package com.epmet.service.impl; |
|||
|
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.plugin.power.dto.visit.form.VisitorLogoutFormDTO; |
|||
import com.epmet.plugin.power.feign.PliPowerFeignClient; |
|||
import com.epmet.service.PliPowerService; |
|||
import org.slf4j.Logger; |
|||
import org.slf4j.LoggerFactory; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
|
|||
/** |
|||
* @Description |
|||
* @ClassName StatsUserServiceImpl |
|||
* @Auth wangc |
|||
* @Date 2020-06-29 09:41 |
|||
*/ |
|||
@Service |
|||
public class PliPowerServiceImpl implements PliPowerService { |
|||
|
|||
private Logger logger = LoggerFactory.getLogger(getClass()); |
|||
|
|||
@Autowired |
|||
private PliPowerFeignClient pliPowerFeignClient; |
|||
|
|||
@Override |
|||
public Result visitorLogout(VisitorLogoutFormDTO formDTO) { |
|||
return pliPowerFeignClient.visitorLogout(formDTO); |
|||
} |
|||
} |
@ -1,41 +0,0 @@ |
|||
package com.epmet.task; |
|||
|
|||
import com.alibaba.fastjson.JSON; |
|||
import com.epmet.commons.tools.utils.Result; |
|||
import com.epmet.plugin.power.dto.visit.form.VisitorLogoutFormDTO; |
|||
import com.epmet.service.PliPowerService; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
import org.slf4j.Logger; |
|||
import org.slf4j.LoggerFactory; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
/** |
|||
* 访客登出 |
|||
* |
|||
* @author zhy |
|||
* @date 2022/5/30 10:23 |
|||
*/ |
|||
@Component("pliVisitorLogoutTask") |
|||
public class PliVisitorLogoutTask implements ITask { |
|||
|
|||
private Logger logger = LoggerFactory.getLogger(getClass()); |
|||
|
|||
@Autowired |
|||
private PliPowerService pliPowerService; |
|||
|
|||
@Override |
|||
public void run(String params) { |
|||
logger.info("VisitorLogoutTask定时任务正在执行,参数为:{}", params); |
|||
VisitorLogoutFormDTO formDTO = new VisitorLogoutFormDTO(); |
|||
if (StringUtils.isNotBlank(params)) { |
|||
formDTO = JSON.parseObject(params, VisitorLogoutFormDTO.class); |
|||
} |
|||
Result result = pliPowerService.visitorLogout(formDTO); |
|||
if (result.success()) { |
|||
logger.info("VisitorLogoutTask定时任务执行成功"); |
|||
} else { |
|||
logger.error("VisitorLogoutTask定时任务执行失败:" + result.getMsg()); |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,106 @@ |
|||
package com.epmet.cloud; |
|||
|
|||
import com.epmet.commons.tools.exception.EpmetErrorCode; |
|||
import com.epmet.commons.tools.exception.EpmetException; |
|||
import com.epmet.commons.tools.exception.ExceptionUtils; |
|||
import io.minio.MinioClient; |
|||
import io.minio.ObjectWriteResponse; |
|||
import io.minio.PutObjectArgs; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.http.MediaType; |
|||
import org.springframework.http.MediaTypeFactory; |
|||
|
|||
import java.io.ByteArrayInputStream; |
|||
import java.io.IOException; |
|||
import java.io.InputStream; |
|||
import java.nio.file.Paths; |
|||
|
|||
/** |
|||
* minio 文件服务 |
|||
*/ |
|||
@Slf4j |
|||
public class MinioStorageService extends AbstractCloudStorageService { |
|||
|
|||
private MinioClient minioClient; |
|||
|
|||
public MinioStorageService(CloudStorageConfig config) { |
|||
this.config = config; |
|||
|
|||
CloudStorageConfig.MinioStorageConfigProps props = config.getMinio().getConfigByPrivacy(null); |
|||
|
|||
log.info("Minio客户端连接所用的域名:{}", props.getMinioInternalDomain()); |
|||
|
|||
/** |
|||
* minio和服务在同一个局域网,则可以使用内网域名上传,速度更快更稳定 |
|||
*/ |
|||
minioClient = MinioClient.builder() |
|||
.endpoint(props.getMinioInternalDomain()) // 保证和nginx的proxy_set_header Host 一致
|
|||
.credentials(props.getMinioAccessKey(), props.getMinioSecretKey()) |
|||
.build(); |
|||
} |
|||
|
|||
@Override |
|||
public String getOssDomain(String privacy) { |
|||
return this.config.getMinio().getConfigByPrivacy(privacy).getMinioExternalDomain(); |
|||
} |
|||
|
|||
@Override |
|||
public String getOssPrefix(String privacy) { |
|||
return this.config.getMinio().getConfigByPrivacy(privacy).getMinioPrefix(); |
|||
} |
|||
|
|||
@Override |
|||
public String upload(byte[] data, String path, String privacyType) { |
|||
return upload(new ByteArrayInputStream(data), path, privacyType); |
|||
} |
|||
|
|||
@Override |
|||
public String uploadSuffix(byte[] data, String suffix, String privacyType) { |
|||
return uploadSuffix(new ByteArrayInputStream(data), suffix, privacyType); |
|||
} |
|||
|
|||
/** |
|||
* 此处bucket已经做为path |
|||
* @param inputStream 字节流 |
|||
* @param path 文件路径,包含文件名 |
|||
* @param privacyType |
|||
* @return |
|||
*/ |
|||
@Override |
|||
public String upload(InputStream inputStream, String path, String privacyType) { |
|||
CloudStorageConfig.MinioStorageConfigProps props = this.config.getMinio().getConfigByPrivacy(privacyType); |
|||
String contentType = MediaTypeFactory.getMediaType(path).orElse(MediaType.APPLICATION_OCTET_STREAM).toString(); |
|||
try { |
|||
ObjectWriteResponse resp = minioClient.putObject(PutObjectArgs.builder() |
|||
.bucket(props.getMinioBucketName()) |
|||
.object(path) |
|||
.stream(inputStream, inputStream.available(), -1) |
|||
.contentType(contentType) |
|||
.build()); |
|||
|
|||
log.debug("minio上传文件成功。bucket:{}, object:{}, privacyType:{}", resp.bucket(), resp.object(), privacyType); |
|||
|
|||
// 返回值要存储到数据库,供用户访问,因此使用外网域名
|
|||
return props.getMinioExternalDomain() + "/" + Paths.get(resp.bucket()).resolve(resp.object()).toString(); |
|||
} catch (Exception e) { |
|||
String errorMsg = ExceptionUtils.getErrorStackTrace(e); |
|||
throw new EpmetException(EpmetErrorCode.SERVER_ERROR.getCode(), errorMsg); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public String uploadSuffix(InputStream inputStream, String suffix, String privacyType) { |
|||
CloudStorageConfig.MinioStorageConfigProps props = this.config.getMinio().getConfigByPrivacy(privacyType); |
|||
return upload(inputStream, getPath(props.getMinioPrefix(), suffix, privacyType), privacyType); |
|||
} |
|||
|
|||
@Override |
|||
public void down(String privacyType) throws IOException { |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public boolean delete(String objectName, String privacyType) { |
|||
return false; |
|||
} |
|||
} |
@ -0,0 +1,3 @@ |
|||
ALTER TABLE ic_party_org ADD COLUMN PRINCIPAL_STAFF_ID VARCHAR(32) DEFAULT '' COMMENT '负责人staffId' AFTER PRINCIPAL_MOBILE; |
|||
alter table ic_party_org modify PRINCIPAL_MOBILE VARCHAR(30) DEFAULT '' COMMENT '联系方式'; |
|||
alter table ic_party_org modify PRINCIPAL VARCHAR(30) DEFAULT '' COMMENT '负责人'; |
Loading…
Reference in new issue