diff --git a/app/src/main/java/com/supwisdom/activities/consumeMode/ConsumeModeActivity.kt b/app/src/main/java/com/supwisdom/activities/consumeMode/ConsumeModeActivity.kt
index 4e0d932..e7399e5 100644
--- a/app/src/main/java/com/supwisdom/activities/consumeMode/ConsumeModeActivity.kt
+++ b/app/src/main/java/com/supwisdom/activities/consumeMode/ConsumeModeActivity.kt
@@ -4,6 +4,8 @@
 import android.os.Bundle
 import android.os.CountDownTimer
 import android.view.KeyEvent
+import android.view.View
+import android.widget.LinearLayout
 import android.widget.TextView
 import com.supwisdom.R
 import com.supwisdom.activities.BaseActivity
@@ -21,6 +23,7 @@
  **/
 class ConsumeModeActivity : BaseActivity() {
     private lateinit var vPayamt: TextView
+    private lateinit var llHotList: LinearLayout
     private val pos = SPApplication.getInstance().getPos()
     private var keyActive = true
     private var shoppwdPass = false
@@ -30,10 +33,28 @@
         super.onCreate(savedInstanceState)
         this.setContentView(R.layout.activity_consume_mode)
         initView()
+        initData()
+    }
+
+    private fun initData() {
+
     }
 
     private fun initView() {
         vPayamt = findViewById<TextView>(R.id.tv_consume_mode_payamt)
+        llHotList = findViewById<LinearLayout>(R.id.ll_hot_list)
+        this.findViewById<TextView>(R.id.tv_hot_add).setOnClickListener {
+            val item = View.inflate(this, R.layout.item_hotkey_pay, null)
+            item.findViewById<TextView>(R.id.tv_hot_del).setOnClickListener {
+                llHotList.removeView(item)
+            }
+            val key = item.findViewById<TextView>(R.id.tv_hot_key)
+            key.text = "${llHotList.childCount + 1}"
+            llHotList.addView(item)
+        }
+        this.findViewById<TextView>(R.id.tv_hot_save).setOnClickListener {
+            finish()
+        }
     }
 
     private fun checkShopPwd(keyCode: Int) {
@@ -98,10 +119,9 @@
             KeyEvent.KEYCODE_7,
             KeyEvent.KEYCODE_8,
             KeyEvent.KEYCODE_9 -> addValueToEdit(keyCode - KeyEvent.KEYCODE_0)
-            KeyEvent.KEYCODE_DEL ->
-                //cancel
-                delValueToEdit()
-            KeyEvent.KEYCODE_POUND, KeyEvent.KEYCODE_PERIOD -> addDotToEdit()
+            KeyEvent.KEYCODE_DEL -> delValueToEdit()
+            KeyEvent.KEYCODE_POUND,
+            KeyEvent.KEYCODE_PERIOD -> addDotToEdit()
             KeyEvent.KEYCODE_ENTER -> {
                 pos.replaceControlPara(PublicDef.CONTROL_FIXAMT, getFixAmount())
                 jumpActivity(MenuActivity::class.java)
diff --git a/app/src/main/java/com/supwisdom/db/BeanPropEnum.kt b/app/src/main/java/com/supwisdom/db/BeanPropEnum.kt
index 5182e5f..f94037d 100644
--- a/app/src/main/java/com/supwisdom/db/BeanPropEnum.kt
+++ b/app/src/main/java/com/supwisdom/db/BeanPropEnum.kt
@@ -108,4 +108,9 @@
         status,
         upflag
     }
+
+    enum class HotkeyPay {
+        key,
+        amount
+    }
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/db/DBParaHelper.kt b/app/src/main/java/com/supwisdom/db/DBParaHelper.kt
index d2fd01f..c8e37aa 100644
--- a/app/src/main/java/com/supwisdom/db/DBParaHelper.kt
+++ b/app/src/main/java/com/supwisdom/db/DBParaHelper.kt
@@ -13,12 +13,13 @@
 class DBParaHelper private constructor(context: Context) : SQLiteOpenHelper(context, DB_NAME, null, VERSION) {
     companion object {
         private val DB_NAME = "db_para"
-        private val VERSION = 2
+        private val VERSION = 3
 
         val TABLE_NAME_SYSPARA = "tb_syspara"
         val TABLE_NAME_DYNAMICPARA = "tb_dynamicpara"
         val TABLE_NAME_CONTROLPARA = "tb_controlpara"
         val TABLE_NAME_WHITELIST = "tb_whitelist"
+        val TABLE_NAME_HOTKEY = "tb_hotkey"
 
         private var instance: DBParaHelper? = null
         fun getInstance(context: Context): DBParaHelper {
@@ -37,6 +38,10 @@
     /**
      * SQL for create table
      */
+    private val CREATE_TABLE_NAME_HOTKEY = ("create table IF NOT EXISTS "
+            + TABLE_NAME_HOTKEY + " ( "
+            + BeanPropEnum.HotkeyPay.key + " integer primary key,"
+            + BeanPropEnum.HotkeyPay.amount + " integer)")
     private val CREATE_TABLE_NAME_WHITELIST = ("create table IF NOT EXISTS "
             + TABLE_NAME_WHITELIST + " ( "
             + BeanPropEnum.WhiteList.cardphyid + " varchar(32),"
@@ -92,6 +97,7 @@
         db.execSQL(CREATE_TABLE_NAME_DYNAMICPARA)
         db.execSQL(CREATE_TABLE_NAME_CONTROLPARA)
         db.execSQL(CREATE_TABLE_NAME_WHITELIST)
+        db.execSQL(CREATE_TABLE_NAME_HOTKEY)
     }
 
     override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
@@ -99,6 +105,9 @@
             if (oldVersion < 2 && newVersion >= 2) {
                 db.execSQL("alter table $TABLE_NAME_SYSPARA add column ${BeanPropEnum.Syspara.maxDayOfflineAmt} integer")
             }
+            if (oldVersion < 3 && newVersion >= 3) {
+                db.execSQL(CREATE_TABLE_NAME_HOTKEY)
+            }
         }
     }
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/db/HotkeyPayDao.kt b/app/src/main/java/com/supwisdom/db/HotkeyPayDao.kt
new file mode 100644
index 0000000..3826967
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/db/HotkeyPayDao.kt
@@ -0,0 +1,98 @@
+package com.supwisdom.db
+
+import android.content.ContentValues
+import android.content.Context
+import android.database.Cursor
+import com.supwisdom.entity.HotKeyPayRecord
+import java.util.concurrent.locks.Lock
+
+/**
+ ** create by zzq on 2019/9/4
+ ** @desc
+ **/
+class HotkeyPayDao constructor(context: Context) {
+    private val dbHelper = DBParaHelper.getInstance(context)
+    private val TABLE = DBParaHelper.TABLE_NAME_HOTKEY
+
+    fun getLock(): Lock {
+        return dbHelper.getLock()
+    }
+
+    fun replace(record: HotKeyPayRecord): Boolean {
+        val db = dbHelper.readableDatabase
+        val values = getContentValues(record)
+        try {
+            db.beginTransaction()
+            if (db.replace(TABLE, null, values) > 0) {
+                db.setTransactionSuccessful()
+                return true
+            }
+        } finally {
+            db.endTransaction()
+        }
+        return false
+    }
+
+    fun save(list: List<HotKeyPayRecord>): Boolean {
+        val db = dbHelper.writableDatabase
+        try {
+            db.beginTransaction()
+            if (db.delete(TABLE, null, null) < 0) {
+                return false
+            }
+            list.forEach {
+                val values = getContentValues(it)
+                if (db.insert(TABLE, null, values) <= 0) {
+                    return false
+                }
+            }
+            db.setTransactionSuccessful()
+            return true
+        } finally {
+            db.endTransaction()
+        }
+    }
+
+    fun get(): List<HotKeyPayRecord>? {
+        val db = dbHelper.readableDatabase
+        var cursor: Cursor? = null
+        try {
+            cursor = db.query(TABLE, null, null, null, null, null, null)
+            val list = ArrayList<HotKeyPayRecord>()
+            while (cursor != null && cursor.moveToNext()) {
+                list.add(getRecord(cursor))
+            }
+            return list
+        } finally {
+            cursor?.close()
+        }
+    }
+
+    fun clear(): Boolean {
+        val db = dbHelper.writableDatabase
+        try {
+            db.beginTransaction()
+            if (db.delete(TABLE, null, null) < 0) {
+                return false
+            }
+            db.setTransactionSuccessful()
+            return true
+        } finally {
+            db.endTransaction()
+        }
+    }
+
+    private fun getRecord(cursor: Cursor): HotKeyPayRecord {
+        val record = HotKeyPayRecord()
+        record.key = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.HotkeyPay.key.toString()))
+        record.amount = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.HotkeyPay.amount.toString()))
+        return record
+    }
+
+    private fun getContentValues(record: HotKeyPayRecord): ContentValues {
+        val values = ContentValues()
+        values.put(BeanPropEnum.HotkeyPay.key.toString(), record.key)
+        values.put(BeanPropEnum.HotkeyPay.amount.toString(), record.amount)
+        return values
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/db/Pos.kt b/app/src/main/java/com/supwisdom/db/Pos.kt
index 660f201..00ae522 100644
--- a/app/src/main/java/com/supwisdom/db/Pos.kt
+++ b/app/src/main/java/com/supwisdom/db/Pos.kt
@@ -17,6 +17,7 @@
     private var sysRecord: SysParaRecord? = null
     private val controlParaDao = ControlParaDao(context)
     private val whiteListDao = WhiteListDao(context)
+    private val hotkeyPayDao = HotkeyPayDao(context)
     private val transdtlOnlineDao = TransdtlOnlineDao(sdContext)
     private val transdtlOfflineDao = TransdtlOfflineDao(sdContext)
     private val transdtlUnionDao = TransdtlUnionDao(sdContext)
@@ -54,6 +55,24 @@
         return cfgRecord
     }
 
