pull/1/head
759675757@qq.com 2019-05-22 16:17:10 +08:00
parent dc3b04406d
commit e64fa80d25
21 changed files with 704 additions and 112 deletions

View File

@ -24,6 +24,18 @@
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
<version>1.2.5.RELEASE</version>
</dependency>
<dependency>
@ -54,6 +66,47 @@
<version>1.9.22</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/tk.mybatis/mapper-spring-boot-starter -->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.2</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.10</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.16</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>
</dependencies>
<build>

View File

@ -10,6 +10,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
* @date 2019-04-19
*/
@SpringBootApplication
@tk.mybatis.spring.annotation.MapperScan(basePackages = "com.songpeng.*.mapper")
public class SpArchetypeApplication {
public static void main(String[] args) {

View File

@ -1,5 +1,7 @@
package com.songpeng.blog.controller.client;
import com.songpeng.blog.service.BlogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@ -12,8 +14,13 @@ import org.springframework.web.bind.annotation.RequestMapping;
@Controller("clientBlogController")
public class BlogController {
@GetMapping()
@Autowired
private BlogService blogService;
@GetMapping("/hello")
String blog() {
String hello = blogService.hello();
System.out.println(hello);
return "client/blog/index";
}

View File

@ -0,0 +1,9 @@
package com.songpeng.blog.service;
/**
*
*/
public interface BlogService {
String hello();
}

View File

@ -0,0 +1,17 @@
package com.songpeng.blog.service.impl;
import com.songpeng.blog.service.BlogService;
import org.springframework.stereotype.Service;
/**
* Controller
* Created by songpeng on 2019/5/21.
*/
@Service
public class BlogServiceImpl implements BlogService {
@Override
public String hello() {
return "hello";
}
}

View File

@ -0,0 +1,144 @@
package com.songpeng.common.utils;/**
* Created by yushunwei on 2019/5/21.
*/
import org.apache.commons.lang3.time.DateFormatUtils;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* Controller
* Created by songpeng on 2019/5/21.
*/
public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
private static String[] parsePatterns = new String[]{"yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy-MM-dd HH:mm:ss.E", "yyyy-MM-dd HH:mm:ss.0", "yyyy-MM-dd 00:00:00.0"};
public static String datePatterns = "yyyy-MM-dd";
public static String dateTimePatterns = "yyyy-MM-dd HH:mm:ss";
public DateUtils() {
}
public static String getDate() {
return getDate("yyyy-MM-dd");
}
public static String getDate(String pattern) {
return DateFormatUtils.format(new Date(), pattern);
}
public static String formatDateTime(Date date) {
return formatDate(date, "yyyy-MM-dd HH:mm:ss");
}
public static String getTime() {
return formatDate(new Date(), "HH:mm:ss");
}
public static String getDateTime() {
return formatDate(new Date(), "yyyy-MM-dd HH:mm:ss");
}
public static String getYear() {
return formatDate(new Date(), "yyyy");
}
public static String getMonth() {
return formatDate(new Date(), "MM");
}
public static String getDay() {
return formatDate(new Date(), "dd");
}
public static String getWeek() {
return formatDate(new Date(), "E");
}
public static Date parseDate(Object str) {
if (str == null) {
return null;
} else {
try {
return parseDate(str.toString(), parsePatterns);
} catch (ParseException var2) {
return null;
}
}
}
public static long pastDays(Date date) {
long t = System.currentTimeMillis() - date.getTime();
return t / 86400000L;
}
public static Date getDateStart(Date date) {
if (date == null) {
return null;
} else {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
date = sdf.parse(formatDate(date, "yyyy-MM-dd") + " 00:00:00");
} catch (ParseException var3) {
var3.printStackTrace();
}
return date;
}
}
public static Date getDateEnd(Date date) {
if (date == null) {
return null;
} else {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
date = sdf.parse(formatDate(date, "yyyy-MM-dd") + " 23:59:59");
} catch (ParseException var3) {
var3.printStackTrace();
}
return date;
}
}
public static String formatDate(Date date, Object... pattern) {
String formatDate = null;
if (pattern != null && pattern.length > 0) {
formatDate = DateFormatUtils.format(date, pattern[0].toString());
} else {
formatDate = DateFormatUtils.format(date, "yyyy-MM-dd");
}
return formatDate;
}
public static boolean isDate(String timeString) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
format.setLenient(false);
try {
format.parse(timeString);
return true;
} catch (Exception var3) {
return false;
}
}
public static Timestamp getSysTimestamp() {
return new Timestamp(System.currentTimeMillis());
}
public static Date getSysDate() {
return new Date();
}
public static String getDateRandom() {
String s = (new SimpleDateFormat("yyyyMMddHHmmssSSS")).format(new Date());
return s;
}
}

