From 888e73e6f3fd7fd400de9c4fb48c4ef1ee7a1bb8 Mon Sep 17 00:00:00 2001 From: diaoruifeng <18351522362@163.com> Date: Fri, 25 Mar 2022 15:00:43 +0800 Subject: [PATCH] =?UTF-8?q?diamante=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/pms/ocp/common/aspectj/WebLog.java | 17 ++ .../pms/ocp/common/aspectj/WebLogAspect.java | 178 ++++++++++++++++ .../pms/ocp/common/config/CreateGroups.java | 11 + .../pms/ocp/common/config/UpdateGroups.java | 11 + .../pms/ocp/common/utils/GUIDGenerator.java | 25 +++ .../ocp/common/utils/StringBusinessUtil.java | 80 +++++++ .../pms/ocp/common/utils/UUIDGenerator.java | 74 +++++++ .../common/utils/UUIDHexLengthGenerator.java | 78 +++++++ .../ocp/controller/ApiProvinceController.java | 35 +++ .../ocp/controller/AppRegisterController.java | 64 ++++++ .../com/pms/ocp/model/dto/AppRegisterDTO.java | 201 ++++++++++++++++++ .../java/com/pms/ocp/model/dto/ImgDTO.java | 41 ++++ .../com/pms/ocp/model/dto/QueryAppDTO.java | 76 +++++++ .../com/pms/ocp/model/dto/TreeListDto.java | 32 +++ .../com/pms/ocp/model/entity/OcpApiParam.java | 132 ++++++++++++ .../pms/ocp/model/entity/OcpTenantIocn.java | 93 ++++++++ .../com/pms/ocp/model/vo/ApiProvinceVo.java | 55 +++++ .../com/pms/ocp/model/vo/QueryAppInfoVO.java | 32 +++ .../pms/ocp/service/ApiProvinceService.java | 12 ++ .../pms/ocp/service/AppRegisterService.java | 39 ++++ .../service/impl/ApiProvinceServiceImpl.java | 44 ++++ .../service/impl/AppRegisterServiceImpl.java | 121 +++++++++++ .../resources/mapper/AppRegisterMapper.xml | 36 ++++ 23 files changed, 1487 insertions(+) create mode 100644 src/main/java/com/pms/ocp/common/aspectj/WebLog.java create mode 100644 src/main/java/com/pms/ocp/common/aspectj/WebLogAspect.java create mode 100644 src/main/java/com/pms/ocp/common/config/CreateGroups.java create mode 100644 src/main/java/com/pms/ocp/common/config/UpdateGroups.java create mode 100644 src/main/java/com/pms/ocp/common/utils/GUIDGenerator.java create mode 100644 src/main/java/com/pms/ocp/common/utils/StringBusinessUtil.java create mode 100644 src/main/java/com/pms/ocp/common/utils/UUIDGenerator.java create mode 100644 src/main/java/com/pms/ocp/common/utils/UUIDHexLengthGenerator.java create mode 100644 src/main/java/com/pms/ocp/controller/ApiProvinceController.java create mode 100644 src/main/java/com/pms/ocp/controller/AppRegisterController.java create mode 100644 src/main/java/com/pms/ocp/model/dto/AppRegisterDTO.java create mode 100644 src/main/java/com/pms/ocp/model/dto/ImgDTO.java create mode 100644 src/main/java/com/pms/ocp/model/dto/QueryAppDTO.java create mode 100644 src/main/java/com/pms/ocp/model/dto/TreeListDto.java create mode 100644 src/main/java/com/pms/ocp/model/entity/OcpApiParam.java create mode 100644 src/main/java/com/pms/ocp/model/entity/OcpTenantIocn.java create mode 100644 src/main/java/com/pms/ocp/model/vo/ApiProvinceVo.java create mode 100644 src/main/java/com/pms/ocp/model/vo/QueryAppInfoVO.java create mode 100644 src/main/java/com/pms/ocp/service/ApiProvinceService.java create mode 100644 src/main/java/com/pms/ocp/service/AppRegisterService.java create mode 100644 src/main/java/com/pms/ocp/service/impl/ApiProvinceServiceImpl.java create mode 100644 src/main/java/com/pms/ocp/service/impl/AppRegisterServiceImpl.java create mode 100644 src/main/resources/mapper/AppRegisterMapper.xml diff --git a/src/main/java/com/pms/ocp/common/aspectj/WebLog.java b/src/main/java/com/pms/ocp/common/aspectj/WebLog.java new file mode 100644 index 0000000..8a4804b --- /dev/null +++ b/src/main/java/com/pms/ocp/common/aspectj/WebLog.java @@ -0,0 +1,17 @@ +package com.pms.ocp.common.aspectj; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * @author Administrator + */ +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.METHOD}) +@Documented +public @interface WebLog { + String description() default ""; +} diff --git a/src/main/java/com/pms/ocp/common/aspectj/WebLogAspect.java b/src/main/java/com/pms/ocp/common/aspectj/WebLogAspect.java new file mode 100644 index 0000000..6a767d9 --- /dev/null +++ b/src/main/java/com/pms/ocp/common/aspectj/WebLogAspect.java @@ -0,0 +1,178 @@ +package com.pms.ocp.common.aspectj; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.pms.ocp.common.utils.StringBusinessUtil; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.*; +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Component; +import org.springframework.validation.BindingResult; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.lang.reflect.Method; +import java.util.HashMap; +import java.util.Map; + +@Aspect +@Component +@Slf4j +/** + * 根据配置可在不同环境中生效 + * @Profile({"dev", "test"}) + */ +//@Profile({"dev", "test"}) +public class WebLogAspect { + + private static final String LINE_SEPARATOR = System.lineSeparator(); + + @Pointcut("@annotation(com.pms.ocp.common.aspectj.WebLog)") + public void webLog() { + } + + /** + * 环绕 + * + * @param proceedingJoinPoint + * @return + * @throws Throwable + */ + @Around("webLog()") + public Object doAround(ProceedingJoinPoint proceedingJoinPoint) throws Throwable { + long startTime = System.currentTimeMillis(); + Object result = proceedingJoinPoint.proceed(); + // 打印出参 + log.info("Response Args : {}", JSONObject.toJSONString(result)); + // 打印耗时 + log.info("Time-Consuming : {} ms", System.currentTimeMillis() - startTime); + return result; + } + + /** + * 在切点前切入 + * + * @param joinPoint + * @throws Throwable + */ + @Before("webLog()") + public void doBefore(JoinPoint joinPoint) throws Throwable { + ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); + HttpServletRequest request = attributes.getRequest(); + // 获取 @WebLog 注解的描述信息 + String methodDescription = getAspectLogDescription(joinPoint); + // 处理入参 + Object[] args = joinPoint.getArgs(); + Map map = new HashMap<>(); + for (Object arg : args) { + if (StringBusinessUtil.isNullOrEmpty(arg)) { + continue; + } + if (arg instanceof BindingResult) { + continue; + } + if (arg instanceof HttpSession) { + continue; + } + if (arg instanceof HttpServletRequest) { + continue; + } + if (arg instanceof HttpServletResponse) { + continue; + } + if (arg instanceof MultipartFile) { + MultipartFile file = (MultipartFile) arg; + map.put("file", getFileParam(file)); + } else if (arg instanceof MultipartFile[]) { + MultipartFile[] files = (MultipartFile[]) arg; + Map t = new HashMap<>(); + for (MultipartFile file : files) { + t.put("file", getFileParam(file)); + } + map.put("files", t); + } else { + try { + map.put(arg.getClass().getSimpleName(), arg); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + // 打印请求相关参数 + log.info("============================================ 接口开始执行 =================================================="); + try { + // 打印请求 url + log.info("URL : {}", request.getRequestURL().toString()); + // 打印描述信息 + log.info("Description : {}", methodDescription); + // 打印 Http method + log.info("HTTP Method : {}", request.getMethod()); + // 打印调用 controller 的全路径以及执行方法 + log.info("Class Method : {}.{}", joinPoint.getSignature().getDeclaringTypeName(), joinPoint.getSignature().getName()); + // 打印请求的IP + log.info("IP : {}", request.getRemoteAddr()); + //log.info("Request Args : {}", new Gson().toJson(joinPoint.getArgs())); + // 打印请求的入参 + log.info("Request Args : {}", JSON.toJSONString(map)); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * 处理文件,获取文件基本信息 + * + * @param file + * @return + */ + private Map getFileParam(MultipartFile file) { + Map map = null; + try { + map = new HashMap<>(); + map.put("文件名:", file.getOriginalFilename()); + map.put("文件类型:", file.getContentType()); + map.put("文件大小:", file.getSize()); + } catch (Exception e) { + e.printStackTrace(); + } + return map; + } + + /** + * 在切点后切入 + * + * @throws Throwable + */ + @After("webLog()") + public void doAfter() throws Throwable { + log.info("============================================ 接口执行结束 ===================================================" + LINE_SEPARATOR); + } + + /** + * 获取切面注解的描述 + */ + private String getAspectLogDescription(JoinPoint joinPoint) throws ClassNotFoundException { + String targetName = joinPoint.getTarget().getClass().getName(); + String methodName = joinPoint.getSignature().getName(); + Object[] arguments = joinPoint.getArgs(); + Class targetClass = Class.forName(targetName); + Method[] methods = targetClass.getMethods(); + StringBuilder description = new StringBuilder(""); + for (Method method : methods) { + if (method.getName().equals(methodName)) { + Class[] calzzs = method.getParameterTypes(); + if (calzzs.length == arguments.length) { + description.append(method.getAnnotation(WebLog.class).description()); + break; + } + } + } + return description.toString(); + } +} diff --git a/src/main/java/com/pms/ocp/common/config/CreateGroups.java b/src/main/java/com/pms/ocp/common/config/CreateGroups.java new file mode 100644 index 0000000..24bc1d0 --- /dev/null +++ b/src/main/java/com/pms/ocp/common/config/CreateGroups.java @@ -0,0 +1,11 @@ +package com.pms.ocp.common.config; + +import javax.validation.groups.Default; + +/** + * 新增校验 + * + * @author Administrator + */ +public interface CreateGroups extends Default { +} diff --git a/src/main/java/com/pms/ocp/common/config/UpdateGroups.java b/src/main/java/com/pms/ocp/common/config/UpdateGroups.java new file mode 100644 index 0000000..61c8b69 --- /dev/null +++ b/src/main/java/com/pms/ocp/common/config/UpdateGroups.java @@ -0,0 +1,11 @@ +package com.pms.ocp.common.config; + +import javax.validation.groups.Default; + +/** + * 更新校验 + * + * @author Administrator + */ +public interface UpdateGroups extends Default { +} diff --git a/src/main/java/com/pms/ocp/common/utils/GUIDGenerator.java b/src/main/java/com/pms/ocp/common/utils/GUIDGenerator.java new file mode 100644 index 0000000..b53dc52 --- /dev/null +++ b/src/main/java/com/pms/ocp/common/utils/GUIDGenerator.java @@ -0,0 +1,25 @@ +package com.pms.ocp.common.utils; + +public class GUIDGenerator { + private static final UUIDHexLengthGenerator GENERATOR = new UUIDHexLengthGenerator(); + + public GUIDGenerator() { + } + + private static String generate(int length, boolean toLowerCase) { + setLength(length); + return toLowerCase ? GENERATOR.generate().toString().toLowerCase() : GENERATOR.generate().toString().toUpperCase(); + } + + private static void setLength(int length) { + GENERATOR.setLength(length); + } + + public static String generate32(boolean toLowerCase) { + return generate(32, toLowerCase); + } + + public static String generate42(boolean toLowerCase) { + return generate(42, toLowerCase); + } +} diff --git a/src/main/java/com/pms/ocp/common/utils/StringBusinessUtil.java b/src/main/java/com/pms/ocp/common/utils/StringBusinessUtil.java new file mode 100644 index 0000000..990c67e --- /dev/null +++ b/src/main/java/com/pms/ocp/common/utils/StringBusinessUtil.java @@ -0,0 +1,80 @@ +package com.pms.ocp.common.utils; + +import com.pms.ocp.model.vo.ResponseVO; +import org.springframework.validation.BindingResult; +import org.springframework.validation.ObjectError; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * 工具类 + * + * @author Administrator + */ +public class StringBusinessUtil { + /** + * 判断对象或数组中每一个对象是否为空 + * 判断对象是否为null + * 判断字符串长度是否为0,集合类是否为empty + * + * @param obj + * @return + */ + public static boolean isNullOrEmpty(Object obj) { + + if (obj == null) { + return true; + } + + if (obj instanceof CharSequence) { + return ((CharSequence) obj).length() == 0 || "null".equalsIgnoreCase(obj.toString()); + } + + if (obj instanceof Collection) { + return ((Collection) obj).isEmpty(); + } + + if (obj instanceof Map) { + return ((Map) obj).isEmpty(); + } + + if (obj instanceof Object[]) { + + Object[] object = (Object[]) obj; + if (object.length == 0) { + return true; + } + + boolean empty = true; + for (int i = 0; i < object.length; i++) { + if (!isNullOrEmpty(object[i])) { + empty = false; + break; + } + } + return empty; + } + return false; + } + + /** + * 入参校验 + * + * @param bindingResult + * @return + */ + public static ResponseVO verifyDispose(BindingResult bindingResult) { + StringBuilder stringBuilder = new StringBuilder(); + List allErrors = bindingResult.getAllErrors(); + for (ObjectError e : allErrors) { + String defaultMessage = e.getDefaultMessage(); + if (!StringBusinessUtil.isNullOrEmpty(e.getDefaultMessage())) { + stringBuilder.append(defaultMessage); + stringBuilder.append(","); + } + } + return ResponseVO.error(stringBuilder.toString().substring(0, stringBuilder.toString().length() - 1)); + } +} diff --git a/src/main/java/com/pms/ocp/common/utils/UUIDGenerator.java b/src/main/java/com/pms/ocp/common/utils/UUIDGenerator.java new file mode 100644 index 0000000..9b794bf --- /dev/null +++ b/src/main/java/com/pms/ocp/common/utils/UUIDGenerator.java @@ -0,0 +1,74 @@ +package com.pms.ocp.common.utils; + +import java.io.Serializable; +import java.net.InetAddress; + +public abstract class UUIDGenerator { + private static final int IP; + private String separator = ""; + private static short counter = 0; + private static final int JVM = (int) (System.currentTimeMillis() >>> 8); + + public UUIDGenerator() { + } + + public String getSeparator() { + return this.separator; + } + + public void setSeparator(String separator) { + this.separator = separator; + } + + protected int getJVM() { + return JVM; + } + + protected short getCount() { + Class var1 = UUIDGenerator.class; + synchronized (UUIDGenerator.class) { + if (counter < 0) { + counter = 0; + } + + short var10000 = counter; + counter = (short) (var10000 + 1); + return var10000; + } + } + + protected int getIP() { + return IP; + } + + protected short getHiTime() { + return (short) ((int) (System.currentTimeMillis() >>> 32)); + } + + protected int getLoTime() { + return (int) System.currentTimeMillis(); + } + + private static int toInt(byte[] bytes) { + int result = 0; + + for (int i = 0; i < 4; ++i) { + result = (result << 8) - -128 + bytes[i]; + } + + return result; + } + + public abstract Serializable generate(); + + static { + int ipadd; + try { + ipadd = toInt(InetAddress.getLocalHost().getAddress()); + } catch (Exception var2) { + ipadd = 0; + } + + IP = ipadd; + } +} diff --git a/src/main/java/com/pms/ocp/common/utils/UUIDHexLengthGenerator.java b/src/main/java/com/pms/ocp/common/utils/UUIDHexLengthGenerator.java new file mode 100644 index 0000000..ef8682c --- /dev/null +++ b/src/main/java/com/pms/ocp/common/utils/UUIDHexLengthGenerator.java @@ -0,0 +1,78 @@ +package com.pms.ocp.common.utils; + +import java.io.Serializable; + +public class UUIDHexLengthGenerator extends UUIDGenerator { + private int length = 32; + private static int mycount = 0; + + public UUIDHexLengthGenerator() { + } + + public int getLength() { + return this.length; + } + + public void setLength(int length) { + this.length = length; + } + + protected String format(int intval) { + String formatted = Integer.toHexString(intval); + StringBuffer buf = new StringBuffer("00000000"); + buf.replace(8 - formatted.length(), 8, formatted); + return buf.toString(); + } + + protected String format(short shortval) { + String formatted = Integer.toHexString(shortval); + StringBuffer buf = new StringBuffer("0000"); + buf.replace(4 - formatted.length(), 4, formatted); + return buf.toString(); + } + + protected String random(int offset) { + long curr = System.currentTimeMillis(); + String formatted = Long.toHexString((long) mycount + curr); + StringBuffer buf = new StringBuffer(); + + for (int i = offset; i < 0; ++i) { + buf.append("0"); + } + + if (-offset < 8) { + buf.replace(0, -offset, formatted.substring(formatted.length() + offset)); + } else if (-offset > 16) { + buf.replace(0, 8, formatted.substring(formatted.length() - 8)); + formatted = Long.toHexString(curr + (long) mycount + (long) this.getCount()); + buf.replace(8, 16, formatted.substring(formatted.length() - 8)); + } else { + buf.replace(0, 8, formatted.substring(formatted.length() - 8)); + formatted = Long.toHexString(curr + (long) mycount + (long) this.getCount() + curr / 10000L); + buf.replace(8, -offset, formatted.substring(formatted.length() + offset + 8)); + } + + return buf.toString(); + } + + public Serializable generate() { + ++mycount; + StringBuffer sb = new StringBuffer(36); + sb.append(this.format(this.getIP())).append(this.getSeparator()).append(this.format(this.getJVM())).append(this.getSeparator()).append(this.format(this.getHiTime())).append(this.getSeparator()).append(this.format(this.getLoTime())).append(this.getSeparator()).append(this.format(this.getCount())).toString(); + return this.processLength(sb); + } + + private String processLength(StringBuffer sb) { + if (this.getLength() != 32) { + int offset = 32 - this.getLength(); + if (offset > 0) { + sb.delete(0, offset); + } else { + sb.insert(0, this.getSeparator()); + sb.insert(0, this.random(offset)); + } + } + + return sb.toString(); + } +} diff --git a/src/main/java/com/pms/ocp/controller/ApiProvinceController.java b/src/main/java/com/pms/ocp/controller/ApiProvinceController.java new file mode 100644 index 0000000..ff0c1a7 --- /dev/null +++ b/src/main/java/com/pms/ocp/controller/ApiProvinceController.java @@ -0,0 +1,35 @@ +package com.pms.ocp.controller; + + + +import com.pms.ocp.model.vo.ApiProvinceVo; +import com.pms.ocp.model.vo.OcpApiBaseVo; +import com.pms.ocp.model.vo.ResponseVO; + +import com.pms.ocp.service.ApiProvinceService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@Slf4j +@RequestMapping("/apiProvince") +@RestController +@Api(tags = "服务省侧接口") +public class ApiProvinceController { + @Autowired + private ApiProvinceService apiProvinceService; + + @ApiOperation("服务省侧-添加") + @PostMapping("/create") + public ResponseVO createApiBase(@RequestBody ApiProvinceVo apiProvinceVo) { + boolean isSuccess = apiProvinceService.updateOrCreate(apiProvinceVo); + if(isSuccess){ + return ResponseVO.ok(); + }else { + return ResponseVO.error("添加失败"); + } + } + +} diff --git a/src/main/java/com/pms/ocp/controller/AppRegisterController.java b/src/main/java/com/pms/ocp/controller/AppRegisterController.java new file mode 100644 index 0000000..5826cde --- /dev/null +++ b/src/main/java/com/pms/ocp/controller/AppRegisterController.java @@ -0,0 +1,64 @@ +package com.pms.ocp.controller; + +import com.pms.ocp.common.config.CreateGroups; +import com.pms.ocp.common.utils.StringBusinessUtil; +import com.pms.ocp.model.dto.AppRegisterDTO; +import com.pms.ocp.model.dto.ImgDTO; +import com.pms.ocp.model.dto.QueryAppDTO; +import com.pms.ocp.model.vo.ResponseVO; +import com.pms.ocp.service.AppRegisterService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 应用注册接口 + * + * @author Administrator + */ +@RestController +@RequestMapping("appRegister") +@Api(tags = "应用注册接口") +public class AppRegisterController { + + @Autowired + private AppRegisterService appRegisterService; + + @ApiOperation("新增应用注册") + @PostMapping("addApp") + public ResponseVO addApp(@RequestBody @Validated(CreateGroups.class) AppRegisterDTO appRegisterDTO, + BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + return StringBusinessUtil.verifyDispose(bindingResult); + } + ResponseVO responseVO = appRegisterService.addApp(appRegisterDTO); + return responseVO; + } + + @ApiOperation("查询应用目录") + @PostMapping("getAppInfo") + public ResponseVO getAppInfo(@RequestBody @Validated QueryAppDTO queryAppDTO, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + return StringBusinessUtil.verifyDispose(bindingResult); + } + ResponseVO responseVO = appRegisterService.getAppInfo(queryAppDTO); + return responseVO; + } + + @ApiOperation("应用预览图") + @PostMapping("addAppImgUrl") + public ResponseVO addAppImgUrl(@RequestBody @Validated(CreateGroups.class) List imgDTO, + BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + return StringBusinessUtil.verifyDispose(bindingResult); + } + ResponseVO responseVO = appRegisterService.addAppImgUrl(imgDTO); + return responseVO; + } + +} diff --git a/src/main/java/com/pms/ocp/model/dto/AppRegisterDTO.java b/src/main/java/com/pms/ocp/model/dto/AppRegisterDTO.java new file mode 100644 index 0000000..49ab5c8 --- /dev/null +++ b/src/main/java/com/pms/ocp/model/dto/AppRegisterDTO.java @@ -0,0 +1,201 @@ +package com.pms.ocp.model.dto; + +import com.pms.ocp.common.config.CreateGroups; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.util.Date; + +/** + * 应用注册入参实体 + * + * @author Administrator + */ +@ApiModel(value = "应用注册入参实体") +@Data +public class AppRegisterDTO { + + @ApiModelProperty("用户id") + @NotBlank(message = "用户id不能为空", groups = CreateGroups.class) + private String userId; + + @ApiModelProperty("用户名称") + @NotBlank(message = "用户名称不能为空", groups = CreateGroups.class) + private String userName; + + + @ApiModelProperty("应用图标") + @NotBlank(message = "应用图标不能为空", groups = CreateGroups.class) + private String imgUrl; + + @ApiModelProperty("应用名称") + @NotBlank(message = "应用名称不能为空", groups = CreateGroups.class) + private String appName; + + @ApiModelProperty("应用编码") + @NotBlank(message = "应用编码不能为空", groups = CreateGroups.class) + private String appCode; + + @ApiModelProperty("所属专业——ts:输电,t:变电,dc:直流,ds配电,tc:技术,pl计划,im综合") + @NotBlank(message = "所属专业不能为空", groups = CreateGroups.class) + private String kind; + + +// @ApiModelProperty("所属中心") +// @NotBlank(message = "所属中心不能为空", groups = CreateGroups.class) +// private String center; + + @ApiModelProperty("所属类别——基础管理,分析决策,作业管理,设备管理") + @NotBlank(message = "所属类别不能为空", groups = CreateGroups.class) + private String type; + + @ApiModelProperty("应用描述") + @NotBlank(message = "应用描述不能为空", groups = CreateGroups.class) + private String desc; + + @ApiModelProperty("开发厂商") + @NotBlank(message = "开发厂商不能为空", groups = CreateGroups.class) + private String manufacturer; + + @ApiModelProperty("当前版本") + @NotBlank(message = "当前版本不能为空", groups = CreateGroups.class) + private String version; + + @ApiModelProperty("所属集群") + @NotBlank(message = "所属集群不能为空", groups = CreateGroups.class) + private String group; + + @ApiModelProperty("部署名称") + @NotBlank(message = "部署名称不能为空", groups = CreateGroups.class) + private String deploymentName; + + @ApiModelProperty("注册时间") + private Date time; + + @ApiModelProperty("url") + private String url; + + public String getAppName() { + return appName; + } + + public void setAppName(String appName) { + this.appName = appName; + } + + public String getAppCode() { + return appCode; + } + + public void setAppCode(String appCode) { + this.appCode = appCode; + } + + public String getKind() { + return kind; + } + + public void setKind(String kind) { + this.kind = kind; + } + +// public String getCenter() { +// return center; +// } +// +// public void setCenter(String center) { +// this.center = center; +// } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } + + public String getManufacturer() { + return manufacturer; + } + + public void setManufacturer(String manufacturer) { + this.manufacturer = manufacturer; + } + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public String getGroup() { + return group; + } + + public void setGroup(String group) { + this.group = group; + } + + public String getDeploymentName() { + return deploymentName; + } + + public void setDeploymentName(String deploymentName) { + this.deploymentName = deploymentName; + } + + public Date getTime() { + return time; + } + + public void setTime(Date time) { + this.time = time; + } + + public String getImgUrl() { + return imgUrl; + } + + public void setImgUrl(String imgUrl) { + this.imgUrl = imgUrl; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + +} diff --git a/src/main/java/com/pms/ocp/model/dto/ImgDTO.java b/src/main/java/com/pms/ocp/model/dto/ImgDTO.java new file mode 100644 index 0000000..ecfe68c --- /dev/null +++ b/src/main/java/com/pms/ocp/model/dto/ImgDTO.java @@ -0,0 +1,41 @@ +package com.pms.ocp.model.dto; + +import com.pms.ocp.common.config.CreateGroups; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * 应用预览图入参 + * + * @author Administrator + */ +@Data +public class ImgDTO { + + @ApiModelProperty(value = "应用编码") + @NotBlank(message = "应用编码值不能为空", groups = CreateGroups.class) + private String codeNo; + + @ApiModelProperty(value = "应用预览url") + @NotBlank(message = "应用预览url不能为空", groups = CreateGroups.class) + private String img; + + public String getCodeNo() { + return codeNo; + } + + public void setCodeNo(String codeNo) { + this.codeNo = codeNo; + } + + public String getImg() { + return img; + } + + public void setImg(String img) { + this.img = img; + } +} + diff --git a/src/main/java/com/pms/ocp/model/dto/QueryAppDTO.java b/src/main/java/com/pms/ocp/model/dto/QueryAppDTO.java new file mode 100644 index 0000000..d44fc23 --- /dev/null +++ b/src/main/java/com/pms/ocp/model/dto/QueryAppDTO.java @@ -0,0 +1,76 @@ +package com.pms.ocp.model.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; + +/** + * 应用目录条件查询入参实体 + * + * @author Administrator + */ +@ApiModel(value = "应用目录条件查询入参实体") +public class QueryAppDTO { + + @ApiModelProperty("当前页码") + @NotNull(message = "当前页码不能为空") + private Integer currentPage; + + @ApiModelProperty("页数目") + @NotNull(message = "页数目不能为空") + private Integer pageSize; + + @ApiModelProperty("所属专业") + private String kind; + +// @ApiModelProperty("所属中心") +// private String center; + + @ApiModelProperty("所属类别") + private String type; + + public Integer getCurrentPage() { + return currentPage; + } + + public void setCurrentPage(Integer currentPage) { + this.currentPage = currentPage; + } + + public Integer getPageSize() { + return pageSize; + } + + public void setPageSize(Integer pageSize) { + this.pageSize = pageSize; + } + + public String getKind() { + return kind; + } + + public void setKind(String kind) { + this.kind = kind; + } + +// public String getCenter() { +// return center; +// } +// +// public void setCenter(String center) { +// this.center = center; +// } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + +} diff --git a/src/main/java/com/pms/ocp/model/dto/TreeListDto.java b/src/main/java/com/pms/ocp/model/dto/TreeListDto.java new file mode 100644 index 0000000..72dd741 --- /dev/null +++ b/src/main/java/com/pms/ocp/model/dto/TreeListDto.java @@ -0,0 +1,32 @@ +package com.pms.ocp.model.dto; + +import com.pms.ocp.model.entity.OcpApiGroup; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.sql.Timestamp; +import java.util.List; + +@ApiModel(value = "应用与服务的传输参数") +@Data +public class TreeListDto { + @ApiModelProperty("主键ID") + private String objId; + + @ApiModelProperty("分类编码") + private String apiGroupCode; + + @ApiModelProperty("分类名称") + private String apiGroupName; + + @ApiModelProperty("上级code") + private String apiGroupPcode; + + + @ApiModelProperty("分层树层级 1中台层 2中心层 3 服务组层 4服务层 ") + private long apiGroupLevel; + + @ApiModelProperty("分层树子级 ") + private List apiChildrenGroup; +} diff --git a/src/main/java/com/pms/ocp/model/entity/OcpApiParam.java b/src/main/java/com/pms/ocp/model/entity/OcpApiParam.java new file mode 100644 index 0000000..feccdfa --- /dev/null +++ b/src/main/java/com/pms/ocp/model/entity/OcpApiParam.java @@ -0,0 +1,132 @@ +package com.pms.ocp.model.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.sql.Timestamp; + +@Data +@Accessors(chain = true) +@TableName("ocp_apiParam") +@ApiModel("服务参数表") +public class OcpApiParam implements Serializable { + + + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty("主键ID") + private String objId; + + @ApiModelProperty("服务编码") + private String apiCode; + + @ApiModelProperty("参数版本") + private String apiParamversion; + + @ApiModelProperty("参数分类out出参 in入参 ") + private String apiParamClassification; + + @ApiModelProperty("参数排序") + private Integer apiParamOrderNo; + + @ApiModelProperty("参数名称") + private String apiParamName; + + @ApiModelProperty("参数值") + private String apiParamValue; + + @ApiModelProperty("是否必须0:不必要 1必要") + private Integer isRequire; + + @ApiModelProperty("参数类型") + private String apiParamType; + + @ApiModelProperty("是否删除0:未删除 1已删除") + private Integer isDelete; + + + public String getObjId() { + return objId; + } + + public void setObjId(String objId) { + this.objId = objId; + } + + public String getApiCode() { + return apiCode; + } + + public void setApiCode(String apiCode) { + this.apiCode = apiCode; + } + + public String getApiParamversion() { + return apiParamversion; + } + + public void setApiParamversion(String apiParamversion) { + this.apiParamversion = apiParamversion; + } + + public String getApiParamClassification() { + return apiParamClassification; + } + + public void setApiParamClassification(String apiParamClassification) { + this.apiParamClassification = apiParamClassification; + } + + public Integer getApiParamOrderNo() { + return apiParamOrderNo; + } + + public void setApiParamOrderNo(Integer apiParamOrderNo) { + this.apiParamOrderNo = apiParamOrderNo; + } + + public String getApiParamName() { + return apiParamName; + } + + public void setApiParamName(String apiParamName) { + this.apiParamName = apiParamName; + } + + public String getApiParamValue() { + return apiParamValue; + } + + public void setApiParamValue(String apiParamValue) { + this.apiParamValue = apiParamValue; + } + + public Integer getIsRequire() { + return isRequire; + } + + public void setIsRequire(Integer isRequire) { + this.isRequire = isRequire; + } + + public String getApiParamType() { + return apiParamType; + } + + public void setApiParamType(String apiParamType) { + this.apiParamType = apiParamType; + } + + public Integer getIsDelete() { + return isDelete; + } + + public void setIsDelete(Integer isDelete) { + this.isDelete = isDelete; + } +} diff --git a/src/main/java/com/pms/ocp/model/entity/OcpTenantIocn.java b/src/main/java/com/pms/ocp/model/entity/OcpTenantIocn.java new file mode 100644 index 0000000..f161daf --- /dev/null +++ b/src/main/java/com/pms/ocp/model/entity/OcpTenantIocn.java @@ -0,0 +1,93 @@ +package com.pms.ocp.model.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +import java.io.Serializable; + +import lombok.Data; + +/** + * @author Administrator + */ +@ApiModel(value = "com-pms-ocp-model-entity-OcpTenantIocn") +@Data +@TableName("ocp_tenant_iocn") +public class OcpTenantIocn implements Serializable { + /** + * 主键 + */ + @ApiModelProperty(value = "主键") + @TableId(type = IdType.ASSIGN_ID) + private String objId; + + /** + * 图标种类tenant:应用图标api:服务图标 + */ + @ApiModelProperty(value = "图标种类——tenant:应用图标,api:服务图标") + private String iocnType; + + /** + * 编码值 + */ + @ApiModelProperty(value = "编码值") + private String codeNo; + + /** + * 应用调用的服务数量图标数据 + */ + @ApiModelProperty(value = "应用调用的服务数量图标数据") + private Object iocn; + + /** + * 所属公司可能会根据公司分区 + */ + @ApiModelProperty(value = "所属公司可能会根据公司分区") + private String companyCode; + + private static final long serialVersionUID = 1L; + + public String getObjId() { + return objId; + } + + public void setObjId(String objId) { + this.objId = objId; + } + + public String getIocnType() { + return iocnType; + } + + public void setIocnType(String iocnType) { + this.iocnType = iocnType; + } + + public String getCodeNo() { + return codeNo; + } + + public void setCodeNo(String codeNo) { + this.codeNo = codeNo; + } + + public Object getIocn() { + return iocn; + } + + public void setIocn(Object iocn) { + this.iocn = iocn; + } + + public String getCompanyCode() { + return companyCode; + } + + public void setCompanyCode(String companyCode) { + this.companyCode = companyCode; + } +} + diff --git a/src/main/java/com/pms/ocp/model/vo/ApiProvinceVo.java b/src/main/java/com/pms/ocp/model/vo/ApiProvinceVo.java new file mode 100644 index 0000000..dd1d236 --- /dev/null +++ b/src/main/java/com/pms/ocp/model/vo/ApiProvinceVo.java @@ -0,0 +1,55 @@ +package com.pms.ocp.model.vo; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import com.pms.ocp.model.entity.OcpApiParam; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.List; + +/** + * @author guofanfan + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@ApiModel(value = "服务列表信息vo") +public class ApiProvinceVo implements Serializable { + @ApiModelProperty(value = "序号") + @Excel(name = "序号") + private String objId; + @ApiModelProperty(value = "服务编码") + @Excel(name = "服务编码") + private String apiCode; + @ApiModelProperty(value = "服务中文名称") + @Excel(name = "服务中文名称") + private String apiName; + @ApiModelProperty(value = "所属集群") + @Excel(name = "所属集群") + private String clusterName; + @ApiModelProperty(value = "所属命名空间") + @Excel(name = "所属命名空间") + private String spaceName; + @ApiModelProperty(value = "接口URL") + @Excel(name = "接口URL") + private String apiUrl; + @ApiModelProperty(value = "状态") + @Excel(name = "状态") + private String apiState; + @ApiModelProperty(value = "注册时间") + @Excel(name = "注册时间") + private Timestamp apiCtime; + @ApiModelProperty(value = "建设单位") + @Excel(name = "建设单位") + private String apiUnit; + /** + * 请求参数列表 + */ + private List apiParams; +} + diff --git a/src/main/java/com/pms/ocp/model/vo/QueryAppInfoVO.java b/src/main/java/com/pms/ocp/model/vo/QueryAppInfoVO.java new file mode 100644 index 0000000..d636fb8 --- /dev/null +++ b/src/main/java/com/pms/ocp/model/vo/QueryAppInfoVO.java @@ -0,0 +1,32 @@ +package com.pms.ocp.model.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 应用目录查询返回实体 + * + * @author Administrator + */ +@ApiModel(value = "应用目录查询返回实体") +@Data +public class QueryAppInfoVO { + + @ApiModelProperty("应用图标") + private String icon; + + @ApiModelProperty("应用名称") + private String appName; + + + @ApiModelProperty("版本号") + private String version; + + @ApiModelProperty("开发商") + private String unit; + + @ApiModelProperty("应用状态") + private String state; + +} diff --git a/src/main/java/com/pms/ocp/service/ApiProvinceService.java b/src/main/java/com/pms/ocp/service/ApiProvinceService.java new file mode 100644 index 0000000..03ffacc --- /dev/null +++ b/src/main/java/com/pms/ocp/service/ApiProvinceService.java @@ -0,0 +1,12 @@ +package com.pms.ocp.service; + + +import com.pms.ocp.model.vo.ApiProvinceVo; +import com.pms.ocp.model.vo.OcpApiBaseVo; +import com.pms.ocp.model.vo.ResponseVO; + +public interface ApiProvinceService { + + + boolean updateOrCreate(ApiProvinceVo apiProvinceVo); +} diff --git a/src/main/java/com/pms/ocp/service/AppRegisterService.java b/src/main/java/com/pms/ocp/service/AppRegisterService.java new file mode 100644 index 0000000..2acb1f0 --- /dev/null +++ b/src/main/java/com/pms/ocp/service/AppRegisterService.java @@ -0,0 +1,39 @@ +package com.pms.ocp.service; + +import com.pms.ocp.model.dto.AppRegisterDTO; +import com.pms.ocp.model.dto.ImgDTO; +import com.pms.ocp.model.dto.QueryAppDTO; +import com.pms.ocp.model.vo.ResponseVO; + +import java.util.List; + +/** + * 应用注册业务接口 + * + * @author Administrator + */ +public interface AppRegisterService { + /** + * 新增应用注册 + * + * @param appRegisterDTO + * @return + */ + ResponseVO addApp(AppRegisterDTO appRegisterDTO); + + /** + * 查询应用目录 + * + * @param queryAppDTO + * @return + */ + ResponseVO getAppInfo(QueryAppDTO queryAppDTO); + + /** + * 应用预览图 + * + * @param imgDTO + * @return + */ + ResponseVO addAppImgUrl(List imgDTO); +} diff --git a/src/main/java/com/pms/ocp/service/impl/ApiProvinceServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/ApiProvinceServiceImpl.java new file mode 100644 index 0000000..5bd79ad --- /dev/null +++ b/src/main/java/com/pms/ocp/service/impl/ApiProvinceServiceImpl.java @@ -0,0 +1,44 @@ +package com.pms.ocp.service.impl; + +import com.github.pagehelper.util.StringUtil; +import com.pms.ocp.common.utils.RandomStringUtils; +import com.pms.ocp.mapper.ApiDetailsMapper; +import com.pms.ocp.mapper.ApiParamMapper; +import com.pms.ocp.mapper.ApiProvinceMapper; +import com.pms.ocp.model.entity.OcpApiParam; +import com.pms.ocp.model.vo.ApiProvinceVo; +import com.pms.ocp.model.vo.OcpApiBaseVo; +import com.pms.ocp.model.vo.ResponseVO; +import com.pms.ocp.service.ApiDetailsService; +import com.pms.ocp.service.ApiProvinceService; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class ApiProvinceServiceImpl implements ApiProvinceService { + + @Autowired + private ApiProvinceMapper apiProvinceMapper; + @Autowired + private ApiParamMapper apiParamDao; + + @Override + public boolean updateOrCreate(ApiProvinceVo apiProvinceVo) { + String code = RandomStringUtils.getRandomString(32); + apiProvinceVo.setApiCode(code); + apiProvinceMapper.insert(apiProvinceVo); + List apiParams = apiProvinceVo.getApiParams(); + if (CollectionUtils.isNotEmpty(apiParams)) { + //清除原有数据 + apiParams.forEach(apiParam -> { + apiParamDao.insert(apiParam); + apiParam.setApiCode(apiProvinceVo.getApiCode()); + }); + } + return true; + } +} diff --git a/src/main/java/com/pms/ocp/service/impl/AppRegisterServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/AppRegisterServiceImpl.java new file mode 100644 index 0000000..ea7e6e7 --- /dev/null +++ b/src/main/java/com/pms/ocp/service/impl/AppRegisterServiceImpl.java @@ -0,0 +1,121 @@ +package com.pms.ocp.service.impl; + +import com.pms.ocp.common.utils.GUIDGenerator; +import com.pms.ocp.common.utils.PageUtil; +import com.pms.ocp.mapper.*; +import com.pms.ocp.model.dto.AppRegisterDTO; +import com.pms.ocp.model.dto.ImgDTO; +import com.pms.ocp.model.dto.QueryAppDTO; +import com.pms.ocp.model.entity.OcpTenantBase; +import com.pms.ocp.model.entity.OcpTenantExtent; +import com.pms.ocp.model.entity.OcpTenantGroup; +import com.pms.ocp.model.entity.OcpTenantIocn; +import com.pms.ocp.model.vo.QueryAppInfoVO; +import com.pms.ocp.model.vo.ResponseVO; +import com.pms.ocp.service.AppRegisterService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + + +/** + * 应用注册业务接口实现 + * + * @author Administrator + */ +@Service +public class AppRegisterServiceImpl implements AppRegisterService { + @Autowired + private AppRegisterMapper appRegisterMapper; + + @Autowired + private OcpTenantIocnMapper ocpTenantIocnMapper; + + @Autowired + private OcpTenantBaseMapper ocpTenantBaseMapper; + + @Autowired + private OcpTenantExtentMapper ocpTenantExtentMapper; + + @Autowired + private OcpTenantGroupMapper ocpTenantGroupMapper; + + @Override + public ResponseVO addApp(AppRegisterDTO appRegisterDTO) { + + OcpTenantIocn ocpTenantIocn = new OcpTenantIocn(); + ocpTenantIocn.setIocnType("tenant"); + ocpTenantIocn.setCodeNo(appRegisterDTO.getAppCode()); + ocpTenantIocn.setIocn(appRegisterDTO.getImgUrl()); + // 加字段 + + int n = ocpTenantIocnMapper.insert(ocpTenantIocn); + + + OcpTenantExtent ocpTenantExtent = new OcpTenantExtent(); + ocpTenantExtent.setTenantCtime(new Date()); + ocpTenantExtent.setTenantCode(appRegisterDTO.getAppCode()); + ocpTenantExtent.setClusterName(appRegisterDTO.getGroup()); + ocpTenantExtent.setDeploymentName(appRegisterDTO.getDeploymentName()); + int j = ocpTenantExtentMapper.insert(ocpTenantExtent); + + + OcpTenantGroup ocpTenantGroup = new OcpTenantGroup(); + ocpTenantGroup.setTenantGroupUserId(appRegisterDTO.getUserId()); + ocpTenantGroup.setTenantGroupUserName(appRegisterDTO.getUserName()); + ocpTenantGroup.setTenantGroupCtime(new Timestamp(System.currentTimeMillis())); + ocpTenantGroup.setTenantGroupCode(GUIDGenerator.generate32(true)); + ocpTenantGroup.setTenantGroupName(appRegisterDTO.getType()); + int m = ocpTenantGroupMapper.insert(ocpTenantGroup); + + + OcpTenantBase ocpTenantBase = new OcpTenantBase(); + ocpTenantBase.setTenantUserId(appRegisterDTO.getUserId()); + ocpTenantBase.setTenantName(appRegisterDTO.getAppName()); + ocpTenantBase.setTenantCode(appRegisterDTO.getAppCode()); + ocpTenantBase.setProfessionalKind(appRegisterDTO.getKind()); + ocpTenantBase.setTenantUrl(appRegisterDTO.getUrl()); + ocpTenantBase.setTenantDescription(appRegisterDTO.getDesc()); + ocpTenantBase.setTenantUnit(appRegisterDTO.getManufacturer()); + ocpTenantBase.setTenantVersion(appRegisterDTO.getVersion()); + ocpTenantBase.setTenantCtime(new Timestamp(System.currentTimeMillis())); + ocpTenantBase.setTenantGroupCode(ocpTenantGroup.getTenantGroupCode()); + int i = ocpTenantBaseMapper.insert(ocpTenantBase); + + + if (n > 0 && i > 0 && j > 0 && m > 0) { + return ResponseVO.ok(); + } + return ResponseVO.error("新增应用注册失败"); + } + + @Override + public ResponseVO getAppInfo(QueryAppDTO queryAppDTO) { + List list = appRegisterMapper.getAppInfo(queryAppDTO); + PageUtil pageUtil = new PageUtil<>(); + pageUtil.startPage(queryAppDTO.getCurrentPage(), queryAppDTO.getPageSize(), list); + return ResponseVO.ok(pageUtil); + } + + @Override + public ResponseVO addAppImgUrl(List imgDTO) { + List list = new ArrayList<>(); + + for (ImgDTO item : imgDTO) { + OcpTenantIocn ocpTenantIocn = new OcpTenantIocn(); + ocpTenantIocn.setIocnType("tenant"); + ocpTenantIocn.setCodeNo(item.getCodeNo()); + ocpTenantIocn.setIocn(item.getImg()); + list.add(ocpTenantIocn); + } + int count = appRegisterMapper.batchInsert(list); + if (count > 0) { + return ResponseVO.ok(); + } + return ResponseVO.error("应用预览图插入失败"); + } +} diff --git a/src/main/resources/mapper/AppRegisterMapper.xml b/src/main/resources/mapper/AppRegisterMapper.xml new file mode 100644 index 0000000..571ce54 --- /dev/null +++ b/src/main/resources/mapper/AppRegisterMapper.xml @@ -0,0 +1,36 @@ + + + + + + + + + insert into ocp_tenant_iocn(obj_id, iocn_type, code_no, iocn, company_code) + values + + (#{item.objId,jdbcType=VARCHAR}, + #{item.iocnType,jdbcType=VARCHAR}, + #{item.codeNo},#{item.iocn},#{item.companyCode,jdbcType=VARCHAR}) + + + \ No newline at end of file -- 2.26.0