+    fun saveHotkeyPay(list: List<HotKeyPayRecord>): Boolean {
+        try {
+            hotkeyPayDao.getLock().lock()
+            return hotkeyPayDao.save(list)
+        } finally {
+            hotkeyPayDao.getLock().unlock()
+        }
+    }
+
+    fun getHotkeyPay(): List<HotKeyPayRecord>? {
+        try {
+            hotkeyPayDao.getLock().lock()
+            return hotkeyPayDao.get()
+        } finally {
+            hotkeyPayDao.getLock().unlock()
+        }
+    }
+
     fun replaceControlPara(record: ControlParaRecord): Boolean {
         try {
             controlParaDao.getLock().lock()
@@ -278,7 +297,7 @@
     fun getTransdtlOfflineAmt(date: String, cardno: String, cardphyid: String): Int {
         try {
             transdtlOfflineDao.getLock().lock()
-            return transdtlOfflineDao.getOfflineAmt(date,cardno,cardphyid)
+            return transdtlOfflineDao.getOfflineAmt(date, cardno, cardphyid)
         } finally {
             transdtlOfflineDao.getLock().unlock()
         }
diff --git a/app/src/main/java/com/supwisdom/entity/HotKeyPayRecord.kt b/app/src/main/java/com/supwisdom/entity/HotKeyPayRecord.kt
new file mode 100644
index 0000000..4d8bb24
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/entity/HotKeyPayRecord.kt
@@ -0,0 +1,11 @@
+package com.supwisdom.entity
+
+/**
+ ** create by zzq on 2019/9/5
+ ** @desc
+ **/
+class HotKeyPayRecord {
+    var key: Int = 0
+    var amount: Int = 0
+
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_consume_mode.xml b/app/src/main/res/layout/activity_consume_mode.xml
index e738ecb..3ec88c5 100644
--- a/app/src/main/res/layout/activity_consume_mode.xml
+++ b/app/src/main/res/layout/activity_consume_mode.xml
@@ -7,38 +7,104 @@
         <TextView
                 style="@style/head_title_text_style"
                 android:text="消费模式"/>
-
-        <TextView
-                android:layout_width="match_parent"
+        <RadioGroup
                 android:layout_height="wrap_content"
-                android:padding="10dp"
-                android:text="none-普通消费\n值-定额消费\n单位(元)"
-                android:textColor="@color/light_blue2"
-                android:textSize="20sp"/>
-
-        <LinearLayout
                 android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:orientation="horizontal">
-
+                android:orientation="vertical">
+            <RadioButton
+                    android:id="@+id/rb_normal_mode"
+                    android:text="普通消费"
+                    style="@style/consume_mode_rb_style"
+                    android:checked="true"/>
+            <RadioButton
+                    android:id="@+id/rb_fix_mode"
+                    android:text="定额消费"
+                    style="@style/consume_mode_rb_style"/>
+            <RadioButton
+                    android:id="@+id/rb_hot_mode"
+                    android:text="快捷消费"
+                    style="@style/consume_mode_rb_style"/>
+        </RadioGroup>
+        <LinearLayout
+                android:id="@+id/ll_fix_mode"
+                android:visibility="gone"
+                android:orientation="vertical"
+                android:padding="10dp"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent">
             <TextView
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:padding="10dp"
-                    android:text="金额: "
-                    android:textColor="@color/light_blue2"
-                    android:textSize="30sp"/>
-
-            <TextView
-                    android:id="@+id/tv_consume_mode_payamt"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
-                    android:maxLength="6"
-                    android:padding="10dp"
-                    android:text="0"
+                    android:text="定额消费(单位:元)"
                     android:textColor="@color/light_blue2"
-                    android:textSize="30sp"/>
-        </LinearLayout>
+                    android:textSize="20sp"/>
 
+            <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:orientation="horizontal">
+
+                <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="金额: "
+                        android:textColor="@color/light_blue2"
+                        android:textSize="30sp"/>
+
+                <TextView
+                        android:id="@+id/tv_consume_mode_payamt"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:maxLength="8"
+                        android:text="0"
+                        android:textColor="@color/light_blue2"
+                        android:textSize="30sp"/>
+            </LinearLayout>
+        </LinearLayout>
+        <LinearLayout
+                android:id="@+id/ll_hot_mode"
+                android:orientation="vertical"
+                android:padding="10dp"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent">
+            <TextView
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:text="快捷消费(单位:元)"
+                    android:textColor="@color/light_blue2"
+                    android:textSize="20sp"/>
+            <LinearLayout
+                    android:orientation="horizontal"
+                    android:gravity="center"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content">
+                <TextView
+                        android:id="@+id/tv_hot_save"
+                        android:textSize="25sp"
+                        android:text="保存"
+                        android:background="@drawable/corner_bg_gray"
+                        android:padding="10dp"
+                        android:textColor="@color/light_blue2"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"/>
+                <TextView
+                        android:id="@+id/tv_hot_add"
+                        android:textSize="25sp"
+                        android:text="添加"
+                        android:layout_marginLeft="100dp"
+                        android:background="@drawable/corner_bg_gray"
+                        android:padding="10dp"
+                        android:textColor="@color/light_blue2"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"/>
+            </LinearLayout>
+
+            <LinearLayout
+                    android:id="@+id/ll_hot_list"
+                    android:layout_width="match_parent"
+                    android:orientation="vertical"
+                    android:layout_height="match_parent"/>
+
+        </LinearLayout>
     </LinearLayout>
 </LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_hotkey_pay.xml b/app/src/main/res/layout/item_hotkey_pay.xml
new file mode 100644
index 0000000..7ba2b51
--- /dev/null
+++ b/app/src/main/res/layout/item_hotkey_pay.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:orientation="horizontal"
+              android:background="@color/white"
+              android:layout_width="match_parent"
+              android:weightSum="5"
+              android:layout_marginTop="10dp"
+              android:layout_height="match_parent">
+    <TextView
+            android:layout_height="wrap_content"
+            android:layout_width="0dp"
+            android:layout_weight="1"
+            android:text="快捷键: "
+            android:textColor="@color/light_blue2"
+            android:textSize="25sp"/>
+    <TextView
+            android:id="@+id/tv_hot_key"
+            android:layout_height="wrap_content"
+            android:layout_width="0dp"
+            android:layout_weight="1"
+            android:text="1"
+            android:textColor="@color/cl_red"
+            android:textSize="25sp"/>
+    <EditText
+            android:id="@+id/tv_hot_amount"
+            android:layout_height="wrap_content"
+            android:layout_width="0dp"
+            android:inputType="numberDecimal"
+            android:layout_weight="2"
+            android:maxLines="1"
+            android:text="0"
+            android:textColor="@color/light_blue2"
+            android:textSize="25sp"/>
+    <TextView
+            android:id="@+id/tv_hot_del"
+            android:layout_height="wrap_content"
+            android:layout_width="0dp"
+            android:layout_weight="1"
+            android:text="删除"
+            android:layout_marginLeft="10dp"
+            android:gravity="center"
+            android:padding="10dp"
+            android:background="@drawable/corner_bg_gray"
+            android:textColor="@color/light_blue2"
+            android:textSize="25sp"/>
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 123c964..d85e0af 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -426,7 +426,12 @@
         <item name="android:textColor">@color/black</item>
         <item name="android:gravity">center</item>
     </style>
-
+    <style name="consume_mode_rb_style">
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:textSize">25sp</item>
+        <item name="android:textColor">@color/light_blue2</item>
+    </style>
     <style name="consume_pay_way_text_style">
         <item name="android:layout_height">wrap_content</item>
         <item name="android:layout_width">match_parent</item>
