Browse Source

作业第一版

master
zrh 2 months ago
commit
c1d4c7ce21
  1. 2
      .gitattributes
  2. 33
      .gitignore
  3. 19
      .mvn/wrapper/maven-wrapper.properties
  4. 24
      common/common_util/pom.xml
  5. 80
      common/common_util/src/main/java/com/homilylink/common/base/result/R.java
  6. 65
      common/common_util/src/main/java/com/homilylink/common/base/result/ResultCodeEnum.java
  7. 7
      common/common_util/src/main/webapp/WEB-INF/web.xml
  8. 5
      common/common_util/src/main/webapp/index.jsp
  9. 45
      common/pom.xml
  10. 29
      common/service_base/pom.xml
  11. 28
      common/service_base/src/main/java/com/homilylink/assignment/base/config/MybatisPlusConfig.java
  12. 59
      common/service_base/src/main/java/com/homilylink/assignment/base/config/Swagger2Config.java
  13. 26
      common/service_base/src/main/java/com/homilylink/assignment/base/handler/CommonMetaObjectHandler.java
  14. 36
      common/service_base/src/main/java/com/homilylink/assignment/base/handler/GlobalExceptionHandler.java
  15. 7
      common/service_base/src/main/webapp/WEB-INF/web.xml
  16. 5
      common/service_base/src/main/webapp/index.jsp
  17. 259
      mvnw
  18. 149
      mvnw.cmd
  19. 193
      pom.xml
  20. 101
      service/pom.xml
  21. 24
      service/service_assignment/pom.xml
  22. 21
      service/service_assignment/src/main/java/com/homilylink/assignment/ServiceAssignmentApplication.java
  23. 21
      service/service_assignment/src/main/java/com/homilylink/assignment/controller/AnswersController.java
  24. 21
      service/service_assignment/src/main/java/com/homilylink/assignment/controller/ArticlesController.java
  25. 21
      service/service_assignment/src/main/java/com/homilylink/assignment/controller/AssignmentSubmissionsController.java
  26. 21
      service/service_assignment/src/main/java/com/homilylink/assignment/controller/CoursessController.java
  27. 21
      service/service_assignment/src/main/java/com/homilylink/assignment/controller/MemberInfoController.java
  28. 21
      service/service_assignment/src/main/java/com/homilylink/assignment/controller/OptionsController.java
  29. 21
      service/service_assignment/src/main/java/com/homilylink/assignment/controller/QuestionsController.java
  30. 30
      service/service_assignment/src/main/java/com/homilylink/assignment/controller/User.java
  31. 21
      service/service_assignment/src/main/java/com/homilylink/assignment/controller/UsersController.java
  32. 89
      service/service_assignment/src/main/java/com/homilylink/assignment/controller/admin/AssignmentController.java
  33. 41
      service/service_assignment/src/main/java/com/homilylink/assignment/controller/admin/LiveSessionsController.java
  34. 61
      service/service_assignment/src/main/java/com/homilylink/assignment/entity/Answers.java
  35. 49
      service/service_assignment/src/main/java/com/homilylink/assignment/entity/Articles.java
  36. 66
      service/service_assignment/src/main/java/com/homilylink/assignment/entity/Assignment.java
  37. 64
      service/service_assignment/src/main/java/com/homilylink/assignment/entity/AssignmentSubmissions.java
  38. 49
      service/service_assignment/src/main/java/com/homilylink/assignment/entity/Coursess.java
  39. 58
      service/service_assignment/src/main/java/com/homilylink/assignment/entity/LiveSessions.java
  40. 147
      service/service_assignment/src/main/java/com/homilylink/assignment/entity/MemberInfo.java
  41. 53
      service/service_assignment/src/main/java/com/homilylink/assignment/entity/Options.java
  42. 53
      service/service_assignment/src/main/java/com/homilylink/assignment/entity/Questions.java
  43. 55
      service/service_assignment/src/main/java/com/homilylink/assignment/entity/Users.java
  44. 52
      service/service_assignment/src/main/java/com/homilylink/assignment/entity/vo/AssignmentLiveVo.java
  45. 22
      service/service_assignment/src/main/java/com/homilylink/assignment/entity/vo/AssignmentVo.java
  46. 16
      service/service_assignment/src/main/java/com/homilylink/assignment/mapper/AnswersMapper.java
  47. 16
      service/service_assignment/src/main/java/com/homilylink/assignment/mapper/ArticlesMapper.java
  48. 16
      service/service_assignment/src/main/java/com/homilylink/assignment/mapper/AssignmentMapper.java
  49. 16
      service/service_assignment/src/main/java/com/homilylink/assignment/mapper/AssignmentSubmissionsMapper.java
  50. 16
      service/service_assignment/src/main/java/com/homilylink/assignment/mapper/CoursessMapper.java
  51. 16
      service/service_assignment/src/main/java/com/homilylink/assignment/mapper/LiveSessionsMapper.java
  52. 16
      service/service_assignment/src/main/java/com/homilylink/assignment/mapper/MemberInfoMapper.java
  53. 16
      service/service_assignment/src/main/java/com/homilylink/assignment/mapper/OptionsMapper.java
  54. 16
      service/service_assignment/src/main/java/com/homilylink/assignment/mapper/QuestionsMapper.java
  55. 16
      service/service_assignment/src/main/java/com/homilylink/assignment/mapper/UsersMapper.java
  56. 5
      service/service_assignment/src/main/java/com/homilylink/assignment/mapper/xml/AnswersMapper.xml
  57. 5
      service/service_assignment/src/main/java/com/homilylink/assignment/mapper/xml/ArticlesMapper.xml
  58. 5
      service/service_assignment/src/main/java/com/homilylink/assignment/mapper/xml/AssignmentMapper.xml
  59. 5
      service/service_assignment/src/main/java/com/homilylink/assignment/mapper/xml/AssignmentSubmissionsMapper.xml
  60. 5
      service/service_assignment/src/main/java/com/homilylink/assignment/mapper/xml/CoursessMapper.xml
  61. 5
      service/service_assignment/src/main/java/com/homilylink/assignment/mapper/xml/LiveSessionsMapper.xml
  62. 5
      service/service_assignment/src/main/java/com/homilylink/assignment/mapper/xml/MemberInfoMapper.xml
  63. 5
      service/service_assignment/src/main/java/com/homilylink/assignment/mapper/xml/OptionsMapper.xml
  64. 5
      service/service_assignment/src/main/java/com/homilylink/assignment/mapper/xml/QuestionsMapper.xml
  65. 5
      service/service_assignment/src/main/java/com/homilylink/assignment/mapper/xml/UsersMapper.xml
  66. 16
      service/service_assignment/src/main/java/com/homilylink/assignment/service/AnswersService.java
  67. 16
      service/service_assignment/src/main/java/com/homilylink/assignment/service/ArticlesService.java
  68. 19
      service/service_assignment/src/main/java/com/homilylink/assignment/service/AssignmentService.java
  69. 16
      service/service_assignment/src/main/java/com/homilylink/assignment/service/AssignmentSubmissionsService.java
  70. 16
      service/service_assignment/src/main/java/com/homilylink/assignment/service/CoursessService.java
  71. 20
      service/service_assignment/src/main/java/com/homilylink/assignment/service/LiveSessionsService.java
  72. 16
      service/service_assignment/src/main/java/com/homilylink/assignment/service/MemberInfoService.java
  73. 16
      service/service_assignment/src/main/java/com/homilylink/assignment/service/OptionsService.java
  74. 16
      service/service_assignment/src/main/java/com/homilylink/assignment/service/QuestionsService.java
  75. 16
      service/service_assignment/src/main/java/com/homilylink/assignment/service/UsersService.java
  76. 20
      service/service_assignment/src/main/java/com/homilylink/assignment/service/impl/AnswersServiceImpl.java
  77. 20
      service/service_assignment/src/main/java/com/homilylink/assignment/service/impl/ArticlesServiceImpl.java
  78. 33
      service/service_assignment/src/main/java/com/homilylink/assignment/service/impl/AssignmentServiceImpl.java
  79. 20
      service/service_assignment/src/main/java/com/homilylink/assignment/service/impl/AssignmentSubmissionsServiceImpl.java
  80. 20
      service/service_assignment/src/main/java/com/homilylink/assignment/service/impl/CoursessServiceImpl.java
  81. 43
      service/service_assignment/src/main/java/com/homilylink/assignment/service/impl/LiveSessionsServiceImpl.java
  82. 20
      service/service_assignment/src/main/java/com/homilylink/assignment/service/impl/MemberInfoServiceImpl.java
  83. 20
      service/service_assignment/src/main/java/com/homilylink/assignment/service/impl/OptionsServiceImpl.java
  84. 20
      service/service_assignment/src/main/java/com/homilylink/assignment/service/impl/QuestionsServiceImpl.java
  85. 20
      service/service_assignment/src/main/java/com/homilylink/assignment/service/impl/UsersServiceImpl.java
  86. 50
      service/service_assignment/src/main/resources/application.yml
  87. 5
      service/service_assignment/src/main/resources/mapper/AnswersMapper.xml
  88. 5
      service/service_assignment/src/main/resources/mapper/ArticlesMapper.xml
  89. 5
      service/service_assignment/src/main/resources/mapper/AssignmentMapper.xml
  90. 5
      service/service_assignment/src/main/resources/mapper/AssignmentSubmissionsMapper.xml
  91. 5
      service/service_assignment/src/main/resources/mapper/CoursessMapper.xml
  92. 5
      service/service_assignment/src/main/resources/mapper/LiveSessionsMapper.xml
  93. 5
      service/service_assignment/src/main/resources/mapper/OptionsMapper.xml
  94. 5
      service/service_assignment/src/main/resources/mapper/QuestionsMapper.xml
  95. 5
      service/service_assignment/src/main/resources/mapper/UsersMapper.xml
  96. 7
      service/service_assignment/src/main/webapp/WEB-INF/web.xml
  97. 5
      service/service_assignment/src/main/webapp/index.jsp
  98. 102
      service/service_assignment/src/test/java/com/homily/assignment/CodeGenerator.java

