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() { + } + +}