删的移动端项目

main
tamguo 7 years ago
parent b9543876fd
commit c7d809b09d

@ -1,36 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

@ -1 +1 @@
/target/ /bin/

@ -1,6 +1,2 @@
eclipse.preferences.version=1 eclipse.preferences.version=1
encoding//src/main/java=UTF-8
encoding//src/main/resources=UTF-8
encoding//src/test/java=UTF-8
encoding//src/test/resources=UTF-8
encoding/<project>=UTF-8 encoding/<project>=UTF-8

@ -1,5 +0,0 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.source=1.8

@ -1,4 +0,0 @@
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1

@ -1,165 +0,0 @@
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.tamguo</groupId>
<artifactId>tamguo-mms</artifactId>
<version>1.0.0</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<mybatis-plus-boot-starter.version>2.1.9</mybatis-plus-boot-starter.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- mybatis-plus begin -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus-boot-starter.version}</version>
<exclusions>
<exclusion>
<artifactId>tomcat-jdbc</artifactId>
<groupId>org.apache.tomcat</groupId>
</exclusion>
</exclusions>
</dependency>
<!-- mybatis-plus end -->
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
<version>1.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
<dependency>
<groupId>com.github.theborakompanioni</groupId>
<artifactId>thymeleaf-extras-shiro</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.32</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-ehcache</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>cn.songxinqiang</groupId>
<artifactId>com.baidu.ueditor</artifactId>
<version>1.1.2-edit-1.0</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.18</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>3.2.8</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.5</version>
</dependency>
<dependency>
<groupId>com.bladejava</groupId>
<artifactId>blade-patchca</artifactId>
<version>1.0.5</version>
</dependency>
<dependency>
<groupId>com.tamguo</groupId>
<artifactId>tamguo-modules-core</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Camden.SR6</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<finalName>mms</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

@ -1,36 +0,0 @@
package com.tamguo;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
@SpringBootApplication
@ComponentScan("com.tamguo")
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).run(args);
}
/**
* FastJsonJackson
* @return
*/
@Bean
public HttpMessageConverters fastJsonHttpMessageConverters() {
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
fastJsonConfig.setSerializerFeatures(SerializerFeature.DisableCircularReferenceDetect);
fastConverter.setFastJsonConfig(fastJsonConfig);
FastJsonHttpMessageConverter converter = fastConverter;
return new HttpMessageConverters(converter);
}
}

@ -1,23 +0,0 @@
package com.tamguo.config.dao;
import com.baomidou.mybatisplus.mapper.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* ,
*/
//@Component
public class MyMetaObjectHandler extends MetaObjectHandler {
protected final static Logger logger = LoggerFactory.getLogger(MyMetaObjectHandler.class);
@Override
public void insertFill(MetaObject metaObject) {
}
@Override
public void updateFill(MetaObject metaObject) {
}
}

@ -1,93 +0,0 @@
package com.tamguo.config.dao;
import java.util.ArrayList;
import java.util.List;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.baomidou.mybatisplus.mapper.ISqlInjector;
import com.baomidou.mybatisplus.mapper.LogicSqlInjector;
import com.baomidou.mybatisplus.mapper.MetaObjectHandler;
import com.baomidou.mybatisplus.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.plugins.PerformanceInterceptor;
import com.baomidou.mybatisplus.plugins.parser.ISqlParser;
import com.baomidou.mybatisplus.plugins.parser.tenant.TenantHandler;
import com.baomidou.mybatisplus.plugins.parser.tenant.TenantSqlParser;
import net.sf.jsqlparser.expression.Expression;
import net.sf.jsqlparser.expression.LongValue;
@Configuration
@MapperScan("com.tamguo.modules.*.dao*")
public class MybatisPlusConfig {
@Bean
public PerformanceInterceptor performanceInterceptor() {
return new PerformanceInterceptor();
}
/**
* mybatis-plus<br>
* http://mp.baomidou.com<br>
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
paginationInterceptor.setLocalPage(true);// 开启 PageHelper 的支持
/*
* SQL <br>
* 1 cookie SQL <br>
*/
List<ISqlParser> sqlParserList = new ArrayList<>();
TenantSqlParser tenantSqlParser = new TenantSqlParser();
tenantSqlParser.setTenantHandler(new TenantHandler() {
@Override
public Expression getTenantId() {
return new LongValue(1L);
}
@Override
public String getTenantIdColumn() {
return "course_id";
}
@Override
public boolean doTableFilter(String tableName) {
// 这里可以判断是否过滤表
return true;
}
});
sqlParserList.add(tenantSqlParser);
paginationInterceptor.setSqlParserList(sqlParserList);
// 以下过滤方式与 @SqlParser(filter = true) 注解等效
// paginationInterceptor.setSqlParserFilter(new ISqlParserFilter() {
// @Override
// public boolean doFilter(MetaObject metaObject) {
// MappedStatement ms = PluginUtils.getMappedStatement(metaObject);
// // 过滤自定义查询此时无租户信息约束【 麻花藤 】出现
// if ("com.baomidou.springboot.mapper.UserMapper.selectListBySQL".equals(ms.getId())) {
// return true;
// }
// return false;
// }
// });
return paginationInterceptor;
}
@Bean
public MetaObjectHandler metaObjectHandler(){
return new MyMetaObjectHandler();
}
/**
* sql
*/
@Bean
public ISqlInjector sqlInjector(){
return new LogicSqlInjector();
}
}