2
.gitattributes

@ -0,0 +1,2 @@
/mvnw text eol=lf
*.cmd text eol=crlf

33
.gitignore

@ -0,0 +1,33 @@
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/

19
.mvn/wrapper/maven-wrapper.properties

@ -0,0 +1,19 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
wrapperVersion=3.3.2
distributionType=only-script
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip

24
common/common_util/pom.xml

@ -0,0 +1,24 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.homily</groupId>
<artifactId>common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>common_util</artifactId>
<packaging>war</packaging>
<name>common_util Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>common_util</finalName>
</build>
</project>

80
common/common_util/src/main/java/com/homilylink/common/base/result/R.java

@ -0,0 +1,80 @@
package com.homilylink.common.base.result;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
/**
* @author helen
* @since 2019/12/25
*/
@Data
@ApiModel(value = "全局统一返回结果")
public class R {
@ApiModelProperty(value = "是否成功")
private Boolean success;
@ApiModelProperty(value = "返回码")
private Integer code;
@ApiModelProperty(value = "返回消息")
private String message;
@ApiModelProperty(value = "返回数据")
private Map<String, Object> data = new HashMap<String, Object>();
public R(){}
public static R ok(){
R r = new R();
r.setSuccess(ResultCodeEnum.SUCCESS.getSuccess());
r.setCode(ResultCodeEnum.SUCCESS.getCode());
r.setMessage(ResultCodeEnum.SUCCESS.getMessage());
return r;
}
public static R error(){
R r = new R();
r.setSuccess(ResultCodeEnum.UNKNOWN_REASON.getSuccess());
r.setCode(ResultCodeEnum.UNKNOWN_REASON.getCode());
r.setMessage(ResultCodeEnum.UNKNOWN_REASON.getMessage());
return r;
}
public static R setResult(ResultCodeEnum resultCodeEnum){
R r = new R();
r.setSuccess(resultCodeEnum.getSuccess());
r.setCode(resultCodeEnum.getCode());
r.setMessage(resultCodeEnum.getMessage());
return r;
}
public R success(Boolean success){
this.setSuccess(success);
return this;
}
public R message(String message){
this.setMessage(message);
return this;
}
public R code(Integer code){
this.setCode(code);
return this;
}
public R data(String key, Object value){
this.data.put(key, value);
return this;
}
public R data(Map<String, Object> map){
this.setData(map);
return this;
}
}

65
common/common_util/src/main/java/com/homilylink/common/base/result/ResultCodeEnum.java

@ -0,0 +1,65 @@
package com.homilylink.common.base.result;
import lombok.Getter;
import lombok.ToString;
/**
* @author helen
* @since 2019/12/25
*/
@Getter
@ToString
public enum ResultCodeEnum {
SUCCESS(true, 20000,"成功"),
UNKNOWN_REASON(false, 20001, "未知错误"),
BAD_SQL_GRAMMAR(false, 21001, "sql语法错误"),
JSON_PARSE_ERROR(false, 21002, "json解析异常"),
PARAM_ERROR(false, 21003, "参数不正确"),
FILE_UPLOAD_ERROR(false, 21004, "文件上传错误"),
FILE_DELETE_ERROR(false, 21005, "文件刪除错误"),
EXCEL_DATA_IMPORT_ERROR(false, 21006, "Excel数据导入错误"),
VIDEO_UPLOAD_ALIYUN_ERROR(false, 22001, "视频上传至阿里云失败"),
VIDEO_UPLOAD_TOMCAT_ERROR(false, 22002, "视频上传至业务服务器失败"),
VIDEO_DELETE_ALIYUN_ERROR(false, 22003, "阿里云视频文件删除失败"),
FETCH_VIDEO_UPLOADAUTH_ERROR(false, 22004, "获取上传地址和凭证失败"),
REFRESH_VIDEO_UPLOADAUTH_ERROR(false, 22005, "刷新上传地址和凭证失败"),
FETCH_PLAYAUTH_ERROR(false, 22006, "获取播放凭证失败"),
URL_ENCODE_ERROR(false, 23001, "URL编码失败"),
ILLEGAL_CALLBACK_REQUEST_ERROR(false, 23002, "非法回调请求"),
FETCH_ACCESSTOKEN_FAILD(false, 23003, "获取accessToken失败"),
FETCH_USERINFO_ERROR(false, 23004, "获取用户信息失败"),
LOGIN_ERROR(false, 23005, "登录失败"),
COMMENT_EMPTY(false, 24006, "评论内容必须填写"),
PAY_RUN(false, 25000, "支付中"),
PAY_UNIFIEDORDER_ERROR(false, 25001, "统一下单错误"),
PAY_ORDERQUERY_ERROR(false, 25002, "查询支付结果错误"),
ORDER_EXIST_ERROR(false, 25003, "课程已购买"),
GATEWAY_ERROR(false, 26000, "服务不能访问"),
CODE_ERROR(false, 28000, "验证码错误"),
LOGIN_AUTH(false, 28004, "需要登录"),
LOGIN_ACL(false, 28005, "没有权限");
private Boolean success;
private Integer code;
private String message;
ResultCodeEnum(Boolean success, Integer code, String message) {
this.success = success;
this.code = code;
this.message = message;
}
}

7
common/common_util/src/main/webapp/WEB-INF/web.xml

@ -0,0 +1,7 @@
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
</web-app>

5
common/common_util/src/main/webapp/index.jsp

@ -0,0 +1,5 @@
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>

45
common/pom.xml

@ -0,0 +1,45 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.homily</groupId>
<artifactId>homily_link</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>common</artifactId>
<packaging>pom</packaging>
<name>common Maven Webapp</name>
<url>http://maven.apache.org</url>
<modules>
<module>common_util</module>
<module>service_base</module>
</modules>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<!-- lombok用来简化实体类:需要安装lombok插件 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
</dependency>
</dependencies>
<build>
<finalName>common</finalName>
</build>
</project>

29
common/service_base/pom.xml

@ -0,0 +1,29 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.homily</groupId>
<artifactId>common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>service_base</artifactId>
<packaging>war</packaging>
<name>service_base Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.homily</groupId>
<artifactId>common_util</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<finalName>service_base</finalName>
</build>
</project>

28
common/service_base/src/main/java/com/homilylink/assignment/base/config/MybatisPlusConfig.java

@ -0,0 +1,28 @@
package com.homilylink.assignment.base.config;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
* @program: homily_link
* @ClassName MybatisPlusConfig
* @description:
* @author: 赵如慧
* @create: 202504-23 10:44
* @Version 1.0
**/
@EnableTransactionManagement
@Configuration
@MapperScan("com.homilylink.*.mapper")
public class MybatisPlusConfig {
/**
* 分页插件
*/
@Bean
public PaginationInterceptor paginationInterceptor(){
return new PaginationInterceptor();
}
}

59
common/service_base/src/main/java/com/homilylink/assignment/base/config/Swagger2Config.java

@ -0,0 +1,59 @@
package com.homilylink.assignment.base.config;
import com.google.common.base.Predicates;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import javax.print.Doc;
/**
* @program: homily_link
* @ClassName Swagger2Config
* @description:
* @author: 赵如慧
* @create: 202504-23 13:20
* @Version 1.0
**/
@Configuration
@EnableSwagger2
public class Swagger2Config {
@Bean
public Docket webApiConfig(){
return new Docket(DocumentationType.SWAGGER_2)
.groupName("webApi")
.apiInfo(webApiInfo())
.select()
.paths(Predicates.and(PathSelectors.regex("/api/.*")))
.build();
}
@Bean
public Docket adminApiConfig(){
return new Docket(DocumentationType.SWAGGER_2)
.groupName("adminApi")
.apiInfo(adminApiInfo())
.select()
.paths(Predicates.and(PathSelectors.regex("/admin/.*")))
.build();
}
private ApiInfo webApiInfo(){
return new ApiInfoBuilder().title("网站的API文档")
.description("本文档描述了作业的api接口的定义")
.version("1.0")
.contact(new Contact("zhaoruhui","http://www.baidu.com","national_zrh@163.com"))
.build();
}
private ApiInfo adminApiInfo(){
return new ApiInfoBuilder().title("网站的API文档")
.description("本文档描述了作业的后台管理接口的定义")
.version("1.0")
.contact(new Contact("zhaoruhui","http://www.baidu.com","national_zrh@163.com"))
.build();
}
}

26
common/service_base/src/main/java/com/homilylink/assignment/base/handler/CommonMetaObjectHandler.java

@ -0,0 +1,26 @@
package com.homilylink.assignment.base.handler;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* @author helen
* @since 2020/4/1
*/
@Component
public class CommonMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
this.setFieldValByName("createdAt", new Date(), metaObject);
this.setFieldValByName("updatedAt", new Date(), metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updatedAt", new Date(), metaObject);
}
}

36
common/service_base/src/main/java/com/homilylink/assignment/base/handler/GlobalExceptionHandler.java

@ -0,0 +1,36 @@
package com.homilylink.assignment.base.handler;
import com.homilylink.common.base.result.R;
import com.homilylink.common.base.result.ResultCodeEnum;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.jdbc.BadSqlGrammarException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* @author helen
* @since 2020/4/1
*/
@ControllerAdvice
@Slf4j
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
@ResponseBody
public R error(Exception e){
e.printStackTrace();
return R.error();
}
@ExceptionHandler(BadSqlGrammarException.class)
@ResponseBody
public R error(BadSqlGrammarException e){
e.printStackTrace();
return R.setResult(ResultCodeEnum.BAD_SQL_GRAMMAR);
}
@ExceptionHandler(HttpMessageNotReadableException.class)
@ResponseBody
public R error(HttpMessageNotReadableException e){
e.printStackTrace();
return R.setResult(ResultCodeEnum.JSON_PARSE_ERROR);
}
}