View File

@ -0,0 +1,104 @@
package com.songpeng.common.utils;
import java.io.Serializable;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/**
* Controller
* Created by songpeng on 2019/5/21
*/
public class PageRequest implements Serializable {
private static final long serialVersionUID = -8202259155259850600L;
private Integer pageNum = 1;
private Integer pageSize = 10;
private String order;
private String sort;
private Map<String, Object> params = new HashMap();
public PageRequest() {
}
public Integer getPageNum() {
return pageNum;
}
public void setPageNum(Integer pageNum) {
this.pageNum = pageNum;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public String getOrder() {
return this.order;
}
public void setOrder(String order) {
this.order = order;
}
public String getSort() {
return this.sort;
}
public void setSort(String sort) {
this.sort = sort;
}
public Map<String, Object> getParams() {
String key;
if (StringUtils.isNotEmpty(this.order)) {
String[] orders = this.order.split(",");
String[] sorts = this.sort.split(",");
key = "";
int i = 0;
for (int j = orders.length; i < j; ++i) {
key = StringUtils.assemblyString(new String[]{key, orders[i], " ", sorts[i], ","});
}
this.params.put("orderByClause", key.substring(0, key.length() - 1));
}
Iterator var6 = this.params.entrySet().iterator();
while (true) {
Object value;
do {
do {
do {
if (!var6.hasNext()) {
return this.params;
}
Map.Entry<String, Object> entry = (Map.Entry) var6.next();
key = (String) entry.getKey();
value = entry.getValue();
} while (value == null);
} while (StringUtils.isBlank(String.valueOf(value)));
if ((key.endsWith("IN") || key.endsWith("NI")) && value instanceof String) {
this.params.put(key, Arrays.asList(value.toString().split(",")));
}
} while (!key.endsWith("TimeEnd") && !key.endsWith("DateEnd"));
if (String.valueOf(value).length() == 10) {
this.params.put(key, DateUtils.formatDateTime(DateUtils.getDateEnd(DateUtils.parseDate(value))));
}
}
}
public void setParams(Map<String, Object> params) {
this.params = params;
}
}

View File

@ -0,0 +1,11 @@
package com.songpeng.common.utils;
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;
/**
* @author songpeng
* @date 2019/05/22
*/
public interface SpMapper<T> extends Mapper<T>, MySqlMapper<T> {
}

View File

@ -0,0 +1,152 @@
package com.songpeng.common.utils;
import java.net.URLEncoder;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.regex.Pattern;
/**
* Controller
* Created by songpeng on 2019/5/21.
*/
public class StringUtils extends org.apache.commons.lang3.StringUtils {
private static final Pattern DANGER_CHAR_PATTERN = Pattern.compile("['|\"|\\|<|>]");
public StringUtils() {
}
public static String maptToUrlParam(Map<String, Object> paramMap, String encode) throws Exception {
String params = "";
Set<String> paramKey = paramMap.keySet();
Iterator<String> it = paramKey.iterator();
StringBuffer sb = new StringBuffer();
while (it.hasNext()) {
String tempKey = (String) it.next();
String tempValue = paramMap.get(tempKey) != null ? URLEncoder.encode(paramMap.get(tempKey).toString(), encode) : "";
if (sb.length() == 0) {
sb.append(tempKey + "=" + tempValue);
} else {
sb.append("&" + tempKey + "=" + tempValue);
}
}
return params;
}
public static String assemblyString(String... strParam) {
StringBuffer stringBuffer = new StringBuffer();
String[] var2 = strParam;
int var3 = strParam.length;
for (int var4 = 0; var4 < var3; ++var4) {
String string = var2[var4];
stringBuffer.append(string);
}
return stringBuffer.toString();
}
public static String uuid() {
return UUID.randomUUID().toString().replaceAll("-", "").toUpperCase();
}
public static boolean isNumeric(Object obj) {
if (obj == null) {
return false;
} else {
char[] chars = obj.toString().toCharArray();
int length = chars.length;
if (length < 1) {
return false;
} else {
int i = 0;
if (length > 1 && chars[0] == '-') {
i = 1;
}
while (i < length) {
if (!Character.isDigit(chars[i])) {
return false;
}
++i;
}
return true;
}
}
}
public static String[] replaceDanger(String[] values) {
if (values == null) {
return null;
} else {
int count = values.length;
String[] _values = new String[count];
for (int i = 0; i < count; ++i) {
_values[i] = replaceDanger(values[i]);
}
return _values;
}
}
public static String replaceDanger(String value) {
if (!isBlank(value) && isDanger(value)) {
char[] chars = value.toCharArray();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < chars.length; ++i) {
char c = chars[i];
switch (c) {
case '"':
sb.append("&quot;");
break;
case '\'':
sb.append("&#39;");
break;
case '<':
sb.append("&lt;");
break;
case '>':
sb.append("&gt;");
break;
default:
sb.append(c);
}
}
return sb.toString();
} else {
return value;
}
}
public static String[] escapeDanger(String[] values) {
if (values == null) {
return null;
} else {
int count = values.length;
String[] _values = new String[count];
for (int i = 0; i < count; ++i) {
_values[i] = escapeDanger(values[i]);
}
return _values;
}
}
public static String escapeDanger(String value) {
return !isBlank(value) && isDanger(value) ? value.replaceAll("(?<!\\\\)'", "\\\\'") : value;
}
public static boolean isDanger(String str) {
return isBlank(str) ? false : DANGER_CHAR_PATTERN.matcher(str).find();
}
}