@ -1,21 +0,0 @@
package com.tamguo.config.web;
import org.springframework.boot.web.server.ErrorPage;
import org.springframework.boot.web.server.ErrorPageRegistrar;
import org.springframework.boot.web.server.ErrorPageRegistry;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Component;
@Component
public class ErrorConfigurar implements ErrorPageRegistrar {
@Override
public void registerErrorPages(ErrorPageRegistry registry) {
ErrorPage[] errorPages=new ErrorPage[2];
errorPages[0]=new ErrorPage(HttpStatus.NOT_FOUND,"/error404");
errorPages[1]=new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR,"/error500");
registry.addErrorPages(errorPages);
}
}

@ -1,37 +0,0 @@
package com.tamguo.config.web;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.context.EnvironmentAware;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
import org.thymeleaf.spring5.view.ThymeleafViewResolver;
@Component
public class ThymeleafConfig implements EnvironmentAware{
@Resource
private Environment env;
@Resource
private void configureThymeleafStaticVars(ThymeleafViewResolver viewResolver) {
if(viewResolver != null) {
Map<String, Object> vars = new HashMap<>();
vars.put("domainName", env.getProperty("domain.name"));
vars.put("adminDomain", env.getProperty("admin.domain.name"));
vars.put("PAPER_TYPE_ZHENTI", "1");
vars.put("PAPER_TYPE_MONI", "2");
vars.put("PAPER_TYPE_YATI", "3");
vars.put("PAPER_TYPE_MINGXIAO", "4");
viewResolver.setStaticVariables(vars);
}
}
@Override
public void setEnvironment(Environment environment) {
env = environment;
}
}