7
common/service_base/src/main/webapp/WEB-INF/web.xml

@ -0,0 +1,7 @@
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
</web-app>

5
common/service_base/src/main/webapp/index.jsp

@ -0,0 +1,5 @@
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>

259
mvnw

@ -0,0 +1,259 @@
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Apache Maven Wrapper startup batch script, version 3.3.2
#
# Optional ENV vars
# -----------------
# JAVA_HOME - location of a JDK home dir, required when download maven via java source
# MVNW_REPOURL - repo url base for downloading maven distribution
# MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven
# MVNW_VERBOSE - true: enable verbose log; debug: trace the mvnw script; others: silence the output
# ----------------------------------------------------------------------------
set -euf
[ "${MVNW_VERBOSE-}" != debug ] || set -x
# OS specific support.
native_path() { printf %s\\n "$1"; }
case "$(uname)" in
CYGWIN* | MINGW*)
[ -z "${JAVA_HOME-}" ] || JAVA_HOME="$(cygpath --unix "$JAVA_HOME")"
native_path() { cygpath --path --windows "$1"; }
;;
esac
# set JAVACMD and JAVACCMD
set_java_home() {
# For Cygwin and MinGW, ensure paths are in Unix format before anything is touched
if [ -n "${JAVA_HOME-}" ]; then
if [ -x "$JAVA_HOME/jre/sh/java" ]; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
JAVACCMD="$JAVA_HOME/jre/sh/javac"
else
JAVACMD="$JAVA_HOME/bin/java"
JAVACCMD="$JAVA_HOME/bin/javac"
if [ ! -x "$JAVACMD" ] || [ ! -x "$JAVACCMD" ]; then
echo "The JAVA_HOME environment variable is not defined correctly, so mvnw cannot run." >&2
echo "JAVA_HOME is set to \"$JAVA_HOME\", but \"\$JAVA_HOME/bin/java\" or \"\$JAVA_HOME/bin/javac\" does not exist." >&2
return 1
fi
fi
else
JAVACMD="$(
'set' +e
'unset' -f command 2>/dev/null
'command' -v java
)" || :
JAVACCMD="$(
'set' +e
'unset' -f command 2>/dev/null
'command' -v javac
)" || :
if [ ! -x "${JAVACMD-}" ] || [ ! -x "${JAVACCMD-}" ]; then
echo "The java/javac command does not exist in PATH nor is JAVA_HOME set, so mvnw cannot run." >&2
return 1
fi
fi
}
# hash string like Java String::hashCode
hash_string() {
str="${1:-}" h=0
while [ -n "$str" ]; do
char="${str%"${str#?}"}"
h=$(((h * 31 + $(LC_CTYPE=C printf %d "'$char")) % 4294967296))
str="${str#?}"
done
printf %x\\n $h
}
verbose() { :; }
[ "${MVNW_VERBOSE-}" != true ] || verbose() { printf %s\\n "${1-}"; }
die() {
printf %s\\n "$1" >&2
exit 1
}
trim() {
# MWRAPPER-139:
# Trims trailing and leading whitespace, carriage returns, tabs, and linefeeds.
# Needed for removing poorly interpreted newline sequences when running in more
# exotic environments such as mingw bash on Windows.
printf "%s" "${1}" | tr -d '[:space:]'
}
# parse distributionUrl and optional distributionSha256Sum, requires .mvn/wrapper/maven-wrapper.properties
while IFS="=" read -r key value; do
case "${key-}" in
distributionUrl) distributionUrl=$(trim "${value-}") ;;
distributionSha256Sum) distributionSha256Sum=$(trim "${value-}") ;;
esac
done <"${0%/*}/.mvn/wrapper/maven-wrapper.properties"
[ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in ${0%/*}/.mvn/wrapper/maven-wrapper.properties"
case "${distributionUrl##*/}" in
maven-mvnd-*bin.*)
MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/
case "${PROCESSOR_ARCHITECTURE-}${PROCESSOR_ARCHITEW6432-}:$(uname -a)" in
*AMD64:CYGWIN* | *AMD64:MINGW*) distributionPlatform=windows-amd64 ;;
:Darwin*x86_64) distributionPlatform=darwin-amd64 ;;
:Darwin*arm64) distributionPlatform=darwin-aarch64 ;;
:Linux*x86_64*) distributionPlatform=linux-amd64 ;;
*)
echo "Cannot detect native platform for mvnd on $(uname)-$(uname -m), use pure java version" >&2
distributionPlatform=linux-amd64
;;
esac
distributionUrl="${distributionUrl%-bin.*}-$distributionPlatform.zip"
;;
maven-mvnd-*) MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ ;;
*) MVN_CMD="mvn${0##*/mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;;
esac
# apply MVNW_REPOURL and calculate MAVEN_HOME
# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-<version>,maven-mvnd-<version>-<platform>}/<hash>
[ -z "${MVNW_REPOURL-}" ] || distributionUrl="$MVNW_REPOURL$_MVNW_REPO_PATTERN${distributionUrl#*"$_MVNW_REPO_PATTERN"}"
distributionUrlName="${distributionUrl##*/}"
distributionUrlNameMain="${distributionUrlName%.*}"
distributionUrlNameMain="${distributionUrlNameMain%-bin}"
MAVEN_USER_HOME="${MAVEN_USER_HOME:-${HOME}/.m2}"
MAVEN_HOME="${MAVEN_USER_HOME}/wrapper/dists/${distributionUrlNameMain-}/$(hash_string "$distributionUrl")"
exec_maven() {
unset MVNW_VERBOSE MVNW_USERNAME MVNW_PASSWORD MVNW_REPOURL || :
exec "$MAVEN_HOME/bin/$MVN_CMD" "$@" || die "cannot exec $MAVEN_HOME/bin/$MVN_CMD"
}
if [ -d "$MAVEN_HOME" ]; then
verbose "found existing MAVEN_HOME at $MAVEN_HOME"
exec_maven "$@"
fi
case "${distributionUrl-}" in
*?-bin.zip | *?maven-mvnd-?*-?*.zip) ;;
*) die "distributionUrl is not valid, must match *-bin.zip or maven-mvnd-*.zip, but found '${distributionUrl-}'" ;;
esac
# prepare tmp dir
if TMP_DOWNLOAD_DIR="$(mktemp -d)" && [ -d "$TMP_DOWNLOAD_DIR" ]; then
clean() { rm -rf -- "$TMP_DOWNLOAD_DIR"; }
trap clean HUP INT TERM EXIT
else
die "cannot create temp dir"
fi
mkdir -p -- "${MAVEN_HOME%/*}"
# Download and Install Apache Maven
verbose "Couldn't find MAVEN_HOME, downloading and installing it ..."
verbose "Downloading from: $distributionUrl"
verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName"
# select .zip or .tar.gz
if ! command -v unzip >/dev/null; then
distributionUrl="${distributionUrl%.zip}.tar.gz"
distributionUrlName="${distributionUrl##*/}"
fi
# verbose opt
__MVNW_QUIET_WGET=--quiet __MVNW_QUIET_CURL=--silent __MVNW_QUIET_UNZIP=-q __MVNW_QUIET_TAR=''
[ "${MVNW_VERBOSE-}" != true ] || __MVNW_QUIET_WGET='' __MVNW_QUIET_CURL='' __MVNW_QUIET_UNZIP='' __MVNW_QUIET_TAR=v
# normalize http auth
case "${MVNW_PASSWORD:+has-password}" in
'') MVNW_USERNAME='' MVNW_PASSWORD='' ;;
has-password) [ -n "${MVNW_USERNAME-}" ] || MVNW_USERNAME='' MVNW_PASSWORD='' ;;
esac
if [ -z "${MVNW_USERNAME-}" ] && command -v wget >/dev/null; then
verbose "Found wget ... using wget"
wget ${__MVNW_QUIET_WGET:+"$__MVNW_QUIET_WGET"} "$distributionUrl" -O "$TMP_DOWNLOAD_DIR/$distributionUrlName" || die "wget: Failed to fetch $distributionUrl"
elif [ -z "${MVNW_USERNAME-}" ] && command -v curl >/dev/null; then
verbose "Found curl ... using curl"
curl ${__MVNW_QUIET_CURL:+"$__MVNW_QUIET_CURL"} -f -L -o "$TMP_DOWNLOAD_DIR/$distributionUrlName" "$distributionUrl" || die "curl: Failed to fetch $distributionUrl"
elif set_java_home; then
verbose "Falling back to use Java to download"
javaSource="$TMP_DOWNLOAD_DIR/Downloader.java"
targetZip="$TMP_DOWNLOAD_DIR/$distributionUrlName"
cat >"$javaSource" <<-END
public class Downloader extends java.net.Authenticator
{
protected java.net.PasswordAuthentication getPasswordAuthentication()
{
return new java.net.PasswordAuthentication( System.getenv( "MVNW_USERNAME" ), System.getenv( "MVNW_PASSWORD" ).toCharArray() );
}
public static void main( String[] args ) throws Exception
{
setDefault( new Downloader() );
java.nio.file.Files.copy( java.net.URI.create( args[0] ).toURL().openStream(), java.nio.file.Paths.get( args[1] ).toAbsolutePath().normalize() );
}
}
END
# For Cygwin/MinGW, switch paths to Windows format before running javac and java
verbose " - Compiling Downloader.java ..."
"$(native_path "$JAVACCMD")" "$(native_path "$javaSource")" || die "Failed to compile Downloader.java"
verbose " - Running Downloader.java ..."
"$(native_path "$JAVACMD")" -cp "$(native_path "$TMP_DOWNLOAD_DIR")" Downloader "$distributionUrl" "$(native_path "$targetZip")"
fi
# If specified, validate the SHA-256 sum of the Maven distribution zip file
if [ -n "${distributionSha256Sum-}" ]; then
distributionSha256Result=false
if [ "$MVN_CMD" = mvnd.sh ]; then
echo "Checksum validation is not supported for maven-mvnd." >&2
echo "Please disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2
exit 1
elif command -v sha256sum >/dev/null; then
if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | sha256sum -c >/dev/null 2>&1; then
distributionSha256Result=true
fi
elif command -v shasum >/dev/null; then
if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | shasum -a 256 -c >/dev/null 2>&1; then
distributionSha256Result=true
fi
else
echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." >&2
echo "Please install either command, or disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2
exit 1
fi
if [ $distributionSha256Result = false ]; then
echo "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised." >&2
echo "If you updated your Maven version, you need to update the specified distributionSha256Sum property." >&2
exit 1
fi
fi
# unzip and move
if command -v unzip >/dev/null; then
unzip ${__MVNW_QUIET_UNZIP:+"$__MVNW_QUIET_UNZIP"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -d "$TMP_DOWNLOAD_DIR" || die "failed to unzip"
else
tar xzf${__MVNW_QUIET_TAR:+"$__MVNW_QUIET_TAR"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -C "$TMP_DOWNLOAD_DIR" || die "failed to untar"
fi
printf %s\\n "$distributionUrl" >"$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/mvnw.url"
mv -- "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" "$MAVEN_HOME" || [ -d "$MAVEN_HOME" ] || die "fail to move MAVEN_HOME"
clean || :
exec_maven "$@"

149
mvnw.cmd

@ -0,0 +1,149 @@
<# : batch portion
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM http://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Apache Maven Wrapper startup batch script, version 3.3.2
@REM
@REM Optional ENV vars
@REM MVNW_REPOURL - repo url base for downloading maven distribution
@REM MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven
@REM MVNW_VERBOSE - true: enable verbose log; others: silence the output
@REM ----------------------------------------------------------------------------
@IF "%__MVNW_ARG0_NAME__%"=="" (SET __MVNW_ARG0_NAME__=%~nx0)
@SET __MVNW_CMD__=
@SET __MVNW_ERROR__=
@SET __MVNW_PSMODULEP_SAVE=%PSModulePath%
@SET PSModulePath=
@FOR /F "usebackq tokens=1* delims==" %%A IN (`powershell -noprofile "& {$scriptDir='%~dp0'; $script='%__MVNW_ARG0_NAME__%'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw '%~f0'))) -NoNewScope}"`) DO @(
IF "%%A"=="MVN_CMD" (set __MVNW_CMD__=%%B) ELSE IF "%%B"=="" (echo %%A) ELSE (echo %%A=%%B)
)
@SET PSModulePath=%__MVNW_PSMODULEP_SAVE%
@SET __MVNW_PSMODULEP_SAVE=
@SET __MVNW_ARG0_NAME__=
@SET MVNW_USERNAME=
@SET MVNW_PASSWORD=
@IF NOT "%__MVNW_CMD__%"=="" (%__MVNW_CMD__% %*)
@echo Cannot start maven from wrapper >&2 && exit /b 1
@GOTO :EOF
: end batch / begin powershell #>
$ErrorActionPreference = "Stop"
if ($env:MVNW_VERBOSE -eq "true") {
$VerbosePreference = "Continue"
}
# calculate distributionUrl, requires .mvn/wrapper/maven-wrapper.properties
$distributionUrl = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionUrl
if (!$distributionUrl) {
Write-Error "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties"
}
switch -wildcard -casesensitive ( $($distributionUrl -replace '^.*/','') ) {
"maven-mvnd-*" {
$USE_MVND = $true
$distributionUrl = $distributionUrl -replace '-bin\.[^.]*$',"-windows-amd64.zip"
$MVN_CMD = "mvnd.cmd"
break
}
default {
$USE_MVND = $false
$MVN_CMD = $script -replace '^mvnw','mvn'
break
}
}
# apply MVNW_REPOURL and calculate MAVEN_HOME
# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-<version>,maven-mvnd-<version>-<platform>}/<hash>
if ($env:MVNW_REPOURL) {
$MVNW_REPO_PATTERN = if ($USE_MVND) { "/org/apache/maven/" } else { "/maven/mvnd/" }
$distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace '^.*'+$MVNW_REPO_PATTERN,'')"
}
$distributionUrlName = $distributionUrl -replace '^.*/',''
$distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$',''
$MAVEN_HOME_PARENT = "$HOME/.m2/wrapper/dists/$distributionUrlNameMain"
if ($env:MAVEN_USER_HOME) {
$MAVEN_HOME_PARENT = "$env:MAVEN_USER_HOME/wrapper/dists/$distributionUrlNameMain"
}
$MAVEN_HOME_NAME = ([System.Security.Cryptography.MD5]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join ''
$MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME"
if (Test-Path -Path "$MAVEN_HOME" -PathType Container) {
Write-Verbose "found existing MAVEN_HOME at $MAVEN_HOME"
Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD"
exit $?
}
if (! $distributionUrlNameMain -or ($distributionUrlName -eq $distributionUrlNameMain)) {
Write-Error "distributionUrl is not valid, must end with *-bin.zip, but found $distributionUrl"
}
# prepare tmp dir
$TMP_DOWNLOAD_DIR_HOLDER = New-TemporaryFile
$TMP_DOWNLOAD_DIR = New-Item -Itemtype Directory -Path "$TMP_DOWNLOAD_DIR_HOLDER.dir"
$TMP_DOWNLOAD_DIR_HOLDER.Delete() | Out-Null
trap {
if ($TMP_DOWNLOAD_DIR.Exists) {
try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null }
catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" }
}
}
New-Item -Itemtype Directory -Path "$MAVEN_HOME_PARENT" -Force | Out-Null
# Download and Install Apache Maven
Write-Verbose "Couldn't find MAVEN_HOME, downloading and installing it ..."
Write-Verbose "Downloading from: $distributionUrl"
Write-Verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName"
$webclient = New-Object System.Net.WebClient
if ($env:MVNW_USERNAME -and $env:MVNW_PASSWORD) {
$webclient.Credentials = New-Object System.Net.NetworkCredential($env:MVNW_USERNAME, $env:MVNW_PASSWORD)
}
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$webclient.DownloadFile($distributionUrl, "$TMP_DOWNLOAD_DIR/$distributionUrlName") | Out-Null
# If specified, validate the SHA-256 sum of the Maven distribution zip file
$distributionSha256Sum = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionSha256Sum
if ($distributionSha256Sum) {
if ($USE_MVND) {
Write-Error "Checksum validation is not supported for maven-mvnd. `nPlease disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties."
}
Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash
if ((Get-FileHash "$TMP_DOWNLOAD_DIR/$distributionUrlName" -Algorithm SHA256).Hash.ToLower() -ne $distributionSha256Sum) {
Write-Error "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised. If you updated your Maven version, you need to update the specified distributionSha256Sum property."
}
}
# unzip and move
Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null
Rename-Item -Path "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" -NewName $MAVEN_HOME_NAME | Out-Null
try {
Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null
} catch {
if (! (Test-Path -Path "$MAVEN_HOME" -PathType Container)) {
Write-Error "fail to move MAVEN_HOME"
}
} finally {
try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null }
catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" }
}
Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD"

