Browse Source

从服务端拿json转换为java对象完成

allen 4 years ago
parent
commit
35d9fda6bf

+ 2 - 1
hello/src/main/java/com/wdkl/ncs/android/component/hello/activity/HelloListActivity.kt

@@ -17,6 +17,7 @@ import com.wdkl.ncs.android.lib.utils.push
 import com.wdkl.ncs.android.lib.utils.showMessage
 import com.wdkl.ncs.android.middleware.logic.contract.hello.HelloListActivityContract
 import com.wdkl.ncs.android.middleware.logic.presenter.hello.HelloListActivityPresenter
+import com.wdkl.ncs.android.middleware.model.JavaShopItem
 import com.wdkl.ncs.android.middleware.model.ShopItem
 import kotlinx.android.synthetic.main.hello_list_act_lay.*
 
@@ -88,7 +89,7 @@ class HelloListActivity : BaseActivity<HelloListActivityPresenter, HelloListActL
 //        }
     }
 
-    override fun render(data: ArrayList<ShopItem>) {
+    override fun render(data: ArrayList<JavaShopItem>) {
         if (page == 1){
             refresh.resetNoMoreData()
             if (data.size >0){

+ 2 - 1
hello/src/main/java/com/wdkl/ncs/android/component/hello/adapter/HelloItemAdapter.kt

@@ -9,10 +9,11 @@ import com.wdkl.ncs.android.component.hello.R
 import com.wdkl.ncs.android.component.hello.databinding.HelloListItemLayBinding
 import com.wdkl.ncs.android.lib.adapter.BaseDelegateAdapter
 import com.wdkl.ncs.android.lib.utils.BaseRecyclerViewHolder
+import com.wdkl.ncs.android.middleware.model.JavaShopItem
 import com.wdkl.ncs.android.middleware.model.ShopItem
 import kotlinx.android.synthetic.main.hello_list_item_lay.view.*
 
-class HelloItemAdapter(val data:ArrayList<ShopItem>) : BaseDelegateAdapter<BaseRecyclerViewHolder<HelloListItemLayBinding>,ShopItem>(){
+class HelloItemAdapter(val data:ArrayList<JavaShopItem>) : BaseDelegateAdapter<BaseRecyclerViewHolder<HelloListItemLayBinding>,JavaShopItem>(){
     override fun dataProvider(): Any {
         return data
     }

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

@@ -2,11 +2,12 @@ package com.wdkl.ncs.android.middleware.logic.contract.hello
 
 import com.wdkl.ncs.android.lib.base.BaseContract
 import com.wdkl.ncs.android.middleware.model.ChildCategoryShell
+import com.wdkl.ncs.android.middleware.model.JavaShopItem
 import com.wdkl.ncs.android.middleware.model.ShopItem
 
 interface HelloListActivityContract{
     interface View : BaseContract.BaseView{
-        fun render(data: ArrayList<ShopItem>)
+        fun render(data: ArrayList<JavaShopItem>)
     }
     interface Presenter : BaseContract.BasePresenter{
         fun loadData(keyWord :String ,page : Int)

+ 9 - 7
middleware/src/main/code/com/wdkl/ncs/android/middleware/logic/presenter/hello/HelloListActivityPresenter.kt

@@ -3,14 +3,15 @@ package com.wdkl.ncs.android.middleware.logic.presenter.hello
 import com.enation.javashop.net.engine.plugin.connection.ConnectionQuality
 import com.enation.javashop.net.engine.plugin.exception.ExceptionHandle
 import com.enation.javashop.net.engine.utils.ThreadFromUtils
+import com.google.gson.FieldNamingPolicy
+import com.google.gson.Gson
+import com.google.gson.GsonBuilder
 import com.wdkl.ncs.android.lib.base.RxPresenter
-import com.wdkl.ncs.android.lib.utils.ConnectionObserver
-import com.wdkl.ncs.android.lib.utils.arrayObjects
-import com.wdkl.ncs.android.lib.utils.toJsonObject
-import com.wdkl.ncs.android.lib.utils.valueJsonArray
+import com.wdkl.ncs.android.lib.utils.*
 import com.wdkl.ncs.android.middleware.api.ShopApi
 import com.wdkl.ncs.android.middleware.di.MiddlewareDaggerComponent
 import com.wdkl.ncs.android.middleware.logic.contract.hello.HelloListActivityContract
+import com.wdkl.ncs.android.middleware.model.JavaShopItem
 import com.wdkl.ncs.android.middleware.model.ShopItem
 import io.reactivex.disposables.Disposable
 import javax.inject.Inject
@@ -29,7 +30,7 @@ class HelloListActivityPresenter @Inject constructor(): RxPresenter<HelloListAct
 
         override fun onNextWithConnection(result: Any, connectionQuality: ConnectionQuality) {
             providerView().complete("")
-            providerView().render(result as ArrayList<ShopItem>)
+            providerView().render(result as ArrayList<JavaShopItem>)
         }
 
         override fun onErrorWithConnection(error: ExceptionHandle.ResponeThrowable, connectionQuality: ConnectionQuality) {
@@ -44,9 +45,10 @@ class HelloListActivityPresenter @Inject constructor(): RxPresenter<HelloListAct
     override fun loadData(keyWord: String, page: Int) {
         shopApi.getShopList(page,10,keyWord)
                 .map {
-                    var shop = ArrayList<ShopItem>()
+                    var shop = ArrayList<JavaShopItem>()
+                    var gson = GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create()
                     it.toJsonObject().valueJsonArray("data").arrayObjects().forEach({ dic ->
-                        shop.add(ShopItem.map( dic))
+                        shop.add(gson.fromJson(dic.toString(),JavaShopItem::class.java))
                     })
                     return@map shop
                 }

+ 61 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/model/JavaShopItem.java

@@ -0,0 +1,61 @@
+package com.wdkl.ncs.android.middleware.model;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+
+public class JavaShopItem implements Serializable {
+    private String shopName;
+    private Integer shopCollect;
+    private String shopLogo;
+    private Integer shopId;
+    private Integer collectId;
+    private ArrayList<GoodsItemViewModel> goodsList;
+
+    public String getShopName() {
+        return shopName;
+    }
+
+    public void setShopName(String shopName) {
+        this.shopName = shopName;
+    }
+
+    public Integer getShopCollect() {
+        return shopCollect;
+    }
+
+    public void setShopCollect(Integer shopCollect) {
+        this.shopCollect = shopCollect;
+    }
+
+    public String getShopLogo() {
+        return shopLogo;
+    }
+
+    public void setShopLogo(String shopLogo) {
+        this.shopLogo = shopLogo;
+    }
+
+    public Integer getShopId() {
+        return shopId;
+    }
+
+    public void setShopId(Integer shopId) {
+        this.shopId = shopId;
+    }
+
+    public Integer getCollectId() {
+        return collectId;
+    }
+
+    public void setCollectId(Integer collectId) {
+        this.collectId = collectId;
+    }
+
+    public ArrayList<GoodsItemViewModel> getGoodsList() {
+        return goodsList;
+    }
+
+    public void setGoodsList(ArrayList<GoodsItemViewModel> goodsList) {
+        this.goodsList = goodsList;
+    }
+}