|
|
@@ -116,21 +116,38 @@ public class UserVisitsDaoImpl implements UserVisitsDao {
|
|
|
@Override
|
|
|
public List queryVisitsByDiyTime(String startTime, String endTime)
|
|
|
{
|
|
|
+ int dayCount = DateUtil.getDayDiff(startTime,endTime);
|
|
|
+ if (dayCount <= 0)
|
|
|
+ throw new RuntimeException("请输入正确的时间区间");
|
|
|
+ StringBuffer positiveStr = new StringBuffer(); // 负
|
|
|
+ StringBuffer negativeStr = new StringBuffer(); // 正
|
|
|
+ for (int i = 0; i < dayCount; i++) {
|
|
|
+ if (i == 0) {
|
|
|
+ negativeStr.append(" SELECT "+i+" seq ");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ negativeStr.append(" UNION ALL SELECT " + i);
|
|
|
+ positiveStr.append(" UNION ALL SELECT -" + i);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
String sqlQuery = "select a.day,IFNULL(b.visitNumber,0) visitNumber from ( " +
|
|
|
" SELECT DATE_ADD(DATE_FORMAT('"+startTime+"','%Y-%m-%d'), INTERVAL seq DAY) AS day " +
|
|
|
- " FROM ( " +
|
|
|
- " SELECT -1 seq UNION ALL SELECT -2 UNION ALL SELECT -3 UNION ALL SELECT -4 UNION ALL " +
|
|
|
- " SELECT -5 UNION ALL SELECT -6 UNION ALL SELECT -7 UNION ALL SELECT -8 UNION ALL SELECT -9 UNION ALL SELECT -10 UNION ALL " +
|
|
|
- " SELECT -11 UNION ALL SELECT -12 UNION ALL SELECT -13 UNION ALL SELECT -14 UNION ALL SELECT -15 UNION ALL SELECT -16 UNION ALL " +
|
|
|
- " SELECT -17 UNION ALL SELECT -18 UNION ALL SELECT -19 UNION ALL SELECT -20 UNION ALL SELECT -21 UNION ALL SELECT -22 UNION ALL " +
|
|
|
- " SELECT -23 UNION ALL SELECT -24 UNION ALL SELECT -25 UNION ALL SELECT -26 UNION ALL SELECT -27 UNION ALL SELECT -28 UNION ALL " +
|
|
|
- " SELECT -29 UNION ALL SELECT -30 UNION ALL " +
|
|
|
- " SELECT 0 UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL " +
|
|
|
- " SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL " +
|
|
|
- " SELECT 11 UNION ALL SELECT 12 UNION ALL SELECT 13 UNION ALL SELECT 14 UNION ALL SELECT 15 UNION ALL SELECT 16 UNION ALL " +
|
|
|
- " SELECT 17 UNION ALL SELECT 18 UNION ALL SELECT 19 UNION ALL SELECT 20 UNION ALL SELECT 21 UNION ALL SELECT 22 UNION ALL " +
|
|
|
- " SELECT 23 UNION ALL SELECT 24 UNION ALL SELECT 25 UNION ALL SELECT 26 UNION ALL SELECT 27 UNION ALL SELECT 28 UNION ALL " +
|
|
|
- " SELECT 29 UNION ALL SELECT 30 " +
|
|
|
+ " FROM ( " + negativeStr.toString() + positiveStr.toString() +
|
|
|
+// " SELECT -1 seq UNION ALL SELECT -2 UNION ALL SELECT -3 UNION ALL SELECT -4 UNION ALL " +
|
|
|
+// " SELECT -5 UNION ALL SELECT -6 UNION ALL SELECT -7 UNION ALL SELECT -8 UNION ALL SELECT -9 UNION ALL SELECT -10 UNION ALL " +
|
|
|
+// " SELECT -11 UNION ALL SELECT -12 UNION ALL SELECT -13 UNION ALL SELECT -14 UNION ALL SELECT -15 UNION ALL SELECT -16 UNION ALL " +
|
|
|
+// " SELECT -17 UNION ALL SELECT -18 UNION ALL SELECT -19 UNION ALL SELECT -20 UNION ALL SELECT -21 UNION ALL SELECT -22 UNION ALL " +
|
|
|
+// " SELECT -23 UNION ALL SELECT -24 UNION ALL SELECT -25 UNION ALL SELECT -26 UNION ALL SELECT -27 UNION ALL SELECT -28 UNION ALL " +
|
|
|
+// " SELECT -29 UNION ALL SELECT -30 UNION ALL " +
|
|
|
+// " SELECT 0 UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL " +
|
|
|
+// " SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL " +
|
|
|
+// " SELECT 11 UNION ALL SELECT 12 UNION ALL SELECT 13 UNION ALL SELECT 14 UNION ALL SELECT 15 UNION ALL SELECT 16 UNION ALL " +
|
|
|
+// " SELECT 17 UNION ALL SELECT 18 UNION ALL SELECT 19 UNION ALL SELECT 20 UNION ALL SELECT 21 UNION ALL SELECT 22 UNION ALL " +
|
|
|
+// " SELECT 23 UNION ALL SELECT 24 UNION ALL SELECT 25 UNION ALL SELECT 26 UNION ALL SELECT 27 UNION ALL SELECT 28 UNION ALL " +
|
|
|
+// " SELECT 29 UNION ALL SELECT 30 " +
|
|
|
" ) t where " +
|
|
|
" DATE_ADD(DATE_FORMAT('"+startTime+"','%Y-%m-%d'), INTERVAL seq DAY) >= DATE_FORMAT('"+ startTime +"','%Y-%m-%d')"+
|
|
|
" AND DATE_ADD(DATE_FORMAT('"+startTime+"','%Y-%m-%d'), INTERVAL seq DAY) <= DATE_FORMAT('"+ endTime +"','%Y-%m-%d')"+
|