193
pom.xml

@ -0,0 +1,193 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.homily</groupId>
<artifactId>homily_link</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>homily_link</name>
<description>homily_link</description>
<modules>
<module>common</module>
<module>service</module>
</modules>
<properties>
<java.version>1.8</java.version>
<mybatis-plus.version>3.3.1</mybatis-plus.version>
<velocity.version>2.0</velocity.version>
<swagger.version>2.7.0</swagger.version>
<aliyun.oss.version>2.8.3</aliyun.oss.version>
<jodatime.version>2.10.1</jodatime.version>
<commons-fileupload.version>1.3.1</commons-fileupload.version>
<commons-io.version>2.6</commons-io.version>
<commons-lang.version>3.9</commons-lang.version>
<httpclient.version>4.5.1</httpclient.version>
<jwt.version>0.7.0</jwt.version>
<aliyun-java-sdk-core.version>4.3.3</aliyun-java-sdk-core.version>
<aliyun-sdk-oss.version>3.1.0</aliyun-sdk-oss.version>
<aliyun-java-sdk-vod.version>2.15.2</aliyun-java-sdk-vod.version>
<aliyun-java-vod-upload.version>1.4.11</aliyun-java-vod-upload.version>
<aliyun-sdk-vod-upload.version>1.4.11</aliyun-sdk-vod-upload.version>
<fastjson.version>1.2.28</fastjson.version>
<gson.version>2.8.2</gson.version>
<json.version>20170516</json.version>
<commons-dbutils.version>1.7</commons-dbutils.version>
<canal.client.version>1.1.0</canal.client.version>
<docker.image.prefix>zx</docker.image.prefix>
<cloud-alibaba.version>0.2.2.RELEASE</cloud-alibaba.version>
</properties>
<dependencyManagement>
<dependencies>
<!-- Spring Cloud -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- mybatis-plus 持久层 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>${velocity.version}</version>
</dependency>
<!-- swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<!-- swagger ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>
<!-- aliyunOSS -->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>${aliyun.oss.version}</version>
</dependency>
<!-- 日期时间工具 -->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>${jodatime.version}</version>
</dependency>
<!-- 文件上传 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>${commons-fileupload.version}</version>
</dependency>
<!-- commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>
<!-- commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang.version}</version>
</dependency>
<!-- httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${httpclient.version}</version>
</dependency>
<!-- JWT -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>${jwt.version}</version>
</dependency>
<!-- aliyun -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>${aliyun-java-sdk-core.version}</version>
</dependency>
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>${aliyun-sdk-oss.version}</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-vod</artifactId>
<version>${aliyun-java-sdk-vod.version}</version>
</dependency>
<!-- <dependency> -->
<!-- <groupId>com.aliyun</groupId> -->
<!-- <artifactId>aliyun-sdk-vod-upload</artifactId> -->
<!-- <version>${aliyun-sdk-vod-upload.version}</version> -->
<!-- </dependency> -->
<!-- json -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>${json.version}</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${gson.version}</version>
</dependency>
<dependency>
<groupId>commons-dbutils</groupId>
<artifactId>commons-dbutils</artifactId>
<version>${commons-dbutils.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba.otter</groupId>
<artifactId>canal.client</artifactId>
<version>${canal.client.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

101
service/pom.xml

@ -0,0 +1,101 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.homily</groupId>
<artifactId>homily_link</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>service</artifactId>
<packaging>pom</packaging>
<name>service Maven Webapp</name>
<url>http://maven.apache.org</url>
<modules>
<module>service_assignment</module>
</modules>
<dependencies>
<dependency>
<groupId>com.homily</groupId>
<artifactId>service_base</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
</dependency>
<!-- swagger -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
</dependency>
<!-- lombok用来简化实体类:需要安装lombok插件 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
</dependency>
<!-- httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<!-- commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<!-- json -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<finalName>service</finalName>
</build>
</project>

24
service/service_assignment/pom.xml

@ -0,0 +1,24 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.homily</groupId>
<artifactId>service</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>service_assignment</artifactId>
<packaging>war</packaging>
<name>service_assignment Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>service_assignment</finalName>
</build>
</project>

21
service/service_assignment/src/main/java/com/homilylink/assignment/ServiceAssignmentApplication.java

@ -0,0 +1,21 @@
package com.homilylink.assignment;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
/**
* @program: homily_link
* @ClassName ServiceAssignmentApplication
* @description:
* @author: 赵如慧
* @create: 202504-26 10:04
* @Version 1.0
**/
@SpringBootApplication
@ComponentScan("com.homilylink")
public class ServiceAssignmentApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceAssignmentApplication.class,args);
}
}