View File

@ -1,11 +1,19 @@
package com.songpeng.system.controller.admin;
import com.github.pagehelper.PageInfo;
import com.songpeng.common.utils.ApiResponse;
import com.songpeng.common.utils.PageRequest;
import com.songpeng.system.domain.User;
import com.songpeng.system.service.UserService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.util.HashMap;
import java.util.Map;
/**
* Controller
@ -18,11 +26,21 @@ import org.springframework.web.bind.annotation.RequestMapping;
public class UserController {
@Autowired
private static UserService userService;
private UserService userService;
/**
*
*/
private static final Logger logger = LoggerFactory.getLogger(UserController.class);
@RequestMapping("/page")
@ResponseBody
public ApiResponse getPage(PageRequest pageRequest) {
logger.info("获取用户列表");
PageInfo<User> pageInfo = userService.getPage(pageRequest);
Map<String, Object> res = new HashMap<>(2);
res.put("result", pageInfo);
return ApiResponse.ok(res);
}
}

View File

@ -0,0 +1,45 @@
package com.songpeng.system.domain;
/**
* Controller
* Created by songpeng on 2019/5/21.
*/
public class User {
private String id;
private String name;
private String username;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@Override
public String toString() {
final StringBuffer sb = new StringBuffer("User{");
sb.append("id='").append(id).append('\'');
sb.append(", name='").append(name).append('\'');
sb.append(", username='").append(username).append('\'');
sb.append('}');
return sb.toString();
}
}

View File

@ -0,0 +1,13 @@
package com.songpeng.system.mapper;
import com.songpeng.system.domain.User;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
@Mapper
public interface UserMapper {
List<User> getPage(Map<String, Object> params);
}

View File

