commit 8959716082299e1dd99781bd9f544dc8a8beda8e
Author: jm <1350233641@qq.com>
Date: Mon Nov 20 17:34:58 2023 +0800
中国移动专线管家业务
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..3cd7cf7
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,75 @@
+
+
+ 4.0.0
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 3.1.5
+
+
+ com.cmcc
+ PrivateLineManager
+ 0.0.1-SNAPSHOT
+ PrivateLineManager
+ PrivateLineManager
+
+ 17
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ com.mysql
+ mysql-connector-j
+ runtime
+
+
+ org.projectlombok
+ lombok
+ true
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jpa
+
+
+
+
+ org.modelmapper
+ modelmapper
+ 3.0.0
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+ paketobuildpacks/builder-jammy-base:latest
+
+
+
+ org.projectlombok
+ lombok
+
+
+
+
+
+
+
diff --git a/src/main/java/com/cmcc/privatelinemanager/PrivateLineManagerApplication.java b/src/main/java/com/cmcc/privatelinemanager/PrivateLineManagerApplication.java
new file mode 100644
index 0000000..56ee1b5
--- /dev/null
+++ b/src/main/java/com/cmcc/privatelinemanager/PrivateLineManagerApplication.java
@@ -0,0 +1,13 @@
+package com.cmcc.privatelinemanager;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class PrivateLineManagerApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(PrivateLineManagerApplication.class, args);
+ }
+
+}
diff --git a/src/main/java/com/cmcc/privatelinemanager/base/BaseVo.java b/src/main/java/com/cmcc/privatelinemanager/base/BaseVo.java
new file mode 100644
index 0000000..51c0137
--- /dev/null
+++ b/src/main/java/com/cmcc/privatelinemanager/base/BaseVo.java
@@ -0,0 +1,40 @@
+package com.cmcc.privatelinemanager.base;
+
+
+import jakarta.persistence.Column;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * Created by Jm on 2023/11/20.
+ */
+@Getter
+@Setter
+public class BaseVo implements Serializable {
+
+ /**
+ * 专线名称
+ */
+ @Column
+ private String name;
+
+ /**
+ * 专线编号
+ */
+ @Column
+ private String number;
+
+ /**
+ * 专线类型
+ */
+ @Column
+ private String type;
+
+ /**
+ * 专线状态
+ */
+ @Column
+ private String status;
+}
diff --git a/src/main/java/com/cmcc/privatelinemanager/base/EntityBase.java b/src/main/java/com/cmcc/privatelinemanager/base/EntityBase.java
new file mode 100644
index 0000000..e97a8ba
--- /dev/null
+++ b/src/main/java/com/cmcc/privatelinemanager/base/EntityBase.java
@@ -0,0 +1,38 @@
+package com.cmcc.privatelinemanager.base;
+
+import jakarta.persistence.*;
+import lombok.Getter;
+import lombok.Setter;
+import org.hibernate.annotations.GenericGenerator;
+import org.springframework.data.jpa.domain.support.AuditingEntityListener;
+
+@Getter
+@Setter
+@MappedSuperclass
+@EntityListeners(AuditingEntityListener.class)
+public class EntityBase {
+
+ /**
+ * 主键 ID
+ */
+
+ @Id
+ @GenericGenerator(name = "id")
+ @GeneratedValue(generator = "id")
+ @Column(length = 36)
+ private int id;
+
+
+ /**
+ * 创建时间
+ */
+ @Column(name = "create_time",columnDefinition = "date")
+ private Long createTime;
+ /**
+ * 更新时间
+ */
+ @Column(name = "update_time",columnDefinition = "date")
+ private Long updateTime;
+
+
+}
diff --git a/src/main/java/com/cmcc/privatelinemanager/base/PrivateLineInfoBase.java b/src/main/java/com/cmcc/privatelinemanager/base/PrivateLineInfoBase.java
new file mode 100644
index 0000000..9844909
--- /dev/null
+++ b/src/main/java/com/cmcc/privatelinemanager/base/PrivateLineInfoBase.java
@@ -0,0 +1,34 @@
+package com.cmcc.privatelinemanager.base;
+
+import jakarta.persistence.Column;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class PrivateLineInfoBase extends EntityBase {
+
+ /**
+ * 专线名称
+ */
+ @Column
+ private String name;
+
+ /**
+ * 专线编号
+ */
+ @Column
+ private String number;
+
+ /**
+ * 专线类型
+ */
+ @Column
+ private String type;
+
+ /**
+ * 专线状态
+ */
+ @Column
+ private String status;
+}
diff --git a/src/main/java/com/cmcc/privatelinemanager/controller/CmccPrivateLineManger.java b/src/main/java/com/cmcc/privatelinemanager/controller/CmccPrivateLineManger.java
new file mode 100644
index 0000000..cea4024
--- /dev/null
+++ b/src/main/java/com/cmcc/privatelinemanager/controller/CmccPrivateLineManger.java
@@ -0,0 +1,35 @@
+package com.cmcc.privatelinemanager.controller;
+
+import com.cmcc.privatelinemanager.service.LineMangerService;
+import com.cmcc.privatelinemanager.tools.response.Response;
+import com.cmcc.privatelinemanager.vo.ProductInfoBaseVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 中国移动专线管家入口
+ */
+@RestController
+@RequestMapping("/privateLine")
+public class CmccPrivateLineManger {
+
+
+ @Autowired
+ private LineMangerService lineMangerService;
+
+
+// 查询相关接口————————————————————————————————————————
+
+ /**
+ * 查询全部产品
+ * @return 返回全部产品基础信息
+ */
+ @RequestMapping("/getAllProduct")
+ public Response> getAllProduct(){
+ List productInfoBaseVos = lineMangerService.getAllProduct();
+ return Response.success(productInfoBaseVos);
+ }
+}
diff --git a/src/main/java/com/cmcc/privatelinemanager/dao/CmccPrivateLineMangerRepository.java b/src/main/java/com/cmcc/privatelinemanager/dao/CmccPrivateLineMangerRepository.java
new file mode 100644
index 0000000..0056e31
--- /dev/null
+++ b/src/main/java/com/cmcc/privatelinemanager/dao/CmccPrivateLineMangerRepository.java
@@ -0,0 +1,11 @@
+package com.cmcc.privatelinemanager.dao;
+
+import com.cmcc.privatelinemanager.controller.CmccPrivateLineManger;
+import org.hibernate.sql.ast.tree.expression.JdbcParameter;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface CmccPrivateLineMangerRepository extends JpaRepository {
+
+}
diff --git a/src/main/java/com/cmcc/privatelinemanager/entity/PrivateLineInfo.java b/src/main/java/com/cmcc/privatelinemanager/entity/PrivateLineInfo.java
new file mode 100644
index 0000000..6446994
--- /dev/null
+++ b/src/main/java/com/cmcc/privatelinemanager/entity/PrivateLineInfo.java
@@ -0,0 +1,42 @@
+package com.cmcc.privatelinemanager.entity;
+
+import com.cmcc.privatelinemanager.base.PrivateLineInfoBase;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import lombok.Getter;
+import lombok.Setter;
+
+
+/**
+ * 专线信息
+ */
+@Getter
+@Setter
+@Entity(name = "private_line_info")
+public class PrivateLineInfo extends PrivateLineInfoBase {
+
+ /**
+ * 产品描述
+ */
+ @Column
+ private String description;
+
+
+ /**
+ * 产品描述视频id
+ */
+ @Column
+ private String descriptionVideoId;
+
+ /**
+ * 产品优势id
+ */
+ @Column
+ private String advantageId;
+
+ /**
+ * 适用场景
+ */
+ @Column
+ private String scene;
+}
diff --git a/src/main/java/com/cmcc/privatelinemanager/entity/ProductAdvantage.java b/src/main/java/com/cmcc/privatelinemanager/entity/ProductAdvantage.java
new file mode 100644
index 0000000..f2ea6df
--- /dev/null
+++ b/src/main/java/com/cmcc/privatelinemanager/entity/ProductAdvantage.java
@@ -0,0 +1,31 @@
+package com.cmcc.privatelinemanager.entity;
+
+
+import com.cmcc.privatelinemanager.base.EntityBase;
+import jakarta.persistence.Entity;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 产品优势表
+ */
+@Getter
+@Setter
+@Entity(name = "product_advantage")
+public class ProductAdvantage extends EntityBase {
+ /**
+ * 产品id
+ */
+ private String productId;
+
+ /**
+ * 产品优势
+ */
+
+ private String advantage;
+
+ /**
+ * 产品优势描述
+ */
+ private String advantageDesc;
+}
diff --git a/src/main/java/com/cmcc/privatelinemanager/service/LineMangerService.java b/src/main/java/com/cmcc/privatelinemanager/service/LineMangerService.java
new file mode 100644
index 0000000..3369f26
--- /dev/null
+++ b/src/main/java/com/cmcc/privatelinemanager/service/LineMangerService.java
@@ -0,0 +1,9 @@
+package com.cmcc.privatelinemanager.service;
+
+import com.cmcc.privatelinemanager.vo.ProductInfoBaseVo;
+
+import java.util.List;
+
+public interface LineMangerService {
+ List getAllProduct();
+}
diff --git a/src/main/java/com/cmcc/privatelinemanager/service/impl/LineMangerServiceImpl.java b/src/main/java/com/cmcc/privatelinemanager/service/impl/LineMangerServiceImpl.java
new file mode 100644
index 0000000..f94399f
--- /dev/null
+++ b/src/main/java/com/cmcc/privatelinemanager/service/impl/LineMangerServiceImpl.java
@@ -0,0 +1,33 @@
+package com.cmcc.privatelinemanager.service.impl;
+
+import com.cmcc.privatelinemanager.controller.CmccPrivateLineManger;
+import com.cmcc.privatelinemanager.dao.CmccPrivateLineMangerRepository;
+import com.cmcc.privatelinemanager.service.LineMangerService;
+import com.cmcc.privatelinemanager.vo.ProductInfoBaseVo;
+import org.modelmapper.ModelMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+public class LineMangerServiceImpl implements LineMangerService {
+
+ @Autowired
+ CmccPrivateLineMangerRepository cmccPrivateLineMangerRepository;
+
+ @Override
+ public List getAllProduct() {
+ ModelMapper modelMapper = new ModelMapper();
+
+ List cmccPrivateLineMangers = cmccPrivateLineMangerRepository.findAll();
+
+ List productInfoBaseVos;
+ productInfoBaseVos = cmccPrivateLineMangers.stream()
+ .map(cmccPrivateLineManger -> modelMapper.map(cmccPrivateLineManger, ProductInfoBaseVo.class))
+ .toList();
+
+ return productInfoBaseVos;
+ }
+}
diff --git a/src/main/java/com/cmcc/privatelinemanager/tools/exception/ServiceException.java b/src/main/java/com/cmcc/privatelinemanager/tools/exception/ServiceException.java
new file mode 100644
index 0000000..7977f46
--- /dev/null
+++ b/src/main/java/com/cmcc/privatelinemanager/tools/exception/ServiceException.java
@@ -0,0 +1,47 @@
+package com.cmcc.privatelinemanager.tools.exception;
+
+
+
+import com.cmcc.privatelinemanager.tools.response.ResponseCode;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 功能:自定义系统异常
+ *
+ * @author jm
+ * Created by jm on 2022-12-16 13:22.
+ */
+@Getter
+@Setter
+public class ServiceException extends RuntimeException {
+
+ private int code;
+
+ /**
+ * 异常时传递参数
+ */
+ private Object content;
+
+ public ServiceException(int code, String message) {
+ super(message);
+ this.code = code;
+ }
+
+ public ServiceException(ResponseCode responseCode) {
+ super(responseCode.getMessage());
+ this.code = responseCode.getCode();
+ }
+
+ public ServiceException(ResponseCode responseCode, String message) {
+ super(message);
+ this.code = responseCode.getCode();
+ }
+
+ public ServiceException(ResponseCode responseCode, String message, Object obj) {
+ super(message);
+ this.code = responseCode.getCode();
+ this.content=obj;
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/cmcc/privatelinemanager/tools/response/Response.java b/src/main/java/com/cmcc/privatelinemanager/tools/response/Response.java
new file mode 100644
index 0000000..5e0848b
--- /dev/null
+++ b/src/main/java/com/cmcc/privatelinemanager/tools/response/Response.java
@@ -0,0 +1,156 @@
+package com.cmcc.privatelinemanager.tools.response;
+
+public class Response {
+
+
+ private int code;
+ private T data;
+ private String message;
+
+ public Response(int code, T data, String message) {
+ this.code = code;
+ this.data = data;
+ this.message = message;
+ }
+
+ public Response(int code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+ public Response(ResponseCode code, T data, String message) {
+ this.code = code.getCode();
+ this.data = data;
+ this.message = message;
+ }
+
+ public Response(ResponseCode code, String message) {
+ this.code = code.getCode();
+ this.message = message;
+ }
+
+ /**
+ * 默认成功响应
+ *
+ * @return
+ */
+ public static Response success() {
+ Response response = new Response(ResponseCode.SUCCESS, ResponseCode.SUCCESS.getMessage());
+ return response;
+ }
+
+ /**
+ * 成功响应,携带响应数据
+ *
+ * @param data
+ * @param
+ * @return
+ */
+ public static Response success(T data) {
+ return new Response(ResponseCode.SUCCESS, data, ResponseCode.SUCCESS.getMessage());
+ }
+
+ /**
+ * 失败响应,指定错误码
+ *
+ * @param responseCode
+ * @return
+ */
+ public static Response fail(int responseCode) {
+ return new Response(responseCode, null);
+ }
+
+ /**
+ * 失败响应,指定错误码
+ *
+ * @param responseCode
+ * @return
+ */
+ public static Response fail(ResponseCode responseCode) {
+ return new Response(responseCode, responseCode.getMessage());
+ }
+
+ /**
+ * 失败响应,指定错误码,指定错误信息提示
+ *
+ * @param responseCode
+ * @param message
+ * @return
+ */
+ public static Response fail(int responseCode, String message) {
+ return new Response(responseCode, message);
+ }
+
+ /**
+ * 失败响应,指定错误码,指定错误信息提示
+ *
+ * @param responseCode
+ * @param message
+ * @return
+ */
+ public static Response fail(ResponseCode responseCode, String message) {
+ return new Response(responseCode, message);
+ }
+
+ /**
+ * 失败响应,指定错误码,指定错误信息提示,并携带错误数据
+ *
+ * @param responseCode
+ * @param message
+ * @param data
+ * @param
+ * @return
+ */
+ public static Response fail(int responseCode, String message, T data) {
+ return new Response(responseCode, data, message);
+ }
+
+ /**
+ * 失败响应,指定错误码,指定错误信息提示,并携带错误数据
+ *
+ * @param responseCode
+ * @param message
+ * @param data
+ * @param
+ * @return
+ */
+ public static Response fail(ResponseCode responseCode, String message, T data) {
+ return new Response(responseCode, data, message);
+ }
+
+ public int getCode() {
+ return code;
+ }
+
+ public Response setCode(int code) {
+ this.code = code;
+ return this;
+ }
+
+ public T getData() {
+ return data;
+ }
+
+ public Response setData(T data) {
+ this.data = data;
+ return this;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public Response setMessage(String message) {
+ this.message = message;
+ return this;
+ }
+
+ @Override
+ public String toString() {
+ return "Response{" +
+ "code=" + code +
+ ", data=" + data +
+ ", message='" + message + '\'' +
+ '}';
+ }
+}
diff --git a/src/main/java/com/cmcc/privatelinemanager/tools/response/ResponseCode.java b/src/main/java/com/cmcc/privatelinemanager/tools/response/ResponseCode.java
new file mode 100644
index 0000000..ab9b9a1
--- /dev/null
+++ b/src/main/java/com/cmcc/privatelinemanager/tools/response/ResponseCode.java
@@ -0,0 +1,27 @@
+package com.cmcc.privatelinemanager.tools.response;
+
+
+import lombok.Getter;
+
+@Getter
+public enum ResponseCode {
+
+ SUCCESS(200, "SUCCESS"),
+ ERROR(500, "ERROR");
+
+ private final int code;
+ private final String message;
+
+ ResponseCode(int code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+ public int getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+}
diff --git a/src/main/java/com/cmcc/privatelinemanager/vo/ProductInfoBaseVo.java b/src/main/java/com/cmcc/privatelinemanager/vo/ProductInfoBaseVo.java
new file mode 100644
index 0000000..00becd8
--- /dev/null
+++ b/src/main/java/com/cmcc/privatelinemanager/vo/ProductInfoBaseVo.java
@@ -0,0 +1,14 @@
+package com.cmcc.privatelinemanager.vo;
+
+
+import com.cmcc.privatelinemanager.base.BaseVo;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class ProductInfoBaseVo extends BaseVo {
+
+ private String productName;
+
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
new file mode 100644
index 0000000..802db26
--- /dev/null
+++ b/src/main/resources/application.yml
@@ -0,0 +1,26 @@
+spring:
+ profiles:
+ active: dev
+ application:
+ name: cmcc-PrivateLineManager
+ datasource:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://localhost:3306/CMCC_PrivateLineManager?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
+ username: root
+ password: abc123
+ hikari:
+ connection-timeout: 2000
+ minimum-idle: 5
+ maximum-pool-size: 20
+ idle-timeout: 200000
+ auto-commit: true
+ max-lifetime: 1800000
+ connection-test-query: select 1
+ jpa:
+ database: mysql
+ show-sql: false
+ generate-ddl: true
+server:
+ port: 8080
+ servlet:
+ context-path: /apis/cmcc-PrivateLineManager
\ No newline at end of file
diff --git a/src/test/java/com/cmcc/privatelinemanager/PrivateLineManagerApplicationTests.java b/src/test/java/com/cmcc/privatelinemanager/PrivateLineManagerApplicationTests.java
new file mode 100644
index 0000000..fb4f57c
--- /dev/null
+++ b/src/test/java/com/cmcc/privatelinemanager/PrivateLineManagerApplicationTests.java
@@ -0,0 +1,13 @@
+package com.cmcc.privatelinemanager;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+class PrivateLineManagerApplicationTests {
+
+ @Test
+ void contextLoads() {
+ }
+
+}