21
service/service_assignment/src/main/java/com/homilylink/assignment/controller/AnswersController.java

@ -0,0 +1,21 @@
package com.homilylink.assignment.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@RestController
@RequestMapping("/answers")
public class AnswersController {
}

21
service/service_assignment/src/main/java/com/homilylink/assignment/controller/ArticlesController.java

@ -0,0 +1,21 @@
package com.homilylink.assignment.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@RestController
@RequestMapping("/articles")
public class ArticlesController {
}

21
service/service_assignment/src/main/java/com/homilylink/assignment/controller/AssignmentSubmissionsController.java

@ -0,0 +1,21 @@
package com.homilylink.assignment.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@RestController
@RequestMapping("/assignment-submissions")
public class AssignmentSubmissionsController {
}

21
service/service_assignment/src/main/java/com/homilylink/assignment/controller/CoursessController.java

@ -0,0 +1,21 @@
package com.homilylink.assignment.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@RestController
@RequestMapping("/coursess")
public class CoursessController {
}

21
service/service_assignment/src/main/java/com/homilylink/assignment/controller/MemberInfoController.java

@ -0,0 +1,21 @@
package com.homilylink.assignment.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@RestController
@RequestMapping("/member-info")
public class MemberInfoController {
}

21
service/service_assignment/src/main/java/com/homilylink/assignment/controller/OptionsController.java

@ -0,0 +1,21 @@
package com.homilylink.assignment.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@RestController
@RequestMapping("/options")
public class OptionsController {
}

21
service/service_assignment/src/main/java/com/homilylink/assignment/controller/QuestionsController.java

@ -0,0 +1,21 @@
package com.homilylink.assignment.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@RestController
@RequestMapping("/questions")
public class QuestionsController {
}

30
service/service_assignment/src/main/java/com/homilylink/assignment/controller/User.java

@ -0,0 +1,30 @@
package com.homilylink.assignment.controller;
import com.homilylink.common.base.result.R;
import org.springframework.web.bind.annotation.*;
/**
* @program: homily_link
* @ClassName User
* @description:
* @author: 赵如慧
* @create: 202504-26 10:08
* @Version 1.0
**/
@CrossOrigin
@RestController
@RequestMapping("/user")
public class User {
@PostMapping("login")
public R login(){
return R.ok().data("token","admin");
}
@PostMapping("logout")
public R logout(){
return R.ok();
}
@GetMapping("info")
public R info(){
return R.ok().data("name","admin").data("roles","[admin]").data("avatar","https://img-s.msn.cn/tenant/amp/entityid/AA1nPWQO?w=16&h=16&q=100&m=6&f=png&u=t");
}
}

21
service/service_assignment/src/main/java/com/homilylink/assignment/controller/UsersController.java

@ -0,0 +1,21 @@
package com.homilylink.assignment.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 前端控制器
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@RestController
@RequestMapping("/users")
public class UsersController {
}

89
service/service_assignment/src/main/java/com/homilylink/assignment/controller/admin/AssignmentController.java

@ -0,0 +1,89 @@
package com.homilylink.assignment.controller.admin;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.homilylink.assignment.entity.Assignment;
import com.homilylink.assignment.entity.LiveSessions;
import com.homilylink.assignment.entity.vo.AssignmentLiveVo;
import com.homilylink.assignment.service.AssignmentService;
import com.homilylink.assignment.service.LiveSessionsService;
import com.homilylink.common.base.result.R;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@CrossOrigin
@RestController
@RequestMapping("/admin/assignment/assignment")
public class AssignmentController {
@Autowired
private AssignmentService assignmentService;
@Autowired
private LiveSessionsService liveSessionsService;
@PostMapping("list")
public R list(){
List<Assignment> list = assignmentService.list();
return R.ok().data("items",list);
}
@ApiOperation("课程分页列表")
@PostMapping("list/{page}/{limit}")
public R listPage(@ApiParam(value = "当前页码",required = true) @PathVariable Long page,
@ApiParam(value = "每页记录数",required = true) @PathVariable Long limit
){
Page<Assignment> pageParam = new Page<>(page,limit);
IPage<Assignment> pageModel = assignmentService.selectPage(pageParam,null);
long total = pageModel.getTotal();
List<Assignment> recordss = pageModel.getRecords();
List<AssignmentLiveVo> records = new ArrayList<>();
for (int i = 0;i < recordss.size();i++){
AssignmentLiveVo assignmentLiveVo = new AssignmentLiveVo();
LiveSessions live = liveSessionsService.getById(recordss.get(i).getLiveId());
// BeanUtils.copyProperties(assignmentLiveVo,recordss.get(i));
assignmentLiveVo.setId(recordss.get(i).getId());
assignmentLiveVo.setName(recordss.get(i).getName());
assignmentLiveVo.setContent(recordss.get(i).getContent());
assignmentLiveVo.setCourseId(recordss.get(i).getCourseId());
assignmentLiveVo.setArticleId(recordss.get(i).getArticleId());
assignmentLiveVo.setLiveId(recordss.get(i).getLiveId());
assignmentLiveVo.setCount(recordss.get(i).getCount());
assignmentLiveVo.setStartDate(recordss.get(i).getStartDate());
assignmentLiveVo.setEndDate(recordss.get(i).getEndDate());
assignmentLiveVo.setCreatedAt(recordss.get(i).getCreatedAt());
assignmentLiveVo.setStatus(recordss.get(i).getStatus());
assignmentLiveVo.setPublishTime(recordss.get(i).getPublishTime());
assignmentLiveVo.setUpdatedAt(recordss.get(i).getUpdatedAt());
assignmentLiveVo.setTitle(live.getTitle());
records.add(assignmentLiveVo);
}
System.out.println("-----------------------"+records);
return R.ok().data("total",total).data("rows",records);
}
@ApiOperation("新增作业")
@PostMapping("save")
public R save(@ApiParam(value = "作业对象",required = true) @RequestBody Assignment assignment){
boolean result = assignmentService.save(assignment);
if (result){
return R.ok().message("保存成功");
}else{
return R.error().message("保存失败");
}
}
}

41
service/service_assignment/src/main/java/com/homilylink/assignment/controller/admin/LiveSessionsController.java

@ -0,0 +1,41 @@
package com.homilylink.assignment.controller.admin;
import com.homilylink.assignment.entity.Assignment;
import com.homilylink.assignment.entity.LiveSessions;
import com.homilylink.assignment.service.AssignmentService;
import com.homilylink.assignment.service.LiveSessionsService;
import com.homilylink.common.base.result.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@CrossOrigin
@RestController
@RequestMapping("/admin/assignment/livesessions")
public class LiveSessionsController {
@Autowired
private AssignmentService assignmentService;
@Autowired
private LiveSessionsService liveSessionsService;
@PostMapping("live")
public R live(){
List<LiveSessions> list = liveSessionsService.selectLive();
return R.ok().data("items",list);
}
}

61
service/service_assignment/src/main/java/com/homilylink/assignment/entity/Answers.java

@ -0,0 +1,61 @@
package com.homilylink.assignment.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("z_answers")
@ApiModel(value="Answers对象", description="")
public class Answers implements Serializable {
private static final long serialVersionUID=1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "提交ID")
private Integer submissionId;
@ApiModelProperty(value = "题目ID")
private Integer questionId;
@ApiModelProperty(value = "答案内容(简答题)")
private String answerContent;
@ApiModelProperty(value = "选择的选项ID(选择题)")
private Integer optionId;
@ApiModelProperty(value = "得分")
private Integer score;
@ApiModelProperty(value = "评语")
private String feedback;
@TableField(fill = FieldFill.INSERT)
private Date createdAt;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updatedAt;
}

