Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
@@ -43,7 +43,7 @@ spring:
|
|||||||
# Redis服务器连接密码(默认为空)
|
# Redis服务器连接密码(默认为空)
|
||||||
password: LDQ20020618xxx
|
password: LDQ20020618xxx
|
||||||
# 连接超时时间
|
# 连接超时时间
|
||||||
timeout: 2s
|
timeout: 10s
|
||||||
lettuce:
|
lettuce:
|
||||||
pool:
|
pool:
|
||||||
# 连接池最大连接数
|
# 连接池最大连接数
|
||||||
|
@@ -43,7 +43,7 @@ spring:
|
|||||||
# Redis服务器连接密码(默认为空)
|
# Redis服务器连接密码(默认为空)
|
||||||
password: LDQ20020618xxx
|
password: LDQ20020618xxx
|
||||||
# 连接超时时间
|
# 连接超时时间
|
||||||
timeout: 2s
|
timeout: 10s
|
||||||
lettuce:
|
lettuce:
|
||||||
pool:
|
pool:
|
||||||
# 连接池最大连接数
|
# 连接池最大连接数
|
||||||
|
@@ -0,0 +1,38 @@
|
|||||||
|
package com.schisandra.share.application.config;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.http.converter.HttpMessageConverter;
|
||||||
|
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
||||||
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Classname GlobalConfig
|
||||||
|
* @BelongsProject: schisandra-cloud-storage
|
||||||
|
* @BelongsPackage: com.schisandra.auth.application.common
|
||||||
|
* @Author: schisandra
|
||||||
|
* @CreateTime: 2024-02-16 15:57
|
||||||
|
* @Description: MVC全局处理
|
||||||
|
* @Version: 1.0
|
||||||
|
*/
|
||||||
|
@Configuration
|
||||||
|
public class GlobalConfig extends WebMvcConfigurationSupport {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
|
||||||
|
super.configureMessageConverters(converters);
|
||||||
|
converters.add(mappingJackson2HttpMessageConverter());
|
||||||
|
}
|
||||||
|
|
||||||
|
private MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
|
||||||
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
|
||||||
|
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
|
||||||
|
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(objectMapper);
|
||||||
|
return converter;
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,28 @@
|
|||||||
|
package com.schisandra.share.application.config;
|
||||||
|
|
||||||
|
|
||||||
|
import com.schisandra.share.application.factory.CustomNameThreadFactory;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
import java.util.concurrent.LinkedBlockingDeque;
|
||||||
|
import java.util.concurrent.ThreadPoolExecutor;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 线程池的config管理
|
||||||
|
*
|
||||||
|
* @author: landaiqing
|
||||||
|
* @date: 2024/2/18
|
||||||
|
*/
|
||||||
|
@Configuration
|
||||||
|
public class ThreadPoolConfig {
|
||||||
|
|
||||||
|
@Bean(name = "rotateCaptchaThreadPool")
|
||||||
|
public ThreadPoolExecutor getLabelThreadPool() {
|
||||||
|
return new ThreadPoolExecutor(20, 100, 5,
|
||||||
|
TimeUnit.SECONDS, new LinkedBlockingDeque<>(40),
|
||||||
|
new CustomNameThreadFactory("share"),
|
||||||
|
new ThreadPoolExecutor.CallerRunsPolicy());
|
||||||
|
}
|
||||||
|
}
|
@@ -252,8 +252,6 @@ public class SchisandraShareCommentReplyController {
|
|||||||
Preconditions.checkNotNull(schisandraShareCommentReplyDTO.getDetailId(), "分享文章id不能为空");
|
Preconditions.checkNotNull(schisandraShareCommentReplyDTO.getDetailId(), "分享文章id不能为空");
|
||||||
Preconditions.checkNotNull(schisandraShareCommentReplyDTO.getUserId(), "发布人id不能为空");
|
Preconditions.checkNotNull(schisandraShareCommentReplyDTO.getUserId(), "发布人id不能为空");
|
||||||
SchisandraShareCommentReplyBO schisandraShareCommentReplyBO = SchisandraShareCommentReplyDTOConverter.INSTANCE.convertDTOToBO(schisandraShareCommentReplyDTO);
|
SchisandraShareCommentReplyBO schisandraShareCommentReplyBO = SchisandraShareCommentReplyDTOConverter.INSTANCE.convertDTOToBO(schisandraShareCommentReplyDTO);
|
||||||
// String result = SensitiveWordHelper.replace(schisandraShareCommentReplyBO.getContent());
|
|
||||||
// schisandraShareCommentReplyBO.setContent(result);
|
|
||||||
caffeineUtil.caffeineBuild().invalidate("listcommenthot" + schisandraShareCommentReplyBO.getDetailId());
|
caffeineUtil.caffeineBuild().invalidate("listcommenthot" + schisandraShareCommentReplyBO.getDetailId());
|
||||||
caffeineUtil.caffeineBuild().invalidate("listcomment" + schisandraShareCommentReplyBO.getDetailId());
|
caffeineUtil.caffeineBuild().invalidate("listcomment" + schisandraShareCommentReplyBO.getDetailId());
|
||||||
return Result.ok(schisandraShareCommentReplyDomainService.addComment(schisandraShareCommentReplyBO));
|
return Result.ok(schisandraShareCommentReplyDomainService.addComment(schisandraShareCommentReplyBO));
|
||||||
|
@@ -105,7 +105,8 @@ public class SchisandraShareDetailController {
|
|||||||
@GetMapping("returncount")
|
@GetMapping("returncount")
|
||||||
public Result returncount(String detailId) {
|
public Result returncount(String detailId) {
|
||||||
try {
|
try {
|
||||||
return Result.ok(schisandraShareDetailDomainService.getDetailsById(detailId).getCommentCount());
|
Long count = schisandraShareDetailDomainService.getDetailsCommentCount(detailId);
|
||||||
|
return Result.ok(count);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return Result.fail("获取评论数量失败!!!");
|
return Result.fail("获取评论数量失败!!!");
|
||||||
}
|
}
|
||||||
@@ -178,7 +179,7 @@ public class SchisandraShareDetailController {
|
|||||||
@GetMapping("get_detail")
|
@GetMapping("get_detail")
|
||||||
public Result selectDetail(@RequestParam("Id") String Id,String userId) {
|
public Result selectDetail(@RequestParam("Id") String Id,String userId) {
|
||||||
try {
|
try {
|
||||||
SchisandraShareDetailBO resultList = schisandraShareDetailDomainService.getDetailsById2(Id,userId);
|
SchisandraShareDetailBO resultList = schisandraShareDetailDomainService.getDetailsById(Id,userId);
|
||||||
HashMap<String, Object> map = new HashMap<>();
|
HashMap<String, Object> map = new HashMap<>();
|
||||||
map.put("Id", Id);
|
map.put("Id", Id);
|
||||||
map.put("Views", true);
|
map.put("Views", true);
|
||||||
|
@@ -0,0 +1,49 @@
|
|||||||
|
package com.schisandra.share.application.factory;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
|
import java.util.concurrent.ThreadFactory;
|
||||||
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自定义名称的线程工厂
|
||||||
|
*
|
||||||
|
* @author: landaiqing
|
||||||
|
* @date: 2024/2/18
|
||||||
|
*/
|
||||||
|
public class CustomNameThreadFactory implements ThreadFactory {
|
||||||
|
|
||||||
|
private static final AtomicInteger poolNumber = new AtomicInteger(1);
|
||||||
|
private final ThreadGroup group;
|
||||||
|
private final AtomicInteger threadNumber = new AtomicInteger(1);
|
||||||
|
private final String namePrefix;
|
||||||
|
|
||||||
|
public CustomNameThreadFactory(String name) {
|
||||||
|
SecurityManager s = System.getSecurityManager();
|
||||||
|
group = (s != null) ? s.getThreadGroup() :
|
||||||
|
Thread.currentThread().getThreadGroup();
|
||||||
|
if (StringUtils.isBlank(name)) {
|
||||||
|
name = "pool";
|
||||||
|
}
|
||||||
|
namePrefix = name + "-" +
|
||||||
|
poolNumber.getAndIncrement() +
|
||||||
|
"-thread-";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Thread newThread(Runnable r) {
|
||||||
|
Thread t = new Thread(group, r,
|
||||||
|
namePrefix + threadNumber.getAndIncrement(),
|
||||||
|
0);
|
||||||
|
// 设置线程为非守护线程
|
||||||
|
if (t.isDaemon()){
|
||||||
|
t.setDaemon(false);
|
||||||
|
}
|
||||||
|
// 设置线程优先级为正常优先级
|
||||||
|
if (t.getPriority() != Thread.NORM_PRIORITY){
|
||||||
|
t.setPriority(Thread.NORM_PRIORITY);
|
||||||
|
}
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -0,0 +1,58 @@
|
|||||||
|
package com.schisandra.share.common.enums;
|
||||||
|
|
||||||
|
public enum TypeName {
|
||||||
|
/**
|
||||||
|
* 阿里oss
|
||||||
|
*/
|
||||||
|
ali("ali","阿里云OSS"),
|
||||||
|
/**
|
||||||
|
* Minio oss
|
||||||
|
*/
|
||||||
|
minio("minio","MinIO"),
|
||||||
|
/**
|
||||||
|
* 又拍OSS
|
||||||
|
*/
|
||||||
|
up("up","又拍OSS"),
|
||||||
|
/**
|
||||||
|
* SFTP
|
||||||
|
*/
|
||||||
|
sftp("sftp","sftp"),
|
||||||
|
/**
|
||||||
|
* 腾讯OSS
|
||||||
|
*/
|
||||||
|
tencent("tencent","腾讯云COS"),
|
||||||
|
/**
|
||||||
|
* 百度OSS
|
||||||
|
*/
|
||||||
|
baidu("baidu","百度网盘"),
|
||||||
|
/**
|
||||||
|
* 华为OSS
|
||||||
|
*/
|
||||||
|
huawei("huawei","华为云OSS"),
|
||||||
|
/**
|
||||||
|
* 网易 OSS
|
||||||
|
*/
|
||||||
|
wangyi("wangyi","网易云"),
|
||||||
|
/**
|
||||||
|
* 七牛 oss
|
||||||
|
*/
|
||||||
|
qiniu("qiniu","七牛云OSS");
|
||||||
|
|
||||||
|
|
||||||
|
public String type;
|
||||||
|
public String typeName;
|
||||||
|
|
||||||
|
|
||||||
|
TypeName(String type,String typeName) {
|
||||||
|
this.type = type;
|
||||||
|
this.typeName = typeName;
|
||||||
|
}
|
||||||
|
public static TypeName getByType(String type) {
|
||||||
|
for (TypeName resultKeyEnum : TypeName.values()) {
|
||||||
|
if (resultKeyEnum.type.equals(type)) {
|
||||||
|
return resultKeyEnum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
@@ -29,9 +29,7 @@ public interface SchisandraShareDetailDomainService {
|
|||||||
|
|
||||||
List<SchisandraShareDetailBO> list(String circleId,String userId);
|
List<SchisandraShareDetailBO> list(String circleId,String userId);
|
||||||
|
|
||||||
SchisandraShareDetailBO getDetailsById2(String Id,String userId);
|
SchisandraShareDetailBO getDetailsById(String Id,String userId);
|
||||||
|
|
||||||
SchisandraShareDetailBO getDetailsById(String Id);
|
|
||||||
|
|
||||||
Boolean addDetail(SchisandraShareDetailBO schisandraShareDetailBO);
|
Boolean addDetail(SchisandraShareDetailBO schisandraShareDetailBO);
|
||||||
|
|
||||||
@@ -43,4 +41,6 @@ public interface SchisandraShareDetailDomainService {
|
|||||||
Boolean updateDetailLikes(String id,Boolean isLike);
|
Boolean updateDetailLikes(String id,Boolean isLike);
|
||||||
|
|
||||||
List<SchisandraShareDetailBO> queryAllDetails();
|
List<SchisandraShareDetailBO> queryAllDetails();
|
||||||
|
|
||||||
|
Long getDetailsCommentCount(String detailId);
|
||||||
}
|
}
|
||||||
|
@@ -1,20 +1,20 @@
|
|||||||
package com.schisandra.share.domain.service.impl;
|
package com.schisandra.share.domain.service.impl;
|
||||||
|
|
||||||
import com.schisandra.share.common.enums.IsDeletedFlagEnum;
|
import com.schisandra.share.common.enums.IsDeletedFlagEnum;
|
||||||
import com.schisandra.share.domain.convert.SchisandraShareCircleBOConverter;
|
|
||||||
import com.schisandra.share.domain.bo.SchisandraShareCircleBO;
|
import com.schisandra.share.domain.bo.SchisandraShareCircleBO;
|
||||||
|
import com.schisandra.share.domain.convert.SchisandraShareCircleBOConverter;
|
||||||
import com.schisandra.share.domain.service.SchisandraShareCircleDomainService;
|
import com.schisandra.share.domain.service.SchisandraShareCircleDomainService;
|
||||||
import com.schisandra.share.infra.basic.entity.SchisandraShareCircle;
|
import com.schisandra.share.infra.basic.entity.SchisandraShareCircle;
|
||||||
import com.schisandra.share.infra.basic.service.SchisandraShareCircleService;
|
import com.schisandra.share.infra.basic.service.SchisandraShareCircleService;
|
||||||
import com.schisandra.share.infra.entity.AuthUserInfoEntity;
|
import com.schisandra.share.infra.entity.AuthUserInfoEntity;
|
||||||
import com.schisandra.share.infra.rpc.UserRpc;
|
import com.schisandra.share.infra.rpc.UserRpc;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.data.redis.core.RedisTemplate;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.List;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分享圈 领域service实现了
|
* 分享圈 领域service实现了
|
||||||
@@ -63,8 +63,12 @@ public class SchisandraShareCircleDomainServiceImpl implements SchisandraShareCi
|
|||||||
List<SchisandraShareCircleBO> schisandraShareCircleBO_list = SchisandraShareCircleBOConverter.INSTANCE.convertEntityToBOList(schisandraShareCircleService.queryAll());
|
List<SchisandraShareCircleBO> schisandraShareCircleBO_list = SchisandraShareCircleBOConverter.INSTANCE.convertEntityToBOList(schisandraShareCircleService.queryAll());
|
||||||
ArrayList<SchisandraShareCircleBO> arrayList = new ArrayList<>();
|
ArrayList<SchisandraShareCircleBO> arrayList = new ArrayList<>();
|
||||||
for (SchisandraShareCircleBO schisandraShareCircleBO : schisandraShareCircleBO_list) {
|
for (SchisandraShareCircleBO schisandraShareCircleBO : schisandraShareCircleBO_list) {
|
||||||
|
CompletableFuture<AuthUserInfoEntity> futurePrice = CompletableFuture.supplyAsync(() -> {
|
||||||
|
AuthUserInfoEntity info = userRpc.getUserInfo(schisandraShareCircleBO.getUserId());
|
||||||
|
return info;
|
||||||
|
});
|
||||||
|
AuthUserInfoEntity userInfo = futurePrice.join();
|
||||||
SchisandraShareCircleBO shareCircleBO = new SchisandraShareCircleBO();
|
SchisandraShareCircleBO shareCircleBO = new SchisandraShareCircleBO();
|
||||||
AuthUserInfoEntity info = userRpc.getUserInfo(schisandraShareCircleBO.getUserId());
|
|
||||||
shareCircleBO.setUserId(schisandraShareCircleBO.getUserId());
|
shareCircleBO.setUserId(schisandraShareCircleBO.getUserId());
|
||||||
shareCircleBO.setParentId(schisandraShareCircleBO.getParentId());
|
shareCircleBO.setParentId(schisandraShareCircleBO.getParentId());
|
||||||
shareCircleBO.setId(schisandraShareCircleBO.getId());
|
shareCircleBO.setId(schisandraShareCircleBO.getId());
|
||||||
@@ -73,8 +77,8 @@ public class SchisandraShareCircleDomainServiceImpl implements SchisandraShareCi
|
|||||||
shareCircleBO.setViews(schisandraShareCircleBO.getViews());
|
shareCircleBO.setViews(schisandraShareCircleBO.getViews());
|
||||||
shareCircleBO.setCount(schisandraShareCircleBO.getCount());
|
shareCircleBO.setCount(schisandraShareCircleBO.getCount());
|
||||||
shareCircleBO.setName(schisandraShareCircleBO.getName());
|
shareCircleBO.setName(schisandraShareCircleBO.getName());
|
||||||
shareCircleBO.setAvatar(info.getAvatar());
|
shareCircleBO.setAvatar(userInfo.getAvatar());
|
||||||
shareCircleBO.setNickName(info.getNickName());
|
shareCircleBO.setNickName(userInfo.getNickName());
|
||||||
arrayList.add(shareCircleBO);
|
arrayList.add(shareCircleBO);
|
||||||
}
|
}
|
||||||
return arrayList;
|
return arrayList;
|
||||||
@@ -83,18 +87,18 @@ public class SchisandraShareCircleDomainServiceImpl implements SchisandraShareCi
|
|||||||
@Override
|
@Override
|
||||||
public Boolean updateCircleViews(String Id, Boolean isView) {
|
public Boolean updateCircleViews(String Id, Boolean isView) {
|
||||||
if (isView) {
|
if (isView) {
|
||||||
return schisandraShareCircleService.addView(Id)>0;
|
return schisandraShareCircleService.addView(Id) > 0;
|
||||||
}else {
|
} else {
|
||||||
return schisandraShareCircleService.delView(Id)>0;
|
return schisandraShareCircleService.delView(Id) > 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean updateCircleCounts(String Id, Boolean isCount) {
|
public Boolean updateCircleCounts(String Id, Boolean isCount) {
|
||||||
if (isCount) {
|
if (isCount) {
|
||||||
return schisandraShareCircleService.addCount(Id)>0;
|
return schisandraShareCircleService.addCount(Id) > 0;
|
||||||
}else {
|
} else {
|
||||||
return schisandraShareCircleService.delCount(Id)>0;
|
return schisandraShareCircleService.delCount(Id) > 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,8 +1,5 @@
|
|||||||
package com.schisandra.share.domain.service.impl;
|
package com.schisandra.share.domain.service.impl;
|
||||||
|
|
||||||
import com.jd.platform.async.executor.Async;
|
|
||||||
import com.jd.platform.async.worker.WorkResult;
|
|
||||||
import com.jd.platform.async.wrapper.WorkerWrapper;
|
|
||||||
import com.schisandra.share.common.enums.IsDeletedFlagEnum;
|
import com.schisandra.share.common.enums.IsDeletedFlagEnum;
|
||||||
import com.schisandra.share.domain.bo.SchisandraShareCommentReplyBO;
|
import com.schisandra.share.domain.bo.SchisandraShareCommentReplyBO;
|
||||||
import com.schisandra.share.domain.convert.SchisandraShareCommentReplyBOConverter;
|
import com.schisandra.share.domain.convert.SchisandraShareCommentReplyBOConverter;
|
||||||
@@ -20,8 +17,8 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -97,23 +94,27 @@ public class SchisandraShareCommentReplyDomainServiceImpl implements SchisandraS
|
|||||||
public List<SchisandraShareCommentReplyBO> listComment(String detailId, String userId) {
|
public List<SchisandraShareCommentReplyBO> listComment(String detailId, String userId) {
|
||||||
List<SchisandraShareCommentReply> schisandraShareComments = schisandraShareCommentReplyService.listComment(detailId);
|
List<SchisandraShareCommentReply> schisandraShareComments = schisandraShareCommentReplyService.listComment(detailId);
|
||||||
List<SchisandraShareCommentReplyBO> schisandraShareCommentBOS = SchisandraShareCommentReplyBOConverter.INSTANCE.convertEntityToBOList(schisandraShareComments);
|
List<SchisandraShareCommentReplyBO> schisandraShareCommentBOS = SchisandraShareCommentReplyBOConverter.INSTANCE.convertEntityToBOList(schisandraShareComments);
|
||||||
schisandraShareCommentBOS.forEach(schisandraShareCommentReplyBO -> {
|
for (SchisandraShareCommentReplyBO schisandraShareCommentReplyBO : schisandraShareCommentBOS) {
|
||||||
SchisandraUserLikesComment schisandraUserLikesComment =
|
SchisandraUserLikesComment schisandraUserLikesComment =
|
||||||
schisandraUserLikesCommentService.queryByuserIdAndCommentId(schisandraShareCommentReplyBO.getId(), userId);
|
schisandraUserLikesCommentService.queryByuserIdAndCommentId(schisandraShareCommentReplyBO.getId(), userId);
|
||||||
if(schisandraUserLikesComment!=null){
|
if (schisandraUserLikesComment != null) {
|
||||||
schisandraShareCommentReplyBO.setIsLike(true);
|
schisandraShareCommentReplyBO.setIsLike(true);
|
||||||
}
|
}
|
||||||
AuthUserInfoEntity userInfo = userRpc.getUserInfo(schisandraShareCommentReplyBO.getUserId());
|
CompletableFuture<AuthUserInfoEntity> futurePrice = CompletableFuture.supplyAsync(() -> {
|
||||||
|
AuthUserInfoEntity info = userRpc.getUserInfo(schisandraShareCommentReplyBO.getUserId());
|
||||||
|
return info;
|
||||||
|
});
|
||||||
|
AuthUserInfoEntity userInfo = futurePrice.join();
|
||||||
schisandraShareCommentReplyBO.setNick(userInfo.getNickName());
|
schisandraShareCommentReplyBO.setNick(userInfo.getNickName());
|
||||||
schisandraShareCommentReplyBO.setAvatar(userInfo.getAvatar());
|
schisandraShareCommentReplyBO.setAvatar(userInfo.getAvatar());
|
||||||
|
|
||||||
AuthUserAddressEntity userAddress = addressRpc.getUserAddress(schisandraShareCommentReplyBO.getUserId());
|
AuthUserAddressEntity userAddress = addressRpc.getUserAddress(schisandraShareCommentReplyBO.getUserId());
|
||||||
if(userAddress!=null){
|
if (userAddress != null) {
|
||||||
schisandraShareCommentReplyBO.setLocation(userAddress.getLocation());
|
schisandraShareCommentReplyBO.setLocation(userAddress.getLocation());
|
||||||
schisandraShareCommentReplyBO.setBrowser(userAddress.getBrowser());
|
schisandraShareCommentReplyBO.setBrowser(userAddress.getBrowser());
|
||||||
schisandraShareCommentReplyBO.setBrowserVersion(userAddress.getBrowserVersion());
|
schisandraShareCommentReplyBO.setBrowserVersion(userAddress.getBrowserVersion());
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
return schisandraShareCommentBOS;
|
return schisandraShareCommentBOS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -127,7 +128,11 @@ public class SchisandraShareCommentReplyDomainServiceImpl implements SchisandraS
|
|||||||
if(schisandraUserLikesComment!=null){
|
if(schisandraUserLikesComment!=null){
|
||||||
schisandraShareCommentReplyBO.setIsLike(true);
|
schisandraShareCommentReplyBO.setIsLike(true);
|
||||||
}
|
}
|
||||||
AuthUserInfoEntity userInfo = userRpc.getUserInfo(schisandraShareCommentReplyBO.getUserId());
|
CompletableFuture<AuthUserInfoEntity> futurePrice = CompletableFuture.supplyAsync(() -> {
|
||||||
|
AuthUserInfoEntity info = userRpc.getUserInfo(schisandraShareCommentReplyBO.getUserId());
|
||||||
|
return info;
|
||||||
|
});
|
||||||
|
AuthUserInfoEntity userInfo = futurePrice.join();
|
||||||
schisandraShareCommentReplyBO.setNick(userInfo.getNickName());
|
schisandraShareCommentReplyBO.setNick(userInfo.getNickName());
|
||||||
schisandraShareCommentReplyBO.setAvatar(userInfo.getAvatar());
|
schisandraShareCommentReplyBO.setAvatar(userInfo.getAvatar());
|
||||||
AuthUserAddressEntity userAddress = addressRpc.getUserAddress(schisandraShareCommentReplyBO.getUserId());
|
AuthUserAddressEntity userAddress = addressRpc.getUserAddress(schisandraShareCommentReplyBO.getUserId());
|
||||||
@@ -150,7 +155,11 @@ public class SchisandraShareCommentReplyDomainServiceImpl implements SchisandraS
|
|||||||
if(schisandraUserLikesComment!=null){
|
if(schisandraUserLikesComment!=null){
|
||||||
schisandraShareReplyBO.setIsLike(true);
|
schisandraShareReplyBO.setIsLike(true);
|
||||||
}
|
}
|
||||||
AuthUserInfoEntity userInfo = userRpc.getUserInfo(schisandraShareReplyBO.getUserId());
|
CompletableFuture<AuthUserInfoEntity> futurePrice = CompletableFuture.supplyAsync(() -> {
|
||||||
|
AuthUserInfoEntity info = userRpc.getUserInfo(schisandraShareReplyBO.getUserId());
|
||||||
|
return info;
|
||||||
|
});
|
||||||
|
AuthUserInfoEntity userInfo = futurePrice.join();
|
||||||
|
|
||||||
if (schisandraShareReplyBO.getReplyUser() != null) {
|
if (schisandraShareReplyBO.getReplyUser() != null) {
|
||||||
AuthUserInfoEntity userInfo2 = userRpc.getUserInfo(schisandraShareReplyBO.getReplyUser());
|
AuthUserInfoEntity userInfo2 = userRpc.getUserInfo(schisandraShareReplyBO.getReplyUser());
|
||||||
|
@@ -14,10 +14,15 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static com.schisandra.share.common.enums.TypeName.getByType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 分享详情表 领域service实现了
|
* 分享详情表 领域service实现了
|
||||||
*
|
*
|
||||||
@@ -70,16 +75,22 @@ public class SchisandraShareDetailDomainServiceImpl implements SchisandraShareDe
|
|||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
@Override
|
@Override
|
||||||
public List<SchisandraShareDetailBO> list(String circleId,String userId) {
|
public List<SchisandraShareDetailBO> list(String circleId, String userId) {
|
||||||
List<SchisandraShareDetail> schisandraShareDetails = schisandraShareDetailService.queryByCircleId(circleId);
|
List<SchisandraShareDetail> schisandraShareDetails = schisandraShareDetailService.queryByCircleId(circleId);
|
||||||
List<SchisandraShareDetailBO> shareDetailBOList = SchisandraShareDetailBOConverter.INSTANCE.convertEntityToBOList(schisandraShareDetails);
|
List<SchisandraShareDetailBO> shareDetailBOList = SchisandraShareDetailBOConverter.INSTANCE.convertEntityToBOList(schisandraShareDetails);
|
||||||
LinkedList<SchisandraShareDetailBO> resultList = new LinkedList<>();
|
LinkedList<SchisandraShareDetailBO> resultList = new LinkedList<>();
|
||||||
shareDetailBOList.forEach(shareDetailBO -> {
|
shareDetailBOList.forEach(shareDetailBO -> {
|
||||||
AuthUserInfoEntity userInfo = userRpc.getUserInfo(shareDetailBO.getUserId());
|
|
||||||
|
CompletableFuture<AuthUserInfoEntity> futurePrice = CompletableFuture.supplyAsync(() -> {
|
||||||
|
AuthUserInfoEntity info = userRpc.getUserInfo(shareDetailBO.getUserId());
|
||||||
|
return info;
|
||||||
|
});
|
||||||
|
AuthUserInfoEntity userInfo = futurePrice.join();
|
||||||
|
|
||||||
SchisandraShareDetailBO schisandraShareDetailBO = new SchisandraShareDetailBO();
|
SchisandraShareDetailBO schisandraShareDetailBO = new SchisandraShareDetailBO();
|
||||||
SchisandraUserLikesComment schisandraUserLikesComment =
|
SchisandraUserLikesComment schisandraUserLikesComment =
|
||||||
schisandraUserLikesCommentService.queryByuserIdAndCommentId(shareDetailBO.getId(), userId);
|
schisandraUserLikesCommentService.queryByuserIdAndCommentId(shareDetailBO.getId(), userId);
|
||||||
if(schisandraUserLikesComment!=null){
|
if (schisandraUserLikesComment != null) {
|
||||||
schisandraShareDetailBO.setIsLike(true);
|
schisandraShareDetailBO.setIsLike(true);
|
||||||
}
|
}
|
||||||
schisandraShareDetailBO.setCircleId(shareDetailBO.getCircleId());
|
schisandraShareDetailBO.setCircleId(shareDetailBO.getCircleId());
|
||||||
@@ -106,17 +117,17 @@ public class SchisandraShareDetailDomainServiceImpl implements SchisandraShareDe
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SchisandraShareDetailBO getDetailsById2(String Id,String userId) {
|
public SchisandraShareDetailBO getDetailsById(String Id, String userId) {
|
||||||
SchisandraShareDetail schisandraShareDetails = schisandraShareDetailService.queryById(Id);
|
SchisandraShareDetail schisandraShareDetails = schisandraShareDetailService.queryById(Id);
|
||||||
SchisandraShareDetailBO schisandraShareDetailBO = SchisandraShareDetailBOConverter.INSTANCE.convertEntityToBO(schisandraShareDetails);
|
SchisandraShareDetailBO schisandraShareDetailBO = SchisandraShareDetailBOConverter.INSTANCE.convertEntityToBO(schisandraShareDetails);
|
||||||
|
|
||||||
SchisandraUserFavorites schisandraUserFavorites = schisandraUserFavoritesService.selectFavor(Id, userId);
|
SchisandraUserFavorites schisandraUserFavorites = schisandraUserFavoritesService.selectFavor(Id, userId);
|
||||||
if(schisandraUserFavorites!=null){
|
if (schisandraUserFavorites != null) {
|
||||||
schisandraShareDetailBO.setIsFavor(true);
|
schisandraShareDetailBO.setIsFavor(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
SchisandraUserLikesDetail schisandraUserLikesDetail = schisandraUserLikesDetailService.selectLike(Id, userId);
|
SchisandraUserLikesDetail schisandraUserLikesDetail = schisandraUserLikesDetailService.selectLike(Id, userId);
|
||||||
if(schisandraUserLikesDetail!=null){
|
if (schisandraUserLikesDetail != null) {
|
||||||
schisandraShareDetailBO.setIsLike(true);
|
schisandraShareDetailBO.setIsLike(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,35 +153,6 @@ public class SchisandraShareDetailDomainServiceImpl implements SchisandraShareDe
|
|||||||
|
|
||||||
return schisandraShareDetailBO;
|
return schisandraShareDetailBO;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public SchisandraShareDetailBO getDetailsById(String Id) {
|
|
||||||
SchisandraShareDetail schisandraShareDetails = schisandraShareDetailService.queryById(Id);
|
|
||||||
SchisandraShareDetailBO schisandraShareDetailBO = SchisandraShareDetailBOConverter.INSTANCE.convertEntityToBO(schisandraShareDetails);
|
|
||||||
|
|
||||||
AuthUserInfoEntity userInfo = userRpc.getUserInfo(schisandraShareDetailBO.getUserId());
|
|
||||||
schisandraShareDetailBO.setAvatar(userInfo.getAvatar());
|
|
||||||
schisandraShareDetailBO.setNickname(userInfo.getNickName());
|
|
||||||
|
|
||||||
List<SchisandraShareUrlDetail> schisandraShareUrlDetailS = schisandraShareUrlDetailService.queryByDetailId(Id);
|
|
||||||
List<SchisandraShareUrlDetailBO> schisandraShareUrlDetailBOS = SchisandraShareUrlDetailBOConverter.INSTANCE.convertEntityToBOList(schisandraShareUrlDetailS);
|
|
||||||
Assert.notNull(schisandraShareUrlDetailBOS.stream().map(SchisandraShareUrlDetailBO::getUrlId).collect(Collectors.toList()), "分享链接为空");
|
|
||||||
List<String> urlIds = schisandraShareUrlDetailBOS.stream().map(SchisandraShareUrlDetailBO::getUrlId).collect(Collectors.toList());
|
|
||||||
|
|
||||||
List<SchisandraShareUrl> schisandraShareUrlS = schisandraShareUrlService.queryByIds(urlIds);
|
|
||||||
List<SchisandraShareUrlBO> schisandraShareUrlBOS = SchisandraShareUrlBOConverter.INSTANCE.convertEntityToBOList(schisandraShareUrlS);
|
|
||||||
schisandraShareDetailBO.setUrls(schisandraShareUrlBOS);
|
|
||||||
|
|
||||||
List<SchisandraShareDetailTag> schisandraShareDetailTags = schisandraShareDetailTagService.queryTagIdsByDetailId(schisandraShareDetailBO.getId());
|
|
||||||
List<SchisandraShareDetailTagBO> shareDetailTagBOList = SchisandraShareDetailTagBOConverter.INSTANCE.convertEntityToBOList(schisandraShareDetailTags);
|
|
||||||
List<String> tagIds = shareDetailTagBOList.stream().map(SchisandraShareDetailTagBO::getTagId).collect(Collectors.toList());
|
|
||||||
List<SchisandraShareTags> shareTagList = schisandraShareTagsService.queryByIds(tagIds);
|
|
||||||
List<SchisandraShareTagsBO> shareTagsBOList = SchisandraShareTagsBOConverter.INSTANCE.convertEntityToBOList(shareTagList);
|
|
||||||
schisandraShareDetailBO.setTags(shareTagsBOList);
|
|
||||||
|
|
||||||
return schisandraShareDetailBO;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean addDetail(SchisandraShareDetailBO schisandraShareDetailBO) {
|
public Boolean addDetail(SchisandraShareDetailBO schisandraShareDetailBO) {
|
||||||
SchisandraShareDetail schisandraShareDetail = SchisandraShareDetailBOConverter.INSTANCE.convertBOToEntity(schisandraShareDetailBO);
|
SchisandraShareDetail schisandraShareDetail = SchisandraShareDetailBOConverter.INSTANCE.convertBOToEntity(schisandraShareDetailBO);
|
||||||
@@ -186,10 +168,23 @@ public class SchisandraShareDetailDomainServiceImpl implements SchisandraShareDe
|
|||||||
schisandraShareDetailTagService.insert(schisandraShareDetailTag);
|
schisandraShareDetailTagService.insert(schisandraShareDetailTag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
List<SchisandraShareUrlBO> urls_list = schisandraShareDetailBO.getUrls();
|
List<SchisandraShareUrlBO> urls_list = schisandraShareDetailBO.getUrls();
|
||||||
List<SchisandraShareUrl> urls = SchisandraShareUrlBOConverter.INSTANCE.convertBOToEntityList(urls_list);
|
List<SchisandraShareUrl> urls = SchisandraShareUrlBOConverter.INSTANCE.convertBOToEntityList(urls_list);
|
||||||
schisandraShareUrlService.insertBatch(urls);
|
ArrayList<SchisandraShareUrl> newUrls = new ArrayList<>();
|
||||||
|
urls.forEach(url -> {
|
||||||
|
SchisandraShareUrl schisandraShareUrl = new SchisandraShareUrl();
|
||||||
|
schisandraShareUrl.setUrl(url.getUrl());
|
||||||
|
schisandraShareUrl.setDescription(url.getDescription());
|
||||||
|
schisandraShareUrl.setType(url.getType());
|
||||||
|
if (url.getPassword() == null) {
|
||||||
|
schisandraShareUrl.setPassword("");
|
||||||
|
}
|
||||||
|
schisandraShareUrl.setPassword(url.getPassword());
|
||||||
|
schisandraShareUrl.setTypeName(Objects.requireNonNull(getByType(url.getType())).typeName);
|
||||||
|
newUrls.add(schisandraShareUrl);
|
||||||
|
});
|
||||||
|
int insertBatch = schisandraShareUrlService.insertBatch(newUrls);
|
||||||
|
assert insertBatch > 0;
|
||||||
for (SchisandraShareUrl url : urls) {
|
for (SchisandraShareUrl url : urls) {
|
||||||
SchisandraShareUrlDetail schisandraShareUrlDetail = new SchisandraShareUrlDetail();
|
SchisandraShareUrlDetail schisandraShareUrlDetail = new SchisandraShareUrlDetail();
|
||||||
schisandraShareUrlDetail.setUrlId(url.getId());
|
schisandraShareUrlDetail.setUrlId(url.getId());
|
||||||
@@ -205,7 +200,11 @@ public class SchisandraShareDetailDomainServiceImpl implements SchisandraShareDe
|
|||||||
List<SchisandraShareDetailBO> shareDetailBOList = SchisandraShareDetailBOConverter.INSTANCE.convertEntityToBOList(schisandraShareDetails);
|
List<SchisandraShareDetailBO> shareDetailBOList = SchisandraShareDetailBOConverter.INSTANCE.convertEntityToBOList(schisandraShareDetails);
|
||||||
LinkedList<SchisandraShareDetailBO> resultList = new LinkedList<>();
|
LinkedList<SchisandraShareDetailBO> resultList = new LinkedList<>();
|
||||||
shareDetailBOList.forEach(shareDetailBO -> {
|
shareDetailBOList.forEach(shareDetailBO -> {
|
||||||
AuthUserInfoEntity userInfo = userRpc.getUserInfo(shareDetailBO.getUserId());
|
CompletableFuture<AuthUserInfoEntity> futurePrice = CompletableFuture.supplyAsync(() -> {
|
||||||
|
AuthUserInfoEntity info = userRpc.getUserInfo(shareDetailBO.getUserId());
|
||||||
|
return info;
|
||||||
|
});
|
||||||
|
AuthUserInfoEntity userInfo = futurePrice.join();
|
||||||
SchisandraShareDetailBO schisandraShareDetailBO = new SchisandraShareDetailBO();
|
SchisandraShareDetailBO schisandraShareDetailBO = new SchisandraShareDetailBO();
|
||||||
schisandraShareDetailBO.setCircleId(shareDetailBO.getCircleId());
|
schisandraShareDetailBO.setCircleId(shareDetailBO.getCircleId());
|
||||||
schisandraShareDetailBO.setIcon(shareDetailBO.getIcon());
|
schisandraShareDetailBO.setIcon(shareDetailBO.getIcon());
|
||||||
@@ -264,4 +263,10 @@ public class SchisandraShareDetailDomainServiceImpl implements SchisandraShareDe
|
|||||||
List<SchisandraShareDetailBO> shareDetailBOList = SchisandraShareDetailBOConverter.INSTANCE.convertEntityToBOList(schisandraShareDetails);
|
List<SchisandraShareDetailBO> shareDetailBOList = SchisandraShareDetailBOConverter.INSTANCE.convertEntityToBOList(schisandraShareDetails);
|
||||||
return shareDetailBOList;
|
return shareDetailBOList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long getDetailsCommentCount(String detailId) {
|
||||||
|
Long count = schisandraShareDetailService.getDetailsCommentCount(detailId);
|
||||||
|
return count;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -75,4 +75,6 @@ public interface SchisandraShareDetailService {
|
|||||||
List<SchisandraShareDetail> queryAllDeatiles();
|
List<SchisandraShareDetail> queryAllDeatiles();
|
||||||
|
|
||||||
List<SchisandraShareDetail> queryByIds(List<String> Ids);
|
List<SchisandraShareDetail> queryByIds(List<String> Ids);
|
||||||
|
|
||||||
|
Long getDetailsCommentCount(String detailId);
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
package com.schisandra.share.infra.basic.service.impl;
|
package com.schisandra.share.infra.basic.service.impl;
|
||||||
|
|
||||||
|
import com.mybatisflex.core.query.QueryWrapper;
|
||||||
import com.mybatisflex.core.update.UpdateWrapper;
|
import com.mybatisflex.core.update.UpdateWrapper;
|
||||||
import com.mybatisflex.core.util.UpdateEntity;
|
import com.mybatisflex.core.util.UpdateEntity;
|
||||||
import com.schisandra.share.infra.basic.dao.SchisandraShareDetailDao;
|
import com.schisandra.share.infra.basic.dao.SchisandraShareDetailDao;
|
||||||
@@ -142,6 +143,14 @@ public class SchisandraShareDetailServiceImpl implements SchisandraShareDetailSe
|
|||||||
return this.schisandraShareDetailDao.selectListByIds(ids);
|
return this.schisandraShareDetailDao.selectListByIds(ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long getDetailsCommentCount(String detailId) {
|
||||||
|
QueryWrapper queryWrapper = new QueryWrapper();
|
||||||
|
queryWrapper.select(SchisandraShareDetailTableDef.SCHISANDRA_SHARE_DETAIL.COMMENT_COUNT).from(SchisandraShareDetailTableDef.SCHISANDRA_SHARE_DETAIL).where(SchisandraShareDetailTableDef.SCHISANDRA_SHARE_DETAIL.ID.eq(detailId));
|
||||||
|
|
||||||
|
return this.schisandraShareDetailDao.selectOneByQueryAs(queryWrapper, Long.class);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SchisandraShareDetail> queryAllDeatiles() {
|
public List<SchisandraShareDetail> queryAllDeatiles() {
|
||||||
return schisandraShareDetailDao.selectAll();
|
return schisandraShareDetailDao.selectAll();
|
||||||
|
@@ -1,8 +1,7 @@
|
|||||||
package com.schisandra.share.infra.basic.service.impl;
|
package com.schisandra.share.infra.basic.service.impl;
|
||||||
|
|
||||||
import com.schisandra.share.infra.basic.entity.SchisandraShareTags;
|
|
||||||
import com.schisandra.share.infra.basic.entity.SchisandraShareUrl;
|
|
||||||
import com.schisandra.share.infra.basic.dao.SchisandraShareUrlDao;
|
import com.schisandra.share.infra.basic.dao.SchisandraShareUrlDao;
|
||||||
|
import com.schisandra.share.infra.basic.entity.SchisandraShareUrl;
|
||||||
import com.schisandra.share.infra.basic.service.SchisandraShareUrlService;
|
import com.schisandra.share.infra.basic.service.SchisandraShareUrlService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -51,7 +50,7 @@ public class SchisandraShareUrlServiceImpl implements SchisandraShareUrlService
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public int update(SchisandraShareUrl schisandraShareUrl) {
|
public int update(SchisandraShareUrl schisandraShareUrl) {
|
||||||
return this.schisandraShareUrlDao.update(schisandraShareUrl,true);
|
return this.schisandraShareUrlDao.update(schisandraShareUrl, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -5,6 +5,7 @@
|
|||||||
<resultMap id="BaseResultMap" type="com.schisandra.share.infra.basic.entity.SchisandraShareUrl">
|
<resultMap id="BaseResultMap" type="com.schisandra.share.infra.basic.entity.SchisandraShareUrl">
|
||||||
<id column="id" jdbcType="VARCHAR" property="id"/>
|
<id column="id" jdbcType="VARCHAR" property="id"/>
|
||||||
<result column="url" jdbcType="VARCHAR" property="url"/>
|
<result column="url" jdbcType="VARCHAR" property="url"/>
|
||||||
|
<result column="type_name" jdbcType="VARCHAR" property="typeName"/>
|
||||||
<result column="type" jdbcType="VARCHAR" property="type"/>
|
<result column="type" jdbcType="VARCHAR" property="type"/>
|
||||||
<result column="password" jdbcType="VARCHAR" property="password"/>
|
<result column="password" jdbcType="VARCHAR" property="password"/>
|
||||||
<result column="description" jdbcType="VARCHAR" property="description"/>
|
<result column="description" jdbcType="VARCHAR" property="description"/>
|
||||||
|
@@ -38,7 +38,7 @@ spring:
|
|||||||
# Redis服务器连接密码(默认为空)
|
# Redis服务器连接密码(默认为空)
|
||||||
password: LDQ20020618xxx
|
password: LDQ20020618xxx
|
||||||
# 连接超时时间
|
# 连接超时时间
|
||||||
timeout: 2s
|
timeout: 10s
|
||||||
lettuce:
|
lettuce:
|
||||||
pool:
|
pool:
|
||||||
# 连接池最大连接数
|
# 连接池最大连接数
|
||||||
|
@@ -0,0 +1,38 @@
|
|||||||
|
package com.schisandra.system.application.config;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.http.converter.HttpMessageConverter;
|
||||||
|
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
||||||
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Classname GlobalConfig
|
||||||
|
* @BelongsProject: schisandra-cloud-storage
|
||||||
|
* @BelongsPackage: com.schisandra.auth.application.common
|
||||||
|
* @Author: schisandra
|
||||||
|
* @CreateTime: 2024-02-16 15:57
|
||||||
|
* @Description: MVC全局处理
|
||||||
|
* @Version: 1.0
|
||||||
|
*/
|
||||||
|
@Configuration
|
||||||
|
public class GlobalConfig extends WebMvcConfigurationSupport {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
|
||||||
|
super.configureMessageConverters(converters);
|
||||||
|
converters.add(mappingJackson2HttpMessageConverter());
|
||||||
|
}
|
||||||
|
|
||||||
|
private MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
|
||||||
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
|
objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
|
||||||
|
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
|
||||||
|
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(objectMapper);
|
||||||
|
return converter;
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,29 @@
|
|||||||
|
package com.schisandra.system.application.config;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import com.schisandra.system.application.factory.CustomNameThreadFactory;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
import java.util.concurrent.LinkedBlockingDeque;
|
||||||
|
import java.util.concurrent.ThreadPoolExecutor;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 线程池的config管理
|
||||||
|
*
|
||||||
|
* @author: landaiqing
|
||||||
|
* @date: 2024/2/18
|
||||||
|
*/
|
||||||
|
@Configuration
|
||||||
|
public class ThreadPoolConfig {
|
||||||
|
|
||||||
|
@Bean(name = "rotateCaptchaThreadPool")
|
||||||
|
public ThreadPoolExecutor getLabelThreadPool() {
|
||||||
|
return new ThreadPoolExecutor(20, 100, 5,
|
||||||
|
TimeUnit.SECONDS, new LinkedBlockingDeque<>(40),
|
||||||
|
new CustomNameThreadFactory("rotateCaptcha"),
|
||||||
|
new ThreadPoolExecutor.CallerRunsPolicy());
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,49 @@
|
|||||||
|
package com.schisandra.system.application.factory;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
|
import java.util.concurrent.ThreadFactory;
|
||||||
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自定义名称的线程工厂
|
||||||
|
*
|
||||||
|
* @author: landaiqing
|
||||||
|
* @date: 2024/2/18
|
||||||
|
*/
|
||||||
|
public class CustomNameThreadFactory implements ThreadFactory {
|
||||||
|
|
||||||
|
private static final AtomicInteger poolNumber = new AtomicInteger(1);
|
||||||
|
private final ThreadGroup group;
|
||||||
|
private final AtomicInteger threadNumber = new AtomicInteger(1);
|
||||||
|
private final String namePrefix;
|
||||||
|
|
||||||
|
public CustomNameThreadFactory(String name) {
|
||||||
|
SecurityManager s = System.getSecurityManager();
|
||||||
|
group = (s != null) ? s.getThreadGroup() :
|
||||||
|
Thread.currentThread().getThreadGroup();
|
||||||
|
if (StringUtils.isBlank(name)) {
|
||||||
|
name = "pool";
|
||||||
|
}
|
||||||
|
namePrefix = name + "-" +
|
||||||
|
poolNumber.getAndIncrement() +
|
||||||
|
"-thread-";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Thread newThread(Runnable r) {
|
||||||
|
Thread t = new Thread(group, r,
|
||||||
|
namePrefix + threadNumber.getAndIncrement(),
|
||||||
|
0);
|
||||||
|
// 设置线程为非守护线程
|
||||||
|
if (t.isDaemon()){
|
||||||
|
t.setDaemon(false);
|
||||||
|
}
|
||||||
|
// 设置线程优先级为正常优先级
|
||||||
|
if (t.getPriority() != Thread.NORM_PRIORITY){
|
||||||
|
t.setPriority(Thread.NORM_PRIORITY);
|
||||||
|
}
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -1,83 +1,78 @@
|
|||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>com.schisandra.system</groupId>
|
<groupId>com.schisandra.system</groupId>
|
||||||
<artifactId>schisandra-cloud-storage-system</artifactId>
|
<artifactId>schisandra-cloud-storage-system</artifactId>
|
||||||
<version>1.0-SNAPSHOT</version>
|
<version>1.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>schisandra-cloud-storage-system-domain</artifactId>
|
<artifactId>schisandra-cloud-storage-system-domain</artifactId>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>schisandra-cloud-storage-system-domain</name>
|
<name>schisandra-cloud-storage-system-domain</name>
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
<version>3.13.0</version>
|
<version>3.13.0</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<source>1.8</source>
|
<source>1.8</source>
|
||||||
<target>1.8</target>
|
<target>1.8</target>
|
||||||
<encoding>UTF-8</encoding>
|
<encoding>UTF-8</encoding>
|
||||||
<annotationProcessorPaths>
|
<annotationProcessorPaths>
|
||||||
<path>
|
<path>
|
||||||
<groupId>org.projectlombok</groupId>
|
<groupId>org.projectlombok</groupId>
|
||||||
<artifactId>lombok</artifactId>
|
<artifactId>lombok</artifactId>
|
||||||
<version>1.18.24</version>
|
<version>1.18.24</version>
|
||||||
</path>
|
</path>
|
||||||
<!-- 必须要加, 否则生成不了 MapperImpl 实现类 -->
|
<!-- 必须要加, 否则生成不了 MapperImpl 实现类 -->
|
||||||
<path>
|
<path>
|
||||||
<groupId>org.mapstruct</groupId>
|
<groupId>org.mapstruct</groupId>
|
||||||
<artifactId>mapstruct-processor</artifactId>
|
<artifactId>mapstruct-processor</artifactId>
|
||||||
<version>1.4.2.Final</version>
|
<version>1.4.2.Final</version>
|
||||||
</path>
|
</path>
|
||||||
<!-- 如果是 0.1.0 有可能出现生成了maptruct的实现类, 但该类只创建了对象, 没有进行赋值 -->
|
<!-- 如果是 0.1.0 有可能出现生成了maptruct的实现类, 但该类只创建了对象, 没有进行赋值 -->
|
||||||
<path>
|
<path>
|
||||||
<groupId>org.projectlombok</groupId>
|
<groupId>org.projectlombok</groupId>
|
||||||
<artifactId>lombok-mapstruct-binding</artifactId>
|
<artifactId>lombok-mapstruct-binding</artifactId>
|
||||||
<version>0.2.0</version>
|
<version>0.2.0</version>
|
||||||
</path>
|
</path>
|
||||||
<path>
|
<path>
|
||||||
<groupId>com.mybatis-flex</groupId>
|
<groupId>com.mybatis-flex</groupId>
|
||||||
<artifactId>mybatis-flex-processor</artifactId>
|
<artifactId>mybatis-flex-processor</artifactId>
|
||||||
<version>1.9.0</version>
|
<version>1.9.0</version>
|
||||||
</path>
|
</path>
|
||||||
</annotationProcessorPaths>
|
</annotationProcessorPaths>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<maven.compiler.source>8</maven.compiler.source>
|
<maven.compiler.source>8</maven.compiler.source>
|
||||||
<maven.compiler.target>8</maven.compiler.target>
|
<maven.compiler.target>8</maven.compiler.target>
|
||||||
<java.version>1.8</java.version>
|
<java.version>1.8</java.version>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.schisandra.system</groupId>
|
<groupId>com.schisandra.system</groupId>
|
||||||
<artifactId>schisandra-cloud-storage-system-infra</artifactId>
|
<artifactId>schisandra-cloud-storage-system-infra</artifactId>
|
||||||
<version>1.0-SNAPSHOT</version>
|
<version>1.0-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.schisandra.system</groupId>
|
<groupId>com.schisandra.system</groupId>
|
||||||
<artifactId>schisandra-cloud-storage-system-common</artifactId>
|
<artifactId>schisandra-cloud-storage-system-common</artifactId>
|
||||||
<version>1.0-SNAPSHOT</version>
|
<version>1.0-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.xuxueli</groupId>
|
<groupId>org.springframework</groupId>
|
||||||
<artifactId>xxl-job-core</artifactId>
|
<artifactId>spring-context</artifactId>
|
||||||
<version>2.4.0</version>
|
<version>5.3.27</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
</dependencies>
|
||||||
<groupId>org.springframework</groupId>
|
</project>
|
||||||
<artifactId>spring-context</artifactId>
|
|
||||||
<version>5.3.27</version>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
</project>
|
|
||||||
|
@@ -1,78 +0,0 @@
|
|||||||
package com.schisandra.system.domain.config;
|
|
||||||
|
|
||||||
import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* xxl-job config
|
|
||||||
*
|
|
||||||
* @author xuxueli 2017-04-28
|
|
||||||
*/
|
|
||||||
@Configuration
|
|
||||||
public class XxlJobConfig {
|
|
||||||
private Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
|
|
||||||
|
|
||||||
@Value("${xxl.job.admin.addresses}")
|
|
||||||
private String adminAddresses;
|
|
||||||
|
|
||||||
@Value("${xxl.job.accessToken}")
|
|
||||||
private String accessToken;
|
|
||||||
|
|
||||||
@Value("${xxl.job.executor.appname}")
|
|
||||||
private String appname;
|
|
||||||
|
|
||||||
@Value("${xxl.job.executor.address}")
|
|
||||||
private String address;
|
|
||||||
|
|
||||||
@Value("${xxl.job.executor.ip}")
|
|
||||||
private String ip;
|
|
||||||
|
|
||||||
@Value("${xxl.job.executor.port}")
|
|
||||||
private int port;
|
|
||||||
|
|
||||||
@Value("${xxl.job.executor.logpath}")
|
|
||||||
private String logPath;
|
|
||||||
|
|
||||||
@Value("${xxl.job.executor.logretentiondays}")
|
|
||||||
private int logRetentionDays;
|
|
||||||
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public XxlJobSpringExecutor xxlJobExecutor() {
|
|
||||||
logger.info(">>>>>>>>>>> xxl-job config init.");
|
|
||||||
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
|
|
||||||
xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
|
|
||||||
xxlJobSpringExecutor.setAppname(appname);
|
|
||||||
xxlJobSpringExecutor.setAddress(address);
|
|
||||||
xxlJobSpringExecutor.setIp(ip);
|
|
||||||
xxlJobSpringExecutor.setPort(port);
|
|
||||||
xxlJobSpringExecutor.setAccessToken(accessToken);
|
|
||||||
xxlJobSpringExecutor.setLogPath(logPath);
|
|
||||||
xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
|
|
||||||
|
|
||||||
return xxlJobSpringExecutor;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;
|
|
||||||
*
|
|
||||||
* 1、引入依赖:
|
|
||||||
* <dependency>
|
|
||||||
* <groupId>org.springframework.cloud</groupId>
|
|
||||||
* <artifactId>spring-cloud-commons</artifactId>
|
|
||||||
* <version>${version}</version>
|
|
||||||
* </dependency>
|
|
||||||
*
|
|
||||||
* 2、配置文件,或者容器启动变量
|
|
||||||
* spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
|
|
||||||
*
|
|
||||||
* 3、获取IP
|
|
||||||
* String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@@ -38,7 +38,7 @@ spring:
|
|||||||
# Redis服务器连接密码(默认为空)
|
# Redis服务器连接密码(默认为空)
|
||||||
password: LDQ20020618xxx
|
password: LDQ20020618xxx
|
||||||
# 连接超时时间
|
# 连接超时时间
|
||||||
timeout: 2s
|
timeout: 10s
|
||||||
lettuce:
|
lettuce:
|
||||||
pool:
|
pool:
|
||||||
# 连接池最大连接数
|
# 连接池最大连接数
|
||||||
@@ -82,17 +82,3 @@ mybatis-flex:
|
|||||||
mapper-locations:
|
mapper-locations:
|
||||||
- "classpath*:/mapper/**/*.xml"
|
- "classpath*:/mapper/**/*.xml"
|
||||||
|
|
||||||
# xxl-job配置
|
|
||||||
xxl:
|
|
||||||
job:
|
|
||||||
admin:
|
|
||||||
addresses: http://1.95.0.111:8088/xxl-job-admin
|
|
||||||
accessToken: default_token
|
|
||||||
executor:
|
|
||||||
appname: schisandra-cloud-storage-system
|
|
||||||
address:
|
|
||||||
ip: 1.95.0.111
|
|
||||||
port: 9998
|
|
||||||
logpath: /data/applogs/xxl-job/jobhandler
|
|
||||||
logretentiondays: 30
|
|
||||||
|
|
||||||
|
@@ -12,7 +12,7 @@ spring:
|
|||||||
# Redis服务器连接密码(默认为空)
|
# Redis服务器连接密码(默认为空)
|
||||||
password: LDQ20020618xxx
|
password: LDQ20020618xxx
|
||||||
# 连接超时时间
|
# 连接超时时间
|
||||||
timeout: 2s
|
timeout: 10s
|
||||||
lettuce:
|
lettuce:
|
||||||
pool:
|
pool:
|
||||||
# 连接池最大连接数
|
# 连接池最大连接数
|
||||||
|
Reference in New Issue
Block a user