From f0376f72170c2eb236bec5560b8c5734edd222f1 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Wed, 31 Mar 2021 17:16:40 +0800
Subject: [PATCH] common模块:     增加了convert工具类,驼峰和下划线相互转换     更新了Date工具类,添加根据Date,day获取目标date的方法     更新WebUtils工具类,添加获取请求Ip方法 manage模块:     组织和后台用户增删改查模块全部完成     增加aop用作日志插入

---
 screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationQueryVO.java      |   87 +
 screen-manage/src/main/resources/mapper/ManageLogMapper.xml                                  |    5 
 screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountDeleteVO.java               |    4 
 pom.xml                                                                                      |    5 
 screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java         |  210 +--
 screen-manage/src/main/java/com/moral/api/mapper/ManageLogMapper.java                        |    2 
 screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationVO.java           |    2 
 screen-manage/src/main/java/com/moral/api/service/ManageLogService.java                      |    2 
 screen-manage/src/main/java/com/moral/api/config/mybatis/wrapper/NullFilterWrapper.java      |   36 
 screen-manage/src/main/java/com/moral/api/service/ManageAccountService.java                  |    6 
 screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationUpdateVO.java     |    1 
 screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountVO.java                     |   27 
 screen-common/src/main/java/com/moral/util/ConvertUtils.java                                 |   88 +
 screen-common/src/main/java/com/moral/constant/Constants.java                                |   57 
 screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationInsertVO.java     |    1 
 screen-manage/src/main/java/com/moral/api/aop/log/OperationLogAnno.java                      |   20 
 screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationInsertForm.java |    2 
 screen-common/src/main/java/com/moral/util/DateUtils.java                                    | 2352 +++++++++++++++++++-------------------
 screen-manage/src/main/java/com/moral/api/controller/OrganizationController.java             |   59 
 screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationQueryForm.java  |   60 
 screen-manage/src/main/java/com/moral/api/entity/ManageLog.java                              |   19 
 screen-manage/src/main/java/com/moral/api/pojo/form/login/LoginForm.java                     |    2 
 screen-manage/src/main/java/com/moral/api/controller/AccountController.java                  |  104 
 screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountQueryVO.java                |   33 
 screen-manage/src/main/resources/application-dev.yml                                         |    1 
 screen-common/src/main/java/com/moral/util/WebUtils.java                                     |   33 
 screen-manage/src/main/java/com/moral/api/pojo/form/login/LogoutForm.java                    |    2 
 screen-manage/src/main/java/com/moral/api/service/impl/ManageLogServiceImpl.java             |    2 
 screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationDTO.java         |    9 
 screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountInsertForm.java           |   15 
 screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountUpdateForm.java           |   35 
 screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountInsertVO.java               |    3 
 screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationDeleteVO.java     |    1 
 screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java          |  151 +
 screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountUpdateVO.java               |    3 
 screen-manage/src/main/java/com/moral/api/aop/log/OperationLogAspect.java                    |  117 +
 screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountQueryForm.java            |   22 
 37 files changed, 2,055 insertions(+), 1,523 deletions(-)

diff --git a/pom.xml b/pom.xml
index be47e13..02b98d7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -112,6 +112,11 @@
             <artifactId>kaptcha</artifactId>
             <version>2.3.2</version>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-aop</artifactId>
+        </dependency>
+
     </dependencies>
 
 
diff --git a/screen-common/src/main/java/com/moral/constant/Constants.java b/screen-common/src/main/java/com/moral/constant/Constants.java
index 4a56f3f..0227b33 100644
--- a/screen-common/src/main/java/com/moral/constant/Constants.java
+++ b/screen-common/src/main/java/com/moral/constant/Constants.java
@@ -7,56 +7,81 @@
     /*
      * ���������������
      * */
-    public static String DELETE = "1";
+    public static final String DELETE = "1";
 
     /*
      * ���������������
      * */
-    public static String NOT_DELETE = "0";
+    public static final String NOT_DELETE = "0";
 
     /*
      * ���������������������������������
      * */
-    public static String MANAGE_VERIFICATIONCODE_COLUMN = "type";
+    public static final String MANAGE_VERIFICATIONCODE_COLUMN = "type";
 
     /*
      * ������������������������������������
      * */
-    public static String MANAGE_VERIFICATIONCODE_VALUE = "manage_verificationCode";
+    public static final String MANAGE_VERIFICATIONCODE_VALUE = "manage_verificationCode";
 
     /*
      * ���������������������
      * */
-    public static String VERFICATIONCODE_OPEN = "1";
+    public static final String VERFICATIONCODE_OPEN = "1";
 
     /*
      * ���������������������
      * */
-    public static String VERFICATIONCODE_CLOSE = "0";
+    public static final String VERFICATIONCODE_CLOSE = "0";
 
     /*
      * ������������������
      * */
-    public static String ORDER_ASC = "0";
+    public static final String ORDER_ASC = "0";
 
     /*
      * ������������������
      * */
-    public static String ORDER_DESC = "1";
+    public static final String ORDER_DESC = "1";
 
     /*
-    * ���������������������
-    * */
-    public static Integer DELETE_CHILDREN_ORG = 1;
-
-    /*
-     * web���������
+     * ���������������������
      * */
-    public static Integer WEB_CHANNEL = 1;
+    public static final Integer DELETE_CHILDREN_ORG = 1;
+
+    /*
+     * ���������������
+     * */
+    public static final Integer WEB_CHANNEL = 1;
 
     /*
      * web������������������������
      * */
-    public static String VERIFICATION_TYPE = "front_verificationCode";
+    public static final String VERIFICATION_TYPE = "front_verificationCode";
+
+    /*
+     * ������������������
+     * */
+    public static final String INSERT_OPERATE_TYPE = "������";
+
+    /*
+     * ������������������
+     * */
+    public static final String DELETE_OPERATE_TYPE = "������";
+
+    /*
+     * ������������������
+     * */
+    public static final String UPDATE_OPERATE_TYPE = "������";
+
+    /*
+     * ������������������
+     * */
+    public static final String QUERY_OPERATE_TYPE = "������";
+
+    /*
+     * Organization������������
+     * */
+    public static final  String ORGANIZATION_MODULE_NAME = "������";
 
 }
diff --git a/screen-common/src/main/java/com/moral/util/ConvertUtils.java b/screen-common/src/main/java/com/moral/util/ConvertUtils.java
new file mode 100644
index 0000000..5f60f4f
--- /dev/null
+++ b/screen-common/src/main/java/com/moral/util/ConvertUtils.java
@@ -0,0 +1,88 @@
+package com.moral.util;
+
+import org.mockito.internal.util.StringUtil;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * @ClassName ConvertUtils
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/3/26 14:52
+ * @Version TODO
+ **/
+public class ConvertUtils {
+
+
+    /**
+    * @Description: ������������������
+            * @Param: [underscore]
+            * @return: java.lang.String
+            * @Author: ���������
+            * @Date: 2021/3/26
+            */
+    public static String underscoreToCamelCase(String underscore) {
+        String[] ss = underscore.split("_");
+        if (ss.length == 1) {
+            return underscore;
+        }
+
+        StringBuffer sb = new StringBuffer();
+        sb.append(ss[0]);
+        for (int i = 1; i < ss.length; i++) {
+            sb.append(upperFirstCase(ss[i]));
+        }
+
+        return sb.toString();
+    }
+
+    /**
+    * @Description: ������������������
+            * @Param: [camelCase]
+            * @return: java.lang.String
+            * @Author: ���������
+            * @Date: 2021/3/26
+            */
+    public static String toLine(String camelCase) {
+        Pattern humpPattern = Pattern.compile("[A-Z]");
+        Matcher matcher = humpPattern.matcher(camelCase);
+        StringBuffer sb = new StringBuffer();
+        while (matcher.find()) {
+            matcher.appendReplacement(sb, "_" + matcher.group(0).toLowerCase());
+        }
+        matcher.appendTail(sb);
+        return sb.toString();
+    }
+
+
+    /**
+    * @Description: ���������������������
+            * @Param: [str]
+            * @return: java.lang.String
+            * @Author: ���������
+            * @Date: 2021/3/26
+            */
+    private static String lowerFirstCase(String str) {
+        char[] chars = str.toCharArray();
+        chars[0] += 32;
+        return String.valueOf(chars);
+    }
+
+    /**
+    * @Description: ���������������������
+            * @Param: [str]
+            * @return: java.lang.String
+            * @Author: ���������
+            * @Date: 2021/3/26
+            */
+    private static String upperFirstCase(String str) {
+        char[] chars = str.toCharArray();
+        chars[0] -= 32;
+        return String.valueOf(chars);
+    }
+
+
+
+
+}
diff --git a/screen-common/src/main/java/com/moral/util/DateUtils.java b/screen-common/src/main/java/com/moral/util/DateUtils.java
index bfbb3a5..cbc63a2 100644
--- a/screen-common/src/main/java/com/moral/util/DateUtils.java
+++ b/screen-common/src/main/java/com/moral/util/DateUtils.java
@@ -1,7 +1,6 @@
 package com.moral.util;
 
 
-
 import org.springframework.util.StringUtils;
 
 import java.math.BigDecimal;
@@ -16,1254 +15,1289 @@
 
 
 public class DateUtils {
-	/** ������������(yyyy-MM-dd) */
-	public static final String yyyy_MM_dd_EN = "yyyy-MM-dd";
-	/** ������������(yyyy/MM/dd) */
-	public static final String yyyy_MM_dd_decline = "yyyy/MM/dd";
-	/** ������������(yyyyMMdd) */
-	public static final String yyyyMMdd_EN = "yyyyMMdd";
-	/** ������������(yyyy-MM) */
-	public static final String yyyy_MM_EN = "yyyy-MM";
-	/** ������������(yyyyMM) */
-	public static final String yyyyMM_EN = "yyyyMM";
-	/** ������������(yyyy-MM-dd HH:mm:ss) */
-	public static final String yyyy_MM_dd_HH_mm_ss_EN = "yyyy-MM-dd HH:mm:ss";
-	/** ������������(yyyy-MM-dd HH:mm:ss.S) */
-	public static final String yyyy_MM_dd_HH_mm_ss_S_EN = "yyyy-MM-dd HH:mm:ss.S";
-	/** ������������(yyyyMMddHHmmss) */
-	public static final String yyyyMMddHHmmss_EN = "yyyyMMddHHmmss";
-	/** ������������(yyyy���MM���dd���) */
-	public static final String yyyy_MM_dd_CN = "yyyy���MM���dd���";
-	/** ������������(yyyy���MM���dd���HH���mm���ss���) */
-	public static final String yyyy_MM_dd_HH_mm_ss_CN = "yyyy���MM���dd���HH���mm���ss���";
-	/** ������������(yyyy���MM���dd���HH���mm���) */
-	public static final String yyyy_MM_dd_HH_mm_CN = "yyyy���MM���dd���HH���mm���";
-	/** ������boss��������������������������������� */
-	public static final String BJBOSS_DATE = "yyyy-MM-dd'T'HH:mm:ss'Z'";
-	/** ������������(HH:mm:ss) */
-	public static final String HH_mm_ss_EN = "HH:mm:ss";
-	/** DateFormat������ */
-	private static Map<String, DateFormat> dateFormatMap = new HashMap<String, DateFormat>();
+    /**
+     * ������������(yyyy-MM-dd)
+     */
+    public static final String yyyy_MM_dd_EN = "yyyy-MM-dd";
+    /**
+     * ������������(yyyy/MM/dd)
+     */
+    public static final String yyyy_MM_dd_decline = "yyyy/MM/dd";
+    /**
+     * ������������(yyyyMMdd)
+     */
+    public static final String yyyyMMdd_EN = "yyyyMMdd";
+    /**
+     * ������������(yyyy-MM)
+     */
+    public static final String yyyy_MM_EN = "yyyy-MM";
+    /**
+     * ������������(yyyyMM)
+     */
+    public static final String yyyyMM_EN = "yyyyMM";
+    /**
+     * ������������(yyyy-MM-dd HH:mm:ss)
+     */
+    public static final String yyyy_MM_dd_HH_mm_ss_EN = "yyyy-MM-dd HH:mm:ss";
+    /**
+     * ������������(yyyy-MM-dd HH:mm:ss.S)
+     */
+    public static final String yyyy_MM_dd_HH_mm_ss_S_EN = "yyyy-MM-dd HH:mm:ss.S";
+    /**
+     * ������������(yyyyMMddHHmmss)
+     */
+    public static final String yyyyMMddHHmmss_EN = "yyyyMMddHHmmss";
+    /**
+     * ������������(yyyy���MM���dd���)
+     */
+    public static final String yyyy_MM_dd_CN = "yyyy���MM���dd���";
+    /**
+     * ������������(yyyy���MM���dd���HH���mm���ss���)
+     */
+    public static final String yyyy_MM_dd_HH_mm_ss_CN = "yyyy���MM���dd���HH���mm���ss���";
+    /**
+     * ������������(yyyy���MM���dd���HH���mm���)
+     */
+    public static final String yyyy_MM_dd_HH_mm_CN = "yyyy���MM���dd���HH���mm���";
+    /**
+     * ������boss���������������������������������
+     */
+    public static final String BJBOSS_DATE = "yyyy-MM-dd'T'HH:mm:ss'Z'";
+    /**
+     * ������������(HH:mm:ss)
+     */
+    public static final String HH_mm_ss_EN = "HH:mm:ss";
+    /**
+     * DateFormat������
+     */
+    private static Map<String, DateFormat> dateFormatMap = new HashMap<String, DateFormat>();
 
 
+    /**
+     * ������DateFormat
+     *
+     * @param formatStr
+     * @return
+     */
+    public static DateFormat getDateFormat(String formatStr) {
+        DateFormat df = dateFormatMap.get(formatStr);
+        if (df == null) {
+            df = new SimpleDateFormat(formatStr);
+            dateFormatMap.put(formatStr, df);
+        }
+        return df;
+    }
 
+    public static Date getDate() {
+        return Calendar.getInstance().getTime();
+    }
 
-	/**
-	 * ������DateFormat
-	 * 
-	 * @param formatStr
-	 * @return
-	 */
-	public static DateFormat getDateFormat(String formatStr) {
-		DateFormat df = dateFormatMap.get(formatStr);
-		if (df == null) {
-			df = new SimpleDateFormat(formatStr);
-			dateFormatMap.put(formatStr, df);
-		}
-		return df;
-	}
+    /**
+     * ������������formatStr������������������dateTimeStr���Date������ dateTimeStr���������formatStr���������
+     *
+     * @param dateTimeStr
+     * @param formatStr
+     * @return
+     */
+    public static Date getDate(String dateTimeStr, String formatStr) {
+        try {
+            if (dateTimeStr == null || dateTimeStr.equals("")) {
+                return null;
+            }
+            DateFormat sdf = getDateFormat(formatStr);
+            return sdf.parse(dateTimeStr);
+        } catch (ParseException e) {
+            throw new RuntimeException(e);
+        }
+    }
 
-	public static Date getDate() {
-		return Calendar.getInstance().getTime();
-	}
+    /**
+     * ������dateTimeStr���Date������
+     *
+     * @param dateTimeStr
+     * @return
+     */
+    public static Date convertDate(String dateTimeStr) {
+        try {
+            if (dateTimeStr == null || dateTimeStr.equals("")) {
+                return null;
+            }
+            DateFormat sdf = getDateFormat(yyyy_MM_dd_EN);
+            Date d = sdf.parse(dateTimeStr);
+            return d;
+        } catch (ParseException e) {
+            throw new RuntimeException(e);
+        }
+    }
 
-	/**
-	 * ������������formatStr������������������dateTimeStr���Date������ dateTimeStr���������formatStr���������
-	 * 
-	 * @param dateTimeStr
-	 * @param formatStr
-	 * @return
-	 */
-	public static Date getDate(String dateTimeStr, String formatStr) {
-		try {
-			if (dateTimeStr == null || dateTimeStr.equals("")) {
-				return null;
-			}
-			DateFormat sdf = getDateFormat(formatStr);
-			return sdf.parse(dateTimeStr);
-		} catch (ParseException e) {
-			throw new RuntimeException(e);
-		}
-	}
+    /**
+     * ���������������������������������������"yyyy-MM-dd"���������dateTimeStr���Date������ dateTimeStr���������"yyyy-MM-dd"���������
+     *
+     * @param dateTimeStr
+     * @return
+     */
+    public static Date getDate(String dateTimeStr) {
+        return getDate(dateTimeStr, yyyy_MM_dd_EN);
+    }
 
-	/**
-	 * ������dateTimeStr���Date������
-	 * 
-	 * @param dateTimeStr
-	 * @return
-	 */
-	public static Date convertDate(String dateTimeStr) {
-		try {
-			if (dateTimeStr == null || dateTimeStr.equals("")) {
-				return null;
-			}
-			DateFormat sdf = getDateFormat(yyyy_MM_dd_EN);
-			Date d = sdf.parse(dateTimeStr);
-			return d;
-		} catch (ParseException e) {
-			throw new RuntimeException(e);
-		}
-	}
+    /**
+     * ���YYYYMMDD���������Date������
+     *
+     * @param date
+     * @return
+     * @throws Exception
+     */
+    public static Date transferDate(String date) throws Exception {
+        if (date == null || date.length() < 1)
+            return null;
 
-	/**
-	 * ���������������������������������������"yyyy-MM-dd"���������dateTimeStr���Date������ dateTimeStr���������"yyyy-MM-dd"���������
-	 * 
-	 * @param dateTimeStr
-	 * @return
-	 */
-	public static Date getDate(String dateTimeStr) {
-		return getDate(dateTimeStr, yyyy_MM_dd_EN);
-	}
+        if (date.length() != 8)
+            throw new Exception("������������������");
+        String con = "-";
 
-	/**
-	 * ���YYYYMMDD���������Date������
-	 * 
-	 * @param date
-	 * @return
-	 * @throws Exception
-	 */
-	public static Date transferDate(String date) throws Exception {
-		if (date == null || date.length() < 1)
-			return null;
+        String yyyy = date.substring(0, 4);
+        String mm = date.substring(4, 6);
+        String dd = date.substring(6, 8);
 
-		if (date.length() != 8)
-			throw new Exception("������������������");
-		String con = "-";
+        int month = Integer.parseInt(mm);
+        int day = Integer.parseInt(dd);
+        if (month < 1 || month > 12 || day < 1 || day > 31)
+            throw new Exception("������������������");
 
-		String yyyy = date.substring(0, 4);
-		String mm = date.substring(4, 6);
-		String dd = date.substring(6, 8);
+        String str = yyyy + con + mm + con + dd;
+        return getDate(str, yyyy_MM_dd_EN);
+    }
 
-		int month = Integer.parseInt(mm);
-		int day = Integer.parseInt(dd);
-		if (month < 1 || month > 12 || day < 1 || day > 31)
-			throw new Exception("������������������");
+    /**
+     * ���Date���������������������yyyy-mm-dd hh:mm:ss���������������
+     *
+     * @param date
+     * @return
+     */
+    public static String dateToDateString(Date date) {
+        return dateToDateString(date, yyyy_MM_dd_HH_mm_ss_EN);
+    }
 
-		String str = yyyy + con + mm + con + dd;
-		return getDate(str, yyyy_MM_dd_EN);
-	}
+    /**
+     * ���Date���������������������yyyymmddhhmmss���������������
+     *
+     * @param date
+     * @return
+     */
+    public static String dateToDateFullString(Date date) {
+        if (null == date)
+            return null;
+        else
+            return dateToDateString(date, yyyyMMddHHmmss_EN);
+    }
 
-	/**
-	 * ���Date���������������������yyyy-mm-dd hh:mm:ss���������������
-	 * 
-	 * @param date
-	 * @return
-	 */
-	public static String dateToDateString(Date date) {
-		return dateToDateString(date, yyyy_MM_dd_HH_mm_ss_EN);
-	}
+    /**
+     * ���Date���������formatStr������������������
+     *
+     * @param date
+     * @param formatStr
+     * @return
+     */
+    public static String dateToDateString(Date date, String formatStr) {
+        DateFormat df = getDateFormat(formatStr);
+        return df.format(date);
+    }
 
-	/**
-	 * ���Date���������������������yyyymmddhhmmss���������������
-	 * 
-	 * @param date
-	 * @return
-	 */
-	public static String dateToDateFullString(Date date) {
-		if (null == date)
-			return null;
-		else
-			return dateToDateString(date, yyyyMMddHHmmss_EN);
-	}
+    /**
+     * ���String���������formatStr������������������
+     *
+     * @param date
+     * @param formatStr1
+     * @param formatStr2
+     * @return
+     */
+    public static String stringToDateString(String date, String formatStr1, String formatStr2) {
+        Date d = getDate(date, formatStr1);
+        DateFormat df = getDateFormat(formatStr2);
+        return df.format(d);
+    }
 
-	/**
-	 * ���Date���������formatStr������������������
-	 * 
-	 * @param date
-	 * @param formatStr
-	 * @return
-	 */
-	public static String dateToDateString(Date date, String formatStr) {
-		DateFormat df = getDateFormat(formatStr);
-		return df.format(date);
-	}
+    /**
+     * ������������������yyyy-MM-dd���������
+     *
+     * @return
+     */
+    public static String getCurDate() {
+        return dateToDateString(new Date(), yyyy_MM_dd_EN);
+    }
 
-	/**
-	 * ���String���������formatStr������������������
-	 * 
-	 * @param date
-	 * @param formatStr1
-	 * @param formatStr2
-	 * @return
-	 */
-	public static String stringToDateString(String date, String formatStr1, String formatStr2) {
-		Date d = getDate(date, formatStr1);
-		DateFormat df = getDateFormat(formatStr2);
-		return df.format(d);
-	}
+    /**
+     * ������������������
+     *
+     * @return
+     */
+    public static String getCurDate(String formatStr) {
+        return dateToDateString(new Date(), formatStr);
+    }
 
-	/**
-	 * ������������������yyyy-MM-dd���������
-	 * 
-	 * @return
-	 */
-	public static String getCurDate() {
-		return dateToDateString(new Date(), yyyy_MM_dd_EN);
-	}
+    /**
+     * ������������������yyyy���MM���dd������������
+     *
+     * @return
+     */
+    public static String getCurCNDate() {
+        return dateToDateString(new Date(), yyyy_MM_dd_CN);
+    }
 
-	/**
-	 * ������������������
-	 * 
-	 * @return
-	 */
-	public static String getCurDate(String formatStr) {
-		return dateToDateString(new Date(), formatStr);
-	}
+    /**
+     * ������������������������yyyy-MM-dd HH:mm:ss���������
+     *
+     * @return
+     */
+    public static String getCurDateTime() {
+        return dateToDateString(new Date(), yyyy_MM_dd_HH_mm_ss_EN);
+    }
 
-	/**
-	 * ������������������yyyy���MM���dd������������
-	 * 
-	 * @return
-	 */
-	public static String getCurCNDate() {
-		return dateToDateString(new Date(), yyyy_MM_dd_CN);
-	}
+    /**
+     * ������������������������yyyy���MM���dd���HH���mm���ss������������
+     *
+     * @return
+     */
+    public static String getCurZhCNDateTime() {
+        return dateToDateString(new Date(), yyyy_MM_dd_HH_mm_ss_CN);
+    }
 
-	/**
-	 * ������������������������yyyy-MM-dd HH:mm:ss���������
-	 * 
-	 * @return
-	 */
-	public static String getCurDateTime() {
-		return dateToDateString(new Date(), yyyy_MM_dd_HH_mm_ss_EN);
-	}
+    /**
+     * ������������"yyyy-MM-dd HH:mm:ss"������������������������������������������,time2-time1
+     *
+     * @param time1
+     * @param time2
+     * @return
+     */
+    public static long compareDateStr(String time1, String time2) {
+        Date d1 = getDate(time1);
+        Date d2 = getDate(time2);
+        return d2.getTime() - d1.getTime();
+    }
 
-	/**
-	 * ������������������������yyyy���MM���dd���HH���mm���ss������������
-	 * 
-	 * @return
-	 */
-	public static String getCurZhCNDateTime() {
-		return dateToDateString(new Date(), yyyy_MM_dd_HH_mm_ss_CN);
-	}
+    /**
+     * ���������������������������������������
+     *
+     * @param time1
+     * @param time2
+     * @param format
+     * @return
+     */
+    public static long compareDateStr(String time1, String time2, String format) {
+        Date d1 = getDate(time1, format);
+        Date d2 = getDate(time2, format);
+        return d2.getTime() - d1.getTime();
+    }
 
-	/**
-	 * ������������"yyyy-MM-dd HH:mm:ss"������������������������������������������,time2-time1
-	 * 
-	 * @param time1
-	 * @param time2
-	 * @return
-	 */
-	public static long compareDateStr(String time1, String time2) {
-		Date d1 = getDate(time1);
-		Date d2 = getDate(time2);
-		return d2.getTime() - d1.getTime();
-	}
+    /**
+     * ������������������������������������������������
+     *
+     * @param time
+     * @param format
+     * @return
+     */
+    public static long compareDateNow(String time, String format) {
+        Date date = getDate(time, format);
+        return new Date().getTime() - date.getTime();
+    }
 
-	/**
-	 * ���������������������������������������
-	 * 
-	 * @param time1
-	 * @param time2
-	 * @param format
-	 * @return
-	 */
-	public static long compareDateStr(String time1, String time2, String format) {
-		Date d1 = getDate(time1, format);
-		Date d2 = getDate(time2, format);
-		return d2.getTime() - d1.getTime();
-	}
+    /**
+     * ������������"yyyy-MM-dd HH:mm:ss"������������������������������������������,time2-time1
+     *
+     * @param time1
+     * @param time2
+     * @return
+     */
+    public static long compareDateStr(Date time1, Date time2) {
+        return time2.getTime() - time1.getTime();
+    }
 
-	/**
-	 * ������������������������������������������������
-	 * 
-	 * @param time
-	 * @param format
-	 * @return
-	 */
-	public static long compareDateNow(String time, String format) {
-		Date date = getDate(time, format);
-		return new Date().getTime() - date.getTime();
-	}
+    /**
+     * nows������������date������ ���true
+     *
+     * @param nows
+     * @param date
+     * @return
+     */
+    public static boolean isTimeBefor(Date nows, Date date) {
+        long hous = nows.getTime() - date.getTime();
+        if (hous > 0) {
+            return true;
+        } else {
+            return false;
+        }
+    }
 
-	/**
-	 * ������������"yyyy-MM-dd HH:mm:ss"������������������������������������������,time2-time1
-	 * 
-	 * @param time1
-	 * @param time2
-	 * @return
-	 */
-	public static long compareDateStr(Date time1, Date time2) {
-		return time2.getTime() - time1.getTime();
-	}
+    /**
+     * ������������������������������������������������������
+     *
+     * @param hours
+     * @return
+     */
+    public static long getMicroSec(BigDecimal hours) {
+        BigDecimal bd;
+        bd = hours.multiply(new BigDecimal(3600 * 1000));
+        return bd.longValue();
+    }
 
-	/**
-	 * nows������������date������ ���true
-	 * 
-	 * @param nows
-	 * @param date
-	 * @return
-	 */
-	public static boolean isTimeBefor(Date nows, Date date) {
-		long hous = nows.getTime() - date.getTime();
-		if (hous > 0) {
-			return true;
-		} else {
-			return false;
-		}
-	}
+    /**
+     * ������������������years���������������(formatStr)������������
+     *
+     * @param years
+     * @param formatStr
+     * @return
+     */
+    public static String getDateStringOfYear(int years, String formatStr) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(new Date());
+        now.add(Calendar.YEAR, years);
+        return dateToDateString(now.getTime(), formatStr);
+    }
 