49
service/service_assignment/src/main/java/com/homilylink/assignment/entity/Articles.java

@ -0,0 +1,49 @@
package com.homilylink.assignment.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("z_articles")
@ApiModel(value="Articles对象", description="")
public class Articles implements Serializable {
private static final long serialVersionUID=1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "文章标题")
private String title;
@ApiModelProperty(value = "文章内容")
private String content;
@TableField(fill = FieldFill.INSERT)
private Date createdAt;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updatedAt;
}

66
service/service_assignment/src/main/java/com/homilylink/assignment/entity/Assignment.java

@ -0,0 +1,66 @@
package com.homilylink.assignment.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("z_assignment")
@ApiModel(value="Assignment对象", description="")
public class Assignment implements Serializable {
private static final long serialVersionUID=1L;
@ApiModelProperty(value = "作者id")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
private String name;
private String content;
private Integer courseId;
private Integer articleId;
private Integer liveId;
private Integer count;
@JsonFormat(pattern = "yyyy-MM-dd")
private Date startDate;
@JsonFormat(pattern = "yyyy-MM-dd")
private Date endDate;
@TableField(fill = FieldFill.INSERT)
private Date createdAt;
private String status;
private Date publishTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updatedAt;
}

64
service/service_assignment/src/main/java/com/homilylink/assignment/entity/AssignmentSubmissions.java

@ -0,0 +1,64 @@
package com.homilylink.assignment.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("z_assignment_submissions")
@ApiModel(value="AssignmentSubmissions对象", description="")
public class AssignmentSubmissions implements Serializable {
private static final long serialVersionUID=1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "作业ID")
private Integer assignmentId;
@ApiModelProperty(value = "用户ID")
private Integer userId;
@ApiModelProperty(value = "帮账号")
private String accountNumber;
@ApiModelProperty(value = "市场/地区")
private String market;
@ApiModelProperty(value = "提交时间")
private Date submitTime;
@ApiModelProperty(value = "提交状态")
private String status;
@ApiModelProperty(value = "总得分")
private Integer totalScore;
@TableField(fill = FieldFill.INSERT)
private Date createdAt;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updatedAt;
}

49
service/service_assignment/src/main/java/com/homilylink/assignment/entity/Coursess.java

@ -0,0 +1,49 @@
package com.homilylink.assignment.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("z_coursess")
@ApiModel(value="Coursess对象", description="")
public class Coursess implements Serializable {
private static final long serialVersionUID=1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "课程名称")
private String name;
@ApiModelProperty(value = "课程描述")
private String description;
@TableField(fill = FieldFill.INSERT)
private Date createdAt;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updatedAt;
}

58
service/service_assignment/src/main/java/com/homilylink/assignment/entity/LiveSessions.java

@ -0,0 +1,58 @@
package com.homilylink.assignment.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("z_live_sessions")
@ApiModel(value="LiveSessions对象", description="")
public class LiveSessions implements Serializable {
private static final long serialVersionUID=1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "直播标题")
private String title;
@ApiModelProperty(value = "直播开始时间")
private Date startTime;
@ApiModelProperty(value = "直播结束时间")
private Date endTime;
@ApiModelProperty(value = "关联课程ID")
private Integer courseId;
@ApiModelProperty(value = "收款账号")
private String paymentAccount;
@TableField(fill = FieldFill.INSERT)
private Date createdAt;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updatedAt;
}

147
service/service_assignment/src/main/java/com/homilylink/assignment/entity/MemberInfo.java

@ -0,0 +1,147 @@
package com.homilylink.assignment.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="MemberInfo对象", description="")
public class MemberInfo implements Serializable {
private static final long serialVersionUID=1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
private Integer jwcode;
private String name;
private String avatar;
@ApiModelProperty(value = "0:未知,1:男,2:女")
private Boolean sex;
@ApiModelProperty(value = "部门(大)")
@TableField("deptId")
private String deptId;
@ApiModelProperty(value = "部门名")
@TableField("deptName")
private String deptName;
@ApiModelProperty(value = "门店(小)")
@TableField("shopId")
private String shopId;
@ApiModelProperty(value = "门店名")
@TableField("shopName")
private String shopName;
private Date membershipTime;
@ApiModelProperty(value = "0:不进行新网员学习,1:正在进行新网员学习,2:已进行学习")
private Boolean learningStatus;
@ApiModelProperty(value = "0 已解锁 1 未解锁")
private Integer liveLock;
@ApiModelProperty(value = "等级")
private Integer level;
private Boolean clubRecommendation;
@ApiModelProperty(value = "是否退化礼物 0 未兑换 1 已兑换")
private Boolean giftExchange;
@ApiModelProperty(value = "签名")
private String qianming;
@TableField(fill = FieldFill.INSERT)
private Date createdAt;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updatedAt;
@ApiModelProperty(value = "黑卡会员 0 不是 1是")
private Integer blackCard;
@ApiModelProperty(value = "是否为博股会员 0 不是 1 是")
private Integer boguMember;
@ApiModelProperty(value = "号主账号")
private String accountOwner;
@ApiModelProperty(value = "号主姓名")
private String accountOwnerText;
@ApiModelProperty(value = "用户身份(1: 网员 2:非网)")
private Integer userRole;
private String widget;
private Integer learningLevel;
private String learningIcon;
private String learningMedal;
@ApiModelProperty(value = "0 无认证 1 红V 2 蓝V 3 黄V")
private Integer userIdentity;
@ApiModelProperty(value = "用户身份头衔")
private String userIdentityTitle;
@ApiModelProperty(value = "0不是黑名单1是黑名单")
private Integer isBlacklist;
@ApiModelProperty(value = "1:讲师")
private Integer isLecturer;
@ApiModelProperty(value = "手机号")
private String mobile;
private Boolean herdsman;
private Boolean shenqiangshou;
private Boolean huanqiu;
@ApiModelProperty(value = "用户市场归属")
private String locMarket;
@ApiModelProperty(value = "粉丝")
private Integer fensi;
@ApiModelProperty(value = "1员工")
private Integer employee;
@ApiModelProperty(value = "心愿池勋章")
private String medal;
@ApiModelProperty(value = "0")
private Integer vip;
@ApiModelProperty(value = "账号注册时间")
private Integer createTime;
}

53
service/service_assignment/src/main/java/com/homilylink/assignment/entity/Options.java

@ -0,0 +1,53 @@
package com.homilylink.assignment.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("z_options")
@ApiModel(value="Options对象", description="")
public class Options implements Serializable {
private static final long serialVersionUID=1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "所属题目ID")
private Integer questionId;
@ApiModelProperty(value = "选项内容")
private String content;
@ApiModelProperty(value = "是否为正确选项")
@TableField("is_correct")
private Boolean correct;
@ApiModelProperty(value = "选项排序")
private Integer sortOrder;
@TableField(fill = FieldFill.INSERT)
private Date createdAt;
}

53
service/service_assignment/src/main/java/com/homilylink/assignment/entity/Questions.java

@ -0,0 +1,53 @@
package com.homilylink.assignment.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("z_questions")
@ApiModel(value="Questions对象", description="")
public class Questions implements Serializable {
private static final long serialVersionUID=1L;
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Integer id;
private Integer assignmentId;
private String questionType;
private String content;
private Integer score;
private Integer sortOrder;
@TableField(fill = FieldFill.INSERT)
private Date createdAt;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updatedAt;
}

55
service/service_assignment/src/main/java/com/homilylink/assignment/entity/Users.java

@ -0,0 +1,55 @@
package com.homilylink.assignment.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
*
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("z_users")
@ApiModel(value="Users对象", description="")
public class Users implements Serializable {
private static final long serialVersionUID=1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "姓名")
private String name;
@ApiModelProperty(value = "帮账号")
private String accountNumber;
@ApiModelProperty(value = "邮箱")
private String email;
@ApiModelProperty(value = "市场/地区")
private String market;
@TableField(fill = FieldFill.INSERT)
private Date createdAt;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updatedAt;
}

52
service/service_assignment/src/main/java/com/homilylink/assignment/entity/vo/AssignmentLiveVo.java

@ -0,0 +1,52 @@
package com.homilylink.assignment.entity.vo;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @program: homily_link
* @ClassName AssignmentLiveController
* @description:
* @author: 赵如慧
* @create: 202504-26 15:30
* @Version 1.0
**/
@Data
public class AssignmentLiveVo {
private static final long serialVersionUID=1L;
@ApiModelProperty(value = "作者id")
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
private String name;
private String content;
private Integer courseId;
private Integer articleId;
private Integer liveId;
private Integer count;
private Date startDate;
private Date endDate;
@TableField(fill = FieldFill.INSERT)
private Date createdAt;
private String status;
private Date publishTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updatedAt;
@ApiModelProperty(value = "直播标题")
private String title;
}

22
service/service_assignment/src/main/java/com/homilylink/assignment/entity/vo/AssignmentVo.java

@ -0,0 +1,22 @@
package com.homilylink.assignment.entity.vo;
import io.swagger.annotations.ApiModelProperty;
/**
* @program: homily_link
* @ClassName AssignmentVo
* @description:
* @author: 赵如慧
* @create: 202504-26 11:16
* @Version 1.0
**/
public class AssignmentVo {
@ApiModelProperty(value = "帮账号")
private String accountNumber;
@ApiModelProperty(value = "姓名")
private String name;
@ApiModelProperty(value = "用户市场归属")
private String locMarket;
}

16
service/service_assignment/src/main/java/com/homilylink/assignment/mapper/AnswersMapper.java

@ -0,0 +1,16 @@
package com.homilylink.assignment.mapper;
import com.homilylink.assignment.entity.Answers;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
public interface AnswersMapper extends BaseMapper<Answers> {
}

16
service/service_assignment/src/main/java/com/homilylink/assignment/mapper/ArticlesMapper.java

