diff --git a/JAVA_MYSQL_HCJXJY/jxjy-education.iml b/JAVA_MYSQL_HCJXJY/jxjy-education.iml
new file mode 100644
index 0000000..af19bc2
--- /dev/null
+++ b/JAVA_MYSQL_HCJXJY/jxjy-education.iml
@@ -0,0 +1,81 @@
+
+
+  
+    
+    
+    
+      
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+  
+
\ No newline at end of file
diff --git a/JAVA_MYSQL_WEBSITE/.idea/compiler.xml b/JAVA_MYSQL_WEBSITE/.idea/compiler.xml
new file mode 100644
index 0000000..9feb2ad
--- /dev/null
+++ b/JAVA_MYSQL_WEBSITE/.idea/compiler.xml
@@ -0,0 +1,23 @@
+
+
+  
+    
+      
+      
+        
+        
+        
+        
+        
+        
+      
+    
+  
+  
+    
+  
+
\ No newline at end of file
diff --git a/JAVA_MYSQL_WEBSITE/.idea/dataSources.xml b/JAVA_MYSQL_WEBSITE/.idea/dataSources.xml
new file mode 100644
index 0000000..a5a7c30
--- /dev/null
+++ b/JAVA_MYSQL_WEBSITE/.idea/dataSources.xml
@@ -0,0 +1,12 @@
+
+
+  
+    
+      mysql.8
+      true
+      com.mysql.cj.jdbc.Driver
+      jdbc:mysql://rm-m5e856330s821071w8o.mysql.rds.aliyuncs.com:3306/gp_union
+      $ProjectFileDir$
+    
+  
+
\ No newline at end of file
diff --git a/JAVA_MYSQL_WEBSITE/.idea/encodings.xml b/JAVA_MYSQL_WEBSITE/.idea/encodings.xml
new file mode 100644
index 0000000..7c58441
--- /dev/null
+++ b/JAVA_MYSQL_WEBSITE/.idea/encodings.xml
@@ -0,0 +1,10 @@
+
+
+  
+    
+    
+    
+    
+    
+  
+
\ No newline at end of file
diff --git a/JAVA_MYSQL_WEBSITE/.idea/jarRepositories.xml b/JAVA_MYSQL_WEBSITE/.idea/jarRepositories.xml
new file mode 100644
index 0000000..712ab9d
--- /dev/null
+++ b/JAVA_MYSQL_WEBSITE/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+
+
+  
+    
+      
+      
+      
+    
+    
+      
+      
+      
+    
+    
+      
+      
+      
+    
+  
+
\ No newline at end of file
diff --git a/JAVA_MYSQL_WEBSITE/.idea/workspace.xml b/JAVA_MYSQL_WEBSITE/.idea/workspace.xml
index 21cb400..188fbba 100644
--- a/JAVA_MYSQL_WEBSITE/.idea/workspace.xml
+++ b/JAVA_MYSQL_WEBSITE/.idea/workspace.xml
@@ -4,427 +4,47 @@
     
   
   
-    
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
+    
+      
+      
+      
+      
+      
+      
+      
+      
+      
+      
+      
+      
+      
+      
+      
+      
+      
+      
+      
+      
+      
+      
+      
+      
+      
+      
+      
       
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
-      
+      
+      
+      
+      
+      
+      
+      
+      
       
-      
       
-      
-      
-      
       
-      
-      
-      
-      
-      
+      
     
     
     
@@ -445,7 +65,9 @@
     
   
   
-  
+  
+    
+  
   
     
     
@@ -458,13 +80,33 @@
     "RequestMappingsPanelWidth1": "75",
     "RunOnceActivity.OpenProjectViewOnStart": "true",
     "RunOnceActivity.ShowReadmeOnStart": "true",
+    "SHARE_PROJECT_CONFIGURATION_FILES": "true",
     "WebServerToolWindowFactoryState": "false",
-    "last_opened_file_path": "F:/02.FNSProject/政采/JAVA_MYSQL_WEBSITE/gp-business/src/main/resources/mapper"
+    "last_opened_file_path": "F:/02.FNSProject/JAVA_MYSQL_交通局电召",
+    "settings.editor.selected.configurable": "web.server",
+    "spring.configuration.checksum": "420f802bde281311b05da23e05cddeda"
+  },
+  "keyToStringList": {
+    "DatabaseDriversLRU": [
+      "mysql"
+    ]
   }
 }]]>
   
     
   
+  
+    
+      
+    
+    
+      
+      
+      
+      
+      
+    
+  
   
     
       
@@ -485,10 +127,26 @@
       
       
       
+      
+      
+      
+      
     
+    
+      1730470371982
+      
+      
+      
+      1730470371982
+    
+    
     
   
   
     
   
+  
+    
+    
+  
 
