This commit is contained in:
六如
2024-12-21 20:16:00 +08:00
parent f7f04c28eb
commit bb2a9eb314
116 changed files with 2124 additions and 2194 deletions

View File

@@ -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/");
}
}

View File

@@ -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

View File

@@ -88,6 +88,11 @@
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@@ -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);
}
/**

View File

@@ -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;
}

View File

@@ -4,6 +4,7 @@ import java.io.Serializable;
/**
* @author 六如
* @param <T> 参数类型
*/
public interface IEnum<T extends Serializable> {

View File

@@ -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;
}

View File

@@ -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())));
}
}
}

View File

@@ -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();
}
}

View File

@@ -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);

View File

@@ -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

View File

@@ -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());
}
}

View File

@@ -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();
}

View File

@@ -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);

View File

@@ -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);
}

View File

@@ -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());

View File

@@ -1,9 +1,9 @@
package com.gitee.sop.adminbackend.service.doc.dto;
import java.time.LocalDateTime;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 备注:文档应用

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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());

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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);
}
}
}

View File

@@ -0,0 +1 @@
package com.gitee.sop.adminbackend.service.jackson;

View File

@@ -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)));
}

View File

@@ -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;

View File

@@ -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()

View File

@@ -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> {
}

View File

@@ -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> {
/**

View File

@@ -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> {
/**

View File

@@ -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;

View File

@@ -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;

View File

@@ -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();

View File

@@ -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;

View File

@@ -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);
}

View File

@@ -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;

View File

@@ -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;
}
}

View File

@@ -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;
/**

View File

@@ -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));
}
}
}

View File

@@ -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;

View File

@@ -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);
}

View File

@@ -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;

View File

@@ -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);

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;
}

View File

@@ -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));
}
/**

View File

@@ -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;
}

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;
/**

View File

@@ -3,7 +3,6 @@ package com.gitee.sop.adminbackend.controller.sys.vo;
import lombok.Data;
import java.util.List;
import java.util.Set;
/**
* @author 六如

View File

@@ -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;