mirror of
https://gitee.com/durcframework/SOP.git
synced 2025-08-11 21:57:56 +08:00
5.0
This commit is contained in:
@@ -3,9 +3,12 @@ package com.gitee.sop.adminbackend.config;
|
||||
import com.gitee.sop.adminbackend.common.context.SpringContext;
|
||||
import com.gitee.sop.adminbackend.common.util.SystemUtil;
|
||||
import com.gitee.sop.adminbackend.interceptor.LoginInterceptor;
|
||||
import com.gitee.sop.adminbackend.service.sys.UserCacheService;
|
||||
import com.gitee.sop.adminbackend.service.sys.impl.LocalUserCacheService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.BeansException;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.ApplicationContextAware;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@@ -33,6 +36,12 @@ public class SopAdminConfiguration implements ApplicationContextAware, WebMvcCon
|
||||
SpringContext.setApplicationContext(applicationContext);
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnProperty(value = "user.cache.type", havingValue = "local", matchIfMissing = true)
|
||||
public UserCacheService userCacheService() {
|
||||
return new LocalUserCacheService();
|
||||
}
|
||||
|
||||
/**
|
||||
* 配置拦截器
|
||||
*
|
||||
@@ -84,10 +93,10 @@ public class SopAdminConfiguration implements ApplicationContextAware, WebMvcCon
|
||||
frontRoot = homeDir + "/dist";
|
||||
}
|
||||
log.info("前端资源目录:{}", frontRoot);
|
||||
String frontLocation = "file:" + frontRoot;
|
||||
registry.addResourceHandler("/index.html").addResourceLocations(frontLocation + "/index.html");
|
||||
registry.addResourceHandler("/favicon.ico").addResourceLocations(frontLocation + "/favicon.ico");
|
||||
registry.addResourceHandler("/static/**").addResourceLocations(frontLocation + "/static/");
|
||||
String location = "file:" + frontRoot;
|
||||
registry.addResourceHandler("/index.html").addResourceLocations(location + "/index.html");
|
||||
registry.addResourceHandler("/favicon.ico").addResourceLocations(location + "/favicon.ico");
|
||||
registry.addResourceHandler("/static/**").addResourceLocations(location + "/static/");
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -3,6 +3,10 @@ spring.profiles.active=dev
|
||||
|
||||
spring.application.name=sop-admin-backend
|
||||
|
||||
####### admin config #######
|
||||
# user cache
|
||||
user.cache.type=local
|
||||
|
||||
dubbo.protocol.name=dubbo
|
||||
dubbo.protocol.port=-1
|
||||
dubbo.application.qos-enable=false
|
||||
|
@@ -88,6 +88,11 @@
|
||||
<artifactId>lombok</artifactId>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
@@ -43,10 +43,10 @@ public class UserContext {
|
||||
|
||||
/**
|
||||
* 获取当前登录用户id
|
||||
* @return 返回id,没有返回-1
|
||||
* @return 返回id,没有返回null
|
||||
*/
|
||||
public static Long getUserId() {
|
||||
return Optional.ofNullable(getUser()).map(User::getUserId).orElse(-1L);
|
||||
return Optional.ofNullable(getUser()).map(User::getUserId).orElse(null);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -0,0 +1,31 @@
|
||||
package com.gitee.sop.adminbackend.common.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author 六如
|
||||
*/
|
||||
@Data
|
||||
public class UserDTO {
|
||||
|
||||
/**
|
||||
* 创建人id
|
||||
*/
|
||||
private Long addBy;
|
||||
|
||||
/**
|
||||
* 添加人姓名
|
||||
*/
|
||||
private String addByName;
|
||||
|
||||
/**
|
||||
* 修改人id
|
||||
*/
|
||||
private Long updateBy;
|
||||
|
||||
/**
|
||||
* 修改人姓名
|
||||
*/
|
||||
private String updateByName;
|
||||
|
||||
}
|
@@ -4,6 +4,7 @@ import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author 六如
|
||||
* @param <T> 参数类型
|
||||
*/
|
||||
public interface IEnum<T extends Serializable> {
|
||||
|
||||
|
@@ -0,0 +1,19 @@
|
||||
package com.gitee.sop.adminbackend.common.resp;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @author 六如
|
||||
*/
|
||||
@Data
|
||||
public class UserVO {
|
||||
|
||||
private Long id;
|
||||
|
||||
private String username;
|
||||
|
||||
private String nickname;
|
||||
|
||||
private String showName;
|
||||
|
||||
}
|
@@ -0,0 +1,54 @@
|
||||
package com.gitee.sop.adminbackend.common.support;
|
||||
|
||||
import com.gitee.fastmybatis.core.mapper.BaseMapper;
|
||||
import com.gitee.fastmybatis.core.query.LambdaQuery;
|
||||
import com.gitee.fastmybatis.core.support.LambdaService;
|
||||
import com.gitee.sop.adminbackend.common.context.UserContext;
|
||||
import com.gitee.sop.adminbackend.common.util.DateUtil;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @param <E> 实体类
|
||||
* @param <Mapper> Mapper
|
||||
* @author 六如
|
||||
*/
|
||||
public interface ServiceSupport<E, Mapper extends BaseMapper<E>> extends LambdaService<E, Mapper> {
|
||||
|
||||
@Override
|
||||
default LambdaQuery<E> query() {
|
||||
return new MyLambdaQuery<>(this.getEntityClass());
|
||||
}
|
||||
|
||||
class MyLambdaQuery<E> extends LambdaQuery<E> {
|
||||
private static final long serialVersionUID = 5232128649485429495L;
|
||||
|
||||
private static final String UPDATE_BY_FORMAT = "update_by = %s";
|
||||
private static final String UPDATE_TIME_FORMAT = "update_time = '%s'";
|
||||
|
||||
public MyLambdaQuery(Class<E> entityClass) {
|
||||
super(entityClass);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int update() {
|
||||
this.appendUpdate();
|
||||
return super.update();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int delete() {
|
||||
this.appendUpdate();
|
||||
return super.delete();
|
||||
}
|
||||
|
||||
private void appendUpdate() {
|
||||
Long userId = UserContext.getUserId();
|
||||
if (userId != null) {
|
||||
this.setExpression(String.format(UPDATE_BY_FORMAT, userId));
|
||||
}
|
||||
this.setExpression(String.format(UPDATE_TIME_FORMAT, DateUtil.formatYmdhms(LocalDateTime.now())));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@@ -12,6 +12,12 @@ public interface User {
|
||||
*/
|
||||
Long getUserId();
|
||||
|
||||
/**
|
||||
* 返回username
|
||||
* @return
|
||||
*/
|
||||
String getUsername();
|
||||
|
||||
/**
|
||||
* 昵称
|
||||
* @return
|
||||
@@ -21,4 +27,9 @@ public interface User {
|
||||
Integer getStatus();
|
||||
|
||||
String getToken();
|
||||
|
||||
default String getShowName() {
|
||||
String nickname = getNickname();
|
||||
return nickname != null && !nickname.isEmpty() ? nickname : getUsername();
|
||||
}
|
||||
}
|
||||
|
@@ -8,8 +8,8 @@ import java.time.format.DateTimeFormatter;
|
||||
*/
|
||||
public class DateUtil {
|
||||
|
||||
static DateTimeFormatter FORMATTER_FRONT = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
|
||||
static DateTimeFormatter FORMATTER_YMDHMS = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
static final DateTimeFormatter FORMATTER_FRONT = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
|
||||
static final DateTimeFormatter FORMATTER_YMDHMS = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
public static String formatFrontDate(LocalDateTime localDateTime) {
|
||||
return FORMATTER_FRONT.format(localDateTime);
|
||||
|
@@ -350,6 +350,14 @@ public class RSATool {
|
||||
public void setPrivateKey(String privateKey) {
|
||||
this.privateKey = privateKey;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "KeyStore{" +
|
||||
"publicKey='" + publicKey + '\'' +
|
||||
", privateKey='" + privateKey + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
@AllArgsConstructor
|
||||
|
@@ -0,0 +1,19 @@
|
||||
package com.gitee.sop.adminbackend.common;
|
||||
|
||||
import com.gitee.sop.adminbackend.common.util.RSATool;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* @author 六如
|
||||
*/
|
||||
public class RSAToolTest {
|
||||
|
||||
@Test
|
||||
public void create() throws Exception {
|
||||
RSATool.KeyStore keys = new RSATool(RSATool.KeyFormat.PKCS1, RSATool.KeyLength.LENGTH_2048).createKeys();
|
||||
System.out.println(keys.getPrivateKey());
|
||||
System.out.println(keys.getPublicKey());
|
||||
}
|
||||
|
||||
|
||||
}
|
@@ -1,6 +1,7 @@
|
||||
package com.gitee.sop.adminbackend.service.doc;
|
||||
|
||||
import com.gitee.fastmybatis.core.support.LambdaService;
|
||||
import com.gitee.sop.adminbackend.common.support.ServiceSupport;
|
||||
import com.gitee.sop.adminbackend.common.user.User;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import com.gitee.sop.adminbackend.dao.entity.DocApp;
|
||||
import com.gitee.sop.adminbackend.dao.mapper.DocAppMapper;
|
||||
@@ -16,7 +17,7 @@ import java.util.List;
|
||||
* @author 六如
|
||||
*/
|
||||
@Service
|
||||
public class DocAppService implements LambdaService<DocApp, DocAppMapper> {
|
||||
public class DocAppService implements ServiceSupport<DocApp, DocAppMapper> {
|
||||
|
||||
@Autowired
|
||||
private TornaClient tornaClient;
|
||||
@@ -26,7 +27,7 @@ public class DocAppService implements LambdaService<DocApp, DocAppMapper> {
|
||||
@Autowired
|
||||
private DocInfoSyncService docInfoSyncService;
|
||||
|
||||
public Long addDocApp(String token) {
|
||||
public Long addDocApp(String token, User user) {
|
||||
TornaModuleDTO tornaModuleDTO = tornaClient.execute("module.get", null, token, TornaModuleDTO.class);
|
||||
DocApp docApp = this.get(DocApp::getToken, token);
|
||||
if (docApp == null) {
|
||||
@@ -39,7 +40,7 @@ public class DocAppService implements LambdaService<DocApp, DocAppMapper> {
|
||||
this.update(docApp);
|
||||
}
|
||||
// 同步文档
|
||||
docInfoSyncService.syncDocInfo(docApp, null);
|
||||
docInfoSyncService.syncDocInfo(docApp, null, user);
|
||||
return docApp.getId();
|
||||
}
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
package com.gitee.sop.adminbackend.service.doc;
|
||||
|
||||
import com.gitee.fastmybatis.core.support.LambdaService;
|
||||
import com.gitee.sop.adminbackend.common.support.ServiceSupport;
|
||||
import com.gitee.sop.adminbackend.dao.entity.DocContent;
|
||||
import com.gitee.sop.adminbackend.dao.mapper.DocContentMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -10,7 +10,7 @@ import org.springframework.stereotype.Service;
|
||||
* @author 六如
|
||||
*/
|
||||
@Service
|
||||
public class DocContentService implements LambdaService<DocContent, DocContentMapper> {
|
||||
public class DocContentService implements ServiceSupport<DocContent, DocContentMapper> {
|
||||
|
||||
public void saveContent(Long docInfoId, String content) {
|
||||
DocContent docContent = this.get(DocContent::getDocInfoId, docInfoId);
|
||||
|
@@ -1,10 +1,10 @@
|
||||
package com.gitee.sop.adminbackend.service.doc;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.gitee.fastmybatis.core.support.LambdaService;
|
||||
import com.gitee.fastmybatis.core.util.TreeUtil;
|
||||
import com.gitee.sop.adminbackend.common.constants.YesOrNo;
|
||||
import com.gitee.sop.adminbackend.common.exception.BizException;
|
||||
import com.gitee.sop.adminbackend.common.support.ServiceSupport;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import com.gitee.sop.adminbackend.dao.entity.DocApp;
|
||||
import com.gitee.sop.adminbackend.dao.entity.DocInfo;
|
||||
@@ -13,6 +13,8 @@ import com.gitee.sop.adminbackend.dao.mapper.DocInfoMapper;
|
||||
import com.gitee.sop.adminbackend.service.doc.dto.DocInfoPublishUpdateDTO;
|
||||
import com.gitee.sop.adminbackend.service.doc.dto.DocInfoTreeDTO;
|
||||
import com.gitee.sop.adminbackend.service.doc.dto.torna.TornaDocInfoViewDTO;
|
||||
import com.gitee.sop.adminbackend.service.sys.SysUserService;
|
||||
import com.google.common.collect.Lists;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
@@ -27,12 +29,14 @@ import java.util.stream.Collectors;
|
||||
* @author 六如
|
||||
*/
|
||||
@Service
|
||||
public class DocInfoService implements LambdaService<DocInfo, DocInfoMapper> {
|
||||
public class DocInfoService implements ServiceSupport<DocInfo, DocInfoMapper> {
|
||||
|
||||
@Autowired
|
||||
private DocAppMapper docAppMapper;
|
||||
@Autowired
|
||||
private DocContentService docContentService;
|
||||
@Autowired
|
||||
private SysUserService sysUserService;
|
||||
|
||||
public List<DocInfo> listChildDoc(Long parentId) {
|
||||
return this.list(DocInfo::getParentId, parentId);
|
||||
@@ -43,7 +47,11 @@ public class DocInfoService implements LambdaService<DocInfo, DocInfoMapper> {
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
return new ArrayList<>(0);
|
||||
}
|
||||
Set<Long> userIds = list.stream().flatMap(docInfo -> Lists.newArrayList(docInfo.getAddBy(), docInfo.getUpdateBy()).stream())
|
||||
.filter(val -> val != null && val > 0)
|
||||
.collect(Collectors.toSet());
|
||||
List<DocInfoTreeDTO> docInfoTreeDTOS = CopyUtil.copyList(list, DocInfoTreeDTO::new);
|
||||
sysUserService.fillShowName(docInfoTreeDTOS);
|
||||
return TreeUtil.convertTree(docInfoTreeDTOS, 0L);
|
||||
}
|
||||
|
||||
|
@@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSON;
|
||||
import com.gitee.fastmybatis.core.util.TreeUtil;
|
||||
import com.gitee.sop.adminbackend.common.constants.YesOrNo;
|
||||
import com.gitee.sop.adminbackend.common.enums.DocSourceTypeEnum;
|
||||
import com.gitee.sop.adminbackend.common.user.User;
|
||||
import com.gitee.sop.adminbackend.dao.entity.DocApp;
|
||||
import com.gitee.sop.adminbackend.dao.entity.DocInfo;
|
||||
import com.gitee.sop.adminbackend.dao.mapper.DocAppMapper;
|
||||
@@ -42,18 +43,18 @@ public class DocInfoSyncService {
|
||||
@Autowired
|
||||
private DocContentService docContentService;
|
||||
|
||||
public void syncAppDoc(Long docAppId) {
|
||||
public void syncAppDoc(Long docAppId, User user) {
|
||||
DocApp docApp = docAppMapper.getById(docAppId);
|
||||
this.syncDocInfo(docApp, null);
|
||||
this.syncDocInfo(docApp, null, user);
|
||||
}
|
||||
|
||||
public void syncDoc(Long docInfoId) {
|
||||
public void syncDoc(Long docInfoId, User user) {
|
||||
DocInfo docInfo = docInfoService.getById(docInfoId);
|
||||
DocApp docApp = docAppMapper.getById(docInfo.getDocAppId());
|
||||
this.syncDocInfo(docApp, docInfoId);
|
||||
this.syncDocInfo(docApp, docInfoId, user);
|
||||
}
|
||||
|
||||
public void syncDocInfo(DocApp docApp, Long docInfoId) {
|
||||
public void syncDocInfo(DocApp docApp, Long docInfoId, User user) {
|
||||
Long docAppId = docApp.getId();
|
||||
Map<String, DocInfo> nameVersionMap = docInfoService.list(DocInfo::getDocAppId, docAppId)
|
||||
.stream()
|
||||
@@ -86,6 +87,7 @@ public class DocInfoSyncService {
|
||||
docInfo.setDescription(tornaDocInfoDTO.getDescription());
|
||||
docInfo.setIsFolder(tornaDocInfoDTO.getIsFolder().intValue());
|
||||
docInfo.setParentId(tornaDocInfoDTO.getParentId());
|
||||
docInfo.setUpdateBy(user.getUserId());
|
||||
updateList.add(docInfo);
|
||||
}
|
||||
}
|
||||
@@ -118,6 +120,7 @@ public class DocInfoSyncService {
|
||||
docInfo.setDescription(tornaDocInfoDTO.getDescription());
|
||||
docInfo.setIsFolder(tornaDocInfoDTO.getIsFolder().intValue());
|
||||
docInfo.setParentId(tornaDocInfoDTO.getParentId());
|
||||
docInfo.setAddBy(user.getUserId());
|
||||
return docInfo;
|
||||
})
|
||||
.collect(Collectors.toList());
|
||||
|
@@ -1,9 +1,9 @@
|
||||
package com.gitee.sop.adminbackend.service.doc.dto;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
/**
|
||||
* 备注:文档应用
|
||||
|
@@ -1,6 +1,7 @@
|
||||
package com.gitee.sop.adminbackend.service.doc.dto;
|
||||
|
||||
import com.gitee.fastmybatis.core.support.TreeNode;
|
||||
import com.gitee.sop.adminbackend.common.dto.UserDTO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
@@ -13,7 +14,7 @@ import java.util.List;
|
||||
* @author 六如
|
||||
*/
|
||||
@Data
|
||||
public class DocInfoTreeDTO implements TreeNode<DocInfoTreeDTO, Long> {
|
||||
public class DocInfoTreeDTO extends UserDTO implements TreeNode<DocInfoTreeDTO, Long> {
|
||||
|
||||
/**
|
||||
* id
|
||||
@@ -90,16 +91,6 @@ public class DocInfoTreeDTO implements TreeNode<DocInfoTreeDTO, Long> {
|
||||
*/
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
/**
|
||||
* 创建人id
|
||||
*/
|
||||
private Long addBy;
|
||||
|
||||
/**
|
||||
* 修改人id
|
||||
*/
|
||||
private Long updateBy;
|
||||
|
||||
private List<DocInfoTreeDTO> children;
|
||||
|
||||
|
||||
|
@@ -2,12 +2,14 @@ package com.gitee.sop.adminbackend.service.isv;
|
||||
|
||||
import com.gitee.fastmybatis.core.PageInfo;
|
||||
import com.gitee.fastmybatis.core.query.LambdaQuery;
|
||||
import com.gitee.fastmybatis.core.support.LambdaService;
|
||||
import com.gitee.sop.adminbackend.common.util.RSATool;
|
||||
import com.gitee.sop.adminbackend.common.constants.YesOrNo;
|
||||
import com.gitee.sop.adminbackend.common.context.SpringContext;
|
||||
import com.gitee.sop.adminbackend.common.dto.StatusUpdateDTO;
|
||||
import com.gitee.sop.adminbackend.common.enums.StatusEnum;
|
||||
import com.gitee.sop.adminbackend.common.constants.YesOrNo;
|
||||
import com.gitee.sop.adminbackend.common.support.ServiceSupport;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import com.gitee.sop.adminbackend.common.util.IdGen;
|
||||
import com.gitee.sop.adminbackend.common.util.RSATool;
|
||||
import com.gitee.sop.adminbackend.dao.entity.IsvInfo;
|
||||
import com.gitee.sop.adminbackend.dao.entity.IsvKeys;
|
||||
import com.gitee.sop.adminbackend.dao.mapper.IsvInfoMapper;
|
||||
@@ -17,8 +19,6 @@ import com.gitee.sop.adminbackend.service.isv.dto.IsvInfoUpdateDTO;
|
||||
import com.gitee.sop.adminbackend.service.isv.dto.IsvInfoUpdateKeysDTO;
|
||||
import com.gitee.sop.adminbackend.service.isv.dto.IsvKeysDTO;
|
||||
import com.gitee.sop.adminbackend.service.isv.event.ChangeIsvInfoEvent;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import com.gitee.sop.adminbackend.common.util.IdGen;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -38,7 +38,7 @@ import java.util.stream.Collectors;
|
||||
* @author 六如
|
||||
*/
|
||||
@Service
|
||||
public class IsvInfoService implements LambdaService<IsvInfo, IsvInfoMapper> {
|
||||
public class IsvInfoService implements ServiceSupport<IsvInfo, IsvInfoMapper> {
|
||||
|
||||
@Autowired
|
||||
private IsvKeysService isvKeysService;
|
||||
@@ -107,11 +107,11 @@ public class IsvInfoService implements LambdaService<IsvInfo, IsvInfoMapper> {
|
||||
}
|
||||
|
||||
public int update(IsvInfoUpdateDTO isvInfoUpdateDTO) {
|
||||
int cnt = this.query()
|
||||
.eq(IsvInfo::getId, isvInfoUpdateDTO.getId())
|
||||
.set(IsvInfo::getStatus, isvInfoUpdateDTO.getStatus())
|
||||
.set(IsvInfo::getRemark, isvInfoUpdateDTO.getRemark())
|
||||
.update();
|
||||
IsvInfo isvInfo = new IsvInfo();
|
||||
isvInfo.setId(isvInfoUpdateDTO.getId());
|
||||
isvInfo.setStatus(isvInfoUpdateDTO.getStatus());
|
||||
isvInfo.setRemark(isvInfoUpdateDTO.getRemark());
|
||||
int cnt = this.update(isvInfo);
|
||||
sendChangeEvent(isvInfoUpdateDTO.getId());
|
||||
return cnt;
|
||||
}
|
||||
|
@@ -1,12 +1,12 @@
|
||||
package com.gitee.sop.adminbackend.service.isv;
|
||||
|
||||
import com.gitee.fastmybatis.core.support.LambdaService;
|
||||
import com.gitee.sop.adminbackend.common.context.SpringContext;
|
||||
import com.gitee.sop.adminbackend.common.support.ServiceSupport;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import com.gitee.sop.adminbackend.dao.entity.IsvKeys;
|
||||
import com.gitee.sop.adminbackend.dao.mapper.IsvKeysMapper;
|
||||
import com.gitee.sop.adminbackend.service.isv.dto.IsvInfoUpdateKeysDTO;
|
||||
import com.gitee.sop.adminbackend.service.isv.event.ChangeIsvKeyEvent;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Collections;
|
||||
@@ -16,7 +16,7 @@ import java.util.Collections;
|
||||
* @author 六如
|
||||
*/
|
||||
@Service
|
||||
public class IsvKeysService implements LambdaService<IsvKeys, IsvKeysMapper> {
|
||||
public class IsvKeysService implements ServiceSupport<IsvKeys, IsvKeysMapper> {
|
||||
|
||||
public int saveKeys(IsvInfoUpdateKeysDTO isvInfoUpdateKeysDTO) {
|
||||
IsvKeys isvKeys = this.get(IsvKeys::getIsvId, isvInfoUpdateKeysDTO.getIsvId());
|
||||
|
@@ -2,8 +2,8 @@ package com.gitee.sop.adminbackend.service.isv;
|
||||
|
||||
import com.gitee.fastmybatis.core.PageInfo;
|
||||
import com.gitee.fastmybatis.core.query.LambdaQuery;
|
||||
import com.gitee.fastmybatis.core.support.LambdaService;
|
||||
import com.gitee.sop.adminbackend.common.context.SpringContext;
|
||||
import com.gitee.sop.adminbackend.common.support.ServiceSupport;
|
||||
import com.gitee.sop.adminbackend.dao.entity.ApiInfo;
|
||||
import com.gitee.sop.adminbackend.dao.entity.PermGroupPermission;
|
||||
import com.gitee.sop.adminbackend.dao.entity.PermIsvGroup;
|
||||
@@ -25,7 +25,7 @@ import java.util.stream.Collectors;
|
||||
* @author 六如
|
||||
*/
|
||||
@Service
|
||||
public class PermGroupPermissionService implements LambdaService<PermGroupPermission, PermGroupPermissionMapper> {
|
||||
public class PermGroupPermissionService implements ServiceSupport<PermGroupPermission, PermGroupPermissionMapper> {
|
||||
|
||||
@Autowired
|
||||
private ApiInfoMapper apiInfoMapper;
|
||||
|
@@ -2,8 +2,8 @@ package com.gitee.sop.adminbackend.service.isv;
|
||||
|
||||
import com.gitee.fastmybatis.core.PageInfo;
|
||||
import com.gitee.fastmybatis.core.query.LambdaQuery;
|
||||
import com.gitee.fastmybatis.core.support.LambdaService;
|
||||
import com.gitee.sop.adminbackend.common.exception.BizException;
|
||||
import com.gitee.sop.adminbackend.common.support.ServiceSupport;
|
||||
import com.gitee.sop.adminbackend.dao.entity.PermGroup;
|
||||
import com.gitee.sop.adminbackend.dao.entity.PermIsvGroup;
|
||||
import com.gitee.sop.adminbackend.dao.mapper.PermGroupMapper;
|
||||
@@ -19,7 +19,7 @@ import java.util.Map;
|
||||
* @author 六如
|
||||
*/
|
||||
@Service
|
||||
public class PermGroupService implements LambdaService<PermGroup, PermGroupMapper> {
|
||||
public class PermGroupService implements ServiceSupport<PermGroup, PermGroupMapper> {
|
||||
|
||||
@Autowired
|
||||
PermIsvGroupMapper permIsvGroupMapper;
|
||||
|
@@ -2,7 +2,7 @@ package com.gitee.sop.adminbackend.service.isv;
|
||||
|
||||
import com.gitee.fastmybatis.core.PageInfo;
|
||||
import com.gitee.fastmybatis.core.query.LambdaQuery;
|
||||
import com.gitee.fastmybatis.core.support.LambdaService;
|
||||
import com.gitee.sop.adminbackend.common.support.ServiceSupport;
|
||||
import com.gitee.sop.adminbackend.dao.entity.PermIsvGroup;
|
||||
import com.gitee.sop.adminbackend.dao.mapper.PermIsvGroupMapper;
|
||||
import com.gitee.sop.adminbackend.service.isv.dto.IsvGroupSettingDTO;
|
||||
@@ -24,7 +24,7 @@ import java.util.stream.Collectors;
|
||||
* @author 六如
|
||||
*/
|
||||
@Service
|
||||
public class PermIsvGroupService implements LambdaService<PermIsvGroup, PermIsvGroupMapper> {
|
||||
public class PermIsvGroupService implements ServiceSupport<PermIsvGroup, PermIsvGroupMapper> {
|
||||
|
||||
@Autowired
|
||||
private PermGroupService permGroupService;
|
||||
|
@@ -1,5 +1,6 @@
|
||||
package com.gitee.sop.adminbackend.service.isv.dto;
|
||||
|
||||
import com.gitee.sop.adminbackend.service.jackson.convert.annotation.UserFormat;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
@@ -40,5 +41,16 @@ public class IsvInfoDTO {
|
||||
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
/**
|
||||
* 创建人id
|
||||
*/
|
||||
@UserFormat
|
||||
private Long addBy;
|
||||
|
||||
/**
|
||||
* 修改人id
|
||||
*/
|
||||
@UserFormat
|
||||
private Long updateBy;
|
||||
|
||||
}
|
||||
|
@@ -0,0 +1,31 @@
|
||||
package com.gitee.sop.adminbackend.service.jackson.convert.annotation;
|
||||
|
||||
|
||||
import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.gitee.sop.adminbackend.service.jackson.convert.serde.UserFormatSerializer;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
* 序列化自动转换成用户名称
|
||||
*
|
||||
* @author 六如
|
||||
*/
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.FIELD)
|
||||
@JacksonAnnotationsInside
|
||||
@JsonSerialize(using = UserFormatSerializer.class)
|
||||
public @interface UserFormat {
|
||||
|
||||
/**
|
||||
* 显示用户名称
|
||||
* @return
|
||||
*/
|
||||
boolean showName() default true;
|
||||
|
||||
|
||||
}
|
@@ -0,0 +1,43 @@
|
||||
package com.gitee.sop.adminbackend.service.jackson.convert.serde;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonGenerator;
|
||||
import com.fasterxml.jackson.databind.JsonSerializer;
|
||||
import com.fasterxml.jackson.databind.SerializerProvider;
|
||||
import com.gitee.sop.adminbackend.common.context.SpringContext;
|
||||
import com.gitee.sop.adminbackend.common.resp.UserVO;
|
||||
import com.gitee.sop.adminbackend.common.user.User;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import com.gitee.sop.adminbackend.service.sys.UserCacheService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* @author 六如
|
||||
*/
|
||||
@Slf4j
|
||||
public class UserFormatSerializer extends JsonSerializer<Object> {
|
||||
|
||||
@Override
|
||||
public void serialize(Object value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
|
||||
if (value == null) {
|
||||
gen.writeNull();
|
||||
return;
|
||||
}
|
||||
Long userId = (Long) value;
|
||||
if (Objects.equals(userId, 0L)) {
|
||||
gen.writeNumber(userId);
|
||||
return;
|
||||
}
|
||||
Optional<User> userOpt = SpringContext.getBean(UserCacheService.class).getUser(userId);
|
||||
if (userOpt.isPresent()) {
|
||||
User user = userOpt.get();
|
||||
UserVO userVO = CopyUtil.copyBean(user, UserVO::new);
|
||||
gen.writeObject(userVO);
|
||||
} else {
|
||||
gen.writeObject(value);
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1 @@
|
||||
package com.gitee.sop.adminbackend.service.jackson;
|
@@ -1,8 +1,8 @@
|
||||
package com.gitee.sop.adminbackend.service.serve;
|
||||
|
||||
import com.gitee.fastmybatis.core.support.LambdaService;
|
||||
import com.gitee.sop.adminbackend.common.context.SpringContext;
|
||||
import com.gitee.sop.adminbackend.common.dto.StatusUpdateDTO;
|
||||
import com.gitee.sop.adminbackend.common.support.ServiceSupport;
|
||||
import com.gitee.sop.adminbackend.dao.entity.ApiInfo;
|
||||
import com.gitee.sop.adminbackend.dao.mapper.ApiInfoMapper;
|
||||
import com.gitee.sop.adminbackend.service.isv.event.ChangeApiInfoEvent;
|
||||
@@ -15,7 +15,7 @@ import java.util.Collections;
|
||||
* @author 六如
|
||||
*/
|
||||
@Service
|
||||
public class ApiInfoService implements LambdaService<ApiInfo, ApiInfoMapper> {
|
||||
public class ApiInfoService implements ServiceSupport<ApiInfo, ApiInfoMapper> {
|
||||
|
||||
/**
|
||||
* 修改状态
|
||||
@@ -34,11 +34,13 @@ public class ApiInfoService implements LambdaService<ApiInfo, ApiInfoMapper> {
|
||||
|
||||
@Override
|
||||
public int update(ApiInfo entity) {
|
||||
int cnt = LambdaService.super.update(entity);
|
||||
int cnt = ServiceSupport.super.update(entity);
|
||||
sendChangeEvent(entity.getId());
|
||||
return cnt;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void sendChangeEvent(Long id) {
|
||||
SpringContext.publishEvent(new ChangeApiInfoEvent(Collections.singletonList(id)));
|
||||
}
|
||||
|
@@ -2,10 +2,10 @@ package com.gitee.sop.adminbackend.service.sys;
|
||||
|
||||
import com.gitee.fastmybatis.core.support.BaseLambdaService;
|
||||
import com.gitee.sop.adminbackend.common.config.IConfig;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import com.gitee.sop.adminbackend.dao.entity.SysConfig;
|
||||
import com.gitee.sop.adminbackend.dao.mapper.SysConfigMapper;
|
||||
import com.gitee.sop.adminbackend.service.sys.dto.SystemConfigDTO;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import com.google.common.cache.CacheBuilder;
|
||||
import com.google.common.cache.CacheLoader;
|
||||
import com.google.common.cache.LoadingCache;
|
||||
|
@@ -1,11 +1,10 @@
|
||||
package com.gitee.sop.adminbackend.service.sys;
|
||||
|
||||
import com.gitee.fastmybatis.core.PageInfo;
|
||||
import com.gitee.fastmybatis.core.query.LambdaQuery;
|
||||
import com.gitee.fastmybatis.core.support.LambdaService;
|
||||
import com.gitee.fastmybatis.core.util.TreeUtil;
|
||||
import com.gitee.sop.adminbackend.common.dto.StatusUpdateDTO;
|
||||
import com.gitee.sop.adminbackend.common.exception.BizException;
|
||||
import com.gitee.sop.adminbackend.common.support.ServiceSupport;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import com.gitee.sop.adminbackend.dao.entity.SysDept;
|
||||
import com.gitee.sop.adminbackend.dao.mapper.SysDeptMapper;
|
||||
@@ -20,7 +19,7 @@ import java.util.Objects;
|
||||
* @author 六如
|
||||
*/
|
||||
@Service
|
||||
public class SysDeptService implements LambdaService<SysDept, SysDeptMapper> {
|
||||
public class SysDeptService implements ServiceSupport<SysDept, SysDeptMapper> {
|
||||
|
||||
public Long addDept(SysDept sysDept) {
|
||||
long count = this.query()
|
||||
|
@@ -1,6 +1,6 @@
|
||||
package com.gitee.sop.adminbackend.service.sys;
|
||||
|
||||
import com.gitee.fastmybatis.core.support.LambdaService;
|
||||
import com.gitee.sop.adminbackend.common.support.ServiceSupport;
|
||||
import com.gitee.sop.adminbackend.dao.entity.SysResource;
|
||||
import com.gitee.sop.adminbackend.dao.mapper.SysResourceMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -10,6 +10,6 @@ import org.springframework.stereotype.Service;
|
||||
* @author 六如
|
||||
*/
|
||||
@Service
|
||||
public class SysResourceService implements LambdaService<SysResource, SysResourceMapper> {
|
||||
public class SysResourceService implements ServiceSupport<SysResource, SysResourceMapper> {
|
||||
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
package com.gitee.sop.adminbackend.service.sys;
|
||||
|
||||
import com.gitee.fastmybatis.core.support.LambdaService;
|
||||
import com.gitee.sop.adminbackend.common.support.ServiceSupport;
|
||||
import com.gitee.sop.adminbackend.dao.entity.SysRoleResource;
|
||||
import com.gitee.sop.adminbackend.dao.mapper.SysRoleResourceMapper;
|
||||
import com.gitee.sop.adminbackend.service.sys.dto.SysRoleResourceDTO;
|
||||
@@ -16,7 +16,7 @@ import java.util.stream.Collectors;
|
||||
* @author 六如
|
||||
*/
|
||||
@Service
|
||||
public class SysRoleResourceService implements LambdaService<SysRoleResource, SysRoleResourceMapper> {
|
||||
public class SysRoleResourceService implements ServiceSupport<SysRoleResource, SysRoleResourceMapper> {
|
||||
|
||||
|
||||
/**
|
||||
|
@@ -1,7 +1,7 @@
|
||||
package com.gitee.sop.adminbackend.service.sys;
|
||||
|
||||
import com.gitee.fastmybatis.core.support.LambdaService;
|
||||
import com.gitee.sop.adminbackend.common.dto.StatusUpdateDTO;
|
||||
import com.gitee.sop.adminbackend.common.support.ServiceSupport;
|
||||
import com.gitee.sop.adminbackend.dao.entity.SysRole;
|
||||
import com.gitee.sop.adminbackend.dao.mapper.SysRoleMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -11,7 +11,7 @@ import org.springframework.stereotype.Service;
|
||||
* @author 六如
|
||||
*/
|
||||
@Service
|
||||
public class SysRoleService implements LambdaService<SysRole, SysRoleMapper> {
|
||||
public class SysRoleService implements ServiceSupport<SysRole, SysRoleMapper> {
|
||||
|
||||
|
||||
/**
|
||||
|
@@ -1,6 +1,6 @@
|
||||
package com.gitee.sop.adminbackend.service.sys;
|
||||
|
||||
import com.gitee.fastmybatis.core.support.LambdaService;
|
||||
import com.gitee.sop.adminbackend.common.support.ServiceSupport;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import com.gitee.sop.adminbackend.dao.entity.SysDept;
|
||||
import com.gitee.sop.adminbackend.dao.entity.SysUserDept;
|
||||
@@ -25,7 +25,7 @@ import java.util.stream.Collectors;
|
||||
* @author 六如
|
||||
*/
|
||||
@Service
|
||||
public class SysUserDeptService implements LambdaService<SysUserDept, SysUserDeptMapper> {
|
||||
public class SysUserDeptService implements ServiceSupport<SysUserDept, SysUserDeptMapper> {
|
||||
|
||||
@Autowired
|
||||
SysDeptMapper sysDeptMapper;
|
||||
|
@@ -1,6 +1,6 @@
|
||||
package com.gitee.sop.adminbackend.service.sys;
|
||||
|
||||
import com.gitee.fastmybatis.core.support.LambdaService;
|
||||
import com.gitee.sop.adminbackend.common.support.ServiceSupport;
|
||||
import com.gitee.sop.adminbackend.common.user.User;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import com.gitee.sop.adminbackend.dao.entity.SysRole;
|
||||
@@ -22,7 +22,7 @@ import java.util.stream.Collectors;
|
||||
* @author 六如
|
||||
*/
|
||||
@Service
|
||||
public class SysUserRoleService implements LambdaService<SysUserRole, SysUserRoleMapper> {
|
||||
public class SysUserRoleService implements ServiceSupport<SysUserRole, SysUserRoleMapper> {
|
||||
|
||||
@Autowired
|
||||
private SysRoleMapper sysRoleMapper;
|
||||
|
@@ -2,11 +2,12 @@ package com.gitee.sop.adminbackend.service.sys;
|
||||
|
||||
import com.gitee.fastmybatis.core.PageInfo;
|
||||
import com.gitee.fastmybatis.core.query.LambdaQuery;
|
||||
import com.gitee.fastmybatis.core.support.LambdaService;
|
||||
import com.gitee.sop.adminbackend.common.config.Configs;
|
||||
import com.gitee.sop.adminbackend.common.dto.StatusUpdateBatchDTO;
|
||||
import com.gitee.sop.adminbackend.common.dto.StatusUpdateDTO;
|
||||
import com.gitee.sop.adminbackend.common.dto.UserDTO;
|
||||
import com.gitee.sop.adminbackend.common.enums.ConfigKeyEnum;
|
||||
import com.gitee.sop.adminbackend.common.support.ServiceSupport;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import com.gitee.sop.adminbackend.common.util.GenerateUtil;
|
||||
import com.gitee.sop.adminbackend.dao.entity.SysUser;
|
||||
@@ -24,6 +25,7 @@ import org.springframework.security.crypto.bcrypt.BCrypt;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -35,11 +37,40 @@ import java.util.stream.Collectors;
|
||||
* @author 六如
|
||||
*/
|
||||
@Service
|
||||
public class SysUserService implements LambdaService<SysUser, SysUserMapper> {
|
||||
public class SysUserService implements ServiceSupport<SysUser, SysUserMapper> {
|
||||
|
||||
@Autowired
|
||||
SysUserDeptService sysUserDeptService;
|
||||
|
||||
public <T extends UserDTO> void fillShowName(Collection<T> userDTOS) {
|
||||
if (CollectionUtils.isEmpty(userDTOS)) {
|
||||
return;
|
||||
}
|
||||
Set<Long> userIds = userDTOS.stream().flatMap(docInfo -> Lists.newArrayList(docInfo.getAddBy(), docInfo.getUpdateBy()).stream())
|
||||
.filter(val -> val != null && val > 0)
|
||||
.collect(Collectors.toSet());
|
||||
Map<Long, SysUserDTO> userIdMap = this.getUserInfo(userIds);
|
||||
for (T userDTO : userDTOS) {
|
||||
SysUserDTO addUser = userIdMap.get(userDTO.getAddBy());
|
||||
if (addUser != null) {
|
||||
userDTO.setAddByName(addUser.getShowName());
|
||||
}
|
||||
SysUserDTO updateUser = userIdMap.get(userDTO.getUpdateBy());
|
||||
if (updateUser != null) {
|
||||
userDTO.setUpdateByName(updateUser.getShowName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Map<Long, SysUserDTO> getUserInfo(Collection<Long> userIds) {
|
||||
if (CollectionUtils.isEmpty(userIds)) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
return this.query()
|
||||
.in(SysUser::getId, userIds)
|
||||
.map(SysUser::getId, sysUser -> CopyUtil.copyBean(sysUser, SysUserDTO::new));
|
||||
}
|
||||
|
||||
public PageInfo<SysUserDTO> doPage(SysUserSearchDTO sysUserSearchDTO) {
|
||||
LambdaQuery<SysUser> query = sysUserSearchDTO.toLambdaQuery(SysUser.class);
|
||||
Long deptId = sysUserSearchDTO.getDeptId();
|
||||
|
@@ -1,10 +1,10 @@
|
||||
package com.gitee.sop.adminbackend.service.sys;
|
||||
|
||||
import com.gitee.sop.adminbackend.common.enums.ConfigKeyEnum;
|
||||
import com.gitee.sop.adminbackend.common.util.PasswordUtil;
|
||||
import com.gitee.sop.adminbackend.dao.entity.SysUser;
|
||||
import com.gitee.sop.adminbackend.dao.mapper.UpgradeMapper;
|
||||
import com.gitee.sop.adminbackend.service.sys.login.enums.RegTypeEnum;
|
||||
import com.gitee.sop.adminbackend.common.util.PasswordUtil;
|
||||
import org.apache.commons.codec.digest.DigestUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
@@ -0,0 +1,14 @@
|
||||
package com.gitee.sop.adminbackend.service.sys;
|
||||
|
||||
import com.gitee.sop.adminbackend.common.user.User;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* @author 六如
|
||||
*/
|
||||
public interface UserCacheService {
|
||||
|
||||
Optional<User> getUser(Long userId);
|
||||
|
||||
}
|
@@ -3,7 +3,6 @@ package com.gitee.sop.adminbackend.service.sys.dto;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.gitee.fastmybatis.core.support.TreeNode;
|
||||
import com.gitee.sop.adminbackend.common.jackson.convert.annotation.Bool;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
@@ -1,9 +1,8 @@
|
||||
package com.gitee.sop.adminbackend.service.sys.dto;
|
||||
|
||||
import com.gitee.sop.adminbackend.common.user.User;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.Min;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
@@ -12,7 +11,7 @@ import java.time.LocalDateTime;
|
||||
* @author 六如
|
||||
*/
|
||||
@Data
|
||||
public class SysUserDTO {
|
||||
public class SysUserDTO implements User {
|
||||
|
||||
/**
|
||||
* id
|
||||
@@ -94,5 +93,17 @@ public class SysUserDTO {
|
||||
*/
|
||||
private SysDeptDTO dept;
|
||||
|
||||
@Override
|
||||
public Long getUserId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getToken() {
|
||||
return "";
|
||||
}
|
||||
|
||||
public String getShowName() {
|
||||
return nickname != null && !nickname.isEmpty() ? nickname : username;
|
||||
}
|
||||
}
|
||||
|
@@ -1,8 +1,9 @@
|
||||
package com.gitee.sop.adminbackend.service.sys.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
|
@@ -0,0 +1,56 @@
|
||||
package com.gitee.sop.adminbackend.service.sys.impl;
|
||||
|
||||
import com.gitee.sop.adminbackend.common.user.User;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import com.gitee.sop.adminbackend.dao.entity.SysUser;
|
||||
import com.gitee.sop.adminbackend.service.sys.SysUserService;
|
||||
import com.gitee.sop.adminbackend.service.sys.UserCacheService;
|
||||
import com.gitee.sop.adminbackend.service.sys.dto.SysUserDTO;
|
||||
import com.google.common.cache.CacheBuilder;
|
||||
import com.google.common.cache.CacheLoader;
|
||||
import com.google.common.cache.LoadingCache;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* @author 六如
|
||||
*/
|
||||
public class LocalUserCacheService implements UserCacheService {
|
||||
|
||||
@Autowired
|
||||
private SysUserService sysUserService;
|
||||
|
||||
// key: configKey, value: configValue
|
||||
private final LoadingCache<Long, Optional<User>> configCache = CacheBuilder.newBuilder()
|
||||
.expireAfterAccess(30, TimeUnit.MINUTES)
|
||||
.build(new CacheLoader<Long, Optional<User>>() {
|
||||
@Override
|
||||
public Optional<User> load(Long key) throws Exception {
|
||||
return Optional.ofNullable(loadFromDb(key));
|
||||
}
|
||||
});
|
||||
|
||||
@Override
|
||||
public Optional<User> getUser(Long userId) {
|
||||
return configCache.getUnchecked(userId);
|
||||
}
|
||||
|
||||
private User loadFromDb(Long userId) {
|
||||
SysUser sysUser = sysUserService.getById(userId);
|
||||
return CopyUtil.copyBean(sysUser, SysUserDTO::new);
|
||||
}
|
||||
|
||||
@PostConstruct
|
||||
public void init() {
|
||||
List<SysUser> sysUsers = sysUserService.listAll();
|
||||
List<SysUserDTO> sysUserDTOS = CopyUtil.copyList(sysUsers, SysUserDTO::new);
|
||||
for (SysUserDTO sysUserDTO : sysUserDTOS) {
|
||||
configCache.put(sysUserDTO.getUserId(), Optional.of(sysUserDTO));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@@ -1,12 +1,12 @@
|
||||
package com.gitee.sop.adminbackend.service.sys.login.impl;
|
||||
|
||||
import com.gitee.sop.adminbackend.common.user.User;
|
||||
import com.gitee.sop.adminbackend.common.enums.StatusEnum;
|
||||
import com.gitee.sop.adminbackend.common.manager.UserCacheManager;
|
||||
import com.gitee.sop.adminbackend.common.user.User;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import com.gitee.sop.adminbackend.dao.entity.SysUser;
|
||||
import com.gitee.sop.adminbackend.service.sys.SysUserService;
|
||||
import com.gitee.sop.adminbackend.common.manager.UserCacheManager;
|
||||
import com.gitee.sop.adminbackend.service.sys.login.dto.LoginUser;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import com.google.common.cache.CacheBuilder;
|
||||
import com.google.common.cache.CacheLoader;
|
||||
import com.google.common.cache.LoadingCache;
|
||||
|
@@ -1,5 +1,6 @@
|
||||
package com.gitee.sop.adminbackend.controller.doc;
|
||||
|
||||
import com.gitee.sop.adminbackend.common.context.UserContext;
|
||||
import com.gitee.sop.adminbackend.common.req.IdParam;
|
||||
import com.gitee.sop.adminbackend.common.resp.Result;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
@@ -47,19 +48,19 @@ public class DocController {
|
||||
|
||||
@PostMapping("app/add")
|
||||
public Result<Long> addApp(@Validated @RequestBody DocAppAddParam param) {
|
||||
Long docAppId = docAppService.addDocApp(param.getTornaToken());
|
||||
Long docAppId = docAppService.addDocApp(param.getTornaToken(), UserContext.getUser());
|
||||
return Result.ok(docAppId);
|
||||
}
|
||||
|
||||
@PostMapping("app/syncAppDoc")
|
||||
public Result<Integer> syncAppDoc(@Validated @RequestBody IdParam param) {
|
||||
docInfoSyncService.syncAppDoc(param.getId());
|
||||
docInfoSyncService.syncAppDoc(param.getId(), UserContext.getUser());
|
||||
return Result.ok(1);
|
||||
}
|
||||
|
||||
@PostMapping("app/syncDoc")
|
||||
public Result<Integer> syncDoc(@Validated @RequestBody IdParam param) {
|
||||
docInfoSyncService.syncDoc(param.getId());
|
||||
docInfoSyncService.syncDoc(param.getId(), UserContext.getUser());
|
||||
return Result.ok(1);
|
||||
}
|
||||
|
||||
|
@@ -2,6 +2,7 @@ package com.gitee.sop.adminbackend.controller.doc.vo;
|
||||
|
||||
import com.gitee.fastmybatis.core.support.TreeNode;
|
||||
import com.gitee.sop.adminbackend.common.constants.YesOrNo;
|
||||
import com.gitee.sop.adminbackend.service.jackson.convert.annotation.UserFormat;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
@@ -95,11 +96,13 @@ public class DocInfoTreeVO implements TreeNode<DocInfoTreeVO, Long> {
|
||||
/**
|
||||
* 创建人id
|
||||
*/
|
||||
@UserFormat
|
||||
private Long addBy;
|
||||
|
||||
/**
|
||||
* 修改人id
|
||||
*/
|
||||
@UserFormat
|
||||
private Long updateBy;
|
||||
|
||||
|
||||
|
@@ -3,14 +3,16 @@ package com.gitee.sop.adminbackend.controller.isv;
|
||||
import com.gitee.fastmybatis.core.PageInfo;
|
||||
import com.gitee.fastmybatis.core.query.LambdaQuery;
|
||||
import com.gitee.fastmybatis.core.query.param.PageParam;
|
||||
import com.gitee.sop.adminbackend.common.util.RSATool;
|
||||
import com.gitee.sop.adminbackend.common.dto.StatusUpdateDTO;
|
||||
import com.gitee.sop.adminbackend.common.req.StatusUpdateParam;
|
||||
import com.gitee.sop.adminbackend.common.resp.Result;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import com.gitee.sop.adminbackend.common.util.RSATool;
|
||||
import com.gitee.sop.adminbackend.controller.isv.param.IsvInfoAddParam;
|
||||
import com.gitee.sop.adminbackend.controller.isv.param.IsvInfoUpdateKeysParam;
|
||||
import com.gitee.sop.adminbackend.controller.isv.param.IsvInfoUpdateParam;
|
||||
import com.gitee.sop.adminbackend.controller.isv.param.IsvKeysGenParam;
|
||||
import com.gitee.sop.adminbackend.controller.isv.vo.IsvInfoVO;
|
||||
import com.gitee.sop.adminbackend.dao.entity.IsvInfo;
|
||||
import com.gitee.sop.adminbackend.service.isv.IsvInfoService;
|
||||
import com.gitee.sop.adminbackend.service.isv.PermIsvGroupService;
|
||||
@@ -19,7 +21,6 @@ import com.gitee.sop.adminbackend.service.isv.dto.IsvInfoDTO;
|
||||
import com.gitee.sop.adminbackend.service.isv.dto.IsvInfoUpdateDTO;
|
||||
import com.gitee.sop.adminbackend.service.isv.dto.IsvInfoUpdateKeysDTO;
|
||||
import com.gitee.sop.adminbackend.service.isv.dto.IsvKeysDTO;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
@@ -49,10 +50,11 @@ public class IsvInfoController {
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/page")
|
||||
public Result<PageInfo<IsvInfoDTO>> page(PageParam param) {
|
||||
public Result<PageInfo<IsvInfoVO>> page(PageParam param) {
|
||||
LambdaQuery<IsvInfo> query = param.toLambdaQuery(IsvInfo.class);
|
||||
PageInfo<IsvInfoDTO> isvInfoDTOPageInfo = isvInfoService.doPage(query);
|
||||
return Result.ok(isvInfoDTOPageInfo);
|
||||
PageInfo<IsvInfoVO> retPage = isvInfoDTOPageInfo.convert(isvInfoDTO -> CopyUtil.copyBean(isvInfoDTO, IsvInfoVO::new));
|
||||
return Result.ok(retPage);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -63,7 +65,7 @@ public class IsvInfoController {
|
||||
* @throws Exception
|
||||
*/
|
||||
@PostMapping("createKeys")
|
||||
public Result<RSATool.KeyStore> createKeys(IsvKeysGenParam param) throws Exception {
|
||||
public Result<RSATool.KeyStore> createKeys(@Validated @RequestBody IsvKeysGenParam param) throws Exception {
|
||||
RSATool.KeyFormat format = RSATool.KeyFormat.of(param.getKeyFormat());
|
||||
RSATool.KeyStore keyStore = isvInfoService.createKeys(format);
|
||||
return Result.ok(keyStore);
|
||||
|
@@ -3,12 +3,12 @@ package com.gitee.sop.adminbackend.controller.isv;
|
||||
import com.gitee.fastmybatis.core.PageInfo;
|
||||
import com.gitee.fastmybatis.core.query.LambdaQuery;
|
||||
import com.gitee.sop.adminbackend.common.resp.Result;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import com.gitee.sop.adminbackend.controller.isv.param.PermGroupApiInfoParam;
|
||||
import com.gitee.sop.adminbackend.controller.isv.param.PermGroupPermissionParam;
|
||||
import com.gitee.sop.adminbackend.dao.entity.ApiInfo;
|
||||
import com.gitee.sop.adminbackend.service.isv.PermGroupPermissionService;
|
||||
import com.gitee.sop.adminbackend.service.isv.dto.PermGroupPermissionDTO;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
@@ -2,11 +2,11 @@ package com.gitee.sop.adminbackend.controller.isv;
|
||||
|
||||
import com.gitee.sop.adminbackend.common.context.SpringContext;
|
||||
import com.gitee.sop.adminbackend.common.resp.Result;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import com.gitee.sop.adminbackend.controller.isv.param.IsvGroupSettingParam;
|
||||
import com.gitee.sop.adminbackend.service.isv.PermIsvGroupService;
|
||||
import com.gitee.sop.adminbackend.service.isv.dto.IsvGroupSettingDTO;
|
||||
import com.gitee.sop.adminbackend.service.isv.event.ChangeIsvPermEvent;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
|
@@ -0,0 +1,56 @@
|
||||
package com.gitee.sop.adminbackend.controller.isv.vo;
|
||||
|
||||
import com.gitee.sop.adminbackend.service.jackson.convert.annotation.UserFormat;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @author 六如
|
||||
*/
|
||||
@Data
|
||||
public class IsvInfoVO {
|
||||
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* appKey
|
||||
*/
|
||||
private String appId;
|
||||
|
||||
/**
|
||||
* 1启用,2禁用
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 是否有秘钥
|
||||
*/
|
||||
private Integer hasKeys;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
private String groupNames;
|
||||
|
||||
private LocalDateTime addTime;
|
||||
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
/**
|
||||
* 创建人id
|
||||
*/
|
||||
@UserFormat
|
||||
private Long addBy;
|
||||
|
||||
/**
|
||||
* 修改人id
|
||||
*/
|
||||
@UserFormat
|
||||
private Long updateBy;
|
||||
|
||||
}
|
@@ -5,10 +5,11 @@ import com.gitee.fastmybatis.core.query.Query;
|
||||
import com.gitee.sop.adminbackend.common.dto.StatusUpdateDTO;
|
||||
import com.gitee.sop.adminbackend.common.req.StatusUpdateParam;
|
||||
import com.gitee.sop.adminbackend.common.resp.Result;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import com.gitee.sop.adminbackend.controller.serve.param.ApiInfoPageParam;
|
||||
import com.gitee.sop.adminbackend.controller.serve.vo.ApiInfoVO;
|
||||
import com.gitee.sop.adminbackend.dao.entity.ApiInfo;
|
||||
import com.gitee.sop.adminbackend.service.serve.ApiInfoService;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
@@ -43,6 +44,7 @@ public class ApiInfoController {
|
||||
Query query = param.toQuery();
|
||||
query.orderByDesc("id");
|
||||
PageInfo<ApiInfo> pageInfo = apiInfoService.page(query);
|
||||
pageInfo.convert(apiInfo -> CopyUtil.copyBean(apiInfo, ApiInfoVO::new));
|
||||
return Result.ok(pageInfo);
|
||||
}
|
||||
|
||||
@@ -53,11 +55,11 @@ public class ApiInfoController {
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/listAll")
|
||||
public Result<List<ApiInfo>> listAll(ApiInfoPageParam param) {
|
||||
public Result<List<ApiInfoVO>> listAll(ApiInfoPageParam param) {
|
||||
Query query = param.toQuery();
|
||||
query.orderByDesc("id");
|
||||
List<ApiInfo> list = apiInfoService.list(query);
|
||||
return Result.ok(list);
|
||||
return Result.ok(CopyUtil.copyList(list, ApiInfoVO::new));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -0,0 +1,107 @@
|
||||
package com.gitee.sop.adminbackend.controller.serve.vo;
|
||||
|
||||
import com.gitee.sop.adminbackend.service.jackson.convert.annotation.UserFormat;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
/**
|
||||
* @author 六如
|
||||
*/
|
||||
@Data
|
||||
public class ApiInfoVO {
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 所属应用
|
||||
*/
|
||||
private String application;
|
||||
|
||||
/**
|
||||
* 接口名称
|
||||
*/
|
||||
private String apiName;
|
||||
|
||||
/**
|
||||
* 版本号
|
||||
*/
|
||||
private String apiVersion;
|
||||
|
||||
/**
|
||||
* 接口描述
|
||||
*/
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 接口class
|
||||
*/
|
||||
private String interfaceClassName;
|
||||
|
||||
/**
|
||||
* 方法名称
|
||||
*/
|
||||
private String methodName;
|
||||
|
||||
/**
|
||||
* 参数信息
|
||||
*/
|
||||
private String paramInfo;
|
||||
|
||||
/**
|
||||
* 接口是否需要授权访问
|
||||
*/
|
||||
private Integer isPermission;
|
||||
|
||||
/**
|
||||
* 是否需要appAuthToken
|
||||
*/
|
||||
private Integer isNeedToken;
|
||||
|
||||
/**
|
||||
* 是否有公共响应参数
|
||||
*/
|
||||
private Integer hasCommonResponse;
|
||||
|
||||
/**
|
||||
* 注册来源,1-系统注册,2-手动注册
|
||||
*/
|
||||
private Integer regSource;
|
||||
|
||||
/**
|
||||
* 1启用,0禁用
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 添加时间
|
||||
*/
|
||||
private LocalDateTime addTime;
|
||||
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
/**
|
||||
* 创建人id
|
||||
*/
|
||||
@UserFormat
|
||||
private Long addBy;
|
||||
|
||||
/**
|
||||
* 最后更新人id
|
||||
*/
|
||||
@UserFormat
|
||||
private Long updateBy;
|
||||
|
||||
}
|
@@ -2,13 +2,13 @@ package com.gitee.sop.adminbackend.controller.sys;
|
||||
|
||||
import com.gitee.sop.adminbackend.common.annotation.NoToken;
|
||||
import com.gitee.sop.adminbackend.common.resp.Result;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import com.gitee.sop.adminbackend.controller.sys.param.LoginParam;
|
||||
import com.gitee.sop.adminbackend.controller.sys.vo.LoginResultVO;
|
||||
import com.gitee.sop.adminbackend.service.sys.login.LoginService;
|
||||
import com.gitee.sop.adminbackend.service.sys.login.dto.LoginDTO;
|
||||
import com.gitee.sop.adminbackend.service.sys.login.dto.LoginUser;
|
||||
import com.gitee.sop.adminbackend.service.sys.login.enums.RegTypeEnum;
|
||||
import com.gitee.sop.adminbackend.common.util.CopyUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
|
@@ -1,7 +1,5 @@
|
||||
package com.gitee.sop.adminbackend.controller.sys.param;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import com.gitee.fastmybatis.core.query.Operator;
|
||||
import com.gitee.fastmybatis.core.query.annotation.Condition;
|
||||
import com.gitee.fastmybatis.core.query.param.PageParam;
|
||||
|
@@ -1,11 +1,10 @@
|
||||
package com.gitee.sop.adminbackend.controller.sys.param;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.Min;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
/**
|
||||
|
@@ -3,7 +3,6 @@ package com.gitee.sop.adminbackend.controller.sys.vo;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* @author 六如
|
||||
|
@@ -2,8 +2,6 @@ package com.gitee.sop.adminbackend.controller.sys.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.Min;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user