Browse Source

1.需求详情实现取消报名
2.我的需求列表实现取消报名

zhangxinyu 5 years ago
parent
commit
380e2962cf

+ 10 - 0
app/src/main/java/com/webrain/happywork/bean/api/ApiRequirementDetailBean.java

@@ -5,6 +5,8 @@ import com.webrain.happywork.bean.RequirementBean;
 public class ApiRequirementDetailBean {
     RequirementBean hwRequirementAPI;
 
+    String enrollId;
+
     boolean needEnrollment;
 
     boolean displayCancel;
@@ -33,4 +35,12 @@ public class ApiRequirementDetailBean {
     public void setDisplayCancel(boolean displayCancel) {
         this.displayCancel = displayCancel;
     }
+
+    public String getEnrollId() {
+        return enrollId;
+    }
+
+    public void setEnrollId(String enrollId) {
+        this.enrollId = enrollId;
+    }
 }

+ 4 - 0
app/src/main/java/com/webrain/happywork/http/Api.java

@@ -66,6 +66,10 @@ public class Api {
         //需求报名
         @POST("api/hwRequirement/enrollmentRequire")
         Observable<ApiResultBean<ApiNormalBean>> getRequirementsApply(@Body Map<String, Object> args);
+
+        //取消报名
+        @POST("api/hwRequirement/cancelEnrollment")
+        Observable<ApiResultBean<ApiNormalBean>> getCancelEnrollment(@Body Map<String, Object> args);
     }
 
     public interface EnrollmentInterface {

+ 11 - 0
app/src/main/java/com/webrain/happywork/http/subscribe/RequirementSubscribe.java

@@ -53,4 +53,15 @@ public class RequirementSubscribe extends BaseSubscribe {
         Observable<ApiResultBean<ApiNormalBean>> observable = apiService.getRequirementsApply(params);
         subscribe(observable, mObservable);
     }
+
+    /**
+     * 取消报名
+     *
+     * @param mObservable
+     */
+    public void requestCancelEnrollment(Map<String, Object> params, ApiObserver<ApiNormalBean> mObservable) {
+        Api.RequirementInterface apiService = ServiceGenerator.createService(Api.RequirementInterface.class);
+        Observable<ApiResultBean<ApiNormalBean>> observable = apiService.getCancelEnrollment(params);
+        subscribe(observable, mObservable);
+    }
 }

+ 8 - 5
app/src/main/java/com/webrain/happywork/ui/activity/DemandDetailActivity.java

@@ -118,15 +118,15 @@ public class DemandDetailActivity extends BaseActivity<DemandDetailPresenter> im
             } else {
                 tvAcceptance.setVisibility(View.GONE);
             }
