正在显示
100 个修改的文件
包含
713 行增加
和
0 行删除
.gitignore
0 → 100644
1 | +###################################################################### | ||
2 | +# Build Tools | ||
3 | + | ||
4 | +.gradle | ||
5 | +/build/ | ||
6 | +!gradle/wrapper/gradle-wrapper.jar | ||
7 | +rebel.xml | ||
8 | +target/ | ||
9 | +!.mvn/wrapper/maven-wrapper.jar | ||
10 | + | ||
11 | +###################################################################### | ||
12 | +# IDE | ||
13 | + | ||
14 | +### STS ### | ||
15 | +.apt_generated | ||
16 | +.classpath | ||
17 | +.factorypath | ||
18 | +.project | ||
19 | +.settings | ||
20 | +.springBeans | ||
21 | + | ||
22 | +### IntelliJ IDEA ### | ||
23 | +.idea | ||
24 | +*.iws | ||
25 | +*.iml | ||
26 | +*.ipr | ||
27 | + | ||
28 | +### NetBeans ### | ||
29 | +nbproject/private/ | ||
30 | +build/* | ||
31 | +nbbuild/ | ||
32 | +dist/ | ||
33 | +nbdist/ | ||
34 | +.nb-gradle/ | ||
35 | + | ||
36 | +###################################################################### | ||
37 | +# Others | ||
38 | +*.log | ||
39 | +*.xml.versionsBackup | ||
40 | + | ||
41 | +!*/build/*.java | ||
42 | +!*/build/*.html | ||
43 | +!*/build/*.xml |
1 | +gYyg01S75mxBaAI4 |
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
out/artifacts/pinggu_wechat_war_exploded2/WEB-INF/classes/com/chuanqi/reading/home/entity/Term.class
0 → 100644
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
out/artifacts/pinggu_wechat_war_exploded2/WEB-INF/classes/com/chuanqi/reading/home/vo/Result.class
0 → 100644
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
2 | +<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
3 | + xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" | ||
4 | + xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p" | ||
5 | + xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:jpa="http://www.springframework.org/schema/data/jpa" | ||
6 | + xmlns:util="http://www.springframework.org/schema/util" xmlns:cache="http://www.springframework.org/schema/cache" | ||
7 | + xmlns:task="http://www.springframework.org/schema/task" | ||
8 | + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd | ||
9 | + http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd | ||
10 | + http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd | ||
11 | + http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd | ||
12 | + http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd | ||
13 | + http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd | ||
14 | + http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd | ||
15 | + http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-4.0.xsd | ||
16 | + http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd" | ||
17 | + default-lazy-init="false"> | ||
18 | + <context:component-scan base-package="com.chuanqi.reading"> | ||
19 | + <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> | ||
20 | + </context:component-scan> | ||
21 | + <!-- 数据源--> | ||
22 | + <bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close"> | ||
23 | + <property name="driverClassName" value="com.mysql.jdbc.Driver" /> | ||
24 | + <property name="url" value="jdbc:mysql://119.3.81.232:3306/pinggu_db?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8"/> | ||
25 | + <property name="username" value="bronet" /> | ||
26 | + <property name="password" value="BroNet2021" /> | ||
27 | + <property name="maxActive" value="30" /> | ||
28 | + <property name="maxIdle" value="15" /> | ||
29 | + <property name="initialSize" value="5" /> | ||
30 | + <property name="validationQuery" value="SELECT 1" /> | ||
31 | + <property name="testOnBorrow" value="true" /> | ||
32 | + <property name="testOnReturn" value="true" /> | ||
33 | + <property name="testWhileIdle" value="true" /> | ||
34 | + </bean> | ||
35 | + <!-- 会话工厂bean sqlSessionFactoryBean --> | ||
36 | + <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> | ||
37 | + <!-- 数据源 --> | ||
38 | + <property name="dataSource" ref="dataSource" /> | ||
39 | + <!-- 别名 --> | ||
40 | + <property name="typeAliasesPackage" value="com.chuanqi.reading.*.entity" /> | ||
41 | + <!-- sql映射文件路径 --> | ||
42 | + <property name="mapperLocations" value="classpath*:mapper/*.xml" /> | ||
43 | + <!-- 配置文件 --> | ||
44 | + <property name="configLocation" value="classpath:mybatis-config.xml" /> | ||
45 | + </bean> | ||
46 | + <!-- 自动扫描对象关系映射 --> | ||
47 | + <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> | ||
48 | + <!--指定会话工厂,如果当前上下文中只定义了一个则该属性可省去 --> | ||
49 | + <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /> | ||
50 | + <!-- 指定要自动扫描接口的基础包,实现接口 --> | ||
51 | + <property name="basePackage" value="com.chuanqi.reading.*.dao" /> | ||
52 | + </bean> | ||
53 | + <!-- 声明式事务管理 --> | ||
54 | + <!--定义事物管理器,由spring管理事务 --> | ||
55 | + <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> | ||
56 | + <property name="dataSource" ref="dataSource" /> | ||
57 | + </bean> | ||
58 | + <!-- 支持注解驱动的事务管理,指定事务管理器 --> | ||
59 | + <tx:annotation-driven transaction-manager="transactionManager"/> | ||
60 | + <!-- aspectj支持自动代理实现AOP功能 --> | ||
61 | + <aop:aspectj-autoproxy proxy-target-class="true" /> | ||
62 | + | ||
63 | + <util:properties id="wxProperties" location="classpath:/wx.properties"/> | ||
64 | +</beans> |
1 | +log4j.rootLogger=INFO,consoleAppender,logfile | ||
2 | + | ||
3 | +log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender | ||
4 | +log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout | ||
5 | +log4j.appender.consoleAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p [%t] (%F:%L) - %m%n | ||
6 | + | ||
7 | +log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender | ||
8 | +log4j.appender.logfile.File=/home/logs/pinggu.log | ||
9 | +log4j.appender.logfile.Append =true | ||
10 | +log4j.appender.logfile.DatePattern='.'yyyy-MM-dd | ||
11 | +log4j.appender.logfile.layout=org.apache.log4j.PatternLayout | ||
12 | +log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p [%t] (%F:%L) - %m%n |
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
2 | +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | ||
3 | +<!--命名空间应该是对应接口的包名+接口名 --> | ||
4 | +<mapper namespace="com.chuanqi.reading.home.dao.CourseDao"> | ||
5 | + <sql id="queryCourseVo"> | ||
6 | + select ci.course_id id, ci.term_id termId, ci.course_name title, date_format(audit_time, '%Y-%m-%d %H:%i') dataTime, count(cg.id) dataCount, NOT ISNULL(t.articleStatus) articleStatus | ||
7 | + from course_info ci | ||
8 | + left join (select distinct i.course_id, 1 articleStatus from course_info i | ||
9 | + join( select course_id from course_relation group by course_id having count(question_type) = 1) cr on i.course_id = cr.course_id | ||
10 | + join course_read r on i.course_id = r.course_id and r.read_flag = '1' and r.customer_id=#{userId}) t on ci.course_id = t.course_id | ||
11 | + left join course_progress cg on ci.course_id = cg.course_id and cg.customer_id = #{userId} | ||
12 | + where ci.audit_status = '1' and ci.course_status = '0' | ||
13 | + </sql> | ||
14 | + | ||
15 | + <select id="queryCourseList" resultType="com.chuanqi.reading.home.entity.DataSet" | ||
16 | + parameterType="com.chuanqi.reading.home.entity.DataSet"> | ||
17 | + <!--include refid="queryCourseVo" /--> | ||
18 | + select ci.course_id id, ci.term_id termId, ci.course_name title, date_format(audit_time, '%Y-%m-%d %H:%i') dataTime, count(cg.id) dataCount, NOT ISNULL(t.articleStatus) articleStatus | ||
19 | + from course_info ci | ||
20 | + left join course_progress cg on ci.course_id = cg.course_id and cg.customer_id = #{userId} | ||
21 | + left join (select distinct i.course_id, 1 articleStatus from course_info i | ||
22 | + join( select course_id from course_relation group by course_id having count(question_type) = 1) cr on i.course_id = cr.course_id | ||
23 | + join course_read r on i.course_id = r.course_id and r.read_flag = '1' and r.customer_id=#{userId}) t on ci.course_id = t.course_id | ||
24 | + where ci.audit_status = '1' and ci.course_status = '0' | ||
25 | + and term_id = #{termId} group by ci.course_id order by sticky_status desc, dataCount, audit_time desc LIMIT #{startIndex},5 | ||
26 | + </select> | ||
27 | + | ||
28 | + <select id="queryCourseById" resultType="com.chuanqi.reading.home.entity.CourseInfo" | ||
29 | + parameterType="long" > | ||
30 | + select course_id id, course_name name, term_id termId, course_num num, release_status resultStatus, ifnull(passing_Score,0) passingScore from course_info where course_id = #{id} | ||
31 | + </select> | ||
32 | + | ||
33 | + <select id="queryCourseListByRead" resultType="com.chuanqi.reading.home.entity.DataSet" | ||
34 | + parameterType="com.chuanqi.reading.home.entity.DataSet"> | ||
35 | + select ci.course_id id, ci.term_id termId, ci.course_name name, audit_time dateTime, count(cg.id) dataCount, NOT ISNULL(t.articleStatus) articleStatus | ||
36 | + from course_info ci | ||
37 | + left join course_progress cg on ci.course_id = cg.course_id | ||
38 | + left join (select distinct i.course_id, 1 articleStatus from course_info i | ||
39 | + join( select course_id from course_relation group by course_id having count(question_type) = 1) cr on i.course_id = cr.course_id | ||
40 | + join course_read r on i.course_id = r.course_id and r.read_flag = '1' and r.customer_id=#{userId}) t on ci.course_id = t.course_id | ||
41 | + where ci.audit_status = '1' and ci.course_status = '0' | ||
42 | + and ci.term_id in( | ||
43 | + select term_id from course_term_student where user_id = #{userId} | ||
44 | + ) and cg.customer_id = #{userId} | ||
45 | + group by ci.course_id order by audit_time desc | ||
46 | + </select> | ||
47 | + | ||
48 | + <!--查询指定用户已读文章(包含无题目文章和已读不一定答题文章)--> | ||
49 | + <select id="queryCourseListByOnlyRead" resultType="com.chuanqi.reading.home.entity.CourseInfo" | ||
50 | + parameterType="com.chuanqi.reading.home.entity.SysUser"> | ||
51 | + SELECT course_id id, course_name NAME FROM course_info WHERE course_id IN ( | ||
52 | + SELECT DISTINCT course_id FROM course_read WHERE customer_id=#{userId} AND course_id IN ( | ||
53 | + SELECT course_id FROM course_info ci WHERE ci.audit_status = '1' AND ci.course_status = '0' | ||
54 | + AND (ci.term_id IN (SELECT term_id FROM course_term_student WHERE user_id = #{userId}) OR ci.term_id <0))) | ||
55 | + ORDER BY audit_time DESC | ||
56 | + </select> | ||
57 | + | ||
58 | + <!--获取没有题目的文章阅读的记录--> | ||
59 | + <select id="queryByOnlyRead" resultType="com.chuanqi.reading.home.entity.CourseRead" parameterType="java.util.Map"> | ||
60 | + SELECT id, course_id courseId, category_id categoryId,customer_id customerId, begin_time beginTime, end_time endTime,TIMEDIFF(end_time, begin_time) readFlag | ||
61 | + FROM course_read WHERE course_id=#{courseId} AND customer_id=#{userId} AND read_flag=1 order by endTime desc | ||
62 | + </select> | ||
63 | + | ||
64 | + <!--获得所有文章按照课程id --> | ||
65 | + <select id="queryArticle" resultType="com.chuanqi.reading.home.entity.Article" parameterType="java.util.Map"> | ||
66 | + SELECT ca.article_id id, ca.article_title title, ca.article_content content, ca.article_time time, | ||
67 | + ca.classify_id classifyId, ca.article_label articleLabel | ||
68 | + from course_article ca | ||
69 | + where article_id in ( | ||
70 | + SELECT question_id FROM course_relation | ||
71 | + where course_id = #{id} and category_id = 1 and classify_id = #{classify} | ||
72 | + )LIMIT 1 | ||
73 | + </select> | ||
74 | + | ||
75 | + <!--获得所有题目查询--> | ||
76 | + <select id="queryQuestions" resultType="com.chuanqi.reading.home.entity.Question" parameterType="java.util.Map"> | ||
77 | + select cc.choice_id id,cr.id relationId,cc.choice_question question,cc.optionA,cc.optionB,cc.optionC,cc.optionD, | ||
78 | + cc.optionE, cc.optionF, cc.optionG, cc.optionH, cc.optionI, cc.choice_answer answer, | ||
79 | + support_answer support,cc.choice_explain `explain`,cr.category_id categoryId,'choice' type ,cc.choice_score score | ||
80 | + from course_relation cr LEFT JOIN course_choice cc on cr.question_id = cc.choice_id where cr.question_type = 'choice' and cr.course_id = #{id} | ||
81 | + union | ||
82 | + select cf.fill_id id,cr.id relationId,cf.fill_question question,null optionA,null optionB,null optionC,null optionD, | ||
83 | + null optionE, null optionF, null optionG, null optionH, null optionI, cf.fill_answer answer, | ||
84 | + support_answer support,cf.fill_explain `explain`,cr.category_id categoryId,'fill' type ,cf.fill_score score | ||
85 | + from course_relation cr LEFT JOIN course_fill cf on cr.question_id = cf.fill_id where cr.question_type = 'fill' and cr.course_id = #{id} | ||
86 | + union | ||
87 | + select cj.judge_id id,cr.id relationId,cj.judge_question question,null optionA,null optionB,null optionC,null optionD, | ||
88 | + null optionE, null optionF, null optionG, null optionH, null optionI, cj.judge_answer answer, | ||
89 | + null support,cj.judge_explain `explain`,cr.category_id categoryId,'judge' type ,cj.judge_score score | ||
90 | + from course_relation cr LEFT JOIN course_judge cj on cr.question_id = cj.judge_id where cr.question_type = 'judge' and cr.course_id = #{id} | ||
91 | + ORDER BY relationId/*categoryId,type,question_sort*/ | ||
92 | + </select> | ||
93 | + | ||
94 | + <insert id="saveCourseRead" parameterType="com.chuanqi.reading.home.entity.CourseRead" useGeneratedKeys="true" | ||
95 | + keyProperty="id"> | ||
96 | + insert into course_read(course_id,category_id,customer_id,begin_time,end_time,read_flag) | ||
97 | + values (#{courseId},#{categoryId},#{customerId},#{beginTime},#{endTime},#{readFlag}) | ||
98 | + </insert> | ||
99 | + <!--更新阅读记录--> | ||
100 | + <update id="updateCourseRead" parameterType="com.chuanqi.reading.home.entity.CourseRead"> | ||
101 | + update course_read set end_time = #{endTime}, read_flag = #{readFlag} where id = ${id} | ||
102 | + </update> | ||
103 | + <!--保存完progress记录时,更新阅读记录--> | ||
104 | + <update id="updateCourseReadProgress" parameterType="java.util.Map"> | ||
105 | + update course_read set progress_id = #{progressId}, read_flag = 1 where id in(${ids}) | ||
106 | + </update> | ||
107 | + | ||
108 | + <insert id="saveCourseProgress" parameterType="com.chuanqi.reading.home.entity.CourseProgress" | ||
109 | + useGeneratedKeys="true" keyProperty="id"> | ||
110 | + insert into course_progress(course_id, customer_id, lookback_num, lookback_time, read_time, answer_rate, | ||
111 | + course_status, create_time, begin_time, answer_score, exam_total, answer_right) | ||
112 | + values (#{courseId}, #{customerId}, #{lookbackNum}, #{lookbackTime}, #{readTime}, #{answerRate}, | ||
113 | + #{courseStatus}, #{createTime}, #{beginTime}, #{answerScore}, #{examTotal}, #{answerRight}) | ||
114 | + </insert> | ||
115 | + | ||
116 | + <select id="queryCourseProgress" resultType="com.chuanqi.reading.home.entity.CourseProgress" parameterType="java.util.Map"> | ||
117 | + select id, course_id, customer_id, lookback_num lookbackNum, lookback_time lookbackTime, answer_rate answerRate, | ||
118 | + read_time readTime, course_status courseStatus, create_Time createTime | ||
119 | + from course_progress | ||
120 | + where course_id = ${courseId} and customer_id = #{userId} order by createTime | ||
121 | + </select> | ||
122 | + | ||
123 | + <insert id="saveCourseAnswer"> | ||
124 | + insert into course_answer(progress_id, relation_id, customer_id, answer, right_num) values | ||
125 | + <foreach item="item" index="index" collection="list" separator=","> | ||
126 | + (#{item.progressId}, #{item.relationId}, #{item.customerId}, #{item.answer}, #{item.rightNum}) | ||
127 | + </foreach> | ||
128 | + </insert> | ||
129 | + | ||
130 | + <!--查询公开试卷--> | ||
131 | + <select id="queryOpenCourse" resultType="com.chuanqi.reading.home.entity.DataSet" | ||
132 | + parameterType="com.chuanqi.reading.home.entity.DataSet"> | ||
133 | + <include refid="queryCourseVo" /> | ||
134 | + and term_id = -100 and course_num = #{id} <!-- course_num主题编号 --> | ||
135 | + group by ci.course_id order by sticky_status desc, dataCount, audit_time desc LIMIT #{startIndex},5 | ||
136 | + </select> | ||
137 | + | ||
138 | + <!--查询用户所属培训班--> | ||
139 | + <select id="queryUserTermList" resultType="com.chuanqi.reading.home.entity.DataSet" | ||
140 | + parameterType="com.chuanqi.reading.home.entity.DataSet"> | ||
141 | + SELECT id, title, content, userId FROM ( | ||
142 | + /*##查询自己所属层级单位的所有培训班信息*/ | ||
143 | + SELECT a.term_id id, term_title title, begin_date, CONCAT(begin_date, ' ~ ', end_date) content, user_id userId FROM course_term a | ||
144 | + LEFT JOIN course_term_student b ON a.term_id = b.term_id AND b.status='0' AND b.user_id=#{userId} | ||
145 | + WHERE dept_id IN (SELECT dept_id FROM sys_dept WHERE FIND_IN_SET(#{id}, ancestors)>0 OR dept_id IN(#{id},101)) | ||
146 | + AND a.term_status='0' /*AND CURRENT_DATE BETWEEN begin_date AND end_date*/ | ||
147 | + /*##查询自己所在培训班但是该班级不在所属机构下*/ | ||
148 | + UNION | ||
149 | + SELECT t.term_id id, term_title title, begin_date, CONCAT(begin_date, ' ~ ', end_date) content, user_id userId | ||
150 | + FROM course_term_student ts ,course_term t | ||
151 | + WHERE ts.term_id=t.term_id AND ts.user_id=#{userId} | ||
152 | + AND t.term_status='0' /*AND CURRENT_DATE BETWEEN begin_date AND end_date*/ | ||
153 | + AND t.dept_id NOT IN (SELECT dept_id FROM sys_dept WHERE FIND_IN_SET(#{id}, ancestors)>0) | ||
154 | + ) temp ORDER BY userId DESC, begin_date LIMIT #{startIndex},5 | ||
155 | + </select> | ||
156 | + | ||
157 | + <select id="queryTermById" resultType="com.chuanqi.reading.home.entity.DataSet" parameterType="long"> | ||
158 | + SELECT term_id id, term_title title FROM course_term WHERE term_id = #{termId} | ||
159 | + </select> | ||
160 | + | ||
161 | + <sql id="queryMediaVo"> | ||
162 | + SELECT media_id id, media_name title, media_desc content, media_link remark, media_image search, | ||
163 | + date_format(ifnull(update_time, create_time), '%Y-%m-%d %H:%i') dataTime | ||
164 | + FROM course_media | ||
165 | + </sql> | ||
166 | + <select id="queryMediaList" resultType="com.chuanqi.reading.home.entity.DataSet" | ||
167 | + parameterType="com.chuanqi.reading.home.entity.DataSet"> | ||
168 | + <include refid="queryMediaVo" /> | ||
169 | + WHERE media_status='0' and theme_id=#{id} ORDER BY media_num LIMIT #{startIndex},5 | ||
170 | + </select> | ||
171 | + | ||
172 | + <select id="queryMediaById" resultType="com.chuanqi.reading.home.entity.DataSet" parameterType="long"> | ||
173 | + <include refid="queryMediaVo" /> | ||
174 | + WHERE media_id = #{mediaId} | ||
175 | + </select> | ||
176 | + | ||
177 | + <select id="queryThemeList" resultType="com.chuanqi.reading.home.entity.DataSet" | ||
178 | + parameterType="com.chuanqi.reading.home.entity.DataSet"> | ||
179 | + SELECT theme_id id, theme_name title FROM course_theme | ||
180 | + WHERE theme_status='0' and theme_type=#{remark} ORDER BY theme_num LIMIT #{startIndex},5 | ||
181 | + </select> | ||
182 | + | ||
183 | + <select id="queryThemeById" resultType="com.chuanqi.reading.home.entity.DataSet" parameterType="long"> | ||
184 | + SELECT theme_id id, theme_name title FROM course_theme WHERE theme_id = #{themeId} | ||
185 | + </select> | ||
186 | + <!-- 统计培训班个数 --> | ||
187 | + <select id="getClassCount" resultType="int"> | ||
188 | + SELECT COUNT(DISTINCT term_id) FROM course_term | ||
189 | + </select> | ||
190 | + <!-- 统计培训学员个数 --> | ||
191 | + <select id="getStudentCount" resultType="int"> | ||
192 | + SELECT COUNT(DISTINCT user_id) FROM course_term_student | ||
193 | + </select> | ||
194 | + <!-- 统计培训部门下的培训班和班级人数 --> | ||
195 | + <select id="getTermListByDeptId" parameterType="long" resultType="com.chuanqi.reading.home.entity.Term"> | ||
196 | + SELECT theme_id termId, theme_name termTitle, 0 userSum, '2019-01-01' begin_date FROM course_theme WHERE theme_type=1 | ||
197 | + UNION ALL | ||
198 | + SELECT t.term_id termId, term_title termTitle, IFNULL(user_count, 0) userSum, begin_date FROM course_term t | ||
199 | + LEFT JOIN (SELECT term_id, COUNT(user_id) user_count FROM course_term_student GROUP BY term_id) ts | ||
200 | + ON t.term_id=ts.term_id WHERE term_status=0 ORDER BY begin_date <!-- AND t.dept_id=#{deptId} --> | ||
201 | + </select> | ||
202 | + <!-- 根据班级ID查询班级信息 --> | ||
203 | + <select id="getTermById" parameterType="long" resultType="com.chuanqi.reading.home.entity.Term"> | ||
204 | + SELECT term_id termId, term_title termTitle FROM course_term WHERE term_id=#{termId} | ||
205 | + </select> | ||
206 | + <!--查询个人明细-公共培训--> | ||
207 | + <select id="queryPublicDetailForList" parameterType="java.util.Map" resultType="com.chuanqi.reading.home.entity.Details"> | ||
208 | + SELECT t1.course_id courseId, ci.course_name courseName, DATE_FORMAT(t1.begin_time, '%Y-%m-%d %H:%i:%s') beginTime, | ||
209 | + useTime, answer_rate answerRate FROM ( | ||
210 | + SELECT course_id,begin_time, TIMEDIFF(create_time, begin_time) useTime, answer_rate FROM course_progress | ||
211 | + WHERE course_id IN (SELECT course_id FROM course_info WHERE term_id < 0) AND customer_id=#{userId} | ||
212 | + UNION ALL | ||
213 | + SELECT course_id, begin_time, TIMEDIFF(end_time, begin_time) useTime,'-' AS answer_rate FROM course_read | ||
214 | + WHERE course_id IN (SELECT course_id FROM course_info WHERE term_id < 0) AND read_flag=1 AND customer_id=#{userId} | ||
215 | + ) t1 , course_info ci WHERE t1.course_id=#{courseId} and ci.course_id = #{courseId} ORDER BY t1.begin_time DESC LIMIT #{startIndex},5 | ||
216 | + </select> | ||
217 | + <!--查询个人-专项培训--> | ||
218 | + <select id="queryTermSpecialForList" parameterType="java.util.Map" resultType="com.chuanqi.reading.home.entity.Term"> | ||
219 | + select t.term_id termId, term_title termTitle | ||
220 | + from course_term t | ||
221 | + where exists(select * from course_read r inner join | ||
222 | + course_info i on i.course_id=r.course_id and r.customer_id=#{userId} inner join | ||
223 | + course_progress p on r.progress_id=p.id and r.read_flag=1 and p.customer_id = #{userId} | ||
224 | + where i.term_id = t.term_id ) OR | ||
225 | + exists(select * from course_read cr inner join | ||
226 | + v_course_article v on cr.course_id = v.course_id and cr.customer_id = #{userId} and cr.read_flag = 1 where t.term_id =v.term_id) | ||
227 | + order by t.begin_date desc LIMIT #{startIndex},5 | ||
228 | + </select> | ||
229 | + <!--查询个人明细专项培训--> | ||
230 | + <select id="querySpecialDetailForList" parameterType="java.util.Map" resultType="com.chuanqi.reading.home.entity.Details"> | ||
231 | + SELECT t1.course_id courseId, ci.course_name courseName, DATE_FORMAT(t1.begin_time, '%Y-%m-%d %H:%i:%s') beginTime, | ||
232 | + useTime, answer_rate answerRate FROM ( | ||
233 | + SELECT course_id,begin_time, TIMEDIFF(create_time, begin_time) useTime, answer_rate FROM course_progress | ||
234 | + WHERE course_id = #{courseId} and course_id IN (SELECT course_id FROM course_info WHERE term_id > 0 ) AND customer_id=#{userId} | ||
235 | + UNION ALL | ||
236 | + SELECT course_id, begin_time, TIMEDIFF(end_time, begin_time) useTime,'-' AS answer_rate FROM course_read | ||
237 | + WHERE course_id NOT IN (SELECT course_id FROM course_info WHERE term_id < 0) | ||
238 | + AND course_id NOT IN (SELECT DISTINCT course_id FROM course_progress WHERE customer_id=#{userId}) | ||
239 | + AND read_flag=1 AND customer_id=#{userId} and course_id = #{courseId} | ||
240 | + ) t1 , course_info ci WHERE t1.course_id=ci.course_id and ci.term_id= #{termId} ORDER BY t1.begin_time DESC LIMIT #{startIndex},7 | ||
241 | + </select> | ||
242 | + <!--查询个人概况-时长、篇数、成绩:按照当天最高算--> | ||
243 | + <select id="queryPersonalLogForList" parameterType="long" resultType="com.chuanqi.reading.home.entity.DataSet"> | ||
244 | + SELECT DATE_FORMAT(dataTime, '%m-%d') AS dataTime, termId, dataCount, search FROM ( | ||
245 | + SELECT DATE_FORMAT(begin_time, '%Y-%m-%d') dataTime, | ||
246 | + SUM(TIMESTAMPDIFF(SECOND,begin_time,create_time)) termId, | ||
247 | + COUNT(customer_id) dataCount, | ||
248 | + MAX(CONVERT(answer_rate,DECIMAL(5,2))) search | ||
249 | + FROM course_progress WHERE customer_id=#{0} GROUP BY dataTime ORDER BY dataTime DESC | ||
250 | + ) t ORDER BY dataTime LIMIT #{startIndex}, 5 | ||
251 | + </select> | ||
252 | + <select id="getSpecialTermCourseSumById" parameterType="long" resultType="com.chuanqi.reading.home.entity.TermCourse"> | ||
253 | + SELECT i.term_id termId, count(*) courseNum, | ||
254 | + CONCAT(SUM(TIMESTAMPDIFF(SECOND, r.begin_time, IFNULL(p.create_time, r.end_time))) div 60, ':', LPAD(SUM(TIMESTAMPDIFF(SECOND, r.begin_time, IFNULL(p.create_time, r.end_time))) mod 60, 2, '0')) TimeTotal | ||
255 | + FROM course_read r | ||
256 | + INNER JOIN course_info i ON r.course_id = i.course_id AND i.term_id = #{termId} | ||
257 | + LEFT JOIN course_progress p on p.course_id = r.course_id and p.customer_id = #{userId} and r.progress_Id=p.Id | ||
258 | + LEFT JOIN v_course_article v ON v.course_id = r.course_id | ||
259 | + WHERE r.customer_id = #{userId} and r.read_flag = 1 and (r.progress_id IS NOT NULL or v.course_name is not null) | ||
260 | + GROUP BY i.term_id | ||
261 | + </select> | ||
262 | + <!--查询个人概况- 专项培训 完成的课程列表--> | ||
263 | + <select id="getSpecialTermCourseList" parameterType="long" resultType="com.chuanqi.reading.home.entity.CourseInfo"> | ||
264 | + SELECT ci.course_id id, ci.course_name name, ci.course_num num, ci.term_id termId | ||
265 | + from course_info ci where ci.term_Id=#{termId} and | ||
266 | + (exists(select * from v_course_article ca inner join | ||
267 | + course_read cr on ca.course_id = cr.course_id and cr.read_flag = 1 and cr.customer_id = #{userId} where ci.course_id=cr.course_id) OR | ||
268 | + exists(select * from course_read r inner join | ||
269 | + course_progress cp on r.progress_id = cp.id and r.read_flag = 1 and r.customer_id = #{userId} where ci.course_id=r.course_id )) | ||
270 | + | ||
271 | + </select> | ||
272 | + <!--查询个人概况- 公开培训 主题列表--> | ||
273 | + <select id="getPubThemeList" parameterType="long" resultType="com.chuanqi.reading.home.entity.Theme"> | ||
274 | + select ct.theme_id themeId, ct.theme_name themeName | ||
275 | + from course_theme ct | ||
276 | + where exists(select * from course_info ci inner join course_read cr on ci.course_id = cr.course_id and cr.customer_id = #{userId} and cr.read_flag = 1 | ||
277 | + where ci.course_num = ct.theme_id and ci.term_id < 0 ) | ||
278 | + </select> | ||
279 | + <select id="getPubThemeById" parameterType="long" resultType="com.chuanqi.reading.home.entity.Theme"> | ||
280 | + select ct.theme_id themeId, ct.theme_name themeName | ||
281 | + from course_theme ct where ct.theme_id = #{themeId} | ||
282 | + </select> | ||
283 | + <select id="getPubThemeCourseSumById" parameterType="long" resultType="com.chuanqi.reading.home.entity.ThemeCourse"> | ||
284 | + SELECT ci.course_num themeId, count(*) AS courseNum, | ||
285 | + CONCAT(SUM(TIMESTAMPDIFF(SECOND, cr.begin_time, IFNULL(p.create_time, cr.end_time))) div 60,':', LPAD(SUM(TIMESTAMPDIFF(SECOND, cr.begin_time, IFNULL(p.create_time, cr.end_time))) mod 60, 2, '0')) TimeTotal | ||
286 | + FROM course_read cr INNER JOIN course_info ci ON cr.course_id = ci.course_id AND ci.term_id < 0 LEFT JOIN | ||
287 | + v_course_article va ON cr.course_id = va.course_id LEFT JOIN course_progress p ON p.course_id = cr.course_id AND p.customer_id = #{userId} AND cr.progress_Id = p.Id | ||
288 | + WHERE cr.customer_id = #{userId} AND cr.read_flag = 1 AND ci.course_num = #{themeId} | ||
289 | + AND (cr.progress_id IS NOT NULL OR va.course_name IS NOT NULL) | ||
290 | + GROUP BY course_num | ||
291 | + </select> | ||
292 | + <select id="getPubThemeCourseList" parameterType="long" resultType="com.chuanqi.reading.home.entity.CourseInfo"> | ||
293 | + select ci.course_id id, ci.course_name name, ci.course_num themeId | ||
294 | + from course_info ci | ||
295 | + where ci.course_num = #{themeId} and ci.term_id < 0 and | ||
296 | + exists(select * from course_read cr left join v_course_article va on cr.course_id = va.course_id | ||
297 | + where cr.customer_id = #{userId} and cr.read_flag = 1 and (NOT ISNULL(cr.progress_id) or NOT ISNULL(va.course_name)) and cr.course_id =ci.course_id) | ||
298 | + </select> | ||
299 | +</mapper> |
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
2 | +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | ||
3 | +<!--命名空间应该是对应接口的包名+接口名 --> | ||
4 | +<mapper namespace="com.chuanqi.reading.home.dao.SysDeptDao"> | ||
5 | + <!--查询部门信息 SUBSTRING去除0,100,的父级节点--> | ||
6 | + <select id="queryDeptById" resultType="com.chuanqi.reading.home.entity.SysDept" parameterType="long"> | ||
7 | + SELECT dept_id deptId, parent_id parentId, SUBSTRING(sys_dept.ancestors, 7) ancestors, dept_name deptName, order_num FROM sys_dept | ||
8 | + WHERE dept_id = #{deptId} | ||
9 | + </select> | ||
10 | + | ||
11 | + <!--查询部门祖级列表信息--> | ||
12 | + <select id="queryDeptAncestors" resultType="String" parameterType="map"> | ||
13 | + select GROUP_CONCAT(dept_name) from sys_dept where dept_id in (${deptIds}) | ||
14 | + </select> | ||
15 | + | ||
16 | + <!--查询父节点下的子节点--> | ||
17 | + <select id="queryDeptByParentId" resultType="com.chuanqi.reading.home.entity.SysDept" parameterType="long"> | ||
18 | + SELECT dept_id deptId, parent_id parentId, dept_name deptName FROM sys_dept | ||
19 | + WHERE status='0' and del_flag='0' and parent_id = #{deptId} ORDER BY order_num | ||
20 | + </select> | ||
21 | + <!--查询一级部门和其下属班级以及汇总各班级人数--> | ||
22 | + <select id="selectDeptListByPId" resultType="com.chuanqi.reading.home.entity.SysDept" parameterType="long"> | ||
23 | + SELECT d.dept_id deptId, dept_name deptName, IFNULL(class_count, 0) ancestors , IFNULL(user_num,0) orderNum | ||
24 | + FROM sys_dept d LEFT JOIN (SELECT dept_id, COUNT(dept_id) class_count FROM course_term GROUP BY dept_id) t | ||
25 | + ON d.dept_id=t.dept_id | ||
26 | + LEFT JOIN ( | ||
27 | + SELECT dept_id, SUM(IFNULL(user_count,0)) user_num FROM course_term term | ||
28 | + LEFT JOIN (SELECT term_id, COUNT(user_id) user_count FROM course_term_student GROUP BY term_id) ts | ||
29 | + ON term.term_id=ts.term_id GROUP BY dept_id | ||
30 | + ) temp ON t.dept_id=temp.dept_id | ||
31 | + WHERE d.parent_id=#{deptId} AND d.dept_id>0 AND d.del_flag = '0' AND d.STATUS = 0 AND class_count>0 ORDER BY d.order_num | ||
32 | + </select> | ||
33 | +</mapper> |
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
2 | +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | ||
3 | +<!--命名空间应该是对应接口的包名+接口名 --> | ||
4 | +<mapper namespace="com.chuanqi.reading.home.dao.SysUserDao"> | ||
5 | + <select id="queryUser" parameterType="com.chuanqi.reading.home.entity.SysUser" resultType="com.chuanqi.reading.home.entity.SysUser"> | ||
6 | + select user_id userId, dept_id deptId, login_name loginName, user_name userName, open_id openId from sys_user | ||
7 | + where del_flag='0' and status='0' | ||
8 | + <if test="userId != null and userId !=0"> | ||
9 | + AND user_id=#{userId} | ||
10 | + </if> | ||
11 | + </select> | ||
12 | + <!--登录查询用户信息--> | ||
13 | + <select id="queryUserByLogin" resultType="com.chuanqi.reading.home.entity.SysUser" | ||
14 | + parameterType="com.chuanqi.reading.home.entity.SysUser"> | ||
15 | + select user_id userId, login_name loginName, user_name userName, open_id openId from sys_user | ||
16 | + where del_flag='0' and status='0' and phonenumber=#{phonenumber} | ||
17 | + </select> | ||
18 | + <!--登录查询用户信息--> | ||
19 | + <select id="queryUserByOpenId" resultType="com.chuanqi.reading.home.entity.SysUser" parameterType="String"> | ||
20 | + select user_id userId, dept_id deptId, user_name userName, email, phonenumber, sex, | ||
21 | + open_id openId, nick_name nickName, wx_avatar wxAvatar, | ||
22 | + status, login_date loginDate from sys_user | ||
23 | + where del_flag='0' and status='0' and open_id=#{0} | ||
24 | + </select> | ||
25 | + <!--更新用户登录信息--> | ||
26 | + <update id="updateUserByUserId" parameterType="com.chuanqi.reading.home.entity.SysUser"> | ||
27 | + update sys_user | ||
28 | + <set> | ||
29 | + <if test="openId != null and openId != ''">open_id = #{openId},</if> | ||
30 | + <if test="nickName != null and nickName != ''">nick_name = #{nickName},</if> | ||
31 | + <if test="wxAvatar != null and wxAvatar != ''">wx_avatar = #{wxAvatar},</if> | ||
32 | + <if test="loginIp != null and loginIp != ''">login_ip = #{loginIp},</if> | ||
33 | + login_date = sysdate() | ||
34 | + </set> | ||
35 | + where user_id = #{userId} | ||
36 | + </update> | ||
37 | + <!--更新用户部门信息--> | ||
38 | + <update id="updateDeptByUserId" parameterType="com.chuanqi.reading.home.entity.SysUser"> | ||
39 | + update sys_user set dept_id = #{deptId} where user_id = #{userId} | ||
40 | + </update> | ||
41 | + <!--更新用户OpenId--> | ||
42 | + <update id="updateOpenIdByUserId" parameterType="com.chuanqi.reading.home.entity.SysUser"> | ||
43 | + update sys_user set open_id = #{openId} where user_id = #{userId} | ||
44 | + </update> | ||
45 | + <!--新增用户信息--> | ||
46 | + <insert id="insertUser" parameterType="com.chuanqi.reading.home.entity.SysUser" useGeneratedKeys="true" keyProperty="userId"> | ||
47 | + insert into sys_user(login_name, user_name, phonenumber, open_id, user_type, create_time) | ||
48 | + values (#{loginName}, #{userName}, #{phonenumber}, #{openId}, '11', sysdate()) | ||
49 | + </insert> | ||
50 | + <!--查询班级学员--> | ||
51 | + <select id="queryUserByTermId" parameterType="long" resultType="com.chuanqi.reading.home.entity.SysUser"> | ||
52 | + SELECT s.user_id userId,s.user_name userName FROM course_term_student stu LEFT JOIN sys_user s ON stu.user_id=s.user_id | ||
53 | + WHERE term_id=#{termId} | ||
54 | + </select> | ||
55 | + <!-- 插入用户签到打卡信息 --> | ||
56 | + <insert id="insertUserLocation" parameterType="com.chuanqi.reading.home.entity.Location" useGeneratedKeys="true" | ||
57 | + keyProperty="id"> | ||
58 | + insert into sys_user_location(user_id, term_id, latitude, longitude, state, create_time) | ||
59 | + values (#{userId}, #{termId}, #{latitude}, #{longitude}, #{state}, sysdate()) | ||
60 | + </insert> | ||
61 | +</mapper> |
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
2 | +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | ||
3 | +<!--命名空间应该是对应接口的包名+接口名 --> | ||
4 | +<mapper namespace="com.chuanqi.reading.home.dao.SystemDao"> | ||
5 | + <!--查询数据字典表 --> | ||
6 | + <select id="queryDictData" resultType="java.util.Map" parameterType="java.util.Map"> | ||
7 | + select dict_value value, | ||
8 | + dict_label label, | ||
9 | + remark | ||
10 | + from sys_dict_data | ||
11 | + where dict_type = #{type} | ||
12 | + and status = '0' | ||
13 | + ORDER BY dict_sort | ||
14 | + </select> | ||
15 | +</mapper> |
1 | +sys.title=Welcome To System |
1 | +sys.title=\u5feb\u6613\u8bad\u57f9\u8bad\u6f14\u793a\u5e73\u53f0 |
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
2 | +<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> | ||
3 | +<configuration> | ||
4 | + <settings> | ||
5 | + <!-- 打印查询语句 --> | ||
6 | + <setting name="logImpl" value="STDOUT_LOGGING" /> | ||
7 | + </settings> | ||
8 | +</configuration> |
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
2 | +<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
3 | + xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" | ||
4 | + xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p" | ||
5 | + xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:jpa="http://www.springframework.org/schema/data/jpa" | ||
6 | + xmlns:util="http://www.springframework.org/schema/util" xmlns:cache="http://www.springframework.org/schema/cache" | ||
7 | + xmlns:task="http://www.springframework.org/schema/task" | ||
8 | + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd | ||
9 | + http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd | ||
10 | + http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd | ||
11 | + http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd | ||
12 | + http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd | ||
13 | + http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd | ||
14 | + http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd | ||
15 | + http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-4.0.xsd | ||
16 | + http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd" | ||
17 | + default-lazy-init="false"> | ||
18 | + <context:component-scan base-package="com.chuanqi.reading"> | ||
19 | + <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> | ||
20 | + </context:component-scan> | ||
21 | + <!-- 数据源--> | ||
22 | + <bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close"> | ||
23 | + <property name="driverClassName" value="com.mysql.jdbc.Driver" /> | ||
24 | + <property name="url" value="jdbc:mysql://119.3.81.232:3306/pinggu_db?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8"/> | ||
25 | + <property name="username" value="bronet" /> | ||
26 | + <property name="password" value="BroNet2021" /> | ||
27 | + <property name="maxActive" value="30" /> | ||
28 | + <property name="maxIdle" value="15" /> | ||
29 | + <property name="initialSize" value="5" /> | ||
30 | + <property name="validationQuery" value="SELECT 1" /> | ||
31 | + <property name="testOnBorrow" value="true" /> | ||
32 | + <property name="testOnReturn" value="true" /> | ||
33 | + <property name="testWhileIdle" value="true" /> | ||
34 | + </bean> | ||
35 | + <!-- 会话工厂bean sqlSessionFactoryBean --> | ||
36 | + <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> | ||
37 | + <!-- 数据源 --> | ||
38 | + <property name="dataSource" ref="dataSource" /> | ||
39 | + <!-- 别名 --> | ||
40 | + <property name="typeAliasesPackage" value="com.chuanqi.reading.*.entity" /> | ||
41 | + <!-- sql映射文件路径 --> | ||
42 | + <property name="mapperLocations" value="classpath*:mapper/*.xml" /> | ||
43 | + <!-- 配置文件 --> | ||
44 | + <property name="configLocation" value="classpath:mybatis-config.xml" /> | ||
45 | + </bean> | ||
46 | + <!-- 自动扫描对象关系映射 --> | ||
47 | + <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> | ||
48 | + <!--指定会话工厂,如果当前上下文中只定义了一个则该属性可省去 --> | ||
49 | + <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /> | ||
50 | + <!-- 指定要自动扫描接口的基础包,实现接口 --> | ||
51 | + <property name="basePackage" value="com.chuanqi.reading.*.dao" /> | ||
52 | + </bean> | ||
53 | + <!-- 声明式事务管理 --> | ||
54 | + <!--定义事物管理器,由spring管理事务 --> | ||
55 | + <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> | ||
56 | + <property name="dataSource" ref="dataSource" /> | ||
57 | + </bean> | ||
58 | + <!-- 支持注解驱动的事务管理,指定事务管理器 --> | ||
59 | + <tx:annotation-driven transaction-manager="transactionManager"/> | ||
60 | + <!-- aspectj支持自动代理实现AOP功能 --> | ||
61 | + <aop:aspectj-autoproxy proxy-target-class="true" /> | ||
62 | + | ||
63 | + <util:properties id="wxProperties" location="classpath:/wx.properties"/> | ||
64 | +</beans> |
1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
2 | +<beans xmlns="http://www.springframework.org/schema/beans" | ||
3 | + xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
4 | + xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" | ||
5 | + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd | ||
6 | + http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd | ||
7 | + http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> | ||
8 | + <!-- <context:property-placeholder location="classpath:config.properties" ignore-unresolvable="true"/> --> | ||
9 | + <mvc:annotation-driven /> | ||
10 | + <mvc:default-servlet-handler /><!--spring默认Servlet--> | ||
11 | + <context:component-scan base-package="com.chuanqi.reading.*.control" /> | ||
12 | + <mvc:interceptors> | ||
13 | + <mvc:interceptor> | ||
14 | + <mvc:mapping path="/**"/> | ||
15 | + <mvc:exclude-mapping path="/resource/**"/> | ||
16 | + <mvc:exclude-mapping path="/login/**"/> | ||
17 | + <mvc:exclude-mapping path="/check"/> | ||
18 | + <mvc:exclude-mapping path="/core"/> | ||
19 | + <mvc:exclude-mapping path="/MP_verify_gYyg01S75mxBaAI4.txt"/> | ||
20 | + <bean class="com.chuanqi.reading.wechat.interceptor.WeChatInterceptor"/> | ||
21 | + </mvc:interceptor> | ||
22 | + </mvc:interceptors> | ||
23 | + <!-- json乱码转换器 --> | ||
24 | + <bean id="mappingJacksonHttpMessageConverter" | ||
25 | + class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> | ||
26 | + <property name="supportedMediaTypes"> | ||
27 | + <list> | ||
28 | + <value>text/html;charset=UTF-8</value> | ||
29 | + <value>application/json;charset=UTF-8</value> | ||
30 | + </list> | ||
31 | + </property> | ||
32 | + </bean> | ||
33 | + <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" | ||
34 | + p:ignoreDefaultModelOnRedirect="true"> | ||
35 | + <property name="cacheSeconds" value="0" /> | ||
36 | + <property name="messageConverters"> | ||
37 | + <list> | ||
38 | + <ref bean="mappingJacksonHttpMessageConverter" /> | ||
39 | + </list> | ||
40 | + </property> | ||
41 | + </bean> | ||
42 | + | ||
43 | + <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:contentType="text/html" | ||
44 | + p:prefix="/WEB-INF/view/" p:suffix=".jsp" p:viewClass="org.springframework.web.servlet.view.JstlView" /> | ||
45 | + | ||
46 | + <mvc:resources mapping="/resource/**" location="/resource/" /> | ||
47 | + | ||
48 | + <bean id="localeResolver" class="org.springframework.web.servlet.i18n.FixedLocaleResolver"> | ||
49 | + <property name="defaultLocale" value="zh_CN" /> | ||
50 | + </bean> | ||
51 | + | ||
52 | + <!-- 资源文件绑定 --> | ||
53 | + <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> | ||
54 | + <property name="basename" value="messages" /> | ||
55 | + <property name="defaultEncoding" value="UTF-8" /> | ||
56 | + <property name="useCodeAsDefaultMessage" value="true" /> | ||
57 | + </bean> | ||
58 | + | ||
59 | + <!-- 国际化请求拦截器处理 --> | ||
60 | + <!--<mvc:interceptors> | ||
61 | + <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" /> | ||
62 | + </mvc:interceptors> --> | ||
63 | + | ||
64 | + <!-- 异常处理类 --> | ||
65 | + <bean id="exceptionHandler" class="com.chuanqi.reading.wechat.handler.ExceptionHandler" /> | ||
66 | + | ||
67 | + <!-- 系统错误转发配置[并记录错误日志] --> | ||
68 | + <bean | ||
69 | + class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> | ||
70 | + <property name="defaultErrorView" value="error" /> | ||
71 | + <property name="defaultStatusCode" value="500" /><!-- 默认为500,系统错误(error.jsp) --> | ||
72 | + <property name="statusCodes"><!-- 配置多个statusCode --> | ||
73 | + <props> | ||
74 | + <prop key="500">500</prop> <!-- 500.jsp --> | ||
75 | + <prop key="404">404</prop> <!-- 404.jsp --> | ||
76 | + </props> | ||
77 | + </property> | ||
78 | + </bean> | ||
79 | + | ||
80 | + <!-- 文件上传 --> | ||
81 | + <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" | ||
82 | + p:defaultEncoding="UTF-8" > | ||
83 | + <property name="maxUploadSize" value="104857600" /> | ||
84 | + <property name="maxInMemorySize" value="4096" /> | ||
85 | + </bean> | ||
86 | + </beans> |
1 | +##\u516C\u4F17\u53F7 APP_ID | ||
2 | +#appId=wxf73d6679eb44ec74 | ||
3 | +##\u516C\u4F17\u53F7 APP_SECRET | ||
4 | +#appSecret=96255e3d8bbdac52023d3b564c8c2067 | ||
5 | +##\u516C\u4F17\u53F7 TOKEN | ||
6 | +#token=QU7J21Sf2xsS9odeIO19OsoXosX92jqJ | ||
7 | +##\u516C\u4F17\u53F7 AES_KEY | ||
8 | +#aesKey= | ||
9 | + | ||
10 | +#domain=peixunpingtai.youngmakers.cn | ||
11 | +#template=nlq3zgR9CMvIxBPP-6xsuGYjRxHOP45ZBRs7YZmSmY4 | ||
12 | +##domain=gmxtcs.fsygroup.com | ||
13 | +##template= | ||
14 | + | ||
15 | + | ||
16 | +appId=wxed9c28a16a30132a | ||
17 | +appSecret=5006027484170752812a010453a12735 | ||
18 | +token=hello | ||
19 | +aesKey= | ||
20 | + | ||
21 | +domain=139.129.101.173 | ||
22 | +template=0vy4c3t_eJHHyvAZVKTYivXzuKl-ZWq0w_Py6tpPjWA |
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
不能预览此文件类型
-
请 注册 或 登录 后发表评论