-	/**
-	 * ������������������������������������������������������
-	 * 
-	 * @param hours
-	 * @return
-	 */
-	public static long getMicroSec(BigDecimal hours) {
-		BigDecimal bd;
-		bd = hours.multiply(new BigDecimal(3600 * 1000));
-		return bd.longValue();
-	}
+    /**
+     * ������������������mon���������������(formatStr)������������
+     *
+     * @param months
+     * @param formatStr
+     * @return
+     */
+    public static String getDateStringOfMon(int months, String formatStr) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(new Date());
+        now.add(Calendar.MONTH, months);
+        return dateToDateString(now.getTime(), formatStr);
+    }
 
-	/**
-	 * ������������������years���������������(formatStr)������������
-	 * 
-	 * @param years
-	 * @param formatStr
-	 * @return
-	 */
-	public static String getDateStringOfYear(int years, String formatStr) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(new Date());
-		now.add(Calendar.YEAR, years);
-		return dateToDateString(now.getTime(), formatStr);
-	}
+    /**
+     * ������������������days���������������(formatStr)������������
+     *
+     * @param days
+     * @param formatStr
+     * @return
+     */
+    public static String getDateStringOfDay(int days, String formatStr) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(new Date());
+        now.add(Calendar.DATE, days);
+        return dateToDateString(now.getTime(), formatStr);
+    }
 
-	/**
-	 * ������������������mon���������������(formatStr)������������
-	 * 
-	 * @param months
-	 * @param formatStr
-	 * @return
-	 */
-	public static String getDateStringOfMon(int months, String formatStr) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(new Date());
-		now.add(Calendar.MONTH, months);
-		return dateToDateString(now.getTime(), formatStr);
-	}
+    /**
+     * ���������������������������
+     *
+     * @param date
+     * @return
+     */
+    public static int theDateIsToday(String date, String format) {
+        String theDate = stringToDateString(date, format, yyyyMMdd_EN);
+        String today = getDateStringOfDay(0, yyyyMMdd_EN);
+        if (theDate.equals(today)) {
+            return 1;
+        } else {
+            return 0;
+        }
+    }
 
-	/**
-	 * ������������������days���������������(formatStr)������������
-	 * 
-	 * @param days
-	 * @param formatStr
-	 * @return
-	 */
-	public static String getDateStringOfDay(int days, String formatStr) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(new Date());
-		now.add(Calendar.DATE, days);
-		return dateToDateString(now.getTime(), formatStr);
-	}
+    /**
+     * ������������������hours������������������(formatStr)������������
+     *
+     * @param hours
+     * @param formatStr
+     * @return
+     */
+    public static String getDateStringOfHour(int hours, String formatStr) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(new Date());
+        now.add(Calendar.HOUR_OF_DAY, hours);
+        return dateToDateString(now.getTime(), formatStr);
+    }
 
-	/**
-	 * ���������������������������
-	 * 
-	 * @param date
-	 * @return
-	 */
-	public static int theDateIsToday(String date, String format) {
-		String theDate = stringToDateString(date, format, yyyyMMdd_EN);
-		String today = getDateStringOfDay(0, yyyyMMdd_EN);
-		if (theDate.equals(today)) {
-			return 1;
-		} else {
-			return 0;
-		}
-	}
+    /**
+     * ������������������mon���������������(formatStr)������������
+     *
+     * @param date
+     * @param mon
+     * @param formatStr
+     * @return
+     */
+    public static String getDateOfMon(String date, int mon, String formatStr) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(getDate(date, formatStr));
+        now.add(Calendar.MONTH, mon);
+        return dateToDateString(now.getTime(), formatStr);
+    }
 
-	/**
-	 * ������������������hours������������������(formatStr)������������
-	 * 
-	 * @param hours
-	 * @param formatStr
-	 * @return
-	 */
-	public static String getDateStringOfHour(int hours, String formatStr) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(new Date());
-		now.add(Calendar.HOUR_OF_DAY, hours);
-		return dateToDateString(now.getTime(), formatStr);
-	}
+    /**
+     * ������������������day���������������(formatStr)������������
+     *
+     * @param date
+     * @param day
+     * @param formatStr
+     * @return
+     */
+    public static String getDateOfDay(String date, int day, String formatStr) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(getDate(date, formatStr));
+        now.add(Calendar.DATE, day);
+        return dateToDateString(now.getTime(), formatStr);
+    }
 
-	/**
-	 * ������������������mon���������������(formatStr)������������
-	 * 
-	 * @param date
-	 * @param mon
-	 * @param formatStr
-	 * @return
-	 */
-	public static String getDateOfMon(String date, int mon, String formatStr) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(getDate(date, formatStr));
-		now.add(Calendar.MONTH, mon);
-		return dateToDateString(now.getTime(), formatStr);
-	}
+    /**
+    * @Description: ������������������day���������������
+            * @Param: [date, day]
+            * @return: java.util.Date
+            * @Author: ���������
+            * @Date: 2021/3/30
+            */
+    public static Date getDateOfDay(Date date, int day) {
+        if(date==null)
+            return null;
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(date);
+        now.add(Calendar.DAY_OF_MONTH, day);
+        return now.getTime();
+    }
 
-	/**
-	 * ������������������day���������������(formatStr)������������
-	 * 
-	 * @param date
-	 * @param day
-	 * @param formatStr
-	 * @return
-	 */
-	public static String getDateOfDay(String date, int day, String formatStr) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(getDate(date, formatStr));
-		now.add(Calendar.DATE, day);
-		return dateToDateString(now.getTime(), formatStr);
-	}
 
-	public static Date getDate(Date beginDate, int ds) {
-		if (ds == 0)
-			return new Date();
-		try {
-			SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
-			Calendar date = Calendar.getInstance();
-			date.setTime(beginDate);
-			date.set(Calendar.DATE, date.get(Calendar.DATE) - ds);
-			Date endDate = dft.parse(dft.format(date.getTime()));
-			return endDate;
-		} catch (ParseException e) {
-			e.printStackTrace();
-		}
-		return new Date();
-	}
+    public static Date getDate(Date beginDate, int ds) {
+        if (ds == 0)
+            return new Date();
+        try {
+            SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
+            Calendar date = Calendar.getInstance();
+            date.setTime(beginDate);
+            date.set(Calendar.DATE, date.get(Calendar.DATE) - ds);
+            Date endDate = dft.parse(dft.format(date.getTime()));
+            return endDate;
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return new Date();
+    }
 
-	public static String getAfterNDays(Date date, int n, String formateStr) {
-		SimpleDateFormat sdf = new SimpleDateFormat(formateStr);
-		Calendar calendar = new GregorianCalendar();
-		calendar.setTime(date);
-		calendar.add(Calendar.DATE, n);
-		return sdf.format(calendar.getTime());
-	}
+    public static String getAfterNDays(Date date, int n, String formateStr) {
+        SimpleDateFormat sdf = new SimpleDateFormat(formateStr);
+        Calendar calendar = new GregorianCalendar();
+        calendar.setTime(date);
+        calendar.add(Calendar.DATE, n);
+        return sdf.format(calendar.getTime());
+    }
 
-	/**
-	 * ������������������mins������������������(formatStr)������������
-	 * 
-	 * @param date
-	 * @param mins
-	 * @param formatStr
-	 * @return
-	 */
-	public static String getDateOfMin(String date, int mins, String formatStr) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(getDate(date, formatStr));
-		now.add(Calendar.SECOND, mins * 60);
-		return dateToDateString(now.getTime(), formatStr);
-	}
+    /**
+     * ������������������mins������������������(formatStr)������������
+     *
+     * @param date
+     * @param mins
+     * @param formatStr
+     * @return
+     */
+    public static String getDateOfMin(String date, int mins, String formatStr) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(getDate(date, formatStr));
+        now.add(Calendar.SECOND, mins * 60);
+        return dateToDateString(now.getTime(), formatStr);
+    }
 
-	/**
-	 * ������������������mins������������������������
-	 * 
-	 * @param date
-	 * @param mins
-	 * @return
-	 */
-	public static Date getDateOfMin(Date date, int mins) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(date);
-		now.add(Calendar.SECOND, mins * 60);
-		return now.getTime();
-	}
+    /**
+     * ������������������mins������������������������
+     *
+     * @param date
+     * @param mins
+     * @return
+     */
+    public static Date getDateOfMin(Date date, int mins) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(date);
+        now.add(Calendar.SECOND, mins * 60);
+        return now.getTime();
+    }
 
-	/**
-	 * ������������������mins������������������(formatStr)������������
-	 * 
-	 * @param mins
-	 * @param formatStr
-	 * @return
-	 */
-	public static String getDateStringOfMin(int mins, String formatStr) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(new Date());
-		now.add(Calendar.MINUTE, mins);
-		return dateToDateString(now.getTime(), formatStr);
-	}
+    /**
+     * ������������������mins������������������(formatStr)������������
+     *
+     * @param mins
+     * @param formatStr
+     * @return
+     */
+    public static String getDateStringOfMin(int mins, String formatStr) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(new Date());
+        now.add(Calendar.MINUTE, mins);
+        return dateToDateString(now.getTime(), formatStr);
+    }
 
-	/**
-	 * ������������������mins������������������������
-	 * 
-	 * @param mins
-	 * @return
-	 */
-	public static Date getDateOfMin(int mins) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(new Date());
-		now.add(Calendar.MINUTE, mins);
-		return now.getTime();
-	}
+    /**
+     * ������������������mins������������������������
+     *
+     * @param mins
+     * @return
+     */
+    public static Date getDateOfMin(int mins) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(new Date());
+        now.add(Calendar.MINUTE, mins);
+        return now.getTime();
+    }
 
-	/**
-	 * ������������������sec���������������(formatStr)������������
-	 * 
-	 * @param sec
-	 * @param formatStr
-	 * @return
-	 */
-	public static String getDateStringOfSec(int sec, String formatStr) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(new Date());
-		now.add(Calendar.SECOND, sec);
-		return dateToDateString(now.getTime(), formatStr);
-	}
+    /**
+     * ������������������sec���������������(formatStr)������������
+     *
+     * @param sec
+     * @param formatStr
+     * @return
+     */
+    public static String getDateStringOfSec(int sec, String formatStr) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(new Date());
+        now.add(Calendar.SECOND, sec);
+        return dateToDateString(now.getTime(), formatStr);
+    }
 