-            if(bean.getIsOn()==0){
+            if (bean.getIsOn() == 0) {
                 tvDown.setVisibility(View.VISIBLE);
-            }else{
+            } else {
                 tvDown.setVisibility(View.GONE);
             }
-            if(displayCancel){
+            if (displayCancel) {
                 btnApply.setEnabled(true);
                 btnApply.setText(R.string.cancel_apply);
-            }else{
+            } else {
                 if (!isNeedEnrollment) {//是否可以报名
                     btnApply.setEnabled(false);
                     btnApply.setText(R.string.mine_has_apply);
@@ -180,7 +180,10 @@ public class DemandDetailActivity extends BaseActivity<DemandDetailPresenter> im
         switch (view.getId()) {
             case R.id.btn_apply:
                 if (AppCacheManager.getInstance().isLogin()) {
-                    mvpPresenter.getHttpUserBean();
+                    if (btnApply.getText().toString().equals(getString(R.string.demand_need_apply)))
+                        mvpPresenter.getHttpUserBean();
+                    else if (btnApply.getText().toString().equals(getString(R.string.cancel_apply)))
+                        mvpPresenter.requestCancelApply();
                 } else {
                     startActivity(new Intent(mContext, LoginActivity.class));
                 }

+ 0 - 3
app/src/main/java/com/webrain/happywork/ui/activity/MineApplyListActivity.java

@@ -12,13 +12,10 @@ import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
 import com.webrain.baselibrary.widget.refresh.ProgressRefreshLayout;
 import com.webrain.happywork.R;
 import com.webrain.happywork.bean.EnrollmentBean;
-import com.webrain.happywork.bean.RequirementBean;
-import com.webrain.happywork.ui.adapter.listview.DemandListAdapter;
 import com.webrain.happywork.ui.adapter.listview.MineApplyListAdapter;
 import com.webrain.happywork.ui.base.BaseActivity;
 import com.webrain.happywork.ui.mvp.contacts.MineApplyListContacts;
 import com.webrain.happywork.ui.mvp.presenter.MineApplyListPresenter;
-import com.webrain.happywork.ui.viewholder.DemandViewHeader;
 import com.webrain.happywork.ui.viewholder.FooterViewHolder;
 
 import java.util.List;

+ 9 - 0
app/src/main/java/com/webrain/happywork/ui/adapter/listview/MineApplyListAdapter.java

@@ -13,11 +13,13 @@ import com.webrain.baselibrary.IntentConstant;
 import com.webrain.happywork.R;
 import com.webrain.happywork.bean.EnrollmentBean;
 import com.webrain.happywork.ui.activity.DemandDetailActivity;
+import com.webrain.happywork.ui.activity.MineApplyListActivity;
 import com.webrain.happywork.ui.adapter.base.BaseListAdapter;
 import com.webrain.happywork.ui.base.BaseViewHolder;
 
 import butterknife.BindDrawable;
 import butterknife.BindView;
+import butterknife.OnClick;
 
 public class MineApplyListAdapter extends BaseListAdapter<EnrollmentBean, MineApplyListAdapter.MineApplyViewHolder> {
     public MineApplyListAdapter(Context mContext) {
@@ -67,6 +69,7 @@ public class MineApplyListAdapter extends BaseListAdapter<EnrollmentBean, MineAp
         TextView tvCancel;
         @BindView(R.id.tv_down)
         TextView tvDown;
+        EnrollmentBean bean;
 
         public MineApplyViewHolder(Context mContext) {
             super(mContext);
@@ -81,6 +84,7 @@ public class MineApplyListAdapter extends BaseListAdapter<EnrollmentBean, MineAp
         public void initData(int position, EnrollmentBean obj) {
             super.initData(position, obj);
             if (obj != null) {
+                bean = obj;
                 tvTitle.setText(obj.getHwRequirement() != null && TextUtils.isEmpty(obj.getHwRequirement().getName()) ? "" : obj.getHwRequirement().getName());
                 tvPrice.setText(obj.getHwRequirement() != null && TextUtils.isEmpty(obj.getHwRequirement().getPrice()) ? "" : (obj.getHwRequirement().getPrice() + "元"));
                 tvStage.setText(obj.getHwRequirement() == null ? "" : obj.getHwRequirement().getSettlementMethod() == AppConstant.SETTLEMENT_METHOD_ONCE ? "*1次" : ("*" + obj.getHwRequirement().getStage() + "期"));
@@ -117,5 +121,10 @@ public class MineApplyListAdapter extends BaseListAdapter<EnrollmentBean, MineAp
                 }
             }
         }
+
+        @OnClick(R.id.tv_cancel)
+        public void onClick(View view){
+            ((MineApplyListActivity)mContext).mvpPresenter.requestCancelApply(bean);
+        }
     }
 }

+ 7 - 1
app/src/main/java/com/webrain/happywork/ui/mvp/contacts/DemandDetailContacts.java

@@ -19,6 +19,8 @@ public class DemandDetailContacts {
     public interface IDemandDetailPresenter extends IPresenter {
         void init();
 
+        void requestCancelApply();
+
         void requestRequirementApply(boolean isInformation, String name, String id, String lightStr);
 
         void getRequirementDetail(boolean isShowDialog);
@@ -32,7 +34,9 @@ public class DemandDetailContacts {
 
         void getHttpUserBean(MvpDataCallBack<Boolean> callBack);
 
-        void requestRequirementApply(MvpDataCallBack<Object> callBack,boolean isInformation, String name, String id, String lightStr);
+        void requestCancelApply(MvpDataCallBack<Boolean> callBack);
+
+        void requestRequirementApply(MvpDataCallBack<Object> callBack, boolean isInformation, String name, String id, String lightStr);
 
         void getRequirementDetail(MvpDataCallBack<Boolean> callBack, boolean isShowDialog);
 
@@ -42,6 +46,8 @@ public class DemandDetailContacts {
 
         boolean isDisplayCancel();
 
+        String getEnrollId();
+
         void setIsNeedEnrollment(boolean isNeedEnrollMent);
 
     }

+ 4 - 0
app/src/main/java/com/webrain/happywork/ui/mvp/contacts/MineApplyListContacts.java

@@ -18,12 +18,16 @@ public class MineApplyListContacts {
     public interface IMineApplyListPresenter extends IPresenter {
         void getApplyList(boolean isRefresh, boolean isShowDialog);
 
+        void requestCancelApply(EnrollmentBean bean);
+
         void init();
     }
 
     public interface IMineApplyListModel {
         void getApplyList(MvpDataCallBack<List<EnrollmentBean>> callBack, boolean isShowDialog);
 
+        void requestCancelApply(MvpDataCallBack<List<EnrollmentBean>> callBack,EnrollmentBean bean);
+
         boolean isLastPage();
 
         boolean isLoading();

+ 32 - 1
app/src/main/java/com/webrain/happywork/ui/mvp/model/DemandDetailModel.java

@@ -22,6 +22,7 @@ import com.webrain.happywork.ui.mvp.contacts.DemandDetailContacts;
 
 public class DemandDetailModel extends BaseModel implements DemandDetailContacts.IDemandDetailModel {
     private String requirementId;
+    private String enrollId;
     private boolean needEnrollment;
     private boolean displayCancel;
     private RequirementBean mBean;
@@ -69,6 +70,26 @@ public class DemandDetailModel extends BaseModel implements DemandDetailContacts
     }
 
     /**
+     * 取消报名
+     * @param callBack
+     */
+    @Override
+    public void requestCancelApply(final MvpDataCallBack<Boolean> callBack) {
+        RetrofitHttpParams params = new RetrofitHttpParams(mContext);
+        params.put("enroll_id", enrollId);
+        new RequirementSubscribe(mContext).requestCancelEnrollment(params.getRequestParams(), new ApiObserver<ApiNormalBean>(mContext,true) {
+            @Override
+            public void onSuccess(ApiNormalBean data) {
+                callBack.onData(true);
+            }
+
+            @Override
+            public void onFinish() {
+            }
+        });
+    }
+
+    /**
      * 获取岗位详情
      *
      * @param callBack
@@ -86,6 +107,7 @@ public class DemandDetailModel extends BaseModel implements DemandDetailContacts
                         mBean = data.getHwRequirementAPI();
                         needEnrollment = data.isNeedEnrollment();
                         displayCancel = data.isDisplayCancel();
+                        enrollId = data.getEnrollId();
                     }
                     if (mBean != null)
                         callBack.onData(true);
@@ -134,6 +156,15 @@ public class DemandDetailModel extends BaseModel implements DemandDetailContacts
     }
 
     /**
+     * 返回enrollId
+     * @return
+     */
+    @Override
+    public String getEnrollId() {
+        return enrollId;
+    }
+
+    /**
      * 设置是否可以报名
      *
      * @param isNeedEnrollment
@@ -163,7 +194,7 @@ public class DemandDetailModel extends BaseModel implements DemandDetailContacts
         if (!TextUtils.isEmpty(lightStr))
             params.put("bright_points", lightStr);
         RequirementSubscribe requirementSubscribe = new RequirementSubscribe(mContext);
-        requirementSubscribe.requestRequirementsApply(params.getRequestParams(), new ApiObserver<ApiNormalBean>(mContext) {
+        requirementSubscribe.requestRequirementsApply(params.getRequestParams(), new ApiObserver<ApiNormalBean>(mContext,true) {
             @Override
             public void onSuccess(ApiNormalBean data) {
                 callBack.onData(data);

+ 26 - 0
app/src/main/java/com/webrain/happywork/ui/mvp/model/MineApplyListModel.java

@@ -6,11 +6,13 @@ import android.content.Context;
 import com.webrain.happywork.AppCacheManager;
 import com.webrain.happywork.bean.EnrollmentBean;
 import com.webrain.happywork.bean.api.ApiApplyListBean;
+import com.webrain.happywork.bean.base.ApiNormalBean;
 import com.webrain.happywork.callback.MvpDataCallBack;
 import com.webrain.happywork.http.ApiObserver;
 import com.webrain.happywork.http.RetrofitHttpParams;
 import com.webrain.happywork.http.exception.ApiException;
 import com.webrain.happywork.http.subscribe.EnrollmentSubscribe;
+import com.webrain.happywork.http.subscribe.RequirementSubscribe;
 import com.webrain.happywork.ui.base.BaseModel;
 import com.webrain.happywork.ui.mvp.contacts.MineApplyListContacts;
 
@@ -77,6 +79,30 @@ public class MineApplyListModel extends BaseModel implements MineApplyListContac
             }
         });
     }
+
+    /**
+     * 取消报名
+     * @param callBack
+     */
+    @Override
+    public void requestCancelApply(final MvpDataCallBack<List<EnrollmentBean>> callBack, final EnrollmentBean bean) {
+        RetrofitHttpParams params = new RetrofitHttpParams(mContext);
+        params.put("enroll_id", bean.getId());
+        new RequirementSubscribe(mContext).requestCancelEnrollment(params.getRequestParams(), new ApiObserver<ApiNormalBean>(mContext,true) {
+            @Override
+            public void onSuccess(ApiNormalBean data) {
+                if(mListData!=null){
+                    mListData.remove(bean);
+                    callBack.onData(mListData);
+                }
+            }
+
+            @Override
+            public void onFinish() {
+            }
+        });
+    }
+
     /**
      * 是否最后一页
      *

+ 16 - 0
app/src/main/java/com/webrain/happywork/ui/mvp/presenter/DemandDetailPresenter.java

@@ -37,6 +37,22 @@ public class DemandDetailPresenter extends BasePresenter<DemandDetailActivity> i
     }
 
     /**
+     * 取消报名
+     */
+    @Override
+    public void requestCancelApply() {
+        if (isViewAttach()&&!TextUtils.isEmpty(mDemandDetailModel.getEnrollId())){
+            mDemandDetailModel.requestCancelApply(new MvpDataCallBack<Boolean>() {
+                @Override
+                public void onData(Boolean data) {
+                    ToastUtils.show(mvpReference.get(), R.string.cancel_success);
+                    getRequirementDetail(true);
+                }
+            });
+        }
+    }
+
+    /**
      * 申请报名
      *
      * @param lightStr

+ 21 - 0
app/src/main/java/com/webrain/happywork/ui/mvp/presenter/MineApplyListPresenter.java

@@ -1,6 +1,10 @@
 package com.webrain.happywork.ui.mvp.presenter;
 
 
+import android.text.TextUtils;
+
+import com.webrain.baselibrary.utils.ToastUtils;
+import com.webrain.happywork.R;
 import com.webrain.happywork.bean.EnrollmentBean;
 import com.webrain.happywork.callback.MvpDataCallBack;
 import com.webrain.happywork.http.exception.ApiException;
@@ -51,6 +55,23 @@ public class MineApplyListPresenter extends BasePresenter<MineApplyListActivity>
     }
 
     /**
+     * 取消报名
+     * @param bean
+     */
+    @Override
+    public void requestCancelApply(EnrollmentBean bean) {
+        if (isViewAttach()){
+            mMineApplyListModel.requestCancelApply(new MvpDataCallBack<List<EnrollmentBean>>() {
+                @Override
+                public void onData(List<EnrollmentBean> data) {
+                    ToastUtils.show(mvpReference.get(), R.string.cancel_success);
+                    mvpReference.get().onApplyList(data, mMineApplyListModel.isLastPage());
+                }
+            },bean);
+        }
+    }
+
+    /**
      * 初始化
      */
     @Override

+ 1 - 0
app/src/main/res/values/strings.xml

@@ -12,6 +12,7 @@
     <string name="sure_apply">确认报名</string>
     <string name="apply_fail">报名失败</string>
     <string name="apply_success">报名成功</string>
+    <string name="cancel_success">取消成功</string>
     <string name="is_logout">是否退出登录</string>
     <string name="is_unregister">注销账号是一个不可逆操作, \n注销后会失去所有记录,请谨\n慎操作。</string>
     <string name="business">行业</string>