This commit is contained in:
六如
2024-11-20 10:37:42 +08:00
parent 16a2ca7723
commit ba384660f1
37 changed files with 313 additions and 43 deletions

View File

@@ -13,7 +13,7 @@ public enum ConfigKeyEnum {
PASSWORD_SALT("admin.password-salt", ""),
JWT_TIMEOUT_DAYS("admin.jwt-timeout-days", "365"),
JWT_SECRET("admin.jwt.secret", ""),
TORNA_URL("admin.torna-url", ""),
TORNA_SERVER_ADDR("admin.torna-server-addr", ""),
OPEN_PROD_URL("admin.open-prod-url", ""),
OPEN_SANDBOX_URL("admin.open-sandbox-url", "");

View File

@@ -0,0 +1,42 @@
package com.gitee.sop.adminbackend.controller.doc;
import com.gitee.sop.adminbackend.common.resp.Result;
import com.gitee.sop.adminbackend.common.util.CopyUtil;
import com.gitee.sop.adminbackend.controller.doc.param.DocAppAddParam;
import com.gitee.sop.adminbackend.controller.doc.vo.DocAppVO;
import com.gitee.sop.adminbackend.service.doc.DocService;
import com.gitee.sop.adminbackend.service.website.dto.DocAppDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author 六如
*/
@RestController
@RequestMapping("doc")
public class DocController {
@Autowired
private DocService docService;
@GetMapping("app/list")
public Result<List<DocAppVO>> listApp() {
List<DocAppDTO> docAppDTOS = docService.listDocApp();
List<DocAppVO> docAppVOS = CopyUtil.copyList(docAppDTOS, DocAppVO::new);
return Result.ok(docAppVOS);
}
@PostMapping("app/add")
public Result<Integer> addApp(@Validated @RequestBody DocAppAddParam param) {
docService.addDocApp(param.getTornaToken());
return Result.ok(1);
}
}

View File

@@ -2,7 +2,7 @@ package com.gitee.sop.adminbackend.controller.doc;
import com.gitee.sop.adminbackend.common.resp.Result;
import com.gitee.sop.adminbackend.common.util.CopyUtil;
import com.gitee.sop.adminbackend.controller.doc.resp.DocSettingVO;
import com.gitee.sop.adminbackend.controller.doc.vo.DocSettingVO;
import com.gitee.sop.adminbackend.service.doc.DocService;
import com.gitee.sop.adminbackend.service.doc.dto.DocSettingDTO;
import org.springframework.beans.factory.annotation.Autowired;

View File

@@ -0,0 +1,18 @@
package com.gitee.sop.adminbackend.controller.doc.param;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
/**
* @author 六如
*/
@Data
public class DocAppAddParam {
@NotBlank
@Length(max = 128)
private String tornaToken;
}

View File

@@ -1,4 +1,4 @@
package com.gitee.sop.adminbackend.controller.website.resp;
package com.gitee.sop.adminbackend.controller.doc.vo;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.gitee.sop.adminbackend.controller.doc.resp;
package com.gitee.sop.adminbackend.controller.doc.vo;
import lombok.Data;

View File

@@ -7,10 +7,10 @@ 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.controller.isv.req.IsvInfoAddParam;
import com.gitee.sop.adminbackend.controller.isv.req.IsvInfoUpdateKeysParam;
import com.gitee.sop.adminbackend.controller.isv.req.IsvInfoUpdateParam;
import com.gitee.sop.adminbackend.controller.isv.req.IsvKeysGenParam;
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.dao.entity.IsvInfo;
import com.gitee.sop.adminbackend.service.isv.IsvInfoService;
import com.gitee.sop.adminbackend.service.isv.PermIsvGroupService;

View File

@@ -4,8 +4,8 @@ import com.gitee.fastmybatis.core.PageInfo;
import com.gitee.fastmybatis.core.query.LambdaQuery;
import com.gitee.sop.adminbackend.common.req.IdParam;
import com.gitee.sop.adminbackend.common.resp.Result;
import com.gitee.sop.adminbackend.controller.isv.req.PermGroupPageParam;
import com.gitee.sop.adminbackend.controller.isv.req.PermGroupParam;
import com.gitee.sop.adminbackend.controller.isv.param.PermGroupPageParam;
import com.gitee.sop.adminbackend.controller.isv.param.PermGroupParam;
import com.gitee.sop.adminbackend.dao.entity.PermGroup;
import com.gitee.sop.adminbackend.service.isv.PermGroupService;
import org.springframework.beans.factory.annotation.Autowired;

View File

@@ -3,8 +3,8 @@ 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.controller.isv.req.PermGroupApiInfoParam;
import com.gitee.sop.adminbackend.controller.isv.req.PermGroupPermissionParam;
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;

View File

@@ -2,7 +2,7 @@ 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.controller.isv.req.IsvGroupSettingParam;
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;

View File

@@ -1,4 +1,4 @@
package com.gitee.sop.adminbackend.controller.isv.req;
package com.gitee.sop.adminbackend.controller.isv.param;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.gitee.sop.adminbackend.controller.isv.req;
package com.gitee.sop.adminbackend.controller.isv.param;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

View File

@@ -1,4 +1,4 @@
package com.gitee.sop.adminbackend.controller.isv.req;
package com.gitee.sop.adminbackend.controller.isv.param;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.gitee.sop.adminbackend.controller.isv.req;
package com.gitee.sop.adminbackend.controller.isv.param;
import lombok.Data;
import lombok.EqualsAndHashCode;

View File

@@ -1,4 +1,4 @@
package com.gitee.sop.adminbackend.controller.isv.req;
package com.gitee.sop.adminbackend.controller.isv.param;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.gitee.sop.adminbackend.controller.isv.req;
package com.gitee.sop.adminbackend.controller.isv.param;
import com.gitee.fastmybatis.core.query.Operator;
import com.gitee.fastmybatis.core.query.annotation.Condition;

View File

@@ -1,4 +1,4 @@
package com.gitee.sop.adminbackend.controller.isv.req;
package com.gitee.sop.adminbackend.controller.isv.param;
import com.gitee.fastmybatis.core.query.Operator;
import com.gitee.fastmybatis.core.query.annotation.Condition;

View File

@@ -1,4 +1,4 @@
package com.gitee.sop.adminbackend.controller.isv.req;
package com.gitee.sop.adminbackend.controller.isv.param;
import com.gitee.fastmybatis.core.query.Operator;
import com.gitee.fastmybatis.core.query.annotation.Condition;

View File

@@ -1,4 +1,4 @@
package com.gitee.sop.adminbackend.controller.isv.req;
package com.gitee.sop.adminbackend.controller.isv.param;
import lombok.Data;

View File

@@ -5,7 +5,7 @@ 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.controller.serve.req.ApiInfoPageParam;
import com.gitee.sop.adminbackend.controller.serve.param.ApiInfoPageParam;
import com.gitee.sop.adminbackend.dao.entity.ApiInfo;
import com.gitee.sop.adminbackend.service.serve.ApiInfoService;
import com.gitee.sop.adminbackend.common.util.CopyUtil;

View File

@@ -1,4 +1,4 @@
package com.gitee.sop.adminbackend.controller.serve.req;
package com.gitee.sop.adminbackend.controller.serve.param;
import com.gitee.fastmybatis.core.query.Operator;
import com.gitee.fastmybatis.core.query.annotation.Condition;

View File

@@ -1,4 +1,4 @@
package com.gitee.sop.adminbackend.controller.serve.req;
package com.gitee.sop.adminbackend.controller.serve.param;
import com.gitee.fastmybatis.core.query.Operator;
import com.gitee.fastmybatis.core.query.annotation.Condition;

View File

@@ -2,8 +2,8 @@ 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.controller.sys.req.LoginParam;
import com.gitee.sop.adminbackend.controller.sys.resp.LoginResultVO;
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;

View File

@@ -1,7 +1,7 @@
package com.gitee.sop.adminbackend.controller.sys;
import com.gitee.sop.adminbackend.common.resp.Result;
import com.gitee.sop.adminbackend.controller.sys.req.ConfigSettingParam;
import com.gitee.sop.adminbackend.controller.sys.param.ConfigSettingParam;
import com.gitee.sop.adminbackend.service.sys.SysConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;

View File

@@ -1,4 +1,4 @@
package com.gitee.sop.adminbackend.controller.sys.req;
package com.gitee.sop.adminbackend.controller.sys.param;
import com.gitee.sop.adminbackend.service.sys.dto.SystemConfigDTO;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.gitee.sop.adminbackend.controller.sys.req;
package com.gitee.sop.adminbackend.controller.sys.param;
import lombok.Data;

View File

@@ -1,4 +1,4 @@
package com.gitee.sop.adminbackend.controller.sys.resp;
package com.gitee.sop.adminbackend.controller.sys.vo;
import lombok.Data;

View File

@@ -3,8 +3,8 @@ package com.gitee.sop.adminbackend.controller.website;
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.website.resp.DocAppVO;
import com.gitee.sop.adminbackend.controller.website.resp.DocInfoTreeVO;
import com.gitee.sop.adminbackend.controller.doc.vo.DocAppVO;
import com.gitee.sop.adminbackend.controller.website.vo.DocInfoTreeVO;
import com.gitee.sop.adminbackend.service.website.WebsiteService;
import com.gitee.sop.adminbackend.service.website.dto.DocAppDTO;
import com.gitee.sop.adminbackend.service.website.dto.DocInfoTreeDTO;

View File

@@ -1,4 +1,4 @@
package com.gitee.sop.adminbackend.controller.website.resp;
package com.gitee.sop.adminbackend.controller.website.vo;
import com.gitee.fastmybatis.core.support.TreeNode;
import lombok.Data;

View File

@@ -1,14 +1,30 @@
package com.gitee.sop.adminbackend.service.doc;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.gitee.httphelper.HttpHelper;
import com.gitee.sop.adminbackend.common.enums.ConfigKeyEnum;
import com.gitee.sop.adminbackend.common.exception.BizException;
import com.gitee.sop.adminbackend.common.util.CopyUtil;
import com.gitee.sop.adminbackend.dao.entity.DocApp;
import com.gitee.sop.adminbackend.dao.mapper.DocAppMapper;
import com.gitee.sop.adminbackend.service.doc.dto.DocSettingDTO;
import com.gitee.sop.adminbackend.service.doc.dto.TornaModuleDTO;
import com.gitee.sop.adminbackend.service.sys.SysConfigService;
import com.gitee.sop.adminbackend.service.sys.dto.SystemConfigDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Objects;
import com.gitee.sop.adminbackend.service.website.dto.DocAppDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
/**
@@ -20,9 +36,15 @@ public class DocService {
@Autowired
private SysConfigService sysConfigService;
@Autowired
private DocAppMapper docAppMapper;
@Autowired
private TornaClient tornaClient;
public DocSettingDTO getDocSetting() {
DocSettingDTO docSettingDTO = new DocSettingDTO();
docSettingDTO.setTornaServerAddr(ConfigKeyEnum.TORNA_URL.getValue());
docSettingDTO.setTornaServerAddr(ConfigKeyEnum.TORNA_SERVER_ADDR.getValue());
docSettingDTO.setOpenProdUrl(ConfigKeyEnum.OPEN_PROD_URL.getValue());
docSettingDTO.setOpenSandboxUrl(ConfigKeyEnum.OPEN_SANDBOX_URL.getValue());
return docSettingDTO;
@@ -30,10 +52,27 @@ public class DocService {
public void save(DocSettingDTO docSettingDTO) {
Collection<SystemConfigDTO> systemConfigDTOS = new ArrayList<>();
systemConfigDTOS.add(new SystemConfigDTO(ConfigKeyEnum.TORNA_URL.getKey(), docSettingDTO.getTornaServerAddr(), "Torna服务器地址"));
systemConfigDTOS.add(new SystemConfigDTO(ConfigKeyEnum.TORNA_SERVER_ADDR.getKey(), docSettingDTO.getTornaServerAddr(), "Torna服务器地址"));
systemConfigDTOS.add(new SystemConfigDTO(ConfigKeyEnum.OPEN_PROD_URL.getKey(), docSettingDTO.getOpenProdUrl(), "开放平台线上地址"));
systemConfigDTOS.add(new SystemConfigDTO(ConfigKeyEnum.OPEN_SANDBOX_URL.getKey(), docSettingDTO.getOpenSandboxUrl(), "开放平台沙箱地址"));
sysConfigService.save(systemConfigDTOS);
}
public void addDocApp(String token) {
if (docAppMapper.checkExist(DocApp::getToken, token)) {
throw new BizException("该应用已添加");
}
TornaModuleDTO tornaModuleDTO = tornaClient.execute("module.get", null, token, TornaModuleDTO.class);
DocApp docApp = new DocApp();
docApp.setAppName(tornaModuleDTO.getName());
docApp.setToken(token);
docAppMapper.saveIgnoreNull(docApp);
}
public List<DocAppDTO> listDocApp() {
List<DocApp> docApps = docAppMapper.listAll();
return CopyUtil.copyList(docApps, DocAppDTO::new);
}
}

View File

@@ -0,0 +1,51 @@
package com.gitee.sop.adminbackend.service.doc;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.gitee.httphelper.HttpHelper;
import com.gitee.sop.adminbackend.common.enums.ConfigKeyEnum;
import com.gitee.sop.adminbackend.common.exception.BizException;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import java.io.IOException;
import java.util.Objects;
/**
* @author 六如
*/
@Component
public class TornaClient {
public <T> T execute(String name, Object param, String token, Class<T> respClass) {
try {
HttpHelper httpHelper = HttpHelper.get(getTornaApiUrl())
.parameter("name", name)
.parameter("access_token", token);
if (param != null) {
httpHelper.parameter("data", JSON.toJSONString(param));
}
String body = httpHelper
.execute()
.asString();
JSONObject jsonObject = JSON.parseObject(body);
if (!Objects.equals("0", jsonObject.getString("code"))) {
throw new BizException(jsonObject.getString("msg"));
}
JSONObject data = jsonObject.getJSONObject("data");
return data.toJavaObject(respClass);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public String getTornaApiUrl() {
String value = ConfigKeyEnum.TORNA_SERVER_ADDR.getValue();
if (ObjectUtils.isEmpty(value)) {
throw new BizException("Torna服务器地址未配置");
}
return StringUtils.trimTrailingCharacter(value, '/') + "/api";
}
}

View File

@@ -0,0 +1,15 @@
package com.gitee.sop.adminbackend.service.doc.dto;
import lombok.Data;
/**
* @author 六如
*/
@Data
public class TornaModuleDTO {
private Long id;
private String name;
}