-	/**
-	 * ���������������������������������
-	 * 
-	 * @return
-	 */
-	public static int getMonthDay(Date date) {
-		Calendar c = Calendar.getInstance();
-		c.setTime(date);
-		return c.getActualMaximum(Calendar.DAY_OF_MONTH);
+    /**
+     * ���������������������������������
+     *
+     * @return
+     */
+    public static int getMonthDay(Date date) {
+        Calendar c = Calendar.getInstance();
+        c.setTime(date);
+        return c.getActualMaximum(Calendar.DAY_OF_MONTH);
 
-	}
+    }
 
-	/**
-	 * ���������������������������������
-	 * 
-	 * @return
-	 */
-	public static int getCurentMonthDay() {
-		Date date = Calendar.getInstance().getTime();
-		return getMonthDay(date);
-	}
+    /**
+     * ���������������������������������
+     *
+     * @return
+     */
+    public static int getCurentMonthDay() {
+        Date date = Calendar.getInstance().getTime();
+        return getMonthDay(date);
+    }
 
-	/**
-	 * ��������������������������������� yyyy-mm-dd
-	 * 
-	 * @return
-	 */
-	public static int getMonthDay(String date) {
-		Date strDate = getDate(date, yyyy_MM_dd_EN);
-		return getMonthDay(strDate);
-	}
+    /**
+     * ��������������������������������� yyyy-mm-dd
+     *
+     * @return
+     */
+    public static int getMonthDay(String date) {
+        Date strDate = getDate(date, yyyy_MM_dd_EN);
+        return getMonthDay(strDate);
+    }
 
-	/**
-	 * ������19xx,20xx������������
-	 * 
-	 * @param d
-	 * @return
-	 */
-	public static int getYear(Date d) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(d);
-		return now.get(Calendar.YEAR);
-	}
+    /**
+     * ������19xx,20xx������������
+     *
+     * @param d
+     * @return
+     */
+    public static int getYear(Date d) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(d);
+        return now.get(Calendar.YEAR);
+    }
 
-	/**
-	 * ���������������1-12���
-	 * 
-	 * @param d
-	 * @return
-	 */
-	public static int getMonth(Date d) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(d);
-		return now.get(Calendar.MONTH) + 1;
-	}
+    /**
+     * ���������������1-12���
+     *
+     * @param d
+     * @return
+     */
+    public static int getMonth(Date d) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(d);
+        return now.get(Calendar.MONTH) + 1;
+    }
 
-	/**
-	 * ������xxxx-xx-xx������
-	 * 
-	 * @param d
-	 * @return
-	 */
-	public static int getDay(Date d) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(d);
-		return now.get(Calendar.DAY_OF_MONTH);
-	}
+    /**
+     * ������xxxx-xx-xx������
+     *
+     * @param d
+     * @return
+     */
+    public static int getDay(Date d) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(d);
+        return now.get(Calendar.DAY_OF_MONTH);
+    }
 
-	/**
-	 * ������Date������������(24������)
-	 * 
-	 * @param d
-	 * @return
-	 */
-	public static int getHour(Date d) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(d);
-		return now.get(Calendar.HOUR_OF_DAY);
-	}
+    /**
+     * ������Date������������(24������)
+     *
+     * @param d
+     * @return
+     */
+    public static int getHour(Date d) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(d);
+        return now.get(Calendar.HOUR_OF_DAY);
+    }
 
-	/**
-	 * ������Date������������
-	 * 
-	 * @param d
-	 * @return
-	 */
-	public static int getMin(Date d) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(d);
-		return now.get(Calendar.MINUTE);
-	}
+    /**
+     * ������Date������������
+     *
+     * @param d
+     * @return
+     */
+    public static int getMin(Date d) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(d);
+        return now.get(Calendar.MINUTE);
+    }
+
+    /**
+     * ������Date���������
+     *
+     * @param d
+     * @return
+     */
+    public static int getSecond(Date d) {
+        Calendar now = Calendar.getInstance(TimeZone.getDefault());
+        now.setTime(d);
+        return now.get(Calendar.SECOND);
+    }
+
+    /**
+     * ������������������
+     *
+     * @return yyyy-MM-dd
+     */
+    public static String getMondayOfThisWeek() {
+        Calendar c = Calendar.getInstance();
+        int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
+        if (day_of_week == 0)
+            day_of_week = 7;
+        c.add(Calendar.DATE, -day_of_week + 1);
+        return dateToDateString(c.getTime(), yyyy_MM_dd_EN);
+    }
+
+    /**
+     * ������������������
+     *
+     * @return yyyy-MM-dd
+     */
+    public static String getSundayOfThisWeek() {
+        Calendar c = Calendar.getInstance();
+        int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
+        if (day_of_week == 0)
+            day_of_week = 7;
+        c.add(Calendar.DATE, -day_of_week + 7);
+        return dateToDateString(c.getTime());
+    }
+
+    /**
+     * ���������������(*)
+     *
+     * @return yyyy-MM-dd
+     */
+    public static String getDayOfThisWeek(int num) {
+        Calendar c = Calendar.getInstance();
+        int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
+        if (day_of_week == 0)
+            day_of_week = 7;
+        c.add(Calendar.DATE, -day_of_week + num);
+        return dateToDateString(c.getTime(), yyyy_MM_dd_EN);
+    }
+
+    /**
+     * ���������������������
+     *
+     * @return yyyy-MM-dd
+     */
+    public static String getDayOfThisMoon(String num) {
+        String date = dateToDateString(new Date(), yyyy_MM_EN);
+        date = date + "-" + num;
+        return date;
+    }
 
-	/**
-	 * ������Date���������
-	 * 
-	 * @param d
-	 * @return
-	 */
-	public static int getSecond(Date d) {
-		Calendar now = Calendar.getInstance(TimeZone.getDefault());
-		now.setTime(d);
-		return now.get(Calendar.SECOND);
-	}
+    /**
+     * ���������������������������������
+     *
+     * @param beginDate
+     * @param endDate
+     * @return
+     */
+    public static long getQuotByDays(String beginDate, String endDate) {
+        long quot = 0;
+        DateFormat df = getDateFormat(yyyy_MM_dd_EN);
+        try {
+            Date d1 = df.parse(beginDate);
+            Date d2 = df.parse(endDate);
+            quot = d2.getTime() - d1.getTime();
+            quot = quot / 1000 / 60 / 60 / 24;
+        } catch (ParseException e) {
+            throw new RuntimeException(e);
+        }
+        return quot;
+    }
 
-	/**
-	 * ������������������
-	 * 
-	 * @return yyyy-MM-dd
-	 */
-	public static String getMondayOfThisWeek() {
-		Calendar c = Calendar.getInstance();
-		int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
-		if (day_of_week == 0)
-			day_of_week = 7;
-		c.add(Calendar.DATE, -day_of_week + 1);
-		return dateToDateString(c.getTime(), yyyy_MM_dd_EN);
-	}
+    /**
+     * ���������������������������������������������������
+     *
+     * @param date
+     * @param days
+     * @return
+     */
+    public static String getDateAddDay(String date, int days, String format) {
+        DateFormat df = getDateFormat(format);
+        try {
+            Calendar cal = Calendar.getInstance();
+            cal.setTime(df.parse(date));
+            cal.set(Calendar.DAY_OF_YEAR, cal.get(Calendar.DAY_OF_YEAR) + days);
 
-	/**
-	 * ������������������
-	 * 
-	 * @return yyyy-MM-dd
-	 */
-	public static String getSundayOfThisWeek() {
-		Calendar c = Calendar.getInstance();
-		int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
-		if (day_of_week == 0)
-			day_of_week = 7;
-		c.add(Calendar.DATE, -day_of_week + 7);
-		return dateToDateString(c.getTime());
-	}
+            date = df.format(cal.getTime());
+        } catch (ParseException e) {
+            throw new RuntimeException(e);
+        }
+        return date;
+    }
 
-	/**
-	 * ���������������(*)
-	 * 
-	 * @return yyyy-MM-dd
-	 */
-	public static String getDayOfThisWeek(int num) {
-		Calendar c = Calendar.getInstance();
-		int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
-		if (day_of_week == 0)
-			day_of_week = 7;
-		c.add(Calendar.DATE, -day_of_week + num);
-		return dateToDateString(c.getTime(), yyyy_MM_dd_EN);
-	}
+    /**
+     * ������������������������������
+     *
+     * @return
+     */
+    public static Date getLastDayOfCurrMonth() {
+        Calendar cal = Calendar.getInstance();
+        cal.add(Calendar.MONTH, 1);
+        cal.set(Calendar.DAY_OF_MONTH, 0);
 
-	/**
-	 * ���������������������
-	 * 
-	 * @return yyyy-MM-dd
-	 */
-	public static String getDayOfThisMoon(String num) {
-		String date = dateToDateString(new Date(), yyyy_MM_EN);
-		date = date + "-" + num;
-		return date;
-	}
+        return cal.getTime();
+    }
 
-	/**
-	 * ���������������������������������
-	 * 
-	 * @param beginDate
-	 * @param endDate
-	 * @return
-	 */
-	public static long getQuotByDays(String beginDate, String endDate) {
-		long quot = 0;
-		DateFormat df = getDateFormat(yyyy_MM_dd_EN);
-		try {
-			Date d1 = df.parse(beginDate);
-			Date d2 = df.parse(endDate);
-			quot = d2.getTime() - d1.getTime();
-			quot = quot / 1000 / 60 / 60 / 24;
-		} catch (ParseException e) {
-			throw new RuntimeException(e);
-		}
-		return quot;
-	}
+    /**
+     * ���������������������������������������������������
+     *
+     * @param date
+     * @param m
+     * @return
+     */
+    public static String getDateAddMonth(String date, int m) {
+        DateFormat df = getDateFormat(yyyyMM_EN);
+        try {
+            Calendar cal = Calendar.getInstance();
+            cal.setTime(df.parse(date));
+            cal.add(Calendar.MONTH, m);
+            date = df.format(cal.getTime());
+        } catch (ParseException e) {
+            throw new RuntimeException(e);
+        }
+        return date;
+    }
 
-	/**
-	 * ���������������������������������������������������
-	 * 
-	 * @param date
-	 * @param days
-	 * @return
-	 */
-	public static String getDateAddDay(String date, int days, String format) {
-		DateFormat df = getDateFormat(format);
-		try {
-			Calendar cal = Calendar.getInstance();
-			cal.setTime(df.parse(date));
-			cal.set(Calendar.DAY_OF_YEAR, cal.get(Calendar.DAY_OF_YEAR) + days);
+    /**
+     * ������������������������������
+     *
+     * @param year
+     * @param month
+     * @return
+     */
+    public static String getFirstDayOfMonth(int year, int month) {
+        Calendar cal = Calendar.getInstance();
+        // ������������
+        cal.set(Calendar.YEAR, year);
+        // ������������
+        cal.set(Calendar.MONTH, month - 1);
+        // ������������������������
+        int lastDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+        // ������������������������������������
+        cal.set(Calendar.DAY_OF_MONTH, lastDay);
+        // ���������������
+        DateFormat df = getDateFormat(yyyy_MM_dd_EN);
+        return df.format(cal.getTime());
+    }
 
-			date = df.format(cal.getTime());
-		} catch (ParseException e) {
-			throw new RuntimeException(e);
-		}
-		return date;
-	}
+    /**
+     * ������������������������������
+     *
+     * @param year
+     * @param month
+     * @return
+     */
+    public static String getLastDayOfMonth(int year, int month) {
+        Calendar cal = Calendar.getInstance();
+        // ������������
+        cal.set(Calendar.YEAR, year);
+        // ������������
+        cal.set(Calendar.MONTH, month - 1);
+        // ������������������������
+        int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+        // ������������������������������������
+        cal.set(Calendar.DAY_OF_MONTH, lastDay);
+        // ���������������
+        DateFormat df = getDateFormat(yyyy_MM_dd_EN);
+        return df.format(cal.getTime());
+    }
 
-	/**
-	 * ������������������������������
-	 * 
-	 * @return
-	 */
-	public static Date getLastDayOfCurrMonth() {
-		Calendar cal = Calendar.getInstance();
-		cal.add(Calendar.MONTH, 1);
-		cal.set(Calendar.DAY_OF_MONTH, 0);
+    /**
+     * ������������������
+     *
+     * @param date
+     * @return
+     * @throws ParseException
+     */
+    public static String getYesterday(Date date) throws ParseException {
+        DateFormat df = getDateFormat(yyyy_MM_dd_EN);
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(df.parse(df.format(date)));
+        calendar.add(Calendar.DAY_OF_MONTH, -1);
+        return df.format(calendar.getTime());
+    }
 
-		return cal.getTime();
-	}
 
-	/**
-	 * ���������������������������������������������������
-	 * 
-	 * @param date
-	 * @param m
-	 * @return
-	 */
-	public static String getDateAddMonth(String date, int m) {
-		DateFormat df = getDateFormat(yyyyMM_EN);
-		try {
-			Calendar cal = Calendar.getInstance();
-			cal.setTime(df.parse(date));
-			cal.add(Calendar.MONTH, m);
-			date = df.format(cal.getTime());
-		} catch (ParseException e) {
-			throw new RuntimeException(e);
-		}
-		return date;
-	}
+    /**
+     * 10���������������������
+     *
+     * @param dateInt
+     * @param format
+     * @return
+     */
+    public static String getIntToStr(String dateInt, String format) {
+        DateFormat df = getDateFormat(format);
+        long times = Integer.parseInt(dateInt) * 1000L;
+        Date date = new Date(times);
+        return df.format(date);
+    }
 
-	/**
-	 * ������������������������������
-	 * 
-	 * @param year
-	 * @param month
-	 * @return
-	 */
-	public static String getFirstDayOfMonth(int year, int month) {
-		Calendar cal = Calendar.getInstance();
-		// ������������
-		cal.set(Calendar.YEAR, year);
-		// ������������
-		cal.set(Calendar.MONTH, month - 1);
-		// ������������������������
-		int lastDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
-		// ������������������������������������
-		cal.set(Calendar.DAY_OF_MONTH, lastDay);
-		// ���������������
-		DateFormat df = getDateFormat(yyyy_MM_dd_EN);
-		return df.format(cal.getTime());
-	}
+    /**
+     * ������ 10������������
+     *
+     * @return
+     */
+    public static Integer getDateInt() {
+        return (int) (System.currentTimeMillis() / 1000);
+    }
 
-	/**
-	 * ������������������������������
-	 * 
-	 * @param year
-	 * @param month
-	 * @return
-	 */
-	public static String getLastDayOfMonth(int year, int month) {
-		Calendar cal = Calendar.getInstance();
-		// ������������
-		cal.set(Calendar.YEAR, year);
-		// ������������
-		cal.set(Calendar.MONTH, month - 1);
-		// ������������������������
-		int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
-		// ������������������������������������
-		cal.set(Calendar.DAY_OF_MONTH, lastDay);
-		// ���������������
-		DateFormat df = getDateFormat(yyyy_MM_dd_EN);
-		return df.format(cal.getTime());
-	}
+    /**
+     * 13���������������������
+     *
+     * @param time
+     * @param format
+     * @return
+     */
+    public static String getLongToStr(long time, String format) {
+        Date date = new Date(time);
+        return dateToDateString(date, format);
+    }
 
-	/**
-	 * ������������������
-	 * 
-	 * @param date
-	 * @return
-	 * @throws ParseException
-	 */
-	public static String getYesterday(Date date) throws ParseException {
-		DateFormat df = getDateFormat(yyyy_MM_dd_EN);
-		Calendar calendar = Calendar.getInstance();
-		calendar.setTime(df.parse(df.format(date)));
-		calendar.add(Calendar.DAY_OF_MONTH, -1);
-		return df.format(calendar.getTime());
-	}
+    /**
+     * ������������������������������������
+     *
+     * @param start
+     * @param end
+     * @return
+     */
+    public static int getIntervalSec(int start, int end) {
+        return (end - start) * 60 * 60;
+    }
 
+    /**
+     * ���������������������������������
+     *
+     * @param time
+     * @return
+     */
+    public static String getMillsStr(long time) {
+        String timeStr = String.valueOf(time);
+        String suffix = timeStr.substring(0, timeStr.length() - 3);
+        String prefix = timeStr.substring(timeStr.length() - 3, timeStr.length());
+        return suffix + "." + prefix;
+    }
 
-	/**
-	 * 10���������������������
-	 * 
-	 * @param dateInt
-	 * @param format
-	 * @return
-	 */
-	public static String getIntToStr(String dateInt, String format) {
-		DateFormat df = getDateFormat(format);
-		long times = Integer.parseInt(dateInt) * 1000L;
-		Date date = new Date(times);
-		return df.format(date);
-	}
+    /**
+     * ���������������������������������������������
+     *
+     * @param timeStr
+     * @param formatStr
+     * @return
+     */
+    public static String longToString(String timeStr, String formatStr) {
+        long times = Long.parseLong(timeStr.replace(".", ""));
+        Date date = new Date(times);
+        return dateToDateString(date, formatStr);
+    }
 
-	/**
-	 * ������ 10������������
-	 * 
-	 * @return
-	 */
-	public static Integer getDateInt() {
-		return (int) (System.currentTimeMillis() / 1000);
-	}
+    /**
+     * ������������������������
+     *
+     * @return
+     */
+    public static Long getTodayTime() {
+        Calendar todayStart = Calendar.getInstance();
+        todayStart.set(Calendar.HOUR_OF_DAY, 0);
+        todayStart.set(Calendar.MINUTE, 0);
+        todayStart.set(Calendar.SECOND, 0);
+        todayStart.set(Calendar.MILLISECOND, 0);
+        return todayStart.getTime().getTime();
+    }
 
-	/**
-	 * 13���������������������
-	 * 
-	 * @param time
-	 * @param format
-	 * @return
-	 */
-	public static String getLongToStr(long time, String format) {
-		Date date = new Date(time);
-		return dateToDateString(date, format);
-	}
+    public static Integer getTodayInt() {
+        return (int) (getTodayTime() / 1000);
+    }
 
-	/**
-	 * ������������������������������������
-	 * 
-	 * @param start
-	 * @param end
-	 * @return
-	 */
-	public static int getIntervalSec(int start, int end) {
-		return (end - start) * 60 * 60;
-	}
+    /**
+     * ������������������������
+     *
+     * @return
+     */
+    public static Long getEndTime() {
+        Calendar todayEnd = Calendar.getInstance();
+        todayEnd.set(Calendar.HOUR, 23);
+        todayEnd.set(Calendar.MINUTE, 59);
+        todayEnd.set(Calendar.SECOND, 59);
+        todayEnd.set(Calendar.MILLISECOND, 999);
+        return todayEnd.getTime().getTime();
+    }
 
