Skip to content

Commit 194d319

Browse files
author
何明胜
committed
1.修复下载文件未更新下载次数的bug;
1 parent 15ced32 commit 194d319

File tree

2 files changed

+138
-132
lines changed

2 files changed

+138
-132
lines changed

web-core/src/pers/husen/web/dao/impl/FileDownloadDaoImpl.java

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,60 +11,66 @@
1111
/**
1212
* @author 何明胜
1313
*
14-
* 2017年9月29日
14+
* 2017年9月29日
1515
*/
1616
public class FileDownloadDaoImpl implements FileDownloadDao {
1717
@Override
1818
public int queryFileTotalCount() {
1919
String sql = "SELECT count(*) as count FROM file_download";
2020
ArrayList<Object> paramList = new ArrayList<Object>();
21-
21+
2222
return DbQueryUtils.queryIntByParam(sql, paramList);
2323
}
2424

2525
@Override
2626
public ArrayList<FileDownloadVo> queryFileDownlaodPerPage(int pageSize, int pageNo) {
27-
String sql = "SELECT file_id, file_name, file_url, file_upload_date, file_download_count FROM file_download"
28-
+ " ORDER BY file_download_count DESC LIMIT " + pageSize + " OFFSET " + (pageNo-1)*pageSize;
29-
27+
String sql = "SELECT file_id, file_name, file_url, file_upload_date, file_download_count FROM file_download" + " ORDER BY file_download_count DESC LIMIT " + pageSize + " OFFSET "
28+
+ (pageNo - 1) * pageSize;
29+
3030
ArrayList<Object> paramList = new ArrayList<Object>();
31-
31+
3232
return DbQueryUtils.queryBeanListByParam(sql, paramList, FileDownloadVo.class);
3333
}
3434

3535
@Override
3636
public FileDownloadVo queryPerFileById(int fileId) {
37-
String sql = "SELECT file_id, file_name, file_url, file_upload_date, file_download_count FROM file_download"
38-
+ " WHERE file_id = ? ";
39-
37+
String sql = "SELECT file_id, file_name, file_url, file_upload_date, file_download_count FROM file_download" + " WHERE file_id = ? ";
38+
4039
ArrayList<Object> paramList = new ArrayList<Object>();
4140
paramList.add(fileId);
42-
41+
4342
return DbQueryUtils.queryBeanListByParam(sql, paramList, FileDownloadVo.class).get(0);
4443
}
4544

4645
@Override
4746
public int insertFileDownload(FileDownloadVo fVo) {
4847
String sql = "INSERT INTO file_download (file_name, file_url, file_upload_date, file_download_count) VALUES (?, ?, ?, ?)";
49-
48+
5049
ArrayList<Object> paramList = new ArrayList<Object>();
5150
Object obj = null;
5251
paramList.add((obj = fVo.getFileName()) != null ? obj : new Date());
5352
paramList.add((obj = fVo.getFileUrl()) != null ? obj : "");
5453
paramList.add((obj = fVo.getFileUploadDate()) != null ? obj : "");
5554
paramList.add((obj = fVo.getFileDownloadCount()) != null ? obj : "");
56-
55+
5756
return DbManipulationUtils.insertNewRecord(sql, paramList);
5857
}
5958

6059
@Override
6160
public int updateFileDownCountByUrl(String fileUrl) {
62-
String sql = "UPDATE file_download SET file_download_count = (( SELECT file_download_count FROM file_download WHERE file_url "
63-
+ " = ?) + 1) WHERE file_url = ?";
6461
ArrayList<Object> paramList = new ArrayList<Object>();
62+
63+
String selectSql = "SELECT file_download_count FROM file_download WHERE file_url = ?";
6564
paramList.add(fileUrl);
65+
FileDownloadVo fileDownloadVo = DbQueryUtils.queryBeanListByParam(selectSql, paramList, FileDownloadVo.class).get(0);
66+
67+
int fileDownloadCount = fileDownloadVo.getFileDownloadCount() + 1;
68+
69+
String sql = "UPDATE file_download SET file_download_count = ? WHERE file_url = ?";
70+
paramList.clear();
71+
paramList.add(fileDownloadCount);
6672
paramList.add(fileUrl);
67-
73+
6874
return DbManipulationUtils.updateRecordByParam(sql, paramList);
6975
}
7076
}

