Переглянути джерело

优化机构列表和推荐机构

316044749 7 роки тому
батько
коміт
2d98a389dc

+ 59 - 10
app/src/main/java/com/ynstkz/shitu/android/activity/OrgDetailActivity.java

@@ -2,6 +2,11 @@ package com.ynstkz.shitu.android.activity;
 
 import android.os.Bundle;
 import android.support.annotation.Nullable;
+import android.support.v4.view.ViewPager;
+import android.widget.LinearLayout;
+import android.widget.ListView;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
 
 import com.common.library.okhttp.callback.Callback;
 import com.google.gson.Gson;
@@ -10,6 +15,7 @@ import com.ynstkz.shitu.android.base.TitleBarActivity;
 import com.ynstkz.shitu.android.bean.OrgDetailBean;
 import com.ynstkz.shitu.android.data.RequestGroup;
 
+import butterknife.Bind;
 import okhttp3.Call;
 import okhttp3.Response;
 
@@ -18,7 +24,30 @@ import okhttp3.Response;
  * 作者:fuchangle on 2018/2/24 15:31
  */
 
-public class OrgDetailActivity extends TitleBarActivity{
+public class OrgDetailActivity extends TitleBarActivity {
+
+    @Bind(R.id.tv_title)
+    TextView tvTitle;
+    @Bind(R.id.view_title)
+    RelativeLayout viewTitle;
+    @Bind(R.id.vp_banner)
+    ViewPager vpBanner;
+    @Bind(R.id.tv_org_name)
+    TextView tvOrgName;
+    @Bind(R.id.tv_org_phone)
+    TextView tvOrgPhone;
+    @Bind(R.id.tv_org_desc)
+    TextView tvOrgDesc;
+    @Bind(R.id.lv_course)
+    ListView lvCourse;
+    @Bind(R.id.ll_comment)
+    LinearLayout llComment;
+    @Bind(R.id.lv_recommend)
+    ListView lvRecommend;
+    @Bind(R.id.tv_collectcount)
+    TextView tvCollectcount;
+    @Bind(R.id.tv_address)
+    TextView tvAddress;
 
     private int memberId;
 
@@ -35,26 +64,27 @@ public class OrgDetailActivity extends TitleBarActivity{
         return R.layout.activity_org_detail;
     }
 
-    private void initView(){
+    private void initView() {
 
     }
 
-    private void initData(){
+    private void initData() {
         memberId = getIntent().getIntExtra("memberId", 0);
         getOrgDetail(memberId);
     }
 
-    private void setListener(){
+    private void setListener() {
 
     }
 
     /**
      * 获取机构详情
+     *
      * @param memberId
      */
-    private void getOrgDetail(int memberId){
+    private void getOrgDetail(int memberId) {
 
-        RequestGroup.getOrgDetail(memberId+"", new Callback() {
+        RequestGroup.getOrgDetail(memberId + "", new Callback() {
             @Override
             public Object parseNetworkResponse(Response response, int id) throws Exception {
                 return new Gson().fromJson(response.body().string(), OrgDetailBean.class);
@@ -67,10 +97,10 @@ public class OrgDetailActivity extends TitleBarActivity{
 
             @Override
             public void onResponse(Object response, int id) {
-                OrgDetailBean orgDetailBean = (OrgDetailBean)response;
-                if(orgDetailBean != null){
-                    if("200".equals(orgDetailBean.getCode())){
-                        showToast("success");
+                OrgDetailBean orgDetailBean = (OrgDetailBean) response;
+                if (orgDetailBean != null) {
+                    if ("200".equals(orgDetailBean.getCode())) {
+                        initOrgData(orgDetailBean);
                     } else {
                         showToast(orgDetailBean.getMsg());
                     }
@@ -78,4 +108,23 @@ public class OrgDetailActivity extends TitleBarActivity{
             }
         });
     }
+
+    /**
+     * 初始化机详情
+     *
+     * @param orgDetailBean
+     */
+    private void initOrgData(OrgDetailBean orgDetailBean) {
+        if (orgDetailBean == null || orgDetailBean.getData() == null) {
+            return;
+        }
+        OrgDetailBean.DataBean dataBean = orgDetailBean.getData();
+        tvTitle.setText(dataBean.getMemberName());
+        tvOrgName.setText(dataBean.getMemberName());
+        tvOrgPhone.setText(dataBean.getPhone());
+        tvCollectcount.setText("收藏:" + dataBean.getCollectCount() + "次");
+        tvAddress.setText(dataBean.getAddress());
+        tvOrgDesc.setText(dataBean.getIntroduction());
+
+    }
 }

+ 2 - 3
app/src/main/java/com/ynstkz/shitu/android/adapter/OrgListAdapter.java

@@ -1,12 +1,10 @@
 package com.ynstkz.shitu.android.adapter;
 
 import android.content.Context;
-import android.text.TextUtils;
 import android.view.View;
 import android.widget.ImageView;
 import android.widget.TextView;
 
-import com.common.library.Constants;
 import com.common.library.adapter.CCAdapterHolder;
 import com.common.library.adapter.CCListAdapter;
 import com.ynstkz.shitu.android.R;
@@ -56,7 +54,8 @@ public class OrgListAdapter extends CCListAdapter<OrgItemBean> {
 
             @Override
             public void updateView(OrgItemBean content, int position) {
-
+                tv_memberName.setText(content.getMemberName());
+                rb_score.setProgress(content.getScore() * 2);
             }
         };
     }

+ 74 - 0
app/src/main/java/com/ynstkz/shitu/android/bean/EvaluateListBean.java

@@ -0,0 +1,74 @@
+package com.ynstkz.shitu.android.bean;
+
+import com.ynstkz.shitu.android.base.BaseBean;
+
+/**
+ * 作者:fuchangle on 2018/3/6 16:04
+ */
+
+public class EvaluateListBean extends BaseBean{
+
+    private int evaluateId;
+    private int userId;
+    private int memberId;
+    private int score;
+    private Object content;
+    private Object createTime;
+    private Object updateTime;
+
+    public int getEvaluateId() {
+        return evaluateId;
+    }
+
+    public void setEvaluateId(int evaluateId) {
+        this.evaluateId = evaluateId;
+    }
+
+    public int getUserId() {
+        return userId;
+    }
+
+    public void setUserId(int userId) {
+        this.userId = userId;
+    }
+
+    public int getMemberId() {
+        return memberId;
+    }
+
+    public void setMemberId(int memberId) {
+        this.memberId = memberId;
+    }
+
+    public int getScore() {
+        return score;
+    }
+
+    public void setScore(int score) {
+        this.score = score;
+    }
+
+    public Object getContent() {
+        return content;
+    }
+
+    public void setContent(Object content) {
+        this.content = content;
+    }
+
+    public Object getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Object createTime) {
+        this.createTime = createTime;
+    }
+
+    public Object getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Object updateTime) {
+        this.updateTime = updateTime;
+    }
+}

+ 172 - 33
app/src/main/java/com/ynstkz/shitu/android/bean/OrgDetailBean.java

@@ -1,6 +1,5 @@
 package com.ynstkz.shitu.android.bean;
 
-import com.google.gson.annotations.SerializedName;
 import com.ynstkz.shitu.android.base.BaseBean;
 
 import java.util.List;
@@ -22,59 +21,199 @@ public class OrgDetailBean extends BaseBean{
     }
 
     public static class DataBean {
-        /**
-         * total : 1
-         * current : 1
-         * pages : 1
-         * size : 10
-         * records : [{"score":1,"address":"null","memberName":"首都英语培训机构","location":"","courseList":[],"viewCount":99,"headPic":null,"memberId":1}]
-         */
 
-        private int total;
-        private int current;
-        private int pages;
-        private int size;
+        private String address;
+        private int scoreCount;
+        private int collectCount;
+        private String memberName;
+        private Object headPic;
+        private int score;
+        private String phone;
+        private int viewCount;
+        private String introduction;
+        private int memberId;
+        private List<EvaluateListBean> evaluateList;
+        private List<CourseItemBean> courseList;
+        private List<String> showPicList;
+
+        public String getAddress() {
+            return address;
+        }
+
+        public void setAddress(String address) {
+            this.address = address;
+        }
+
+        public int getScoreCount() {
+            return scoreCount;
+        }
+
+        public void setScoreCount(int scoreCount) {
+            this.scoreCount = scoreCount;
+        }
+
+        public int getCollectCount() {
+            return collectCount;
+        }
+
+        public void setCollectCount(int collectCount) {
+            this.collectCount = collectCount;
+        }
+
+        public String getMemberName() {
+            return memberName;
+        }
+
+        public void setMemberName(String memberName) {
+            this.memberName = memberName;
+        }
+
+        public Object getHeadPic() {
+            return headPic;
+        }
+
+        public void setHeadPic(Object headPic) {
+            this.headPic = headPic;
+        }
+
+        public int getScore() {
+            return score;
+        }
+
+        public void setScore(int score) {
+            this.score = score;
+        }
+
+        public String getPhone() {
+            return phone;
+        }
+
+        public void setPhone(String phone) {
+            this.phone = phone;
+        }
+
+        public int getViewCount() {
+            return viewCount;
+        }
+
+        public void setViewCount(int viewCount) {
+            this.viewCount = viewCount;
+        }
 
-        private List<OrgItemBean> records;
+        public String getIntroduction() {
+            return introduction;
+        }
 
-        public int getTotal() {
-            return total;
+        public void setIntroduction(String introduction) {
+            this.introduction = introduction;
         }
 
-        public void setTotal(int total) {
-            this.total = total;
+        public int getMemberId() {
+            return memberId;
         }
 
-        public int getCurrent() {
-            return current;
+        public void setMemberId(int memberId) {
+            this.memberId = memberId;
         }
 
-        public void setCurrent(int current) {
-            this.current = current;
+        public List<EvaluateListBean> getEvaluateList() {
+            return evaluateList;
         }
 
-        public int getPages() {
-            return pages;
+        public void setEvaluateList(List<EvaluateListBean> evaluateList) {
+            this.evaluateList = evaluateList;
         }
 
-        public void setPages(int pages) {
-            this.pages = pages;
+        public List<CourseItemBean> getCourseList() {
+            return courseList;
         }
 
-        public int getSize() {
-            return size;
+        public void setCourseList(List<CourseItemBean> courseList) {
+            this.courseList = courseList;
         }
 
-        public void setSize(int size) {
-            this.size = size;
+        public List<String> getShowPicList() {
+            return showPicList;
         }
 
-        public List<OrgItemBean> getRecords() {
-            return records;
+        public void setShowPicList(List<String> showPicList) {
+            this.showPicList = showPicList;
         }
 
-        public void OrgItemBean(List<OrgItemBean> records) {
-            this.records = records;
+        public static class EvaluateListBean {
+            /**
+             * evaluateId : 1
+             * userId : 1
+             * memberId : 1
+             * score : 3
+             * content : null
+             * createTime : null
+             * updateTime : null
+             */
+
+            private int evaluateId;
+            private int userId;
+            private int memberId;
+            private int score;
+            private Object content;
+            private Object createTime;
+            private Object updateTime;
+
+            public int getEvaluateId() {
+                return evaluateId;
+            }
+
+            public void setEvaluateId(int evaluateId) {
+                this.evaluateId = evaluateId;
+            }
+
+            public int getUserId() {
+                return userId;
+            }
+
+            public void setUserId(int userId) {
+                this.userId = userId;
+            }
+
+            public int getMemberId() {
+                return memberId;
+            }
+
+            public void setMemberId(int memberId) {
+                this.memberId = memberId;
+            }
+
+            public int getScore() {
+                return score;
+            }
+
+            public void setScore(int score) {
+                this.score = score;
+            }
+
+            public Object getContent() {
+                return content;
+            }
+
+            public void setContent(Object content) {
+                this.content = content;
+            }
+
+            public Object getCreateTime() {
+                return createTime;
+            }
+
+            public void setCreateTime(Object createTime) {
+                this.createTime = createTime;
+            }
+
+            public Object getUpdateTime() {
+                return updateTime;
+            }
+
+            public void setUpdateTime(Object updateTime) {
+                this.updateTime = updateTime;
+            }
         }
     }
 }

+ 39 - 12
app/src/main/java/com/ynstkz/shitu/android/fragment/HomeFragment.java

@@ -13,26 +13,25 @@ import android.util.TypedValue;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.GridView;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.ScrollView;
 import android.widget.TextView;
 
+import com.bumptech.glide.Glide;
 import com.common.library.okhttp.callback.Callback;
 import com.common.library.pulltorefresh.PullToRefreshBase;
 import com.common.library.pulltorefresh.PullToRefreshScrollView;
 import com.google.gson.Gson;
 import com.ynstkz.shitu.android.R;
 import com.ynstkz.shitu.android.activity.LocationSelectActivity;
+import com.ynstkz.shitu.android.activity.OrgDetailActivity;
 import com.ynstkz.shitu.android.adapter.HomeBannerAdapter;
-import com.ynstkz.shitu.android.adapter.OrgListAdapter;
 import com.ynstkz.shitu.android.adapter.OrgNavigationGridAdapter;
 import com.ynstkz.shitu.android.base.BaseFragment;
 import com.ynstkz.shitu.android.bean.CourseNavigationBean;
 import com.ynstkz.shitu.android.bean.HomeBannerBean;
 import com.ynstkz.shitu.android.bean.OrgItemBean;
-import com.ynstkz.shitu.android.bean.OrgNavigationBean;
 import com.ynstkz.shitu.android.bean.OrgRecommendListBean;
 import com.ynstkz.shitu.android.data.RequestGroup;
 import com.ynstkz.shitu.android.event.LocationChangedEvent;
@@ -43,7 +42,6 @@ import org.greenrobot.eventbus.Subscribe;
 import org.greenrobot.eventbus.ThreadMode;
 
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 
 import butterknife.Bind;
@@ -76,6 +74,9 @@ public class HomeFragment extends BaseFragment implements PullToRefreshBase.OnRe
 
     private List<HomeBannerBean.DataBean> listBanner;
     private int bannerIndex;
+    private int pageNumber;
+    private double longitude;
+    private double latitude;
 
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
@@ -125,6 +126,7 @@ public class HomeFragment extends BaseFragment implements PullToRefreshBase.OnRe
                 startActivityForResult(new Intent(getActivity(), LocationSelectActivity.class), 10);
             }
         });
+
     }
 
     /**
@@ -204,7 +206,7 @@ public class HomeFragment extends BaseFragment implements PullToRefreshBase.OnRe
      */
     private void getOrgRecommendList(String location) {
 
-        RequestGroup.getAgencyRecommendList("", "", location, new Callback() {
+        RequestGroup.getAgencyRecommendList(pageNumber+"", "25", location, new Callback() {
             @Override
             public Object parseNetworkResponse(Response response, int id) throws Exception {
                 return new Gson().fromJson(response.body().string(), OrgRecommendListBean.class);
@@ -213,6 +215,7 @@ public class HomeFragment extends BaseFragment implements PullToRefreshBase.OnRe
             @Override
             public void onError(Call call, Exception e, int id) {
                 showToast(getString(R.string.error_msg));
+                svMain.onRefreshComplete();
             }
 
             @Override
@@ -224,6 +227,10 @@ public class HomeFragment extends BaseFragment implements PullToRefreshBase.OnRe
                             List<OrgItemBean> listOrg = bean.getData().getRecords();
                             if (listOrg != null && listOrg.size() > 0) {
                                 setOrgListData(listOrg);
+                                svMain.setMode(PullToRefreshBase.Mode.BOTH);
+                            } else {
+                                showToast("已加载全部!");
+                                svMain.onRefreshComplete();
                             }
                         }
                     } else {
@@ -241,7 +248,9 @@ public class HomeFragment extends BaseFragment implements PullToRefreshBase.OnRe
         if(listOrg == null || listOrg.size() == 0){
             return;
         }
-        llOrgMain.removeAllViews();
+        if(pageNumber == 1){
+            llOrgMain.removeAllViews();
+        }
         for(int i=0; i<listOrg.size(); i++){
             View view = LayoutInflater.from(getActivity()).inflate(R.layout.item_org_list, null);
             ImageView iv_headPic = view.findViewById(R.id.iv_headPic);
@@ -249,14 +258,27 @@ public class HomeFragment extends BaseFragment implements PullToRefreshBase.OnRe
             MaterialRatingBar rb_score = view.findViewById(R.id.rb_score);
             TextView tv_regaddress = view.findViewById(R.id.tv_regaddress);
 
-            OrgItemBean orgItemBean = listOrg.get(i);
+            final OrgItemBean orgItemBean = listOrg.get(i);
+            Glide.with(getActivity()).load(orgItemBean.getHeadPic()).into(iv_headPic);
             tv_memberName.setText(orgItemBean.getMemberName());
-
+            rb_score.setProgress(orgItemBean.getScore() * 2);
             llOrgMain.addView(view);
+
+            /**
+             * 跳转机构详情
+             */
+            view.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View view) {
+                    Intent intent = new Intent(getActivity(), OrgDetailActivity.class);
+                    intent.putExtra("memberId", orgItemBean.getMemberId());
+                    startActivity(intent);
+                }
+            });
         }
+        svMain.onRefreshComplete();
     }
 
-
     /**
      * 初始化Banner数据
      */
@@ -333,17 +355,22 @@ public class HomeFragment extends BaseFragment implements PullToRefreshBase.OnRe
         tvLocation.setText(event.getAmapLocation().getDistrict());
 
         //获取推荐机构列表
-        getOrgRecommendList(event.getAmapLocation().getLongitude() + "," + event.getAmapLocation().getLatitude());
+        pageNumber = 1;
+        longitude = event.getAmapLocation().getLongitude();
+        latitude = event.getAmapLocation().getLatitude();
+        getOrgRecommendList(longitude + "," + latitude);
     }
 
     @Override
     public void onPullDownToRefresh(PullToRefreshBase<ScrollView> refreshView) {
-        showToast("onPullDownToRefresh");
+        pageNumber = 1;
+        getOrgRecommendList(longitude + "," + latitude);
     }
 
     @Override
     public void onPullUpToRefresh(PullToRefreshBase<ScrollView> refreshView) {
-        showToast("onPullUpToRefresh");
+        pageNumber ++;
+        getOrgRecommendList(longitude + "," + latitude);
     }
 
     @Override

+ 2 - 1
app/src/main/res/layout/activity_org_detail.xml

@@ -64,13 +64,14 @@
                     android:layout_marginTop="@dimen/company_15dp">
 
                     <TextView
+                        android:id="@+id/tv_collectcount"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
-                        android:text="收藏:1234次"
                         android:textColor="@color/color_666"
                         android:textSize="@dimen/company_12sp" />
 
                     <TextView
+                        android:id="@+id/tv_address"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:layout_alignParentRight="true"

+ 1 - 0
app/src/main/res/layout/item_org_list.xml

@@ -42,6 +42,7 @@
                 android:isIndicator="true"
                 app:mrb_progressTint="@color/rb_color"
                 app:mrb_secondaryProgressTint="@color/color_999"
+                android:stepSize="0.5"
                 style="@style/Widget.MaterialRatingBar.RatingBar" />
 
             <RelativeLayout