reconsitution

main
tamguo 7 years ago
parent 126887e651
commit 2e6f528a79

@ -22,7 +22,7 @@
<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/J2SE-1.5">
<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>

@ -0,0 +1,6 @@
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

@ -1,5 +1,5 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
org.eclipse.jdt.core.compiler.compliance=1.5
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.5
org.eclipse.jdt.core.compiler.source=1.8

@ -3,4 +3,163 @@
<groupId>com.tamguo</groupId>
<artifactId>tamguo-bms</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>bms</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

@ -0,0 +1,36 @@
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);
}
}

@ -0,0 +1,23 @@
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) {
}
}

@ -0,0 +1,93 @@
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();
}
}

@ -0,0 +1,21 @@
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);
}
}

@ -0,0 +1,40 @@
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;
import com.tamguo.common.utils.SystemConstant;
@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", SystemConstant.ZHENGTI_PAPER_ID);
vars.put("PAPER_TYPE_MONI", SystemConstant.MONI_PAPER_ID);
vars.put("PAPER_TYPE_YATI", SystemConstant.YATI_PAPER_ID);
vars.put("PAPER_TYPE_MINGXIAO", SystemConstant.MINGXIAO_PAPER_ID);
vars.put("BEIJING_AREA_ID", SystemConstant.BEIJING_AREA_ID);
viewResolver.setStaticVariables(vars);
}
}
@Override
public void setEnvironment(Environment environment) {
env = environment;
}
}

@ -0,0 +1,18 @@
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);
}
}

@ -0,0 +1,62 @@
domain.name=http://localhost:8083/
admin.domain.name=http://localhost:8083/
server.port=8083
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=123456
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://127.0.0.1:3306/tamguo_20181110?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/

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

@ -0,0 +1,9 @@
<?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>

@ -0,0 +1,8 @@
package com.tamguo.modules.book.dao;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.tamguo.modules.book.model.BookCategoryEntity;
public interface BookCategoryMapper extends BaseMapper<BookCategoryEntity>{
}

@ -0,0 +1,8 @@
package com.tamguo.modules.book.dao;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.tamguo.modules.book.model.BookEntity;
public interface BookMapper extends BaseMapper<BookEntity> {
}

@ -0,0 +1,8 @@
package com.tamguo.modules.book.dao;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.tamguo.modules.book.model.DocumentEntity;
public interface DocumentMapper extends BaseMapper<DocumentEntity>{
}

@ -0,0 +1,112 @@
package com.tamguo.modules.book.model;
import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
@TableName(value="b_book_category")
public class BookCategoryEntity {
@TableId
private String id;
private String parentCode;
private String parentCodes;
private String treeSort;
private String treeSorts;
private String treeLeaf;
private String treeLevel;
private String treeNames;
private String name;
private String seoTitle;
private String seoKeywords;
private String seoDescription;
private Date createDate;
private Date updateDate;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getParentCode() {
return parentCode;
}
public void setParentCode(String parentCode) {
this.parentCode = parentCode;
}
public String getParentCodes() {
return parentCodes;
}
public void setParentCodes(String parentCodes) {
this.parentCodes = parentCodes;
}
public String getTreeSort() {
return treeSort;
}
public void setTreeSort(String treeSort) {
this.treeSort = treeSort;
}
public String getTreeSorts() {
return treeSorts;
}
public void setTreeSorts(String treeSorts) {
this.treeSorts = treeSorts;
}
public String getTreeLeaf() {
return treeLeaf;
}
public void setTreeLeaf(String treeLeaf) {
this.treeLeaf = treeLeaf;
}
public String getTreeLevel() {
return treeLevel;
}
public void setTreeLevel(String treeLevel) {
this.treeLevel = treeLevel;
}
public String getTreeNames() {
return treeNames;
}
public void setTreeNames(String treeNames) {
this.treeNames = treeNames;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSeoTitle() {
return seoTitle;
}
public void setSeoTitle(String seoTitle) {
this.seoTitle = seoTitle;
}
public String getSeoKeywords() {
return seoKeywords;
}
public void setSeoKeywords(String seoKeywords) {
this.seoKeywords = seoKeywords;
}
public String getSeoDescription() {
return seoDescription;
}
public void setSeoDescription(String seoDescription) {
this.seoDescription = seoDescription;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public Date getUpdateDate() {
return updateDate;
}
public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate;
}
}

@ -0,0 +1,84 @@
package com.tamguo.modules.book.model;
import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
@TableName(value="b_book")
public class BookEntity {
@TableId
private String id;
private String categoryId;
private String bookImage;
private String owner;
private String name;
private String seoTitle;
private String seoKeywords;
private String seoDescription;
private Date createDate;
private Date updateDate;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getCategoryId() {
return categoryId;
}
public void setCategoryId(String categoryId) {
this.categoryId = categoryId;
}
public String getOwner() {
return owner;
}
public void setOwner(String owner) {
this.owner = owner;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSeoTitle() {
return seoTitle;
}
public void setSeoTitle(String seoTitle) {
this.seoTitle = seoTitle;
}
public String getSeoKeywords() {
return seoKeywords;
}
public void setSeoKeywords(String seoKeywords) {
this.seoKeywords = seoKeywords;
}
public String getSeoDescription() {
return seoDescription;
}
public void setSeoDescription(String seoDescription) {
this.seoDescription = seoDescription;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public Date getUpdateDate() {
return updateDate;
}
public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate;
}
public String getBookImage() {
return bookImage;
}
public void setBookImage(String bookImage) {
this.bookImage = bookImage;
}
}

@ -0,0 +1,63 @@
package com.tamguo.modules.book.model;
import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
@TableName(value="b_document")
public class DocumentEntity {
@TableId
private String id;
private String bookId;
private String owner;
private String name;
private String status;
private Date createDate;
private Date updateDate;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getBookId() {
return bookId;
}
public void setBookId(String bookId) {
this.bookId = bookId;
}
public String getOwner() {
return owner;
}
public void setOwner(String owner) {
this.owner = owner;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public Date getUpdateDate() {
return updateDate;
}
public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate;
}
}

@ -0,0 +1,8 @@
package com.tamguo.modules.book.service;
import com.baomidou.mybatisplus.service.IService;
import com.tamguo.modules.book.model.BookEntity;
public interface BookService extends IService<BookEntity>{
}

@ -0,0 +1,13 @@
package com.tamguo.modules.book.service.impl;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.tamguo.modules.book.dao.BookMapper;
import com.tamguo.modules.book.model.BookEntity;
import com.tamguo.modules.book.service.BookService;
@Service(value="bbookServiceImpl")
public class BookServiceImpl extends ServiceImpl<BookMapper, BookEntity> implements BookService{
}

@ -8,7 +8,7 @@ import com.tamguo.modules.tiku.model.ChapterEntity;
public interface ChapterMapper extends SuperMapper<ChapterEntity>{
@Select("select * from tiku_chapter where parent_code = #{parentCode} and id = (select min(id) from tiku_chapter where id > #{id})")
@Select("select * from t_chapter where parent_code = #{parentCode} and id = (select min(id) from t_chapter where id > #{id})")
ChapterEntity selectNextChapter(@Param(value="parentCode")String parentCode , @Param(value="id")String id);
}

@ -4,10 +4,10 @@ import java.util.List;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.plugins.pagination.Pagination;
import com.tamguo.modules.tiku.model.BookEntity;
import com.tamguo.modules.tiku.model.KnowPointEntity;
import com.tamguo.modules.tiku.model.condition.BookCondition;
public interface BookMapper extends BaseMapper<BookEntity>{
public interface KnowPointMapper extends BaseMapper<KnowPointEntity>{
List<BookEntity> listData(Pagination page , BookCondition condition);
List<KnowPointEntity> listData(Pagination page , BookCondition condition);
}

@ -11,7 +11,7 @@ import com.tamguo.config.dao.SuperEntity;
* The persistent class for the tiku_ad database table.
*
*/
@TableName(value="tiku_ad")
@TableName(value="t_ad")
public class AdEntity extends SuperEntity<AdEntity> implements Serializable {
private static final long serialVersionUID = 1L;

@ -16,7 +16,7 @@ import java.util.List;
* The persistent class for the tiku_chapter database table.
*
*/
@TableName(value="tiku_chapter")
@TableName(value="t_chapter")
public class ChapterEntity extends SuperEntity<ChapterEntity> implements Serializable {
private static final long serialVersionUID = 1L;

@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import com.tamguo.modules.tiku.model.enums.CourseStatusEnum;
@TableName(value="tiku_course")
@TableName(value="t_course")
public class CourseEntity {
@TableId

@ -9,8 +9,8 @@ import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import com.tamguo.modules.tiku.model.enums.BookStatusEnum;
@TableName(value="tiku_book")
public class BookEntity {
@TableName(value="t_know_point")
public class KnowPointEntity {
@TableId
private String id;

@ -12,7 +12,7 @@ import java.util.List;
* The persistent class for the tiku_subject database table.
*
*/
@TableName(value="tiku_menu")
@TableName(value="t_menu")
public class MenuEntity extends SuperEntity<MenuEntity> implements Serializable {
private static final long serialVersionUID = 1L;

@ -13,7 +13,7 @@ import com.tamguo.config.dao.SuperEntity;
* The persistent class for the tiku_chapter database table.
*
*/
@TableName(value="tiku_paper")
@TableName(value="t_paper")
public class PaperEntity extends SuperEntity<PaperEntity> implements Serializable {
private static final long serialVersionUID = 1L;

@ -5,7 +5,7 @@ import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableName;
import com.tamguo.config.dao.SuperEntity;
@TableName(value="tiku_question_answer")
@TableName(value="t_question_answer")
public class QuestionAnswerEntity extends SuperEntity<PaperEntity> implements Serializable{
private static final long serialVersionUID = 1L;

@ -9,7 +9,7 @@ import com.tamguo.config.dao.SuperEntity;
* The persistent class for the tiku_question database table.
*
*/
@TableName(value="tiku_question")
@TableName(value="t_question")
public class QuestionEntity extends SuperEntity<QuestionEntity> implements Serializable {
private static final long serialVersionUID = 1L;

@ -12,7 +12,7 @@ import com.tamguo.config.dao.SuperEntity;
* The persistent class for the tiku_chapter database table.
*
*/
@TableName(value="tiku_school")
@TableName(value="t_school")
public class SchoolEntity extends SuperEntity<SchoolEntity> implements Serializable {
private static final long serialVersionUID = 1L;

@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.FieldFill;
import com.tamguo.modules.tiku.model.enums.SubjectStatusEnum;
@TableName(value="tiku_subject")
@TableName(value="t_subject")
public class SubjectEntity {
@TableId

@ -3,16 +3,16 @@ package com.tamguo.modules.tiku.service;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.tamguo.modules.tiku.model.BookEntity;
import com.tamguo.modules.tiku.model.KnowPointEntity;
import com.tamguo.modules.tiku.model.condition.BookCondition;
public interface IBookService extends IService<BookEntity>{
public interface IKnowPointService extends IService<KnowPointEntity>{
Page<BookEntity> listData(BookCondition condition);
Page<KnowPointEntity> listData(BookCondition condition);
void save(BookEntity book);
void save(KnowPointEntity book);
void update(BookEntity book);
void update(KnowPointEntity book);
void delete(String id);

@ -14,10 +14,10 @@ import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.tamguo.common.utils.SystemConstant;
import com.tamguo.modules.tiku.dao.BookMapper;
import com.tamguo.modules.tiku.dao.KnowPointMapper;
import com.tamguo.modules.tiku.dao.ChapterMapper;
import com.tamguo.modules.tiku.dao.CourseMapper;
import com.tamguo.modules.tiku.model.BookEntity;
import com.tamguo.modules.tiku.model.KnowPointEntity;
import com.tamguo.modules.tiku.model.ChapterEntity;
import com.tamguo.modules.tiku.model.condition.ChapterCondition;
import com.tamguo.modules.tiku.model.enums.ChapterStatusEnum;
@ -31,7 +31,7 @@ public class ChapterServiceImpl extends ServiceImpl<ChapterMapper, ChapterEntity
@Autowired
CourseMapper courseMapper;
@Autowired
BookMapper bookMapper;
KnowPointMapper bookMapper;
@Transactional(readOnly=false)
@SuppressWarnings("unchecked")
@ -201,7 +201,7 @@ public class ChapterServiceImpl extends ServiceImpl<ChapterMapper, ChapterEntity
@SuppressWarnings("unchecked")
@Override
public List<ChapterEntity> findCourseChapter(String courseId) {
List<BookEntity> bookList = bookMapper.selectList(Condition.create().eq("course_id", courseId));
List<KnowPointEntity> bookList = bookMapper.selectList(Condition.create().eq("course_id", courseId));
if(bookList.size() == 0) {
return null;
}

@ -11,23 +11,23 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.tamguo.modules.tiku.dao.BookMapper;
import com.tamguo.modules.tiku.dao.KnowPointMapper;
import com.tamguo.modules.tiku.dao.CourseMapper;
import com.tamguo.modules.tiku.dao.SubjectMapper;
import com.tamguo.modules.tiku.model.BookEntity;
import com.tamguo.modules.tiku.model.KnowPointEntity;
import com.tamguo.modules.tiku.model.CourseEntity;
import com.tamguo.modules.tiku.model.SubjectEntity;
import com.tamguo.modules.tiku.model.condition.BookCondition;
import com.tamguo.modules.tiku.model.enums.BookStatusEnum;
import com.tamguo.modules.tiku.model.enums.CourseStatusEnum;
import com.tamguo.modules.tiku.model.enums.SubjectStatusEnum;
import com.tamguo.modules.tiku.service.IBookService;
import com.tamguo.modules.tiku.service.IKnowPointService;
@Service
public class BookServiceImpl extends ServiceImpl<BookMapper, BookEntity> implements IBookService{
public class KnowPointServiceImpl extends ServiceImpl<KnowPointMapper, KnowPointEntity> implements IKnowPointService{
@Autowired
BookMapper bookMapper;
KnowPointMapper knowPointMapper;
@Autowired
CourseMapper courseMapper;
@Autowired
@ -35,26 +35,26 @@ public class BookServiceImpl extends ServiceImpl<BookMapper, BookEntity> impleme
@Transactional(readOnly=false)
@Override
public Page<BookEntity> listData(BookCondition condition) {
Page<BookEntity> page = new Page<>(condition.getPageNo() , condition.getPageSize());
return page.setRecords(bookMapper.listData(page, condition));
public Page<KnowPointEntity> listData(BookCondition condition) {
Page<KnowPointEntity> page = new Page<>(condition.getPageNo() , condition.getPageSize());
return page.setRecords(knowPointMapper.listData(page, condition));
}
@Transactional(readOnly=false)
@Override
public void save(BookEntity book) {
public void save(KnowPointEntity book) {
CourseEntity course = courseMapper.selectById(book.getCourseId());
book.setStatus(BookStatusEnum.NORMAL);
book.setSubjectId(course.getSubjectId());
bookMapper.insert(book);
knowPointMapper.insert(book);
}
@Transactional(readOnly=false)
@Override
public void update(BookEntity book) {
public void update(KnowPointEntity book) {
CourseEntity course = courseMapper.selectById(book.getCourseId());
BookEntity entity = bookMapper.selectById(book.getId());
KnowPointEntity entity = knowPointMapper.selectById(book.getId());
entity.setName(book.getName());
entity.setPointNum(book.getPointNum());
@ -64,31 +64,31 @@ public class BookServiceImpl extends ServiceImpl<BookMapper, BookEntity> impleme
entity.setSort(book.getSort());
entity.setCourseId(course.getId());
bookMapper.updateById(entity);
knowPointMapper.updateById(entity);
}
@Transactional(readOnly=false)
@Override
public void delete(String id) {
BookEntity book = bookMapper.selectById(id);
KnowPointEntity book = knowPointMapper.selectById(id);
book.setStatus(BookStatusEnum.DELETE);
bookMapper.updateById(book);
knowPointMapper.updateById(book);
}
@Transactional(readOnly=false)
@Override
public void enable(String id) {
BookEntity book = bookMapper.selectById(id);
KnowPointEntity book = knowPointMapper.selectById(id);
book.setStatus(BookStatusEnum.NORMAL);
bookMapper.updateById(book);
knowPointMapper.updateById(book);
}
@Transactional(readOnly=false)
@Override
public void disabled(String id) {
BookEntity book = bookMapper.selectById(id);
KnowPointEntity book = knowPointMapper.selectById(id);
book.setStatus(BookStatusEnum.DISABLED);
bookMapper.updateById(book);
knowPointMapper.updateById(book);
}
@Transactional(readOnly=false)
@ -97,11 +97,11 @@ public class BookServiceImpl extends ServiceImpl<BookMapper, BookEntity> impleme
public JSONArray treeData() {
List<SubjectEntity> subjectList = subjectMapper.selectList(Condition.create().eq("status", SubjectStatusEnum.NORMAL.getValue()));
List<CourseEntity> courseList = courseMapper.selectList(Condition.create().eq("status", CourseStatusEnum.NORMAL.getValue()));
List<BookEntity> bookList = bookMapper.selectList(Condition.create().eq("status", BookStatusEnum.NORMAL.getValue()));
List<KnowPointEntity> bookList = knowPointMapper.selectList(Condition.create().eq("status", BookStatusEnum.NORMAL.getValue()));
return transform(subjectList, courseList , bookList);
}
private JSONArray transform(List<SubjectEntity> subjectList , List<CourseEntity> courseList , List<BookEntity> bookList) {
private JSONArray transform(List<SubjectEntity> subjectList , List<CourseEntity> courseList , List<KnowPointEntity> bookList) {
JSONArray entitys = new JSONArray();
for(int i=0 ; i<subjectList.size() ; i++) {
JSONObject entity = new JSONObject();

@ -1,8 +1,8 @@
<?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.modules.tiku.dao.BookMapper">
<mapper namespace="com.tamguo.modules.tiku.dao.KnowPointMapper">
<select id="listData" resultType="BookEntity">
<select id="listData" resultType="KnowPointEntity">
SELECT
b.id,
b.subject_id,
@ -20,9 +20,9 @@
s.name AS subject_name,
c.name AS course_name
FROM
tiku_book b
LEFT JOIN tiku_subject s ON s.id = b.subject_id
LEFT JOIN tiku_course c ON c.id = b.course_id
t_know_point b
LEFT JOIN t_subject s ON s.id = b.subject_id
LEFT JOIN t_course c ON c.id = b.course_id
WHERE
1 = 1
<if test="id != null and id != ''">

@ -12,38 +12,38 @@ import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.plugins.Page;
import com.tamguo.common.utils.ExceptionSupport;
import com.tamguo.common.utils.Result;
import com.tamguo.modules.tiku.model.BookEntity;
import com.tamguo.modules.tiku.model.KnowPointEntity;
import com.tamguo.modules.tiku.model.CourseEntity;
import com.tamguo.modules.tiku.model.condition.BookCondition;
import com.tamguo.modules.tiku.service.IBookService;
import com.tamguo.modules.tiku.service.IKnowPointService;
import com.tamguo.modules.tiku.service.ICourseService;
@Controller
@RequestMapping(path="tiku/book")
public class BookController {
@RequestMapping(path="tiku/knowpoint")
public class KnowPointController {
/** 书籍*/
private final String BOOK_LIST_PAGE = "modules/tiku/book/list";
private final String BOOK_UPDATE_PAGE = "modules/tiku/book/update";
private final String KNOWPOINT_LIST_PAGE = "modules/tiku/knowpoint/list";
private final String KNOWPOINT_UPDATE_PAGE = "modules/tiku/knowpoint/update";
@Autowired
private IBookService iBookService;
private IKnowPointService iKnowPointService;
@Autowired
private ICourseService iCourseService;
@RequestMapping(path="list")
public ModelAndView index(ModelAndView model) {
model.setViewName(BOOK_LIST_PAGE);
model.setViewName(KNOWPOINT_LIST_PAGE);
return model;
}
@RequestMapping(path="update")
public ModelAndView update(String id, ModelAndView model) {
model.setViewName(BOOK_UPDATE_PAGE);
BookEntity book = iBookService.selectById(id);
CourseEntity course = iCourseService.selectById(book.getCourseId());
model.addObject("book", book);
model.setViewName(KNOWPOINT_UPDATE_PAGE);
KnowPointEntity knowpoint = iKnowPointService.selectById(id);
CourseEntity course = iCourseService.selectById(knowpoint.getCourseId());
model.addObject("knowpoint", knowpoint);
model.addObject("course", course);
return model;
}
@ -51,15 +51,15 @@ public class BookController {
@RequestMapping(path="listData",method=RequestMethod.POST)
@ResponseBody
public Map<String, Object> listData(BookCondition condition) {
Page<BookEntity> page = iBookService.listData(condition);
Page<KnowPointEntity> page = iKnowPointService.listData(condition);
return Result.jqGridResult(page.getRecords(), page.getTotal(), page.getSize(), page.getCurrent(), page.getPages());
}
@RequestMapping(path="save",method=RequestMethod.POST)
@ResponseBody
public Result save(BookEntity book) {
public Result save(KnowPointEntity book) {
try {
iBookService.save(book);
iKnowPointService.save(book);
return Result.result(0, null, "保存书籍【"+book.getName()+"】成功");
} catch (Exception e) {
return ExceptionSupport.resolverResult("保存书籍", this.getClass(), e);
@ -68,9 +68,9 @@ public class BookController {
@RequestMapping(path="update",method=RequestMethod.POST)
@ResponseBody
public Result update(BookEntity book) {
public Result update(KnowPointEntity book) {
try {
iBookService.update(book);
iKnowPointService.update(book);
return Result.result(0, null, "修改书籍【"+book.getName()+"】成功");
} catch (Exception e) {
return ExceptionSupport.resolverResult("修改书籍", this.getClass(), e);
@ -81,7 +81,7 @@ public class BookController {
@ResponseBody
public Result delete(String id) {
try {
iBookService.delete(id);
iKnowPointService.delete(id);
return Result.result(0, null, "删除书籍成功");
} catch (Exception e) {
return ExceptionSupport.resolverResult("删除书籍", this.getClass(), e);
@ -92,7 +92,7 @@ public class BookController {
@ResponseBody
public Result enable(String id) {
try {
iBookService.enable(id);
iKnowPointService.enable(id);
return Result.result(0, null, "激活书籍成功");
} catch (Exception e) {
return ExceptionSupport.resolverResult("激活书籍", this.getClass(), e);
@ -103,7 +103,7 @@ public class BookController {
@ResponseBody
public Result disabled(String id) {
try {
iBookService.disabled(id);
iKnowPointService.disabled(id);
return Result.result(0, null, "停用书籍成功");
} catch (Exception e) {
return ExceptionSupport.resolverResult("停用书籍", this.getClass(), e);
@ -113,6 +113,6 @@ public class BookController {
@RequestMapping(path="treeData",method=RequestMethod.POST)
@ResponseBody
public JSONArray treeData() {
return iBookService.treeData();
return iKnowPointService.treeData();
}
}

@ -20,7 +20,7 @@ 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://127.0.0.1:3306/tamguo?useUnicode=true&characterEncoding=UTF-8&useSSL=false
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/tamguo_20181110?useUnicode=true&characterEncoding=UTF-8&useSSL=false
spring.datasource.username=root
spring.datasource.validationQuery=SELECT 1 FROM DUAL

@ -1,6 +1,5 @@
<!DOCTYPE html><html><head><meta charset="utf-8"><meta content="webkit" name="renderer"/><meta http-equiv="X-UA-Compatible"
content="IE=edge"><meta name="keywords" content="PoweredByJeeSiteV4.0"/><meta http-equiv="Cache-Control"
content="no-cache, no-store, must-revalidate"/><meta name="description" content="PoweredByJeeSiteV4.0"/><meta
content="IE=edge"><meta
content="no-cache" http-equiv="Pragma"/><meta http-equiv="Expires" content="0"/><meta
content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
<title>书籍管理 - JeeSite Demo</title>
@ -26,7 +25,7 @@ content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
</div>
</div>
<form id="inputForm" th:action="${setting.domain + 'tiku/book/save'}" method="post" class="form-horizontal">
<form id="inputForm" th:action="${setting.domain + 'tiku/knowpoint/save'}" method="post" class="form-horizontal">
<div class="box-body">
<div class="form-unit">基本信息</div>
<div class="row">

@ -1,10 +1,9 @@
<!DOCTYPE html><html><head><meta charset="utf-8"><meta content="webkit" name="renderer"/><meta http-equiv="X-UA-Compatible"
content="IE=edge"><meta name="keywords" content="PoweredByJeeSiteV4.0"/><meta http-equiv="Cache-Control"
content="no-cache, no-store, must-revalidate"/><meta name="description" content="PoweredByJeeSiteV4.0"/><meta
content="IE=edge"><meta
content="no-cache" http-equiv="Pragma"/><meta http-equiv="Expires" content="0"/><meta
content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
<title>书籍管理 - JeeSite Demo</title>
<title>书籍管理 - Tamguo OMS</title>
<script th:src="${setting.domain + 'global.min.js'}"></script>
<script th:src="${setting.domain + 'jquery/jquery-1.12.4.min.js'}"></script>
<script th:src="${setting.domain + 'jquery/jquery-migrate-1.4.1.min.js'}"></script>
@ -41,7 +40,7 @@ content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
</div>
<div class="ui-layout-center">
<iframe id="mainFrame" name="mainFrame" class="ui-layout-content p0"
th:src="${setting.domain + 'tiku/book/list'}"></iframe>
th:src="${setting.domain + 'tiku/knowpoint/list'}"></iframe>
</div>
<a id="scroll-up" href="#" class="btn btn-sm"><i class="fa fa-angle-double-up"></i></a>

@ -3,7 +3,7 @@ content="IE=edge"><meta name="keywords" content="PoweredByJeeSiteV4.0"/><meta ht
content="no-cache, no-store, must-revalidate"/><meta name="description" content="PoweredByJeeSiteV4.0"/><meta
content="no-cache" http-equiv="Pragma"/><meta http-equiv="Expires" content="0"/><meta
content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
<title>书籍管理 - JeeSite Demo</title>
<title>书籍管理 - Tamguo OMS</title>
<script th:src="${setting.domain + 'global.min.js'}"></script>
<script th:src="${setting.domain + 'jquery/jquery-1.12.4.min.js'}"></script>
<script th:src="${setting.domain + 'jquery/jquery-migrate-1.4.1.min.js'}"></script>
@ -25,7 +25,7 @@ content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
</div>
<div class="box-tools pull-right">
<a href="#" class="btn btn-default" id="btnSearch" title="查询"><i class="fa fa-filter"></i> 查询</a>
<a href="tiku/book/add" class="btn btn-default btnTool" title="新增书籍"><i class="fa fa-plus"></i> 新增</a>
<a href="tiku/knowpoint/add" class="btn btn-default btnTool" title="新增书籍"><i class="fa fa-plus"></i> 新增</a>
<div class="btn-group">
<a href="javascript:" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-navicon"></i> <span class="caret"></span>
@ -38,7 +38,7 @@ content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
</div>
</div>
<div class="box-body">
<form id="searchForm" th:action="${setting.domain + 'tiku/book/listData'}" method="post" class="form-inline " data-page-no="1" data-page-size="10" data-order-by="">
<form id="searchForm" th:action="${setting.domain + 'tiku/knowpoint/listData'}" method="post" class="form-inline " data-page-no="1" data-page-size="10" data-order-by="">
<div class="form-group">
<label class="control-label">书籍编号:</label>
<div class="control-inline">
@ -171,7 +171,7 @@ $('#dataGrid').dataGrid({
searchForm: $("#searchForm"),
columnModel: [
{header:'书籍编号', name:'id', index:'u.id', width:300, align:"center", frozen:true, formatter: function(val, obj, row, act){
return '<a href="tiku/book/update?id='+row.id+'&op=edit" class="btnList" data-title="编辑书籍">'+(val||row.id)+'</a>';
return '<a href="tiku/knowpoint/update?id='+row.id+'&op=edit" class="btnList" data-title="编辑书籍">'+(val||row.id)+'</a>';
}},
{header:'分类', name:'subjectName', index:'u.courseName', width:100, align:"center"},
{header:'科目', name:'courseName', index:'u.courseName', width:100, align:"center"},
@ -189,14 +189,14 @@ $('#dataGrid').dataGrid({
}},
{header:'操作', name:'actions', width:160, sortable:false, title:false, formatter: function(val, obj, row, act){
var actions = [];
actions.push('<a href="tiku/book/update?id='+row.id+'&op=edit" class="btnList" title="编辑书籍"><i class="fa fa-pencil"></i></a>&nbsp;');
actions.push('<a href="tiku/knowpoint/update?id='+row.id+'&op=edit" class="btnList" title="编辑书籍"><i class="fa fa-pencil"></i></a>&nbsp;');
if (row.status == "normal"){
actions.push('<a href="'+ctx+'tiku/book/disabled?id='+row.id+'" class="btnList" title="停用书籍" data-confirm="确认要停用该书籍吗?"><i class="glyphicon glyphicon-ban-circle"></i></a>&nbsp;');
actions.push('<a href="'+ctx+'tiku/knowpoint/disabled?id='+row.id+'" class="btnList" title="停用书籍" data-confirm="确认要停用该书籍吗?"><i class="glyphicon glyphicon-ban-circle"></i></a>&nbsp;');
}
if (row.status == "disabled"){
actions.push('<a href="'+ctx+'tiku/book/enable?id='+row.id+'" class="btnList" title="启用书籍" data-confirm="确认要启用该书籍吗?"><i class="glyphicon glyphicon-ok-circle"></i></a>&nbsp;');
actions.push('<a href="'+ctx+'tiku/knowpoint/enable?id='+row.id+'" class="btnList" title="启用书籍" data-confirm="确认要启用该书籍吗?"><i class="glyphicon glyphicon-ok-circle"></i></a>&nbsp;');
}
actions.push('<a href="'+ctx+'tiku/book/delete?id='+row.id+'" class="btnList" title="删除书籍" data-confirm="确认要删除该书籍吗?"><i class="fa fa-trash-o"></i></a>&nbsp;');
actions.push('<a href="'+ctx+'tiku/knowpoint/delete?id='+row.id+'" class="btnList" title="删除书籍" data-confirm="确认要删除该书籍吗?"><i class="fa fa-trash-o"></i></a>&nbsp;');
return actions.join('');
}}
],

@ -1,9 +1,8 @@
<!DOCTYPE html><html><head><meta charset="utf-8"><meta content="webkit" name="renderer"/><meta http-equiv="X-UA-Compatible"
content="IE=edge"><meta name="keywords" content="PoweredByJeeSiteV4.0"/><meta http-equiv="Cache-Control"
content="no-cache, no-store, must-revalidate"/><meta name="description" content="PoweredByJeeSiteV4.0"/><meta
content="no-cache" http-equiv="Pragma"/><meta http-equiv="Expires" content="0"/><meta
content="IE=edge">
<meta content="no-cache" http-equiv="Pragma"/><meta http-equiv="Expires" content="0"/><meta
content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
<title>书籍管理 - JeeSite Demo</title>
<title>书籍管理 - Tamguo</title>
<script th:src="${setting.domain + 'global.min.js'}"></script>
<script th:src="${setting.domain + 'jquery/jquery-1.12.4.min.js'}"></script>
<script th:src="${setting.domain + 'jquery/jquery-migrate-1.4.1.min.js'}"></script>
@ -26,8 +25,8 @@ content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
</div>
</div>
<form id="inputForm" th:action="${setting.domain + 'tiku/book/update'}" method="post" class="form-horizontal">
<input type="hidden" id="id" name="id" th:value="${book.id}"/>
<form id="inputForm" th:action="${setting.domain + 'tiku/knowpoint/update'}" method="post" class="form-horizontal">
<input type="hidden" id="id" name="id" th:value="${knowpoint.id}"/>
<div class="box-body">
<div class="form-unit">基本信息</div>
<div class="row">
@ -36,7 +35,7 @@ content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
<label class="control-label col-sm-4" title="">
<span class="required ">*</span> 书籍名称:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<input type="text" id="name" name="name" th:value="${book.name}" maxlength="100" class="form-control required "/>
<input type="text" id="name" name="name" th:value="${knowpoint.name}" maxlength="100" class="form-control required "/>
</div>
</div>
</div>
@ -45,7 +44,7 @@ content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
<label class="control-label col-sm-4" title="">
<span class="required ">*</span> 出版社:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<input type="text" id="publishingHouse" name="publishingHouse" th:value="${book.publishingHouse}" maxlength="64" class="form-control required"/>
<input type="text" id="publishingHouse" name="publishingHouse" th:value="${knowpoint.publishingHouse}" maxlength="64" class="form-control required"/>
</div>
</div>
</div>
@ -149,7 +148,7 @@ content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
<label class="control-label col-sm-4" title="">
<span class="required hide">*</span> 排序号:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<input type="text" id="sort" name="sort" th:value="${book.sort}" maxlength="10" class="form-control digits"/>
<input type="text" id="sort" name="sort" th:value="${knowpoint.sort}" maxlength="10" class="form-control digits"/>
</div>
</div>
</div>
@ -160,7 +159,7 @@ content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
<label class="control-label col-sm-4" title="">
<span class="required hide">*</span> 问题数量:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<input type="text" id="questionNum" name="questionNum" th:value="${book.questionNum}" maxlength="64" class="form-control required abc"/>
<input type="text" id="questionNum" name="questionNum" th:value="${knowpoint.questionNum}" maxlength="64" class="form-control required abc"/>
</div>
</div>
</div>
@ -169,7 +168,7 @@ content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
<label class="control-label col-sm-4" title="">
<span class="required hide">*</span> 知识点数量:<i class="fa icon-question hide"></i></label>
<div class="col-sm-8">
<input type="text" id="pointNum" name="pointNum" th:value="${book.pointNum}" maxlength="10" class="form-control digits"/>
<input type="text" id="pointNum" name="pointNum" th:value="${knowpoint.pointNum}" maxlength="10" class="form-control digits"/>
</div>
</div>
</div>
@ -180,7 +179,7 @@ content="width=device-width, initial-scale=1, user-scalable=1" name="viewport"/>
<label class="control-label col-sm-2" title="">
<span class="required hide">*</span> 备注信息:<i class="fa icon-question hide"></i></label>
<div class="col-sm-10">
<textarea id="remarks" name="remarks" rows="4" maxlength="500" class="form-control " th:utext="${book.remarks}"></textarea>
<textarea id="remarks" name="remarks" rows="4" maxlength="500" class="form-control " th:utext="${knowpoint.remarks}"></textarea>
</div>
</div>
</div>

@ -15,11 +15,11 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
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.KnowPointEntity;
import com.tamguo.modules.tiku.model.ChapterEntity;
import com.tamguo.modules.tiku.model.CourseEntity;
import com.tamguo.modules.tiku.model.SubjectEntity;
import com.tamguo.modules.tiku.service.IBookService;
import com.tamguo.modules.tiku.service.IKnowPointService;
import com.tamguo.modules.tiku.service.IChapterService;
import com.tamguo.modules.tiku.service.ICourseService;
import com.tamguo.modules.tiku.service.ISubjectService;
@ -42,7 +42,7 @@ public class CourseController {
@Autowired
ISubjectService iSubjectService;
@Autowired
IBookService iBookService;
IKnowPointService knowPointService;
@SuppressWarnings("unchecked")
@RequestMapping(value = {"course/{uid}.html"}, method = RequestMethod.GET)
@ -50,12 +50,12 @@ public class CourseController {
// request url
logger.info("request url :{}" , request.getRequestURI());
CourseEntity course = iCourseService.selectById(uid);
List<BookEntity> bookList = iBookService.selectList(Condition.create().eq("course_id", uid));
List<KnowPointEntity> knowPointList = knowPointService.selectList(Condition.create().eq("course_id", uid));
List<ChapterEntity> chapterList = null;
BookEntity book = null;
if(bookList.size() > 0) {
book = bookList.get(0);
chapterList = iChapterService.findChapterTree(book.getId());
KnowPointEntity knowPoint = null;
if(knowPointList.size() > 0) {
knowPoint = knowPointList.get(0);
chapterList = iChapterService.findChapterTree(knowPoint.getId());
}
SubjectEntity subject = iSubjectService.selectById(course.getSubjectId());
List<CourseEntity> courseList = iCourseService.selectList(Condition.create().eq("subject_id", course.getSubjectId()).orderAsc(Arrays.asList("sort")));
@ -64,8 +64,8 @@ public class CourseController {
model.addObject("courseList", courseList);
model.addObject("course", course);
model.addObject("subject", subject);
model.addObject("bookList", bookList);
model.addObject("book" , book);
model.addObject("knowPointList", knowPointList);
model.addObject("knowPoint" , knowPoint);
if(BrowserUtils.isMobile(request.getHeader("user-agent"))) {
model.setViewName("mobile/chapter");
}else {

@ -15,21 +15,21 @@ import org.springframework.web.bind.annotation.RequestMethod;
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.KnowPointEntity;
import com.tamguo.modules.tiku.model.ChapterEntity;
import com.tamguo.modules.tiku.model.CourseEntity;
import com.tamguo.modules.tiku.model.SubjectEntity;
import com.tamguo.modules.tiku.service.IBookService;
import com.tamguo.modules.tiku.service.IKnowPointService;
import com.tamguo.modules.tiku.service.IChapterService;
import com.tamguo.modules.tiku.service.ICourseService;
import com.tamguo.modules.tiku.service.ISubjectService;
@Controller
public class BookController {
public class KnowPointController {
private Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
IBookService iBookService;
IKnowPointService iKnowPointService;
@Autowired
IChapterService iChapterService;
@Autowired
@ -38,23 +38,23 @@ public class BookController {
ICourseService iCourseService;
@SuppressWarnings("unchecked")
@RequestMapping(value = {"book/{uid}.html"}, method = RequestMethod.GET)
@RequestMapping(value = {"knowpoint/{uid}.html"}, method = RequestMethod.GET)
public ModelAndView index(@PathVariable String uid , ModelAndView model , HttpServletRequest request) {
// request url
logger.info("request url :{} " , request.getRequestURI());
BookEntity book = iBookService.selectById(uid);
SubjectEntity subject = iSubjectService.selectById(book.getSubjectId());
KnowPointEntity knowpoint = iKnowPointService.selectById(uid);
SubjectEntity subject = iSubjectService.selectById(knowpoint.getSubjectId());
List<CourseEntity> courseList = iCourseService.selectList(Condition.create().eq("subject_id", subject.getId()).orderAsc(Arrays.asList("sort")));
List<BookEntity> bookList = iBookService.selectList(Condition.create().eq("course_id", book.getCourseId()));
CourseEntity course = iCourseService.selectById(book.getCourseId());
List<ChapterEntity> chapterList = iChapterService.findChapterTree(book.getId());
model.addObject("book", book);
List<KnowPointEntity> knowPointList = iKnowPointService.selectList(Condition.create().eq("course_id", knowpoint.getCourseId()));
CourseEntity course = iCourseService.selectById(knowpoint.getCourseId());
List<ChapterEntity> chapterList = iChapterService.findChapterTree(knowpoint.getId());
model.addObject("knowpoint", knowpoint);
model.addObject("subject", subject);
model.addObject("course", course);
model.addObject("chapterList" , chapterList);
model.addObject("courseList", courseList);
model.addObject("bookList", bookList);
model.setViewName("book");
model.addObject("knowPointList", knowPointList);
model.setViewName("knowpoint");
return model;
}

@ -20,12 +20,12 @@ import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.plugins.Page;
import com.tamguo.common.utils.Result;
import com.tamguo.modules.sys.service.ISysAreaService;
import com.tamguo.modules.tiku.model.BookEntity;
import com.tamguo.modules.tiku.model.KnowPointEntity;
import com.tamguo.modules.tiku.model.ChapterEntity;
import com.tamguo.modules.tiku.model.CourseEntity;
import com.tamguo.modules.tiku.model.PaperEntity;
import com.tamguo.modules.tiku.model.SubjectEntity;
import com.tamguo.modules.tiku.service.IBookService;
import com.tamguo.modules.tiku.service.IKnowPointService;
import com.tamguo.modules.tiku.service.IChapterService;
import com.tamguo.modules.tiku.service.ICourseService;
import com.tamguo.modules.tiku.service.IPaperService;
@ -52,7 +52,7 @@ public class SubjectController {
@Autowired
private ICourseService iCourseService;
@Autowired
private IBookService iBookService;
private IKnowPointService iBookService;
@Autowired
private IPaperService iPaperService;
@ -66,10 +66,10 @@ public class SubjectController {
// 获取第一个科目
CourseEntity course = courseList.get(0);
// 获取第一本书
List<BookEntity> bookList = iBookService.selectList(Condition.create().eq("course_id", course.getId()));
List<KnowPointEntity> bookList = iBookService.selectList(Condition.create().eq("course_id", course.getId()));
List<ChapterEntity> chapterList = null;
if(bookList.size() > 0) {
BookEntity book = bookList.get(0);
KnowPointEntity book = bookList.get(0);
chapterList = iChapterService.selectList(Condition.create().eq("book_id", book.getId()));
}
// 获取最新的试卷

@ -1,5 +1,5 @@
domain.name=https://www.tamguo.com/
admin.domain.name=https://www.tamguo.com/
domain.name=http://localhost:8081/
admin.domain.name=http://localhost:8081/
server.port=8081
jasypt.encryptor.password=tamguo
@ -12,14 +12,14 @@ spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
spring.datasource.maxWait=60000
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.minIdle=5
spring.datasource.password=tanguo520pig
spring.datasource.password=123456
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://127.0.0.1:3306/tamguo?useUnicode=true&characterEncoding=UTF-8&useSSL=false
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/tamguo_20181110?useUnicode=true&characterEncoding=UTF-8&useSSL=false
spring.datasource.username=root
spring.datasource.validationQuery=SELECT 1 FROM DUAL

@ -67,7 +67,7 @@
</ul>
<ul class="sc-subject clearfix">
<li>课本:</li>
<li th:class="${book.id == b.id} ? selected : ''" th:each="b,index:${bookList}"><a th:href="${domainName + 'book/' + b.id + '.html'}" th:text="${b.name}">必修1</a></li>
<li th:class="${knowPoint.id == b.id} ? selected : ''" th:each="b,index:${knowPointList}"><a th:href="${domainName + 'knowpoint/' + b.id + '.html'}" th:text="${b.name}">必修1</a></li>
</ul>
</div>

@ -67,7 +67,7 @@
</ul>
<ul class="sc-subject clearfix">
<li>课本:</li>
<li th:class="${book.id == b.id} ? selected : ''" th:each="b,index:${bookList}"><a th:href="${domainName + 'book/' + b.id + '.html'}" th:text="${b.name}">必修1</a></li>
<li th:class="${knowpoint.id == b.id} ? selected : ''" th:each="b,index:${knowPointList}"><a th:href="${domainName + 'knowpoint/' + b.id + '.html'}" th:text="${b.name}">必修1</a></li>
</ul>
</div>
Loading…
Cancel
Save