@ -1,8 +1,21 @@
package com.songpeng.system.service;
import com.github.pagehelper.PageInfo;
import com.songpeng.common.utils.PageRequest;
import com.songpeng.system.domain.User;
/**
* Controller
* Created by songpeng on 2019/4/20.
* UserService
* @author songpeng
* @date 2019/4/20.
*/
public class UserService {
public interface UserService {
/**
*
* @param pageRequest
* @return
*/
PageInfo<User> getPage(PageRequest pageRequest);
}

View File

@ -1,11 +1,35 @@
package com.songpeng.system.service.impl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.songpeng.common.utils.PageRequest;
import com.songpeng.system.domain.User;
import com.songpeng.system.mapper.UserMapper;
import com.songpeng.system.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Controller
* Created by songpeng on 2019/4/20.
* UserServiceImpl
*
* @author songpeng
* @date 2019/4/20
*/
@Service
public class UserServiceImpl {
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public PageInfo<User> getPage(PageRequest pageRequest) {
//将参数传给这个方法就可以实现物理分页了,非常简单。
PageHelper.startPage(pageRequest.getPageNum(), pageRequest.getPageSize());
List<User> users = userMapper.getPage(pageRequest.getParams());
PageInfo result = new PageInfo(users);
return result;
}
}

View File

@ -7,4 +7,41 @@ spring:
mode: LEGACYHTML5 # 用非严格的 HTML
encoding: UTF-8
servlet:
content-type: text/html
content-type: text/html
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/sparchetype
username: postgres
password: 123456
druid:
#初始化连接大小
initial-size: 8
#最小空闲连接数
min-idle: 5
#最大连接数
max-active: 10
#查询超时时间
query-timeout: 6000
#事务查询超时时间
transaction-query-timeout: 6000
#关闭空闲连接超时时间
remove-abandoned-timeout: 1800
filters: stat,config
mybatis:
mapper-locations: mybatis/**/*Mapper.xml
type-aliases-package: com.songpeng.**.domain
configuration:
log-impl: org.apache.ibatis.logging.log4j.Log4jImpl
mapper:
mappers:
- com.songpeng.common.utils.SpMapper
not-empty: false
identity: POSTGRESQL
pagehelper:
helperDialect: postgresql
reasonable: true
supportMethodsArguments: true
params: count=countSql

View File

@ -0,0 +1,35 @@
log4j.rootCategory=info,file_info,file_error,stdout
log4j.logger.org.springframework.web.filter.CommonsRequestLoggingFilter=debug,file_info,stdout
log4j.additivity.org.springframework.web.filter.CommonsRequestLoggingFilter=false
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.file_info=org.apache.log4j.RollingFileAppender
log4j.appender.file_info.layout=org.apache.log4j.PatternLayout
log4j.appender.file_info.MaxFileSize=100MB
log4j.appender.file_info.MaxBackupIndex=10
log4j.appender.file_info.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%-5p](%-30c{1}) [TxId : %X{PtxId} , SpanId : %X{PspanId}] [ET:%X{ENV_TYPE},AN:%X{APP_NAME},SN:%X{SERVICE_NAME},CN:%X{CONTAINER_NAME},CI:%X{CONTAINER_IP}] %m%n
log4j.appender.file_info.Threshold=DEBUG
log4j.appender.file_info.append=true
log4j.appender.file_info.File=/opt/logs/busi/sp_blog-info.log
log4j.appender.file_error=org.apache.log4j.RollingFileAppender
log4j.appender.file_error.layout=org.apache.log4j.PatternLayout
log4j.appender.file_error.MaxFileSize=100MB
log4j.appender.file_error.MaxBackupIndex=10
log4j.appender.file_error.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%-5p](%-30c{1}) [TxId : %X{PtxId} , SpanId : %X{PspanId}] [ET:%X{ENV_TYPE},AN:%X{APP_NAME},SN:%X{SERVICE_NAME},CN:%X{CONTAINER_NAME},CI:%X{CONTAINER_IP}] %m%n
log4j.appender.file_error.Threshold=ERROR
log4j.appender.file_error.append=true
log4j.appender.file_error.File=/opt/logs/busi/sp_blog-error.log
#\u6253\u5370sql\u90E8\u5206
log4j.logger.java.sql=DEBUG
log4j.logger.java.sql.Connection = DEBUG
log4j.logger.java.sql.Statement = DEBUG
log4j.logger.java.sql.PreparedStatement = DEBUG
log4j.logger.java.sql.ResultSet = DEBUG
#\u914D\u7F6Elogger\u626B\u63CF\u7684\u5305\u8DEF\u5F84 \u8FD9\u6837\u624D\u4F1A\u6253\u5370sql
log4j.logger.com.songpeng=DEBUG

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.songpeng.system.mapper.UserMapper" >
<select id="getPage" resultType="com.songpeng.system.domain.User">
SELECT
*
FROM
sys_user
</select>
</mapper>

