Commit 768875ff by lijinqi

Merge branch 'api' into develop

# Conflicts:
#	computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/mysql/apicalllog/ApiCallLogMapper.java
#	computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/dal/mysql/apiorder/ApiOrderMapper.java
#	computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apicalllog/ApiCallLogServiceImpl.java
#	computility-module-apihub/src/main/java/com/luhu/computility/module/apihub/service/apiorder/ApiOrderServiceImpl.java
parent 8d22d6e1
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
<dependency> <dependency>
<groupId>com.luhu</groupId> <groupId>com.luhu</groupId>
<artifactId>computility-module-apihub-biz</artifactId> <artifactId>computility-module-apihub-api</artifactId>
<version>${revision}</version> <version>${revision}</version>
</dependency> </dependency>
</dependencies> </dependencies>
......
...@@ -13,14 +13,14 @@ import com.luhu.computility.framework.common.pojo.CommonResult; ...@@ -13,14 +13,14 @@ import com.luhu.computility.framework.common.pojo.CommonResult;
import com.luhu.computility.framework.common.util.servlet.ServletUtils; import com.luhu.computility.framework.common.util.servlet.ServletUtils;
import com.luhu.computility.framework.signature.core.annotation.ApiSignature; import com.luhu.computility.framework.signature.core.annotation.ApiSignature;
import com.luhu.computility.framework.signature.core.redis.ApiSignatureRedisDAO; import com.luhu.computility.framework.signature.core.redis.ApiSignatureRedisDAO;
import com.luhu.computility.module.apihub.controller.admin.apicalllog.vo.ApiCallLogSaveReqVO; import com.luhu.computility.module.apihub.api.apicalllog.ApiCallLogApi;
import com.luhu.computility.module.apihub.controller.admin.userapiusage.vo.JoinUserApiUsageResult; import com.luhu.computility.module.apihub.api.apicalllog.dto.ApiCallLogSaveReqDTO;
import com.luhu.computility.module.apihub.dal.dataobject.apiendpoint.ApiEndpointDO; import com.luhu.computility.module.apihub.api.apiendpoint.ApiEndpointApi;
import com.luhu.computility.module.apihub.dal.dataobject.appcredential.AppCredentialDO; import com.luhu.computility.module.apihub.api.apiendpoint.vo.ApiEndpointRespDTO;
import com.luhu.computility.module.apihub.service.apicalllog.ApiCallLogService; import com.luhu.computility.module.apihub.api.appcredential.AppCredentialApi;
import com.luhu.computility.module.apihub.service.apiendpoint.ApiEndpointService; import com.luhu.computility.module.apihub.api.appcredential.dto.AppCredentialRespDTO;
import com.luhu.computility.module.apihub.service.appcredential.AppCredentialService; import com.luhu.computility.module.apihub.api.userapiusage.UserApiUsageApi;
import com.luhu.computility.module.apihub.service.userapiusage.UserApiUsageService; import com.luhu.computility.module.apihub.api.userapiusage.dto.JoinUserApiUsageDTO;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.ProceedingJoinPoint;
...@@ -55,16 +55,16 @@ public class ApiSignatureAspect { ...@@ -55,16 +55,16 @@ public class ApiSignatureAspect {
private final ApiSignatureRedisDAO signatureRedisDAO; private final ApiSignatureRedisDAO signatureRedisDAO;
@Resource @Resource
private AppCredentialService appCredentialService; private AppCredentialApi appCredentialApi;
@Resource @Resource
private ApiEndpointService appEndpointService; private ApiEndpointApi apiEndpointApi;
@Resource @Resource
private ApiCallLogService apiCallLogService; private ApiCallLogApi apiCallLogApi;
@Resource @Resource
private UserApiUsageService userApiUsageService; private UserApiUsageApi userApiUsageApi;
public ApiSignatureAspect(ApiSignatureRedisDAO signatureRedisDAO) { public ApiSignatureAspect(ApiSignatureRedisDAO signatureRedisDAO) {
this.signatureRedisDAO = signatureRedisDAO; this.signatureRedisDAO = signatureRedisDAO;
...@@ -82,9 +82,9 @@ public class ApiSignatureAspect { ...@@ -82,9 +82,9 @@ public class ApiSignatureAspect {
//查询appId对应的Secret //查询appId对应的Secret
String appId = request.getHeader(signature.appId()); String appId = request.getHeader(signature.appId());
AppCredentialDO appCredentialDO = appCredentialService.getAppSecretByAppid(appId); AppCredentialRespDTO appCredentialRespDTO = appCredentialApi.getAppSecretByAppid(appId);
if (!ObjectUtil.isEmpty(appCredentialDO)) { if (!ObjectUtil.isEmpty(appCredentialRespDTO)) {
Assert.notNull(appCredentialDO.getAppId(), "[appId({})] 找不到对应的 appSecret", appId); Assert.notNull(appCredentialRespDTO.getAppId(), "[appId({})] 找不到对应的 appSecret", appId);
} else { } else {
throw new ServiceException(INVALID_APPID); throw new ServiceException(INVALID_APPID);
} }
...@@ -98,19 +98,19 @@ public class ApiSignatureAspect { ...@@ -98,19 +98,19 @@ public class ApiSignatureAspect {
String path = request.getRequestURI(); String path = request.getRequestURI();
String method = request.getMethod(); String method = request.getMethod();
//2.1是否有该接口 //2.1是否有该接口
ApiEndpointDO apiEndpoint = appEndpointService.getApiEndpointByPathAndMethod(path, method); ApiEndpointRespDTO apiEndpointRespDTO = apiEndpointApi.getApiEndpointByPathAndMethod(path, method);
if (Objects.isNull(apiEndpoint)) { if (Objects.isNull(apiEndpointRespDTO)) {
throw new ServiceException(API_ENDPOINT_NOT_EXISTS); throw new ServiceException(API_ENDPOINT_NOT_EXISTS);
} }
//2.2该接口是否订阅过 //2.2该接口是否订阅过
List<JoinUserApiUsageResult> joinUserApiUsageResults = userApiUsageService.selectJoinUserApiUsageResult(appCredentialDO.getUserId(), apiEndpoint.getId()); List<JoinUserApiUsageDTO> joinUserApiUsageResults = userApiUsageApi.selectJoinUserApiUsageResult(appCredentialRespDTO.getUserId(), apiEndpointRespDTO.getId());
if (CollectionUtil.isEmpty(joinUserApiUsageResults)){ if (CollectionUtil.isEmpty(joinUserApiUsageResults)){
throw new ServiceException(API_ENDPOINT_NOT_AVAILABLE); throw new ServiceException(API_ENDPOINT_NOT_AVAILABLE);
} }
//3. 用户套餐校验(只校验,不扣减)如果有一个套餐符合条件,则继续往下走 //3. 用户套餐校验(只校验,不扣减)如果有一个套餐符合条件,则继续往下走
JoinUserApiUsageResult joinUserApiUsageResult = null; JoinUserApiUsageDTO joinUserApiUsageResult = null;
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
for (JoinUserApiUsageResult j : joinUserApiUsageResults) { for (JoinUserApiUsageDTO j : joinUserApiUsageResults) {
// 未过期且有剩余额度 // 未过期且有剩余额度
if (j.getExpireTime().isAfter(now) && j.getUsedTimes() < j.getPackageTimes()) { if (j.getExpireTime().isAfter(now) && j.getUsedTimes() < j.getPackageTimes()) {
if (joinUserApiUsageResult == null || j.getExpireTime().isBefore(joinUserApiUsageResult.getExpireTime())) { if (joinUserApiUsageResult == null || j.getExpireTime().isBefore(joinUserApiUsageResult.getExpireTime())) {
...@@ -125,20 +125,20 @@ public class ApiSignatureAspect { ...@@ -125,20 +125,20 @@ public class ApiSignatureAspect {
Object result = joinPoint.proceed(); Object result = joinPoint.proceed();
// 5. 只有当接口执行成功才扣减额度 // 5. 只有当接口执行成功才扣减额度
ApiCallLogSaveReqVO apiCallLogSaveReqVO = new ApiCallLogSaveReqVO(); ApiCallLogSaveReqDTO apiCallLogSaveReqVO = new ApiCallLogSaveReqDTO();
if (result instanceof CommonResult) { if (result instanceof CommonResult) {
if (((CommonResult<?>) result).isSuccess()){ if (((CommonResult<?>) result).isSuccess()){
consumeUsage(joinUserApiUsageResults, apiEndpoint.getConsumptionPoints()); consumeUsage(joinUserApiUsageResults, apiEndpointRespDTO.getConsumptionPoints());
apiCallLogSaveReqVO.setResponseStatus(((CommonResult<?>) result).getCode().toString()); apiCallLogSaveReqVO.setResponseStatus(((CommonResult<?>) result).getCode().toString());
} }
String requestBody = ServletUtils.isJsonRequest(request) ? ServletUtils.getBody(request) : null; String requestBody = ServletUtils.isJsonRequest(request) ? ServletUtils.getBody(request) : null;
apiCallLogService.createApiCallLog( apiCallLogApi.createApiCallLog(
apiCallLogSaveReqVO apiCallLogSaveReqVO
.setUserId(appCredentialDO.getUserId()) .setUserId(appCredentialRespDTO.getUserId())
.setCallTime(LocalDateTime.now()) .setCallTime(LocalDateTime.now())
.setMethod(method) .setMethod(method)
.setPath(path) .setPath(path)
.setApiEndpointName(apiEndpoint.getName()) .setApiEndpointName(apiEndpointRespDTO.getName())
.setRequestParams(requestBody) .setRequestParams(requestBody)
.setResponseParams(JSON.toJSONString(result)) .setResponseParams(JSON.toJSONString(result))
); );
...@@ -150,12 +150,12 @@ public class ApiSignatureAspect { ...@@ -150,12 +150,12 @@ public class ApiSignatureAspect {
/** 扣减一次额度(优先扣最近过期的套餐,用 Redis 保证并发安全) */ /** 扣减一次额度(优先扣最近过期的套餐,用 Redis 保证并发安全) */
private void consumeUsage(List<JoinUserApiUsageResult> joinUserApiUsageResults, Integer consumptionPoints) { private void consumeUsage(List<JoinUserApiUsageDTO> joinUserApiUsageDTOS, Integer consumptionPoints) {
JoinUserApiUsageResult target = null; JoinUserApiUsageDTO target = null;
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
// 找到过期时间最早且可用的套餐 // 找到过期时间最早且可用的套餐
for (JoinUserApiUsageResult j : joinUserApiUsageResults) { for (JoinUserApiUsageDTO j : joinUserApiUsageDTOS) {
if (!ObjectUtil.isEmpty(j.getExpireTime()) && j.getExpireTime().isAfter(now) if (!ObjectUtil.isEmpty(j.getExpireTime()) && j.getExpireTime().isAfter(now)
&& j.getUsedTimes() < j.getPackageTimes()) { && j.getUsedTimes() < j.getPackageTimes()) {
if (ObjectUtil.isEmpty(target) || j.getExpireTime().isBefore(target.getExpireTime())) { if (ObjectUtil.isEmpty(target) || j.getExpireTime().isBefore(target.getExpireTime())) {
...@@ -172,12 +172,12 @@ public class ApiSignatureAspect { ...@@ -172,12 +172,12 @@ public class ApiSignatureAspect {
if (!ObjectUtil.isEmpty(used) && used <= target.getPackageTimes()) { if (!ObjectUtil.isEmpty(used) && used <= target.getPackageTimes()) {
// 异步回写 DB // 异步回写 DB
userApiUsageService.asyncUpdateUsage(target.getId(), used); userApiUsageApi.asyncUpdateUsage(target.getId(), used);
} }
} }
public boolean verifySignature(ApiSignature signature, HttpServletRequest request, AppCredentialDO appCredentialDO) { public boolean verifySignature(ApiSignature signature, HttpServletRequest request, AppCredentialRespDTO appCredentialDO) {
// 1.2 校验 appId 是否能获取到对应的 appSecret // 1.2 校验 appId 是否能获取到对应的 appSecret
String appId = request.getHeader(signature.appId()); String appId = request.getHeader(signature.appId());
......
...@@ -2,7 +2,9 @@ package com.luhu.computility.module.apihub.api.apicalllog; ...@@ -2,7 +2,9 @@ package com.luhu.computility.module.apihub.api.apicalllog;
import com.luhu.computility.module.apihub.api.apicalllog.dto.ApiCallLogPageReqDTO; import com.luhu.computility.module.apihub.api.apicalllog.dto.ApiCallLogPageReqDTO;
import com.luhu.computility.module.apihub.api.apicalllog.dto.ApiCallLogRespDTO; import com.luhu.computility.module.apihub.api.apicalllog.dto.ApiCallLogRespDTO;
import com.luhu.computility.module.apihub.api.apicalllog.dto.ApiCallLogSaveReqDTO;
import javax.validation.Valid;
import java.util.List; import java.util.List;
/** /**
...@@ -19,4 +21,12 @@ public interface ApiCallLogApi { ...@@ -19,4 +21,12 @@ public interface ApiCallLogApi {
*/ */
List<ApiCallLogRespDTO> getApiCallLogList(ApiCallLogPageReqDTO apiCallLogPageReqDTO); List<ApiCallLogRespDTO> getApiCallLogList(ApiCallLogPageReqDTO apiCallLogPageReqDTO);
/**
* 创建API 调用日志
*
* @param createReqDTO 创建信息
* @return 编号
*/
Long createApiCallLog(ApiCallLogSaveReqDTO createReqDTO);
} }
...@@ -10,12 +10,16 @@ public class ApiCallLogSaveReqDTO { ...@@ -10,12 +10,16 @@ public class ApiCallLogSaveReqDTO {
private Long id; private Long id;
@NotNull(message = "调用用户ID不能为空")
private Long userId; private Long userId;
@NotNull(message = "接口名称不能为空")
private String apiEndpointName; private String apiEndpointName;
@NotNull(message = "请求方法不能为空")
private String method; private String method;
@NotNull(message = "请求地址不能为空")
private String path; private String path;
private String requestParams; private String requestParams;
......
package com.luhu.computility.module.apihub.api.apiendpoint;
import com.luhu.computility.module.apihub.api.apiendpoint.vo.ApiEndpointRespDTO;
/**
* @version 1.0
* @Author ljq
* @Date 2025/9/13
* @注释
*/
public interface ApiEndpointApi {
/**
* 根据path和方法 获得API 接口
*
* @param path、method 编号
* @return API 接口
*/
ApiEndpointRespDTO getApiEndpointByPathAndMethod(String path, String method);
}
package com.luhu.computility.module.apihub.api.apiendpoint.vo;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class ApiEndpointRespDTO {
private Long id;
private String name;
private String path;
private Integer consumptionPoints;
private String method;
private String params;
private String response;
private String authType;
private String rateLimit;
private String remark;
private LocalDateTime createTime;
}
\ No newline at end of file
package com.luhu.computility.module.apihub.api.appcredential;
import com.luhu.computility.module.apihub.api.apiorder.dto.ApiOrderPageReqDTO;
import com.luhu.computility.module.apihub.api.apiorder.dto.ApiOrderRespDTO;
import com.luhu.computility.module.apihub.api.appcredential.dto.AppCredentialRespDTO;
import java.util.List;
/**
* @version 1.0
* @Author ljq
* @Date 2025/9/13
* @注释
*/
public interface AppCredentialApi {
/**
* 获得用户密钥信息
*
* @param appId 编号
* @return 用户密钥信息
*/
AppCredentialRespDTO getAppSecretByAppid(String appId);
}
package com.luhu.computility.module.apihub.api.appcredential.dto;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class AppCredentialRespDTO {
private Long id;
private String appId;
private String appSecret;
private Long userId;
private LocalDateTime createTime;
}
\ No newline at end of file
package com.luhu.computility.module.apihub.api.userapiusage;
import com.luhu.computility.module.apihub.api.apiorder.dto.ApiOrderPageReqDTO;
import com.luhu.computility.module.apihub.api.apiorder.dto.ApiOrderRespDTO;
import com.luhu.computility.module.apihub.api.userapiusage.dto.JoinUserApiUsageDTO;
import java.util.List;
/**
* @version 1.0
* @Author ljq
* @Date 2025/9/13
* @注释
*/
public interface UserApiUsageApi {
List<JoinUserApiUsageDTO> selectJoinUserApiUsageResult(Long userId, Long apiIdEndpoint);
void asyncUpdateUsage(Long id, Integer used);
}
package com.luhu.computility.module.apihub.api.userapiusage.dto;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class JoinUserApiUsageDTO {
private Long id;
private Long userId;
private Long apiEndPointId;
private String apiEndPintName;
private String apiName;
private String packageName;
private Integer packageTimes;
private Integer packagePrice;
private Integer packageValidDays;
private Integer usedTimes;
private LocalDateTime expireTime;
private String remark;
private LocalDateTime createTime;
}
\ No newline at end of file
...@@ -25,6 +25,11 @@ ...@@ -25,6 +25,11 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.luhu</groupId> <groupId>com.luhu</groupId>
<artifactId>computility-module-biz-api</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-module-pay</artifactId> <artifactId>computility-module-pay</artifactId>
<version>${revision}</version> <version>${revision}</version>
</dependency> </dependency>
...@@ -83,10 +88,5 @@ ...@@ -83,10 +88,5 @@
<artifactId>computility-spring-boot-starter-excel</artifactId> <artifactId>computility-spring-boot-starter-excel</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-module-biz</artifactId>
<version>${revision}</version>
</dependency>
</dependencies> </dependencies>
</project> </project>
package com.luhu.computility.module.apihub.api; package com.luhu.computility.module.apihub.api;
import com.luhu.computility.framework.common.pojo.PageResult;
import com.luhu.computility.framework.common.util.object.BeanUtils; import com.luhu.computility.framework.common.util.object.BeanUtils;
import com.luhu.computility.module.apihub.api.apicalllog.ApiCallLogApi; import com.luhu.computility.module.apihub.api.apicalllog.ApiCallLogApi;
import com.luhu.computility.module.apihub.api.apicalllog.dto.ApiCallLogPageReqDTO; import com.luhu.computility.module.apihub.api.apicalllog.dto.ApiCallLogPageReqDTO;
import com.luhu.computility.module.apihub.api.apicalllog.dto.ApiCallLogRespDTO; import com.luhu.computility.module.apihub.api.apicalllog.dto.ApiCallLogRespDTO;
import com.luhu.computility.module.apihub.controller.admin.apicalllog.vo.ApiCallLogPageReqVO; import com.luhu.computility.module.apihub.api.apicalllog.dto.ApiCallLogSaveReqDTO;
import com.luhu.computility.module.apihub.controller.admin.apicalllog.vo.ApiCallLogRespVO;
import com.luhu.computility.module.apihub.controller.admin.apicalllog.vo.ApiCallLogSaveReqVO; import com.luhu.computility.module.apihub.controller.admin.apicalllog.vo.ApiCallLogSaveReqVO;
import com.luhu.computility.module.apihub.controller.app.apicalllog.vo.AppApiCallLogPageReqVO;
import com.luhu.computility.module.apihub.dal.dataobject.apicalllog.ApiCallLogDO; import com.luhu.computility.module.apihub.dal.dataobject.apicalllog.ApiCallLogDO;
import com.luhu.computility.module.apihub.dal.mysql.apicalllog.ApiCallLogMapper; import com.luhu.computility.module.apihub.dal.mysql.apicalllog.ApiCallLogMapper;
import com.luhu.computility.module.apihub.service.apicalllog.ApiCallLogService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Collections;
import java.util.List; import java.util.List;
import static com.luhu.computility.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.luhu.computility.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.luhu.computility.module.apihub.enums.ErrorCodeConstants.API_CALL_LOG_NOT_EXISTS;
/** /**
* API 调用日志 Service 实现类 * API 调用日志 Service 实现类
...@@ -38,4 +32,15 @@ public class ApiCallLogApiServiceImpl implements ApiCallLogApi { ...@@ -38,4 +32,15 @@ public class ApiCallLogApiServiceImpl implements ApiCallLogApi {
public List<ApiCallLogRespDTO> getApiCallLogList(ApiCallLogPageReqDTO apiCallLogPageReqDTO) { public List<ApiCallLogRespDTO> getApiCallLogList(ApiCallLogPageReqDTO apiCallLogPageReqDTO) {
return apiCallLogMapper.selectList(apiCallLogPageReqDTO); return apiCallLogMapper.selectList(apiCallLogPageReqDTO);
} }
@Override
public Long createApiCallLog(ApiCallLogSaveReqDTO createReqVO) {
// 插入
ApiCallLogDO apiCallLog = BeanUtils.toBean(createReqVO, ApiCallLogDO.class);
apiCallLogMapper.insert(apiCallLog);
// 返回
return apiCallLog.getId();
}
} }
\ No newline at end of file
package com.luhu.computility.module.apihub.api;
import com.luhu.computility.module.apihub.api.apiendpoint.ApiEndpointApi;
import com.luhu.computility.module.apihub.api.apiendpoint.vo.ApiEndpointRespDTO;
import com.luhu.computility.module.apihub.dal.mysql.apicalllog.ApiCallLogMapper;
import com.luhu.computility.module.apihub.dal.mysql.apiendpoint.ApiEndpointMapper;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
/**
* API 调用日志 Service 实现类
*
* @author ljq
*/
@Service
@Validated
public class ApiEndpointServiceImpl implements ApiEndpointApi {
@Resource
private ApiEndpointMapper apiEndpointMapper;
@Override
public ApiEndpointRespDTO getApiEndpointByPathAndMethod(String path, String method) {
return apiEndpointMapper.getOpenApiEndpointByPathAndMethod(path, method);
}
}
\ No newline at end of file
package com.luhu.computility.module.apihub.api; package com.luhu.computility.module.apihub.api;
import com.luhu.computility.module.apihub.api.apicalllog.ApiCallLogApi;
import com.luhu.computility.module.apihub.api.apicalllog.dto.ApiCallLogPageReqDTO;
import com.luhu.computility.module.apihub.api.apicalllog.dto.ApiCallLogRespDTO;
import com.luhu.computility.module.apihub.api.apiorder.ApiOrderApi; import com.luhu.computility.module.apihub.api.apiorder.ApiOrderApi;
import com.luhu.computility.module.apihub.api.apiorder.dto.ApiOrderPageReqDTO; import com.luhu.computility.module.apihub.api.apiorder.dto.ApiOrderPageReqDTO;
import com.luhu.computility.module.apihub.api.apiorder.dto.ApiOrderRespDTO; import com.luhu.computility.module.apihub.api.apiorder.dto.ApiOrderRespDTO;
import com.luhu.computility.module.apihub.dal.mysql.apicalllog.ApiCallLogMapper;
import com.luhu.computility.module.apihub.dal.mysql.apiorder.ApiOrderMapper; import com.luhu.computility.module.apihub.dal.mysql.apiorder.ApiOrderMapper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
......
package com.luhu.computility.module.apihub.api;
import com.luhu.computility.module.apihub.api.apicalllog.dto.ApiCallLogPageReqDTO;
import com.luhu.computility.module.apihub.api.apicalllog.dto.ApiCallLogRespDTO;
import com.luhu.computility.module.apihub.api.apiendpoint.ApiEndpointApi;
import com.luhu.computility.module.apihub.api.appcredential.AppCredentialApi;
import com.luhu.computility.module.apihub.api.appcredential.dto.AppCredentialRespDTO;
import com.luhu.computility.module.apihub.dal.dataobject.appcredential.AppCredentialDO;
import com.luhu.computility.module.apihub.dal.mysql.apicalllog.ApiCallLogMapper;
import com.luhu.computility.module.apihub.dal.mysql.appcredential.AppCredentialMapper;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.List;
/**
* API 调用日志 Service 实现类
*
* @author ljq
*/
@Service
@Validated
public class AppCredentialApiServiceImpl implements AppCredentialApi {
@Resource
private AppCredentialMapper appCredentialMapper;
@Override
public AppCredentialRespDTO getAppSecretByAppid(String appId) {
return appCredentialMapper.selectOpenByAppId(appId);
}
}
\ No newline at end of file
package com.luhu.computility.module.apihub.api;
import com.luhu.computility.module.apihub.api.userapiusage.UserApiUsageApi;
import com.luhu.computility.module.apihub.api.userapiusage.dto.JoinUserApiUsageDTO;
import com.luhu.computility.module.apihub.dal.dataobject.userapiusage.UserApiUsageDO;
import com.luhu.computility.module.apihub.dal.mysql.userapiusage.UserApiUsageMapper;
import com.luhu.computility.module.apihub.service.userapiusage.UserApiUsageService;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.List;
import static com.luhu.computility.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.luhu.computility.module.apihub.enums.ErrorCodeConstants.USER_API_USAGE_NOT_EXISTS;
/**
* API 调用日志 Service 实现类
*
* @author ljq
*/
@Service
@Validated
public class UserApiUsageApiServiceImpl implements UserApiUsageApi {
@Resource
private UserApiUsageMapper userApiUsageMapper;
@Resource
private UserApiUsageService userApiUsageService;
@Override
public List<JoinUserApiUsageDTO> selectJoinUserApiUsageResult(Long userId, Long apiIdEndpoint) {
return userApiUsageMapper.selectJoinUserApiUsageResult(userId, apiIdEndpoint);
}
@Override
@Async
public void asyncUpdateUsage(Long id, Integer used) {
// 校验存在
if (userApiUsageMapper.selectById(id) == null) {
throw exception(USER_API_USAGE_NOT_EXISTS);
}
UserApiUsageDO userApiUsage = userApiUsageService.getUserApiUsage(id);
userApiUsage.setUsedTimes(userApiUsage.getUsedTimes() - used);
userApiUsageMapper.updateById(userApiUsage);
}
}
\ No newline at end of file
...@@ -14,7 +14,6 @@ import com.luhu.computility.module.apihub.service.apiendpoint.ApiEndpointService ...@@ -14,7 +14,6 @@ import com.luhu.computility.module.apihub.service.apiendpoint.ApiEndpointService
import com.luhu.computility.module.apihub.service.apiendpointapplicationrel.ApiEndpointApplicationRelService; import com.luhu.computility.module.apihub.service.apiendpointapplicationrel.ApiEndpointApplicationRelService;
import com.luhu.computility.module.apihub.service.apiendpointrel.ApiEndpointRelService; import com.luhu.computility.module.apihub.service.apiendpointrel.ApiEndpointRelService;
import com.luhu.computility.module.apihub.service.apipackage.ApiPackageService; import com.luhu.computility.module.apihub.service.apipackage.ApiPackageService;
import com.luhu.computility.module.biz.controller.admin.industryapplication.vo.IndustryApplicationRespVO;
import org.checkerframework.checker.units.qual.A; import org.checkerframework.checker.units.qual.A;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -153,7 +152,7 @@ public class ApiController { ...@@ -153,7 +152,7 @@ public class ApiController {
List<ApiEndpointRespVO> apiEndpointRespVOS = apiEndpointRelService.getApiEndpointByApiId(id); List<ApiEndpointRespVO> apiEndpointRespVOS = apiEndpointRelService.getApiEndpointByApiId(id);
/* /*
for (ApiEndpointRespVO apiEndpointRespVO : apiEndpointRespVOS) { for (ApiEndpointRespDTO apiEndpointRespVO : apiEndpointRespVOS) {
List<IndustryApplicationRespVO> industryApplicationRespVOS = apiEndpointApplicationRelService.getApplicationByApiEndpointId(apiEndpointRespVO.getId()); List<IndustryApplicationRespVO> industryApplicationRespVOS = apiEndpointApplicationRelService.getApplicationByApiEndpointId(apiEndpointRespVO.getId());
apiEndpointRespVO.setIndustryApplications(industryApplicationRespVOS); apiEndpointRespVO.setIndustryApplications(industryApplicationRespVOS);
}*/ }*/
......
...@@ -49,7 +49,7 @@ public class ApiEndpointSaveReqVO { ...@@ -49,7 +49,7 @@ public class ApiEndpointSaveReqVO {
@Schema(description = "关联行业应用", example = "[{}]") @Schema(description = "关联行业应用", example = "[{}]")
@NotEmpty(message = "行业应用至少填写一个") @NotEmpty(message = "行业应用至少填写一个")
private List<IndustryApplicationRespVO> industryApplications; private List<IndustryApplicationRespDTO> industryApplications;
} }
\ No newline at end of file
...@@ -17,7 +17,6 @@ import io.swagger.v3.oas.annotations.Parameter; ...@@ -17,7 +17,6 @@ import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import javax.annotation.security.PermitAll; import javax.annotation.security.PermitAll;
import javax.validation.constraints.*;
import javax.validation.*; import javax.validation.*;
import javax.servlet.http.*; import javax.servlet.http.*;
import java.util.*; import java.util.*;
......
...@@ -9,16 +9,11 @@ import com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrder ...@@ -9,16 +9,11 @@ import com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrder
import com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderCreateRespVO; import com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderCreateRespVO;
import com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderPageReqVO; import com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderPageReqVO;
import com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderRespVO; import com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderRespVO;
import com.luhu.computility.module.apihub.dal.dataobject.api.ApiDO;
import com.luhu.computility.module.apihub.dal.dataobject.apiorder.ApiOrderDO; import com.luhu.computility.module.apihub.dal.dataobject.apiorder.ApiOrderDO;
import com.luhu.computility.module.apihub.dal.dataobject.apipackage.ApiPackageDO;
import com.luhu.computility.module.apihub.enums.ApiOrderStatus; import com.luhu.computility.module.apihub.enums.ApiOrderStatus;
import com.luhu.computility.module.apihub.service.api.ApiService;
import com.luhu.computility.module.apihub.service.apiorder.ApiOrderService; import com.luhu.computility.module.apihub.service.apiorder.ApiOrderService;
import com.luhu.computility.module.apihub.service.apipackage.ApiPackageService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
......
...@@ -3,9 +3,11 @@ package com.luhu.computility.module.apihub.dal.mysql.apiendpoint; ...@@ -3,9 +3,11 @@ package com.luhu.computility.module.apihub.dal.mysql.apiendpoint;
import java.util.*; import java.util.*;
import com.luhu.computility.framework.common.pojo.PageResult; import com.luhu.computility.framework.common.pojo.PageResult;
import com.luhu.computility.framework.common.util.object.BeanUtils;
import com.luhu.computility.framework.mybatis.core.query.LambdaQueryWrapperX; import com.luhu.computility.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.luhu.computility.framework.mybatis.core.mapper.BaseMapperX; import com.luhu.computility.framework.mybatis.core.mapper.BaseMapperX;
import com.luhu.computility.framework.mybatis.core.query.MPJLambdaWrapperX; import com.luhu.computility.framework.mybatis.core.query.MPJLambdaWrapperX;
import com.luhu.computility.module.apihub.api.apiendpoint.vo.ApiEndpointRespDTO;
import com.luhu.computility.module.apihub.dal.dataobject.apiendpoint.ApiEndpointDO; import com.luhu.computility.module.apihub.dal.dataobject.apiendpoint.ApiEndpointDO;
import com.luhu.computility.module.apihub.dal.dataobject.apiendpointrel.ApiEndpointRelDO; import com.luhu.computility.module.apihub.dal.dataobject.apiendpointrel.ApiEndpointRelDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
...@@ -43,6 +45,14 @@ public interface ApiEndpointMapper extends BaseMapperX<ApiEndpointDO> { ...@@ -43,6 +45,14 @@ public interface ApiEndpointMapper extends BaseMapperX<ApiEndpointDO> {
.eqIfPresent(ApiEndpointDO::getPath, path)); .eqIfPresent(ApiEndpointDO::getPath, path));
} }
default ApiEndpointRespDTO getOpenApiEndpointByPathAndMethod(String path, String method) {
ApiEndpointDO apiEndpointDO = selectOne(new LambdaQueryWrapperX<ApiEndpointDO>()
.eqIfPresent(ApiEndpointDO::getMethod, method)
.eqIfPresent(ApiEndpointDO::getPath, path));
return BeanUtils.toBean(apiEndpointDO, ApiEndpointRespDTO.class);
}
......
...@@ -10,6 +10,7 @@ import com.luhu.computility.module.apihub.controller.admin.apiendpoint.vo.ApiEnd ...@@ -10,6 +10,7 @@ import com.luhu.computility.module.apihub.controller.admin.apiendpoint.vo.ApiEnd
import com.luhu.computility.module.apihub.dal.dataobject.apiendpoint.ApiEndpointDO; import com.luhu.computility.module.apihub.dal.dataobject.apiendpoint.ApiEndpointDO;
import com.luhu.computility.module.apihub.dal.dataobject.apiendpointapplicationrel.ApiEndpointApplicationRelDO; import com.luhu.computility.module.apihub.dal.dataobject.apiendpointapplicationrel.ApiEndpointApplicationRelDO;
import com.luhu.computility.module.apihub.dal.dataobject.apiendpointrel.ApiEndpointRelDO; import com.luhu.computility.module.apihub.dal.dataobject.apiendpointrel.ApiEndpointRelDO;
import com.luhu.computility.module.biz.api.industryapplication.dto.IndustryApplicationRespDTO;
import com.luhu.computility.module.biz.controller.admin.industryapplication.vo.IndustryApplicationRespVO; import com.luhu.computility.module.biz.controller.admin.industryapplication.vo.IndustryApplicationRespVO;
import com.luhu.computility.module.biz.dal.dataobject.industryapplication.IndustryApplicationDO; import com.luhu.computility.module.biz.dal.dataobject.industryapplication.IndustryApplicationDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
...@@ -36,8 +37,8 @@ public interface ApiEndpointApplicationRelMapper extends BaseMapperX<ApiEndpoint ...@@ -36,8 +37,8 @@ public interface ApiEndpointApplicationRelMapper extends BaseMapperX<ApiEndpoint
.eqIfPresent(ApiEndpointApplicationRelDO::getApiEndpointId, apiEndpointId)); .eqIfPresent(ApiEndpointApplicationRelDO::getApiEndpointId, apiEndpointId));
} }
default List<IndustryApplicationRespVO> getApiEndpointByApiId(Long apiEndpointId) { default List<IndustryApplicationRespDTO> getApiEndpointByApiId(Long apiEndpointId) {
return selectJoinList(IndustryApplicationRespVO.class, new MPJLambdaWrapperX<ApiEndpointApplicationRelDO>() return selectJoinList(IndustryApplicationRespDTO.class, new MPJLambdaWrapperX<ApiEndpointApplicationRelDO>()
.selectAs(IndustryApplicationDO::getTitle, IndustryApplicationRespVO::getTitle) .selectAs(IndustryApplicationDO::getTitle, IndustryApplicationRespVO::getTitle)
.selectAs(ApiEndpointApplicationRelDO::getIndustryApplicationId, IndustryApplicationRespVO::getId) .selectAs(ApiEndpointApplicationRelDO::getIndustryApplicationId, IndustryApplicationRespVO::getId)
.leftJoin(IndustryApplicationDO.class, IndustryApplicationDO::getId, ApiEndpointApplicationRelDO::getIndustryApplicationId) .leftJoin(IndustryApplicationDO.class, IndustryApplicationDO::getId, ApiEndpointApplicationRelDO::getIndustryApplicationId)
......
...@@ -10,12 +10,9 @@ import com.luhu.computility.framework.common.util.object.BeanUtils; ...@@ -10,12 +10,9 @@ import com.luhu.computility.framework.common.util.object.BeanUtils;
import com.luhu.computility.framework.mybatis.core.query.LambdaQueryWrapperX; import com.luhu.computility.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.luhu.computility.framework.mybatis.core.mapper.BaseMapperX; import com.luhu.computility.framework.mybatis.core.mapper.BaseMapperX;
import com.luhu.computility.framework.mybatis.core.query.MPJLambdaWrapperX; import com.luhu.computility.framework.mybatis.core.query.MPJLambdaWrapperX;
import com.luhu.computility.module.apihub.api.apicalllog.dto.ApiCallLogRespDTO;
import com.luhu.computility.module.apihub.api.apiorder.dto.ApiOrderPageReqDTO; import com.luhu.computility.module.apihub.api.apiorder.dto.ApiOrderPageReqDTO;
import com.luhu.computility.module.apihub.api.apiorder.dto.ApiOrderRespDTO; import com.luhu.computility.module.apihub.api.apiorder.dto.ApiOrderRespDTO;
import com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderPageReqVO; import com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderPageReqVO;
import com.luhu.computility.module.apihub.dal.dataobject.api.ApiDO;
import com.luhu.computility.module.apihub.dal.dataobject.apicategory.ApiCategoryDO;
import com.luhu.computility.module.apihub.dal.dataobject.apiorder.ApiOrderDO; import com.luhu.computility.module.apihub.dal.dataobject.apiorder.ApiOrderDO;
import com.luhu.computility.module.apihub.enums.ApiOrderStatus; import com.luhu.computility.module.apihub.enums.ApiOrderStatus;
import com.luhu.computility.module.member.dal.dataobject.user.MemberUserDO; import com.luhu.computility.module.member.dal.dataobject.user.MemberUserDO;
......
...@@ -3,8 +3,10 @@ package com.luhu.computility.module.apihub.dal.mysql.appcredential; ...@@ -3,8 +3,10 @@ package com.luhu.computility.module.apihub.dal.mysql.appcredential;
import java.util.*; import java.util.*;
import com.luhu.computility.framework.common.pojo.PageResult; import com.luhu.computility.framework.common.pojo.PageResult;
import com.luhu.computility.framework.common.util.object.BeanUtils;
import com.luhu.computility.framework.mybatis.core.query.LambdaQueryWrapperX; import com.luhu.computility.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.luhu.computility.framework.mybatis.core.mapper.BaseMapperX; import com.luhu.computility.framework.mybatis.core.mapper.BaseMapperX;
import com.luhu.computility.module.apihub.api.appcredential.dto.AppCredentialRespDTO;
import com.luhu.computility.module.apihub.dal.dataobject.appcredential.AppCredentialDO; import com.luhu.computility.module.apihub.dal.dataobject.appcredential.AppCredentialDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import com.luhu.computility.module.apihub.controller.admin.appcredential.vo.*; import com.luhu.computility.module.apihub.controller.admin.appcredential.vo.*;
...@@ -31,4 +33,12 @@ public interface AppCredentialMapper extends BaseMapperX<AppCredentialDO> { ...@@ -31,4 +33,12 @@ public interface AppCredentialMapper extends BaseMapperX<AppCredentialDO> {
.eqIfPresent(AppCredentialDO::getAppId, appId)); .eqIfPresent(AppCredentialDO::getAppId, appId));
} }
default AppCredentialRespDTO selectOpenByAppId(String appId) {
AppCredentialDO appCredentialDO = selectOne(new LambdaQueryWrapperX<AppCredentialDO>()
.eqIfPresent(AppCredentialDO::getAppId, appId));
return BeanUtils.toBean(appCredentialDO, AppCredentialRespDTO.class);
}
} }
\ No newline at end of file
...@@ -8,6 +8,7 @@ import com.luhu.computility.framework.common.pojo.PageResult; ...@@ -8,6 +8,7 @@ import com.luhu.computility.framework.common.pojo.PageResult;
import com.luhu.computility.framework.mybatis.core.query.LambdaQueryWrapperX; import com.luhu.computility.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.luhu.computility.framework.mybatis.core.mapper.BaseMapperX; import com.luhu.computility.framework.mybatis.core.mapper.BaseMapperX;
import com.luhu.computility.framework.mybatis.core.query.MPJLambdaWrapperX; import com.luhu.computility.framework.mybatis.core.query.MPJLambdaWrapperX;
import com.luhu.computility.module.apihub.api.userapiusage.dto.JoinUserApiUsageDTO;
import com.luhu.computility.module.apihub.controller.app.userapiusage.vo.AppUserApiUsageRespVO; import com.luhu.computility.module.apihub.controller.app.userapiusage.vo.AppUserApiUsageRespVO;
import com.luhu.computility.module.apihub.dal.dataobject.api.ApiDO; import com.luhu.computility.module.apihub.dal.dataobject.api.ApiDO;
import com.luhu.computility.module.apihub.dal.dataobject.apicategory.ApiCategoryDO; import com.luhu.computility.module.apihub.dal.dataobject.apicategory.ApiCategoryDO;
...@@ -50,8 +51,8 @@ public interface UserApiUsageMapper extends BaseMapperX<UserApiUsageDO> { ...@@ -50,8 +51,8 @@ public interface UserApiUsageMapper extends BaseMapperX<UserApiUsageDO> {
.orderByDesc(UserApiUsageDO::getCreateTime)); .orderByDesc(UserApiUsageDO::getCreateTime));
} }
default List<JoinUserApiUsageResult> selectJoinUserApiUsageResult(Long userId, Long apiIdEndpoint) { default List<JoinUserApiUsageDTO> selectJoinUserApiUsageResult(Long userId, Long apiIdEndpoint) {
return selectJoinList(JoinUserApiUsageResult.class, new MPJLambdaWrapper<UserApiUsageDO>() return selectJoinList(JoinUserApiUsageDTO.class, new MPJLambdaWrapper<UserApiUsageDO>()
.select(UserApiUsageDO::getApiName) .select(UserApiUsageDO::getApiName)
.selectAs(UserApiUsageDO::getId, JoinUserApiUsageResult::getId) .selectAs(UserApiUsageDO::getId, JoinUserApiUsageResult::getId)
.selectAs(ApiEndpointDO::getId, JoinUserApiUsageResult::getApiEndPointId) .selectAs(ApiEndpointDO::getId, JoinUserApiUsageResult::getApiEndPointId)
......
package com.luhu.computility.module.apihub.service.api; package com.luhu.computility.module.apihub.service.api;
import cn.hutool.core.collection.CollUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
import com.luhu.computility.module.apihub.controller.admin.api.vo.*; import com.luhu.computility.module.apihub.controller.admin.api.vo.*;
import com.luhu.computility.module.apihub.dal.dataobject.api.ApiDO; import com.luhu.computility.module.apihub.dal.dataobject.api.ApiDO;
import com.luhu.computility.framework.common.pojo.PageResult; import com.luhu.computility.framework.common.pojo.PageResult;
import com.luhu.computility.framework.common.pojo.PageParam;
import com.luhu.computility.framework.common.util.object.BeanUtils; import com.luhu.computility.framework.common.util.object.BeanUtils;
import com.luhu.computility.module.apihub.dal.mysql.api.ApiMapper; import com.luhu.computility.module.apihub.dal.mysql.api.ApiMapper;
import static com.luhu.computility.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.luhu.computility.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.luhu.computility.framework.common.util.collection.CollectionUtils.convertList; import static com.luhu.computility.framework.common.util.collection.CollectionUtils.convertList;
import static com.luhu.computility.framework.common.util.collection.CollectionUtils.diffList;
import static com.luhu.computility.module.apihub.enums.ErrorCodeConstants.*; import static com.luhu.computility.module.apihub.enums.ErrorCodeConstants.*;
/** /**
......
package com.luhu.computility.module.apihub.service.apicalllog; package com.luhu.computility.module.apihub.service.apicalllog;
import cn.hutool.core.collection.CollUtil;
import com.luhu.computility.module.apihub.controller.app.apicalllog.vo.AppApiCallLogPageReqVO; import com.luhu.computility.module.apihub.controller.app.apicalllog.vo.AppApiCallLogPageReqVO;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
import com.luhu.computility.module.apihub.controller.admin.apicalllog.vo.*; import com.luhu.computility.module.apihub.controller.admin.apicalllog.vo.*;
import com.luhu.computility.module.apihub.dal.dataobject.apicalllog.ApiCallLogDO; import com.luhu.computility.module.apihub.dal.dataobject.apicalllog.ApiCallLogDO;
import com.luhu.computility.framework.common.pojo.PageResult; import com.luhu.computility.framework.common.pojo.PageResult;
import com.luhu.computility.framework.common.pojo.PageParam;
import com.luhu.computility.framework.common.util.object.BeanUtils; import com.luhu.computility.framework.common.util.object.BeanUtils;
import com.luhu.computility.module.apihub.dal.mysql.apicalllog.ApiCallLogMapper; import com.luhu.computility.module.apihub.dal.mysql.apicalllog.ApiCallLogMapper;
import static com.luhu.computility.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.luhu.computility.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.luhu.computility.framework.common.util.collection.CollectionUtils.convertList; import static com.luhu.computility.framework.common.util.collection.CollectionUtils.convertList;
import static com.luhu.computility.framework.common.util.collection.CollectionUtils.diffList;
import static com.luhu.computility.module.apihub.enums.ErrorCodeConstants.*; import static com.luhu.computility.module.apihub.enums.ErrorCodeConstants.*;
/** /**
......
package com.luhu.computility.module.apihub.service.apicategory; package com.luhu.computility.module.apihub.service.apicategory;
import cn.hutool.core.collection.CollUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
import com.luhu.computility.module.apihub.controller.admin.apicategory.vo.*; import com.luhu.computility.module.apihub.controller.admin.apicategory.vo.*;
import com.luhu.computility.module.apihub.dal.dataobject.apicategory.ApiCategoryDO; import com.luhu.computility.module.apihub.dal.dataobject.apicategory.ApiCategoryDO;
import com.luhu.computility.framework.common.pojo.PageResult; import com.luhu.computility.framework.common.pojo.PageResult;
import com.luhu.computility.framework.common.pojo.PageParam;
import com.luhu.computility.framework.common.util.object.BeanUtils; import com.luhu.computility.framework.common.util.object.BeanUtils;
import com.luhu.computility.module.apihub.dal.mysql.apicategory.ApiCategoryMapper; import com.luhu.computility.module.apihub.dal.mysql.apicategory.ApiCategoryMapper;
import static com.luhu.computility.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.luhu.computility.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.luhu.computility.framework.common.util.collection.CollectionUtils.convertList; import static com.luhu.computility.framework.common.util.collection.CollectionUtils.convertList;
import static com.luhu.computility.framework.common.util.collection.CollectionUtils.diffList;
import static com.luhu.computility.module.apihub.enums.ErrorCodeConstants.*; import static com.luhu.computility.module.apihub.enums.ErrorCodeConstants.*;
/** /**
......
package com.luhu.computility.module.apihub.service.apiendpoint; package com.luhu.computility.module.apihub.service.apiendpoint;
import cn.hutool.core.collection.CollUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
import com.luhu.computility.module.apihub.controller.admin.apiendpoint.vo.*; import com.luhu.computility.module.apihub.controller.admin.apiendpoint.vo.*;
import com.luhu.computility.module.apihub.dal.dataobject.apiendpoint.ApiEndpointDO; import com.luhu.computility.module.apihub.dal.dataobject.apiendpoint.ApiEndpointDO;
import com.luhu.computility.framework.common.pojo.PageResult; import com.luhu.computility.framework.common.pojo.PageResult;
import com.luhu.computility.framework.common.pojo.PageParam;
import com.luhu.computility.framework.common.util.object.BeanUtils; import com.luhu.computility.framework.common.util.object.BeanUtils;
import com.luhu.computility.module.apihub.dal.mysql.apiendpoint.ApiEndpointMapper; import com.luhu.computility.module.apihub.dal.mysql.apiendpoint.ApiEndpointMapper;
import static com.luhu.computility.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.luhu.computility.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.luhu.computility.framework.common.util.collection.CollectionUtils.convertList; import static com.luhu.computility.framework.common.util.collection.CollectionUtils.convertList;
import static com.luhu.computility.framework.common.util.collection.CollectionUtils.diffList;
import static com.luhu.computility.module.apihub.enums.ErrorCodeConstants.*; import static com.luhu.computility.module.apihub.enums.ErrorCodeConstants.*;
/** /**
......
package com.luhu.computility.module.apihub.service.apiendpointapplicationrel; package com.luhu.computility.module.apihub.service.apiendpointapplicationrel;
import cn.hutool.core.collection.CollUtil;
import com.luhu.computility.module.biz.controller.admin.industryapplication.vo.IndustryApplicationRespVO; import com.luhu.computility.module.biz.controller.admin.industryapplication.vo.IndustryApplicationRespVO;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
import com.luhu.computility.module.apihub.controller.admin.apiendpointapplicationrel.vo.*; import com.luhu.computility.module.apihub.controller.admin.apiendpointapplicationrel.vo.*;
import com.luhu.computility.module.apihub.dal.dataobject.apiendpointapplicationrel.ApiEndpointApplicationRelDO; import com.luhu.computility.module.apihub.dal.dataobject.apiendpointapplicationrel.ApiEndpointApplicationRelDO;
import com.luhu.computility.framework.common.pojo.PageResult; import com.luhu.computility.framework.common.pojo.PageResult;
import com.luhu.computility.framework.common.pojo.PageParam;
import com.luhu.computility.framework.common.util.object.BeanUtils; import com.luhu.computility.framework.common.util.object.BeanUtils;
import com.luhu.computility.module.apihub.dal.mysql.apiendpointapplicationrel.ApiEndpointApplicationRelMapper; import com.luhu.computility.module.apihub.dal.mysql.apiendpointapplicationrel.ApiEndpointApplicationRelMapper;
import static com.luhu.computility.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.luhu.computility.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.luhu.computility.framework.common.util.collection.CollectionUtils.convertList; import static com.luhu.computility.framework.common.util.collection.CollectionUtils.convertList;
import static com.luhu.computility.framework.common.util.collection.CollectionUtils.diffList;
import static com.luhu.computility.module.apihub.enums.ErrorCodeConstants.*; import static com.luhu.computility.module.apihub.enums.ErrorCodeConstants.*;
/** /**
......
package com.luhu.computility.module.apihub.service.apiendpointrel; package com.luhu.computility.module.apihub.service.apiendpointrel;
import cn.hutool.core.collection.CollUtil;
import com.luhu.computility.module.apihub.controller.admin.apiendpoint.vo.ApiEndpointRespVO; import com.luhu.computility.module.apihub.controller.admin.apiendpoint.vo.ApiEndpointRespVO;
import com.luhu.computility.module.apihub.dal.dataobject.apiendpoint.ApiEndpointDO;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
import com.luhu.computility.module.apihub.controller.admin.apiendpointrel.vo.*; import com.luhu.computility.module.apihub.controller.admin.apiendpointrel.vo.*;
import com.luhu.computility.module.apihub.dal.dataobject.apiendpointrel.ApiEndpointRelDO; import com.luhu.computility.module.apihub.dal.dataobject.apiendpointrel.ApiEndpointRelDO;
import com.luhu.computility.framework.common.pojo.PageResult; import com.luhu.computility.framework.common.pojo.PageResult;
import com.luhu.computility.framework.common.pojo.PageParam;
import com.luhu.computility.framework.common.util.object.BeanUtils; import com.luhu.computility.framework.common.util.object.BeanUtils;
import com.luhu.computility.module.apihub.dal.mysql.apiendpointrel.ApiEndpointRelMapper; import com.luhu.computility.module.apihub.dal.mysql.apiendpointrel.ApiEndpointRelMapper;
import static com.luhu.computility.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.luhu.computility.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.luhu.computility.framework.common.util.collection.CollectionUtils.convertList; import static com.luhu.computility.framework.common.util.collection.CollectionUtils.convertList;
import static com.luhu.computility.framework.common.util.collection.CollectionUtils.diffList;
import static com.luhu.computility.module.apihub.enums.ErrorCodeConstants.*; import static com.luhu.computility.module.apihub.enums.ErrorCodeConstants.*;
/** /**
......
package com.luhu.computility.module.apihub.service.apiorder; package com.luhu.computility.module.apihub.service.apiorder;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil;
import com.luhu.computility.framework.common.enums.UserTypeEnum;
import com.luhu.computility.framework.common.util.json.JsonUtils; import com.luhu.computility.framework.common.util.json.JsonUtils;
import com.luhu.computility.framework.common.util.string.StrUtils; import com.luhu.computility.framework.common.util.string.StrUtils;
import com.luhu.computility.module.apihub.config.ApiOrderProperties; import com.luhu.computility.module.apihub.config.ApiOrderProperties;
...@@ -17,7 +14,6 @@ import com.luhu.computility.module.apihub.enums.ApiOrderRefundStatus; ...@@ -17,7 +14,6 @@ import com.luhu.computility.module.apihub.enums.ApiOrderRefundStatus;
import com.luhu.computility.module.apihub.enums.ApiOrderStatus; import com.luhu.computility.module.apihub.enums.ApiOrderStatus;
import com.luhu.computility.module.apihub.service.api.ApiService; import com.luhu.computility.module.apihub.service.api.ApiService;
import com.luhu.computility.module.apihub.service.apipackage.ApiPackageService; import com.luhu.computility.module.apihub.service.apipackage.ApiPackageService;
import com.luhu.computility.module.member.api.address.dto.MemberAddressRespDTO;
import com.luhu.computility.module.pay.api.order.PayOrderApi; import com.luhu.computility.module.pay.api.order.PayOrderApi;
import com.luhu.computility.module.pay.api.order.dto.PayOrderCreateReqDTO; import com.luhu.computility.module.pay.api.order.dto.PayOrderCreateReqDTO;
import com.luhu.computility.module.pay.api.order.dto.PayOrderRespDTO; import com.luhu.computility.module.pay.api.order.dto.PayOrderRespDTO;
...@@ -44,7 +40,6 @@ import static com.luhu.computility.framework.common.util.collection.CollectionUt ...@@ -44,7 +40,6 @@ import static com.luhu.computility.framework.common.util.collection.CollectionUt
import static com.luhu.computility.framework.common.util.collection.CollectionUtils.getSumValue; import static com.luhu.computility.framework.common.util.collection.CollectionUtils.getSumValue;
import static com.luhu.computility.framework.common.util.date.LocalDateTimeUtils.addTime; import static com.luhu.computility.framework.common.util.date.LocalDateTimeUtils.addTime;
import static com.luhu.computility.framework.common.util.servlet.ServletUtils.getClientIP; import static com.luhu.computility.framework.common.util.servlet.ServletUtils.getClientIP;
import static com.luhu.computility.framework.web.core.util.WebFrameworkUtils.getTerminal;
import static com.luhu.computility.module.apihub.enums.ErrorCodeConstants.*; import static com.luhu.computility.module.apihub.enums.ErrorCodeConstants.*;
/** /**
......
package com.luhu.computility.module.apihub.service.apipackage; package com.luhu.computility.module.apihub.service.apipackage;
import cn.hutool.core.collection.CollUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
import com.luhu.computility.module.apihub.controller.admin.apipackage.vo.*; import com.luhu.computility.module.apihub.controller.admin.apipackage.vo.*;
import com.luhu.computility.module.apihub.dal.dataobject.apipackage.ApiPackageDO; import com.luhu.computility.module.apihub.dal.dataobject.apipackage.ApiPackageDO;
import com.luhu.computility.framework.common.pojo.PageResult; import com.luhu.computility.framework.common.pojo.PageResult;
import com.luhu.computility.framework.common.pojo.PageParam;
import com.luhu.computility.framework.common.util.object.BeanUtils; import com.luhu.computility.framework.common.util.object.BeanUtils;
import com.luhu.computility.module.apihub.dal.mysql.apipackage.ApiPackageMapper; import com.luhu.computility.module.apihub.dal.mysql.apipackage.ApiPackageMapper;
import static com.luhu.computility.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.luhu.computility.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.luhu.computility.framework.common.util.collection.CollectionUtils.convertList; import static com.luhu.computility.framework.common.util.collection.CollectionUtils.convertList;
import static com.luhu.computility.framework.common.util.collection.CollectionUtils.diffList;
import static com.luhu.computility.module.apihub.enums.ErrorCodeConstants.*; import static com.luhu.computility.module.apihub.enums.ErrorCodeConstants.*;
/** /**
......
package com.luhu.computility.module.apihub.service.appcredential; package com.luhu.computility.module.apihub.service.appcredential;
import cn.hutool.core.collection.CollUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
import com.luhu.computility.module.apihub.controller.admin.appcredential.vo.*; import com.luhu.computility.module.apihub.controller.admin.appcredential.vo.*;
import com.luhu.computility.module.apihub.dal.dataobject.appcredential.AppCredentialDO; import com.luhu.computility.module.apihub.dal.dataobject.appcredential.AppCredentialDO;
import com.luhu.computility.framework.common.pojo.PageResult; import com.luhu.computility.framework.common.pojo.PageResult;
import com.luhu.computility.framework.common.pojo.PageParam;
import com.luhu.computility.framework.common.util.object.BeanUtils; import com.luhu.computility.framework.common.util.object.BeanUtils;
import com.luhu.computility.module.apihub.dal.mysql.appcredential.AppCredentialMapper; import com.luhu.computility.module.apihub.dal.mysql.appcredential.AppCredentialMapper;
import static com.luhu.computility.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.luhu.computility.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.luhu.computility.framework.common.util.collection.CollectionUtils.convertList; import static com.luhu.computility.framework.common.util.collection.CollectionUtils.convertList;
import static com.luhu.computility.framework.common.util.collection.CollectionUtils.diffList;
import static com.luhu.computility.module.apihub.enums.ErrorCodeConstants.*; import static com.luhu.computility.module.apihub.enums.ErrorCodeConstants.*;
/** /**
......
...@@ -2,6 +2,8 @@ package com.luhu.computility.module.apihub.service.userapiusage; ...@@ -2,6 +2,8 @@ package com.luhu.computility.module.apihub.service.userapiusage;
import java.util.*; import java.util.*;
import javax.validation.*; import javax.validation.*;
import com.luhu.computility.module.apihub.api.userapiusage.dto.JoinUserApiUsageDTO;
import com.luhu.computility.module.apihub.controller.admin.userapiusage.vo.*; import com.luhu.computility.module.apihub.controller.admin.userapiusage.vo.*;
import com.luhu.computility.module.apihub.controller.app.userapiusage.vo.AppUserApiUsageRespVO; import com.luhu.computility.module.apihub.controller.app.userapiusage.vo.AppUserApiUsageRespVO;
import com.luhu.computility.module.apihub.dal.dataobject.userapiusage.UserApiUsageDO; import com.luhu.computility.module.apihub.dal.dataobject.userapiusage.UserApiUsageDO;
...@@ -70,7 +72,7 @@ public interface UserApiUsageService { ...@@ -70,7 +72,7 @@ public interface UserApiUsageService {
PageResult<AppUserApiUsageRespVO> getAppUserApiUsagePage(UserApiUsagePageReqVO pageReqVO); PageResult<AppUserApiUsageRespVO> getAppUserApiUsagePage(UserApiUsagePageReqVO pageReqVO);
List<JoinUserApiUsageResult> selectJoinUserApiUsageResult(Long userId, Long apiIdEndpoint);
void asyncUpdateUsage(Long id, Integer used);
} }
\ No newline at end of file
package com.luhu.computility.module.apihub.service.userapiusage; package com.luhu.computility.module.apihub.service.userapiusage;
import cn.hutool.core.collection.CollUtil;
import com.luhu.computility.module.apihub.controller.app.userapiusage.vo.AppUserApiUsageRespVO; import com.luhu.computility.module.apihub.controller.app.userapiusage.vo.AppUserApiUsageRespVO;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
import com.luhu.computility.module.apihub.controller.admin.userapiusage.vo.*; import com.luhu.computility.module.apihub.controller.admin.userapiusage.vo.*;
import com.luhu.computility.module.apihub.dal.dataobject.userapiusage.UserApiUsageDO; import com.luhu.computility.module.apihub.dal.dataobject.userapiusage.UserApiUsageDO;
import com.luhu.computility.framework.common.pojo.PageResult; import com.luhu.computility.framework.common.pojo.PageResult;
import com.luhu.computility.framework.common.pojo.PageParam;
import com.luhu.computility.framework.common.util.object.BeanUtils; import com.luhu.computility.framework.common.util.object.BeanUtils;
import com.luhu.computility.module.apihub.dal.mysql.userapiusage.UserApiUsageMapper; import com.luhu.computility.module.apihub.dal.mysql.userapiusage.UserApiUsageMapper;
import static com.luhu.computility.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.luhu.computility.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.luhu.computility.framework.common.util.collection.CollectionUtils.convertList; import static com.luhu.computility.framework.common.util.collection.CollectionUtils.convertList;
import static com.luhu.computility.framework.common.util.collection.CollectionUtils.diffList;
import static com.luhu.computility.module.apihub.enums.ErrorCodeConstants.*; import static com.luhu.computility.module.apihub.enums.ErrorCodeConstants.*;
/** /**
...@@ -89,21 +84,4 @@ public class UserApiUsageServiceImpl implements UserApiUsageService { ...@@ -89,21 +84,4 @@ public class UserApiUsageServiceImpl implements UserApiUsageService {
return userApiUsageMapper.selectAppPage(pageReqVO); return userApiUsageMapper.selectAppPage(pageReqVO);
} }
@Override
public List<JoinUserApiUsageResult> selectJoinUserApiUsageResult(Long userId, Long apiIdEndpoint) {
return userApiUsageMapper.selectJoinUserApiUsageResult(userId, apiIdEndpoint);
}
@Override
@Async
public void asyncUpdateUsage(Long id, Integer used) {
// 校验存在
validateUserApiUsageExists(id);
UserApiUsageDO userApiUsage = getUserApiUsage(id);
userApiUsage.setUsedTimes(userApiUsage.getUsedTimes() - used);
userApiUsageMapper.updateById(userApiUsage);
}
} }
\ No newline at end of file
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.luhu</groupId>
<artifactId>computility-module-biz</artifactId>
<version>2.6.0-jdk8-SNAPSHOT</version>
</parent>
<artifactId>computility-module-biz-api</artifactId>
<packaging>jar</packaging>
<name>computility-module-biz-api</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
package com.luhu.computility.module.biz.api.industryapplication;
import com.luhu.computility.framework.apilog.core.annotation.ApiAccessLog;
import com.luhu.computility.framework.common.pojo.CommonResult;
import com.luhu.computility.framework.common.pojo.PageParam;
import com.luhu.computility.framework.common.pojo.PageResult;
import com.luhu.computility.framework.common.util.object.BeanUtils;
import com.luhu.computility.framework.excel.core.util.ExcelUtils;
import com.luhu.computility.module.biz.api.industryapplication.dto.IndustryApplicationPageReqVO;
import com.luhu.computility.module.biz.api.industryapplication.dto.IndustryApplicationRespDTO;
import com.luhu.computility.module.biz.api.industryapplication.dto.IndustryApplicationSaveReqVO;
import com.luhu.computility.module.biz.dal.dataobject.industryapplication.IndustryApplicationDO;
import com.luhu.computility.module.biz.service.industryapplication.IndustryApplicationService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.List;
import static com.luhu.computility.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import static com.luhu.computility.framework.common.pojo.CommonResult.success;
@Tag(name = "管理后台 - 行业应用")
@RestController
@RequestMapping("/biz/industry-application")
@Validated
public class IndustryApplicationController {
@Resource
private IndustryApplicationService industryApplicationService;
@PostMapping("/create")
@Operation(summary = "创建行业应用")
@PreAuthorize("@ss.hasPermission('biz:industry-application:create')")
public CommonResult<Long> createIndustryApplication(@Valid @RequestBody IndustryApplicationSaveReqVO createReqVO) {
return success(industryApplicationService.createIndustryApplication(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新行业应用")
@PreAuthorize("@ss.hasPermission('biz:industry-application:update')")
public CommonResult<Boolean> updateIndustryApplication(@Valid @RequestBody IndustryApplicationSaveReqVO updateReqVO) {
industryApplicationService.updateIndustryApplication(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除行业应用")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('biz:industry-application:delete')")
public CommonResult<Boolean> deleteIndustryApplication(@RequestParam("id") Long id) {
industryApplicationService.deleteIndustryApplication(id);
return success(true);
}
@DeleteMapping("/delete-list")
@Parameter(name = "ids", description = "编号", required = true)
@Operation(summary = "批量删除行业应用")
@PreAuthorize("@ss.hasPermission('biz:industry-application:delete')")
public CommonResult<Boolean> deleteIndustryApplicationList(@RequestParam("ids") List<Long> ids) {
industryApplicationService.deleteIndustryApplicationListByIds(ids);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得行业应用")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('biz:industry-application:query')")
public CommonResult<IndustryApplicationRespDTO> getIndustryApplication(@RequestParam("id") Long id) {
IndustryApplicationDO industryApplication = industryApplicationService.getIndustryApplication(id);
IndustryApplicationRespDTO respVO = BeanUtils.toBean(industryApplication, IndustryApplicationRespDTO.class);
return success(respVO);
}
@GetMapping("/page")
@Operation(summary = "获得行业应用分页")
@PreAuthorize("@ss.hasPermission('biz:industry-application:query')")
public CommonResult<PageResult<IndustryApplicationRespDTO>> getIndustryApplicationPage(@Valid IndustryApplicationPageReqVO pageReqVO) {
PageResult<IndustryApplicationDO> pageResult = industryApplicationService.getIndustryApplicationPage(pageReqVO);
PageResult<IndustryApplicationRespDTO> respResult = BeanUtils.toBean(pageResult, IndustryApplicationRespDTO.class);
return success(respResult);
}
@GetMapping("/list")
@Operation(summary = "获得行业应用分页")
@PreAuthorize("@ss.hasPermission('biz:industry-application:query')")
public CommonResult<List<IndustryApplicationRespDTO>> getIndustryApplicationList() {
List<IndustryApplicationDO> list = industryApplicationService.getAllIndustryApplication(); // 新增Service方法
List<IndustryApplicationRespDTO> result = BeanUtils.toBean(list, IndustryApplicationRespDTO.class);
return success(result);
}
@GetMapping("/export-excel")
@Operation(summary = "导出行业应用 Excel")
@PreAuthorize("@ss.hasPermission('biz:industry-application:export')")
@ApiAccessLog(operateType = EXPORT)
public void exportIndustryApplicationExcel(@Valid IndustryApplicationPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<IndustryApplicationDO> list = industryApplicationService.getIndustryApplicationPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "行业应用.xls", "数据", IndustryApplicationRespDTO.class,
BeanUtils.toBean(list, IndustryApplicationRespDTO.class));
}
}
\ No newline at end of file
package com.luhu.computility.module.biz.api.industryapplication.dto;
import com.luhu.computility.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.luhu.computility.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 行业应用分页 Request VO")
@Data
public class IndustryApplicationPageReqVO extends PageParam {
@Schema(description = "标题")
private String title;
@Schema(description = "状态:0-已隐藏,1-已显示", example = "1")
private Integer showStatus;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "首页展示图片")
private String homeImage;
@Schema(description = "组件类型:0-全部", example = "1")
private Integer type;
@Schema(description = "排序值")
private Integer orderNum;
}
\ No newline at end of file
package com.luhu.computility.module.biz.api.industryapplication.dto;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 行业应用 Response VO")
@Data
@ExcelIgnoreUnannotated
public class IndustryApplicationRespDTO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
private Long id;
@Schema(description = "展示图地址")
@ExcelProperty("展示图地址")
private String image;
@Schema(description = "内容", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("内容")
private String information;
@Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("标题")
private String title;
@Schema(description = "链接地址", example = "https://www.iocoder.cn")
@ExcelProperty("链接地址")
private String url;
@Schema(description = "描述内容", example = "随便")
@ExcelProperty("描述内容")
private String description;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "首页展示图片")
@ExcelProperty("首页展示图片")
private String homeImage;
@Schema(description = "组件类型:0-全部", example = "1")
@ExcelProperty("组件类型:0-全部")
private Integer type;
@Schema(description = "排序值")
@ExcelProperty("排序值")
private Integer orderNum;
@Schema(description = "状态:0-已隐藏,1-已显示", example = "1")
private Integer showStatus;
}
\ No newline at end of file
package com.luhu.computility.module.biz.api.industryapplication.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@Schema(description = "管理后台 - 行业应用新增/修改 Request VO")
@Data
public class IndustryApplicationSaveReqVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "21619")
private Long id;
@Schema(description = "展示图地址")
private String image;
@Schema(description = "内容", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "内容不能为空")
private String information;
@Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "标题不能为空")
private String title;
@Schema(description = "链接地址", example = "https://www.iocoder.cn")
private String url;
@Schema(description = "描述内容", example = "随便")
private String description;
@Schema(description = "状态:0-已隐藏,1-已显示", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "状态:0-已隐藏,1-已显示不能为空")
private Integer showStatus;
@Schema(description = "备注", example = "你猜")
private String remark;
@Schema(description = "首页展示图片")
private String homeImage;
@Schema(description = "组件类型:0-全部", example = "1")
private Integer type;
@Schema(description = "排序值")
private Integer orderNum;
}
\ No newline at end of file
package com.luhu;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
/**
* Unit test for simple App.
*/
public class AppTest
extends TestCase
{
/**
* Create the test case
*
* @param testName name of the test case
*/
public AppTest( String testName )
{
super( testName );
}
/**
* @return the suite of tests being tested
*/
public static Test suite()
{
return new TestSuite( AppTest.class );
}
/**
* Rigourous Test :-)
*/
public void testApp()
{
assertTrue( true );
}
}
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.luhu</groupId>
<artifactId>computility-module-biz</artifactId>
<version>2.6.0-jdk8-SNAPSHOT</version>
</parent>
<artifactId>computility-module-biz-biz</artifactId>
<packaging>jar</packaging>
<name>computility-module-biz-biz</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-module-biz-api</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-module-trade</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-module-product</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-module-system</artifactId>
<version>${revision}</version>
</dependency>
<!-- 业务组件 -->
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-spring-boot-starter-biz-data-permission</artifactId>
</dependency>
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-spring-boot-starter-biz-tenant</artifactId>
</dependency>
<!-- Web 相关 -->
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-spring-boot-starter-security</artifactId>
</dependency>
<!-- DB 相关 -->
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-spring-boot-starter-mybatis</artifactId>
</dependency>
<!-- Test 测试相关 -->
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-spring-boot-starter-test</artifactId>
</dependency>
<!-- 工具类相关 -->
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-spring-boot-starter-excel</artifactId>
</dependency>
</dependencies>
</project>
package com.luhu.computility.module.biz.enums;
import com.luhu.computility.framework.common.exception.ErrorCode;
/**
* AI 错误码枚举类
* <p>
* ai 系统,使用 1-040-000-000 段
*/
public interface ErrorCodeConstants {
// ========== AI 工作流 1-040-011-000 ==========
ErrorCode INDUSTRY_APPLICATION_NOT_EXISTS = new ErrorCode(1_040_011_000, "行业应用不存在");
ErrorCode BANNER_INFO_NOT_EXISTS = new ErrorCode(1_040_012_000, "首页banner不存在");
ErrorCode COMPUTILITY_INFORMATION_NOT_EXISTS = new ErrorCode(1_040_013_000, "算力资源不存在");
ErrorCode INFORMATION_NOT_EXISTS = new ErrorCode(1_040_014_000, "活动资讯管理不存在");
ErrorCode ORDER_NOT_EXISTS = new ErrorCode(1_040_015_000, "订单管理-需求单管理不存在");
ErrorCode PARTNER_NOT_EXISTS = new ErrorCode(1_040_016_000, "合作伙伴管理不存在");
ErrorCode SOLUTION_NOT_EXISTS = new ErrorCode(1_040_017_000, "解决方案不存在");
ErrorCode GET_SOLUTION_ERROR = new ErrorCode(1_040_017_001, "无法获取详情,请重试!");
}
package com.luhu.computility.module.biz.enums;
/**
* 客户企业审核状态
*/
public enum ShowStatus {
// 请根据实际情况改成对应的值和备注
NO(0, "隐藏"),
YES(1, "展示");
private int value;
private String remark;
private ShowStatus(int value, String remark) {
this.value = value;
this.remark = remark;
}
public int getValue() {
return value;
}
public String getRemark() {
return remark;
}
public static ShowStatus getByValue(int value) {
for (ShowStatus o : ShowStatus.values()) {
if (o.getValue() == value) {
return o;
}
}
return null;
}
}
...@@ -20,6 +20,7 @@ import com.luhu.computility.module.trade.controller.admin.order.vo.TradeOrderPag ...@@ -20,6 +20,7 @@ import com.luhu.computility.module.trade.controller.admin.order.vo.TradeOrderPag
import com.luhu.computility.module.trade.dal.dataobject.order.TradeOrderDO; import com.luhu.computility.module.trade.dal.dataobject.order.TradeOrderDO;
import com.luhu.computility.module.trade.enums.order.TradeOrderStatusEnum; import com.luhu.computility.module.trade.enums.order.TradeOrderStatusEnum;
import com.luhu.computility.module.trade.service.order.TradeOrderQueryService; import com.luhu.computility.module.trade.service.order.TradeOrderQueryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
......
...@@ -7,9 +7,13 @@ ...@@ -7,9 +7,13 @@
<groupId>com.luhu</groupId> <groupId>com.luhu</groupId>
<version>${revision}</version> <version>${revision}</version>
</parent> </parent>
<modules>
<module>computility-module-biz-api</module>
<module>computility-module-biz-biz</module>
</modules>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>computility-module-biz</artifactId> <artifactId>computility-module-biz</artifactId>
<packaging>jar</packaging> <packaging>pom</packaging>
<name>${project.artifactId}</name> <name>${project.artifactId}</name>
<description> <description>
...@@ -18,68 +22,6 @@ ...@@ -18,68 +22,6 @@
<dependencies> <dependencies>
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-module-apihub-api</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-module-trade</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-module-product</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-module-system</artifactId>
<version>${revision}</version>
</dependency>
<!-- 业务组件 -->
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-spring-boot-starter-biz-data-permission</artifactId>
</dependency>
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-spring-boot-starter-biz-tenant</artifactId>
</dependency>
<!-- Web 相关 -->
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-spring-boot-starter-security</artifactId>
</dependency>
<!-- DB 相关 -->
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-spring-boot-starter-mybatis</artifactId>
</dependency>
<!-- Test 测试相关 -->
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-spring-boot-starter-test</artifactId>
</dependency>
<!-- 工具类相关 -->
<dependency>
<groupId>com.luhu</groupId>
<artifactId>computility-spring-boot-starter-excel</artifactId>
</dependency>
</dependencies> </dependencies>
</project> </project>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment