فهرست منبع

editor开发

chenyongxing 7 سال پیش
کامیت
1807721ce7
100فایلهای تغییر یافته به همراه6437 افزوده شده و 0 حذف شده
  1. 115 0
      editor.iml
  2. 101 0
      pom.xml
  3. 20 0
      src/main/java/com/yihu/EditorApplication.java
  4. 35 0
      src/main/java/com/yihu/editor/controller/ArticleController.java
  5. 527 0
      src/main/java/com/yihu/editor/controller/BaseController.java
  6. 85 0
      src/main/java/com/yihu/editor/controller/EditorController.java
  7. 106 0
      src/main/java/com/yihu/editor/controller/UserController.java
  8. 18 0
      src/main/java/com/yihu/editor/dao/ArticleDao.java
  9. 21 0
      src/main/java/com/yihu/editor/dao/UserDao.java
  10. 80 0
      src/main/java/com/yihu/editor/entity/SystemDictItem.java
  11. 119 0
      src/main/java/com/yihu/editor/entity/User.java
  12. 32 0
      src/main/java/com/yihu/editor/entity/YdfHealthEduArticle.hbm.xml
  13. 247 0
      src/main/java/com/yihu/editor/entity/YdfHealthEduArticle.java
  14. 64 0
      src/main/java/com/yihu/editor/service/FeedbackService.java
  15. 37 0
      src/main/resources/application.yml
  16. 14 0
      src/main/resources/hibernate.cfg.xml
  17. 136 0
      src/main/webapp/css/all.css
  18. 12 0
      src/main/webapp/css/bootstrap/animate.min.css
  19. 5 0
      src/main/webapp/css/bootstrap/bootstrap.min.css
  20. 5 0
      src/main/webapp/css/bootstrap/font-awesome.min.css
  21. BIN
      src/main/webapp/css/bootstrap/patterns/header-profile-skin-1.png
  22. BIN
      src/main/webapp/css/bootstrap/patterns/header-profile-skin-3.png
  23. BIN
      src/main/webapp/css/bootstrap/patterns/header-profile.png
  24. BIN
      src/main/webapp/css/bootstrap/patterns/shattered.png
  25. 1 0
      src/main/webapp/css/bootstrap/style.min.css
  26. BIN
      src/main/webapp/css/fonts/fontawesome-webfont.eot
  27. BIN
      src/main/webapp/css/fonts/fontawesome-webfont.woff2
  28. BIN
      src/main/webapp/css/fonts/glyphicons-halflings-regular.woff2
  29. BIN
      src/main/webapp/img/profile_small.jpg
  30. 13 0
      src/main/webapp/js/bootstrap/bootstrap.min.js
  31. 1283 0
      src/main/webapp/js/ckeditor/CHANGES.md
  32. 1420 0
      src/main/webapp/js/ckeditor/LICENSE.md
  33. 39 0
      src/main/webapp/js/ckeditor/README.md
  34. 10 0
      src/main/webapp/js/ckeditor/adapters/jquery.js
  35. 185 0
      src/main/webapp/js/ckeditor/build-config.js
  36. 1184 0
      src/main/webapp/js/ckeditor/ckeditor.js
  37. 10 0
      src/main/webapp/js/ckeditor/config.js
  38. 208 0
      src/main/webapp/js/ckeditor/contents.css
  39. 5 0
      src/main/webapp/js/ckeditor/lang/af.js
  40. 5 0
      src/main/webapp/js/ckeditor/lang/ar.js
  41. 5 0
      src/main/webapp/js/ckeditor/lang/az.js
  42. 5 0
      src/main/webapp/js/ckeditor/lang/bg.js
  43. 5 0
      src/main/webapp/js/ckeditor/lang/bn.js
  44. 5 0
      src/main/webapp/js/ckeditor/lang/bs.js
  45. 5 0
      src/main/webapp/js/ckeditor/lang/ca.js
  46. 5 0
      src/main/webapp/js/ckeditor/lang/cs.js
  47. 5 0
      src/main/webapp/js/ckeditor/lang/cy.js
  48. 5 0
      src/main/webapp/js/ckeditor/lang/da.js
  49. 5 0
      src/main/webapp/js/ckeditor/lang/de-ch.js
  50. 5 0
      src/main/webapp/js/ckeditor/lang/de.js
  51. 5 0
      src/main/webapp/js/ckeditor/lang/el.js
  52. 5 0
      src/main/webapp/js/ckeditor/lang/en-au.js
  53. 5 0
      src/main/webapp/js/ckeditor/lang/en-ca.js
  54. 5 0
      src/main/webapp/js/ckeditor/lang/en-gb.js
  55. 5 0
      src/main/webapp/js/ckeditor/lang/en.js
  56. 5 0
      src/main/webapp/js/ckeditor/lang/eo.js
  57. 5 0
      src/main/webapp/js/ckeditor/lang/es.js
  58. 5 0
      src/main/webapp/js/ckeditor/lang/et.js
  59. 5 0
      src/main/webapp/js/ckeditor/lang/eu.js
  60. 5 0
      src/main/webapp/js/ckeditor/lang/fa.js
  61. 5 0
      src/main/webapp/js/ckeditor/lang/fi.js
  62. 5 0
      src/main/webapp/js/ckeditor/lang/fo.js
  63. 5 0
      src/main/webapp/js/ckeditor/lang/fr-ca.js
  64. 5 0
      src/main/webapp/js/ckeditor/lang/fr.js
  65. 5 0
      src/main/webapp/js/ckeditor/lang/gl.js
  66. 5 0
      src/main/webapp/js/ckeditor/lang/gu.js
  67. 5 0
      src/main/webapp/js/ckeditor/lang/he.js
  68. 5 0
      src/main/webapp/js/ckeditor/lang/hi.js
  69. 5 0
      src/main/webapp/js/ckeditor/lang/hr.js
  70. 5 0
      src/main/webapp/js/ckeditor/lang/hu.js
  71. 5 0
      src/main/webapp/js/ckeditor/lang/id.js
  72. 5 0
      src/main/webapp/js/ckeditor/lang/is.js
  73. 5 0
      src/main/webapp/js/ckeditor/lang/it.js
  74. 5 0
      src/main/webapp/js/ckeditor/lang/ja.js
  75. 5 0
      src/main/webapp/js/ckeditor/lang/ka.js
  76. 5 0
      src/main/webapp/js/ckeditor/lang/km.js
  77. 5 0
      src/main/webapp/js/ckeditor/lang/ko.js
  78. 5 0
      src/main/webapp/js/ckeditor/lang/ku.js
  79. 5 0
      src/main/webapp/js/ckeditor/lang/lt.js
  80. 5 0
      src/main/webapp/js/ckeditor/lang/lv.js
  81. 5 0
      src/main/webapp/js/ckeditor/lang/mk.js
  82. 5 0
      src/main/webapp/js/ckeditor/lang/mn.js
  83. 5 0
      src/main/webapp/js/ckeditor/lang/ms.js
  84. 5 0
      src/main/webapp/js/ckeditor/lang/nb.js
  85. 5 0
      src/main/webapp/js/ckeditor/lang/nl.js
  86. 5 0
      src/main/webapp/js/ckeditor/lang/no.js
  87. 5 0
      src/main/webapp/js/ckeditor/lang/oc.js
  88. 5 0
      src/main/webapp/js/ckeditor/lang/pl.js
  89. 5 0
      src/main/webapp/js/ckeditor/lang/pt-br.js
  90. 5 0
      src/main/webapp/js/ckeditor/lang/pt.js
  91. 5 0
      src/main/webapp/js/ckeditor/lang/ro.js
  92. 5 0
      src/main/webapp/js/ckeditor/lang/ru.js
  93. 5 0
      src/main/webapp/js/ckeditor/lang/si.js
  94. 5 0
      src/main/webapp/js/ckeditor/lang/sk.js
  95. 5 0
      src/main/webapp/js/ckeditor/lang/sl.js
  96. 5 0
      src/main/webapp/js/ckeditor/lang/sq.js
  97. 5 0
      src/main/webapp/js/ckeditor/lang/sr-latn.js
  98. 5 0
      src/main/webapp/js/ckeditor/lang/sr.js
  99. 5 0
      src/main/webapp/js/ckeditor/lang/sv.js
  100. 0 0
      src/main/webapp/js/ckeditor/lang/th.js

+ 115 - 0
editor.iml

@ -0,0 +1,115 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
  <component name="FacetManager">
    <facet type="jpa" name="JPA">
      <configuration>
        <setting name="validation-enabled" value="true" />
        <setting name="provider-name" value="" />
        <datasource-mapping />
      </configuration>
    </facet>
    <facet type="hibernate" name="Hibernate">
      <configuration>
        <datasource-map>
          <unit-entry name="hibernate.cfg.xml" value="7c86563a-194b-4ab7-8f75-93ece9ca94cc" />
        </datasource-map>
        <naming-strategy-map />
        <deploymentDescriptor name="hibernate.cfg.xml" url="file://$MODULE_DIR$/src/main/resources/hibernate.cfg.xml" />
      </configuration>
    </facet>
    <facet type="web" name="Web">
      <configuration>
        <webroots>
          <root url="file://$MODULE_DIR$/src/main/webapp" relative="/" />
        </webroots>
        <sourceRoots>
          <root url="file://$MODULE_DIR$/src/main/java" />
          <root url="file://$MODULE_DIR$/src/main/resources" />
        </sourceRoots>
      </configuration>
    </facet>
  </component>
  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8" inherit-compiler-output="false">
    <output url="file://$MODULE_DIR$/target/classes" />
    <output-test url="file://$MODULE_DIR$/target/test-classes" />
    <content url="file://$MODULE_DIR$">
      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
      <excludeFolder url="file://$MODULE_DIR$/target" />
    </content>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:1.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-context:4.2.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:1.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:1.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.1.3" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.13" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.13" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:log4j-over-slf4j:1.7.13" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-core:4.2.4.RELEASE" level="project" />
    <orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.16" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.3.2.RELEASE" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:1.10.19" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.1" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" />
    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.2.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:1.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.0.30" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.0.30" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-logging-juli:8.0.30" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.0.30" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:1.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.2.2.Final" level="project" />
    <orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.1.0" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.6.5" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.6.5" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-web:4.2.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aop:4.2.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: aopalliance:aopalliance:1.0" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-beans:4.2.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.2.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-expression:4.2.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:1.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:1.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.8" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:1.3.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-jdbc:8.0.30" level="project" />
    <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-juli:8.0.30" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:4.2.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-entitymanager:4.3.11.Final" level="project" />
    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging-annotations:1.2.0.Beta1" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate:hibernate-core:4.3.11.Final" level="project" />
    <orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
    <orderEntry type="library" name="Maven: org.jboss:jandex:1.1.0.Final" level="project" />
    <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" />
    <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.0.b2" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:4.0.5.Final" level="project" />
    <orderEntry type="library" name="Maven: org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.0.Final" level="project" />
    <orderEntry type="library" name="Maven: org.javassist:javassist:3.18.1-GA" level="project" />
    <orderEntry type="library" name="Maven: javax.transaction:javax.transaction-api:1.2" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:1.9.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:1.11.2.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-orm:4.2.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-tx:4.2.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.13" level="project" />
    <orderEntry type="library" name="Maven: org.springframework:spring-aspects:4.2.4.RELEASE" level="project" />
    <orderEntry type="library" name="Maven: mysql:mysql-connector-java:5.1.38" level="project" />
    <orderEntry type="library" name="Maven: org.apache.poi:poi:3.11" level="project" />
    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.9" level="project" />
    <orderEntry type="library" name="Maven: org.springside:springside-core:4.2.3-GA" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.4.0" level="project" />
    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.6.5" level="project" />
    <orderEntry type="library" name="Maven: org.json:json:20160212" level="project" />
    <orderEntry type="library" name="Maven: com.google.guava:guava:17.0" level="project" />
    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.3.2" level="project" />
  </component>
</module>

+ 101 - 0
pom.xml

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.yihu</groupId>
	<artifactId>editor</artifactId>
	<version>1.0.0</version>
	<packaging>war</packaging>
	<name>editor</name>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.3.2.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<java.version>1.8</java.version>
	</properties>
	<dependencies>
	<!--	<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
			<scope>provided</scope>
		</dependency>-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</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-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-jpa</artifactId>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi</artifactId>
			<version>3.11</version>
		</dependency>
		<dependency>
			<groupId>org.springside</groupId>
			<artifactId>springside-core</artifactId>
			<version>4.2.3-GA</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.module</groupId>
			<artifactId>jackson-module-jaxb-annotations</artifactId>
			<version>2.4.0</version>
		</dependency>
		<dependency>
			<groupId>org.json</groupId>
			<artifactId>json</artifactId>
			<version>20160212</version>
		</dependency>
		<dependency>
			<groupId>com.google.guava</groupId>
			<artifactId>guava</artifactId>
			<version>17.0</version>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>3.3.2</version>
		</dependency>
	</dependencies>
	
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
</project>

+ 20 - 0
src/main/java/com/yihu/EditorApplication.java

@ -0,0 +1,20 @@
package com.yihu;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;
@SpringBootApplication
public class EditorApplication extends SpringBootServletInitializer {
	public static void main(String[] args) {
		SpringApplication.run(EditorApplication.class, args);
	}
	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
		return application.sources(EditorApplication.class);
	}
}

+ 35 - 0
src/main/java/com/yihu/editor/controller/ArticleController.java

@ -0,0 +1,35 @@
package com.yihu.editor.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
/**
 * Created by Administrator on 2017/6/9 0009.
 */
@Controller
public class ArticleController {
    @RequestMapping(value = "/index",method = RequestMethod.GET)
    public String toIndex(){
        return "index";
    }
    @RequestMapping(value = "/toList",method = RequestMethod.GET)
    public String toList(){
        return "edit_list";
    }
    @RequestMapping(value = "/toAdd",method = RequestMethod.GET)
    public String toAdd(){
        return "add";
    }
    @RequestMapping(value = "/toEdit",method = RequestMethod.GET)
    public String toEdit(@RequestParam(value = "id")String id,ModelMap modelMap){
        modelMap.addAttribute("id", id);
        return "edit";
    }
}

+ 527 - 0
src/main/java/com/yihu/editor/controller/BaseController.java

@ -0,0 +1,527 @@
package com.yihu.editor.controller;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.json.JSONArray;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
public class BaseController {
	private static Logger logger = LoggerFactory.getLogger(BaseController.class);
	@Autowired
	protected HttpServletRequest request;
	/**
	 * 获取排序字段名称
	 * @return
	 */
	public String getSortName() {
		return request.getParameter("sortname");
	}
	/**
	 * 获取排序方式ASC,DESC
	 * @return
	 */
	public String getSortOrder() {
		return request.getParameter("sortorder");
	}
	public void error(Exception e) {
		logger.error(getClass().getName() + ":", e.getMessage());
		e.printStackTrace();
	}
	public void warn(Exception e) {
		logger.warn(getClass().getName() + ":", e.getMessage());
		e.printStackTrace();
	}
	/**
	 * 返回接口处理结果
	 * 
	 * @param code 结果码,成功为200
	 * @param msg 结果提示信息
	 * @return
	 */
	public String error(int code, String msg) {
		try {
			Map<Object, Object> map = new HashMap<Object, Object>();
			ObjectMapper mapper = new ObjectMapper();
			map.put("status", code);
			map.put("msg", msg);
			return mapper.writeValueAsString(map);
		} catch (Exception e) {
			error(e);
			return null;
		}
	}
	/**
	 * 接口处理成功
	 * @param msg
	 * @return
	 */
	public String success(String msg) {
		try {
			Map<Object, Object> map = new HashMap<Object, Object>();
			ObjectMapper mapper = new ObjectMapper();
			map.put("status", 200);
			map.put("msg", msg);
			return mapper.writeValueAsString(map);
		} catch (Exception e) {
			error(e);
			return null;
		}
	}
	public String write(int code, String msg) {
		try {
			Map<Object, Object> map = new HashMap<Object, Object>();
			ObjectMapper mapper = new ObjectMapper();
			map.put("status", code);
			map.put("msg", msg);
			return mapper.writeValueAsString(map);
		} catch (Exception e) {
			error(e);
			return null;
		}
	}
	/**
	 * 返回接口处理结果
	 * 
	 * 
	 * @param code 结果码,成功为200
	 * @param msg 结果提示信息
	 * @return
	 */
	public String write(int code, String msg, String key, List<?> list) {
		try {
			Map<Object, Object> map = new HashMap<Object, Object>();
			ObjectMapper mapper = new ObjectMapper();
			map.put("status", code);
			map.put("msg", msg);
			map.put(key, list);
			return mapper.writeValueAsString(map);
		} catch (Exception e) {
			error(e);
			return error(-1, "服务器异常,请稍候再试!");
		}
	}
	/**
	 * 返回接口处理结果
	 * 
	 * 
	 * @param code 结果码,成功为200
	 * @param msg 结果提示信息
	 * @param value 结果数据
	 * @return
	 */
	public String write(int code, String msg, String key, JSONObject value) {
		try {
			JSONObject json = new JSONObject();
			json.put("status", code);
			json.put("msg", msg);
			json.put(key, value);
			return json.toString();
		} catch (Exception e) {
			error(e);
			return error(-1, "服务器异常,请稍候再试!");
		}
	}
	/**
	 * 返回接口处理结果
	 * 
	 * 
	 * @param code 结果码,成功为200
	 * @param msg 结果提示信息
	 * @param value 结果数据
	 * @return
	 */
	public String write(int code, String msg, String key, JSONArray value) {
		try {
			JSONObject json = new JSONObject();
			json.put("status", code);
			json.put("msg", msg);
			json.put(key, value);
			return json.toString();
		} catch (Exception e) {
			error(e);
			return error(-1, "服务器异常,请稍候再试!");
		}
	}
	/**
	 * 返回接口处理结果
	 * 
	 * 
	 * @param code 结果码,成功为200
	 * @param msg 结果提示信息
	 * @param total 总数
	 * @param value 结果数据
	 * @return
	 */
	public String write(int code, String msg, int total, String key, JSONArray value) {
		try {
			JSONObject json = new JSONObject();
			json.put("status", code);
			json.put("msg", msg);
			json.put("total", total);
			json.put(key, value);
			return json.toString();
		} catch (Exception e) {
			error(e);
			return error(-1, "服务器异常,请稍候再试!");
		}
	}
	/**
	 * 返回接口处理结果
	 * 
	 * 
	 * @param code 结果码,成功为200
	 * @param msg 结果提示信息
	 * @param value 结果数据
	 * @return
	 */
	public String write(int code, String msg, String key, Object value) {
		try {
			Map<Object, Object> map = new HashMap<Object, Object>();
			ObjectMapper mapper = new ObjectMapper();
			map.put("status", code);
			map.put("msg", msg);
			map.put(key, value);
			return mapper.writeValueAsString(map);
		} catch (Exception e) {
			error(e);
			return error(-1, "服务器异常,请稍候再试!");
		}
	}
	/**
	 * 返回接口处理结果
	 * 
	 * 
	 * @param code 结果码,成功为200
	 * @param msg 结果提示信息
	 * @return
	 */
	public String write(int code, String msg, String key, Page<?> list) {
		try {
			Map<Object, Object> map = new HashMap<Object, Object>();
			ObjectMapper mapper = new ObjectMapper();
			map.put("status", code);
			map.put("msg", msg);
			// 是否为第一页
			map.put("isFirst", list.isFirst());
			// 是否为最后一页
			map.put("isLast", list.isLast());
			// 总条数
			map.put("total", list.getTotalElements());
			// 总页数
			map.put("totalPages", list.getTotalPages());
			map.put(key, list.getContent());
			return mapper.writeValueAsString(map);
		} catch (Exception e) {
			error(e);
			return error(-1, "服务器异常,请稍候再试!");
		}
	}
	/**
	 * 返回接口处理结果
	 * 
	 * 
	 * @param code 结果码,成功为200
	 * @param msg 结果提示信息
	 * @return
	 */
	public String write(int code, String msg, String key, Page<?> page, JSONArray array) {
		try {
			JSONObject json = new JSONObject();
			json.put("status", code);
			json.put("msg", msg);
			// 是否为第一页
			json.put("isFirst", page.isFirst());
			// 是否为最后一页
			json.put("isLast", page.isLast());
			// 总条数
			json.put("total", page.getTotalElements());
			// 总页数
			json.put("totalPages", page.getTotalPages());
			json.put(key, array);
			return json.toString();
		} catch (Exception e) {
			error(e);
			return error(-1, "服务器异常,请稍候再试!");
		}
	}
	/**
	 * 返回接口处理结果
	 * 
	 * 
	 * @param code 结果码,成功为200
	 * @param msg 结果提示信息
	 * @param value 结果数据
	 * @return
	 */
	public String write(int code, String msg, String key, Map<?, ?> value) {
		try {
			Map<Object, Object> map = new HashMap<Object, Object>();
			ObjectMapper mapper = new ObjectMapper();
			map.put("status", code);
			map.put("msg", msg);
			map.put(key, value);
			return mapper.writeValueAsString(map);
		} catch (Exception e) {
			error(e);
			return error(-1, "服务器异常,请稍候再试!");
		}
	}
	/**
	* 返回接口处理结果
	*
	* @param code 结果码,成功为200
	* @param msg 结果提示信息
	* @param value 结果数据
	* @return
	*/
	public String write(int code, String msg, String key, String value) {
		try {
			Map<Object, Object> map = new HashMap<Object, Object>();
			ObjectMapper mapper = new ObjectMapper();
			map.put("status", code);
			map.put("msg", msg);
			map.put(key, value);
			return mapper.writeValueAsString(map);
		} catch (Exception e) {
			error(e);
			return error(-1, "服务器异常,请稍候再试!");
		}
	}
	/**
	* 返回接口处理结果
	*
	*
	* @param code 结果码,成功为200
	* @param msg 结果提示信息
	* @return
	*//*
	public String write(int code, String msg, String key, IdEntity entity) {
		try {
			Map<Object, Object> map = new HashMap<Object, Object>();
			ObjectMapper mapper = new ObjectMapper();
			map.put("status", code);
			map.put("msg", msg);
			map.put(key, entity);
			return mapper.writeValueAsString(map);
		} catch (Exception e) {
			error(e);
			return error(-1, "服务器异常,请稍候再试!");
		}
	}*/
	/**
	 * 返回接口处理结果
	 * 
	 * 
	 * @param code 结果码,成功为200
	 * @param msg 结果提示信息
	 * @return
	 */
	public String write(int code, String msg, boolean isFirst, boolean isLast, long total, int totalPages, String key, Object values) {
		try {
			JSONObject json = new JSONObject();
			json.put("status", code);
			json.put("msg", msg);
			// 是否为第一页
			json.put("isFirst", isFirst);
			// 是否为最后一页
			json.put("isLast", isLast);
			// 总条数
			json.put("total", total);
			// 总页数
			json.put("totalPages", totalPages);
			json.put(key, values);
			return json.toString();
		} catch (Exception e) {
			logger.error("BaseController:", e.getMessage());
			return error(-1, "服务器异常,请稍候再试!");
		}
	}
	public String trimEnd(String param, String trimChars) {
		if (param.endsWith(trimChars)) {
			param = param.substring(0, param.length() - trimChars.length());
		}
		return param;
	}
	/**
	 * 无效用户消息返回
	 * @param e
	 * @param defaultCode
	 * @param defaultMsg
	 * @return
	 */
	public String invalidUserException(Exception e, int defaultCode, String defaultMsg) {
		try {
			// if (e instanceof UndeclaredThrowableException) {
			// UndeclaredThrowableException ute = (UndeclaredThrowableException) e;
			// InvalidUserException iue = (InvalidUserException) ute.getUndeclaredThrowable();
			// if (iue != null) {
			// return error(iue.getCode(), iue.getMsg());
			// }
			// }
			return error(defaultCode, defaultMsg);
		} catch (Exception e2) {
			return null;
		}
	}
	/**
	 * 返回表格列表数据
	 * @param code 状态码:0成功,非0失败
	 * @param errorMsg 错误消息
	 * @param page 当前页码
	 * @param rows 分页大小
	 * @param list 查询的结果集
	 * @return
	 */
	public String write(int code, String errorMsg, int page, int rows, Page<?> list) {
		try {
			JSONObject object = new JSONObject();
			ObjectMapper mapper = new ObjectMapper();
			object.put("successFlg", code == 0);
			object.put("errorMsg", errorMsg);
			// 是否为第一页
			object.put("errorCode", code);
			// 是否为最后一页
			object.put("currPage", page);
			// 分页大小
			object.put("pageSize", rows);
			// 总条数
			object.put("Total", list.getTotalElements());
			// 总页数
			object.put("totalPage", list.getTotalPages());
			// 结果集
			object.put("Rows", list.getContent());
			 return object.toString();
		} catch (Exception e) {
			error(e);
			return error(-1, "服务器异常,请稍候再试!");
		}
	}
	
