diff --git a/config/application-devel-pg-local.properties b/config/application-devel-pg-local.properties
index 3602345..175bb6b 100644
--- a/config/application-devel-pg-local.properties
+++ b/config/application-devel-pg-local.properties
@@ -16,3 +16,5 @@
 jwt.secret=Zj5taLomEbrM0lk+NMQZbHfSxaDU1wekjT+kiC3YzDw=
 # timeout seconds
 jwt.expiration=3600
+# user password
+auth.password.bcrypt.seed=
diff --git a/src/main/java/com/supwisdom/dlpay/consume/domain/TAccount.java b/src/main/java/com/supwisdom/dlpay/consume/domain/TAccount.java
index 9dd87c1..d4a4d21 100644
--- a/src/main/java/com/supwisdom/dlpay/consume/domain/TAccount.java
+++ b/src/main/java/com/supwisdom/dlpay/consume/domain/TAccount.java
@@ -7,7 +7,9 @@
 import javax.persistence.*;
 
 @Entity
-@Table(name = "TB_ACCOUNT")
+@Table(name = "TB_ACCOUNT",
+    indexes = {@Index(name = "acc_userid_idx", columnList = "userid"),
+        @Index(name = "acc_status_idx", columnList = "status")})
 public class TAccount {
   @Id
   @GenericGenerator(name = "idGenerator", strategy = "uuid")
@@ -15,52 +17,52 @@
   @Column(name = "ACCNO", nullable = false, length = 32)
   private String accno; //账号
 
-  @Column(name="ACCNAME", length = 100)
+  @Column(name = "ACCNAME", length = 100)
   private String accname; //账户名
 
-  @Column(name="SUBJNO", length = 10)
+  @Column(name = "SUBJNO", length = 10)
   private String subjno; //科目号
 
-  @Column(name="USERID", nullable = false, length = 32)
+  @Column(name = "USERID", nullable = false, length = 32)
   private String userid; //用户ID
 
-  @Column(name="STATUS", nullable = false, length = 20)
+  @Column(name = "STATUS", nullable = false, length = 20)
   private String status; //状态：normal-正常；closed-注销；locked-冻结
 
-  @Column(name="BALANCE", nullable = false, precision = 15, scale = 2)
+  @Column(name = "BALANCE", nullable = false, precision = 15, scale = 2)
   private Double balance; //总余额
 
-  @Column(name="AVAILBAL", nullable = false, precision = 15, scale = 2)
+  @Column(name = "AVAILBAL", nullable = false, precision = 15, scale = 2)
   private Double availbal; //可用余额
 
-  @Column(name="FROZEBAL", nullable = false, precision = 15, scale = 2)
+  @Column(name = "FROZEBAL", nullable = false, precision = 15, scale = 2)
   private Double frozebal; //冻结金额
 
-  @Column(name="LOWFREE_FLAG", nullable = false, precision = 1, scale = 0)
+  @Column(name = "LOWFREE_FLAG", nullable = false, precision = 1, scale = 0)
   private Boolean lowfreeFlag; //低额免密开关
 
-  @Column(name="LOWFREE_LIMIT", precision = 9, scale = 2)
+  @Column(name = "LOWFREE_LIMIT", precision = 9, scale = 2)
   private Double lowfreeLimit; //免密额度
 
-  @Column(name="DAYLIMIT", precision = 9, scale = 2)
+  @Column(name = "DAY_LIMIT", precision = 9, scale = 2)
   private Double daylimit; // 日累计消费额度
 
-  @Column(name="MAXBAL",  precision = 15, scale = 2)
+  @Column(name = "MAX_BAL", precision = 15, scale = 2)
   private Double maxbal; // 最大余额限制
 
-  @Column(name = "LASTTRANSDATE", length = 8)
+  @Column(name = "LAST_TRANSDATE", length = 8)
   private String lasttransdate; //最后交易日期
 
-  @Column(name="LASTDAY_TRANSAMT",  precision = 9, scale = 2)
+  @Column(name = "LASTDAY_TRANSAMT", precision = 9, scale = 2)
   private Double lastdayTransamt; //最后一天消费金额
 
-  @Column(name="LASTDAY_DPSAMT",  precision = 9, scale = 2)
+  @Column(name = "LASTDAY_DPSAMT", precision = 9, scale = 2)
   private Double lastdayDpsamt; //最后一天充值金额
 
-  @Column(name="TAC",  length = 32)
+  @Column(name = "TAC", length = 32)
   private String tac; //校验
 
-  @Column(name="OPENDATE", nullable = false, length = 8)
+  @Column(name = "OPENDATE", nullable = false, length = 8)
   private String opendate;
 
   @Column(name = "CLOSEDATE", length = 8)
@@ -233,14 +235,14 @@
     this.closedate = closedate;
   }
 