@ -1,18 +0,0 @@
package com.tamguo.config.web;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Value("${file.storage.path}")
private String fileStoragePath;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/files/**").addResourceLocations("file:"+fileStoragePath);
}
}

@ -1,151 +0,0 @@
package com.tamguo.utils;
import java.util.ArrayList;
import java.util.List;
import com.baomidou.mybatisplus.plugins.Page;
public class PageUtils {
// 是否下一页按钮
private Boolean isShowNextBtn = false;
// 是否上一页按钮
private Boolean isShowPreBtn = false;
// 当前页
private String currPageNum;
// 页码列表
private List<String> pageNums;
// 总页数
private String totalPage;
// 总数量
private String total;
// 数据
private List<?> list;
public static PageUtils getPage(Page<?> page){
PageUtils pg = new PageUtils();
if(page.getCurrent() > 1){
pg.setIsShowPreBtn(true);
}
if(page.getCurrent() < page.getPages()){
pg.setIsShowNextBtn(true);
}
List<String> pgNums = new ArrayList<>();
if(page.getPages() > 1){
if(page.getPages() > 10){
pgNums.add("1");
pgNums.add("2");
pgNums.add("3");
pgNums.add("...");
if(page.getCurrent() == page.getPages()){
pgNums.add(((Integer)(page.getCurrent() - 2)).toString());
pgNums.add(((Integer)(page.getCurrent() - 1)).toString());
pgNums.add(((Integer)page.getCurrent()).toString());
}else{
pgNums.add(((Integer)(page.getCurrent() - 1)).toString());
pgNums.add(((Integer)page.getCurrent()).toString());
pgNums.add(((Integer)(page.getCurrent() + 1)).toString());
}
}else{
Integer n = 1;
if(page.getTotal() > 0){
while(true){
pgNums.add(n.toString());
if(n >= page.getPages()){
break;
}
n ++;
}
}
}
} else {
Integer n = 1;
if(page.getTotal() > 0){
while(true){
pgNums.add(n.toString());
if(n >= page.getPages()){
break;
}
n ++;
}
}
}
pg.setPageNums(pgNums);
pg.setList(page.getRecords());
pg.setCurrPageNum(((Integer)page.getCurrent()).toString());
pg.setTotal(((Integer)page.getTotal()).toString());
pg.setTotalPage(((Integer)page.getPages()).toString());
return pg;
}
public Boolean getIsShowNextBtn() {
return isShowNextBtn;
}
public void setIsShowNextBtn(Boolean isShowNextBtn) {
this.isShowNextBtn = isShowNextBtn;
}
public List<String> getPageNums() {
return pageNums;
}
public void setPageNums(List<String> pageNums) {
this.pageNums = pageNums;
}
public List<?> getList() {
return list;
}
public void setList(List<?> list) {
this.list = list;
}
public Boolean getIsShowPreBtn() {
return isShowPreBtn;
}
public void setIsShowPreBtn(Boolean isShowPreBtn) {
this.isShowPreBtn = isShowPreBtn;
}
public String getCurrPageNum() {
return currPageNum;
}
public void setCurrPageNum(String currPageNum) {
this.currPageNum = currPageNum;
}
public String getTotalPage() {
return totalPage;
}
public void setTotalPage(String totalPage) {
this.totalPage = totalPage;
}
public String getTotal() {
return total;
}
public void setTotal(String total) {
this.total = total;
}
}

@ -1,49 +0,0 @@
package com.tamguo.utils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.session.Session;
import org.apache.shiro.subject.Subject;
import com.tamguo.modules.member.model.MemberEntity;
public class ShiroUtils {
public static Session getSession() {
return SecurityUtils.getSubject().getSession();
}
public static Subject getSubject() {
return SecurityUtils.getSubject();
}
public static MemberEntity getMember() {
return (MemberEntity)SecurityUtils.getSubject().getPrincipal();
}
public static String getMemberId() {
return getMember().getId();
}
public static void setSessionAttribute(Object key, Object value) {
getSession().setAttribute(key, value);
}
public static Object getSessionAttribute(Object key) {
return getSession().getAttribute(key);
}
public static boolean isLogin() {
return SecurityUtils.getSubject().getPrincipal() != null;
}
public static void logout() {
SecurityUtils.getSubject().logout();
}
public static String getKaptcha(String key) {
String kaptcha = getSessionAttribute(key).toString();
// getSession().removeAttribute(key);
return kaptcha;
}
}

@ -1,37 +0,0 @@
package com.tamguo.web;
import java.util.Arrays;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.plugins.Page;
import com.tamguo.modules.tiku.model.ChapterEntity;
import com.tamguo.modules.tiku.model.QuestionEntity;
import com.tamguo.modules.tiku.service.IChapterService;
import com.tamguo.modules.tiku.service.IQuestionService;
@Controller
public class ChapterController {
@Autowired
private IChapterService iChapterService;
@Autowired
private IQuestionService iQuestionService;
@SuppressWarnings("unchecked")
@RequestMapping(path="chapter/{chapterId}-{current}-{size}.html")
public ModelAndView list(@PathVariable String chapterId , @PathVariable Integer current
, @PathVariable Integer size, ModelAndView model) {
ChapterEntity chapter = iChapterService.selectById(chapterId);
Page<QuestionEntity> page = iQuestionService.selectPage(new Page<>(current, size) , Condition.create().eq("chapter_id", chapterId).orderDesc(Arrays.asList("id")));
model.addObject("chapter", chapter);
model.addObject("page", page);
model.addObject("nextPage", current == page.getPages() ? page.getPages() : current+1);
model.addObject("prePage", current == 1 ? 1 : current - 1);
model.setViewName("question");
return model;
}
}

@ -1,53 +0,0 @@
package com.tamguo.web;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.baomidou.mybatisplus.mapper.Condition;
import com.tamguo.modules.tiku.model.BookEntity;
import com.tamguo.modules.tiku.model.ChapterEntity;
import com.tamguo.modules.tiku.model.CourseEntity;
import com.tamguo.modules.tiku.service.IBookService;
import com.tamguo.modules.tiku.service.IChapterService;
import com.tamguo.modules.tiku.service.ICourseService;
@Controller
public class CourseController {
@Autowired
private ICourseService iCourseService;
@Autowired
private IBookService iBookService;
@Autowired
private IChapterService iChapterService;
@SuppressWarnings("unchecked")
@RequestMapping(path= {"course/{courseId}.html"})
public ModelAndView list(@PathVariable String courseId , ModelAndView model) {
CourseEntity course = iCourseService.selectById(courseId);
List<BookEntity> bookList = iBookService.selectList(Condition.create().eq("course_id", courseId));
List<ChapterEntity> chapterList = null;
if(bookList.size() > 0) {
chapterList = iChapterService.selectList(Condition.create().eq("book_id", bookList.get(0).getId()));
}
model.addObject("course", course);
model.addObject("chapterList", chapterList);
model.addObject("subjectId", course.getSubjectId());
model.addObject("courseId", course.getId());
model.setViewName("course");
return model;
}
public ICourseService getiCourseService() {
return iCourseService;
}
public void setiCourseService(ICourseService iCourseService) {
this.iCourseService = iCourseService;
}
}

@ -1,25 +0,0 @@
package com.tamguo.web;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.baomidou.mybatisplus.mapper.Condition;
import com.tamguo.modules.tiku.service.ISubjectService;
@Controller
public class IndexController {
@Autowired
private ISubjectService iSubjectService;
@SuppressWarnings("unchecked")
@RequestMapping(path= {"index","/"})
public ModelAndView index(ModelAndView model) {
model.setViewName("index");
model.addObject("subjectList", iSubjectService.selectList(Condition.EMPTY));
return model;
}
}

@ -1,32 +0,0 @@
package com.tamguo.web;
import java.util.Arrays;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.baomidou.mybatisplus.mapper.Condition;
import com.tamguo.modules.tiku.service.ICourseService;
import com.tamguo.modules.tiku.service.ISubjectService;
@Controller
public class SubjectController {
@Autowired
private ICourseService iCourseService;
@Autowired
private ISubjectService iSubjectService;
@SuppressWarnings("unchecked")
@RequestMapping(path= {"subject/{subjectId}.html"})
public ModelAndView list(@PathVariable String subjectId , ModelAndView model) {
model.setViewName("subject");
model.addObject("subject", iSubjectService.selectById(subjectId));
model.addObject("courseList", iCourseService.selectList(Condition.create().eq("subject_id", subjectId).orderAsc(Arrays.asList("sort"))));
return model;
}
}

@ -1,61 +0,0 @@
domain.name=http://localhost:8084/
server.port=8084
jasypt.encryptor.password=tamguo
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.filters=stat,wall,log4j
spring.datasource.initialSize=5
spring.datasource.maxActive=20
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
spring.datasource.maxWait=60000
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.minIdle=5
spring.datasource.password=Tanguo
spring.datasource.poolPreparedStatements=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
spring.datasource.testWhileIdle=true
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://47.100.175.14:3306/tamguo?useUnicode=true&characterEncoding=UTF-8&useSSL=false
spring.datasource.username=root
spring.datasource.validationQuery=SELECT 1 FROM DUAL
mybatis-plus.mapper-locations=classpath:/mappers/*Mapper.xml
mybatis-plus.typeAliasesPackage=com.tamguo.modules.*.model
mybatis-plus.typeEnumsPackage=com.tamguo.modules.*.model.enums
mybatis-plus.global-config.id-type=5
mybatis-plus.global-config.field-strategy=2
mybatis-plus.global-config.db-column-underline=true
mybatis-plus.global-config.refresh-mapper=true
mybatis-plus.global-config.key-generator=com.baomidou.mybatisplus.incrementer.H2KeyGenerator
mybatis-plus.global-config.logic-delete-value=0
mybatis-plus.global-config.logic-not-delete-value=1
mybatis-plus.global-config.sql-injector=com.baomidou.mybatisplus.mapper.LogicSqlInjector
mybatis-plus.global-config.meta-object-handler=com.tamguo.config.dao.MyMetaObjectHandler
mybatis-plus.global-config.sql-parser-cache=true
mybatis-plus.configuration.map-underscore-to-camel-case=true
mybatis-plus.configuration.cache-enabled=false
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=LEGACYHTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html
spring.thymeleaf.cache=false
redis.hostname=127.0.0.1
redis.port=6379
redis.password=
logging.level.root=INFO
logging.level.org.springframework.web=INFO
logging.file=/home/webdata/log/tamguo.log
logging.pattern.console=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n
logging.pattern.file=%d{yyyy/MM/dd-HH:mm} [%thread] %-5level %logger- %msg%n
server.compression.enabled=true
server.compression.mime-types=application/json,application/xml,text/html,text/xml,text/plain
file.storage.path=/home/webdata/files/

@ -1,11 +0,0 @@
<ehcache updateCheck="false" name="shiroCache">
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="false"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
/>
</ehcache>

@ -1,29 +0,0 @@
<?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.tamguo.dao.CourseMapper">
<select id="findBySubjectId" resultType="CourseEntity">
SELECT
c.uid,
c.`name`,
c.orders,
c.point_num,
c.question_num,
c.subject_id
FROM
tiku_course c
WHERE
c.subject_id = #{subjectId}
ORDER BY orders ASC
</select>
<select id="findByCourseId" resultType="ChapterEntity">
SELECT
c.uid,c.course_id , c.parent_id , c.`name` , c.question_num , c.point_num , c.orders
FROM
tiku_chapter c
WHERE c.course_id = #{courseId}
ORDER BY c.uid asc
</select>
</mapper>

@ -1,23 +0,0 @@
<?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.tamguo.dao.MenuMapper">
<select id="findMenuByParentId" resultType="MenuEntity">
SELECT
uid,name,parent_id,pinyin,is_show,orders,url,reserve_1
FROM
tiku_menu
where parent_id = #{parentId}
order by orders desc
</select>
<select id="findAllFatherMenus" resultType="MenuEntity">
SELECT
uid,name,parent_id,pinyin,is_show,orders,url,reserve_1
FROM
tiku_menu
where parent_id = 1
order by orders desc
</select>
</mapper>

@ -1,25 +0,0 @@
<?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.tamguo.dao.QuestionMapper">
<select id="findPage" resultType="QuestionEntity">
SELECT
q.uid,
q.analysis,
q.answer,
q.chapter_id,
q.content,
q.question_type,
q.course_id,
q.review_point,
q.year,
q.score,
q.subject_id,
q.audit_status
FROM
tiku_question q
WHERE
q.chapter_id = #{chapterId}
Order By q.uid desc
</select>
</mapper>

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<redis>
<preKey value="TAMGUO:" />
<pool maxActive="50" maxIdle="20" maxWait="1000" />
<servers>
<!-- test -->
<server ip="127.0.0.1" port="6379"/>
</servers>
</redis>

@ -1,19 +0,0 @@
var vm = new Vue({
el:'#app',
data : {
docked: false,
open: false,
position: 'left',
panel: '',
total:0,
question:{},
topUrl:"",
nextUrl:null,
warnOpen:false,
warnMessage:'',
courseList:[]
},
methods:{
}
});

@ -1,19 +0,0 @@
var vm = new Vue({
el:'#app',
data : {
docked: false,
open: false,
position: 'left',
panel: '',
total:0,
question:{},
topUrl:"",
nextUrl:null,
warnOpen:false,
warnMessage:'',
courseList:[]
},
methods:{
}
});

@ -1,19 +0,0 @@
var vm = new Vue({
el:'#app',
data : {
docked: false,
open: false,
position: 'left',
panel: '',
total:0,
question:{},
topUrl:"",
nextUrl:null,
warnOpen:false,
warnMessage:'',
courseList:[]
},
methods:{
}
});

@ -1,73 +0,0 @@
<!DOCTYPE html>
<html lang="Zh-hans" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, initial-scale=1.0, user-scalable=no">
<title>探果题库_聪明的学生都在这里</title>
<meta name="keyword" content="探果题库携手高校名师为考生提供高效的智能备考服务,涵括领域有高考、财会类、建筑工程、职业资格、医卫类、计算机类和学历类等热门考试题库。拥有高校名师丰富的经验,优质的学习资料和备考全阶段的高效服务!"/>
<meta name="description" content="探果题库,高考试题,高考试卷,高校试题,名校,名校试题,名校试卷,高校名师,名师专访,名师教案,名师课堂试题库,试卷库,智能题库,历年真题,模拟试题,押题,预测试题,高考,会计证,会计从业,会计师,经济师,施工员,建造师,建筑师,造价师,职业资格,证券资格,考研,计算机考试,建筑考试,财会类,医卫类,护士资格,公务员,知识点,试题,试卷"/>
<meta name="author" content="Tamguo Team" />
<meta name="copyright" content="Tamguo" />
<!-- 引入 FrozenUI -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/muse-ui@3.0.0-rc.5/dist/muse-ui.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700,400italic">
<link rel="stylesheet" href="https://cdn.bootcss.com/material-design-icons/3.0.1/iconfont/material-icons.css">
<style type="text/css">
.mu-appbar-header {
position: fixed;
left: 0;
right: 0;
top: 0;
z-index: 101;
overflow: hidden
}
</style>
</head>
<body>
<div id="app">
<mu-appbar style="width: 100%;" color="grey700" class="mu-appbar-header">
<mu-button icon slot="left" @click="open = true">
<mu-icon value="menu"></mu-icon>
</mu-button>
探果题库
<mu-button flat slot="right">登录</mu-button>
<mu-button flat slot="right">注册</mu-button>
</mu-appbar>
<mu-container style="margin-top:80px;">
<mu-container>
<mu-paper :z-depth="1" class="demo-list-wrap">
<mu-list toggle-nested>
<mu-list-item button nested :open="open === 'send'" th:if="${chapter.treeLevel == 1}" th:each="chapter,status:${chapterList}">
<mu-list-item-title th:text="${chapter.name}">Sent mail</mu-list-item-title>
<mu-list-item-action>
<mu-icon class="toggle-icon" size="24" value="keyboard_arrow_down"></mu-icon>
</mu-list-item-action>
<mu-list-item button nested :open="open === 'send'" slot="nested" th:if="${ch.parentCode == chapter.id}" th:each="ch,status:${chapterList}">
<mu-list-item-title th:text="${ch.name}">List Item 1</mu-list-item-title>
<mu-list-item-action>
<mu-icon class="toggle-icon" size="24" value="keyboard_arrow_down"></mu-icon>
</mu-list-item-action>
<mu-list-item button th:href="${domainName + 'chapter/' + c.id+'-1-5.html'}" :ripple="false" slot="nested" th:if="${c.parentCode == ch.id}" th:each="c,status:${chapterList}">
<mu-list-item-title th:text="${c.name}">List Item 2.1</mu-list-item-title>
</mu-list-item>
</mu-list-item>
</mu-list-item>
</mu-list>
</mu-paper>
<mu-container>
</div>
</body>
<!-- 引入 Vue -->
<script type="text/javascript" th:inline="javascript">
var mainHttp = [[${domainName}]];
var subjectId = [[${subjectId}]];
var courseId = [[${courseId}]];
</script>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16"></script>
<script src="https://cdn.jsdelivr.net/npm/muse-ui@3.0.0-rc.5/dist/muse-ui.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/axios@0.18.0/dist/axios.min.js"></script>
<script th:src="${domainName + 'js/chapter/main.js'}"></script>
</html>

@ -1,60 +0,0 @@
<!DOCTYPE html>
<html lang="Zh-hans" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, initial-scale=1.0, user-scalable=no">
<title>探果题库_聪明的学生都在这里</title>
<meta name="keywords" content="探果题库为考生提供高效的智能备考服务,涵括领域有高考、财会类、建筑工程、职业资格、医卫类、计算机类和学历类等热门考试题库。拥有高校名师丰富的经验,优质的学习资料和备考全阶段的高效服务!"/>
<meta name="description" content="探果题库,高考试题,高考试卷,高校试题,名校,名校试题,名校试卷,高校名师,名师专访,名师教案,名师课堂试题库,试卷库,智能题库,历年真题,模拟试题,押题,预测试题,高考,会计证,会计从业,会计师,经济师,施工员,建造师,建筑师,造价师,职业资格,证券资格,考研,计算机考试,建筑考试,财会类,医卫类,护士资格,公务员,知识点,试题,试卷"/>
<meta name="author" content="Tamguo Team" />
<meta name="copyright" content="Tamguo" />
<!-- 引入 FrozenUI -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/muse-ui@3.0.0-rc.5/dist/muse-ui.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700,400italic">
<link rel="stylesheet" href="https://cdn.bootcss.com/material-design-icons/3.0.1/iconfont/material-icons.css">
<style type="text/css">
.mu-appbar-header {
position: fixed;
left: 0;
right: 0;
top: 0;
z-index: 101;
overflow: hidden;
}
</style>
</head>
<body>
<div id="app">
<mu-appbar style="width: 100%;" color="grey700" class="mu-appbar-header">
<mu-button icon slot="left">
<mu-icon value="menu"></mu-icon>
</mu-button>
探果题库
<mu-button flat slot="right">登录</mu-button>
<mu-button flat slot="right">注册</mu-button>
</mu-appbar>
<mu-paper :z-depth="1" class="demo-list-wrap" style="margin-top:70px;">
<mu-list th:each="subject,status:${subjectList}">
<!-- <mu-sub-header>{{item.name}}</mu-sub-header> -->
<mu-list-item avatar button :ripple="true" th:href="${domainName + 'subject/'+subject.id + '.html'}">
<mu-list-item-title th:text="${subject.name}">{{it.name}}</mu-list-item-title>
<mu-list-item-action>
<mu-icon value="keyboard_arrow_right"></mu-icon>
</mu-list-item-action>
</mu-list-item>
</mu-list-item>
<mu-divider></mu-divider>
</mu-list>
</mu-paper>
</div>
</body>
<!-- 引入 Vue -->
<script type="text/javascript" th:inline="javascript">
var mainHttp = [[${domainName}]];
</script>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16"></script>
<script src="https://cdn.jsdelivr.net/npm/muse-ui@3.0.0-rc.5/dist/muse-ui.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/axios@0.18.0/dist/axios.min.js"></script>
<script th:src="${domainName + 'js/index/main.js'}"></script>
</html>

@ -1,93 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, initial-scale=1.0, user-scalable=no">
<title>探果题库为老师创造价值-探果题库</title>
<!-- 引入 FrozenUI -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/muse-ui@3.0.0-rc.5/dist/muse-ui.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700,400italic">
<link rel="stylesheet" href="https://cdn.bootcss.com/material-design-icons/3.0.1/iconfont/material-icons.css">
<style type="text/css">
.mu-appbar-header {
position: fixed;
left: 0;
right: 0;
top: 0;
z-index: 101;
overflow: hidden
}
.mu-appbar-footer {
position: fixed;
left: 0;
right: 0;
bottom:0px;
z-index: 101;
overflow: hidden
}
</style>
</head>
<body>
<div id="app">
<mu-appbar style="width: 100%;" color="grey700" class="mu-appbar-header">
<mu-button icon slot="left" @click="open = true">
<mu-icon value="menu"></mu-icon>
</mu-button>
探果题库
<mu-button flat slot="right">登录</mu-button>
<mu-button flat slot="right">注册</mu-button>
</mu-appbar>
<mu-container>
<mu-card style="width: 100%;margin-top: 80px;margin-bottom:80px;" raised="true" th:each="question,status:${page.records}">
<mu-card-text th:utext="${question.content}">
</mu-card-text>
<mu-card-title sub-title="答案"></mu-card-title>
<mu-card-text th:utext="${question.answer}">
<span> B </span>
</mu-card-text>
<mu-card-title sub-title="解析"></mu-card-title>
<mu-card-text th:utext="${question.analysis}">
<p> 苯巴比妥属于巴比妥类镇静催眠药;佐匹克隆属于环吡咯酮类镇静催眠药;阿普唑仑属于苯二氮䓬类镇静催眠药,同类药物还有地西泮等,苯妥英钠属于乙内酰脲类抗癫痫药。 </p>
</mu-card-text>
</mu-card>
<mu-drawer :open.sync="open" :docked="true" :right="position === 'right'">
<mu-list>
<mu-list-item :href="mainHttp" button>
<mu-list-item-title>首页</mu-list-item-title>
</mu-list-item>
<mu-list-item button v-for="course in courseList" :href="course.url" @click="open = false">
<mu-list-item-title>{{course.name}}</mu-list-item-title>
</mu-list-item>
<mu-list-item @click="open = false" button>
<mu-list-item-title>关闭</mu-list-item-title>
</mu-list-item>
</mu-list>
</mu-drawer>
<mu-container>
<mu-bottom-nav class="mu-appbar-footer">
<mu-bottom-nav-item title="上一页" icon="keyboard_arrow_left" th:href="${domainName + 'chapter/' + chapter.id + '-'+prePage+'-5.html'}"></mu-bottom-nav-item>
<mu-bottom-nav-item th:title="${page.current + '/' + page.pages + '页'}"></mu-bottom-nav-item>
<mu-bottom-nav-item title="下一页" icon="keyboard_arrow_right" th:href="${domainName + 'chapter/' + chapter.id + '-'+nextPage+'-5.html'}" :disabled="true"></mu-bottom-nav-item>
</mu-bottom-nav>
</div>
</body>
<!-- 引入 Vue -->
<script type="text/javascript" th:inline="javascript">
var mainHttp = [[${domainName}]];
</script>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16"></script>
<script src="https://cdn.jsdelivr.net/npm/muse-ui@3.0.0-rc.5/dist/muse-ui.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/axios@0.18.0/dist/axios.min.js"></script>
<script th:src="${domainName + 'js/question/main.js'}"></script>
</html>

@ -1,60 +0,0 @@
<!DOCTYPE html>
<html lang="Zh-hans" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, initial-scale=1.0, user-scalable=no">
<title th:text="${#strings.isEmpty(subject.seoTitle) ? '探果题库_聪明的学生都在这里' : subject.seoTitle}"></title>
<meta name="keywords" th:content="${#strings.isEmpty(subject.seoKeywords) ? '探果题库为考生提供高效的智能备考服务,涵括领域有高考、财会类、建筑工程、职业资格、医卫类、计算机类和学历类等热门考试题库。拥有高校名师丰富的经验,优质的学习资料和备考全阶段的高效服务!' : subject.seoKeywords}"/>
<meta name="description" th:content="${#strings.isEmpty(subject.seoDescription) ? '探果题库,高考试题,高考试卷,高校试题,名校,名校试题,名校试卷,高校名师,名师专访,名师教案,名师课堂试题库,试卷库,智能题库,历年真题,模拟试题,押题,预测试题,高考,会计证,会计从业,会计师,经济师,施工员,建造师,建筑师,造价师,职业资格,证券资格,考研,计算机考试,建筑考试,财会类,医卫类,护士资格,公务员,知识点,试题,试卷' : subject.seoDescription}"/>
<meta name="author" content="Tamguo Team" />
<meta name="copyright" content="Tamguo" />
<!-- 引入 FrozenUI -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/muse-ui@3.0.0-rc.5/dist/muse-ui.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700,400italic">
<link rel="stylesheet" href="https://cdn.bootcss.com/material-design-icons/3.0.1/iconfont/material-icons.css">
<style type="text/css">
.mu-appbar-header {
position: fixed;
left: 0;
right: 0;
top: 0;
z-index: 101;
overflow: hidden
}
</style>
</head>
<body>
<div id="app">
<mu-appbar style="width: 100%;" color="grey700" class="mu-appbar-header">
<mu-button icon slot="left">
<mu-icon value="menu"></mu-icon>
</mu-button>
探果题库
<mu-button flat slot="right">登录</mu-button>
<mu-button flat slot="right">注册</mu-button>
</mu-appbar>
<mu-paper :z-depth="1" class="demo-list-wrap" style="margin-top:70px;">
<mu-list>
<mu-sub-header th:text="${subject.name}">高考</mu-sub-header>
<mu-list-item avatar button :ripple="true" th:href="${domainName + 'course/' + course.id + '.html'}" th:each="course,courseStatus:${courseList}">
<mu-list-item-title th:text="${course.name}">{{it.name}}</mu-list-item-title>
<mu-list-item-action>
<mu-icon value="keyboard_arrow_right"></mu-icon>
</mu-list-item-action>
</mu-list-item>
</mu-list-item>
<mu-divider></mu-divider>
</mu-list>
</mu-paper>
</div>
</body>
<!-- 引入 Vue -->
<script type="text/javascript" th:inline="javascript">
var mainHttp = [[${domainName}]];
</script>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16"></script>
<script src="https://cdn.jsdelivr.net/npm/muse-ui@3.0.0-rc.5/dist/muse-ui.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/axios@0.18.0/dist/axios.min.js"></script>
<script th:src="${domainName + 'js/index/main.js'}"></script>
</html>
Loading…
Cancel
Save