-	/**
-	 * ���������������������������������
-	 * 
-	 * @param time
-	 * @return
-	 */
-	public static String getMillsStr(long time) {
-		String timeStr = String.valueOf(time);
-		String suffix = timeStr.substring(0, timeStr.length() - 3);
-		String prefix = timeStr.substring(timeStr.length() - 3, timeStr.length());
-		return suffix + "." + prefix;
-	}
+    public static Integer getTomorrowInt() {
+        return (int) (getTomorrowTime() / 1000);
+    }
 
-	/**
-	 * ���������������������������������������������
-	 * 
-	 * @param timeStr
-	 * @param formatStr
-	 * @return
-	 */
-	public static String longToString(String timeStr, String formatStr) {
-		long times = Long.parseLong(timeStr.replace(".", ""));
-		Date date = new Date(times);
-		return dateToDateString(date, formatStr);
-	}
+    /**
+     * ���������������������������
+     *
+     * @return
+     */
+    public static Long getTomorrowTime() {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(new Date());
+        cal.set(Calendar.HOUR_OF_DAY, 0);
+        cal.set(Calendar.MINUTE, 0);
+        cal.set(Calendar.SECOND, 0);
+        cal.set(Calendar.MILLISECOND, 0);
+        cal.add(Calendar.DAY_OF_MONTH, 1);
+        return cal.getTime().getTime();
+    }
 
-	/**
-	 * ������������������������
-	 * 
-	 * @return
-	 */
-	public static Long getTodayTime() {
-		Calendar todayStart = Calendar.getInstance();
-		todayStart.set(Calendar.HOUR_OF_DAY, 0);
-		todayStart.set(Calendar.MINUTE, 0);
-		todayStart.set(Calendar.SECOND, 0);
-		todayStart.set(Calendar.MILLISECOND, 0);
-		return todayStart.getTime().getTime();
-	}
+    /**
+     * ���������������������������������
+     *
+     * @param hour
+     * @return
+     */
+    public static Long getPointHourTime(int hour) {
+        Calendar todayStart = Calendar.getInstance();
+        todayStart.set(Calendar.HOUR_OF_DAY, hour);
+        todayStart.set(Calendar.MINUTE, 0);
+        todayStart.set(Calendar.SECOND, 0);
+        todayStart.set(Calendar.MILLISECOND, 0);
+        return todayStart.getTime().getTime();
+    }
 
-	public static Integer getTodayInt() {
-		return (int) (getTodayTime() / 1000);
-	}
+    /**
+     * ������������n���������h������
+     *
+     * @param days
+     * @param hour
+     * @return
+     */
+    public static Long getPointDateHourTime(int days, int hour) {
+        Calendar todayStart = Calendar.getInstance();
+        todayStart.add(Calendar.DATE, days);
+        todayStart.set(Calendar.HOUR_OF_DAY, hour);
+        todayStart.set(Calendar.MINUTE, 0);
+        todayStart.set(Calendar.SECOND, 0);
+        todayStart.set(Calendar.MILLISECOND, 0);
+        return todayStart.getTime().getTime();
+    }
 
-	/**
-	 * ������������������������
-	 * 
-	 * @return
-	 */
-	public static Long getEndTime() {
-		Calendar todayEnd = Calendar.getInstance();
-		todayEnd.set(Calendar.HOUR, 23);
-		todayEnd.set(Calendar.MINUTE, 59);
-		todayEnd.set(Calendar.SECOND, 59);
-		todayEnd.set(Calendar.MILLISECOND, 999);
-		return todayEnd.getTime().getTime();
-	}
+    /**
+     * ���������������������
+     *
+     * @param time
+     * @return
+     */
+    public static Integer hourTosec(String time) {
+        if ("null".equals(time) || StringUtils.isEmpty(time)) {
+            return null;
+        }
+        if (time.length() <= 5) {
+            time += ":00";
+        }
+        int index1 = time.indexOf(":");
+        int index2 = time.indexOf(":", index1 + 1);
+        int hh = Integer.parseInt(time.substring(0, index1));
+        int mi = Integer.parseInt(time.substring(index1 + 1, index2));
+        int ss = Integer.parseInt(time.substring(index2 + 1));
+        return hh * 60 * 60 + mi * 60 + ss;
+    }
 
-	public static Integer getTomorrowInt() {
-		return (int) (getTomorrowTime() / 1000);
-	}
+    /**
+     * ���������������������
+     *
+     * @param time
+     * @return
+     */
+    public static Integer minTosec(String time) {
+        if (time.length() <= 5) {
+            time += ":00";
+        }
+        int index1 = time.indexOf(":");
+        int index2 = time.indexOf(":", index1 + 1);
+        int mi = Integer.parseInt(time.substring(0, index1));
+        int ss = Integer.parseInt(time.substring(index1 + 1, index2));
+        return mi * 60 + ss;
+    }
 
-	/**
-	 * ���������������������������
-	 * 
-	 * @return
-	 */
-	public static Long getTomorrowTime() {
-		Calendar cal = Calendar.getInstance();
-		cal.setTime(new Date());
-		cal.set(Calendar.HOUR_OF_DAY, 0);
-		cal.set(Calendar.MINUTE, 0);
-		cal.set(Calendar.SECOND, 0);
-		cal.set(Calendar.MILLISECOND, 0);
-		cal.add(Calendar.DAY_OF_MONTH, 1);
-		return cal.getTime().getTime();
-	}
 
-	/**
-	 * ���������������������������������
-	 * 
-	 * @param hour
-	 * @return
-	 */
-	public static Long getPointHourTime(int hour) {
-		Calendar todayStart = Calendar.getInstance();
-		todayStart.set(Calendar.HOUR_OF_DAY, hour);
-		todayStart.set(Calendar.MINUTE, 0);
-		todayStart.set(Calendar.SECOND, 0);
-		todayStart.set(Calendar.MILLISECOND, 0);
-		return todayStart.getTime().getTime();
-	}
+    public static boolean isDate(String dateTimeStr, String formatStr) {
+        DateFormat df = getDateFormat(formatStr);
+        try {
+            df.parse(dateTimeStr);
+            return true;
+        } catch (Exception e) {
+            return false;
+        }
+    }
 
-	/**
-	 * ������������n���������h������
-	 * 
-	 * @param days
-	 * @param hour
-	 * @return
-	 */
-	public static Long getPointDateHourTime(int days, int hour) {
-		Calendar todayStart = Calendar.getInstance();
-		todayStart.add(Calendar.DATE, days);
-		todayStart.set(Calendar.HOUR_OF_DAY, hour);
-		todayStart.set(Calendar.MINUTE, 0);
-		todayStart.set(Calendar.SECOND, 0);
-		todayStart.set(Calendar.MILLISECOND, 0);
-		return todayStart.getTime().getTime();
-	}
+    /**
+     * ���������������������������������
+     *
+     * @param strDate      ������������ yyyy-MM-dd HH:mm:ss
+     * @param strDateBegin ������������ 00:00:00
+     * @param strDateEnd   ������������ 00:05:00
+     * @return
+     */
+    public static boolean isInDate(String strDate, String strDateBegin, String strDateEnd) {
+        // ���������������������������
+        int strDateH = Integer.parseInt(strDate.substring(11, 13));
+        int strDateM = Integer.parseInt(strDate.substring(14, 16));
+        int strDateS = Integer.parseInt(strDate.substring(17, 19));
+        // ���������������������������
+        int strDateBeginH = Integer.parseInt(strDateBegin.substring(0, 2));
+        int strDateBeginM = Integer.parseInt(strDateBegin.substring(3, 5));
+        int strDateBeginS = Integer.parseInt(strDateBegin.substring(6, 8));
+        // ���������������������������
+        int strDateEndH = Integer.parseInt(strDateEnd.substring(0, 2));
+        int strDateEndM = Integer.parseInt(strDateEnd.substring(3, 5));
+        int strDateEndS = Integer.parseInt(strDateEnd.substring(6, 8));
+        if ((strDateH >= strDateBeginH && strDateH <= strDateEndH)) {
+            // ������������������������������������������������������������������
+            if (strDateH > strDateBeginH && strDateH < strDateEndH) {
+                return true;
+                // ������������������������������������������������������������������������������������
+            } else if (strDateH == strDateBeginH && strDateM >= strDateBeginM && strDateM <= strDateEndM) {
+                return true;
+                // ������������������������������������������������������������������������������������������������������������������������
+            } else if (strDateH == strDateBeginH && strDateM == strDateBeginM && strDateS >= strDateBeginS
+                    && strDateS <= strDateEndS) {
+                return true;
+            }
+            // ���������������������������������������������������������������������������������������������������������������������������
+            else if (strDateH >= strDateBeginH && strDateH == strDateEndH && strDateM <= strDateEndM) {
+                return true;
+                // ������������������������������������������������������������������������������������������������������������������������������������������������������������
+            } else if (strDateH >= strDateBeginH && strDateH == strDateEndH && strDateM == strDateEndM
+                    && strDateS <= strDateEndS) {
+                return true;
+            } else {
+                return false;
+            }
+        } else {
+            return false;
+        }
+    }
 
-	/**
-	 * ���������������������
-	 * 
-	 * @param time
-	 * @return
-	 */
-	public static Integer hourTosec(String time) {
-		if ("null".equals(time) || StringUtils.isEmpty(time)) {
-			return null;
-		}
-		if (time.length() <= 5) {
-			time += ":00";
-		}
-		int index1 = time.indexOf(":");
-		int index2 = time.indexOf(":", index1 + 1);
-		int hh = Integer.parseInt(time.substring(0, index1));
-		int mi = Integer.parseInt(time.substring(index1 + 1, index2));
-		int ss = Integer.parseInt(time.substring(index2 + 1));
-		return hh * 60 * 60 + mi * 60 + ss;
-	}
+    /**
+     * ���������������������������������
+     *
+     * @param date         ������������ yyyy-MM-dd HH:mm:ss
+     * @param strDateBegin ������������ 00:00:00
+     * @param strDateEnd   ������������ 00:05:00
+     * @return
+     */
+    public static boolean isInDate(Date date, String strDateBegin, String strDateEnd) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String strDate = sdf.format(date);
+        // ���������������������������
+        int strDateH = Integer.parseInt(strDate.substring(11, 13));
+        int strDateM = Integer.parseInt(strDate.substring(14, 16));
+        int strDateS = Integer.parseInt(strDate.substring(17, 19));
+        // ���������������������������
+        int strDateBeginH = Integer.parseInt(strDateBegin.substring(0, 2));
+        int strDateBeginM = Integer.parseInt(strDateBegin.substring(3, 5));
+        int strDateBeginS = Integer.parseInt(strDateBegin.substring(6, 8));
+        // ���������������������������
+        int strDateEndH = Integer.parseInt(strDateEnd.substring(0, 2));
+        int strDateEndM = Integer.parseInt(strDateEnd.substring(3, 5));
+        int strDateEndS = Integer.parseInt(strDateEnd.substring(6, 8));
+        if ((strDateH >= strDateBeginH && strDateH <= strDateEndH)) {
+            // ������������������������������������������������������������������
+            if (strDateH > strDateBeginH && strDateH < strDateEndH) {
+                return true;
+                // ������������������������������������������������������������������������������������
+            } else if (strDateH == strDateBeginH && strDateM >= strDateBeginM && strDateM <= strDateEndM) {
+                return true;
+                // ������������������������������������������������������������������������������������������������������������������������
+            } else if (strDateH == strDateBeginH && strDateM == strDateBeginM && strDateS >= strDateBeginS
+                    && strDateS <= strDateEndS) {
+                return true;
+            }
+            // ���������������������������������������������������������������������������������������������������������������������������
+            else if (strDateH >= strDateBeginH && strDateH == strDateEndH && strDateM <= strDateEndM) {
+                return true;
+                // ������������������������������������������������������������������������������������������������������������������������������������������������������������
+            } else if (strDateH >= strDateBeginH && strDateH == strDateEndH && strDateM == strDateEndM
+                    && strDateS <= strDateEndS) {
+                return true;
+            } else {
+                return false;
+            }
+        } else {
+            return false;
+        }
+    }
 
-	/**
-	 * ���������������������
-	 * 
-	 * @param time
-	 * @return
-	 */
-	public static Integer minTosec(String time) {
-		if (time.length() <= 5) {
-			time += ":00";
-		}
-		int index1 = time.indexOf(":");
-		int index2 = time.indexOf(":", index1 + 1);
-		int mi = Integer.parseInt(time.substring(0, index1));
-		int ss = Integer.parseInt(time.substring(index1 + 1, index2));
-		return mi * 60 + ss;
-	}
+    public static boolean isInTime(int time, int begin, int end) {
+        if (time >= begin && time < end) {
+            return true;
+        }
+        return false;
+    }
 
+    public static int getMinutest(String begin, String format) {
+        String nowMinutes = getCurDate("HH:mm");
+        long time = compareDateStr("09:00", nowMinutes, "HH:mm");
+        return (int) time;
+    }
 
+    /**
+     * <p>
+     * Title: addDays
+     * </p>
+     * <p>
+     * Description: ������������
+     * </p>
+     *
+     * @param days
+     * @return
+     */
+    public static Date addDays(Date date, int days) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.add(Calendar.DATE, days);
+        return calendar.getTime();
+    }
 
-	public static boolean isDate(String dateTimeStr, String formatStr) {
-		DateFormat df = getDateFormat(formatStr);
-		try {
-			df.parse(dateTimeStr);
-			return true;
-		} catch (Exception e) {
-			return false;
-		}
-	}
+    /**
+     * <p>
+     * Title: addMonths
+     * </p>
+     * <p>
+     * Description: ������������
+     * </p>
+     *
+     * @param date
+     * @param months
+     * @return
+     */
+    public static Date addMonths(Date date, int months) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.add(Calendar.MONTH, months);
+        return calendar.getTime();
+    }
 
-	/**
-	 * ���������������������������������
-	 * 
-	 * @param strDate
-	 *            ������������ yyyy-MM-dd HH:mm:ss
-	 * @param strDateBegin
-	 *            ������������ 00:00:00
-	 * @param strDateEnd
-	 *            ������������ 00:05:00
-	 * @return
-	 */
-	public static boolean isInDate(String strDate, String strDateBegin, String strDateEnd) {
-		// ���������������������������
-		int strDateH = Integer.parseInt(strDate.substring(11, 13));
-		int strDateM = Integer.parseInt(strDate.substring(14, 16));
-		int strDateS = Integer.parseInt(strDate.substring(17, 19));
-		// ���������������������������
-		int strDateBeginH = Integer.parseInt(strDateBegin.substring(0, 2));
-		int strDateBeginM = Integer.parseInt(strDateBegin.substring(3, 5));
-		int strDateBeginS = Integer.parseInt(strDateBegin.substring(6, 8));
-		// ���������������������������
-		int strDateEndH = Integer.parseInt(strDateEnd.substring(0, 2));
-		int strDateEndM = Integer.parseInt(strDateEnd.substring(3, 5));
-		int strDateEndS = Integer.parseInt(strDateEnd.substring(6, 8));
-		if ((strDateH >= strDateBeginH && strDateH <= strDateEndH)) {
-			// ������������������������������������������������������������������
-			if (strDateH > strDateBeginH && strDateH < strDateEndH) {
-				return true;
-				// ������������������������������������������������������������������������������������
-			} else if (strDateH == strDateBeginH && strDateM >= strDateBeginM && strDateM <= strDateEndM) {
-				return true;
-				// ������������������������������������������������������������������������������������������������������������������������
-			} else if (strDateH == strDateBeginH && strDateM == strDateBeginM && strDateS >= strDateBeginS
-					&& strDateS <= strDateEndS) {
-				return true;
-			}
-			// ���������������������������������������������������������������������������������������������������������������������������
-			else if (strDateH >= strDateBeginH && strDateH == strDateEndH && strDateM <= strDateEndM) {
-				return true;
-				// ������������������������������������������������������������������������������������������������������������������������������������������������������������
-			} else if (strDateH >= strDateBeginH && strDateH == strDateEndH && strDateM == strDateEndM
-					&& strDateS <= strDateEndS) {
-				return true;
-			} else {
-				return false;
-			}
-		} else {
-			return false;
-		}
-	}
+    /**
+     * <p>
+     * Title: getDays
+     * </p>
+     * <p>
+     * Description: ���������������������������������������
+     * </p>
+     *
+     * @param minDate
+     * @param maxDate
+     * @return
+     */
+    public static int getDays(Date minDate, Date maxDate) {
+        int days = 0;
+        if (null == minDate || null == maxDate)
+            return days;
+        days = (int) ((maxDate.getTime() - minDate.getTime()) / (24 * 60 * 60 * 1000));
+        return days;
+    }
 
-	/**
-	 * ���������������������������������
-	 * 
-	 * @param date
-	 *            ������������ yyyy-MM-dd HH:mm:ss
-	 * @param strDateBegin
-	 *            ������������ 00:00:00
-	 * @param strDateEnd
-	 *            ������������ 00:05:00
-	 * @return
-	 */
-	public static boolean isInDate(Date date, String strDateBegin, String strDateEnd) {
-		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-		String strDate = sdf.format(date);
-		// ���������������������������
-		int strDateH = Integer.parseInt(strDate.substring(11, 13));
-		int strDateM = Integer.parseInt(strDate.substring(14, 16));
-		int strDateS = Integer.parseInt(strDate.substring(17, 19));
-		// ���������������������������
-		int strDateBeginH = Integer.parseInt(strDateBegin.substring(0, 2));
-		int strDateBeginM = Integer.parseInt(strDateBegin.substring(3, 5));
-		int strDateBeginS = Integer.parseInt(strDateBegin.substring(6, 8));
-		// ���������������������������
-		int strDateEndH = Integer.parseInt(strDateEnd.substring(0, 2));
-		int strDateEndM = Integer.parseInt(strDateEnd.substring(3, 5));
-		int strDateEndS = Integer.parseInt(strDateEnd.substring(6, 8));
-		if ((strDateH >= strDateBeginH && strDateH <= strDateEndH)) {
-			// ������������������������������������������������������������������
-			if (strDateH > strDateBeginH && strDateH < strDateEndH) {
-				return true;
-				// ������������������������������������������������������������������������������������
-			} else if (strDateH == strDateBeginH && strDateM >= strDateBeginM && strDateM <= strDateEndM) {
-				return true;
-				// ������������������������������������������������������������������������������������������������������������������������
-			} else if (strDateH == strDateBeginH && strDateM == strDateBeginM && strDateS >= strDateBeginS
-					&& strDateS <= strDateEndS) {
-				return true;
-			}
-			// ���������������������������������������������������������������������������������������������������������������������������
-			else if (strDateH >= strDateBeginH && strDateH == strDateEndH && strDateM <= strDateEndM) {
-				return true;
-				// ������������������������������������������������������������������������������������������������������������������������������������������������������������
-			} else if (strDateH >= strDateBeginH && strDateH == strDateEndH && strDateM == strDateEndM
-					&& strDateS <= strDateEndS) {
-				return true;
-			} else {
-				return false;
-			}
-		} else {
-			return false;
-		}
-	}
+    /**
+     * ������������ date
+     *
+     * @param longDate ���������
+     * @return
+     */
+    public static Date getConversionDateByLong(long longDate) {
+        //1529398742830
+        ZoneId zid = ZoneId.systemDefault();
+        LocalDateTime time = LocalDateTime.ofInstant(Instant.ofEpochMilli(longDate), zid);
+        ZonedDateTime zdt = time.atZone(zid);
+        Date date = Date.from(zdt.toInstant());
+        return date;
+    }
 