	public String write(int code, String errorMsg, int page, int rows, List<?> list) {
		try {
			Map<Object, Object> map = new HashMap<Object, Object>();
			ObjectMapper mapper = new ObjectMapper();
			map.put("successFlg", code == 0);
			map.put("errorMsg", errorMsg);
			// 是否为第一页
			map.put("errorCode", code);
			// 是否为最后一页
			map.put("currPage", page);
			// 分页大小
			map.put("pageSize", rows);
			// 总条数
			map.put("totalCount", list.size());
			// 总页数
			map.put("totalPage", 1);
			// 结果集
			map.put("detailModelList", list);
			return mapper.writeValueAsString(map);
		} catch (Exception e) {
			error(e);
			return error(-1, "服务器异常,请稍候再试!");
		}
	}
	
	public String error(int code, String errorMsg, int page, int rows) {
		try {
			Map<Object, Object> map = new HashMap<Object, Object>();
			ObjectMapper mapper = new ObjectMapper();
			map.put("successFlg", code == 0);
			map.put("errorMsg", errorMsg);
			// 是否为第一页
			map.put("errorCode", code);
			// 是否为最后一页
			map.put("currPage", page);
			// 分页大小
			map.put("pageSize", rows);
			// 总条数
			map.put("totalCount", 0);
			// 总页数
			map.put("totalPage", 0);
			// 结果集
			map.put("detailModelList", null);
			return mapper.writeValueAsString(map);
		} catch (Exception e) {
			error(e);
			return error(-1, "服务器异常,请稍候再试!");
		}
	}
    //json串转集合
    public <T> Collection<T> jsonToEntities(String jsonDate, Collection<T> targets, Class<T> targetCls) {
        try {
            ObjectMapper objectMapper = new ObjectMapper();
            List modelList = objectMapper.readValue(jsonDate,List.class);
            Iterator ex = modelList.iterator();
            while(ex.hasNext()) {
                Object aModelList = ex.next();
                String objJsonData = objectMapper.writeValueAsString(aModelList);
                T model = objectMapper.readValue(objJsonData, targetCls);
                targets.add(model);
            }
            return targets;
        } catch (Exception var8) {
            var8.printStackTrace();
            return null;
        }
    }
    public String write(int code, String errorMsg, int page, int rows, long total, List<?> list) {
        try {
            Map<Object, Object> map = new HashMap<Object, Object>();
            ObjectMapper mapper = new ObjectMapper();
            map.put("successFlg", code == 0);
            map.put("errorMsg", errorMsg);
            // 是否为第一页
            map.put("errorCode", code);
            // 是否为最后一页
            map.put("currPage", page);
            // 分页大小
            map.put("pageSize", rows);
            // 总条数
            map.put("totalCount", total);
            // 总页数
            map.put("totalPage", 1);
            // 结果集
            map.put("detailModelList", list);
            return mapper.writeValueAsString(map);
        } catch (Exception e) {
            error(e);
            return error(-1, "服务器异常,请稍候再试!");
        }
    }
}

+ 85 - 0
src/main/java/com/yihu/editor/controller/EditorController.java

@ -0,0 +1,85 @@
package com.yihu.editor.controller;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.editor.entity.SystemDictItem;
import com.yihu.editor.entity.YdfHealthEduArticle;
import com.yihu.editor.service.FeedbackService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.*;
/**
 * Created by Administrator on 2017/6/11 0011.
 */
@Controller
@RequestMapping(value = "admin/feedback")
public class EditorController extends BaseController{
    @Autowired
    private FeedbackService feedbackService;
    /**
     * 初始化列表页
     * @param type 意见反馈的类别
     * @param identity 身份
     * @param status 状态
     * @param page
     * @param rows
     * @return
     */
    @RequestMapping(value = "/list", method = RequestMethod.POST)
    @ResponseBody
    public String list(
            @RequestParam(required = false,defaultValue = "-1") int type,
            @RequestParam(required = false,defaultValue = "-1") int identity,
            @RequestParam(required = false,defaultValue = "-1") int status,
            @RequestParam(value = "page",defaultValue = "1") int page,
            @RequestParam(value = "rows",defaultValue = "15") int rows) {
        try {
            Page<YdfHealthEduArticle> res = feedbackService.findFeedback(page,rows,type,identity,status);
            return write(200, "操作成功", page, rows, res);
        } catch (Exception ex) {
            error(ex);
            return error(-1, "操作失败");
        }
    }
    /**
     * 获取文章类型
     * @return
     */
    @RequestMapping(value = "/getArticleType")
    @ResponseBody
    public String getArticleType() throws JsonProcessingException {
        List<SystemDictItem> systemDictItems = feedbackService.findHealthEduArticleTypeList();
        ObjectMapper mapper = new ObjectMapper();
        return mapper.writeValueAsString(systemDictItems);
        //return write(200, "查询成功!", "data", systemDictItems);
    }
    @RequestMapping(value = "/save", method = RequestMethod.POST)
    @ResponseBody
    public String save(@ModelAttribute @Valid YdfHealthEduArticle article){
        if(StringUtils.isBlank(article.getId())){
            article.setId(UUID.randomUUID().toString().replaceAll("-",""));
        }
        Date date = new Date();
        if(null==article.getModifyDate()){
            article.setModifyDate(date);
        }
        if(null==article.getCreateDate()){
            article.setCreateDate(date);
        }
        article.setStatus(0);//设置状态
        article.setType(0);//设置成待审核状态
        feedbackService.save(article);
        return write(200, "保存成功");
    }
}

+ 106 - 0
src/main/java/com/yihu/editor/controller/UserController.java