web-pc/config/log4j2.xml

Lines changed: 117 additions & 117 deletions
Original file line numberDiff line numberDiff line change
@@ -1,129 +1,129 @@
1-
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!-- 本配置文件的目标是将不同级别的日志输出到不同文件 --><!-- 最大2MB一个文件, 文件数据达到最大值时,旧数据会被压缩并放进指定文件夹 --><!-- status : 这个用于设置log4j2自身内部的信息输出,可以不设置 --><!-- 当设置成trace时,会看到log4j2内部各种详细输出 monitorInterval --><!-- monitorInterval="60"表示每60秒配置文件会动态加载一次。在程序运行过程中,如果修改配置文件,程序会随之改变。 --><Configuration monitorInterval="60" status="WARN">
2-
<!-- 定义通用的属性 -->
3-
<Properties>
4-
<!-- 云端部署 这里的logs为项目根目录下的logs文件夹 -->
5-
<!-- web:rootDir指向web应用根目录,需使用log4j-web.jar -->
6-
<Property name="log_path">F:\Eclipse\workspaces\workspace pers\web\web-pc/logs</Property>
7-
<!-- 本地开发使用绝对路径定义日志 -->
8-
<!-- <Property name="log_path">${web:rootDir}\logs</Property> -->
9-
10-
<Property name="log_pattern">[%-5p] &lt;%d{yyyy-MM-dd HH:mm:ss,sss}&gt; at [%C.%M] |--- %m ---| click goto-&gt; (%F:%L)%n</Property><!-- 定义统一的日志输出格式 -->
11-
<!-- 高亮控制台输出 -->
12-
<Property name="log_pattern_highlight">%highlight{${log_pattern}}{FATAL=Bright Red, ERROR=Magenta, WARN=Cyan, INFO=Green, DEBUG=Yellow, TRACE=Bright Blue}</Property>
13-
</Properties>
14-
15-
<appenders>
16-
<!-- 控制台输出 -->
17-
<Console name="console_out_appender" target="SYSTEM_OUT">
18-
<!-- level定义级别 -->
19-
<ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>
20-
<PatternLayout pattern="${log_pattern_highlight}"/>
21-
</Console>
22-
23-
<!--这个输出控制台的配置,这里输出warn和error级别的信息到System.err,在eclipse控制台上看到的是红色文字 -->
1+
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!-- 本配置文件的目标是将不同级别的日志输出到不同文件 --><!-- 最大2MB一个文件, 文件数据达到最大值时,旧数据会被压缩并放进指定文件夹 --><!-- status : 这个用于设置log4j2自身内部的信息输出,可以不设置 --><!-- 当设置成trace时,会看到log4j2内部各种详细输出 monitorInterval --><!-- monitorInterval="60"表示每60秒配置文件会动态加载一次。在程序运行过程中,如果修改配置文件,程序会随之改变。 --><Configuration monitorInterval="60" status="WARN">
2+
<!-- 定义通用的属性 -->
3+
<Properties>
4+
<!-- 云端部署 这里的logs为项目根目录下的logs文件夹 -->
5+
<!-- web:rootDir指向web应用根目录,需使用log4j-web.jar -->
6+
<Property name="log_path">F:\Eclipse\workspaces\workspace pers\web\web-pc/logs</Property>
7+
<!-- 本地开发使用绝对路径定义日志 -->
8+
<!-- <Property name="log_path">${web:rootDir}\logs</Property> -->
9+
10+
<Property name="log_pattern">[%-5p] &lt;%d{yyyy-MM-dd HH:mm:ss,sss}&gt; at [%C.%M] |--- %m ---| click goto-&gt; (%F:%L)%n</Property><!-- 定义统一的日志输出格式 -->
11+
<!-- 高亮控制台输出 -->
12+
<Property name="log_pattern_highlight">%highlight{${log_pattern}}{FATAL=Bright Red, ERROR=Magenta, WARN=Cyan, INFO=Green, DEBUG=Yellow, TRACE=Bright Blue}</Property>
13+
</Properties>
14+
15+
<appenders>
16+
<!-- 控制台输出 -->
17+
<Console name="console_out_appender" target="SYSTEM_OUT">
18+
<!-- level定义级别 -->
19+
<ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>
20+
<PatternLayout pattern="${log_pattern_highlight}"/>
21+
</Console>
22+
23+
<!--这个输出控制台的配置,这里输出warn和error级别的信息到System.err,在eclipse控制台上看到的是红色文字 -->
2424
<!-- <Console name="console_err_appender" target="SYSTEM_ERR">
2525
控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)
2626
<ThresholdFilter level="trace" onMatch="ACCEPT"
2727
onMismatch="DENY" />
2828
输出日志的格式
2929
<PatternLayout pattern="${log_pattern}" />
30-
</Console> -->
31-
32-
<!-- TRACE级别日志 -->
33-
<!-- 设置日志格式并配置日志压缩格式,压缩文件独立放在一个文件夹内, 日期格式不能为冒号,否则无法生成,因为文件名不允许有冒号,此appender只输出trace级别的数据到trace.log -->
34-
<RollingRandomAccessFile fileName="${log_path}/trace.log" filePattern="${log_path}/trace/trace - %d{yyyy-MM-dd HH-mm-ss}.log.gz" immediateFlush="true" name="trace_appender">
35-
<PatternLayout>
36-
<pattern>${log_pattern}</pattern>
37-
</PatternLayout>
38-
<Policies>
39-
<!-- 每个日志文件最大2MB -->
40-
<SizeBasedTriggeringPolicy size="2MB"/>
41-
</Policies>
42-
<Filters><!-- 此Filter意思是,只输出debug级别的数据 -->
43-
<!-- DENY,日志将立即被抛弃不再经过其他过滤器; NEUTRAL,有序列表里的下个过滤器过接着处理日志; ACCEPT,日志会被立即处理,不再经过剩余过滤器。 -->
44-
<ThresholdFilter level="debug" onMatch="DENY" onMismatch="NEUTRAL"/>
45-
<ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>
46-
</Filters>
47-
</RollingRandomAccessFile>
48-
49-
<!-- DEBUG级别日志 -->
50-
<!-- 设置日志格式并配置日志压缩格式,压缩文件独立放在一个文件夹内, 日期格式不能为冒号,否则无法生成,因为文件名不允许有冒号,此appender只输出debug级别的数据到debug.log -->
51-
<RollingRandomAccessFile fileName="${log_path}/debug.log" filePattern="${log_path}/debug/debug - %d{yyyy-MM-dd HH-mm-ss}.log.gz" immediateFlush="true" name="debug_appender">
52-
<PatternLayout>
53-
<pattern>${log_pattern}</pattern>
54-
</PatternLayout>
55-
<Policies>
56-
<!-- 每个日志文件最大2MB -->
57-
<SizeBasedTriggeringPolicy size="2MB"/>
58-
</Policies>
59-
<Filters><!-- 此Filter意思是,只输出debug级别的数据 -->
60-
<!-- DENY,日志将立即被抛弃不再经过其他过滤器; NEUTRAL,有序列表里的下个过滤器过接着处理日志; ACCEPT,日志会被立即处理,不再经过剩余过滤器。 -->
61-
<ThresholdFilter level="info" onMatch="DENY" onMismatch="NEUTRAL"/>
62-
<ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/>
63-
</Filters>
64-
</RollingRandomAccessFile>
65-
66-
<!-- INFO级别日志 -->
67-
<RollingRandomAccessFile fileName="${log_path}/info.log" filePattern="${log_path}/info/info - %d{yyyy-MM-dd HH-mm-ss}.log.gz" immediateFlush="true" name="info_appender">
68-
<PatternLayout>
69-
<pattern>${log_pattern}</pattern>
70-
</PatternLayout>
71-
<Policies>
72-
<SizeBasedTriggeringPolicy size="2MB"/>
73-
</Policies>
74-
<Filters>
75-
<ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/>
76-
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
77-
</Filters>
78-
</RollingRandomAccessFile>
79-
80-
<!-- WARN级别日志 -->
81-
<RollingRandomAccessFile fileName="${log_path}/warn.log" filePattern="${log_path}/warn/warn - %d{yyyy-MM-dd HH-mm-ss}.log.gz" immediateFlush="true" name="warn_appender">
82-
<PatternLayout>
83-
<pattern>${log_pattern}</pattern>
84-
</PatternLayout>
85-
<Policies>
86-
<SizeBasedTriggeringPolicy size="2MB"/>
87-
</Policies>
88-
<Filters>
89-
<ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
90-
<ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
91-
</Filters>
92-
</RollingRandomAccessFile>
93-
94-
<!-- ERROR级别日志 -->
95-
<RollingRandomAccessFile fileName="${log_path}/error.log" filePattern="${log_path}/error/error - %d{yyyy-MM-dd HH-mm-ss}.log.gz" immediateFlush="true" name="error_appender">
96-
<PatternLayout>
97-
<pattern>${log_pattern}</pattern>
98-
</PatternLayout>
99-
<Policies>
100-
<SizeBasedTriggeringPolicy size="2MB"/>
101-
</Policies>
102-
<Filters>
103-
<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
104-
</Filters>
105-
</RollingRandomAccessFile>
106-
</appenders>
107-
108-
<Loggers>
109-
<!-- 配置日志的根节点 -->
110-
<root level="trace">
111-
<appender-ref ref="console_out_appender"/>
112-
<!-- <appender-ref ref="console_err_appender" /> -->
113-
<appender-ref ref="trace_appender"/>
114-
<appender-ref ref="debug_appender"/>
115-
<appender-ref ref="info_appender"/>
116-
<appender-ref ref="warn_appender"/>
117-
<appender-ref ref="error_appender"/>
118-
</root>
119-
120-
<!-- 过滤第三方日志系统 -->
30+
</Console> -->
31+
32+
<!-- TRACE级别日志 -->
33+
<!-- 设置日志格式并配置日志压缩格式,压缩文件独立放在一个文件夹内, 日期格式不能为冒号,否则无法生成,因为文件名不允许有冒号,此appender只输出trace级别的数据到trace.log -->
34+
<RollingRandomAccessFile fileName="${log_path}/trace.log" filePattern="${log_path}/trace/trace - %d{yyyy-MM-dd HH-mm-ss}.log.gz" immediateFlush="true" name="trace_appender">
35+
<PatternLayout>
36+
<pattern>${log_pattern}</pattern>
37+
</PatternLayout>
38+
<Policies>
39+
<!-- 每个日志文件最大2MB -->
40+
<SizeBasedTriggeringPolicy size="2MB"/>
41+
</Policies>
42+
<Filters><!-- 此Filter意思是,只输出debug级别的数据 -->
43+
<!-- DENY,日志将立即被抛弃不再经过其他过滤器; NEUTRAL,有序列表里的下个过滤器过接着处理日志; ACCEPT,日志会被立即处理,不再经过剩余过滤器。 -->
44+
<ThresholdFilter level="debug" onMatch="DENY" onMismatch="NEUTRAL"/>
45+
<ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>
46+
</Filters>
47+
</RollingRandomAccessFile>
48+
49+
<!-- DEBUG级别日志 -->
50+
<!-- 设置日志格式并配置日志压缩格式,压缩文件独立放在一个文件夹内, 日期格式不能为冒号,否则无法生成,因为文件名不允许有冒号,此appender只输出debug级别的数据到debug.log -->
51+
<RollingRandomAccessFile fileName="${log_path}/debug.log" filePattern="${log_path}/debug/debug - %d{yyyy-MM-dd HH-mm-ss}.log.gz" immediateFlush="true" name="debug_appender">
52+
<PatternLayout>
53+
<pattern>${log_pattern}</pattern>
54+
</PatternLayout>
55+
<Policies>
56+
<!-- 每个日志文件最大2MB -->
57+
<SizeBasedTriggeringPolicy size="2MB"/>
58+
</Policies>
59+
<Filters><!-- 此Filter意思是,只输出debug级别的数据 -->
60+
<!-- DENY,日志将立即被抛弃不再经过其他过滤器; NEUTRAL,有序列表里的下个过滤器过接着处理日志; ACCEPT,日志会被立即处理,不再经过剩余过滤器。 -->
61+
<ThresholdFilter level="info" onMatch="DENY" onMismatch="NEUTRAL"/>
62+
<ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/>
63+
</Filters>
64+
</RollingRandomAccessFile>
65+
66+
<!-- INFO级别日志 -->
67+
<RollingRandomAccessFile fileName="${log_path}/info.log" filePattern="${log_path}/info/info - %d{yyyy-MM-dd HH-mm-ss}.log.gz" immediateFlush="true" name="info_appender">
68+
<PatternLayout>
69+
<pattern>${log_pattern}</pattern>
70+
</PatternLayout>
71+
<Policies>
72+
<SizeBasedTriggeringPolicy size="2MB"/>
73+
</Policies>
74+
<Filters>
75+
<ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/>
76+
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
77+
</Filters>
78+
</RollingRandomAccessFile>
79+
80+
<!-- WARN级别日志 -->
81+
<RollingRandomAccessFile fileName="${log_path}/warn.log" filePattern="${log_path}/warn/warn - %d{yyyy-MM-dd HH-mm-ss}.log.gz" immediateFlush="true" name="warn_appender">
82+
<PatternLayout>
83+
<pattern>${log_pattern}</pattern>
84+
</PatternLayout>
85+
<Policies>
86+
<SizeBasedTriggeringPolicy size="2MB"/>
87+
</Policies>
88+
<Filters>
89+
<ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
90+
<ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
91+
</Filters>
92+
</RollingRandomAccessFile>
93+
94+
<!-- ERROR级别日志 -->
95+
<RollingRandomAccessFile fileName="${log_path}/error.log" filePattern="${log_path}/error/error - %d{yyyy-MM-dd HH-mm-ss}.log.gz" immediateFlush="true" name="error_appender">
96+
<PatternLayout>
97+
<pattern>${log_pattern}</pattern>
98+
</PatternLayout>
99+
<Policies>
100+
<SizeBasedTriggeringPolicy size="2MB"/>
101+
</Policies>
102+
<Filters>
103+
<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
104+
</Filters>
105+
</RollingRandomAccessFile>
106+
</appenders>
107+
108+
<Loggers>
109+
<!-- 配置日志的根节点 -->
110+
<root level="trace">
111+
<appender-ref ref="console_out_appender"/>
112+
<!-- <appender-ref ref="console_err_appender" /> -->
113+
<appender-ref ref="trace_appender"/>
114+
<appender-ref ref="debug_appender"/>
115+
<appender-ref ref="info_appender"/>
116+
<appender-ref ref="warn_appender"/>
117+
<appender-ref ref="error_appender"/>
118+
</root>
119+
120+
<!-- 过滤第三方日志系统 -->
121121
<!-- <logger level="info" name="org.springframework.core"/>
122122
<logger level="info" name="org.springframework.beans"/>
123123
<logger level="info" name="org.springframework.context"/>
124124
<logger level="info" name="org.springframework.web"/>
125125
<logger level="warn" name="org.jboss.netty"/>
126-
<logger level="warn" name="org.apache.http"/> -->
127-
128-
</Loggers>
126+
<logger level="warn" name="org.apache.http"/> -->
127+
128+
</Loggers>
129129
</Configuration>

0 commit comments

Comments
 (0)