View File

@ -1,9 +1,8 @@
/*!
/*
* Clean Blog v1.0.0 (http://startbootstrap.com)
* Copyright 2014 Start Bootstrap
* Licensed under Apache 2.0 (https://github.com/IronSummitMedia/startbootstrap/blob/gh-pages/LICENSE)
*/
body {
font-family: 'Lora', 'Times New Roman', serif;
font-size: 20px;

View File

@ -1,99 +0,0 @@
// (function($) {
// // 首先备份下jquery的ajax方法
// var _ajax = $.ajax;
//
// // 重写jquery的ajax方法
// $.ajax = function(options) {
// // 备份opt中error和success方法
// var callback = {
// "beforeSend" : function(XHR) {
// },
// "complete" : function(XHR, TS) {
// },
// "error" : function(XMLHttpRequest, textStatus, errorThrown) {
// },
// "success" : function(data, textStatus) {
// }
// }
//
// // 判断参数中是否有beforeSend回调函数
// if (options.beforeSend) {
// callback.beforeSend = options.beforeSend;
// }
//
// // 判断参数中是否有complete回调函数
// if (options.complete) {
// callback.complete = options.complete;
// }
//
// // 判断参数中是否有error回调函数
// if (options.error) {
// callback.error = options.error;
// }
//
// // 判断参数中是否有success回调函数
// if (options.success) {
// callback.success = options.success;
// }
//
// // 扩展增强处理
// var _opt = $.extend(options, {
// error : function(XMLHttpRequest, textStatus, errorThrown) {
// // 错误方法增强处理
// callback.error(XMLHttpRequest, textStatus, errorThrown);
// },
// success : function(data,textStatus) {
// // 成功回调方法增强处理
// if(403==data.code){
// parent.location.href = '/login';
// }
// callback.success(data);
// },
// beforeSend : function(XHR) {
// // 提交前回调方法
// var index = layer.load(1, {
// shade: [0.1,'#fff'] //0.1透明度的白色背景
// });
// callback.beforeSend(XHR);
// },
// complete : function(XHR, TS) {
// // 请求完成后回调函数 (请求成功或失败之后均调用)。
// layer.closeAll('loading');
// callback.complete(XHR, TS);
// }
// });
//
// // 返回重写的ajax
// return _ajax(_opt);
// };
// })(jQuery);
//
//
//
//
//全站ajax加载提示
(function ($) {
$(document).ajaxStart(function () {
var index = layer.load(1, {
shade: [0.1, '#fff'] //0.1透明度的白色背景
});
});
$(document).ajaxStop(function () {
layer.closeAll('loading');
});
//登录过期shiro返回登录页面
$.ajaxSetup({
complete: function (xhr, status,dataType) {
if('text/html;charset=UTF-8'==xhr.getResponseHeader('Content-Type')){
top.location.href = '/login';
}
}
});
})(jQuery);

View File

@ -1,3 +1,4 @@
<html xmlns:th="http://www.thymeleaf.org">
<head th:fragment="header">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@ -152,7 +153,6 @@
<script src="/js/jquery.min.js"></script>
<script src="/js/bootstrap.min.js"></script>
<script src="/js/plugins/layer/layer.js"></script>
<script src="/js/ajax-util.js"></script>
<script src="/js/blog/clean-blog.min.js"></script>
<script src="/js/plugins/summernote/summernote.min.js"></script>
<script src="/js/plugins/summernote/summernote-zh-CN.min.js"></script>

View File

@ -40,7 +40,6 @@
var total;
$(function(){
bindList(0);
});
function nextPage() {