-	public static boolean isInTime(int time, int begin, int end) {
-		if (time >= begin && time < end) {
-			return true;
-		}
-		return false;
-	}
+    /**
+     * yyyyMMdd ��� yyyy_MM_dd
+     *
+     * @param strData ���������
+     * @return
+     */
+    public static String getdatefor_yyyy_MM_dd(String strData) {
+        //1529398742830
+        //20180205
+        String yyyy_MM_dd = "";
+        if (null == strData || strData.length() == 0) {
+            return yyyy_MM_dd;
+        } else {
+            String yyyy = strData.substring(0, 4);
+            String mm = strData.substring(4, 6);
+            String dd = strData.substring(6, 8);
+            yyyy_MM_dd = yyyy + "-" + mm + "-" + dd;
+        }
+        return yyyy_MM_dd;
+    }
 
-	public static int getMinutest(String begin, String format) {
-		String nowMinutes = getCurDate("HH:mm");
-		long time = compareDateStr("09:00", nowMinutes, "HH:mm");
-		return (int) time;
-	}
+    public static String getdatefor_HH_mm_ss(String strData) {
+        //1529398742830
+        //20180205
+        String HH_mm_ss = "";
+        if (null == strData || strData.length() == 0) {
+            return HH_mm_ss;
+        } else {
+            String HH = strData.substring(0, 2);
+            String mm = strData.substring(2, 4);
+            String ss = strData.substring(4, 6);
+            HH_mm_ss = HH + ":" + mm + ":" + ss;
+        }
+        return HH_mm_ss;
+    }
 
-	/**
-	 * <p>
-	 * Title: addDays
-	 * </p>
-	 * <p>
-	 * Description: ������������
-	 * </p>
-	 * 
-	 * @param days
-	 * @return
-	 */
-	public static Date addDays(Date date, int days) {
-		Calendar calendar = Calendar.getInstance();
-		calendar.setTime(date);
-		calendar.add(Calendar.DATE, days);
-		return calendar.getTime();
-	}
+    /**
+     * yyyyMMdd
+     *
+     * @return
+     */
+    public static String getdatefor_yyyyMMdd() {
+        Date newdate = new Date();
+        SimpleDateFormat dft = new SimpleDateFormat("yyyyMMdd");
+        String date = dft.format(newdate);
+        return date;
+    }
 
-	/**
-	 * <p>
-	 * Title: addMonths
-	 * </p>
-	 * <p>
-	 * Description: ������������
-	 * </p>
-	 * 
-	 * @param date
-	 * @param months
-	 * @return
-	 */
-	public static Date addMonths(Date date, int months) {
-		Calendar calendar = Calendar.getInstance();
-		calendar.setTime(date);
-		calendar.add(Calendar.MONTH, months);
-		return calendar.getTime();
-	}
+    /**
+     * yyyyMMdd
+     *
+     * @return
+     */
+    public static String getdatefor_yyyy_MM_dd() {
+        Date newdate = new Date();
+        SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
+        String date = dft.format(newdate);
+        return date;
+    }
 
-	/**
-	 * <p>
-	 * Title: getDays
-	 * </p>
-	 * <p>
-	 * Description: ���������������������������������������
-	 * </p>
-	 * 
-	 * @param minDate
-	 * @param maxDate
-	 * @return
-	 */
-	public static int getDays(Date minDate, Date maxDate) {
-		int days = 0;
-		if (null == minDate || null == maxDate)
-			return days;
-		days = (int) ((maxDate.getTime() - minDate.getTime()) / (24 * 60 * 60 * 1000));
-		return days;
-	}
 
-	/**
-	 * ������������ date
-	 * 
-	 * @param longDate ���������
-	 * @return
-	 */
-	public static Date getConversionDateByLong(long longDate) {
-		//1529398742830
-		ZoneId zid = ZoneId.systemDefault();
-		LocalDateTime time = LocalDateTime.ofInstant(Instant.ofEpochMilli(longDate), zid);
-		ZonedDateTime zdt = time.atZone(zid);
-		Date date = Date.from(zdt.toInstant());
-		return date;
-	}
-	
-	/**
-	 * yyyyMMdd ��� yyyy_MM_dd
-	 * 
-	 * @param strData ���������
-	 * @return
-	 */
-	public static String getdatefor_yyyy_MM_dd(String  strData) {
-		//1529398742830
-		//20180205
-		String yyyy_MM_dd="";
-		if (null == strData ||  strData.length()==0) {
-			return yyyy_MM_dd;
-		}else {
-			String yyyy = strData.substring(0, 4);
-			String mm = strData.substring(4, 6);
-			String dd = strData.substring(6, 8);
-			yyyy_MM_dd = yyyy+"-"+mm +"-"+dd;
-		}		
-		return yyyy_MM_dd;
-	}
-	
-	public static String getdatefor_HH_mm_ss(String  strData) {
-		//1529398742830
-		//20180205
-		String HH_mm_ss="";
-		if (null == strData ||  strData.length()==0) {
-			return HH_mm_ss;
-		}else {
-			String HH = strData.substring(0, 2);
-			String mm = strData.substring(2, 4);
-			String ss = strData.substring(4, 6);
-			HH_mm_ss = HH+":"+mm +":"+ss;
-		}		
-		return HH_mm_ss;
-	}
-	
-	/**
-	 * yyyyMMdd
-	 * 
-	 * @return
-	 */
-	public static String getdatefor_yyyyMMdd() {
-		Date newdate = new Date();
-		SimpleDateFormat dft = new SimpleDateFormat("yyyyMMdd");
-		String  date = dft.format(newdate);	
-		return date;
-	}
-	
-	/**
-	 * yyyyMMdd
-	 * 
-	 * @return
-	 */
-	public static String getdatefor_yyyy_MM_dd() {
-		Date newdate = new Date();
-		SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
-		String  date = dft.format(newdate);	
-		return date;
-	}
-	
-	
-	
-	public static void main(String[] args) throws InterruptedException {
-		Date date1 = new Date();
-		Thread.sleep(1000);
-		Date date2 = new Date();
-		System.out.println(DateUtils.compareDateStr(date1,date2));
-	}
+    public static void main(String[] args) throws InterruptedException {
+        Date date1 = new Date();
+        Thread.sleep(1000);
+        Date date2 = new Date();
+        System.out.println(DateUtils.compareDateStr(date1, date2));
+    }
 }
diff --git a/screen-common/src/main/java/com/moral/util/WebUtils.java b/screen-common/src/main/java/com/moral/util/WebUtils.java
index 474781e..8591126 100644
--- a/screen-common/src/main/java/com/moral/util/WebUtils.java
+++ b/screen-common/src/main/java/com/moral/util/WebUtils.java
@@ -1,14 +1,24 @@
 package com.moral.util;
 
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
 import java.util.Enumeration;
 import java.util.Map;
 import java.util.TreeMap;
 
 import javax.servlet.ServletRequest;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.util.Assert;
 import org.springframework.util.ObjectUtils;
+import org.springframework.util.StringUtils;
 
+@Slf4j
 public class WebUtils extends org.springframework.web.util.WebUtils {
     public static Map<String, Object> getParametersStartingWith(ServletRequest request, String prefix) {
         Assert.notNull(request, "Request must not be null");
@@ -41,4 +51,27 @@
         }
         return params;
     }
+
+    /**
+    * @Description: ������������IP������
+            * @Param: [request]
+            * @return: java.lang.String
+            * @Author: ���������
+            * @Date: 2021/3/31
+            */
+    public static String getIpAddr(HttpServletRequest request) {
+        String ip = request.getHeader("x-forwarded-for");
+        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){
+            ip = request.getHeader("Proxy-Client-IP");
+        }
+        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){
+            ip = request.getHeader("WL-Proxy-Client-IP");
+        }
+        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){
+            ip = request.getRemoteAddr();
+        }
+        return ip.equals("0:0:0:0:0:0:0:1")?"127.0.0.1":ip;
+    }
+
+
 }
\ No newline at end of file
diff --git a/screen-manage/src/main/java/com/moral/api/aop/log/OperationLogAnno.java b/screen-manage/src/main/java/com/moral/api/aop/log/OperationLogAnno.java
new file mode 100644
index 0000000..4e884d7
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/aop/log/OperationLogAnno.java
@@ -0,0 +1,20 @@
+package com.moral.api.aop.log;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface OperationLogAnno {
+    /*
+     * ���������������
+     * */
+    String module() default "";
+
+    /*
+     * ���������������
+     * */
+    String type() default "";
+}
diff --git a/screen-manage/src/main/java/com/moral/api/aop/log/OperationLogAspect.java b/screen-manage/src/main/java/com/moral/api/aop/log/OperationLogAspect.java
new file mode 100644
index 0000000..f7b53a4
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/aop/log/OperationLogAspect.java
@@ -0,0 +1,117 @@
+package com.moral.api.aop.log;
+
+import com.alibaba.fastjson.JSON;
+import com.moral.api.entity.ManageLog;
+import com.moral.api.entity.Organization;
+import com.moral.api.mapper.ManageLogMapper;
+import com.moral.api.pojo.form.organization.OrganizationInsertForm;
+import com.moral.constant.Constants;
+import com.moral.util.WebUtils;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.AfterReturning;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.context.request.RequestContextHolder;
+
+import javax.servlet.http.HttpServletRequest;
+import java.lang.reflect.Method;
+
+/**
+ * @ClassName OperationLogAspect
+ * @Description ���������������������
+ * @Author ���������
+ * @Date 2021/3/31 13:54
+ * @Version TODO
+ **/
+@Aspect
+@Component
+public class OperationLogAspect {
+
+    @Autowired
+    ManageLogMapper manageLogMapper;
+
+    /**
+     * @Description: ������������������OperationLogAnno���������������������
+     * @Param: []
+     * @return: void
+     * @Author: ���������
+     * @Date: 2021/3/31
+     */
+    @Pointcut("@annotation(com.moral.api.aop.log.OperationLogAnno)")
+    public void pointCut() {
+    }
+
+
+    /**
+     * @Description: ������������������������������������
+     * @Param: [joinPoint, result]���������������������������������
+     * @return: void
+     * @Author: ���������
+     * @Date: 2021/3/31
+     */
+    @AfterReturning(returning = "result", value = "pointCut()")
+    public void saveOperLog(JoinPoint joinPoint, Object result) throws Throwable {
+        //������������������
+        RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
+        HttpServletRequest request = (HttpServletRequest) requestAttributes.resolveReference(RequestAttributes.REFERENCE_REQUEST);
+        Object parameters = request.getAttribute("parameters");
+        //������module���type
+        MethodSignature signature = (MethodSignature) joinPoint.getSignature();//���������������������������
+        Method method = signature.getMethod();//������������������������
+        OperationLogAnno anno = method.getAnnotation(OperationLogAnno.class);//���������������������
+        String module = anno.module();//���������������������
+        String type = anno.type();//���������������������
+        saveLog(request,parameters, module, type);
+    }
+
+    /**
+     * @Description: ������������
+     * @Param: [paramters, module, type]
+     * @return: void
+     * @Author: ���������
+     * @Date: 2021/3/31
+     */
+    public void saveLog(HttpServletRequest request,Object paramters, String module, String type) {
+        if (module.equals(Constants.ORGANIZATION_MODULE_NAME)) {
+            saveOrganizationLog(request,paramters, module, type);
+        }
+    }
+
+    /**
+     * @Description: ������������������
+     * @Param: [paramters, module, type]
+     * @return: void
+     * @Author: ���������
+     * @Date: 2021/3/31
+     */
+    @Transactional
+    public void saveOrganizationLog(HttpServletRequest request,Object paramters, String module, String type) {
+        if (type.equals(Constants.INSERT_OPERATE_TYPE)) {//������������������������������
+            OrganizationInsertForm form = JSON.parseObject(JSON.toJSONString(paramters), OrganizationInsertForm.class);
+            Integer accountId = 1;//������ ������������
+            String accountName = "������������";
+            String organizationName = form.getName();
+            String ip = WebUtils.getIpAddr(request);
+            String content = accountName+"���������������������"+organizationName;
+
+            ManageLog manageLog = new ManageLog();
+            manageLog.setContent(content);
+            manageLog.setIp(ip);
+            manageLog.setAccountId(accountId);
+            manageLog.setModule(module);
+            manageLog.setType(type);
+            manageLogMapper.insert(manageLog);
+        } else if (type.equals(Constants.DELETE_OPERATE_TYPE)) { //������������������������
+
+        } else if (type.equals(Constants.UPDATE_OPERATE_TYPE)) {  //������������������������
+
+        }
+
+    }
+
+}
diff --git a/screen-manage/src/main/java/com/moral/api/config/mybatis/wrapper/NullFilterWrapper.java b/screen-manage/src/main/java/com/moral/api/config/mybatis/wrapper/NullFilterWrapper.java
new file mode 100644
index 0000000..6539edb
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/config/mybatis/wrapper/NullFilterWrapper.java
@@ -0,0 +1,36 @@
+package com.moral.api.config.mybatis.wrapper;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.enums.SqlKeyword;
+import com.baomidou.mybatisplus.core.enums.SqlLike;
+
+/**
+ * @ClassName FiltNullWrapper
+ * @Description ������������������������null���������������������
+ * @Author ���������
+ * @Date 2021/3/30 10:45
+ * @Version TODO
+ **/
+public class NullFilterWrapper<T> extends QueryWrapper<T> {
+
+    @Override
+    protected QueryWrapper<T> likeValue(boolean condition, String column, Object val, SqlLike sqlLike) {
+        if(val==null)
+            condition = false;
+        return super.likeValue(condition, column, val, sqlLike);
+    }
+
+    @Override
+    public QueryWrapper<T> between(boolean condition, String column, Object val1, Object val2) {
+        if(val1==null||val2==null)
+            condition = false;
+        return super.between(condition, column, val1, val2);
+    }
+
+    @Override
+    public QueryWrapper<T> eq(boolean condition, String column, Object val) {
+        if(val==null)
+            condition = false;
+        return super.eq(condition, column, val);
+    }
+}
diff --git a/screen-manage/src/main/java/com/moral/api/controller/AccountController.java b/screen-manage/src/main/java/com/moral/api/controller/AccountController.java
index eddbd67..8307df0 100644
--- a/screen-manage/src/main/java/com/moral/api/controller/AccountController.java
+++ b/screen-manage/src/main/java/com/moral/api/controller/AccountController.java
@@ -1,9 +1,7 @@
 package com.moral.api.controller;
 
-import com.moral.api.pojo.dto.account.AccountDeleteDTO;
-import com.moral.api.pojo.dto.account.AccountInsertDTO;
-import com.moral.api.pojo.dto.account.AccountQueryDTO;
-import com.moral.api.pojo.dto.account.AccountUpdateDTO;
+import com.moral.api.pojo.dto.account.*;
+import com.moral.api.pojo.dto.organization.OrganizationDTO;
 import com.moral.api.pojo.form.account.AccountDeleteForm;
 import com.moral.api.pojo.form.account.AccountInsertForm;
 import com.moral.api.pojo.form.account.AccountQueryForm;
@@ -29,68 +27,84 @@
     ManageAccountService accountService;
 
     @PostMapping("insert")