-  public String  generateTac(){
-    String data = this.accno+ MoneyUtil.YuanToFen(this.availbal)+MoneyUtil.YuanToFen(this.balance)+MoneyUtil.YuanToFen(this.frozebal);
+  public String generateTac() {
+    String data = this.accno + MoneyUtil.YuanToFen(this.availbal) + MoneyUtil.YuanToFen(this.balance) + MoneyUtil.YuanToFen(this.frozebal);
     return MD5.generatePassword(data, this.accno);
   }
 
-  public boolean tacCheck(){
+  public boolean tacCheck() {
     String tac_c = generateTac();
-    if (tac_c.equalsIgnoreCase(this.tac)||this.tac==null) {
+    if (tac_c.equalsIgnoreCase(this.tac) || this.tac == null) {
       return true;
     }
     return false;
@@ -252,9 +254,9 @@
     this.tac = this.generateTac();
   }
 
-  public boolean checkOverflow(){
-    if(null!=this.maxbal && this.maxbal>0){
-      if(MoneyUtil.moneyCompare(this.balance,this.maxbal)>0){
+  public boolean checkOverflow() {
+    if (null != this.maxbal && this.maxbal > 0) {
+      if (MoneyUtil.moneyCompare(this.balance, this.maxbal) > 0) {
         return true; //超出账户最大值
       }
     }
diff --git a/src/main/java/com/supwisdom/dlpay/consume/domain/TPerson.java b/src/main/java/com/supwisdom/dlpay/consume/domain/TPerson.java
index c5bceb6..cfe4872 100644
--- a/src/main/java/com/supwisdom/dlpay/consume/domain/TPerson.java
+++ b/src/main/java/com/supwisdom/dlpay/consume/domain/TPerson.java
@@ -5,7 +5,8 @@
 import javax.persistence.*;
 
 @Entity
-@Table(name = "TB_PERSON")
+@Table(name = "TB_PERSON",
+    indexes = {@Index(name = "person_name_idx", columnList = "name")})
 public class TPerson {
   @Id
   @GenericGenerator(name = "idGenerator", strategy = "uuid")
@@ -19,7 +20,7 @@
   @Column(name = "SEX", length = 10)
   private String sex;
 
-  @Column(name = "STATUS",nullable = false, length = 10)
+  @Column(name = "STATUS", nullable = false, length = 10)
   private String status;
 
   @Column(name = "IDTYPE", length = 20)
@@ -54,7 +55,7 @@
 
   /**
    * 第三方唯一标识，可为学工号，银行卡号等
-   * */
+   */
   @Column(name = "THIRD_UNIQUE_IDENTY", length = 32)
   private String thirdUniqueIdenty;
 
diff --git a/src/main/java/com/supwisdom/dlpay/consume/domain/TUserdtl.java b/src/main/java/com/supwisdom/dlpay/consume/domain/TUserdtl.java
index 4b59d98..5826052 100644
--- a/src/main/java/com/supwisdom/dlpay/consume/domain/TUserdtl.java
+++ b/src/main/java/com/supwisdom/dlpay/consume/domain/TUserdtl.java
@@ -1,12 +1,13 @@
 package com.supwisdom.dlpay.consume.domain;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Id;
-import javax.persistence.Table;
+import javax.persistence.*;
 
 @Entity
-@Table(name = "TB_USERDTL")
+@Table(name = "TB_USERDTL",
+    indexes = {@Index(name = "userdtl_transdate_idx", columnList = "transdate"),
+        @Index(name = "userdtl_accdate_idx", columnList = "accdate"),
+        @Index(name = "userdtl_status_idx", columnList = "status"),
+        @Index(name = "userdtl_reverse_idx", columnList = "REVERSE_FLAG")})
 public class TUserdtl {
   @Id
   @Column(name = "REFNO", nullable = false, length = 32)
diff --git a/src/main/java/com/supwisdom/dlpay/framework/core/PasswordBCryptConfig.java b/src/main/java/com/supwisdom/dlpay/framework/core/PasswordBCryptConfig.java
new file mode 100644
index 0000000..1743e2e
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/framework/core/PasswordBCryptConfig.java
@@ -0,0 +1,28 @@
+package com.supwisdom.dlpay.framework.core;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class PasswordBCryptConfig {
+  @Value("${auth.password.bcrypt.length:10}")
+  private Integer length;
+  @Value("${auth.password.bcrypt.seed}")
+  private String seed = "";
+
+  public Integer getLength() {
+    return length;
+  }
+
+  public void setLength(Integer length) {
+    this.length = length;
+  }
+
+  public String getSeed() {
+    return seed;
+  }
+
+  public void setSeed(String seed) {
+    this.seed = seed;
+  }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/framework/dao/OperRoleDao.java b/src/main/java/com/supwisdom/dlpay/framework/dao/OperRoleDao.java
index 72dc37a..292a999 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/dao/OperRoleDao.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/dao/OperRoleDao.java
@@ -10,6 +10,6 @@
 @Repository
 public interface OperRoleDao extends JpaRepository<TOperRole, String> {
 
-  @Query(value = "select distinct role_code from TB_OPER_ROLE a,TB_ROLE b where a.role_id=b.role_id and a.operid=?1", nativeQuery = true)
+  @Query(value = "select distinct rolecode from TB_OPER_ROLE a,TB_ROLE b where a.roleid=b.roleid and a.operid=?1", nativeQuery = true)
   List<String> getRolecodeByOperid(String operid);
 }
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TFunction.java b/src/main/java/com/supwisdom/dlpay/framework/domain/TFunction.java
index 5b7beab..8c135e8 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/domain/TFunction.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/domain/TFunction.java
@@ -13,22 +13,22 @@
   @Column(name="ID", nullable = false, length = 32)
   private String id;
 
-  @Column(name="PARENT_ID", length = 32)
+  @Column(name="PARENTID", length = 32)
   private String parentId;
 
   @Column(name="NAME", length = 32)
   private String name;
 
-  @Column(name="MENU_URL", nullable = false, length = 60)
+  @Column(name="MENUURL", nullable = false, length = 60)
   private String menuUrl; //菜单url
 
-  @Column(name="IS_LEAF", nullable = false, precision = 1)
+  @Column(name="ISLEAF", nullable = false, precision = 1)
   private Integer isLeaf;
 
-  @Column(name="ORDER_NUM", precision = 9)
+  @Column(name="ORDERNUM", precision = 9)
   private Integer orderNum;
 
-  @Column(name="MENU_ICON", precision = 9)
+  @Column(name="MENUICON", precision = 9)
   private String menuIcon;
 
   @Column(name="CREATETIME", length = 14)
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TOperRole.java b/src/main/java/com/supwisdom/dlpay/framework/domain/TOperRole.java
index f889fac..d17c273 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/domain/TOperRole.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/domain/TOperRole.java
@@ -5,18 +5,19 @@
 import javax.persistence.*;
 
 @Entity
-@Table(name = "TB_OPER_ROLE")
+@Table(name = "TB_OPER_ROLE",
+    indexes = {@Index(name = "operrole_operid_idx", columnList = "operid")})
 public class TOperRole {
   @Id
   @GenericGenerator(name = "idGenerator", strategy = "uuid")
   @GeneratedValue(generator = "idGenerator")
-  @Column(name="ID", nullable = false, length = 32)
+  @Column(name = "ID", nullable = false, length = 32)
   private String id;
 
-  @Column(name="ROLE_ID", nullable = false, length = 32)
+  @Column(name = "ROLEID", nullable = false, length = 32)
   private String roleId;
 
-  @Column(name="OPERID", nullable = false, length = 32)
+  @Column(name = "OPERID", nullable = false, length = 32)
   private String operid;
 
   public String getId() {
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TOperator.java b/src/main/java/com/supwisdom/dlpay/framework/domain/TOperator.java
index 6285302..520f19a 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/domain/TOperator.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/domain/TOperator.java
@@ -9,33 +9,34 @@
 import java.util.Collection;
 
 @Entity
-@Table(name = "TB_OPERATOR")
+@Table(name = "TB_OPERATOR",
+    indexes = {@Index(name = "opercode_idx", columnList = "OPERCODE", unique = true)})
 public class TOperator implements UserDetails {
   @Id
   @GenericGenerator(name = "idGenerator", strategy = "uuid")
   @GeneratedValue(generator = "idGenerator")
-  @Column(name="OPERID", nullable = false, length = 32)
+  @Column(name = "OPERID", nullable = false, length = 32)
   private String operid;
 
-  @Column(name="OPERCODE", nullable = false, length = 20)
+  @Column(name = "OPERCODE", nullable = false, length = 20)
   private String opercode;
 
-  @Column(name="OPERTYPE", nullable = false, length = 20)
+  @Column(name = "OPERTYPE", nullable = false, length = 20)
   private String opertype;
 
-  @Column(name="OPERNAME", nullable = false, length = 100)
+  @Column(name = "OPERNAME", nullable = false, length = 100)
   private String opername;
 
-  @Column(name="OPERPWD", nullable = false, length = 80)
+  @Column(name = "OPERPWD", nullable = false, length = 80)
   private String operpwd;
 
-  @Column(name="STATUS", nullable = false, length = 32)
+  @Column(name = "STATUS", nullable = false, length = 32)
   private String status;
 
-  @Column(name="OPENDATE", length = 8)
+  @Column(name = "OPENDATE", length = 8)
   private String opendate;
 
-  @Column(name="CLOSEDATE", length = 8)
+  @Column(name = "CLOSEDATE", length = 8)
   private String closedate;
 
   @Transient
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TRole.java b/src/main/java/com/supwisdom/dlpay/framework/domain/TRole.java
index 6be9d78..3112259 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/domain/TRole.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/domain/TRole.java
@@ -10,16 +10,16 @@
   @Id
   @GenericGenerator(name = "idGenerator", strategy = "uuid")
   @GeneratedValue(generator = "idGenerator")
-  @Column(name="ROLE_ID", nullable = false, length = 32)
+  @Column(name="ROLEID", nullable = false, length = 32)
   private String roleId;
 
-  @Column(name="ROLE_NAME", nullable = false, length = 60)
+  @Column(name="ROLENAME", nullable = false, length = 60)
   private String roleName;
 
-  @Column(name="ROLE_CODE", nullable = false, length = 20)
+  @Column(name="ROLECODE", nullable = false, length = 20)
   private String roleCode;
 
-  @Column(name="ROLE_DESC", length = 60)
+  @Column(name="ROLEDESC", length = 60)
   private String roleDesc;
 
   @Column(name="EDITFLAG", length = 60)
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TRoleFunction.java b/src/main/java/com/supwisdom/dlpay/framework/domain/TRoleFunction.java
index 3475cd3..91f4307 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/domain/TRoleFunction.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/domain/TRoleFunction.java
@@ -13,10 +13,10 @@
   @Column(name="ID", nullable = false, length = 32)
   private String id;
 
-  @Column(name="ROLE_ID", nullable = false, length = 32)
+  @Column(name="ROLEID", nullable = false, length = 32)
   private String roleId;
 
-  @Column(name="FUNCTION_ID", nullable = false, length = 32)
+  @Column(name="FUNCTIONID", nullable = false, length = 32)
   private String functionId;
 
   public String getId() {
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TSettlectl.java b/src/main/java/com/supwisdom/dlpay/framework/domain/TSettlectl.java
index 80895c6..73dbf10 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/domain/TSettlectl.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/domain/TSettlectl.java
@@ -12,10 +12,10 @@
   @Column(name="BOOKSETNO", nullable = false, precision = 2)
   private Integer booksetno;
 
-  @Column(name="PERIOD_YEAR", nullable = false, precision = 4)
+  @Column(name="PERIODYEAR", nullable = false, precision = 4)
   private Integer periodYear;
 
-  @Column(name="PERIOD_MONTH", nullable = false, precision = 2)
+  @Column(name="PERIODMONTH", nullable = false, precision = 2)
   private Integer periodMonth;
 
   @Column(name="STATDATE", precision = 8)
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TVoucher.java b/src/main/java/com/supwisdom/dlpay/framework/domain/TVoucher.java
index d2faa89..7f42c1f 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/domain/TVoucher.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/domain/TVoucher.java
@@ -13,10 +13,10 @@
   @Column(name="VOUCHERID", nullable = false, length = 32)
   private String voucherid;
 
-  @Column(name="PERIOD_YEAR", precision = 8)
+  @Column(name="PERIODYEAR", precision = 8)
   private Integer periodYear;
 
-  @Column(name="PERIOD_MONTH", precision = 2)
+  @Column(name="PERIODMONTH", precision = 2)
   private Integer periodMonth;
 
   @Column(name="VOUCHERNO", precision = 9)
diff --git a/src/main/java/com/supwisdom/dlpay/framework/domain/TVouchernoCtl.java b/src/main/java/com/supwisdom/dlpay/framework/domain/TVouchernoCtl.java
index 8b010c4..24f75c3 100644
--- a/src/main/java/com/supwisdom/dlpay/framework/domain/TVouchernoCtl.java
+++ b/src/main/java/com/supwisdom/dlpay/framework/domain/TVouchernoCtl.java
@@ -12,7 +12,7 @@
   @Column(name="VOUCHERTYPE", nullable = false, precision = 2)
   private Integer vouchertype;
 
-  @Column(name="PERIOD_MONTH", nullable = false, precision = 2)
+  @Column(name="PERIODMONTH", nullable = false, precision = 2)
   private Integer periodMonth;
 
   @Column(name = "VOUCHERNO", nullable = false, precision = 9)
diff --git a/src/main/kotlin/com/supwisdom/dlpay/framework/controller/security_controller.kt b/src/main/kotlin/com/supwisdom/dlpay/framework/controller/security_controller.kt
index 147270b..5bcea3a 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/framework/controller/security_controller.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/framework/controller/security_controller.kt
@@ -15,6 +15,7 @@
 import com.supwisdom.dlpay.framework.util.HmacUtil
 import com.supwisdom.dlpay.system.service.CommonService
 import com.supwisdom.dlpay.system.service.FunctionService
+import mu.KotlinLogging
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.http.HttpStatus
 import org.springframework.http.ResponseEntity
@@ -122,10 +123,10 @@
 }
 
 
-data class LoginForm(val username: String, val password: String, val imageCode: String)
-
 @Controller
 class WebHomeController {
+
+    private val logger = KotlinLogging.logger {}
     @Autowired
     lateinit var functionService: FunctionService
     @Autowired
@@ -137,12 +138,13 @@
     @GetMapping("/logout")
     fun logout(request: HttpServletRequest, response: HttpServletResponse): String {
         SecurityContextHolder.getContext().authentication?.also {
+            logger.debug { "user logout!!" }
             SecurityContextLogoutHandler().logout(request, response, it)
         }
         return "redirect:/login?logout"
     }
 
-    @GetMapping("/index")
+    @GetMapping(value = ["/", "/index"])
     fun homeView(@AuthenticationPrincipal operUser: UserDetails, model: Model): String {
         model.addAttribute("loginOper", operUser as TOperator)
         val funclist = functionService.getFunctionsByOperid(operUser.operid)
diff --git a/src/main/kotlin/com/supwisdom/dlpay/security.kt b/src/main/kotlin/com/supwisdom/dlpay/security.kt
index 5b375ff..491cc46 100644
--- a/src/main/kotlin/com/supwisdom/dlpay/security.kt
+++ b/src/main/kotlin/com/supwisdom/dlpay/security.kt
@@ -2,6 +2,7 @@
 
 import com.supwisdom.dlpay.framework.core.JwtConfig
 import com.supwisdom.dlpay.framework.core.JwtTokenUtil
+import com.supwisdom.dlpay.framework.core.PasswordBCryptConfig
 import com.supwisdom.dlpay.framework.security.ValidateCodeSecurityConfig
 import com.supwisdom.dlpay.framework.service.OperatorDetailService
 import org.jose4j.jwt.consumer.InvalidJwtException
@@ -26,6 +27,7 @@
 import org.springframework.security.web.authentication.rememberme.JdbcTokenRepositoryImpl
 import org.springframework.security.web.util.matcher.AntPathRequestMatcher
 import org.springframework.web.filter.OncePerRequestFilter
+import java.security.SecureRandom
 import javax.servlet.FilterChain
 import javax.servlet.http.HttpServletRequest
 import javax.servlet.http.HttpServletResponse
@@ -54,7 +56,6 @@
 @EnableWebSecurity
 class WebSecurityConfig {
 
-
     companion object {
         @Configuration
         @Order(1)
@@ -94,6 +95,8 @@
             lateinit var authenticationFailureHandler: AuthenticationFailureHandler
             @Autowired
             lateinit var authenticationSuccessHandler: AuthenticationSuccessHandler
+            @Autowired
+            lateinit var passwordBCryptConfig: PasswordBCryptConfig
 
 
             @Autowired
@@ -113,7 +116,12 @@
 
             @Bean
             fun passwordEncoder(): BCryptPasswordEncoder {
-                return BCryptPasswordEncoder()
+                return if (passwordBCryptConfig.seed.isBlank()) {
+                    BCryptPasswordEncoder()
+                } else {
+                    BCryptPasswordEncoder(passwordBCryptConfig.length,
+                            SecureRandom(passwordBCryptConfig.seed.toByteArray()))
+                }
             }
 
             @Bean
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 6abc8d8..b54e727 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -18,3 +18,8 @@
 spring.thymeleaf.mode=HTML5
 spring.thymeleaf.cache=false
 spring.thymeleaf.enabled=true
+
+################################################
+# user password
+auth.password.bcrypt.length=10
+