@ -0,0 +1,106 @@
package com.yihu.editor.controller;
import com.yihu.editor.dao.UserDao;
import com.yihu.editor.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;
@Controller
public class UserController {
    @Autowired
    private UserDao userDao;
    @RequestMapping("/getName")
    @ResponseBody
    public String getByName(String name) {
        List<User> userList = userDao.findByName(name);
        if (userList != null && userList.size()!=0) {
            return "The user length is: " + userList.size();
        }
        return "user " + name + " is not exist.";
    }
    @RequestMapping("/getSex")
    @ResponseBody
    public String getBySex(char sex) {
        List<User> userList = userDao.findBySex(sex);
        if (userList != null && userList.size()!=0) {
            return "The user length is: " + userList.size();
        }
        return "user " + sex + " is not exist.";
    }
    @RequestMapping("/getBirthday")
    @ResponseBody
    public String findByBirthday(String birthday) {
        System.out.println("birthday:"+birthday);
        SimpleDateFormat formate=new SimpleDateFormat("yyyy-MM-dd");
        List<User> userList = null;
        try {
            userList = userDao.findByBirthday(formate.parse(birthday));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        if (userList != null && userList.size()!=0) {
            return "The user length is: " + userList.size();
        }
        return "user " + birthday + " is not exist.";
    }
    @RequestMapping("/getSendtime")
    @ResponseBody
    public String findBySendtime(String sendtime) {
        System.out.println("sendtime:"+sendtime);
        SimpleDateFormat formate=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        List<User> userList = null;
        try {
            userList = userDao.findBySendtime(formate.parse(sendtime));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        if (userList != null && userList.size()!=0) {
            return "The user length is: " + userList.size();
        }
        return "user " + sendtime + " is not exist.";
    }
    @RequestMapping("/getPrice")
    @ResponseBody
    public String findByPrice(BigDecimal price) {
        List<User> userList = null;
        userList = userDao.findByPrice(price);
        if (userList != null && userList.size()!=0) {
            return "The user length is: " + userList.size();
        }
        return "user " + price + " is not exist.";
    }
    @RequestMapping("/getFloatprice")
    @ResponseBody
    public String findFloatprice(float floatprice) {
        List<User> userList = null;
        userList = userDao.findByFloatprice(floatprice);
        if (userList != null && userList.size()!=0) {
            return "The user length is: " + userList.size();
        }
        return "user " + floatprice + " is not exist.";
    }
    @RequestMapping("/getDoubleprice")
    @ResponseBody
    public String findByPrice(double doubleprice) {
        List<User> userList = null;
        userList = userDao.findByDoubleprice(doubleprice);
        if (userList != null && userList.size()!=0) {
            return "The user length is: " + userList.size();
        }
        return "user " + doubleprice + " is not exist.";
    }
}

+ 18 - 0
src/main/java/com/yihu/editor/dao/ArticleDao.java

@ -0,0 +1,18 @@
package com.yihu.editor.dao;
import com.yihu.editor.entity.SystemDictItem;
import com.yihu.editor.entity.YdfHealthEduArticle;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Created by Administrator on 2017/6/11 0011.
 */
public interface ArticleDao extends PagingAndSortingRepository<YdfHealthEduArticle, Long>, JpaSpecificationExecutor<YdfHealthEduArticle>{
    @Query("select a from SystemDictItem a where a.dict =?1 order by a.sort")
    List<SystemDictItem> findByDict(String dict);
}

+ 21 - 0
src/main/java/com/yihu/editor/dao/UserDao.java

@ -0,0 +1,21 @@
package com.yihu.editor.dao;
import com.yihu.editor.entity.User;
import org.springframework.data.repository.CrudRepository;
import javax.transaction.Transactional;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
 * Created by Administrator on 2017/6/9 0009.
 */
@Transactional
public interface UserDao extends CrudRepository<User, Integer> {
    public List<User> findByName(String name);
    public List<User> findBySex(char sex);
    public List<User> findByBirthday(Date birthday);
    public List<User> findBySendtime(Date sendtime);
    public List<User> findByPrice(BigDecimal price);
    public List<User> findByFloatprice(float floatprice);
    public List<User> findByDoubleprice(double doubleprice);
}

+ 80 - 0
src/main/java/com/yihu/editor/entity/SystemDictItem.java

@ -0,0 +1,80 @@
package com.yihu.editor.entity;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.util.Date;
/**
 * Created by lyr-pc on 2016/12/6.
 */
@Entity
@Table(name = "ydf_system_dict_item")
public class SystemDictItem  {
    private String id;  // 非业务主键
    // 字典
    private String dict;
    // 字段项code
    private String code;
    // 字段项名称
    private String name;
    // 排序
    private Integer sort;
    // 创建时间
    private Date createTime;
    @Id
    @GenericGenerator(name = "systemUUID", strategy = "uuid")
    @GeneratedValue(generator = "systemUUID")
    @Column(name = "id", insertable = true, updatable = true, nullable = false)
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getDict() {
        return dict;
    }
    public void setDict(String dict) {
        this.dict = dict;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getSort() {
        return sort;
    }
    public void setSort(Integer sort) {
        this.sort = sort;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
}

+ 119 - 0
src/main/java/com/yihu/editor/entity/User.java

@ -0,0 +1,119 @@
package com.yihu.editor.entity;
import javax.persistence.*;
import java.math.BigDecimal;
import java.util.Date;
/**
 * Created by Administrator on 2017/6/9 0009.
 */
@Entity
@Table(name = "user")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;
    @Column(name = "name", nullable = true, length = 30)
    private String name;
    @Column(name = "height", nullable = true, length = 10)
    private int height;
    @Column(name = "sex", nullable = true, length = 2)
    private char sex;
    @Temporal(TemporalType.DATE)
    private Date birthday;
    @Temporal(TemporalType.TIMESTAMP)
    private Date sendtime; // 日期类型,格式:yyyy-MM-dd HH:mm:ss
    @Column(name = "price", nullable = true, length = 10)
    private BigDecimal price;
    @Column(name = "floatprice", nullable = true, length = 10)
    private float floatprice;
    @Column(name = "doubleprice", nullable = true, length = 10)
    private double doubleprice;
    public Date getSendtime() {
        return sendtime;
    }
    public void setSendtime(Date sendtime) {
        this.sendtime = sendtime;
    }
    public BigDecimal getPrice() {
        return price;
    }
    public void setPrice(BigDecimal price) {
        this.price = price;
    }
    public float getFloatprice() {
        return floatprice;
    }
    public void setFloatprice(float floatprice) {
        this.floatprice = floatprice;
    }
    public double getDoubleprice() {
        return doubleprice;
    }
    public void setDoubleprice(double doubleprice) {
        this.doubleprice = doubleprice;
    }
    public User() { }
    public char getSex() {
        return sex;
    }
    public void setSex(char sex) {
        this.sex = sex;
    }
    public Date getBirthday() {
        return birthday;
    }
    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
    public User(int id) {
        this.id = id;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getHeight() {
        return height;
    }
    public void setHeight(int height) {
        this.height = height;
    }
}

+ 32 - 0
src/main/java/com/yihu/editor/entity/YdfHealthEduArticle.hbm.xml

@ -0,0 +1,32 @@
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="com.yihu.editor.entity.YdfHealthEduArticle" table="ydf_health_edu_article" schema="" catalog="ydf">
        <id name="id" column="id"/>
        <property name="title" column="title"/>
        <property name="url" column="url"/>
        <property name="contentFirst" column="content_first"/>
        <property name="content" column="content"/>
        <property name="keyword" column="keyword"/>
        <property name="modifyDate" column="modify_date"/>
        <property name="modifyUser" column="modify_user"/>
        <property name="createUserName" column="create_user_name"/>
        <property name="createUser" column="create_user"/>
        <property name="createDate" column="create_date"/>
        <property name="status" column="status"/>
        <property name="images" column="images"/>
        <property name="reviewedDate" column="reviewed_date"/>
        <property name="reviewedUser" column="reviewed_user"/>
        <property name="reviewedUserName" column="reviewed_user_name"/>
        <property name="lookNum" column="look_num"/>
        <property name="delDate" column="del_date"/>
        <property name="typeName" column="type_name"/>
        <property name="type" column="type"/>
        <property name="delUserName" column="del_user_name"/>
        <property name="delUser" column="del_user"/>
        <property name="saasId" column="saas_id"/>
    </class>
</hibernate-mapping>

+ 247 - 0
src/main/java/com/yihu/editor/entity/YdfHealthEduArticle.java

@ -0,0 +1,247 @@
package com.yihu.editor.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
 * Created by Administrator on 2017/6/9 0009.
 */
@Entity
@Table(name = "ydf_health_edu_article")
public class YdfHealthEduArticle {
    private String id;
    private String title;
    private String url;
    private String contentFirst;
    private String content;
    private String keyword;
    private Date modifyDate;
    private String modifyUser;
    private String createUserName;
    private String createUser;
    private Date createDate;
    private Integer status;
    private String images;
    private Date reviewedDate;
    private String reviewedUser;
    private String reviewedUserName;
    private Integer lookNum;
    private Date delDate;
    private String typeName;
    private Integer type;
    private String delUserName;
    private String delUser;
    private String saasId;
    @Id
    @Column(name = "id")
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    @Column(name = "title")
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    @Column(name = "url")
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    @Column(name = "content_first")
    public String getContentFirst() {
        return contentFirst;
    }
    public void setContentFirst(String contentFirst) {
        this.contentFirst = contentFirst;
    }
    @Column(name = "content")
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    @Column(name = "keyword")
    public String getKeyword() {
        return keyword;
    }
    public void setKeyword(String keyword) {
        this.keyword = keyword;
    }
    @Column(name = "modify_date")
    public Date getModifyDate() {
        return modifyDate;
    }
    public void setModifyDate(Date modifyDate) {
        this.modifyDate = modifyDate;
    }
    @Column(name = "modify_user")
    public String getModifyUser() {
        return modifyUser;
    }
    public void setModifyUser(String modifyUser) {
        this.modifyUser = modifyUser;
    }
    @Column(name = "create_user_name")
    public String getCreateUserName() {
        return createUserName;
    }
    public void setCreateUserName(String createUserName) {
        this.createUserName = createUserName;
    }
    @Column(name = "create_user")
    public String getCreateUser() {
        return createUser;
    }
    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }
    @Column(name = "create_date")
    public Date getCreateDate() {
        return createDate;
    }
    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }
    @Column(name = "status")
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    @Column(name = "images")
    public String getImages() {
        return images;
    }
    public void setImages(String images) {
        this.images = images;
    }
    @Column(name = "reviewed_date")
    public Date getReviewedDate() {
        return reviewedDate;
    }
    public void setReviewedDate(Date reviewedDate) {
        this.reviewedDate = reviewedDate;
    }
    @Column(name = "reviewed_user")
    public String getReviewedUser() {
        return reviewedUser;
    }
    public void setReviewedUser(String reviewedUser) {
        this.reviewedUser = reviewedUser;
    }
    @Column(name = "reviewed_user_name")
    public String getReviewedUserName() {
        return reviewedUserName;
    }
    public void setReviewedUserName(String reviewedUserName) {
        this.reviewedUserName = reviewedUserName;
    }
    @Column(name = "look_num")
    public Integer getLookNum() {
        return lookNum;
    }
    public void setLookNum(Integer lookNum) {
        this.lookNum = lookNum;
    }
    @Column(name = "del_date")
    public Date getDelDate() {
        return delDate;
    }
    public void setDelDate(Date delDate) {
        this.delDate = delDate;
    }
    @Column(name = "type_name")
    public String getTypeName() {
        return typeName;
    }
    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }
    @Column(name = "type")
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    @Column(name = "del_user_name")
    public String getDelUserName() {
        return delUserName;
    }
    public void setDelUserName(String delUserName) {
        this.delUserName = delUserName;
    }
    @Column(name = "del_user")
    public String getDelUser() {
        return delUser;
    }
    public void setDelUser(String delUser) {
        this.delUser = delUser;
    }
    @Column(name = "saas_id")
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
}

+ 64 - 0
src/main/java/com/yihu/editor/service/FeedbackService.java

@ -0,0 +1,64 @@
package com.yihu.editor.service;
import com.yihu.editor.dao.ArticleDao;
import com.yihu.editor.entity.SystemDictItem;
import com.yihu.editor.entity.YdfHealthEduArticle;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springside.modules.persistence.DynamicSpecifications;
import org.springside.modules.persistence.SearchFilter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * Created by Administrator on 2017/6/11 0011.
 */
@Service
@Transactional
public class FeedbackService {
    @Autowired
    private ArticleDao articleDao;
    public Page<YdfHealthEduArticle> findFeedback(int page, int rows, int type, int identity, int status) {
        if (page <= 0) {
            page = 1;
        }
        if (rows <= 0) {
            rows = 15;
        }
        // 排序
        Sort sort = new Sort(Sort.Direction.DESC, "id");
        // 分页信息
        PageRequest pageRequest = new PageRequest(page - 1, rows, sort);
        // 设置查询条件
        Map<String, SearchFilter> filters = new HashMap<>();
        if (type!=-1) {
            filters.put("type", new SearchFilter("type", SearchFilter.Operator.EQ, type));
        }
        if (identity!=-1) {
            filters.put("identity", new SearchFilter("identity", SearchFilter.Operator.EQ, identity));
        }
        if (status!=-1) {
            filters.put("status", new SearchFilter("status", SearchFilter.Operator.EQ, status));
        }
        Specification<YdfHealthEduArticle> spec = DynamicSpecifications.bySearchFilter(filters.values(), YdfHealthEduArticle.class);
        return articleDao.findAll(spec, pageRequest);
    }
    public void save(YdfHealthEduArticle article){
        articleDao.save(article);
    }
    public List<SystemDictItem> findHealthEduArticleTypeList() {
        return articleDao.findByDict("4");
    }
}

+ 37 - 0
src/main/resources/application.yml

@ -0,0 +1,37 @@
application:
  message: editor
server:
  context-path: /editor
  port: 80
  session-timeout:  3000
spring:
  datasource:
    url: jdbc:mysql://172.19.103.77:3306/ydf?useUnicode:true&characterEncoding=utf-8&autoReconnect=true
    username: root
    password: 123456
    driverClassName: com.mysql.jdbc.Driver
  # Specify the DBMS
  jpa:
    database: MYSQL
    show-sql: true
    properties:
      hibernate:
        dialect: org.hibernate.dialect.MySQL5Dialect
    hibernate:
      ddl-auto: update
      naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
  mvc:
    view:
      prefix: /pages/
      suffix: .jsp
#  # Show or not log for each sql query
#  spring.jpa.show-sql = true
#  # Hibernate ddl auto (create, create-drop, update)
#  spring.jpa.hibernate.ddl-auto = update
#  # Naming strategy
#  spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
#  # stripped before adding them to the entity manager)
#  spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

+ 14 - 0
src/main/resources/hibernate.cfg.xml

@ -0,0 +1,14 @@
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <property name="connection.url">jdbc:mysql://localhost:3306/ydf</property>
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
      <mapping class="com.yihu.editor.entity.YdfHealthEduArticle"/>
      <mapping resource="com/yihu/editor/entity/YdfHealthEduArticle.hbm.xml"/>
      <!-- DB schema will be updated if needed -->
    <!-- <property name="hbm2ddl.auto">update</property> -->
  </session-factory>
</hibernate-configuration>

+ 136 - 0
src/main/webapp/css/all.css

@ -0,0 +1,136 @@
.m-form-readonly .l-text,
.m-form-readonly input,
.m-form-readonly textarea,
.m-form-readonly .u-checkbox-wrap,
.m-form-readonly .m-combo-dropdown,
.u-ui-readonly .l-text,
.u-ui-readonly input,
.u-ui-readonly.u-radio-wrap,
.u-ui-readonly.u-checkbox-wrap,
.u-ui-readonly .m-combo-dropdown { background: #EDF6FA !important; pointer-events: none; }
/* ligerui-dialog.css 样式覆盖 */
.l-dialog {  border: none; }
.l-dialog-title { color: #FFF; }
.l-dialog-tc{ background: #2D9BD2; filter: none;}
.l-dialog-tc { height: 40px; line-height: 40px; }
.l-dialog-close { width: 22px; height: 22px;   margin-right: 10px; background: url(../images/Close_btn.png) no-repeat;}
.l-dialog-collapse { display: none; }
.l-dialog-winbtns { top: 0; }
/* common.css 样式覆盖 */
.l-button { height: 30px; line-height: 30px; border: none; border-radius: 3px;}
.u-btn { color: #FFF; font-weight: bold; }
.u-btn-primary {  background: #2D9BD2; }
.u-btn-primary:hover,
.u-btn-primary:active { background: #0082BE; }
.u-btn-cancel:hover,
.u-btn-cancel:active { background: #A5B9C8; }
.u-btn-success { background: #4BB941; }
.u-btn-success:hover,
.u-btn-success:active { background: #32a023; }
.u-btn-cancel { background: #B9C8D2; }
.u-btn-small { width: 84px !important; height: 30px; }
.u-btn-large { width: 98px !important; height: 35px; line-height: 35px; }
/* form.css 样式覆盖 */
.l-form li,
.l-text-field {  padding-left: 5px; line-height: 26px; }
.l-text { width: 240px; height: 30px; line-height: 30px }
.l-text-focus { border-color:#3094d5; }
.l-text-field {  width: 238px; padding-right:17px; }
    /*---文本框搜索----*/
.l-trigger, .l-trigger-hover, .l-trigger-pressed {margin-right: 5px;}
.l-trigger-search .l-trigger-icon { background:url(../images/Search-btn.png) no-repeat 50% 50% transparent; }
.l-trigger-search .l-trigger-icon:hover { background:url(../images/Search-btn-pre.png) no-repeat 50% 50% transparent; }
.l-text-trigger-cancel { right:0;}
/*--下拉框--*/
.l-text-combobox .l-trigger:not(.l-trigger-cancel) .l-trigger-icon,
.l-text-combobox .l-trigger-pressed .l-trigger-icon:not(.l-trigger-cancel),
.l-text-combobox .l-trigger-hover:not(.l-trigger-cancel) .l-trigger-icon{background:url(../images/Eject_btn.png);}
.l-text-combobox .l-trigger,
.l-text-combobox .l-trigger-hover,
.l-text-combobox .l-trigger-pressed { position: absolute; top: 0; right: 0; width: 29px; height: 28px;  border:0; margin-right: 0; }
.l-text-combobox .l-trigger-cancel {right: 25px;border: 0;}
.l-text-combobox .l-box-select{border: 1px solid #c8c8c8;}
.l-text-combobox .l-trigger-icon{border: 0;}
.l-box-select-absolute{margin-top: 1px;}
div.mCS-3d div.mCSB_scrollTools div.mCSB_draggerRail{box-shadow: inset 0 0 0, inset -0 0 0;background-color: #ededed;}
.l-box-select-inner .mCSB_draggerContainer{background-color: #ededed;}
.l-box-select-inner .mCSB_scrollTools{width: 12px;}
.l-box-select-inner .mCSB_dragger_onDrag{height: 50px;}
.l-box-select-inner .mCSB_container{width: 100%;}
.l-box-select-inner .mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color: #FFF;}
.l-box-select .mCSB_container .l-box-select-table>tbody>tr{ height: 30px;}
    /*---单选框----*/
a.l-radio{  width: 20px;  height: 20px;  background:url(../images/Click_btn.png)  }
.l-over a.l-radio {background-position:0 0;}
.l-over a.l-radio-checked {  background-position:0; }
a.l-radio-checked { background:url(../images/Click_btn_pre.png); }
.u-checkbox-wrap { height: 30px; line-height: 30px; }
    /*---复选框----*/
a.l-checkbox{ height: 15px; width: 15px; background:url(../images/guoxuan_btn.png);  }
a.l-checkbox-checked{ background:url(../images/gouxuan.png)  }
.l-over a.l-checkbox { background-position: 0; }
/*----日期控件----*/
.l-box-dateeditor { width: 240px; }
.l-box-dateeditor-header-text { background-color: #EDF6FA; margin:0 auto; color:#1542B3; line-height: 25px; font-weight:lighter; text-align:center;  }
.l-box-dateeditor-body td{ width: 34px; height: 25px; line-height: 25px;}
.l-box-dateeditor-toolbar .l-button-today { margin-left: 50px; }
.l-box-dateeditor-toolbar{ background: #EDF6FA url('') repeat-x top; }
.l-box-dateeditor-header { background: #eff3f8; }
.l-box-dateeditor-header-text a { color: #000; }
.l-box-dateeditor-body thead tr{ background-color: #2d9bd2; }
.l-box-dateeditor-body tbody td.l-box-dateeditor-today { background-color: #FFF; }
.l-box-dateeditor-body tbody td.l-box-dateeditor-over,
.l-box-dateeditor-body tbody td.l-box-dateeditor-selected { background-color: #2D9BD2; color: #fff;}
.l-box-dateeditor-body thead td { border-bottom: none; background: none;  }
.l-box-dateeditor-over{}
.l-box-dateeditor-toolbar .l-button-today{ background-color: #2D9BD2; color: #fff; }
.l-box-dateeditor-toolbar .l-button-close{ background-color: #B9C8D2;color: #fff;  }
.l-box-dateeditor-toolbar .l-button-today:hover{ background-image: url(''); background-color: #0082BE; }
.l-box-dateeditor-toolbar .l-button-close:hover{ background-image: url(''); background-color: #A5B9C8; }
.l-box-dateeditor-toolbar .l-button{ background-image: url(''); }
/* dialog.css 样式覆盖 */
.l-dialog-body{ overflow: auto;}
.l-dialog td,.l-dialog tr,.l-dialog td div{font-size:15px; }
.l-dialog-loading { top: 50%; left: 50%; width: 48px; height: 48px; margin-top: -24px; margin-left: -24px; }
.l-dialog-image.l-dialog-image-donne { background: url('../images/chengong.png') no-repeat; }
.l-dialog-image.l-dialog-image-question { background: url('../images/queren.png') no-repeat; }
.l-dialog-image.l-dialog-image-warn { background: url('../images/jingao.png') no-repeat; }
.l-dialog-image.l-dialog-image-error { background: url('../images/shibai.png') no-repeat; }
.l-dialog-image.l-dialog-image-waitting { background: url('../images/loading002.gif') no-repeat; background-size: 48px; }
.l-dialog-btn { color: #FFF; border: none; border-radius: 3px; filter: none; }
.l-dialog-btn,
.l-dialog-btn.l-dialog-btn-ok { background: #2D9BD2; }
.l-dialog-btn:hover,
.l-dialog-btn.l-dialog-btn-ok:hover { background: #0082BE; color: #FFF; }
.l-dialog-btn.l-dialog-btn-no { background: #B9C8D2; }
.l-dialog-btn.l-dialog-btn-no:hover { background: #A5B9C8; color: #FFF; }
    /* grid.css 样式覆盖 */
.l-bar-group { height: 30px; }
.l-bar-group input { height: 18px; line-height: 18px; }
.l-bar-group input { height: 18px; line-height: 18px; }
.l-panel-bbar-inner { margin-top: 0; }
.m-form-group:after { display: table; content: " "; clear: both; }
.m-form-inline .m-form-group label { display: block; position: relative; float: left; width: 150px;  height: 30px; line-height: 30px;text-align: right; min-height: 1px; padding-right: 10px; padding-left: 10px; font-weight: normal; }
.m-form-inline .m-form-group { padding-bottom: 10px; }
.m-form-inline .m-form-group .m-form-control{ float: left; }
.m-form-inline .m-form-group .l-text-wrapper {  vertical-align: middle; }
.m-form-inline .m-form-group .l-text {  vertical-align: middle; }
.m-form-inline .m-form-group .l-text-date .l-trigger-icon { background-repeat: no-repeat; }
.m-form-inline .m-form-group .u-checkbox-wrap { display: inline-block; }
.m-form-control.essential>div { display: inline-block; }
.m-form-control.essential:after { display: inline-block; content: '*'; color: #FF0000; }
.f-ml10 { margin-left:10px; }

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 12 - 0
src/main/webapp/css/bootstrap/animate.min.css


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/css/bootstrap/bootstrap.min.css


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/css/bootstrap/font-awesome.min.css


BIN
src/main/webapp/css/bootstrap/patterns/header-profile-skin-1.png


BIN
src/main/webapp/css/bootstrap/patterns/header-profile-skin-3.png


BIN
src/main/webapp/css/bootstrap/patterns/header-profile.png


BIN
src/main/webapp/css/bootstrap/patterns/shattered.png


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1 - 0
src/main/webapp/css/bootstrap/style.min.css


BIN
src/main/webapp/css/fonts/fontawesome-webfont.eot


BIN
src/main/webapp/css/fonts/fontawesome-webfont.woff2


BIN
src/main/webapp/css/fonts/glyphicons-halflings-regular.woff2


BIN
src/main/webapp/img/profile_small.jpg


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 13 - 0
src/main/webapp/js/bootstrap/bootstrap.min.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1283 - 0
src/main/webapp/js/ckeditor/CHANGES.md


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1420 - 0
src/main/webapp/js/ckeditor/LICENSE.md


+ 39 - 0
src/main/webapp/js/ckeditor/README.md

@ -0,0 +1,39 @@
CKEditor 4
==========
Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
http://ckeditor.com - See LICENSE.md for license information.
CKEditor is a text editor to be used inside web pages. It's not a replacement
for desktop text editors like Word or OpenOffice, but a component to be used as
part of web applications and websites.
## Documentation
The full editor documentation is available online at the following address:
http://docs.ckeditor.com
## Installation
Installing CKEditor is an easy task. Just follow these simple steps:
 1. **Download** the latest version from the CKEditor website:
    http://ckeditor.com. You should have already completed this step, but be
    sure you have the very latest version.
 2. **Extract** (decompress) the downloaded file into the root of your website.
**Note:** CKEditor is by default installed in the `ckeditor` folder. You can
place the files in whichever you want though.
## Checking Your Installation
The editor comes with a few sample pages that can be used to verify that
installation proceeded properly. Take a look at the `samples` directory.
To test your installation, just call the following page at your website:
	http://<your site>/<CKEditor installation path>/samples/index.html
For example:
	http://www.example.com/ckeditor/samples/index.html

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 10 - 0
src/main/webapp/js/ckeditor/adapters/jquery.js


+ 185 - 0
src/main/webapp/js/ckeditor/build-config.js

@ -0,0 +1,185 @@
/**
 * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or http://ckeditor.com/license
 */
/**
 * This file was added automatically by CKEditor builder.
 * You may re-use it at any time to build CKEditor again.
 *
 * If you would like to build CKEditor online again
 * (for example to upgrade), visit one the following links:
 *
 * (1) http://ckeditor.com/builder
 *     Visit online builder to build CKEditor from scratch.
 *
 * (2) http://ckeditor.com/builder/b27f05b392ca4cc40f7db78e7ba8e7bb
 *     Visit online builder to build CKEditor, starting with the same setup as before.
 *
 * (3) http://ckeditor.com/builder/download/b27f05b392ca4cc40f7db78e7ba8e7bb
 *     Straight download link to the latest version of CKEditor (Optimized) with the same setup as before.
 *
 * NOTE:
 *    This file is not used by CKEditor, you may remove it.
 *    Changing this file will not change your CKEditor configuration.
 */
var CKBUILDER_CONFIG = {
	skin: 'moono-lisa',
	preset: 'full',
	ignore: [
		'.DS_Store',
		'.bender',
		'.editorconfig',
		'.gitattributes',
		'.gitignore',
		'.idea',
		'.jscsrc',
		'.jshintignore',
		'.jshintrc',
		'.mailmap',
		'bender-err.log',
		'bender-out.log',
		'bender.js',
		'dev',
		'gruntfile.js',
		'less',
		'node_modules',
		'package.json',
		'tests'
	],
	plugins : {
		'a11yhelp' : 1,
		'about' : 1,
		'basicstyles' : 1,
		'bidi' : 1,
		'blockquote' : 1,
		'clipboard' : 1,
		'colorbutton' : 1,
		'colordialog' : 1,
		'contextmenu' : 1,
		'copyformatting' : 1,
		'dialogadvtab' : 1,
		'div' : 1,
		'elementspath' : 1,
		'enterkey' : 1,
		'entities' : 1,
		'filebrowser' : 1,
		'find' : 1,
		'flash' : 1,
		'floatingspace' : 1,
		'font' : 1,
		'format' : 1,
		'forms' : 1,
		'horizontalrule' : 1,
		'htmlwriter' : 1,
		'iframe' : 1,
		'image' : 1,
		'indentblock' : 1,
		'indentlist' : 1,
		'justify' : 1,
		'language' : 1,
		'link' : 1,
		'list' : 1,
		'liststyle' : 1,
		'magicline' : 1,
		'maximize' : 1,
		'newpage' : 1,
		'pagebreak' : 1,
		'pastefromword' : 1,
		'pastetext' : 1,
		'preview' : 1,
		'print' : 1,
		'removeformat' : 1,
		'resize' : 1,
		'save' : 1,
		'scayt' : 1,
		'selectall' : 1,
		'showblocks' : 1,
		'showborders' : 1,
		'smiley' : 1,
		'sourcearea' : 1,
		'specialchar' : 1,
		'stylescombo' : 1,
		'tab' : 1,
		'table' : 1,
		'tableselection' : 1,
		'tabletools' : 1,
		'templates' : 1,
		'toolbar' : 1,
		'undo' : 1,
		'wsc' : 1,
		'wysiwygarea' : 1
	},
	languages : {
		'af' : 1,
		'ar' : 1,
		'az' : 1,
		'bg' : 1,
		'bn' : 1,
		'bs' : 1,
		'ca' : 1,
		'cs' : 1,
		'cy' : 1,
		'da' : 1,
		'de' : 1,
		'de-ch' : 1,
		'el' : 1,
		'en' : 1,
		'en-au' : 1,
		'en-ca' : 1,
		'en-gb' : 1,
		'eo' : 1,
		'es' : 1,
		'et' : 1,
		'eu' : 1,
		'fa' : 1,
		'fi' : 1,
		'fo' : 1,
		'fr' : 1,
		'fr-ca' : 1,
		'gl' : 1,
		'gu' : 1,
		'he' : 1,
		'hi' : 1,
		'hr' : 1,
		'hu' : 1,
		'id' : 1,
		'is' : 1,
		'it' : 1,
		'ja' : 1,
		'ka' : 1,
		'km' : 1,
		'ko' : 1,
		'ku' : 1,
		'lt' : 1,
		'lv' : 1,
		'mk' : 1,
		'mn' : 1,
		'ms' : 1,
		'nb' : 1,
		'nl' : 1,
		'no' : 1,
		'oc' : 1,
		'pl' : 1,
		'pt' : 1,
		'pt-br' : 1,
		'ro' : 1,
		'ru' : 1,
		'si' : 1,
		'sk' : 1,
		'sl' : 1,
		'sq' : 1,
		'sr' : 1,
		'sr-latn' : 1,
		'sv' : 1,
		'th' : 1,
		'tr' : 1,
		'tt' : 1,
		'ug' : 1,
		'uk' : 1,
		'vi' : 1,
		'zh' : 1,
		'zh-cn' : 1
	}
};

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1184 - 0
src/main/webapp/js/ckeditor/ckeditor.js


+ 10 - 0
src/main/webapp/js/ckeditor/config.js

@ -0,0 +1,10 @@
/**
 * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
 * For licensing, see LICENSE.md or http://ckeditor.com/license
 */
CKEDITOR.editorConfig = function( config ) {
	// Define changes to default configuration here. For example:
	// config.language = 'fr';
	// config.uiColor = '#AADC6E';
};

+ 208 - 0
src/main/webapp/js/ckeditor/contents.css

@ -0,0 +1,208 @@
/*
Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or http://ckeditor.com/license
*/
body
{
	/* Font */
	font-family: sans-serif, Arial, Verdana, "Trebuchet MS";
	font-size: 12px;
	/* Text color */
	color: #333;
	/* Remove the background color to make it transparent */
	background-color: #fff;
	margin: 20px;
}
.cke_editable
{
	font-size: 13px;
	line-height: 1.6;
	/* Fix for missing scrollbars with RTL texts. (#10488) */
	word-wrap: break-word;
}
blockquote
{
	font-style: italic;
	font-family: Georgia, Times, "Times New Roman", serif;
	padding: 2px 0;
	border-style: solid;
	border-color: #ccc;
	border-width: 0;
}
.cke_contents_ltr blockquote
{
	padding-left: 20px;
	padding-right: 8px;
	border-left-width: 5px;
}
.cke_contents_rtl blockquote
{
	padding-left: 8px;
	padding-right: 20px;
	border-right-width: 5px;
}
a
{
	color: #0782C1;
}
ol,ul,dl
{
	/* IE7: reset rtl list margin. (#7334) */
	*margin-right: 0px;
	/* preserved spaces for list items with text direction other than the list. (#6249,#8049)*/
	padding: 0 40px;
}
h1,h2,h3,h4,h5,h6
{
	font-weight: normal;
	line-height: 1.2;
}
hr
{
	border: 0px;
	border-top: 1px solid #ccc;
}
img.right
{
	border: 1px solid #ccc;
	float: right;
	margin-left: 15px;
	padding: 5px;
}
img.left
{
	border: 1px solid #ccc;
	float: left;
	margin-right: 15px;
	padding: 5px;
}
pre
{
	white-space: pre-wrap; /* CSS 2.1 */
	word-wrap: break-word; /* IE7 */
	-moz-tab-size: 4;
	tab-size: 4;
}
.marker
{
	background-color: Yellow;
}
span[lang]
{
	font-style: italic;
}
figure
{
	text-align: center;
	border: solid 1px #ccc;
	border-radius: 2px;
	background: rgba(0,0,0,0.05);
	padding: 10px;
	margin: 10px 20px;
	display: inline-block;
}
figure > figcaption
{
	text-align: center;
	display: block; /* For IE8 */
}
a > img {
	padding: 1px;
	margin: 1px;
	border: none;
	outline: 1px solid #0782C1;
}
/* Widget Styles */
.code-featured
{
	border: 5px solid red;
}
.math-featured
{
	padding: 20px;
	box-shadow: 0 0 2px rgba(200, 0, 0, 1);
	background-color: rgba(255, 0, 0, 0.05);
	margin: 10px;
}
.image-clean
{
	border: 0;
	background: none;
	padding: 0;
}
.image-clean > figcaption
{
	font-size: .9em;
	text-align: right;
}
.image-grayscale
{
	background-color: white;
	color: #666;
}
.image-grayscale img, img.image-grayscale
{
	filter: grayscale(100%);
}
.embed-240p
{
	max-width: 426px;
	max-height: 240px;
	margin:0 auto;
}
.embed-360p
{
	max-width: 640px;
	max-height: 360px;
	margin:0 auto;
}
.embed-480p
{
	max-width: 854px;
	max-height: 480px;
	margin:0 auto;
}
.embed-720p
{
	max-width: 1280px;
	max-height: 720px;
	margin:0 auto;
}
.embed-1080p
{
	max-width: 1920px;
	max-height: 1080px;
	margin:0 auto;
}

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/af.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/ar.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/az.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/bg.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/bn.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/bs.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/ca.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/cs.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/cy.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/da.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/de-ch.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/de.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/el.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/en-au.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/en-ca.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/en-gb.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/en.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/eo.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/es.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/et.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/eu.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/fa.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/fi.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/fo.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/fr-ca.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/fr.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/gl.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/gu.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/he.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/hi.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/hr.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/hu.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/id.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/is.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/it.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/ja.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/ka.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/km.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/ko.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/ku.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/lt.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/lv.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/mk.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/mn.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/ms.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/nb.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/nl.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/no.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/oc.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/pl.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/pt-br.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/pt.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/ro.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/ru.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/si.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/sk.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/sl.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/sq.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/sr-latn.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/sr.js


تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 5 - 0
src/main/webapp/js/ckeditor/lang/sv.js


+ 0 - 0
src/main/webapp/js/ckeditor/lang/th.js


برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است