-    public ResultMessage insert(@RequestBody AccountInsertForm accountInsertForm) {
-        if (!accountInsertForm.valid())
+    public ResultMessage insert(@RequestBody AccountInsertForm form) {
+        //������������������������
+        if (!form.valid())
             return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                     ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
-        //������������������������������
-        AccountInsertDTO conditionDTO = accountInsertForm.paramValid();
+
+        //������������������������
+        AccountInsertDTO conditionDTO = form.paramValid();
         if (conditionDTO.getCode() != ResponseCodeEnum.SUCCESS.getCode()) {
             return new ResultMessage(conditionDTO.getCode(), conditionDTO.getMsg(), null);
         }
 
-        AccountInsertDTO accountInsertDTO = accountService.insertAccount(accountInsertForm);
+        //������������������
+        AccountDTO dto = accountService.insertAccount(form);
 
-        AccountInsertVO accountInsertVO = AccountInsertVO.convert(accountInsertDTO);
+        //������������������������
+        AccountInsertVO accountInsertVO = AccountInsertVO.convert(dto);
 
-        return new ResultMessage(accountInsertDTO.getCode(), accountInsertDTO.getMsg(), accountInsertVO);
+        return new ResultMessage(dto.getCode(), dto.getMsg(), accountInsertVO);
     }
 
-    @GetMapping("query")
-    public ResultMessage query(AccountQueryForm accountQueryForm) {
-        if (!accountQueryForm.valid())
+    @PostMapping("update")
+    public ResultMessage update(@RequestBody AccountUpdateForm form) {
+        //������������������������
+        if (!form.valid())
             return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                     ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
 
-        AccountQueryDTO accountQueryDTO = accountService.queryAccount(accountQueryForm);
+        //������������������������
+        AccountUpdateDTO conditionDTO = form.paramValid();
+        if (conditionDTO.getCode() != ResponseCodeEnum.SUCCESS.getCode()) {
+            return new ResultMessage(conditionDTO.getCode(), conditionDTO.getMsg(), null);
+        }
 
+        //������������������
+        AccountDTO dto = accountService.updateAccount(form);
+
+        //���������������������������
+        AccountUpdateVO vo = AccountUpdateVO.convert(dto);
+
+        return new ResultMessage(dto.getCode(), dto.getMsg(), vo);
+    }
+
+    @PostMapping("delete")
+    public ResultMessage delete(@RequestBody AccountDeleteForm form) {
+        //������������������������
+        if (!form.valid())
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
+                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+
+        //������������������
+        AccountDTO dto = accountService.deleteAccount(form);
+
+        //���������������������������
+        AccountDeleteVO vo = AccountDeleteVO.convert(dto);
+
+        return new ResultMessage(dto.getCode(), dto.getMsg(), vo);
+    }
+
+    @GetMapping("query")
+    public ResultMessage query(AccountQueryForm form) {
+        //������������������������
+        if (!form.valid())
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
+                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+
+        //������������������
+        AccountQueryDTO accountQueryDTO = accountService.queryAccount(form);
+
+        //���������������������������
         AccountQueryVO accountQueryVO = AccountQueryVO.convert(accountQueryDTO);
+
 
         return new ResultMessage(accountQueryDTO.getCode(), accountQueryDTO.getMsg(), accountQueryVO);
     }
 
 
-    @PostMapping("update")
-    public ResultMessage update(@RequestBody AccountUpdateForm accountUpdateRequest) {
-        if (!accountUpdateRequest.valid())
-            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
-                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
 
-        //������������������������������
-        AccountUpdateDTO conditionDTO = accountUpdateRequest.paramValid();
-        if (conditionDTO.getCode() != ResponseCodeEnum.SUCCESS.getCode()) {
-            return new ResultMessage(conditionDTO.getCode(), conditionDTO.getMsg(), null);
-        }
-
-        AccountUpdateDTO accountUpdateDTO = accountService.updateAccount(accountUpdateRequest);
-
-        AccountUpdateVO accountUpdateVO = AccountUpdateVO.convert(accountUpdateDTO);
-
-        return new ResultMessage(accountUpdateDTO.getCode(), accountUpdateDTO.getMsg(), accountUpdateVO);
-    }
-
-    @PostMapping("delete")
-    public ResultMessage delete(@RequestBody AccountDeleteForm accountDeleteForm) {
-        if (!accountDeleteForm.valid())
-            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
-                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
-
-        AccountDeleteDTO accountDeleteDTO = accountService.deleteAccount(accountDeleteForm);
-
-        AccountDeleteVO accountDeleteVO = AccountDeleteVO.convert(accountDeleteDTO);
-
-        return new ResultMessage(accountDeleteDTO.getCode(), accountDeleteDTO.getMsg(), accountDeleteVO);
-    }
 
 
 }
diff --git a/screen-manage/src/main/java/com/moral/api/controller/OrganizationController.java b/screen-manage/src/main/java/com/moral/api/controller/OrganizationController.java
index 52582b4..6a0cf90 100644
--- a/screen-manage/src/main/java/com/moral/api/controller/OrganizationController.java
+++ b/screen-manage/src/main/java/com/moral/api/controller/OrganizationController.java
@@ -1,5 +1,6 @@
 package com.moral.api.controller;
 
+import com.moral.api.aop.log.OperationLogAnno;
 import com.moral.api.pojo.dto.organization.OrganizationDTO;
 import com.moral.api.pojo.dto.organization.OrganizationQueryDTO;
 import com.moral.api.pojo.form.organization.OrganizationDeleteForm;
@@ -8,14 +9,18 @@
 import com.moral.api.pojo.form.organization.OrganizationUpdateForm;
 import com.moral.api.pojo.vo.organization.OrganizationDeleteVO;
 import com.moral.api.pojo.vo.organization.OrganizationInsertVO;
+import com.moral.api.pojo.vo.organization.OrganizationQueryVO;
 import com.moral.api.pojo.vo.organization.OrganizationUpdateVO;
 import com.moral.api.service.OrganizationService;
+import com.moral.constant.Constants;
 import com.moral.constant.ResponseCodeEnum;
 import com.moral.constant.ResultMessage;
 import io.swagger.annotations.Api;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
 
 /**
  * @ClassName OrganizationController
@@ -33,58 +38,61 @@
     OrganizationService organizationService;
 
     @PostMapping("insert")
-    public ResultMessage insert(@RequestBody OrganizationInsertForm organizationInsertForm) {
-        //������������������������������
-        if (!organizationInsertForm.valid())
+    @OperationLogAnno(module = Constants.ORGANIZATION_MODULE_NAME,type = Constants.INSERT_OPERATE_TYPE)
+    public ResultMessage insert(@RequestBody OrganizationInsertForm form, HttpServletRequest request) {
+        //������������������request���
+        request.setAttribute("parameters",form);
+        //������������������������
+        if (!form.valid())
             return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                     ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
 
         //������������������������
-        OrganizationDTO conditionDTO = organizationInsertForm.paramValid();
+        OrganizationDTO conditionDTO = form.paramValid();
         if (conditionDTO.getCode() != ResponseCodeEnum.SUCCESS.getCode()) {
             return new ResultMessage(conditionDTO.getCode(), conditionDTO.getMsg(), null);
         }
 
         //������������������
-        OrganizationDTO organizationDTO = organizationService.insertOrganization(organizationInsertForm);
+        OrganizationDTO dto = organizationService.insertOrganization(form);
 
         //���������������������������
-        OrganizationInsertVO organizationInsertVO = OrganizationInsertVO.convert(organizationDTO);
+        OrganizationInsertVO vo = OrganizationInsertVO.convert(dto);
 
-        return new ResultMessage(organizationDTO.getCode(),organizationDTO.getMsg(),organizationInsertVO);
+        return new ResultMessage(dto.getCode(),dto.getMsg(),vo);
     }
 
     @PostMapping("update")
-    public ResultMessage update(@RequestBody OrganizationUpdateForm organizationUpdateForm){
-        //������������������������������
-        if (!organizationUpdateForm.valid())
+    public ResultMessage update(@RequestBody OrganizationUpdateForm form){
+        //������������������������
+        if (!form.valid())
             return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                     ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
 
         //������������������������
-        OrganizationDTO conditionDTO = organizationUpdateForm.paramValid();
+        OrganizationDTO conditionDTO = form.paramValid();
         if (conditionDTO.getCode() != ResponseCodeEnum.SUCCESS.getCode()) {
             return new ResultMessage(conditionDTO.getCode(), conditionDTO.getMsg(), null);
         }
 
         //������������������
-        OrganizationDTO organizationDTO = organizationService.updateOrganization(organizationUpdateForm);
+        OrganizationDTO dto = organizationService.updateOrganization(form);
 
         //���������������������������
-        OrganizationUpdateVO organizationUpdateVO = OrganizationUpdateVO.convert(organizationDTO);
+        OrganizationUpdateVO vo = OrganizationUpdateVO.convert(dto);
 
-        return new ResultMessage(organizationDTO.getCode(),organizationDTO.getMsg(),organizationUpdateVO);
+        return new ResultMessage(dto.getCode(),dto.getMsg(),vo);
     }
 
     @PostMapping("delete")
-    public ResultMessage delete(@RequestBody OrganizationDeleteForm organizationDeleteForm){
-        //������������������������������
-        if (!organizationDeleteForm.valid())
+    public ResultMessage delete(@RequestBody OrganizationDeleteForm form){
+        //������������������������
+        if (!form.valid())
             return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                     ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
 
         //������������������
-        OrganizationDTO dto = organizationService.deleteOrganization(organizationDeleteForm);
+        OrganizationDTO dto = organizationService.deleteOrganization(form);
 
         //���������������������������
         OrganizationDeleteVO vo = OrganizationDeleteVO.convert(dto);
@@ -93,24 +101,19 @@
     }
 
     @GetMapping("query")
-    public ResultMessage query(OrganizationQueryForm organizationQueryForm){
+    public ResultMessage query(OrganizationQueryForm form){
         //������������������������
-        if (!organizationQueryForm.valid())
+        if (!form.valid())
             return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                     ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
 
-        //������������������������
-        OrganizationDTO conditionDTO = organizationQueryForm.paramValid();
-        if (conditionDTO.getCode() != ResponseCodeEnum.SUCCESS.getCode()) {
-            return new ResultMessage(conditionDTO.getCode(), conditionDTO.getMsg(), null);
-        }
-
         //������������������
-        OrganizationQueryDTO organizationQueryDTO = organizationService.queryOrganization(organizationQueryForm);
+        OrganizationQueryDTO dto = organizationService.queryOrganization(form);
 
         //������������������������
+        OrganizationQueryVO vo = OrganizationQueryVO.convert(dto);
 
-        return null;
+        return new ResultMessage(dto.getCode(),dto.getMsg(),vo);
     }
 
 }
diff --git a/screen-manage/src/main/java/com/moral/api/entity/ManageLog.java b/screen-manage/src/main/java/com/moral/api/entity/ManageLog.java
index 7b60d15..55ec734 100644
--- a/screen-manage/src/main/java/com/moral/api/entity/ManageLog.java
+++ b/screen-manage/src/main/java/com/moral/api/entity/ManageLog.java
@@ -14,7 +14,7 @@
  * </p>
  *
  * @author moral
- * @since 2021-03-09
+ * @since 2021-03-31
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -29,19 +29,24 @@
     private Integer id;
 
     /**
+     * ������������
+     */
+    private String type;
+
+    /**
+     * ������������
+     */
+    private String module;
+
+    /**
      * ������������
      */
     private String content;
 
     /**
-     * ������Id
-     */
-    private Integer organizationId;
-
-    /**
      * ������������id
      */
-    private Integer operateId;
+    private Integer accountId;
 
     /**
      * Ip������
diff --git a/screen-manage/src/main/java/com/moral/api/mapper/ManageLogMapper.java b/screen-manage/src/main/java/com/moral/api/mapper/ManageLogMapper.java
index 385155e..125964f 100644
--- a/screen-manage/src/main/java/com/moral/api/mapper/ManageLogMapper.java
+++ b/screen-manage/src/main/java/com/moral/api/mapper/ManageLogMapper.java
@@ -9,7 +9,7 @@
  * </p>
  *
  * @author moral
- * @since 2021-03-09
+ * @since 2021-03-31
  */
 public interface ManageLogMapper extends BaseMapper<ManageLog> {
 
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationDTO.java b/screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationDTO.java
index 071bf1a..0219df6 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationDTO.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationDTO.java
@@ -35,13 +35,6 @@
     * ���������
     * */
     private Organization parentOrganization;
-    /*
-    * ���������
-    * */
-    private List<Organization> childOrganizations;
 
-    /*
-    * ���������
-    * */
-    private User admin;
+
 }
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountInsertForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountInsertForm.java
index 56d7d25..01b2a95 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountInsertForm.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountInsertForm.java
@@ -1,8 +1,10 @@
 package com.moral.api.pojo.form.account;
 
+import com.moral.api.entity.ManageAccount;
 import com.moral.api.pojo.dto.account.AccountInsertDTO;
 import com.moral.constant.ResponseCodeEnum;
 import com.moral.util.AESUtils;
+import com.moral.util.MD5Utils;
 import com.moral.util.RegexUtils;
 import lombok.Data;
 import org.springframework.beans.factory.annotation.Value;
@@ -19,7 +21,7 @@
  * @Version TODO
  **/
 @Data
-public class AccountInsertForm implements Serializable{
+public class AccountInsertForm {
 
 
     private String account;
@@ -90,4 +92,15 @@
         dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
         return dto;
     }
+
+    public ManageAccount formConvertEntity(){
+        ManageAccount manageAccount = new ManageAccount();
+        manageAccount.setAccount(account);
+        manageAccount.setPassword(MD5Utils.saltMD5(AESUtils.decrypt(password)));
+        manageAccount.setUserName(userName);
+        manageAccount.setEmail(email);
+        manageAccount.setMobile(mobile);
+        manageAccount.setWechat(wechat);
+        return manageAccount;
+    }
 }
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountQueryForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountQueryForm.java
index 837b4ee..8d7f9e7 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountQueryForm.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountQueryForm.java
@@ -1,9 +1,16 @@
 package com.moral.api.pojo.form.account;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.moral.api.entity.ManageAccount;
+import com.moral.api.pojo.dto.account.AccountDTO;
+import com.moral.constant.ResponseCodeEnum;
+import com.moral.util.RegexUtils;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.util.ObjectUtils;
 
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * @ClassName AccountQueryRequest
@@ -13,15 +20,11 @@
  * @Version TODO
  **/
 @Data
-public class AccountQueryForm implements Serializable {
+public class AccountQueryForm  {
 
     private Integer page;
 
     private Integer size;
-
-    private Integer accountId;
-
-    private String account;
 
     private String userName;
 
@@ -32,6 +35,14 @@
     private String wechat;
 
     private String isDelete;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date createStartTime;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date createEndTime;
 
     private String order;
 
@@ -46,4 +57,5 @@
             return false;
         return true;
     }
+
 }
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountUpdateForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountUpdateForm.java
index 82df8bf..255a0e3 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountUpdateForm.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountUpdateForm.java
@@ -1,9 +1,11 @@
 package com.moral.api.pojo.form.account;
 
+import com.moral.api.entity.ManageAccount;
 import com.moral.api.pojo.dto.account.AccountInsertDTO;
 import com.moral.api.pojo.dto.account.AccountUpdateDTO;
 import com.moral.constant.ResponseCodeEnum;
 import com.moral.util.AESUtils;
+import com.moral.util.MD5Utils;
 import com.moral.util.RegexUtils;
 import lombok.Data;
 import org.springframework.util.ObjectUtils;
@@ -35,15 +37,15 @@
     private List<Integer> roleIds;
 
     public boolean valid() {
-        if(ObjectUtils.isEmpty(accountId))
+        if (ObjectUtils.isEmpty(accountId))
             return false;
-        if(
-                ObjectUtils.isEmpty(userName)&&
-                ObjectUtils.isEmpty(password)&&
-                ObjectUtils.isEmpty(email)&&
-                ObjectUtils.isEmpty(mobile)&&
-                ObjectUtils.isEmpty(wechat)&&
-                ObjectUtils.isEmpty(roleIds)
+        if (
+                ObjectUtils.isEmpty(userName) &&
+                        ObjectUtils.isEmpty(password) &&
+                        ObjectUtils.isEmpty(email) &&
+                        ObjectUtils.isEmpty(mobile) &&
+                        ObjectUtils.isEmpty(wechat) &&
+                        ObjectUtils.isEmpty(roleIds)
                 )
             return false;
         return true;
@@ -68,16 +70,27 @@
             }
         }
         //������������������������������
-        if (!ObjectUtils.isEmpty(password)){
-            if(!RegexUtils.checkPassword(AESUtils.decrypt(password))){
+        if (!ObjectUtils.isEmpty(password)) {
+            if (!RegexUtils.checkPassword(AESUtils.decrypt(password))) {
                 dto.setCode(ResponseCodeEnum.PASSWORD_INVALID.getCode());
                 dto.setMsg(ResponseCodeEnum.PASSWORD_INVALID.getMsg());
                 return dto;
             }
         }
-            dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
+        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
         dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
         return dto;
     }
 
+    public ManageAccount formConvertEntity() {
+        ManageAccount manageAccount = new ManageAccount();
+        manageAccount.setId(accountId);
+        if (!ObjectUtils.isEmpty(password))
+            manageAccount.setPassword(MD5Utils.saltMD5(AESUtils.decrypt(password)));
+        manageAccount.setUserName(userName);
+        manageAccount.setEmail(email);
+        manageAccount.setMobile(mobile);
+        manageAccount.setWechat(wechat);
+        return manageAccount;
+    }
 }
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/login/LoginForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/login/LoginForm.java
index ec0e759..66d6b84 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/form/login/LoginForm.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/login/LoginForm.java
@@ -13,7 +13,7 @@
  * @Version TODO
  **/
 @Data
-public class LoginForm implements Serializable {
+public class LoginForm  {
 
     private String account;
 
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/login/LogoutForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/login/LogoutForm.java
index f4be308..7ec4e4e 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/form/login/LogoutForm.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/login/LogoutForm.java
@@ -13,7 +13,7 @@
  * @Version TODO
  **/
 @Data
-public class LogoutForm implements Serializable {
+public class LogoutForm  {
 
     private String accountId;
 
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationInsertForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationInsertForm.java
index 98cc70c..ba7dde7 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationInsertForm.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationInsertForm.java
@@ -20,7 +20,7 @@
  * @Version TODO
  **/
 @Data
-public class OrganizationInsertForm implements Serializable {
+public class OrganizationInsertForm   {
 
     private Integer parentId;
 
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationQueryForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationQueryForm.java
index 9151342..88bd7a0 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationQueryForm.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationQueryForm.java
@@ -1,14 +1,16 @@
 package com.moral.api.pojo.form.organization;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.moral.api.entity.Organization;
 import com.moral.api.pojo.dto.organization.OrganizationDTO;
 import com.moral.constant.ResponseCodeEnum;
-import com.moral.util.DateUtils;
 import com.moral.util.RegexUtils;
 import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.util.ObjectUtils;
 
 import java.util.Date;
+
 
 /**
  * @ClassName OrganizationQueryForm
@@ -18,7 +20,7 @@
  * @Version TODO
  **/
 @Data
-public class OrganizationQueryForm {
+public class OrganizationQueryForm  {
 
     private Integer page;
 
@@ -46,6 +48,22 @@
 
     private String isDelete;
 
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date createStartTime;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date createEndTime;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date expireStartTime;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date expireEndTime;
+
     private String order;
 
     private String orderType;
@@ -59,43 +77,5 @@
         return true;
     }
 
-    public OrganizationDTO paramValid() {
-        OrganizationDTO dto = new OrganizationDTO();
-        //���������������������������������
-        if (!ObjectUtils.isEmpty(phone)) {
-            if (!RegexUtils.checkMobile(phone) && !RegexUtils.checkPhone(phone)) {
-                dto.setCode(ResponseCodeEnum.PHONE_INVALID.getCode());
-                dto.setMsg(ResponseCodeEnum.PHONE_INVALID.getMsg());
-                return dto;
 
-            }
-        }
-        //������������������������������
-        if (!ObjectUtils.isEmpty(email)) {
-            if (!RegexUtils.checkEmail(email)) {
-                dto.setCode(ResponseCodeEnum.EMAIL_INVALID.getCode());
-                dto.setMsg(ResponseCodeEnum.EMAIL_INVALID.getMsg());
-                return dto;
-            }
-        }
-        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
-        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
-        return dto;
-    }
-
-    public Organization formConvertEntity() {
-        Organization organization = new Organization();
-        organization.setParentId(parentId);
-        organization.setName(name);
-        organization.setProvinceCode(provinceCode);
-        organization.setCityCode(cityCode);
-        organization.setAreaCode(areaCode);
-        organization.setTownCode(townCode);
-        organization.setVillageCode(villageCode);
-        organization.setPhone(phone);
-        organization.setEmail(email);
-        organization.setWechat(wechat);
-        organization.setIsDelete(isDelete);
-        return organization;
-    }
 }
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountDeleteVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountDeleteVO.java
index ef0b15e..dd76776 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountDeleteVO.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountDeleteVO.java
@@ -2,6 +2,7 @@
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.moral.api.entity.ManageAccount;
+import com.moral.api.pojo.dto.account.AccountDTO;
 import com.moral.api.pojo.dto.account.AccountDeleteDTO;
 import com.moral.constant.ResponseCodeEnum;
 import lombok.Data;
@@ -19,8 +20,7 @@
 
 public class AccountDeleteVO extends AccountVO {
 
-
-    public static AccountDeleteVO convert(AccountDeleteDTO dto) {
+    public static AccountDeleteVO convert(AccountDTO dto) {
         if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
             return null;
         AccountDeleteVO vo = new AccountDeleteVO();
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountInsertVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountInsertVO.java
index 85df2b0..deedcc8 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountInsertVO.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountInsertVO.java
@@ -2,6 +2,7 @@
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.moral.api.entity.ManageRole;
+import com.moral.api.pojo.dto.account.AccountDTO;
 import com.moral.api.pojo.dto.account.AccountInsertDTO;
 import com.moral.constant.ResponseCodeEnum;
 import lombok.Data;
@@ -29,7 +30,7 @@
      * @Date: 2021/3/15
      */
 
-    public static AccountInsertVO convert(AccountInsertDTO dto) {
+    public static AccountInsertVO convert(AccountDTO dto) {
         if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
             return null;
 
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountQueryVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountQueryVO.java
index 77b190b..70c68b4 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountQueryVO.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountQueryVO.java
@@ -1,13 +1,17 @@
 package com.moral.api.pojo.vo.account;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
+import com.moral.api.entity.ManageAccount;
+import com.moral.api.entity.ManageRole;
 import com.moral.api.pojo.dto.account.AccountDTO;
 import com.moral.api.pojo.dto.account.AccountQueryDTO;
 import com.moral.constant.ResponseCodeEnum;
 import lombok.Data;
 import org.springframework.util.ObjectUtils;
 
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -43,7 +47,7 @@
         List<AccountDTO> accountDTOs = dto.getAccountDTOS();
         if (!ObjectUtils.isEmpty(accountDTOs)) {
             for (AccountDTO accountDTO : accountDTOs) {
-                AccountVO vo = AccountVO.convert(accountDTO);
+                AccountVO vo = convertToQueryPage(accountDTO);
                 accountVOs.add(vo);
             }
         }
@@ -55,4 +59,31 @@
         vo.setSize(size);
         return vo;
     }
+
+    public static AccountVO convertToQueryPage(AccountDTO dto) {
+        if (dto.getAccount() == null)
+            return null;
+        AccountInsertVO vo = new AccountInsertVO();
+        ManageAccount account = dto.getAccount();
+        List<ManageRole> roles = dto.getRoles();
+        List<String> roleNames = new ArrayList<>();
+        if (!ObjectUtils.isEmpty(roles)) {
+            roles.forEach(role -> roleNames.add(role.getName()));
+        }
+        vo.setId(account.getId());
+        vo.setUserName(account.getUserName());
+        vo.setEmail(account.getEmail());
+        vo.setMobile(account.getMobile());
+        vo.setWechat(account.getWechat());
+        vo.setRoleNames(roleNames);
+        //Date������String
+        Date createTime = account.getCreateTime();
+        Date updateTime = account.getUpdateTime();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String createTimeStr = sdf.format(createTime);
+        String updateTimeStr = sdf.format(updateTime);
+        vo.setCreateTime(createTimeStr);
+        vo.setUpdateTime(updateTimeStr);
+        return vo;
+    }
 }
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountUpdateVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountUpdateVO.java
index a99e42d..6243fbb 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountUpdateVO.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountUpdateVO.java
@@ -2,6 +2,7 @@
 
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.moral.api.entity.ManageRole;
+import com.moral.api.pojo.dto.account.AccountDTO;
 import com.moral.api.pojo.dto.account.AccountInsertDTO;
 import com.moral.api.pojo.dto.account.AccountUpdateDTO;
 import com.moral.constant.ResponseCodeEnum;
@@ -23,7 +24,7 @@
 
 public class AccountUpdateVO extends AccountVO {
 
-    public static AccountUpdateVO convert(AccountUpdateDTO dto) {
+    public static AccountUpdateVO convert(AccountDTO dto) {
         if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
             return null;
 
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountVO.java
index 1549399..e2de4d8 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountVO.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountVO.java
@@ -39,30 +39,5 @@
 
     private String updateTime;
 
-    public static AccountVO convert(AccountDTO dto) {
-        if (dto.getAccount() == null)
-            return null;
-        AccountVO vo = new AccountVO();
-        ManageAccount account = dto.getAccount();
-        List<ManageRole> roles = dto.getRoles();
-        List<String> roleNames = new ArrayList<>();
-        if (!ObjectUtils.isEmpty(roles)) {
-            roles.forEach(role -> roleNames.add(role.getName()));
-        }
-        vo.setId(account.getId());
-        vo.setUserName(account.getUserName());
-        vo.setEmail(account.getEmail());
-        vo.setMobile(account.getMobile());
-        vo.setWechat(account.getWechat());
-        vo.setRoleNames(roleNames);
-        //Date������String
-        Date createTime = account.getCreateTime();
-        Date updateTime = account.getUpdateTime();
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        String createTimeStr = sdf.format(createTime);
-        String updateTimeStr = sdf.format(updateTime);
-        vo.setCreateTime(createTimeStr);
-        vo.setUpdateTime(updateTimeStr);
-        return vo;
-    }
+
 }
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationDeleteVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationDeleteVO.java
index ff94744..c8e3b1a 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationDeleteVO.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationDeleteVO.java
@@ -19,6 +19,7 @@
             return null;
         OrganizationDeleteVO vo = new OrganizationDeleteVO();
         Organization organization = dto.getOrganization();
+
         vo.setName(organization.getName());
         vo.setId(organization.getId());
         return vo;
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationInsertVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationInsertVO.java
index 4e48170..19e6a42 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationInsertVO.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationInsertVO.java
@@ -18,6 +18,7 @@
             return null;
         OrganizationInsertVO vo = new OrganizationInsertVO();
         Organization organization = dto.getOrganization();
+
         vo.setId(organization.getId());
         vo.setName(organization.getName());
         return vo;
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationQueryVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationQueryVO.java
new file mode 100644
index 0000000..8682ea0
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationQueryVO.java
@@ -0,0 +1,87 @@
+package com.moral.api.pojo.vo.organization;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.moral.api.entity.Organization;
+import com.moral.api.pojo.dto.organization.OrganizationDTO;
+import com.moral.api.pojo.dto.organization.OrganizationQueryDTO;
+import com.moral.constant.ResponseCodeEnum;
+import com.moral.util.DateUtils;
+import lombok.Data;
+import org.springframework.util.ObjectUtils;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @ClassName OrganizationQueryVO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/3/26 13:52
+ * @Version TODO
+ **/
+@Data
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+public class OrganizationQueryVO {
+
+    private long pages;
+
+    private long total;
+
+    private long current;
+
+    private long size;
+
+    private List<OrganizationVO> organizations;
+
+    public static OrganizationQueryVO convert(OrganizationQueryDTO dto) {
+        if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
+            return null;
+        OrganizationQueryVO vo = new OrganizationQueryVO();
+        long page = dto.getPage();
+        long total = dto.getTotal();
+        long current = dto.getCurrent();
+        long size = dto.getSize();
+        List<OrganizationDTO> organizationDTOS = dto.getOrganizationDTOS();
+        List<OrganizationVO> organizationVOS = new ArrayList<>();
+        for (OrganizationDTO organizationDTO : organizationDTOS) {
+            OrganizationVO organizationVO = convertToQueryPage(organizationDTO);
+            organizationVOS.add(organizationVO);
+        }
+
+        vo.setCurrent(current);
+        vo.setOrganizations(organizationVOS);
+        vo.setPages(page);
+        vo.setSize(size);
+        vo.setTotal(total);
+        return vo;
+    }
+
+    /**
+     * @Description: ���������������������������������������
+     * @Param: [dto]
+     * @return: com.moral.api.pojo.vo.organization.OrganizationVO
+     * @Author: ���������
+     * @Date: 2021/3/26
+     */
+    private static OrganizationVO convertToQueryPage(OrganizationDTO dto) {
+        OrganizationVO vo = new OrganizationVO();
+        Organization organization = dto.getOrganization();
+        Organization parentOrganization = dto.getParentOrganization();
+        Date createTime = organization.getCreateTime();
+        Date expireTime = organization.getExpireTime();
+        String createTimeStr = DateUtils.dateToDateString(createTime, "yyyy-MM-dd");
+        String exipreTimeStr = DateUtils.dateToDateString(expireTime, "yyyy-MM-dd");
+
+        vo.setName(organization.getName());
+        if (!ObjectUtils.isEmpty(parentOrganization))
+            vo.setParentName(parentOrganization.getName());
+        vo.setPhone(organization.getPhone());
+        vo.setEmail(organization.getEmail());
+        vo.setWechat(organization.getWechat());
+        vo.setAddress(organization.getAddress());
+        vo.setCreateTime(createTimeStr);
+        vo.setExpireTime(exipreTimeStr);
+        return vo;
+    }
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationUpdateVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationUpdateVO.java
index a120ba2..b5fd463 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationUpdateVO.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationUpdateVO.java
@@ -19,6 +19,7 @@
             return null;
         OrganizationUpdateVO vo = new OrganizationUpdateVO();
         Organization organization = dto.getOrganization();
+
         vo.setId(organization.getId());
         vo.setName(organization.getName());
         return vo;
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationVO.java
index d0e6261..5d8af57 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationVO.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationVO.java
@@ -24,6 +24,8 @@
 
     private String name;
 
+    private String parentName;
+
     private Integer provinceCode;
 
     private Integer cityCode;
diff --git a/screen-manage/src/main/java/com/moral/api/service/ManageAccountService.java b/screen-manage/src/main/java/com/moral/api/service/ManageAccountService.java
index 69f9ed4..8af5c2e 100644
--- a/screen-manage/src/main/java/com/moral/api/service/ManageAccountService.java
+++ b/screen-manage/src/main/java/com/moral/api/service/ManageAccountService.java
@@ -45,7 +45,7 @@
            * @Author: ���������
            * @Date: 2021/3/13
            */
-    AccountInsertDTO insertAccount(AccountInsertForm accountInsertForm);
+    AccountDTO insertAccount(AccountInsertForm accountInsertForm);
 
     /**
     * @Description: ������������
@@ -63,7 +63,7 @@
             * @Author: ���������
             * @Date: 2021/3/15
             */
-    AccountUpdateDTO updateAccount(AccountUpdateForm accountUpdateForm);
+    AccountDTO updateAccount(AccountUpdateForm accountUpdateForm);
 
     /**
     * @Description: ������������
@@ -72,5 +72,5 @@
             * @Author: ���������
             * @Date: 2021/3/16
             */
-    AccountDeleteDTO deleteAccount(AccountDeleteForm accountDeleteForm);
+    AccountDTO deleteAccount(AccountDeleteForm accountDeleteForm);
 }
diff --git a/screen-manage/src/main/java/com/moral/api/service/ManageLogService.java b/screen-manage/src/main/java/com/moral/api/service/ManageLogService.java
index cec721b..0383b65 100644
--- a/screen-manage/src/main/java/com/moral/api/service/ManageLogService.java
+++ b/screen-manage/src/main/java/com/moral/api/service/ManageLogService.java
@@ -9,7 +9,7 @@
  * </p>
  *
  * @author moral
- * @since 2021-03-09
+ * @since 2021-03-31
  */
 public interface ManageLogService extends IService<ManageLog> {
 
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java
index 08da75a..c2b8aad 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java
@@ -22,11 +22,10 @@
 import com.moral.api.pojo.form.login.LogoutForm;
 import com.moral.api.service.ManageAccountService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.api.config.mybatis.wrapper.NullFilterWrapper;
 import com.moral.constant.Constants;
 import com.moral.constant.ResponseCodeEnum;
-import com.moral.util.AESUtils;
-import com.moral.util.MD5Utils;
-import com.moral.util.TokenUtils;
+import com.moral.util.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -57,12 +56,12 @@
 
 
     /**
-     * @Description: ������
-     * @Param: [parameters]
-     * @return: java.util.Map<java.lang.String                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               java.lang.Object>
-     * @Author: ���������
-     * @Date: 2021/3/11
-     */
+    * @Description: ������������
+            * @Param: [loginForm]
+            * @return: com.moral.api.pojo.dto.login.LoginDTO
+            * @Author: ���������
+            * @Date: 2021/3/30
+            */
     @Override
     public LoginDTO login(LoginForm loginForm) {
         LoginDTO loginDTO = new LoginDTO();
@@ -129,7 +128,7 @@
     /**
      * @Description: ������
      * @Param: [parameters]
-     * @return: java.util.Map<java.lang.String                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               ,                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               java.lang.Object>
+     * @return:
      * @Author: ���������
      * @Date: 2021/3/11
      */
@@ -150,40 +149,28 @@
      */
     @Override
     @Transactional
-    public AccountInsertDTO insertAccount(AccountInsertForm accountInsertForm) {
-        AccountInsertDTO accountInsertDTO = new AccountInsertDTO();
+    public AccountDTO insertAccount(AccountInsertForm accountInsertForm) {
+        AccountDTO accountDTO = new AccountDTO();
         //������
-        String account = accountInsertForm.getAccount();
-        String AESPassword = accountInsertForm.getPassword();
-        String password = MD5Utils.saltMD5(AESUtils.decrypt(AESPassword));
-        String userName = accountInsertForm.getUserName();
-        String email = accountInsertForm.getEmail();
-        String mobile = accountInsertForm.getMobile();
-        String wechat = accountInsertForm.getWechat();
+        ManageAccount manageAccount = accountInsertForm.formConvertEntity();
         List<String> roleIdsStr = accountInsertForm.getRoleIds();
 
         /*������������������������*/
         ManageAccount existAccount = new ManageAccount();
-        existAccount.setAccount(account);
+        existAccount.setAccount(manageAccount.getAccount());
         existAccount.setIsDelete(Constants.NOT_DELETE);
         QueryWrapper<ManageAccount> wrapper = new QueryWrapper<>();
         wrapper.setEntity(existAccount);
-        List<ManageAccount> exitAccounts = manageAccountMapper.selectList(wrapper);
-        if (!ObjectUtils.isEmpty(exitAccounts)) {
-            accountInsertDTO.setCode(ResponseCodeEnum.ACCOUNT_EXIST.getCode());
-            accountInsertDTO.setMsg(ResponseCodeEnum.ACCOUNT_EXIST.getMsg());
-            return accountInsertDTO;
+        ManageAccount exitAccountResult = manageAccountMapper.selectOne(wrapper);
+        if (!ObjectUtils.isEmpty(exitAccountResult)) {
+            accountDTO.setCode(ResponseCodeEnum.ACCOUNT_EXIST.getCode());
+            accountDTO.setMsg(ResponseCodeEnum.ACCOUNT_EXIST.getMsg());
+            return accountDTO;
         }
 
-        //������account
-        ManageAccount manageAccount = new ManageAccount();
-        manageAccount.setAccount(account);
-        manageAccount.setPassword(password);
-        manageAccount.setUserName(userName);
-        manageAccount.setEmail(email);
-        manageAccount.setMobile(mobile);
-        manageAccount.setWechat(wechat);
+        //������
         manageAccountMapper.insert(manageAccount);
+
         //������account_role
         /*String to Integer*/
         List<ManageRole> roles = null;
@@ -204,11 +191,11 @@
             roles = manageRoleMapper.selectBatchIds(roleIds);
         }
         //������������������
-        accountInsertDTO.setAccount(manageAccount);
-        accountInsertDTO.setRoles(roles);
-        accountInsertDTO.setCode(ResponseCodeEnum.SUCCESS.getCode());
-        accountInsertDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
-        return accountInsertDTO;
+        accountDTO.setAccount(manageAccount);
+        accountDTO.setRoles(roles);
+        accountDTO.setCode(ResponseCodeEnum.SUCCESS.getCode());
+        accountDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
+        return accountDTO;
     }
 
     /**
@@ -221,11 +208,10 @@
     @Override
     public AccountQueryDTO queryAccount(AccountQueryForm accountQueryForm) {
         AccountQueryDTO accountQueryDTO = new AccountQueryDTO();
+
         //������
         Integer pageCount = accountQueryForm.getPage();
         Integer size = accountQueryForm.getSize();
-        Integer accountId = accountQueryForm.getAccountId();
-        String account = accountQueryForm.getAccount();
         String userName = accountQueryForm.getUserName();
         String email = accountQueryForm.getEmail();
         String mobile = accountQueryForm.getMobile();
@@ -233,49 +219,34 @@
         String isDelete = accountQueryForm.getIsDelete();
         String order = accountQueryForm.getOrder();
         String orderType = accountQueryForm.getOrderType();
+        Date createStartTime = accountQueryForm.getCreateStartTime();
+        Date createEndTime = DateUtils.getDateOfDay(accountQueryForm.getCreateEndTime(), 1);
 
-        //������������
+        //������������������
         Page<ManageAccount> page = new Page<>(pageCount, size);
-        QueryWrapper<ManageAccount> wrapper = new QueryWrapper();
-        if (!ObjectUtils.isEmpty(accountId)) {
-            wrapper.eq("id", accountId);
+        NullFilterWrapper<ManageAccount> wrapper = new NullFilterWrapper<>();
+
+        wrapper.like("user_name", userName);
+        wrapper.like("email", email);
+        wrapper.like("mobile", mobile);
+        wrapper.like("wechat", wechat);
+        wrapper.between("create_time", createStartTime, createEndTime);
+
+        if (!ObjectUtils.isEmpty(order) && !ObjectUtils.isEmpty(orderType)) { //������������������������
+            if (orderType.equals(Constants.ORDER_ASC))
+                wrapper.orderByAsc(ConvertUtils.toLine(order));
+            else
+                wrapper.orderByDesc(ConvertUtils.toLine(order));
         }
 
-        if (!ObjectUtils.isEmpty(userName)) {
-            wrapper.like("user_name", userName);
-        }
-
-        if (!ObjectUtils.isEmpty(account)) {
-            wrapper.like("account", account);
-        }
-
-        if (!ObjectUtils.isEmpty(email)) {
-            wrapper.like("email", email);
-        }
-
-        if (!ObjectUtils.isEmpty(mobile)) {
-            wrapper.like("mobile", mobile);
-        }
-
-        if (!ObjectUtils.isEmpty(wechat)) {
-            wrapper.like("wechat", wechat);
-        }
-
-        if (!ObjectUtils.isEmpty(order)) {
-            if (!ObjectUtils.isEmpty(orderType)) {
-                if (orderType.equals(Constants.ORDER_ASC))
-                    wrapper.orderByAsc(order);
-                else
-                    wrapper.orderByDesc(order);
-            }
-        }
-
-        if (!ObjectUtils.isEmpty(isDelete))
+        if (!ObjectUtils.isEmpty(isDelete))//������������������������
             wrapper.eq("is_delete", isDelete);
         else
             wrapper.eq("is_delete", Constants.NOT_DELETE);
 
+        //������������
         Page resultPage = manageAccountMapper.selectPage(page, wrapper);
+
         //���������������������������
         List<ManageAccount> accounts = resultPage.getRecords();
         List<AccountDTO> accountDTOS = new ArrayList<>();
@@ -288,6 +259,7 @@
                 accountDTOS.add(accountDTO);
             }
         }
+
         //������������������
         accountQueryDTO.setAccountDTOS(accountDTOS);
         accountQueryDTO.setCurrent(resultPage.getCurrent());
@@ -309,64 +281,58 @@
      */
     @Override
     @Transactional
-    public AccountUpdateDTO updateAccount(AccountUpdateForm accountUpdateForm) {
-        AccountUpdateDTO accountUpdateDTO = new AccountUpdateDTO();
+    public AccountDTO updateAccount(AccountUpdateForm accountUpdateForm) {
+        AccountDTO accountDTO = new AccountDTO();
         //������
-        Integer accountId = accountUpdateForm.getAccountId();
-        String password = accountUpdateForm.getPassword();
-        String email = accountUpdateForm.getEmail();
-        String mobile = accountUpdateForm.getMobile();
-        String wechat = accountUpdateForm.getWechat();
-        String userName = accountUpdateForm.getUserName();
+        ManageAccount manageAccount = accountUpdateForm.formConvertEntity();
         List<Integer> roleIds = accountUpdateForm.getRoleIds();
+
         //������������������������������������
         QueryWrapper<ManageAccount> exitWrapper = new QueryWrapper<>();
         ManageAccount exitManageAccount = new ManageAccount();
-        exitManageAccount.setId(accountId);
+        exitManageAccount.setId(manageAccount.getId());
         exitManageAccount.setIsDelete(Constants.NOT_DELETE);
         exitWrapper.setEntity(exitManageAccount);
         List<ManageAccount> manageAccounts = manageAccountMapper.selectList(exitWrapper);
         if (ObjectUtils.isEmpty(manageAccounts)) {
-            accountUpdateDTO.setCode(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getCode());
-            accountUpdateDTO.setMsg(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg());
-            return accountUpdateDTO;
+            accountDTO.setCode(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getCode());
+            accountDTO.setMsg(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg());
+            return accountDTO;
         }
-        //������password
-        if(!ObjectUtils.isEmpty(password)){
-            password = MD5Utils.saltMD5(AESUtils.decrypt(password));
-        }
+
         //������ManageAccount���
-        ManageAccount manageAccount = new ManageAccount();
-        manageAccount.setPassword(password);
-        manageAccount.setEmail(email);
-        manageAccount.setMobile(mobile);
-        manageAccount.setWechat(wechat);
-        manageAccount.setUserName(userName);
-        QueryWrapper<ManageAccount> wrapper = new QueryWrapper<>();
-        wrapper.eq("id", accountId);
-        manageAccountMapper.update(manageAccount, wrapper);
+        manageAccountMapper.updateById(manageAccount);
+
         //���������������������������������ManageAccountRole���
-        /*������������������������������*/
-        if (!ObjectUtils.isEmpty(roleIds)) {
-            QueryWrapper<ManageAccountRole> deleteWrapper = new QueryWrapper<>();
-            deleteWrapper.eq("account_id", accountId);
-            manageAccountRoleMapper.delete(deleteWrapper);
+        /*
+         * ������roleIds���null������������������������������������������
+         * ������roleIds���������������������������������������������������
+         * ������roleIds���������������������������������������������
+         * */
+        List<ManageRole> roles = null;
+        if (roleIds != null) {
+            UpdateWrapper<ManageAccountRole> deleteWrapper = new UpdateWrapper<>();
+            deleteWrapper.eq("account_id", manageAccount.getId()).set("is_delete", Constants.DELETE);
+            manageAccountRoleMapper.update(null, deleteWrapper);
             /*������������������*/
             for (Integer roleId : roleIds) {
                 ManageAccountRole manageAccountRole = new ManageAccountRole();
-                manageAccountRole.setAccountId(accountId);
+                manageAccountRole.setAccountId(manageAccount.getId());
                 manageAccountRole.setRoleId(roleId);
                 manageAccountRoleMapper.insert(manageAccountRole);
             }
             //������������������������
-            List<ManageRole> manageRoles = manageRoleMapper.selectBatchIds(roleIds);
-            accountUpdateDTO.setRoles(manageRoles);
+            if (roleIds.size() != 0)
+                roles = manageRoleMapper.selectBatchIds(roleIds);
+        } else {
+            roles = manageRoleMapper.getManageRoleByAccountId(manageAccount.getId());
         }
+        accountDTO.setRoles(roles);
         //������������������
-        accountUpdateDTO.setCode(ResponseCodeEnum.SUCCESS.getCode());
-        accountUpdateDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
-        accountUpdateDTO.setAccount(manageAccountMapper.selectById(accountId));
-        return accountUpdateDTO;
+        accountDTO.setCode(ResponseCodeEnum.SUCCESS.getCode());
+        accountDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
+        accountDTO.setAccount(manageAccountMapper.selectById(manageAccount.getId()));
+        return accountDTO;
     }
 
 
@@ -379,8 +345,8 @@
      */
     @Override
     @Transactional
-    public AccountDeleteDTO deleteAccount(AccountDeleteForm accountDeleteForm) {
-        AccountDeleteDTO accountDeleteDTO = new AccountDeleteDTO();
+    public AccountDTO deleteAccount(AccountDeleteForm accountDeleteForm) {
+        AccountDTO accountDTO = new AccountDTO();
         //������
         Integer accountId = accountDeleteForm.getAccountId();
         //������������������
@@ -391,24 +357,24 @@
         queryWrapper.setEntity(manageAccount);
         ManageAccount existManageAccount = manageAccountMapper.selectOne(queryWrapper);
         if (ObjectUtils.isEmpty(existManageAccount)) {
-            accountDeleteDTO.setCode(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getCode());
-            accountDeleteDTO.setMsg(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg());
-            return accountDeleteDTO;
+            accountDTO.setCode(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getCode());
+            accountDTO.setMsg(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg());
+            return accountDTO;
         }
         //������������������
-        existManageAccount.setIsDelete(Constants.DELETE);
         UpdateWrapper<ManageAccount> deleteAccountWrapper = new UpdateWrapper<>();
-        deleteAccountWrapper.set("is_delete", Constants.DELETE).eq("id", manageAccount.getId());
+        deleteAccountWrapper.eq("id", accountId);
+        deleteAccountWrapper.set("is_delete", Constants.DELETE);
         manageAccountMapper.update(null, deleteAccountWrapper);
         //������������������������������
         UpdateWrapper<ManageAccountRole> deleteManageAccountRoleWrapper = new UpdateWrapper<>();
         deleteManageAccountRoleWrapper.set("is_delete", Constants.DELETE).eq("account_id", manageAccount.getId());
         manageAccountRoleMapper.update(null, deleteManageAccountRoleWrapper);
         //������������������
-        accountDeleteDTO.setCode(ResponseCodeEnum.SUCCESS.getCode());
-        accountDeleteDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
-        accountDeleteDTO.setAccount(existManageAccount);
-        return accountDeleteDTO;
+        accountDTO.setCode(ResponseCodeEnum.SUCCESS.getCode());
+        accountDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
+        accountDTO.setAccount(existManageAccount);
+        return accountDTO;
     }
 
 
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/ManageLogServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/ManageLogServiceImpl.java
index 30c5c3c..b6de096 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/ManageLogServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/ManageLogServiceImpl.java
@@ -12,7 +12,7 @@
  * </p>
  *
  * @author moral
- * @since 2021-03-09
+ * @since 2021-03-31
  */
 @Service
 public class ManageLogServiceImpl extends ServiceImpl<ManageLogMapper, ManageLog> implements ManageLogService {
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
index dc16393..ce8b1d6 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.moral.api.config.mybatis.wrapper.NullFilterWrapper;
 import com.moral.api.entity.Organization;
 import com.moral.api.mapper.OrganizationMapper;
 import com.moral.api.pojo.dto.organization.OrganizationDTO;
@@ -15,11 +16,15 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.moral.constant.Constants;
 import com.moral.constant.ResponseCodeEnum;
+import com.moral.util.ConvertUtils;
+import com.moral.util.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
+import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -55,8 +60,8 @@
         existOrganization.setName(organization.getName());
         existOrganization.setIsDelete(Constants.NOT_DELETE);
         queryWrapper.setEntity(existOrganization);
-        List<Organization> existOrganizations = organizationMapper.selectList(queryWrapper);
-        if (!ObjectUtils.isEmpty(existOrganizations)) {
+        Organization existOrganizationResult = organizationMapper.selectOne(queryWrapper);
+        if (!ObjectUtils.isEmpty(existOrganizationResult)) {
             organizationDTO.setCode(ResponseCodeEnum.ORGANIZATION_EXIST.getCode());
             organizationDTO.setMsg(ResponseCodeEnum.ORGANIZATION_EXIST.getMsg());
             return organizationDTO;
@@ -86,18 +91,19 @@
     }
 
     /**
-    * @Description: ������������������
-            * @Param: [organizationUpdateForm]
-            * @return: com.moral.api.pojo.dto.organization.OrganizationDTO
-            * @Author: ���������
-            * @Date: 2021/3/24
-            */
+     * @Description: ������������������
+     * @Param: [organizationUpdateForm]
+     * @return: com.moral.api.pojo.dto.organization.OrganizationDTO
+     * @Author: ���������
+     * @Date: 2021/3/24
+     */
     @Override
     @Transactional
     public OrganizationDTO updateOrganization(OrganizationUpdateForm organizationUpdateForm) {
         OrganizationDTO organizationDTO = new OrganizationDTO();
         //form���entity
         Organization organization = organizationUpdateForm.formConvertEntity();
+
         //������������������������
         QueryWrapper<Organization> existWrapper = new QueryWrapper<>();
         Organization existOrganization = new Organization();
@@ -105,15 +111,16 @@
         existOrganization.setIsDelete(Constants.NOT_DELETE);
         existWrapper.setEntity(existOrganization);
         existOrganization = organizationMapper.selectOne(existWrapper);
-        if(ObjectUtils.isEmpty(existOrganization)){
+        if (ObjectUtils.isEmpty(existOrganization)) {
             organizationDTO.setCode(ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getCode());
             organizationDTO.setMsg(ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getMsg());
             return organizationDTO;
         }
+
         //������������������������������������������������������
         Integer parentId = organization.getParentId();
         Organization parentOrganization = new Organization();
-        if (!ObjectUtils.isEmpty(parentId)&&parentId!=0) {
+        if (!ObjectUtils.isEmpty(parentId) && parentId != 0) {
             QueryWrapper<Organization> existParentWrapper = new QueryWrapper<>();
             parentOrganization.setId(parentId);
             parentOrganization.setIsDelete(Constants.NOT_DELETE);
@@ -125,8 +132,10 @@
                 return organizationDTO;
             }
         }
+
         //������������
         organizationMapper.updateById(organization);
+
         //������������������������
         organization = organizationMapper.selectById(organization.getId());
 
@@ -139,12 +148,12 @@
     }
 
     /**
-    * @Description: ������������������
-            * @Param: [organizationDeleteForm]
-            * @return: com.moral.api.pojo.dto.organization.OrganizationDTO
-            * @Author: ���������
-            * @Date: 2021/3/25
-            */
+     * @Description: ������������������
+     * @Param: [organizationDeleteForm]
+     * @return: com.moral.api.pojo.dto.organization.OrganizationDTO
+     * @Author: ���������
+     * @Date: 2021/3/25
+     */
     @Override
     @Transactional
     public OrganizationDTO deleteOrganization(OrganizationDeleteForm form) {
@@ -158,27 +167,27 @@
         QueryWrapper queryExistWrapper = new QueryWrapper();
         queryExistWrapper.setEntity(existOrganization);
         existOrganization = organizationMapper.selectOne(queryExistWrapper);
-        if(ObjectUtils.isEmpty(existOrganization)){
+        if (ObjectUtils.isEmpty(existOrganization)) {
             dto.setCode(ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getCode());
             dto.setMsg(ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getMsg());
             return dto;
         }
         //������������������
         UpdateWrapper deleteWrapper = new UpdateWrapper();
-        deleteWrapper.eq("id",id);
-        deleteWrapper.set("is_delete",Constants.DELETE);
-        organizationMapper.update(null,deleteWrapper);
+        deleteWrapper.eq("id", id);
+        deleteWrapper.set("is_delete", Constants.DELETE);
+        organizationMapper.update(null, deleteWrapper);
         //������������������������������������������������������������������parentId���0
-        if(form.getDeleteChildren().equals(Constants.DELETE_CHILDREN_ORG)){
+        if (form.getDeleteChildren().equals(Constants.DELETE_CHILDREN_ORG)) {
             UpdateWrapper deleteChildrenWrapper = new UpdateWrapper();
-            deleteChildrenWrapper.eq("parent_id",id);
-            deleteChildrenWrapper.set("is_delete",Constants.DELETE);
-            organizationMapper.update(null,deleteChildrenWrapper);
-        }else{
+            deleteChildrenWrapper.eq("parent_id", id);
+            deleteChildrenWrapper.set("is_delete", Constants.DELETE);
+            organizationMapper.update(null, deleteChildrenWrapper);
+        } else {
             UpdateWrapper updateChildrenWrapper = new UpdateWrapper();
-            updateChildrenWrapper.eq("parent_id",id);
-            updateChildrenWrapper.set("parent_id",0);
-            organizationMapper.update(null,updateChildrenWrapper);
+            updateChildrenWrapper.eq("parent_id", id);
+            updateChildrenWrapper.set("parent_id", 0);
+            organizationMapper.update(null, updateChildrenWrapper);
         }
 
         dto.setOrganization(existOrganization);
@@ -188,26 +197,90 @@
     }
 
     /**
-    * @Description: ������������������
-            * @Param: [organizationQueryForm]
-            * @return: com.moral.api.pojo.dto.organization.OrganizationQueryDTO
-            * @Author: ���������
-            * @Date: 2021/3/25
-            */
+     * @Description: ������������������
+     * @Param: [organizationQueryForm]
+     * @return: com.moral.api.pojo.dto.organization.OrganizationQueryDTO
+     * @Author: ���������
+     * @Date: 2021/3/25
+     */
     @Override
     public OrganizationQueryDTO queryOrganization(OrganizationQueryForm organizationQueryForm) {
         OrganizationQueryDTO dto = new OrganizationQueryDTO();
         //������
-        Organization organization = organizationQueryForm.formConvertEntity();
         Integer pageCount = organizationQueryForm.getPage();
         Integer size = organizationQueryForm.getSize();
+        Integer parentId = organizationQueryForm.getParentId();
+        String name = organizationQueryForm.getName();
+        Integer provinceCode = organizationQueryForm.getProvinceCode();
+        Integer cityCode = organizationQueryForm.getCityCode();
+        Integer areaCode = organizationQueryForm.getAreaCode();
+        Long townCode = organizationQueryForm.getTownCode();
+        Long villageCode = organizationQueryForm.getVillageCode();
+        String phone = organizationQueryForm.getPhone();
+        String email = organizationQueryForm.getEmail();
+        String wechat = organizationQueryForm.getWechat();
+        String isDelete = organizationQueryForm.getIsDelete();
         String order = organizationQueryForm.getOrder();
         String orderType = organizationQueryForm.getOrderType();
+        Date createStartTime = organizationQueryForm.getCreateStartTime();
+        Date createEndTime = DateUtils.getDateOfDay(organizationQueryForm.getCreateEndTime(), 1);
+        Date expireStartTime = organizationQueryForm.getExpireStartTime();
+        Date expireEndTime = DateUtils.getDateOfDay(organizationQueryForm.getExpireEndTime(), 1);
 
-        //������������
-        Page<Organization> page = new Page<>(pageCount,size);
-        QueryWrapper<Organization> queryWrapper = new QueryWrapper<>();
-        return null;
+        //������������
+        Page<Organization> page = new Page<>(pageCount, size);
+        NullFilterWrapper<Organization> queryWrapper = new NullFilterWrapper<>();
+
+        queryWrapper.eq("parent_id", parentId);
+        queryWrapper.like("name", name);
+        queryWrapper.eq("province_code", provinceCode);
+        queryWrapper.eq("city_code", cityCode);
+        queryWrapper.eq("area_code", areaCode);
+        queryWrapper.eq("town_code", townCode);
+        queryWrapper.eq("village_code", villageCode);
+        queryWrapper.like("phone", phone);
+        queryWrapper.like("email", email);
+        queryWrapper.like("wechat", wechat);
+        queryWrapper.between("create_time", createStartTime, createEndTime);
+        queryWrapper.between("expire_time", expireStartTime, expireEndTime);
+
+        if (!ObjectUtils.isEmpty(isDelete)) {
+            queryWrapper.eq("is_delete", isDelete);
+        } else {
+            queryWrapper.eq("is_delete", Constants.NOT_DELETE);
+        }
+
+        //������������
+        if (!ObjectUtils.isEmpty(order)) {
+            if (!ObjectUtils.isEmpty(orderType)) {
+                if (orderType.equals(Constants.ORDER_ASC))
+                    queryWrapper.orderByAsc(ConvertUtils.toLine(order));
+                else
+                    queryWrapper.orderByDesc(ConvertUtils.toLine(order));
+            }
+        }
+
+        //������������
+        Page<Organization> resultPage = organizationMapper.selectPage(page, queryWrapper);
+        List<Organization> organizations = resultPage.getRecords();
+        List<OrganizationDTO> organizationDTOS = new ArrayList<>();
+        //������������������������������
+        for (Organization child : organizations) {
+            OrganizationDTO resultDto = new OrganizationDTO();
+            Organization parent = organizationMapper.selectById(child.getParentId());
+            resultDto.setOrganization(child);
+            resultDto.setParentOrganization(parent);
+            organizationDTOS.add(resultDto);
+        }
+
+        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
+        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
+        dto.setOrganizationDTOS(organizationDTOS);
+        dto.setCurrent(page.getCurrent());
+        dto.setPage(page.getPages());
+        dto.setSize(page.getSize());
+        dto.setTotal(page.getTotal());
+        return dto;
     }
 
 
diff --git a/screen-manage/src/main/resources/application-dev.yml b/screen-manage/src/main/resources/application-dev.yml
index d865d5a..092bb7a 100644
--- a/screen-manage/src/main/resources/application-dev.yml
+++ b/screen-manage/src/main/resources/application-dev.yml
@@ -129,6 +129,7 @@
       - /organization/insert
       - /organization/update
       - /organization/delete
+      - /organization/query
 
       - /role/getAllManageRole
       - /role/getManageRoleByNameFuzzy
diff --git a/screen-manage/src/main/resources/mapper/ManageLogMapper.xml b/screen-manage/src/main/resources/mapper/ManageLogMapper.xml
index caccc42..bb54f7f 100644
--- a/screen-manage/src/main/resources/mapper/ManageLogMapper.xml
+++ b/screen-manage/src/main/resources/mapper/ManageLogMapper.xml
@@ -5,9 +5,10 @@
         <!-- ������������������������ -->
         <resultMap id="BaseResultMap" type="com.moral.api.entity.ManageLog">
                     <id column="id" property="id" />
+                    <result column="type" property="type" />
+                    <result column="module" property="module" />
                     <result column="content" property="content" />
-                    <result column="organization_id" property="organizationId" />
-                    <result column="operate_id" property="operateId" />
+                    <result column="account_id" property="accountId" />
                     <result column="ip" property="ip" />
                     <result column="create_time" property="createTime" />
         </resultMap>

--
Gitblit v1.8.0