\ No newline at end of file
diff --git a/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/dto/WebCourseDto.java b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/dto/WebCourseDto.java
new file mode 100644
index 0000000..1c6f723
--- /dev/null
+++ b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/dto/WebCourseDto.java
@@ -0,0 +1,93 @@
+package com.hc.gpbusiness.dto;
+
+import com.hc.gpbusiness.model.WebCourse;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+/**
+ * 新闻表
+ * (WebCourse)实体类
+ *
+ * @author java
+ * @since 2020-07-29 17:28:24
+ */
+@Data
+public class WebCourseDto{
+
+    private Integer courseId;
+
+    /**
+     * 课程名称
+     */
+    private String courseName;
+
+    /**
+     * 图标
+     */
+    private String courseLogo;
+
+    /**
+     * 老师介绍是否可见
+     */
+    private Integer courseTeacherVisible;
+
+    /**
+     * 章节是否可见
+     */
+    private Integer courseChapterVisible;
+
+    /**
+     * 介绍是否可见
+     */
+    private Integer courseDescVisible;
+
+    /**
+     * 课程介绍
+     */
+    private String courseDesc;
+
+    /**
+     * 课程时长
+     */
+    private Float courseHours;
+
+    /**
+     * 教师
+     */
+    private String courseTeacher;
+
+    /**
+     * 课程是否上架。下架后不可见
+     */
+    private Integer isValid;
+
+    /**
+     * 如果有多张详情图,相册
+     */
+    private String gallery;
+
+    /**
+     * 课程所属板块表
+     */
+    private Integer moduleId;
+
+
+    /**
+     * 分类
+     */
+    private Integer typeId;
+    private String typeName;
+
+    /**
+     * 创建时间
+     */
+    private Long createTime;
+
+    /**
+     * 更新时间
+     */
+    private Long updateTime;
+
+}
\ No newline at end of file
diff --git a/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/dto/WebNewsDto.java b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/dto/WebNewsDto.java
new file mode 100644
index 0000000..db41355
--- /dev/null
+++ b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/dto/WebNewsDto.java
@@ -0,0 +1,67 @@
+package com.hc.gpbusiness.dto;
+
+import com.hc.gpbusiness.model.WebNews;
+import com.hc.gpbusiness.model.WebNewsType;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
+import lombok.Data;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import java.io.Serializable;
+
+
+/**
+ * 新闻表
+ * (News)实体类
+ *
+ * @author java
+ * @since 2020-07-29 17:28:24
+ */
+@Data
+public class WebNewsDto{
+
+    private Integer newsId;
+
+    /**
+     * 鏍囬
+     */
+    private String newsTitle;
+
+    /**
+     * 鏂伴椈Logo
+     */
+    private String newsLogo;
+
+    /**
+     * 新闻内容
+     */
+    private String newsContent;
+
+    /**
+     * 原文链接
+     */
+    private String newsUrl;
+
+    /**
+     * 新闻所属板块
+     */
+    private Integer moduleId;
+
+    /**
+     * 分类
+     */
+    private Integer typeId;
+
+    /**
+     * 创建时间
+     */
+    private Long createTime;
+
+    /**
+     * 更新时间
+     */
+    private Long updateTime;
+    private String typeName;
+}
\ No newline at end of file
diff --git a/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/mapper/WebCourseTypeMapper.java b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/mapper/WebCourseTypeMapper.java
new file mode 100644
index 0000000..182de89
--- /dev/null
+++ b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/mapper/WebCourseTypeMapper.java
@@ -0,0 +1,18 @@
+package com.hc.gpbusiness.mapper;
+
+import com.hc.gpbusiness.model.WebCourseTag;
+import com.hc.gpbusiness.model.WebCourseType;
+import com.hc.gpcore.utils.tk.mapper.Mapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 课程标签表(CourseTag)表数据库访问层
+ *
+ * @author java
+ * @since 2020-07-29 16:23:08
+ */
+
+@Repository
+public interface WebCourseTypeMapper extends Mapper {
+
+}
\ No newline at end of file
diff --git a/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/mapper/WebNewsAttachmentMapper.java b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/mapper/WebNewsAttachmentMapper.java
new file mode 100644
index 0000000..86fd011
--- /dev/null
+++ b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/mapper/WebNewsAttachmentMapper.java
@@ -0,0 +1,25 @@
+package com.hc.gpbusiness.mapper;
+
+import com.hc.gpbusiness.model.WebNewsAttachment;
+import com.hc.gpcore.utils.tk.mapper.Mapper;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 新闻附件表(NewsAttachment)表数据库访问层
+ *
+ * @author makejava
+ * @since 2024-01-20 10:58:03
+ */
+
+@Repository
+public interface WebNewsAttachmentMapper extends Mapper {
+
+    /**
+     * @Author ymnets
+     * @Description 根据资讯ID查询附件
+     * @return java.util.List
+     **/
+    List queryByNewsId(Integer newsId);
+}
diff --git a/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/mapper/WebNewsTypeMapper.java b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/mapper/WebNewsTypeMapper.java
new file mode 100644
index 0000000..20b457d
--- /dev/null
+++ b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/mapper/WebNewsTypeMapper.java
@@ -0,0 +1,17 @@
+package com.hc.gpbusiness.mapper;
+
+import com.hc.gpbusiness.model.WebNewsType;
+import com.hc.gpcore.utils.tk.mapper.Mapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 课程标签表(CourseTag)表数据库访问层
+ *
+ * @author java
+ * @since 2020-07-29 16:23:08
+ */
+
+@Repository
+public interface WebNewsTypeMapper extends Mapper {
+
+}
\ No newline at end of file
diff --git a/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/model/WebCourse.java b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/model/WebCourse.java
index 2c2c9b2..14ed299 100644
--- a/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/model/WebCourse.java
+++ b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/model/WebCourse.java
@@ -97,6 +97,13 @@ public class WebCourse implements Serializable {
     @ApiModelProperty(value = "课程所属板块表", required = true)
     private Integer moduleId;
 
+
+    /**
+     * 分类
+     */
+    @ApiModelProperty(value = "分类", required = true)
+    private Integer typeId;
+
     /**
      * 创建时间
      */
diff --git a/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/model/WebCourseType.java b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/model/WebCourseType.java
new file mode 100644
index 0000000..e588b6d
--- /dev/null
+++ b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/model/WebCourseType.java
@@ -0,0 +1,49 @@
+package com.hc.gpbusiness.model;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
+import lombok.Data;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import java.io.Serializable;
+
+
+/**
+ * 课程标签表(CourseTag)实体类
+ *
+ * @author java
+ * @since 2020-07-29 17:28:23
+ */
+@Builder
+@Data
+public class WebCourseType implements Serializable {
+
+    private static final long serialVersionUID = 170290086943577317L;
+
+    /**
+     * 主键id
+     */
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @ApiModelProperty(value = "主键id")
+    private Integer typeId;
+
+    /**
+     * 标签名称
+     */
+    @ApiModelProperty(value = "标签名称", required = true)
+    private String typeName;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Long createTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    private Long updateTime;
+}
\ No newline at end of file
diff --git a/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/model/WebNews.java b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/model/WebNews.java
index 6263165..fd9c99b 100644
--- a/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/model/WebNews.java
+++ b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/model/WebNews.java
@@ -50,12 +50,24 @@ public class WebNews implements Serializable {
     @ApiModelProperty(value = "新闻内容", required = true)
     private String newsContent;
 
+    /**
+     * 原文链接
+     */
+    @ApiModelProperty(value = "原文链接", required = true)
+    private String newsUrl;
+
     /**
      * 新闻所属板块
      */
     @ApiModelProperty(value = "新闻所属板块", required = true)
     private Integer moduleId;
 
+    /**
+     * 分类
+     */
+    @ApiModelProperty(value = "分类", required = true)
+    private Integer typeId;
+
     /**
      * 创建时间
      */
diff --git a/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/model/WebNewsAttachment.java b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/model/WebNewsAttachment.java
new file mode 100644
index 0000000..1093101
--- /dev/null
+++ b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/model/WebNewsAttachment.java
@@ -0,0 +1,54 @@
+package com.hc.gpbusiness.model;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import java.io.Serializable;
+
+
+@Data
+@ApiModel(value = "资讯附件表")
+public class WebNewsAttachment implements Serializable {
+
+    private static final long serialVersionUID = 440427107922700726L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @ApiModelProperty(value = "附件ID")
+    private Integer attachmentId;
+
+    /** q
+     * 新闻id
+     */
+    @ApiModelProperty(value = "新闻id", required = true)
+    private Integer newsId;
+
+    /**
+     * 附件名字
+     */
+    @ApiModelProperty(value = "附件名字", required = true)
+    private String name;
+
+
+    /**
+     * 附件介绍
+     */
+    @ApiModelProperty(value = "附件介绍")
+    private String content;
+
+    /**
+     * 附件地址
+     */
+    @ApiModelProperty(value = "附件地址", required = true)
+    private String url;
+
+    /**
+     * 索引
+     */
+    @ApiModelProperty(value = "索引", required = true)
+    private Integer indexNum;
+}
diff --git a/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/model/WebNewsType.java b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/model/WebNewsType.java
new file mode 100644
index 0000000..785b533
--- /dev/null
+++ b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/model/WebNewsType.java
@@ -0,0 +1,49 @@
+package com.hc.gpbusiness.model;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Builder;
+import lombok.Data;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import java.io.Serializable;
+
+
+/**
+ * 课程标签表(CourseTag)实体类
+ *
+ * @author java
+ * @since 2020-07-29 17:28:23
+ */
+@Builder
+@Data
+public class WebNewsType implements Serializable {
+
+    private static final long serialVersionUID = 170290086943577317L;
+
+    /**
+     * 主键id
+     */
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @ApiModelProperty(value = "主键id")
+    private Integer typeId;
+
+    /**
+     * 标签名称
+     */
+    @ApiModelProperty(value = "标签名称", required = true)
+    private String typeName;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Long createTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    private Long updateTime;
+}
\ No newline at end of file
diff --git a/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/WebCourseService.java b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/WebCourseService.java
index cee7406..5e12754 100644
--- a/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/WebCourseService.java
+++ b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/WebCourseService.java
@@ -1,5 +1,6 @@
 package com.hc.gpbusiness.service;
 
+import com.hc.gpbusiness.dto.WebCourseDto;
 import com.hc.gpbusiness.model.WebCourse;
 import org.springframework.stereotype.Component;
 import com.github.pagehelper.PageInfo;
@@ -21,6 +22,8 @@ public interface WebCourseService {
      * @param courseId 主键
      * @return 实例对象
      */
+    WebCourseDto queryModelById(Integer courseId);
+
     WebCourse queryById(Integer courseId);
 
     /**
diff --git a/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/WebCourseTypeService.java b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/WebCourseTypeService.java
new file mode 100644
index 0000000..7e3004d
--- /dev/null
+++ b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/WebCourseTypeService.java
@@ -0,0 +1,60 @@
+package com.hc.gpbusiness.service;
+
+import com.github.pagehelper.PageInfo;
+import com.hc.gpbusiness.model.WebCourseType;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * 课程标签表(CourseType)表服务接口
+ *
+ * @author java
+ * @since 2020-07-29 16:23:09
+ */
+
+@Component
+public interface WebCourseTypeService {
+
+    /**
+     * 通过ID查询单条数据
+     *
+     * @param tagId 主键
+     * @return 实例对象
+     */
+    WebCourseType queryById(Integer tagId);
+
+    /**
+     * 新增数据
+     *
+     * @param courseTag 实例对象
+     * @return 实例对象
+     */
+    WebCourseType insert(WebCourseType courseTag);
+
+    /**
+     * 修改数据
+     *
+     * @param courseTag 实例对象
+     * @return 实例对象
+     */
+    WebCourseType update(WebCourseType courseTag);
+
+    /**
+     * 通过主键删除数据
+     *
+     * @param tagId 主键
+     * @return 是否成功
+     */
+    boolean deleteById(Integer tagId);
+
+    /**
+     * 分页查询多条数据
+     *
+     * @param page 页码
+     * @param size 查询条数
+     * @return 对象列表
+     */
+    PageInfo queryAllByLimit(int page, int size);
+
+
+}
\ No newline at end of file
diff --git a/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/WebNewsAttachmentService.java b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/WebNewsAttachmentService.java
new file mode 100644
index 0000000..37af763
--- /dev/null
+++ b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/WebNewsAttachmentService.java
@@ -0,0 +1,68 @@
+package com.hc.gpbusiness.service;
+
+import com.github.pagehelper.PageInfo;
+import com.hc.gpbusiness.model.WebNewsAttachment;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+
+/**
+ * 新闻附件表(NewsAttachment)表服务接口
+ *
+ * @author makejava
+ * @since 2024-01-20 10:56:41
+ */
+
+@Component
+public interface WebNewsAttachmentService {
+
+    /**
+     * 通过ID查询单条数据
+     *
+     * @param attachmentId 主键
+     * @return 实例对象
+     */
+    WebNewsAttachment queryById(Integer attachmentId);
+
+    /**
+     * 新增数据
+     *
+     * @param newsAttachment 实例对象
+     * @return 实例对象
+     */
+    WebNewsAttachment insert(WebNewsAttachment newsAttachment);
+
+    /**
+     * 修改数据
+     *
+     * @param newsAttachment 实例对象
+     * @return 实例对象
+     */
+    WebNewsAttachment update(WebNewsAttachment newsAttachment);
+
+    /**
+     * 通过主键删除数据
+     *
+     * @param attachmentId 主键
+     * @return 是否成功
+     */
+    boolean deleteById(Integer attachmentId);
+
+    /**
+     * 分页查询多条数据
+     *
+     * @param page 页码
+     * @param size 查询条数
+     * @return 对象列表
+     */
+    PageInfo queryAllByLimit(int page, int size);
+
+    /**
+     * 通过直播ID查询关联的培训帮
+     *
+     * @param newsId 主键
+     * @return 是否成功
+     */
+    List queryByNewsId(Integer newsId);
+}
diff --git a/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/WebNewsService.java b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/WebNewsService.java
index bbf43cd..5b8a7a0 100644
--- a/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/WebNewsService.java
+++ b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/WebNewsService.java
@@ -1,5 +1,6 @@
 package com.hc.gpbusiness.service;
 
+import com.hc.gpbusiness.dto.WebNewsDto;
 import com.hc.gpbusiness.model.WebNews;
 import org.springframework.stereotype.Component;
 import com.github.pagehelper.PageInfo;
@@ -22,6 +23,7 @@ public interface WebNewsService {
      * @param newsId 主键
      * @return 实例对象
      */
+    WebNewsDto queryModelById(Integer newsId);
     WebNews queryById(Integer newsId);
 
     /**
diff --git a/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/WebNewsTypeService.java b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/WebNewsTypeService.java
new file mode 100644
index 0000000..87eb711
--- /dev/null
+++ b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/WebNewsTypeService.java
@@ -0,0 +1,60 @@
+package com.hc.gpbusiness.service;
+
+import com.github.pagehelper.PageInfo;
+import com.hc.gpbusiness.model.WebNewsType;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * 课程标签表(NewsType)表服务接口
+ *
+ * @author java
+ * @since 2020-07-29 16:23:09
+ */
+
+@Component
+public interface WebNewsTypeService {
+
+    /**
+     * 通过ID查询单条数据
+     *
+     * @param tagId 主键
+     * @return 实例对象
+     */
+    WebNewsType queryById(Integer tagId);
+
+    /**
+     * 新增数据
+     *
+     * @param courseTag 实例对象
+     * @return 实例对象
+     */
+    WebNewsType insert(WebNewsType courseTag);
+
+    /**
+     * 修改数据
+     *
+     * @param courseTag 实例对象
+     * @return 实例对象
+     */
+    WebNewsType update(WebNewsType courseTag);
+
+    /**
+     * 通过主键删除数据
+     *
+     * @param tagId 主键
+     * @return 是否成功
+     */
+    boolean deleteById(Integer tagId);
+
+    /**
+     * 分页查询多条数据
+     *
+     * @param page 页码
+     * @param size 查询条数
+     * @return 对象列表
+     */
+    PageInfo queryAllByLimit(int page, int size);
+
+
+}
\ No newline at end of file
diff --git a/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/impl/WebCourseServiceImpl.java b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/impl/WebCourseServiceImpl.java
index dc65ab5..d07e39a 100644
--- a/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/impl/WebCourseServiceImpl.java
+++ b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/impl/WebCourseServiceImpl.java
@@ -1,12 +1,18 @@
 package com.hc.gpbusiness.service.impl;
 
 import com.github.pagehelper.PageHelper;
+import com.hc.gpbusiness.dto.WebCourseDto;
 import com.hc.gpbusiness.mapper.WebCourseMapper;
+import com.hc.gpbusiness.mapper.WebCourseTypeMapper;
 import com.hc.gpbusiness.model.WebCourse;
+import com.hc.gpbusiness.model.WebCourse;
+import com.hc.gpbusiness.model.WebCourseType;
 import com.hc.gpbusiness.service.WebCourseService;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import com.github.pagehelper.PageInfo;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -21,21 +27,29 @@ public class WebCourseServiceImpl implements WebCourseService {
 
     private final WebCourseMapper courseMapper;
 
-    public WebCourseServiceImpl(WebCourseMapper courseMapper) {
+    private final WebCourseTypeMapper courseTypeMapper;
+
+    public WebCourseServiceImpl(WebCourseMapper courseMapper,WebCourseTypeMapper courseTypeMapper) {
         this.courseMapper = courseMapper;
+        this.courseTypeMapper = courseTypeMapper;
     }
-
     /**
      * 通过ID查询单条数据
      *
      * @param courseId 主键
      * @return 实例对象
      */
+    @Override
+    public WebCourseDto queryModelById(Integer courseId) {
+        return copy(this.courseMapper.selectByPrimaryKey(courseId));
+    }
+
     @Override
     public WebCourse queryById(Integer courseId) {
         return this.courseMapper.selectByPrimaryKey(courseId);
     }
 
+
     /**
      * 新增数据
      *
@@ -84,7 +98,28 @@ public class WebCourseServiceImpl implements WebCourseService {
     @Override
     public PageInfo queryAllByLimit(int page, int size, Integer moduleId) {
         PageHelper.startPage(page, size);
-        List courses = this.courseMapper.queryByModuleId(moduleId);
-        return new PageInfo(courses);
+        List news = this.courseMapper.queryByModuleId(moduleId);
+        List resultList = copyList(news);
+        return new PageInfo(resultList);
+    }
+
+    public List copyList(List records) {
+        List WebCourseDtoList = new ArrayList<>();
+        for (WebCourse record : records) {
+            WebCourseDtoList.add(copy(record));
+        }
+        return WebCourseDtoList;
+    }
+
+    public WebCourseDto copy(WebCourse entity) {
+        WebCourseDto newsDto = new WebCourseDto();
+        BeanUtils.copyProperties(entity, newsDto);
+
+        WebCourseType type = courseTypeMapper.selectByPrimaryKey(entity.getTypeId());
+        if (type != null) {
+            newsDto.setTypeName(type.getTypeName());
+        }
+
+        return newsDto;
     }
 }
\ No newline at end of file
diff --git a/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/impl/WebCourseTypeServiceImpl.java b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/impl/WebCourseTypeServiceImpl.java
new file mode 100644
index 0000000..430e015
--- /dev/null
+++ b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/impl/WebCourseTypeServiceImpl.java
@@ -0,0 +1,85 @@
+package com.hc.gpbusiness.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hc.gpbusiness.mapper.WebCourseTypeMapper;
+import com.hc.gpbusiness.model.WebCourseType;
+import com.hc.gpbusiness.service.WebCourseTypeService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 课程标签表(WebCourseType)表服务实现类
+ *
+ * @author java
+ * @since 2020-07-29 16:23:09
+ */
+
+@Service("courseTypeService")
+public class WebCourseTypeServiceImpl implements WebCourseTypeService {
+
+    private final WebCourseTypeMapper courseTypeMapper;
+
+    public WebCourseTypeServiceImpl(WebCourseTypeMapper courseTypeMapper) {
+        this.courseTypeMapper = courseTypeMapper;
+    }
+
+    /**
+     * 通过ID查询单条数据
+     *
+     * @param tagId 主键
+     * @return 实例对象
+     */
+    @Override
+    public WebCourseType queryById(Integer tagId) {
+        return this.courseTypeMapper.selectByPrimaryKey(tagId);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param courseType 实例对象
+     * @return 实例对象
+     */
+    @Override
+    public WebCourseType insert(WebCourseType courseType) {
+        courseType.setCreateTime(System.currentTimeMillis());
+        this.courseTypeMapper.insert(courseType);
+        return courseType;
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param courseType 实例对象
+     * @return 实例对象
+     */
+    @Override
+    public WebCourseType update(WebCourseType courseType) {
+        courseType.setUpdateTime(System.currentTimeMillis());
+        this.courseTypeMapper.updateByPrimaryKeySelective(courseType);
+        return this.queryById(courseType.getTypeId());
+    }
+
+    /**
+     * 通过主键删除数据
+     *
+     * @param tagId 主键
+     * @return 是否成功
+     */
+    @Override
+    public boolean deleteById(Integer tagId) {
+        return this.courseTypeMapper.deleteByPrimaryKey(tagId) > 0;
+    }
+
+    /**
+     * 分页查询多条数据
+     *
+     * @param page 页码
+     * @param size 查询条数
+     * @return 对象列表
+     */
+    @Override
+    public PageInfo queryAllByLimit(int page, int size) {
+        return PageHelper.startPage(page, size).doSelectPageInfo(this.courseTypeMapper::selectAll);
+    }
+}
\ No newline at end of file
diff --git a/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/impl/WebNewsAttachmentServiceImpl.java b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/impl/WebNewsAttachmentServiceImpl.java
new file mode 100644
index 0000000..cecfa8b
--- /dev/null
+++ b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/impl/WebNewsAttachmentServiceImpl.java
@@ -0,0 +1,95 @@
+package com.hc.gpbusiness.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hc.gpbusiness.mapper.WebNewsAttachmentMapper;
+import com.hc.gpbusiness.model.WebNewsAttachment;
+import com.hc.gpbusiness.service.WebNewsAttachmentService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 新闻附件表(NewsAttachment)表服务实现类
+ *
+ * @author makejava
+ * @since 2024-01-20 10:54:50
+ */
+
+@Service("newsAttachmentService")
+public class WebNewsAttachmentServiceImpl implements WebNewsAttachmentService {
+
+    private final WebNewsAttachmentMapper newsAttachmentMapper;
+
+    public WebNewsAttachmentServiceImpl(WebNewsAttachmentMapper newsAttachmentMapper) {
+        this.newsAttachmentMapper = newsAttachmentMapper;
+    }
+
+    /**
+     * 通过ID查询单条数据
+     *
+     * @param attachmentId 主键
+     * @return 实例对象
+     */
+    @Override
+    public WebNewsAttachment queryById(Integer attachmentId) {
+        return this.newsAttachmentMapper.selectByPrimaryKey(attachmentId);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param newsAttachment 实例对象
+     * @return 实例对象
+     */
+    @Override
+    public WebNewsAttachment insert(WebNewsAttachment newsAttachment) {
+        this.newsAttachmentMapper.insert(newsAttachment);
+        return newsAttachment;
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param newsAttachment 实例对象
+     * @return 实例对象
+     */
+    @Override
+    public WebNewsAttachment update(WebNewsAttachment newsAttachment) {
+        this.newsAttachmentMapper.updateByPrimaryKeySelective(newsAttachment);
+        return this.queryById(newsAttachment.getAttachmentId());
+    }
+
+    /**
+     * 通过主键删除数据
+     *
+     * @param attachmentId 主键
+     * @return 是否成功
+     */
+    @Override
+    public boolean deleteById(Integer attachmentId) {
+        return this.newsAttachmentMapper.deleteByPrimaryKey(attachmentId) > 0;
+    }
+
+    /**
+     * 分页查询多条数据
+     *
+     * @param page 页码
+     * @param size 查询条数
+     * @return 对象列表
+     */
+    @Override
+    public PageInfo queryAllByLimit(int page, int size) {
+        return PageHelper.startPage(page, size).doSelectPageInfo(this.newsAttachmentMapper::selectAll);
+    }
+
+
+    /**
+     * 通过直播查询她关联的培训班
+     * */
+    @Override
+    public List queryByNewsId(Integer newsId) {
+        List list = this.newsAttachmentMapper.queryByNewsId(newsId);
+        return list;
+    }
+}
diff --git a/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/impl/WebNewsServiceImpl.java b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/impl/WebNewsServiceImpl.java
index 461aa6b..d24b900 100644
--- a/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/impl/WebNewsServiceImpl.java
+++ b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/impl/WebNewsServiceImpl.java
@@ -1,13 +1,20 @@
 package com.hc.gpbusiness.service.impl;
 
 import com.github.pagehelper.PageHelper;
+import com.hc.gpbusiness.dto.WebNewsDto;
 import com.hc.gpbusiness.mapper.WebNewsMapper;
+import com.hc.gpbusiness.mapper.WebNewsTypeMapper;
 import com.hc.gpbusiness.model.WebNews;
+import com.hc.gpbusiness.model.WebNewsType;
 import com.hc.gpbusiness.service.WebNewsService;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import com.github.pagehelper.PageInfo;
+import org.springframework.util.CollectionUtils;
 
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * 新闻表
@@ -22,8 +29,11 @@ public class WebNewsServiceImpl implements WebNewsService {
 
     private final WebNewsMapper newsMapper;
 
-    public WebNewsServiceImpl(WebNewsMapper newsMapper) {
+    private final WebNewsTypeMapper newsTypeMapper;
+
+    public WebNewsServiceImpl(WebNewsMapper newsMapper,WebNewsTypeMapper newsTypeMapper) {
         this.newsMapper = newsMapper;
+        this.newsTypeMapper = newsTypeMapper;
     }
 
     /**
@@ -37,6 +47,11 @@ public class WebNewsServiceImpl implements WebNewsService {
         return this.newsMapper.selectByPrimaryKey(newsId);
     }
 
+    @Override
+    public WebNewsDto queryModelById(Integer newsId) {
+        return copy(this.newsMapper.selectByPrimaryKey(newsId));
+    }
+
     /**
      * 新增数据
      *
@@ -86,6 +101,27 @@ public class WebNewsServiceImpl implements WebNewsService {
     public PageInfo queryAllByLimit(int page, int size, Integer moduleId) {
         PageHelper.startPage(page, size);
         List news = this.newsMapper.queryNewsByModuleId(moduleId);
-        return new PageInfo(news);
+        List resultList = copyList(news);
+        return new PageInfo(resultList);
+    }
+
+    public List copyList(List records) {
+        List WebNewsDtoList = new ArrayList<>();
+        for (WebNews record : records) {
+            WebNewsDtoList.add(copy(record));
+        }
+        return WebNewsDtoList;
+    }
+
+    public WebNewsDto copy(WebNews entity) {
+        WebNewsDto newsDto = new WebNewsDto();
+        BeanUtils.copyProperties(entity, newsDto);
+
+        WebNewsType type = newsTypeMapper.selectByPrimaryKey(entity.getTypeId());
+        if (type != null) {
+            newsDto.setTypeName(type.getTypeName());
+        }
+
+        return newsDto;
     }
 }
\ No newline at end of file
diff --git a/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/impl/WebNewsTypeServiceImpl.java b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/impl/WebNewsTypeServiceImpl.java
new file mode 100644
index 0000000..12d578b
--- /dev/null
+++ b/JAVA_MYSQL_WEBSITE/gp-business/src/main/java/com/hc/gpbusiness/service/impl/WebNewsTypeServiceImpl.java
@@ -0,0 +1,85 @@
+package com.hc.gpbusiness.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hc.gpbusiness.mapper.WebNewsTypeMapper;
+import com.hc.gpbusiness.model.WebNewsType;
+import com.hc.gpbusiness.service.WebNewsTypeService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 课程标签表(WebNewsType)表服务实现类
+ *
+ * @author java
+ * @since 2020-07-29 16:23:09
+ */
+
+@Service("newsTypeService")
+public class WebNewsTypeServiceImpl implements WebNewsTypeService {
+
+    private final WebNewsTypeMapper newsTypeMapper;
+
+    public WebNewsTypeServiceImpl(WebNewsTypeMapper newsTypeMapper) {
+        this.newsTypeMapper = newsTypeMapper;
+    }
+
+    /**
+     * 通过ID查询单条数据
+     *
+     * @param tagId 主键
+     * @return 实例对象
+     */
+    @Override
+    public WebNewsType queryById(Integer tagId) {
+        return this.newsTypeMapper.selectByPrimaryKey(tagId);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param newsType 实例对象
+     * @return 实例对象
+     */
+    @Override
+    public WebNewsType insert(WebNewsType newsType) {
+        newsType.setCreateTime(System.currentTimeMillis());
+        this.newsTypeMapper.insert(newsType);
+        return newsType;
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param newsType 实例对象
+     * @return 实例对象
+     */
+    @Override
+    public WebNewsType update(WebNewsType newsType) {
+        newsType.setUpdateTime(System.currentTimeMillis());
+        this.newsTypeMapper.updateByPrimaryKeySelective(newsType);
+        return this.queryById(newsType.getTypeId());
+    }
+
+    /**
+     * 通过主键删除数据
+     *
+     * @param tagId 主键
+     * @return 是否成功
+     */
+    @Override
+    public boolean deleteById(Integer tagId) {
+        return this.newsTypeMapper.deleteByPrimaryKey(tagId) > 0;
+    }
+
+    /**
+     * 分页查询多条数据
+     *
+     * @param page 页码
+     * @param size 查询条数
+     * @return 对象列表
+     */
+    @Override
+    public PageInfo queryAllByLimit(int page, int size) {
+        return PageHelper.startPage(page, size).doSelectPageInfo(this.newsTypeMapper::selectAll);
+    }
+}
\ No newline at end of file
diff --git a/JAVA_MYSQL_WEBSITE/gp-business/src/main/resources/mapper/WebCourseMapper.xml b/JAVA_MYSQL_WEBSITE/gp-business/src/main/resources/mapper/WebCourseMapper.xml
index efb9029..1fad7f3 100644
--- a/JAVA_MYSQL_WEBSITE/gp-business/src/main/resources/mapper/WebCourseMapper.xml
+++ b/JAVA_MYSQL_WEBSITE/gp-business/src/main/resources/mapper/WebCourseMapper.xml
@@ -15,6 +15,7 @@
         
         
         
+        
         
         
     
@@ -32,6 +33,7 @@
            is_valid,
            gallery,
            module_id,
+               type_id,
            create_time,
            update_time
         
diff --git a/JAVA_MYSQL_WEBSITE/gp-business/src/main/resources/mapper/WebCourseTypeMapper.xml b/JAVA_MYSQL_WEBSITE/gp-business/src/main/resources/mapper/WebCourseTypeMapper.xml
new file mode 100644
index 0000000..ab5a6d0
--- /dev/null
+++ b/JAVA_MYSQL_WEBSITE/gp-business/src/main/resources/mapper/WebCourseTypeMapper.xml
@@ -0,0 +1,19 @@
+
+
+
+
+    
+        
+        
+        
+        
+    
+
+    
+           type_id,
+           type_name,
+           create_time,
+           update_time
+        
+
+
\ No newline at end of file
diff --git a/JAVA_MYSQL_WEBSITE/gp-business/src/main/resources/mapper/WebNewsAttachmentMapper.xml b/JAVA_MYSQL_WEBSITE/gp-business/src/main/resources/mapper/WebNewsAttachmentMapper.xml
new file mode 100644
index 0000000..d1b1c24
--- /dev/null
+++ b/JAVA_MYSQL_WEBSITE/gp-business/src/main/resources/mapper/WebNewsAttachmentMapper.xml
@@ -0,0 +1,32 @@
+
+
+
+
+    
+        
+        
+        
+        
+        
+        
+    
+
+    
+        attachment_id,
+           news_id,
+           name,
+           content,
+           url,
+          index_num
+    
+
+
+    
+
+
diff --git a/JAVA_MYSQL_WEBSITE/gp-business/src/main/resources/mapper/WebNewsMapper.xml b/JAVA_MYSQL_WEBSITE/gp-business/src/main/resources/mapper/WebNewsMapper.xml
index a6c690f..83b1515 100644
--- a/JAVA_MYSQL_WEBSITE/gp-business/src/main/resources/mapper/WebNewsMapper.xml
+++ b/JAVA_MYSQL_WEBSITE/gp-business/src/main/resources/mapper/WebNewsMapper.xml
@@ -8,6 +8,7 @@
         
         
         
+        
         
         
     
@@ -18,6 +19,7 @@
            news_logo,
            news_content,
            module_id,
+           type_id,
            create_time,
            update_time
         
diff --git a/JAVA_MYSQL_WEBSITE/gp-business/src/main/resources/mapper/WebNewsTypeMapper.xml b/JAVA_MYSQL_WEBSITE/gp-business/src/main/resources/mapper/WebNewsTypeMapper.xml
new file mode 100644
index 0000000..f88ada9
--- /dev/null
+++ b/JAVA_MYSQL_WEBSITE/gp-business/src/main/resources/mapper/WebNewsTypeMapper.xml
@@ -0,0 +1,19 @@
+
+
+
+
+    
+        
+        
+        
+        
+    
+
+    
+           type_id,
+           type_name,
+           create_time,
+           update_time
+        
+
+
\ No newline at end of file
diff --git a/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/back/BackBannerController.java b/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/back/BackBannerController.java
new file mode 100644
index 0000000..bc32c78
--- /dev/null
+++ b/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/back/BackBannerController.java
@@ -0,0 +1,65 @@
+package com.hc.gpweb.controller.back;
+
+import com.hc.gpbusiness.model.WebBanner;
+import com.hc.gpbusiness.service.WebBannerService;
+import com.hc.gpcore.utils.result.Result;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+
+/**
+ * 广告表
+ * (WebBanner)表控制层
+ *
+ * @author java
+ * @since 2020-07-29 16:23:04
+ */
+
+@RestController
+@RequestMapping("/api/back/banner")
+public class BackBannerController {
+
+    /**
+     * 服务对象
+     */
+    private final WebBannerService bannerService;
+
+    public BackBannerController(WebBannerService bannerService) {
+        this.bannerService = bannerService;
+    }
+
+    @GetMapping("/{id}")
+    @ApiOperation(value = "依据主键获取 WebBanner", response = Result.class)
+    public Result selectWebBanner(@PathVariable("id") Integer id) {
+        return Result.success(this.bannerService.queryById(id));
+    }
+
+    @PostMapping("/insert")
+    @ApiOperation(value = "新增 WebBanner", response = Result.class)
+    public Result addWebBanner(@Valid @RequestBody WebBanner banner) {
+        return Result.success(bannerService.insert(banner));
+    }
+
+    @PutMapping("/update")
+    @ApiOperation(value = "修改 WebBanner", response = Result.class)
+    public Result updateWebBanner(@RequestBody WebBanner banner) {
+        return Result.success(bannerService.update(banner));
+    }
+
+    @DeleteMapping("/delete/{id}")
+    @ApiOperation(value = "依据主键删除 WebBanner", response = Result.class)
+    public Result deleteWebBanner(@PathVariable("id") Integer id) {
+        return Result.success(bannerService.deleteById(id));
+    }
+
+    @GetMapping("/list")
+    @ApiOperation(value = "获取 WebBanner列表(分页)", response = Result.class)
+    public Result listWebBanner(@RequestParam(defaultValue = "0") Integer page,
+                             @RequestParam(defaultValue = "0") Integer size) {
+        return Result.success(bannerService.queryAllByLimit(page, size));
+    }
+
+
+}
\ No newline at end of file
diff --git a/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/back/BackCourseController.java b/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/back/BackCourseController.java
index d24bb14..b40c6b3 100644
--- a/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/back/BackCourseController.java
+++ b/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/back/BackCourseController.java
@@ -33,7 +33,7 @@ public class BackCourseController {
     @GetMapping("/{id}")
     @ApiOperation(value = "依据主键获取 Course", response = Result.class)
     public Result selectBackCourse(@PathVariable("id") Integer id) {
-        return Result.success(this.courseService.queryById(id));
+        return Result.success(this.courseService.queryModelById(id));
     }
 
     @PostMapping("/insert")
diff --git a/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/back/BackCourseTypeController.java b/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/back/BackCourseTypeController.java
new file mode 100644
index 0000000..932a78d
--- /dev/null
+++ b/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/back/BackCourseTypeController.java
@@ -0,0 +1,67 @@
+package com.hc.gpweb.controller.back;
+
+
+import com.hc.gpbusiness.model.WebCourse;
+import com.hc.gpbusiness.model.WebCourseType;
+import com.hc.gpbusiness.service.WebCourseService;
+import com.hc.gpbusiness.service.WebCourseTypeService;
+import com.hc.gpcore.utils.result.Result;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+
+/**
+ * 课程分类(CourseType)表控制层
+ *
+ * @author java
+ * @since 2020-07-29 16:23:06
+ */
+
+@RestController
+@RequestMapping("/api/back/courseType")
+public class BackCourseTypeController {
+
+    /**
+     * 服务对象
+     */
+    private final WebCourseTypeService courseTypeService;
+
+    public BackCourseTypeController(WebCourseTypeService courseTypeService) {
+        this.courseTypeService = courseTypeService;
+    }
+
+    @GetMapping("/{id}")
+    @ApiOperation(value = "依据主键获取 分类", response = Result.class)
+    public Result selectBackCourse(@PathVariable("id") Integer id) {
+        return Result.success(this.courseTypeService.queryById(id));
+    }
+
+    @PostMapping("/insert")
+    @ApiOperation(value = "新增 分类", response = Result.class)
+    public Result addBackCourse(@Valid @RequestBody WebCourseType course) {
+        return Result.success(courseTypeService.insert(course));
+    }
+
+    @PutMapping("/update")
+    @ApiOperation(value = "修改 分类", response = Result.class)
+    public Result updateBackCourse(@RequestBody WebCourseType course) {
+        return Result.success(courseTypeService.update(course));
+    }
+
+    @DeleteMapping("/delete/{id}")
+    @ApiOperation(value = "依据主键删除 分类", response = Result.class)
+    public Result deleteBackCourse(@PathVariable("id") Integer id) {
+        return Result.success(courseTypeService.deleteById(id));
+    }
+
+    @GetMapping("/list")
+    @ApiOperation(value = "获取 Course列表(分页)", response = Result.class)
+    public Result listBackCourse(@RequestParam(defaultValue = "0") Integer page,
+                                 @RequestParam(defaultValue = "0") Integer size) {
+        return Result.success(courseTypeService.queryAllByLimit(page, size));
+    }
+
+
+}
\ No newline at end of file
diff --git a/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/back/BackNewsAttachmentController.java b/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/back/BackNewsAttachmentController.java
new file mode 100644
index 0000000..8bdd6cf
--- /dev/null
+++ b/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/back/BackNewsAttachmentController.java
@@ -0,0 +1,66 @@
+package com.hc.gpweb.controller.back;
+
+import com.hc.gpbusiness.model.WebNewsAttachment;
+import com.hc.gpbusiness.service.WebNewsAttachmentService;
+import com.hc.gpcore.utils.result.Result;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * 新闻附件表(NewsAttachment)表控制层
+ *
+ * @author makejava
+ * @since 2024-01-20 11:48:47
+ */
+
+@RestController
+@RequestMapping("/api/back/newsAttachment")
+public class BackNewsAttachmentController {
+
+    /**
+     * 服务对象
+     */
+    private final WebNewsAttachmentService newsAttachmentService;
+
+    public BackNewsAttachmentController(WebNewsAttachmentService newsAttachmentService) {
+        this.newsAttachmentService = newsAttachmentService;
+    }
+
+    @GetMapping("/{id}")
+    @ApiOperation(value = "依据主键获取 NewsAttachment", response = Result.class)
+    public Result selectDetail(@PathVariable("id") Integer id) {
+        return Result.success(this.newsAttachmentService.queryById(id));
+    }
+
+
+    @PostMapping("/insert")
+    @ApiOperation(value = "新增附件", response = Result.class)
+    public Result addAttachment(@Valid @RequestBody List newsAttachmentList) {
+        newsAttachmentList.forEach(newsAttachmentService::insert);
+        return Result.success(newsAttachmentList);
+    }
+
+
+    @PutMapping("/update")
+    @ApiOperation(value = "修改 NewsAttachment", response = Result.class)
+    public Result updateNewsAttachment(@RequestBody WebNewsAttachment newsAttachment) {
+        return Result.success(newsAttachmentService.update(newsAttachment));
+    }
+
+    @DeleteMapping("/delete/{id}")
+    @ApiOperation(value = "依据主键删除 NewsAttachment", response = Result.class)
+    public Result deleteNewsAttachment(@PathVariable("id") Integer id) {
+        return Result.success(newsAttachmentService.deleteById(id));
+    }
+
+    @GetMapping("/queryByNewsId")
+    @ApiOperation(value = "根据newID获取他的附件", response = Result.class)
+    public Result queryByNewsId(@RequestParam(defaultValue = "0") Integer newsId) {
+        return Result.success(newsAttachmentService.queryByNewsId(newsId));
+    }
+
+
+}
diff --git a/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/back/BackNewsController.java b/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/back/BackNewsController.java
index 54d9e04..b29a2ce 100644
--- a/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/back/BackNewsController.java
+++ b/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/back/BackNewsController.java
@@ -33,7 +33,7 @@ public class BackNewsController {
     @GetMapping("/{id}")
     @ApiOperation(value = "依据主键获取 News", response = Result.class)
     public Result selectBackNews(@PathVariable("id") Integer id) {
-        return Result.success(this.newsService.queryById(id));
+        return Result.success(this.newsService.queryModelById(id));
     }
 
     @PostMapping("/insert")
diff --git a/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/back/BackNewsTypeController.java b/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/back/BackNewsTypeController.java
new file mode 100644
index 0000000..554a2d1
--- /dev/null
+++ b/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/back/BackNewsTypeController.java
@@ -0,0 +1,65 @@
+package com.hc.gpweb.controller.back;
+
+
+import com.hc.gpbusiness.model.WebNewsType;
+import com.hc.gpbusiness.service.WebNewsTypeService;
+import com.hc.gpcore.utils.result.Result;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+
+/**
+ * 新闻分类(NewsType)表控制层
+ *
+ * @author java
+ * @since 2020-07-29 16:23:06
+ */
+
+@RestController
+@RequestMapping("/api/back/newsType")
+public class BackNewsTypeController {
+
+    /**
+     * 服务对象
+     */
+    private final WebNewsTypeService newsTypeService;
+
+    public BackNewsTypeController(WebNewsTypeService newsTypeService) {
+        this.newsTypeService = newsTypeService;
+    }
+
+    @GetMapping("/{id}")
+    @ApiOperation(value = "依据主键获取 分类", response = Result.class)
+    public Result selectBackCourse(@PathVariable("id") Integer id) {
+        return Result.success(this.newsTypeService.queryById(id));
+    }
+
+    @PostMapping("/insert")
+    @ApiOperation(value = "新增 分类", response = Result.class)
+    public Result addBackCourse(@Valid @RequestBody WebNewsType course) {
+        return Result.success(newsTypeService.insert(course));
+    }
+
+    @PutMapping("/update")
+    @ApiOperation(value = "修改 分类", response = Result.class)
+    public Result updateBackCourse(@RequestBody WebNewsType course) {
+        return Result.success(newsTypeService.update(course));
+    }
+
+    @DeleteMapping("/delete/{id}")
+    @ApiOperation(value = "依据主键删除 分类", response = Result.class)
+    public Result deleteBackCourse(@PathVariable("id") Integer id) {
+        return Result.success(newsTypeService.deleteById(id));
+    }
+
+    @GetMapping("/list")
+    @ApiOperation(value = "获取 Course列表(分页)", response = Result.class)
+    public Result listBackCourse(@RequestParam(defaultValue = "0") Integer page,
+                                 @RequestParam(defaultValue = "0") Integer size) {
+        return Result.success(newsTypeService.queryAllByLimit(page, size));
+    }
+
+
+}
\ No newline at end of file
diff --git a/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/front/FrontCourseController.java b/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/front/FrontCourseController.java
index 37b5a7c..8a7f1d1 100644
--- a/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/front/FrontCourseController.java
+++ b/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/front/FrontCourseController.java
@@ -32,7 +32,7 @@ public class FrontCourseController {
     @GetMapping("/{id}")
     @ApiOperation(value = "依据主键获取 Course", response = Result.class)
     public Result selectCourse(@PathVariable("id") Integer id) {
-        return Result.success(this.courseService.queryById(id));
+        return Result.success(this.courseService.queryModelById(id));
     }
 
     @GetMapping("/list")
diff --git a/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/front/FrontNewsAttachmentController.java b/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/front/FrontNewsAttachmentController.java
new file mode 100644
index 0000000..f72ab09
--- /dev/null
+++ b/JAVA_MYSQL_WEBSITE/gp-web/src/main/java/com/hc/gpweb/controller/front/FrontNewsAttachmentController.java
@@ -0,0 +1,38 @@
+package com.hc.gpweb.controller.front;
+
+import com.hc.gpbusiness.service.WebNewsAttachmentService;
+import com.hc.gpcore.utils.result.Result;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 新闻附件表(NewsAttachment)表控制层
+ *
+ * @author makejava
+ * @since 2024-01-20 11:48:47
+ */
+
+@RestController
+@RequestMapping("/api/front/newsAttachment")
+public class FrontNewsAttachmentController {
+
+    /**
+     * 服务对象
+     */
+    private final WebNewsAttachmentService newsAttachmentService;
+
+    public FrontNewsAttachmentController(WebNewsAttachmentService newsAttachmentService) {
+        this.newsAttachmentService = newsAttachmentService;
+    }
+
+    @GetMapping("/queryByNewsId")
+    @ApiOperation(value = "根据newID获取他的附件", response = Result.class)
+    public Result queryByNewsId(@RequestParam(defaultValue = "0") Integer newsId) {
+        return Result.success(newsAttachmentService.queryByNewsId(newsId));
+    }
+
+
+}
diff --git a/JAVA_MYSQL_WEBSITE/pom.xml b/JAVA_MYSQL_WEBSITE/pom.xml
index 1e1c48d..87b225e 100644
--- a/JAVA_MYSQL_WEBSITE/pom.xml
+++ b/JAVA_MYSQL_WEBSITE/pom.xml
@@ -64,6 +64,7 @@
         
             org.projectlombok
             lombok
+            1.18.24
             true