@ -0,0 +1,16 @@
package com.homilylink.assignment.mapper;
import com.homilylink.assignment.entity.Articles;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
public interface ArticlesMapper extends BaseMapper<Articles> {
}

16
service/service_assignment/src/main/java/com/homilylink/assignment/mapper/AssignmentMapper.java

@ -0,0 +1,16 @@
package com.homilylink.assignment.mapper;
import com.homilylink.assignment.entity.Assignment;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
public interface AssignmentMapper extends BaseMapper<Assignment> {
}

16
service/service_assignment/src/main/java/com/homilylink/assignment/mapper/AssignmentSubmissionsMapper.java

@ -0,0 +1,16 @@
package com.homilylink.assignment.mapper;
import com.homilylink.assignment.entity.AssignmentSubmissions;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
public interface AssignmentSubmissionsMapper extends BaseMapper<AssignmentSubmissions> {
}

16
service/service_assignment/src/main/java/com/homilylink/assignment/mapper/CoursessMapper.java

@ -0,0 +1,16 @@
package com.homilylink.assignment.mapper;
import com.homilylink.assignment.entity.Coursess;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
public interface CoursessMapper extends BaseMapper<Coursess> {
}

16
service/service_assignment/src/main/java/com/homilylink/assignment/mapper/LiveSessionsMapper.java

@ -0,0 +1,16 @@
package com.homilylink.assignment.mapper;
import com.homilylink.assignment.entity.LiveSessions;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
public interface LiveSessionsMapper extends BaseMapper<LiveSessions> {
}

16
service/service_assignment/src/main/java/com/homilylink/assignment/mapper/MemberInfoMapper.java

@ -0,0 +1,16 @@
package com.homilylink.assignment.mapper;
import com.homilylink.assignment.entity.MemberInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
public interface MemberInfoMapper extends BaseMapper<MemberInfo> {
}

16
service/service_assignment/src/main/java/com/homilylink/assignment/mapper/OptionsMapper.java

@ -0,0 +1,16 @@
package com.homilylink.assignment.mapper;
import com.homilylink.assignment.entity.Options;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
public interface OptionsMapper extends BaseMapper<Options> {
}

16
service/service_assignment/src/main/java/com/homilylink/assignment/mapper/QuestionsMapper.java

@ -0,0 +1,16 @@
package com.homilylink.assignment.mapper;
import com.homilylink.assignment.entity.Questions;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
public interface QuestionsMapper extends BaseMapper<Questions> {
}

16
service/service_assignment/src/main/java/com/homilylink/assignment/mapper/UsersMapper.java

@ -0,0 +1,16 @@
package com.homilylink.assignment.mapper;
import com.homilylink.assignment.entity.Users;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
public interface UsersMapper extends BaseMapper<Users> {
}

5
service/service_assignment/src/main/java/com/homilylink/assignment/mapper/xml/AnswersMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.homilylink.assignment.mapper.AnswersMapper">
</mapper>

5
service/service_assignment/src/main/java/com/homilylink/assignment/mapper/xml/ArticlesMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.homilylink.assignment.mapper.ArticlesMapper">
</mapper>

5
service/service_assignment/src/main/java/com/homilylink/assignment/mapper/xml/AssignmentMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.homilylink.assignment.mapper.AssignmentMapper">
</mapper>

5
service/service_assignment/src/main/java/com/homilylink/assignment/mapper/xml/AssignmentSubmissionsMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.homilylink.assignment.mapper.AssignmentSubmissionsMapper">
</mapper>

5
service/service_assignment/src/main/java/com/homilylink/assignment/mapper/xml/CoursessMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.homilylink.assignment.mapper.CoursessMapper">
</mapper>

5
service/service_assignment/src/main/java/com/homilylink/assignment/mapper/xml/LiveSessionsMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.homilylink.assignment.mapper.LiveSessionsMapper">
</mapper>

5
service/service_assignment/src/main/java/com/homilylink/assignment/mapper/xml/MemberInfoMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.homilylink.assignment.mapper.MemberInfoMapper">
</mapper>

5
service/service_assignment/src/main/java/com/homilylink/assignment/mapper/xml/OptionsMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.homilylink.assignment.mapper.OptionsMapper">
</mapper>

5
service/service_assignment/src/main/java/com/homilylink/assignment/mapper/xml/QuestionsMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.homilylink.assignment.mapper.QuestionsMapper">
</mapper>

5
service/service_assignment/src/main/java/com/homilylink/assignment/mapper/xml/UsersMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.homilylink.assignment.mapper.UsersMapper">
</mapper>

16
service/service_assignment/src/main/java/com/homilylink/assignment/service/AnswersService.java

@ -0,0 +1,16 @@
package com.homilylink.assignment.service;
import com.homilylink.assignment.entity.Answers;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
public interface AnswersService extends IService<Answers> {
}

16
service/service_assignment/src/main/java/com/homilylink/assignment/service/ArticlesService.java

@ -0,0 +1,16 @@
package com.homilylink.assignment.service;
import com.homilylink.assignment.entity.Articles;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
public interface ArticlesService extends IService<Articles> {
}

19
service/service_assignment/src/main/java/com/homilylink/assignment/service/AssignmentService.java

@ -0,0 +1,19 @@
package com.homilylink.assignment.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.homilylink.assignment.entity.Assignment;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
public interface AssignmentService extends IService<Assignment> {
IPage<Assignment> selectPage(Page<Assignment> pageParam, Object o);
}

16
service/service_assignment/src/main/java/com/homilylink/assignment/service/AssignmentSubmissionsService.java

@ -0,0 +1,16 @@
package com.homilylink.assignment.service;
import com.homilylink.assignment.entity.AssignmentSubmissions;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
public interface AssignmentSubmissionsService extends IService<AssignmentSubmissions> {
}

16
service/service_assignment/src/main/java/com/homilylink/assignment/service/CoursessService.java

@ -0,0 +1,16 @@
package com.homilylink.assignment.service;
import com.homilylink.assignment.entity.Coursess;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
public interface CoursessService extends IService<Coursess> {
}

20
service/service_assignment/src/main/java/com/homilylink/assignment/service/LiveSessionsService.java

@ -0,0 +1,20 @@
package com.homilylink.assignment.service;
import com.homilylink.assignment.entity.LiveSessions;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
/**
* <p>
* 服务类
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
public interface LiveSessionsService extends IService<LiveSessions> {
List<LiveSessions> selectLive();
}

16
service/service_assignment/src/main/java/com/homilylink/assignment/service/MemberInfoService.java

@ -0,0 +1,16 @@
package com.homilylink.assignment.service;
import com.homilylink.assignment.entity.MemberInfo;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
public interface MemberInfoService extends IService<MemberInfo> {
}

16
service/service_assignment/src/main/java/com/homilylink/assignment/service/OptionsService.java

@ -0,0 +1,16 @@
package com.homilylink.assignment.service;
import com.homilylink.assignment.entity.Options;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
public interface OptionsService extends IService<Options> {
}

16
service/service_assignment/src/main/java/com/homilylink/assignment/service/QuestionsService.java

@ -0,0 +1,16 @@
package com.homilylink.assignment.service;
import com.homilylink.assignment.entity.Questions;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
public interface QuestionsService extends IService<Questions> {
}

16
service/service_assignment/src/main/java/com/homilylink/assignment/service/UsersService.java

@ -0,0 +1,16 @@
package com.homilylink.assignment.service;
import com.homilylink.assignment.entity.Users;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 服务类
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
public interface UsersService extends IService<Users> {
}

20
service/service_assignment/src/main/java/com/homilylink/assignment/service/impl/AnswersServiceImpl.java

@ -0,0 +1,20 @@
package com.homilylink.assignment.service.impl;
import com.homilylink.assignment.entity.Answers;
import com.homilylink.assignment.mapper.AnswersMapper;
import com.homilylink.assignment.service.AnswersService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@Service
public class AnswersServiceImpl extends ServiceImpl<AnswersMapper, Answers> implements AnswersService {
}

20
service/service_assignment/src/main/java/com/homilylink/assignment/service/impl/ArticlesServiceImpl.java

@ -0,0 +1,20 @@
package com.homilylink.assignment.service.impl;
import com.homilylink.assignment.entity.Articles;
import com.homilylink.assignment.mapper.ArticlesMapper;
import com.homilylink.assignment.service.ArticlesService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@Service
public class ArticlesServiceImpl extends ServiceImpl<ArticlesMapper, Articles> implements ArticlesService {
}

33
service/service_assignment/src/main/java/com/homilylink/assignment/service/impl/AssignmentServiceImpl.java

@ -0,0 +1,33 @@
package com.homilylink.assignment.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.homilylink.assignment.entity.Assignment;
import com.homilylink.assignment.mapper.AssignmentMapper;
import com.homilylink.assignment.service.AssignmentService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@Service
public class AssignmentServiceImpl extends ServiceImpl<AssignmentMapper, Assignment> implements AssignmentService {
@Override
public IPage<Assignment> selectPage(Page<Assignment> pageParam, Object o) {
//显示分页查询列表
/**
* 1.排序
* 2.查询
*/
QueryWrapper<Assignment> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByDesc("publish_time");
return baseMapper.selectPage(pageParam,queryWrapper);
}
}

20
service/service_assignment/src/main/java/com/homilylink/assignment/service/impl/AssignmentSubmissionsServiceImpl.java

@ -0,0 +1,20 @@
package com.homilylink.assignment.service.impl;
import com.homilylink.assignment.entity.AssignmentSubmissions;
import com.homilylink.assignment.mapper.AssignmentSubmissionsMapper;
import com.homilylink.assignment.service.AssignmentSubmissionsService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@Service
public class AssignmentSubmissionsServiceImpl extends ServiceImpl<AssignmentSubmissionsMapper, AssignmentSubmissions> implements AssignmentSubmissionsService {
}

