Browse Source

5寸分机增加费用显示,并支持翻页查询

weizhengliang 2 năm trước cách đây
mục cha
commit
30d47b2b53
18 tập tin đã thay đổi với 421 bổ sung20 xóa
  1. 18 6
      android_bed/src/main/h5_3128/java/com/wdkl/app/ncs/callingbed/activity/CallingbedActivity.kt
  2. 81 0
      android_bed/src/main/h5_3128/java/com/wdkl/app/ncs/callingbed/adapter/CostItemAdapter2.kt
  3. 6 4
      android_bed/src/main/h5_3128/java/com/wdkl/app/ncs/callingbed/di/CallingbedComponent.kt
  4. 2 1
      android_bed/src/main/h5_3128/java/com/wdkl/app/ncs/callingbed/fragment/CostFragment.kt
  5. 144 0
      android_bed/src/main/h5_3128/java/com/wdkl/app/ncs/callingbed/fragment/CostFragment2.kt
  6. 5 0
      android_bed/src/main/h5_3128/res/drawable/ic_arrow_down.xml
  7. 5 0
      android_bed/src/main/h5_3128/res/drawable/ic_arrow_up.xml
  8. 2 2
      android_bed/src/main/h5_3128/res/layout/callingbed_main_lay.xml
  9. 43 0
      android_bed/src/main/h5_3128/res/layout/cost_view_lay.xml
  10. 52 0
      android_bed/src/main/h5_3128/res/layout/item_cost_detail2.xml
  11. 2 0
      middleware/src/main/code/com/wdkl/ncs/android/middleware/common/Constant.java
  12. 2 1
      middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/contract/callingbed/CostFragmentContract.kt
  13. 8 6
      middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/presenter/callingbed/CostFragmentPresenter.kt
  14. 43 0
      middleware/src/main/code/com/wdkl/ncs/android/middleware/model/vo/CustomerFeeConfig.java
  15. 2 0
      resource/src/main/res/values-es/strings.xml
  16. 2 0
      resource/src/main/res/values-ru/strings.xml
  17. 2 0
      resource/src/main/res/values-zh/strings.xml
  18. 2 0
      resource/src/main/res/values/strings.xml

+ 18 - 6
android_bed/src/main/h5_3128/java/com/wdkl/app/ncs/callingbed/activity/CallingbedActivity.kt

@@ -1059,11 +1059,17 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
 
         //费用
         else if (buffer[1].toInt() == 1 || buffer[1].toInt() == 2) {
-            /*if (skyCallFragment == null) {
+            if (skyCallFragment == null) {
                 runOnUiThread {
-                    clickVCost()
+                    if (costFragment == curFragment) {
+                        //当前在费用界面,返回上一页费用信息
+                        hideRightMenu(false)
+                        EventBus.getDefault().post(MessageEvent("up", Constant.EVENT_UPDATE_FEES))
+                    } else {
+                        clickVCost()
+                    }
                 }
-            }*/
+            }
         }
 
         //更多
@@ -1086,7 +1092,13 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
         else if (buffer[3].toInt() == 1 || buffer[3].toInt() == 2) {
             if (skyCallFragment == null) {
                 runOnUiThread {
-                    clickVSupport()
+                    if (costFragment == curFragment) {
+                        //当前在费用界面,请求下一页费用信息
+                        hideRightMenu(false)
+                        EventBus.getDefault().post(MessageEvent("down", Constant.EVENT_UPDATE_FEES))
+                    } else {
+                        clickVSupport()
+                    }
                 }
             }
         }
