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);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* FastJson替代Jackson
|
|
||||||
* @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,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…
Reference in new issue