20
service/service_assignment/src/main/java/com/homilylink/assignment/service/impl/CoursessServiceImpl.java

@ -0,0 +1,20 @@
package com.homilylink.assignment.service.impl;
import com.homilylink.assignment.entity.Coursess;
import com.homilylink.assignment.mapper.CoursessMapper;
import com.homilylink.assignment.service.CoursessService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@Service
public class CoursessServiceImpl extends ServiceImpl<CoursessMapper, Coursess> implements CoursessService {
}

43
service/service_assignment/src/main/java/com/homilylink/assignment/service/impl/LiveSessionsServiceImpl.java

@ -0,0 +1,43 @@
package com.homilylink.assignment.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.homilylink.assignment.entity.LiveSessions;
import com.homilylink.assignment.mapper.LiveSessionsMapper;
import com.homilylink.assignment.service.LiveSessionsService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
/**
* <p>
* 服务实现类
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@Service
public class LiveSessionsServiceImpl extends ServiceImpl<LiveSessionsMapper, LiveSessions> implements LiveSessionsService {
@Autowired
private LiveSessionsMapper liveSessionsMapper;
@Override
public List<LiveSessions> selectLive() {
LocalDateTime now = LocalDateTime.now();
LocalDateTime plusDays = now.plusDays(7L);
LocalDateTime minusDays = now.minusDays(1L);
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.ge("created_at",minusDays);
queryWrapper.le("created_at",plusDays);
List list = baseMapper.selectList(queryWrapper);
System.out.println("------------------"+list);
return list;
}
}

20
service/service_assignment/src/main/java/com/homilylink/assignment/service/impl/MemberInfoServiceImpl.java

@ -0,0 +1,20 @@
package com.homilylink.assignment.service.impl;
import com.homilylink.assignment.entity.MemberInfo;
import com.homilylink.assignment.mapper.MemberInfoMapper;
import com.homilylink.assignment.service.MemberInfoService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@Service
public class MemberInfoServiceImpl extends ServiceImpl<MemberInfoMapper, MemberInfo> implements MemberInfoService {
}

20
service/service_assignment/src/main/java/com/homilylink/assignment/service/impl/OptionsServiceImpl.java

@ -0,0 +1,20 @@
package com.homilylink.assignment.service.impl;
import com.homilylink.assignment.entity.Options;
import com.homilylink.assignment.mapper.OptionsMapper;
import com.homilylink.assignment.service.OptionsService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@Service
public class OptionsServiceImpl extends ServiceImpl<OptionsMapper, Options> implements OptionsService {
}

20
service/service_assignment/src/main/java/com/homilylink/assignment/service/impl/QuestionsServiceImpl.java

@ -0,0 +1,20 @@
package com.homilylink.assignment.service.impl;
import com.homilylink.assignment.entity.Questions;
import com.homilylink.assignment.mapper.QuestionsMapper;
import com.homilylink.assignment.service.QuestionsService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@Service
public class QuestionsServiceImpl extends ServiceImpl<QuestionsMapper, Questions> implements QuestionsService {
}

20
service/service_assignment/src/main/java/com/homilylink/assignment/service/impl/UsersServiceImpl.java

@ -0,0 +1,20 @@
package com.homilylink.assignment.service.impl;
import com.homilylink.assignment.entity.Users;
import com.homilylink.assignment.mapper.UsersMapper;
import com.homilylink.assignment.service.UsersService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author zhaoruhui
* @since 2025-04-26
*/
@Service
public class UsersServiceImpl extends ServiceImpl<UsersMapper, Users> implements UsersService {
}

50
service/service_assignment/src/main/resources/application.yml

@ -0,0 +1,50 @@
server:
port: 8110 # 服务端口
tomcat:
max-threads: 10
spring:
profiles:
active: dev # 环境设置
application:
name: service-assignment # 服务名
datasource: # mysql数据库连接
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://rm-8vbe7b69y78ivbv47do.rwlb.zhangbei.rds.aliyuncs.com:3306/homilylink?serverTimezone=GMT%2B8
username: shixi
password: kJr0CcF8P1yrPFEF1V
#spring:
jackson: #返回json的全局时间格式
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
# cloud:
# nacos:
# discovery:
# server-addr: localhost:8848
# sentinel:
# transport:
# port: 8081
# dashboard: localhost:8080
# redis:
# host: localhost
# port: 6379
# database: 0
# password: #默认为空
# lettuce:
# pool:
# max-active: 20 #最大连接数,负值表示没有限制 ,默认8
# max-wait: -1 #最大阻塞等待时间,负值表示没有限制,默认-1
# max-idle: 8 #最大空闲连接,默认8
# min-idle: 0 #最小空闲连接,默认0
#mybatis日志
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# mapper-locations: classpath:com/cloud/service/edu/mapper/xml/*.xml
#ribbon:
# MaxAutoRetries: 1
# MaxAutoRetriesNextServer: 2
# ConnectTimeout: 5000 #连接建立的时间
# ReadTimeout: 10000 #处理请求的超时时间,默认为1s
#feign:
# sentinel:
# enabled: true

5
service/service_assignment/src/main/resources/mapper/AnswersMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.homilylink.assignment.mapper.AnswersMapper">
</mapper>

5
service/service_assignment/src/main/resources/mapper/ArticlesMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.homilylink.assignment.mapper.ArticlesMapper">
</mapper>

5
service/service_assignment/src/main/resources/mapper/AssignmentMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.homilylink.assignment.mapper.AssignmentMapper">
</mapper>

5
service/service_assignment/src/main/resources/mapper/AssignmentSubmissionsMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.homilylink.assignment.mapper.AssignmentSubmissionsMapper">
</mapper>

5
service/service_assignment/src/main/resources/mapper/CoursessMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.homilylink.assignment.mapper.CoursessMapper">
</mapper>

5
service/service_assignment/src/main/resources/mapper/LiveSessionsMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.homilylink.assignment.mapper.LiveSessionsMapper">
</mapper>

5
service/service_assignment/src/main/resources/mapper/OptionsMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.homilylink.assignment.mapper.OptionsMapper">
</mapper>

5
service/service_assignment/src/main/resources/mapper/QuestionsMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.homilylink.assignment.mapper.QuestionsMapper">
</mapper>

5
service/service_assignment/src/main/resources/mapper/UsersMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.homilylink.assignment.mapper.UsersMapper">
</mapper>

7
service/service_assignment/src/main/webapp/WEB-INF/web.xml

@ -0,0 +1,7 @@
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
</web-app>

5
service/service_assignment/src/main/webapp/index.jsp

@ -0,0 +1,5 @@
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>

102
service/service_assignment/src/test/java/com/homily/assignment/CodeGenerator.java

@ -0,0 +1,102 @@
package com.homily.assignment;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.po.TableFill;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
/**
* @author helen
* @since 2020/4/1
*/
public class CodeGenerator {
@Test
public void genCode() {
// String prefix =
String prefix = "homilylink";
//String moduleName = "assignment";
// 1创建代码生成器
AutoGenerator mpg = new AutoGenerator();
// 2全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
gc.setOutputDir(projectPath + "/src/main/java");
gc.setAuthor("zhaoruhui");
gc.setOpen(false); //生成后是否打开资源管理器
gc.setFileOverride(false); //重新生成时文件是否覆盖
gc.setServiceName("%sService"); //去掉Service接口的首字母I
gc.setIdType(IdType.ASSIGN_ID); //主键策略
gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型
gc.setSwagger2(true);//开启Swagger2模式
mpg.setGlobalConfig(gc);
// 3数据源配置
DataSourceConfig dsc = new DataSourceConfig();
// dsc.setUrl("jdbc:mysql://39.101.133.168:3306/" + prefix + "?serverTimezone=GMT%2B8");
dsc.setUrl("jdbc:mysql://rm-8vbe7b69y78ivbv47do.rwlb.zhangbei.rds.aliyuncs.com:3306/" + prefix + "?serverTimezone=GMT%2B8");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
// dsc.setUsername("cms");
dsc.setUsername("shixi");
// dsc.setPassword("AF42R3ib6YkFaemm");
dsc.setPassword("kJr0CcF8P1yrPFEF1V");
dsc.setDbType(DbType.MYSQL);
mpg.setDataSource(dsc);
// 4包配置
PackageConfig pc = new PackageConfig();
// pc.setModuleName(moduleName); //模块名
pc.setParent("com.homilylink.assignment");
pc.setController("controller");
pc.setEntity("entity");
pc.setService("service");
pc.setMapper("mapper");
mpg.setPackageInfo(pc);
// 5策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
// strategy.setInclude("member_info"); // 生成所有以t_开头的表
strategy.setInclude("z_answers","z_articles","z_assignment","z_assignment_submissions","z_coursess","z_live_sessions","z_options","z_questions","z_users"); // 生成所有以t_开头的表
strategy.setTablePrefix("z" + "_");//设置表前缀不生成
//
strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略
strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作
strategy.setLogicDeleteFieldName("is_deleted");//逻辑删除字段名
strategy.setEntityBooleanColumnRemoveIsPrefix(true);//去掉布尔值的is_前缀
//自动填充
TableFill createdAt = new TableFill("created_at", FieldFill.INSERT);
TableFill updatedAt = new TableFill("updated_at", FieldFill.INSERT_UPDATE);
ArrayList<TableFill> tableFills = new ArrayList<>();
tableFills.add(createdAt);
tableFills.add(updatedAt);
strategy.setTableFillList(tableFills);
strategy.setRestControllerStyle(true); //restful api风格控制器
strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符
mpg.setStrategy(strategy);
//设置BaseEntity
// strategy.setSuperEntityClass("com.homilylink.assignment.service.base.model.BaseEntity");
// 填写BaseEntity中的公共字段
// strategy.setSuperEntityColumns("id", "created_at", "updated_at");
// 6执行
mpg.execute();
}
}
Loading…
Cancel
Save