@@ -1175,7 +1187,7 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
         } else {
             if (isVisible(right_menu)) {
                 hideRightMenu(true)
-                switchToFragment(R.id.callingbed_main_frame, CostFragment(), costFragment)
+                switchToFragment(R.id.callingbed_main_frame, CostFragment2(), costFragment)
             } else {
                 showRightMenu()
             }
@@ -1762,7 +1774,7 @@ class CallingbedActivity :BaseActivity<CallingbedActivityPresenter, CallingbedMa
         backTimeout++
         if (backTimeout >= 2*60) {
             //费用、二维码界面超时返回主界面
-            if (costFragment.equals(curFragment) || qrCodeFragment.equals(curFragment)) {
+            if (qrCodeFragment.equals(curFragment)) {
                 if (Constant.DEVICE_STATUS == 1) {
                     switchToMainFragment()
                 }

+ 81 - 0
android_bed/src/main/h5_3128/java/com/wdkl/app/ncs/callingbed/adapter/CostItemAdapter2.kt

@@ -0,0 +1,81 @@
+package com.wdkl.app.ncs.callingbed.adapter
+
+import android.content.Context
+import android.support.v7.widget.RecyclerView
+import android.text.TextUtils
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import com.wdkl.app.ncs.callingbed.R
+import com.wdkl.ncs.android.lib.utils.TimeHandle
+import com.wdkl.ncs.android.middleware.model.vo.CustomerFeeConfigVO
+import com.wdkl.ncs.android.middleware.utils.StringUtil
+
+class CostItemAdapter2 : RecyclerView.Adapter<CostItemAdapter2.ViewHolder> {
+
+    private var context: Context
+    private var costData: ArrayList<CustomerFeeConfigVO>
+
+    constructor(context: Context, data: ArrayList<CustomerFeeConfigVO>) {
+        this.context = context
+        this.costData = data
+    }
+
+    override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): ViewHolder {
+        val view = LayoutInflater.from(parent?.context).inflate(R.layout.item_cost_detail2, parent, false)
+        val viewHolder = ViewHolder(view)
+
+        return viewHolder
+    }
+
+    override fun onBindViewHolder(holder: ViewHolder?, position: Int) {
+        holder?.costGroupName?.text = costData.get(position).groupName
+        if (costData.get(position).feeTime != null) {
+            holder?.costTime?.text = TimeHandle.getDateTime(costData.get(position).feeTime * 1000L, "yyyy-MM-dd HH:mm")
+        } else {
+            holder?.costTime?.text = "--"
+        }
+        if (!TextUtils.isEmpty(costData.get(position).unit)) {
+            holder?.costName?.text = costData.get(position).feeName + "/" + costData.get(position).unit
+        } else {
+            holder?.costName?.text = costData.get(position).feeName
+        }
+        holder?.costValue?.text = "" + costData.get(position).feeValue
+        if (!TextUtils.isEmpty(costData.get(position).description)) {
+            holder?.costDetail?.text = StringUtil.getResString(R.string.cost_detail) + costData.get(position).description
+        } else {
+            holder?.costDetail?.text = StringUtil.getResString(R.string.cost_detail)
+        }
+    }
+
+    override fun getItemCount(): Int {
+        return costData.size
+    }
+
+    fun updateCostData(data: List<CustomerFeeConfigVO>, clear: Boolean) {
+        if (clear) {
+            costData.clear()
+            costData.addAll(data)
+        } else {
+            costData.addAll(data)
+        }
+        notifyDataSetChanged()
+    }
+
+    class ViewHolder : RecyclerView.ViewHolder {
+        var costGroupName : TextView
+        var costTime : TextView
+        var costName : TextView
+        var costValue : TextView
+        var costDetail : TextView
+
+        constructor(item : View) : super(item) {
+            costGroupName = item.findViewById(R.id.tv_item_cost_group_name)
+            costTime = item.findViewById(R.id.tv_item_cost_time)
+            costName = item.findViewById(R.id.tv_item_cost_name)
+            costValue = item.findViewById(R.id.tv_item_cost_value)
+            costDetail = item.findViewById(R.id.tv_item_cost_detail)
+        }
+    }
+}

+ 6 - 4
android_bed/src/main/h5_3128/java/com/wdkl/app/ncs/callingbed/di/CallingbedComponent.kt

@@ -12,11 +12,13 @@ interface CallingbedComponent {
 
     fun inject(activity: AppUpdateActivity)
 
-    fun inject(activity: MainFragment)
+    fun inject(fragment: MainFragment)
 
-    fun inject(activity: CostFragment)
+    fun inject(fragment: CostFragment)
 
-    fun inject(activity: QrCodeFragment)
+    fun inject(fragment: CostFragment2)
 
-    fun inject(activity: TestFragment)
+    fun inject(fragment: QrCodeFragment)
+
+    fun inject(fragment: TestFragment)
 }

+ 2 - 1
android_bed/src/main/h5_3128/java/com/wdkl/app/ncs/callingbed/fragment/CostFragment.kt

@@ -14,6 +14,7 @@ import com.wdkl.ncs.android.lib.vo.filter
 import com.wdkl.ncs.android.middleware.common.Constant
 import com.wdkl.ncs.android.middleware.logic.contract.callingbed.CostFragmentContract
 import com.wdkl.ncs.android.middleware.logic.presenter.callingbed.CostFragmentPresenter
+import com.wdkl.ncs.android.middleware.model.vo.CustomerFeeConfig
 import com.wdkl.ncs.android.middleware.model.vo.CustomerFeeConfigByGroupNameVO
 import com.wdkl.ncs.android.middleware.model.vo.CustomerFeeConfigVO
 import kotlinx.android.synthetic.main.cost_view.*
@@ -51,7 +52,7 @@ class CostFragment : BaseFragment<CostFragmentPresenter, CostViewBinding>(), Cos
         rv_cost_main_view.adapter = CostItemAdapter(activity, cost)
     }
 
-    override fun showCustomCost2(customFees: ArrayList<CustomerFeeConfigVO>) {
+    override fun showCustomCost2(customFees: CustomerFeeConfig) {
         //
     }
 

+ 144 - 0
android_bed/src/main/h5_3128/java/com/wdkl/app/ncs/callingbed/fragment/CostFragment2.kt

@@ -0,0 +1,144 @@
+package com.wdkl.app.ncs.callingbed.fragment
+
+import android.support.v7.widget.LinearLayoutManager
+import android.util.Log
+import com.enation.javashop.net.engine.model.NetState
+import com.wdkl.app.ncs.callingbed.R
+import com.wdkl.app.ncs.callingbed.adapter.CostItemAdapter2
+import com.wdkl.app.ncs.callingbed.databinding.CostViewLayBinding
+import com.wdkl.app.ncs.callingbed.launch.CallingbedLaunch
+import com.wdkl.ncs.android.lib.base.BaseFragment
+import com.wdkl.ncs.android.lib.utils.showMessage
+import com.wdkl.ncs.android.lib.vo.filter
+import com.wdkl.ncs.android.middleware.common.Constant
+import com.wdkl.ncs.android.middleware.common.MessageEvent
+import com.wdkl.ncs.android.middleware.logic.contract.callingbed.CostFragmentContract
+import com.wdkl.ncs.android.middleware.logic.presenter.callingbed.CostFragmentPresenter
+import com.wdkl.ncs.android.middleware.model.vo.CustomerFeeConfig
+import com.wdkl.ncs.android.middleware.model.vo.CustomerFeeConfigByGroupNameVO
+import com.wdkl.ncs.android.middleware.model.vo.CustomerFeeConfigVO
+import kotlinx.android.synthetic.main.cost_view_lay.*
+import org.greenrobot.eventbus.EventBus
+import org.greenrobot.eventbus.Subscribe
+import org.greenrobot.eventbus.ThreadMode
+
+class CostFragment2 : BaseFragment<CostFragmentPresenter, CostViewLayBinding>(), CostFragmentContract.View {
+
+    private var pageNo = 1
+    private val pageSize = 2
+    private lateinit var adapter: CostItemAdapter2
+    private var totalSize = 0
+
+    override fun getLayId(): Int {
+        return R.layout.cost_view_lay
+    }
+
+    override fun bindDagger() {
+        CallingbedLaunch.component.inject(this)
+    }
+
+    override fun init() {
+        adapter = CostItemAdapter2(activity, ArrayList())
+        val layoutManager = LinearLayoutManager(activity)
+        rv_cost_main_view.layoutManager = layoutManager
+        rv_cost_main_view.adapter = adapter
+
+        if (Constant.CUSTOM_ID != -1) {
+            presenter.loadCustomCostByPage(pageNo, pageSize, Constant.CUSTOM_ID)
+        } else {
+            showMessage("no custom id")
+        }
+    }
+
+    override fun onStart() {
+        EventBus.getDefault().register(this)
+        super.onStart()
+    }
+
+    override fun onStop() {
+        EventBus.getDefault().unregister(this)
+        super.onStop()
+    }
+
+    override fun bindEvent() {
+
+    }
+
+    override fun destory() {
+        //
+    }
+
+    override fun showCustomCost(cost: ArrayList<CustomerFeeConfigByGroupNameVO>) {
+        //
+    }
+
+    override fun showCustomCost2(customFees: CustomerFeeConfig) {
+        totalSize = customFees.dataTotal
+        if (customFees.data.size > 0) {
+            tv_fees_page.text = "" + customFees.pageNo
+            adapter.updateCostData(customFees.data, true)
+        } else {
+            showMessage("No data!")
+        }
+    }
+
+    override fun onError(message: String, type: Int) {
+        //errorLog("error",message)
+        showMessage(message)
+    }
+
+    override fun onNoNet() {
+        showMessage("none network")
+    }
+
+    override fun complete(message: String, type: Int) {
+    }
+
+    override fun start() {
+    }
+
+    override fun networkMonitor(state: NetState) {
+        state.filter(onWifi = {
+
+        },onMobile = {
+
+        },offline = {
+
+        })
+    }
+
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    fun onMoonEvent(messageEvent: MessageEvent) {
+        if (messageEvent.type == Constant.EVENT_UPDATE_FEES) {
+            if (messageEvent.message is String) {
+                val action = messageEvent.message as String
+                if (action == "up") {
+                    if (Constant.CUSTOM_ID != -1) {
+                        //如果已经是第一页则提示
+                        if (pageNo <= 1) {
+                            pageNo = 1
+                            showMessage(R.string.str_first_page)
+                        } else {
+                            pageNo--
+                            presenter.loadCustomCostByPage(pageNo, pageSize, Constant.CUSTOM_ID)
+                        }
+                    } else {
+                        showMessage("no custom id")
+                    }
+                } else if (action == "down") {
+                    if (Constant.CUSTOM_ID != -1) {
+                        //如果是最后一页则提示
+                        if (pageNo * pageSize >= totalSize) {
+                            showMessage(R.string.str_last_page)
+                        } else {
+                            pageNo++
+                            presenter.loadCustomCostByPage(pageNo, pageSize, Constant.CUSTOM_ID)
+                        }
+                    } else {
+                        showMessage("no custom id")
+                    }
+                }
+            }
+        }
+    }
+}

+ 5 - 0
android_bed/src/main/h5_3128/res/drawable/ic_arrow_down.xml

@@ -0,0 +1,5 @@
+<vector android:height="24dp" android:tint="#202847"
+    android:viewportHeight="24" android:viewportWidth="24"
+    android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
+    <path android:fillColor="@android:color/white" android:pathData="M7.41,8.59L12,13.17l4.59,-4.58L18,10l-6,6 -6,-6 1.41,-1.41z"/>
+</vector>

+ 5 - 0
android_bed/src/main/h5_3128/res/drawable/ic_arrow_up.xml

@@ -0,0 +1,5 @@
+<vector android:height="24dp" android:tint="#202847"
+    android:viewportHeight="24" android:viewportWidth="24"
+    android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
+    <path android:fillColor="@android:color/white" android:pathData="M7.41,15.41L12,10.83l4.59,4.58L18,14l-6,-6 -6,6z"/>
+</vector>

+ 2 - 2
android_bed/src/main/h5_3128/res/layout/callingbed_main_lay.xml

@@ -115,9 +115,9 @@
                     android:paddingTop="10dp"
                     android:paddingBottom="10dp"
                     android:background="@mipmap/bg_bottom_btn"
-                    android:drawableLeft="@mipmap/ic_more"
+                    android:drawableLeft="@mipmap/ic_cost"
                     android:drawablePadding="4dp"
-                    android:text="@string/str_empty"
+                    android:text="@string/str_fees"
                     android:textColor="@drawable/selector_bottom_btn_text_color"
                     android:textSize="24sp"/>
 

+ 43 - 0
android_bed/src/main/h5_3128/res/layout/cost_view_lay.xml

@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layout>
+
+    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+        <LinearLayout
+            android:id="@+id/ll_fee_bars"
+            android:layout_width="40dp"
+            android:layout_height="match_parent"
+            android:layout_alignParentRight="true"
+            android:orientation="vertical">
+
+            <TextView
+                android:id="@+id/tv_fees_page"
+                android:layout_width="match_parent"
+                android:layout_height="24dp"
+                android:gravity="center"
+                android:textColor="#000000"
+                android:textSize="20sp" />
+
+            <ImageView
+                android:layout_width="match_parent"
+                android:layout_height="160dp"
+                android:src="@drawable/ic_arrow_up"/>
+
+            <ImageView
+                android:layout_width="match_parent"
+                android:layout_height="220dp"
+                android:src="@drawable/ic_arrow_down"/>
+
+        </LinearLayout>
+
+        <android.support.v7.widget.RecyclerView
+            android:id="@+id/rv_cost_main_view"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_marginBottom="6dp"
+            android:layout_toLeftOf="@id/ll_fee_bars" />
+
+    </RelativeLayout>
+</layout>

+ 52 - 0
android_bed/src/main/h5_3128/res/layout/item_cost_detail2.xml

@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="200dp"
+    android:padding="20dp"
+    android:layout_marginBottom="16dp"
+    android:background="@color/white">
+    <TextView
+        android:id="@+id/tv_item_cost_group_name"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textSize="24sp"
+        android:textColor="@color/main_color"/>
+
+    <TextView
+        android:id="@+id/tv_item_cost_time"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentRight="true"
+        android:textSize="22sp"
+        android:textColor="#A4A4A4"/>
+
+    <TextView
+        android:id="@+id/tv_item_cost_name"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="12dp"
+        android:layout_below="@id/tv_item_cost_group_name"
+        android:textSize="22sp"
+        android:textColor="@color/black"/>
+
+    <TextView
+        android:id="@+id/tv_item_cost_value"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="12dp"
+        android:layout_alignParentRight="true"
+        android:layout_below="@id/tv_item_cost_group_name"
+        android:textSize="22sp"
+        android:textColor="@color/black"/>
+
+    <TextView
+        android:id="@+id/tv_item_cost_detail"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/tv_item_cost_name"
+        android:layout_marginTop="12dp"
+        android:textSize="22sp"
+        android:textColor="#A4A4A4"/>
+
+</RelativeLayout>

+ 2 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/common/Constant.java

@@ -263,4 +263,6 @@ public class Constant {
     public static final int EVENT_UPDATE_NURSING_CONFIG = 0x17;
 
     public static final int EVENT_TCP_BREAK = 0x18; //tcp掉线
+
+    public static final int EVENT_UPDATE_FEES = 0x19;
 }

+ 2 - 1
middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/contract/callingbed/CostFragmentContract.kt

@@ -1,6 +1,7 @@
 package com.wdkl.ncs.android.middleware.logic.contract.callingbed
 
 import com.wdkl.ncs.android.lib.base.BaseContract
+import com.wdkl.ncs.android.middleware.model.vo.CustomerFeeConfig
 import com.wdkl.ncs.android.middleware.model.vo.CustomerFeeConfigByGroupNameVO
 import com.wdkl.ncs.android.middleware.model.vo.CustomerFeeConfigVO
 
@@ -9,7 +10,7 @@ interface CostFragmentContract {
 
         fun showCustomCost(cost: ArrayList<CustomerFeeConfigByGroupNameVO>)
 
-        fun showCustomCost2(customFees: ArrayList<CustomerFeeConfigVO>)
+        fun showCustomCost2(customFees: CustomerFeeConfig)
 
         fun onNoNet()
     }

+ 8 - 6
middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/presenter/callingbed/CostFragmentPresenter.kt

@@ -11,6 +11,7 @@ import com.wdkl.ncs.android.lib.utils.*
 import com.wdkl.ncs.android.middleware.api.BedDeviceApi
 import com.wdkl.ncs.android.middleware.di.MiddlewareDaggerComponent
 import com.wdkl.ncs.android.middleware.logic.contract.callingbed.CostFragmentContract
+import com.wdkl.ncs.android.middleware.model.vo.CustomerFeeConfig
 import com.wdkl.ncs.android.middleware.model.vo.CustomerFeeConfigByGroupNameVO
 import com.wdkl.ncs.android.middleware.model.vo.CustomerFeeConfigVO
 import io.reactivex.disposables.Disposable
@@ -55,7 +56,7 @@ class CostFragmentPresenter @Inject constructor() : RxPresenter<CostFragmentCont
         }
 
         override fun onNextWithConnection(result: Any, connectionQuality: ConnectionQuality) {
-            providerView().showCustomCost2(result as ArrayList<CustomerFeeConfigVO>)
+            providerView().showCustomCost2(result as CustomerFeeConfig)
         }
 
         override fun onErrorWithConnection(error: ExceptionHandle.ResponeThrowable, connectionQuality: ConnectionQuality) {
@@ -90,13 +91,14 @@ class CostFragmentPresenter @Inject constructor() : RxPresenter<CostFragmentCont
     override fun loadCustomCostByPage(pageNo: Int, pageSize: Int, customId: Int) {
         bedDeviceApi.getCustomCostByPage(pageNo, pageSize, customId)
             .map {
-                var data = ArrayList<CustomerFeeConfigVO>()
-                var gson = GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create()
-                it.toJsonObject().valueJsonArray("data").arrayObjects().forEach({ dic ->
+                /*val data = ArrayList<CustomerFeeConfigVO>()
+                val gson = GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create()
+                it.toJsonObject().valueJsonArray("data").arrayObjects().forEach { dic ->
                     data.add(gson.fromJson(dic.toString(), CustomerFeeConfigVO::class.java))
-                })
+                }*/
 
-                return@map data
+                val gson = GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create()
+                return@map gson.fromJson(it.getJsonString(), CustomerFeeConfig::class.java)
             }
             .compose(ThreadFromUtils.defaultSchedulers())
             .subscribe(observer2)

+ 43 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/model/vo/CustomerFeeConfig.java

@@ -0,0 +1,43 @@
+package com.wdkl.ncs.android.middleware.model.vo;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+
+public class CustomerFeeConfig implements Serializable {
+    private Integer pageNo;
+    private Integer pageSize;
+    private Integer dataTotal;
+    private ArrayList<CustomerFeeConfigVO> data;
+
+    public Integer getPageNo() {
+        return pageNo;
+    }
+
+    public void setPageNo(Integer pageNo) {
+        this.pageNo = pageNo;
+    }
+
+    public Integer getPageSize() {
+        return pageSize;
+    }
+
+    public void setPageSize(Integer pageSize) {
+        this.pageSize = pageSize;
+    }
+
+    public Integer getDataTotal() {
+        return dataTotal;
+    }
+
+    public void setDataTotal(Integer dataTotal) {
+        this.dataTotal = dataTotal;
+    }
+
+    public ArrayList<CustomerFeeConfigVO> getData() {
+        return data;
+    }
+
+    public void setData(ArrayList<CustomerFeeConfigVO> data) {
+        this.data = data;
+    }
+}

+ 2 - 0
resource/src/main/res/values-es/strings.xml

@@ -118,6 +118,8 @@
     <string name="advice_end_time">End time: </string>
     <string name="advice_content">Content</string>
     <string name="advice_detail">Detail</string>
+    <string name="str_first_page">First page!</string>
+    <string name="str_last_page">Last page!</string>
 
     <string name="download_error">Error de descarga!</string>
     <string name="download_cancel">Cancelar descarga</string>

+ 2 - 0
resource/src/main/res/values-ru/strings.xml

@@ -115,6 +115,8 @@
     <string name="advice_end_time">End time: </string>
     <string name="advice_content">Content</string>
     <string name="advice_detail">Detail</string>
+    <string name="str_first_page">First page!</string>
+    <string name="str_last_page">Last page!</string>
 
     <string name="download_error">Ошибка загрузки!</string>
     <string name="download_cancel">Отмена загрузки</string>

+ 2 - 0
resource/src/main/res/values-zh/strings.xml

@@ -118,6 +118,8 @@
     <string name="advice_end_time">结束时间: </string>
     <string name="advice_content">内容</string>
     <string name="advice_detail">参数</string>
+    <string name="str_first_page">已是第一页!</string>
+    <string name="str_last_page">已是最后一页!</string>
 
     <string name="download_error">下载路径异常</string>
     <string name="download_cancel">取消下载</string>

+ 2 - 0
resource/src/main/res/values/strings.xml

@@ -118,6 +118,8 @@
     <string name="advice_end_time">End time: </string>
     <string name="advice_content">Content</string>
     <string name="advice_detail">Detail</string>
+    <string name="str_first_page">First page!</string>
+    <string name="str_last_page">Last page!</string>
 
     <string name="download_error">Download error!</string>
     <string name="download_cancel">Download cancel</string>