Browse Source

完善岗位 企业未认证 新报名 和管理界面 完成岗位详情界面

ZhangXinYu 6 năm trước cách đây
mục cha
commit
d524c4c00e
46 tập tin đã thay đổi với 851 bổ sung33 xóa
  1. 3 0
      app/src/main/AndroidManifest.xml
  2. 16 1
      app/src/main/java/com/webrain/dailypay/bean/PositionListBean.java
  3. 11 0
      app/src/main/java/com/webrain/dailypay/bean/ResumeBean.java
  4. 5 0
      app/src/main/java/com/webrain/dailypay/http/Api.java
  5. 13 0
      app/src/main/java/com/webrain/dailypay/http/subscribe/PositionSubscribe.java
  6. 188 0
      app/src/main/java/com/webrain/dailypay/ui/activity/position/PositionDetailActivity.java
  7. 44 6
      app/src/main/java/com/webrain/dailypay/ui/adapter/listview/PositionListAdapter.java
  8. 18 0
      app/src/main/java/com/webrain/dailypay/ui/fragment/PositionFragment.java
  9. 0 3
      app/src/main/java/com/webrain/dailypay/ui/fragment/ResumeFragment.java
  10. 6 1
      app/src/main/java/com/webrain/dailypay/ui/fragment/position/PositionFullReleaseFragment.java
  11. 22 0
      app/src/main/java/com/webrain/dailypay/ui/mvp/contacts/PositionDetailContacts.java
  12. 6 0
      app/src/main/java/com/webrain/dailypay/ui/mvp/contacts/PositionFragmentContacts.java
  13. 1 3
      app/src/main/java/com/webrain/dailypay/ui/mvp/model/InvitedInterviewModel.java
  14. 4 6
      app/src/main/java/com/webrain/dailypay/ui/mvp/model/PositionApplyManagerModel.java
  15. 44 0
      app/src/main/java/com/webrain/dailypay/ui/mvp/model/PositionDetailModel.java
  16. 30 0
      app/src/main/java/com/webrain/dailypay/ui/mvp/model/PositionFragmentModel.java
  17. 5 6
      app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/PositionApplyManagerPresenter.java
  18. 33 0
      app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/PositionDetailPresenter.java
  19. 35 0
      app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/PositionFragmentPresenter.java
  20. 67 0
      app/src/main/java/com/webrain/dailypay/utils/BaseInformationUtils.java
  21. 6 0
      app/src/main/res/drawable/corners_blue_10.xml
  22. 1 1
      app/src/main/res/drawable/corners_blue_btn_bg.xml
  23. 7 0
      app/src/main/res/drawable/corners_purple_10.xml
  24. 1 1
      app/src/main/res/drawable/edit_input_color.xml
  25. 1 1
      app/src/main/res/drawable/gradient_purple.xml
  26. 2 2
      app/src/main/res/drawable/identity_choice_bg.xml
  27. 240 0
      app/src/main/res/layout/activity_position_detail.xml
  28. 36 2
      app/src/main/res/layout/item_listview_position.xml
  29. BIN
      app/src/main/res/mipmap-hdpi/ic_detail_address.png
  30. BIN
      app/src/main/res/mipmap-hdpi/ic_detail_position.png
  31. BIN
      app/src/main/res/mipmap-hdpi/ic_detail_tips.png
  32. BIN
      app/src/main/res/mipmap-hdpi/ic_position_apply.png
  33. BIN
      app/src/main/res/mipmap-xhdpi/ic_detail_address.png
  34. BIN
      app/src/main/res/mipmap-xhdpi/ic_detail_position.png
  35. BIN
      app/src/main/res/mipmap-xhdpi/ic_detail_tips.png
  36. BIN
      app/src/main/res/mipmap-xhdpi/ic_position_apply.png
  37. BIN
      app/src/main/res/mipmap-xxhdpi/ic_detail_address.png
  38. BIN
      app/src/main/res/mipmap-xxhdpi/ic_detail_position.png
  39. BIN
      app/src/main/res/mipmap-xxhdpi/ic_detail_tips.png
  40. BIN
      app/src/main/res/mipmap-xxhdpi/ic_position_apply.png
  41. BIN
      app/src/main/res/mipmap-xxxhdpi/ic_detail_address.png
  42. BIN
      app/src/main/res/mipmap-xxxhdpi/ic_detail_position.png
  43. BIN
      app/src/main/res/mipmap-xxxhdpi/ic_detail_tips.png
  44. BIN
      app/src/main/res/mipmap-xxxhdpi/ic_position_apply.png
  45. 5 0
      app/src/main/res/values/strings.xml
  46. 1 0
      baselibrary/src/main/java/com/webrain/baselibrary/IntentConstant.java

+ 3 - 0
app/src/main/AndroidManifest.xml

@@ -84,6 +84,9 @@
             android:name=".ui.activity.position.PositionReleaseResultActivity"
             android:screenOrientation="portrait" />
         <activity
+            android:name=".ui.activity.position.PositionDetailActivity"
+            android:screenOrientation="portrait" />
+        <activity
             android:name=".ui.activity.position.PositionReleaseActivity"
             android:screenOrientation="portrait"
             android:windowSoftInputMode="stateHidden|adjustPan" />

+ 16 - 1
app/src/main/java/com/webrain/dailypay/bean/PositionListBean.java

@@ -5,12 +5,16 @@ import android.os.Parcelable;
 
 import java.util.List;
 
-public class PositionListBean  implements Parcelable {
+public class PositionListBean implements Parcelable {
 
     List<WorkAddressBean> address;
+    String count;
     PositionBean position;
 
     protected PositionListBean(Parcel in) {
+        address = in.createTypedArrayList(WorkAddressBean.CREATOR);
+        count = in.readString();
+        position = in.readParcelable(PositionBean.class.getClassLoader());
     }
 
     public static final Creator<PositionListBean> CREATOR = new Creator<PositionListBean>() {
@@ -41,6 +45,14 @@ public class PositionListBean  implements Parcelable {
         this.position = position;
     }
 
+    public String getCount() {
+        return count;
+    }
+
+    public void setCount(String count) {
+        this.count = count;
+    }
+
     @Override
     public int describeContents() {
         return 0;
@@ -48,5 +60,8 @@ public class PositionListBean  implements Parcelable {
 
     @Override
     public void writeToParcel(Parcel dest, int flags) {
+        dest.writeTypedList(address);
+        dest.writeString(count);
+        dest.writeParcelable(position, flags);
     }
 }

+ 11 - 0
app/src/main/java/com/webrain/dailypay/bean/ResumeBean.java

@@ -29,6 +29,7 @@ public class ResumeBean implements Parcelable {
     private UserBean hpUser;
     private String applyTime;
     private String createDate;
+    private String applyId;
     private List<WorkExperienceBean> hpResumeWorkExperienceList;
 
 
@@ -54,6 +55,7 @@ public class ResumeBean implements Parcelable {
         hpUser = in.readParcelable(UserBean.class.getClassLoader());
         applyTime = in.readString();
         createDate = in.readString();
+        applyId = in.readString();
     }
 
     public static final Creator<ResumeBean> CREATOR = new Creator<ResumeBean>() {
@@ -244,6 +246,14 @@ public class ResumeBean implements Parcelable {
         this.positionCategory = positionCategory;
     }
 
+    public String getApplyId() {
+        return applyId;
+    }
+
+    public void setApplyId(String applyId) {
+        this.applyId = applyId;
+    }
+
     @Override
     public boolean equals(@Nullable Object obj) {
         if (obj instanceof ResumeBean) {
@@ -281,5 +291,6 @@ public class ResumeBean implements Parcelable {
         dest.writeParcelable(hpUser, flags);
         dest.writeString(applyTime);
         dest.writeString(createDate);
+        dest.writeString(applyId);
     }
 }

+ 5 - 0
app/src/main/java/com/webrain/dailypay/http/Api.java

@@ -1,5 +1,6 @@
 package com.webrain.dailypay.http;
 
+import com.webrain.dailypay.bean.PositionListBean;
 import com.webrain.dailypay.bean.api.ApiAuthenticationCompanyBean;
 import com.webrain.dailypay.bean.api.ApiLoginBean;
 import com.webrain.dailypay.bean.api.ApiMsgListBean;
@@ -72,6 +73,10 @@ public class Api {
         @GET("api/position/getPositions")
         Observable<ApiResultBean<ApiPositionListBean>> getPositions(@QueryMap Map<String, Object> args);
 
+        //获取岗位详情
+        @GET("api/position/getPositionDetail")
+        Observable<ApiResultBean<PositionListBean>> getPositionDetail(@QueryMap Map<String, Object> args);
+
         //刷新岗位
         @POST("api/position/changeUpdateTime")
         Observable<ApiResultBean<ApiPositionRefreshBean>> httpUpdateTime(@Body Map<String, Object> args);

+ 13 - 0
app/src/main/java/com/webrain/dailypay/http/subscribe/PositionSubscribe.java

@@ -2,6 +2,7 @@ package com.webrain.dailypay.http.subscribe;
 
 import android.content.Context;
 
+import com.webrain.dailypay.bean.PositionListBean;
 import com.webrain.dailypay.bean.api.ApiLoginBean;
 import com.webrain.dailypay.bean.api.ApiNormalBean;
 import com.webrain.dailypay.bean.api.ApiPositionListBean;
@@ -59,6 +60,18 @@ public class PositionSubscribe extends BaseSubscribe {
     }
 
     /**
+     * 获取岗位详情
+     *
+     * @param mObservable
+     */
+    public void requestGetPositionDetail(Map<String, Object> params, ApiObserver<PositionListBean> mObservable) {
+        Api.PositionInterface apiService = ServiceGenerator.createService(Api.PositionInterface.class);
+        Observable<ApiResultBean<PositionListBean>> observable = apiService.getPositionDetail(params);
+        subscribe(observable, mObservable);
+    }
+
+
+    /**
      * 刷新岗位
      *
      * @param mObservable

+ 188 - 0
app/src/main/java/com/webrain/dailypay/ui/activity/position/PositionDetailActivity.java

@@ -0,0 +1,188 @@
+package com.webrain.dailypay.ui.activity.position;
+
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.webrain.baselibrary.AppConstant;
+import com.webrain.dailypay.R;
+import com.webrain.dailypay.bean.PositionBean;
+import com.webrain.dailypay.bean.PositionListBean;
+import com.webrain.dailypay.bean.WorkAddressBean;
+import com.webrain.dailypay.ui.base.BaseActivity;
+import com.webrain.dailypay.ui.mvp.contacts.PositionDetailContacts;
+import com.webrain.dailypay.ui.mvp.presenter.PositionDetailPresenter;
+import com.webrain.dailypay.ui.widget.ShrinkAnimationLayout;
+import com.webrain.dailypay.utils.BaseInformationUtils;
+
+import java.util.List;
+
+import butterknife.BindDrawable;
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class PositionDetailActivity extends BaseActivity<PositionDetailPresenter> implements PositionDetailContacts.IPositionDetailView {
+
+    @BindView(R.id.tv_name)
+    TextView tvName;
+    @BindView(R.id.tv_price)
+    TextView tvPrice;
+    @BindView(R.id.tv_tips)
+    TextView tvTips;
+    @BindView(R.id.tv_work_time)
+    TextView tvWorkTime;
+    @BindView(R.id.tv_welfare)
+    TextView tvWelfare;
+    @BindView(R.id.sal_again)
+    ShrinkAnimationLayout salAgain;
+    @BindView(R.id.tv_information_again)
+    TextView tvInformationAgain;
+    @BindView(R.id.ll_information_again_close)
+    LinearLayout llInformationAgainClose;
+    @BindView(R.id.tv_desc)
+    TextView tvDesc;
+    @BindView(R.id.tv_address)
+    TextView tvAddress;
+    @BindView(R.id.ll_work_time)
+    LinearLayout llWorkTime;
+    @BindDrawable(R.mipmap.ic_position_release_remove)
+    Drawable dRemove;
+    @BindDrawable(R.mipmap.ic_position_release_add)
+    Drawable dAdd;
+
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setLoadingVisible(true);
+        mvpPresenter.getPositionDetail();
+        salAgain.initExpand(false);
+        salAgain.setOnAnimationListener(onAgainAnimationListener);
+    }
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.activity_position_detail;
+    }
+
+    @Override
+    public PositionDetailPresenter bindPresenter() {
+        return new PositionDetailPresenter(this);
+    }
+
+    /**
+     * 获得岗位详情
+     *
+     * @param bean
+     */
+    @Override
+    public void onPositionDetail(PositionListBean bean) {
+        setLoadingVisible(false);
+        if (bean != null) {
+            PositionBean positionBean = bean.getPosition();
+            if (positionBean != null) {
+                //岗位名称
+                if (!TextUtils.isEmpty(positionBean.getPositionName())) {
+                    tvName.setText(positionBean.getPositionName());
+                } else {
+                    tvName.setText("");
+                }
+                //薪资
+                if (positionBean.getPositionCategory() == AppConstant.FULL_TIME_JOB) {
+                    if (!TextUtils.isEmpty(positionBean.getBasicSalary()))
+                        tvPrice.setText(BaseInformationUtils.getSalary(mContext, positionBean.getBasicSalary()));
+                    else
+                        tvPrice.setText("");
+
+                } else {
+                    if (!TextUtils.isEmpty(positionBean.getSalary()))
+                        tvPrice.setText(positionBean.getSalary());
+                    else
+                        tvPrice.setText("");
+                }
+                //详情
+                String tips = "";
+                if (positionBean.getPositionCategory() == AppConstant.FULL_TIME_JOB) {
+                    if (!TextUtils.isEmpty(positionBean.getFulltimePositionType()))
+                        tips = BaseInformationUtils.getPositionType(mContext, positionBean.getFulltimePositionType(), AppConstant.FULL_TIME_JOB);
+
+                } else if (positionBean.getPositionCategory() == AppConstant.PART_TIME_JOB) {
+                    if (!TextUtils.isEmpty(positionBean.getParttimePositionType()))
+                        tips = BaseInformationUtils.getPositionType(mContext, positionBean.getParttimePositionType(), AppConstant.PART_TIME_JOB);
+                }
+                if (!TextUtils.isEmpty(positionBean.getRecruitNumber())) {
+                    tips += !TextUtils.isEmpty(tips) ? "|招" + ("0".equals(positionBean.getRecruitNumber()) ? "若干" : positionBean.getRecruitNumber()) + "人" : ("招" + ("0".equals(positionBean.getRecruitNumber()) ? "若干" : positionBean.getRecruitNumber()) + "人");
+                }
+                if (positionBean.getPositionCategory() == AppConstant.FULL_TIME_JOB) {
+                    tips += !TextUtils.isEmpty(tips) ? "|工资月结" : "工资月结";
+                } else if (positionBean.getPositionCategory() == AppConstant.PART_TIME_JOB) {
+                    if (!TextUtils.isEmpty(positionBean.getSalaryPeriod()))
+                        tips += !TextUtils.isEmpty(tips) ? "|" + BaseInformationUtils.getClearType(mContext, positionBean.getSalaryPeriod()) : BaseInformationUtils.getClearType(mContext, positionBean.getSalaryPeriod());
+                }
+                tvTips.setText(tips);
+                //工作时间
+                String workTime = "";
+                if (positionBean.getPositionCategory() == AppConstant.PART_TIME_JOB) {//兼职才有工作时间
+                    if (!TextUtils.isEmpty(positionBean.getWorkDate())) {
+                        workTime += positionBean.getWorkDate();
+                    }
+                    if (!TextUtils.isEmpty(positionBean.getStartWorkTime()) || !TextUtils.isEmpty(positionBean.getEndWordTime()))//回显工作时段
+                        workTime += TextUtils.isEmpty(workTime) ? (positionBean.getStartWorkTime() + " 至 " + positionBean.getEndWordTime()) : ("\n" + positionBean.getStartWorkTime() + " 至 " + positionBean.getEndWordTime());
+                }
+                if (!TextUtils.isEmpty(workTime)) {
+                    tvWorkTime.setText(workTime);
+                } else {
+                    llWorkTime.setVisibility(View.GONE);
+                }
+                //福利待遇
+                if (!TextUtils.isEmpty(positionBean.getWelfare())) {
+                    tvWelfare.setText(BaseInformationUtils.getPositionWelfare(mContext, positionBean.getWelfare()));
+                } else {
+                    tvPrice.setText("");
+                }
+                //职位描述
+                if (!TextUtils.isEmpty(positionBean.getPositionDetail())) {
+                    tvDesc.setText(positionBean.getPositionDetail());
+                } else {
+                    tvDesc.setText("");
+                }
+            }
+            String addressResult = "";
+            List<WorkAddressBean> addressBeanList = bean.getAddress();
+            if (addressBeanList != null && !addressBeanList.isEmpty()) {
+                for (WorkAddressBean item : addressBeanList) {
+                    String adName = !TextUtils.isEmpty(item.getAdname()) ? item.getAdname().replace("-", " ") : "";
+                    String address = !TextUtils.isEmpty(item.getAddress()) ? item.getAddress() : "";
+                    addressResult += !TextUtils.isEmpty(addressResult) ? ("\n" + (TextUtils.isEmpty(adName) ? address : (adName + " " + address))) : TextUtils.isEmpty(adName) ? address : (adName + " " + address);
+                }
+            }
+            tvAddress.setText(addressResult);
+        }
+    }
+
+    @OnClick(R.id.ll_information_again_close)
+    public void onClick(View view) {
+        salAgain.toggleExpand();
+    }
+
+    /**
+     * 动画结束回调
+     */
+    ShrinkAnimationLayout.OnAnimationListener onAgainAnimationListener = new ShrinkAnimationLayout.OnAnimationListener() {
+        @Override
+        public void onFinish(boolean isShow) {
+            if (isShow) {
+                dRemove.setBounds(0, 0, dRemove.getMinimumWidth(), dRemove.getMinimumHeight());
+                tvInformationAgain.setCompoundDrawables(dRemove, null, null, null);
+                tvInformationAgain.setText(R.string.position_click_close_all_information);
+            } else {
+                dAdd.setBounds(0, 0, dAdd.getMinimumWidth(), dAdd.getMinimumHeight());
+                tvInformationAgain.setCompoundDrawables(dAdd, null, null, null);
+                tvInformationAgain.setText(R.string.position_click_open_all_information);
+            }
+        }
+    };
+}

+ 44 - 6
app/src/main/java/com/webrain/dailypay/ui/adapter/listview/PositionListAdapter.java

@@ -13,11 +13,12 @@ import android.widget.TextView;
 import com.webrain.baselibrary.AppConstant;
 import com.webrain.baselibrary.IntentConstant;
 import com.webrain.baselibrary.utils.DateUtils;
+import com.webrain.dailypay.AppCacheManager;
 import com.webrain.dailypay.R;
 import com.webrain.dailypay.bean.PositionBean;
 import com.webrain.dailypay.bean.PositionListBean;
 import com.webrain.dailypay.bean.WorkAddressBean;
-import com.webrain.dailypay.ui.activity.position.PositionApplyManagerActivity;
+import com.webrain.dailypay.ui.activity.position.PositionDetailActivity;
 import com.webrain.dailypay.ui.base.BaseViewHolder;
 
 import java.util.List;
@@ -95,9 +96,14 @@ public class PositionListAdapter extends BaseAdapter implements AdapterView.OnIt
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
         if (position == 0)
             return;
-        Intent intent = new Intent(mContext, PositionApplyManagerActivity.class);
+    /*    Intent intent = new Intent(mContext, PositionApplyManagerActivity.class);
         intent.putExtra(IntentConstant.BEAN, getItem(position - 1).getPosition());
-        mContext.startActivity(intent);
+        mContext.startActivity(intent);*/
+        if (getItem(position - 1) != null && getItem(position - 1).getPosition() != null) {
+            Intent intent = new Intent(mContext, PositionDetailActivity.class);
+            intent.putExtra(IntentConstant.ID, getItem(position - 1).getPosition().getId() + "");
+            mContext.startActivity(intent);
+        }
     }
 
     class ResumeViewHolder extends BaseViewHolder {
@@ -120,10 +126,14 @@ public class PositionListAdapter extends BaseAdapter implements AdapterView.OnIt
         TextView tvOver;
         @BindView(R.id.tv_edit)
         TextView tvEdit;
-        @BindView(R.id.tv_tips)
-        TextView tvTips;
         @BindView(R.id.tv_time_title)
         TextView tvTimeTitle;
+        @BindView(R.id.tv_authentication)
+        TextView tvAuthentication;
+        @BindView(R.id.tv_new_apply)
+        TextView tvNewApply;
+        @BindView(R.id.tv_manager_apply)
+        TextView tvManagerApply;
 
         PositionListBean mBean;
 
@@ -229,9 +239,23 @@ public class PositionListAdapter extends BaseAdapter implements AdapterView.OnIt
                     tvState.setVisibility(View.GONE);
                 }
             }
+            //标签状态
+            if (AppCacheManager.getInstance().getCompanyModel() == null || (AppCacheManager.getInstance().getCompanyModel() != null && AppCacheManager.getInstance().getCompanyModel().getAuthenticationStatus() != AppConstant.APPROVE_SUCCESS)) {
+                tvAuthentication.setVisibility(View.VISIBLE);
+                tvNewApply.setVisibility(View.GONE);
+                tvManagerApply.setVisibility(View.GONE);
+            } else if (!TextUtils.isEmpty(bean.getCount()) && !"0".equals(bean.getCount())) {
+                tvAuthentication.setVisibility(View.GONE);
+                tvNewApply.setVisibility(View.VISIBLE);
+                tvManagerApply.setVisibility(View.GONE);
+            } else {
+                tvAuthentication.setVisibility(View.GONE);
+                tvNewApply.setVisibility(View.GONE);
+                tvManagerApply.setVisibility(View.VISIBLE);
+            }
         }
 
-        @OnClick({R.id.tv_refresh, R.id.tv_pause, R.id.tv_over, R.id.tv_edit})
+        @OnClick({R.id.tv_refresh, R.id.tv_pause, R.id.tv_over, R.id.tv_edit, R.id.tv_manager_apply, R.id.tv_new_apply, R.id.tv_authentication})
         public void onClick(View view) {
             if (onMenuClickListener != null)
                 switch (view.getId()) {
@@ -247,6 +271,17 @@ public class PositionListAdapter extends BaseAdapter implements AdapterView.OnIt
                     case R.id.tv_edit:
                         onMenuClickListener.onEdit(mBean);
                         break;
+                    case R.id.tv_manager_apply:
+                        onMenuClickListener.onGoApplyManager(mBean);
+                        break;
+                    case R.id.tv_new_apply:
+                        mBean.setCount("0");
+                        notifyDataSetChanged();
+                        onMenuClickListener.onGoApplyManager(mBean);
+                        break;
+                    case R.id.tv_authentication:
+                        onMenuClickListener.onAuthenticationCompany(mBean);
+                        break;
                 }
         }
     }
@@ -261,5 +296,8 @@ public class PositionListAdapter extends BaseAdapter implements AdapterView.OnIt
 
         void onEdit(PositionListBean bean);
 
+        void onGoApplyManager(PositionListBean bean);
+
+        void onAuthenticationCompany(PositionListBean bean);
     }
 }

+ 18 - 0
app/src/main/java/com/webrain/dailypay/ui/fragment/PositionFragment.java

@@ -26,9 +26,11 @@ import com.webrain.baselibrary.IntentConstant;
 import com.webrain.baselibrary.utils.PxUtils;
 import com.webrain.baselibrary.widget.refresh.ProgressRefreshLayout;
 import com.webrain.dailypay.R;
+import com.webrain.dailypay.bean.CompanyBean;
 import com.webrain.dailypay.bean.PositionBean;
 import com.webrain.dailypay.bean.PositionListBean;
 import com.webrain.dailypay.event.StringEvent;
+import com.webrain.dailypay.ui.activity.position.PositionApplyManagerActivity;
 import com.webrain.dailypay.ui.activity.position.PositionReleaseActivity;
 import com.webrain.dailypay.ui.adapter.listview.PositionListAdapter;
 import com.webrain.dailypay.ui.base.BaseFragment;
@@ -175,6 +177,8 @@ public class PositionFragment extends BaseFragment<PositionFragmentPresenter> im
     public void onEvent(StringEvent event) {
         if (event.getData().equals(EventConstant.EVENT_USER_AUTHENTICATION_STATUS_CHANGE)) {
             mvpPresenter.init();
+        } else if (event.getData().equals(EventConstant.EVENT_COMPANY_AUTHENTICATION_STATUS_CHANGE)) {
+            onRefresh();
         } else if (event.getData().equals(EventConstant.EVENT_POSITION_LIST_REFRESH)) {
             mvpPresenter.getHttpPositionList(true, true, false);
         }
@@ -260,6 +264,20 @@ public class PositionFragment extends BaseFragment<PositionFragmentPresenter> im
             intent.putExtra(IntentConstant.JSON, new Gson().toJson(bean));
             startActivity(intent);
         }
+
+        @Override
+        public void onGoApplyManager(PositionListBean bean) {
+            if (bean.getPosition() != null) {
+                Intent intent = new Intent(mContext, PositionApplyManagerActivity.class);
+                intent.putExtra(IntentConstant.BEAN, bean.getPosition());
+                startActivity(intent);
+            }
+        }
+
+        @Override
+        public void onAuthenticationCompany(PositionListBean bean) {
+            mvpPresenter.getHttpUserCompanyBean();
+        }
     };
     /**
      * 审核状态回调

+ 0 - 3
app/src/main/java/com/webrain/dailypay/ui/fragment/ResumeFragment.java

@@ -1,17 +1,14 @@
 package com.webrain.dailypay.ui.fragment;
 
-import android.content.Context;
 import android.os.Bundle;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.support.v7.widget.CardView;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
-import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.inputmethod.EditorInfo;
-import android.view.inputmethod.InputMethodManager;
 import android.widget.AbsListView;
 import android.widget.EditText;
 import android.widget.LinearLayout;

+ 6 - 1
app/src/main/java/com/webrain/dailypay/ui/fragment/position/PositionFullReleaseFragment.java

@@ -145,11 +145,16 @@ public class PositionFullReleaseFragment extends BaseFragment<PositionFullReleas
     @Override
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
         View view = super.onCreateView(inflater, container, savedInstanceState);
-
         mHolderViews = new ArrayList<>();
         if (positionListBean != null)
             mvpPresenter.iniPositionBean(positionListBean);
         mvpPresenter.init();
+        vfFull.showNext();
+        vfFull.showNext();
+        vfFull.showNext();
+        vfFull.showPrevious();
+        vfFull.showPrevious();
+        vfFull.showPrevious();
         return view;
     }
 

+ 22 - 0
app/src/main/java/com/webrain/dailypay/ui/mvp/contacts/PositionDetailContacts.java

@@ -0,0 +1,22 @@
+package com.webrain.dailypay.ui.mvp.contacts;
+
+import com.webrain.dailypay.bean.PositionBean;
+import com.webrain.dailypay.bean.PositionListBean;
+import com.webrain.dailypay.callback.MvpDataCallBack;
+import com.webrain.dailypay.ui.base.IPresenter;
+import com.webrain.dailypay.ui.base.IView;
+
+public class PositionDetailContacts {
+    public interface IPositionDetailView extends IView {
+        void onPositionDetail(PositionListBean positionBean);
+    }
+
+    public interface IPositionDetailPresenter extends IPresenter {
+        void getPositionDetail();
+    }
+
+    public interface IPositionDetailModel {
+        void getPositionDetail(MvpDataCallBack<PositionListBean> callBack);
+    }
+
+}

+ 6 - 0
app/src/main/java/com/webrain/dailypay/ui/mvp/contacts/PositionFragmentContacts.java

@@ -1,5 +1,6 @@
 package com.webrain.dailypay.ui.mvp.contacts;
 
+import com.webrain.dailypay.bean.CompanyBean;
 import com.webrain.dailypay.bean.PositionBean;
 import com.webrain.dailypay.bean.PositionListBean;
 import com.webrain.dailypay.callback.MvpDataCallBack;
@@ -17,11 +18,14 @@ public class PositionFragmentContacts {
         void onRefresh();
 
         void onNoRealAuthentication(int state);
+
     }
 
     public interface IPositionFragmentPresenter extends IPresenter {
         void getHttpPositionList(boolean isRefresh, boolean isShowDialog, boolean isInit);
 
+        void getHttpUserCompanyBean();
+
         void doRefresh(PositionBean bean);
 
         void doPause(PositionBean bean);
@@ -47,6 +51,8 @@ public class PositionFragmentContacts {
     public interface IPositionFragmentModel {
         void getHttpPositionList(MvpDataCallBack<List<PositionListBean>> callBack, boolean isShowDialog, boolean isInit);
 
+        void getHttpUserCompanyBean(MvpDataCallBack<Boolean> callBack);
+
         boolean isLastPage();
 
         boolean isLoading();

+ 1 - 3
app/src/main/java/com/webrain/dailypay/ui/mvp/model/InvitedInterviewModel.java

@@ -64,14 +64,12 @@ public class InvitedInterviewModel extends BaseModel implements InvitedInterview
     @Override
     public void httpInvitedInterview(String interviewTime, String interviewAddress, String contactPerson, String contactPhone, final MvpDataCallBack<Boolean> callBack) {
         RetrofitHttpParams params = new RetrofitHttpParams(mContext);
-        params.put("user_id1", resumeBean.getHpUser().getId());
+        params.put("applyId", resumeBean.getApplyId());
         params.put("interviewTime", interviewTime);
         params.put("interviewAddres", interviewAddress);
         params.put("contactPerson", contactPerson);
         params.put("contactPhone", contactPhone);
-        params.put("positionId", resumeBean.getPositionId());
         params.put("positionName", resumeBean.getPositionName());
-        params.put("positionCategory", resumeBean.getPositionCategory());
         params.put("companyName", companyBean.getEnterpriseName());
         new PositionSubscribe(mContext).requestInterviewInvite(params.getRequestParams(), new ApiObserver<ApiNormalBean>(mContext, true, false) {
             @Override

+ 4 - 6
app/src/main/java/com/webrain/dailypay/ui/mvp/model/PositionApplyManagerModel.java

@@ -25,7 +25,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 public class PositionApplyManagerModel extends BaseModel implements PositionApplyManagerContacts.IPositionApplyManagerModel {
-    private List<ResumeBean> mPositionData = new ArrayList<>();//热门岗位数据
+    private List<ResumeBean> mPositionData = new ArrayList<>();//投递简历数据
     private PositionBean mIntentBean;//上层传入对象
     private boolean isError = false;//是否出错
     private int pageNum = 0;//第一页为1开始 初始为0
@@ -139,18 +139,16 @@ public class PositionApplyManagerModel extends BaseModel implements PositionAppl
     /**
      * 批量处理简历
      *
-     * @param user_ids
+     * @param applyIds
      * @param isRefuse
      * @param isEmploy
      * @param callBack
      */
     @Override
-    public void changeApplysStatus(String user_ids, String isRefuse, String isEmploy, final MvpDataCallBack<Boolean> callBack) {
+    public void changeApplysStatus(String applyIds, String isRefuse, String isEmploy, final MvpDataCallBack<Boolean> callBack) {
         isLoading = true;
         RetrofitHttpParams params = new RetrofitHttpParams(mContext);
-        params.put("user_id1", user_ids);
-        params.put("positionId", mIntentBean.getId());
-        params.put("positionCategory", mIntentBean.getPositionCategory());//兼容服务端C端
+        params.put("applyId", applyIds);
         params.put("type", type);
         if (!TextUtils.isEmpty(isRefuse))
             params.put("isRefuse", isRefuse);

+ 44 - 0
app/src/main/java/com/webrain/dailypay/ui/mvp/model/PositionDetailModel.java

@@ -0,0 +1,44 @@
+package com.webrain.dailypay.ui.mvp.model;
+
+import android.content.Context;
+import android.text.TextUtils;
+
+import com.webrain.baselibrary.IntentConstant;
+import com.webrain.dailypay.bean.PositionBean;
+import com.webrain.dailypay.bean.PositionListBean;
+import com.webrain.dailypay.callback.MvpDataCallBack;
+import com.webrain.dailypay.http.ApiObserver;
+import com.webrain.dailypay.http.RetrofitHttpParams;
+import com.webrain.dailypay.http.subscribe.PositionSubscribe;
+import com.webrain.dailypay.ui.activity.position.PositionDetailActivity;
+import com.webrain.dailypay.ui.base.BaseModel;
+import com.webrain.dailypay.ui.mvp.contacts.PositionDetailContacts;
+
+public class PositionDetailModel extends BaseModel implements PositionDetailContacts.IPositionDetailModel {
+    public PositionDetailModel(Context mContext) {
+        super(mContext);
+    }
+
+    @Override
+    public void getPositionDetail(final MvpDataCallBack<PositionListBean> callBack) {
+        String id = ((PositionDetailActivity) mContext).getIntent().getStringExtra(IntentConstant.ID);
+        if (!TextUtils.isEmpty(id)) {
+            RetrofitHttpParams params = new RetrofitHttpParams(mContext);
+            params.put("id", id);
+            new PositionSubscribe(mContext).requestGetPositionDetail(params.getRequestParams(), new ApiObserver<PositionListBean>(mContext) {
+                @Override
+                public void onSuccess(PositionListBean data) {
+                    if (data != null) {
+                        callBack.onData(data);
+                    }
+                }
+
+
+                @Override
+                public void onFinish() {
+                }
+
+            });
+        }
+    }
+}

+ 30 - 0
app/src/main/java/com/webrain/dailypay/ui/mvp/model/PositionFragmentModel.java

@@ -5,8 +5,10 @@ import android.content.Context;
 import com.webrain.baselibrary.AppConstant;
 import com.webrain.baselibrary.utils.DateUtils;
 import com.webrain.dailypay.AppCacheManager;
+import com.webrain.dailypay.bean.CompanyBean;
 import com.webrain.dailypay.bean.PositionBean;
 import com.webrain.dailypay.bean.PositionListBean;
+import com.webrain.dailypay.bean.api.ApiLoginBean;
 import com.webrain.dailypay.bean.api.ApiNormalBean;
 import com.webrain.dailypay.bean.api.ApiPositionListBean;
 import com.webrain.dailypay.bean.api.ApiPositionPauseBean;
@@ -15,6 +17,7 @@ import com.webrain.dailypay.callback.MvpDataCallBack;
 import com.webrain.dailypay.http.ApiObserver;
 import com.webrain.dailypay.http.RetrofitHttpParams;
 import com.webrain.dailypay.http.exception.ApiException;
+import com.webrain.dailypay.http.subscribe.LoginSubscribe;
 import com.webrain.dailypay.http.subscribe.PositionSubscribe;
 import com.webrain.dailypay.ui.base.BaseModel;
 import com.webrain.dailypay.ui.mvp.contacts.PositionFragmentContacts;
@@ -44,6 +47,33 @@ public class PositionFragmentModel extends BaseModel implements PositionFragment
     }
 
     /**
+     * 获取公司信息
+     *
+     * @param callBack
+     */
+    @Override
+    public void getHttpUserCompanyBean(final MvpDataCallBack<Boolean> callBack) {
+        RetrofitHttpParams params = new RetrofitHttpParams(mContext);
+        params.put("userId", AppCacheManager.getInstance().getUserId());
+        params.put("userToken", AppCacheManager.getInstance().getUserToken());
+        new LoginSubscribe(mContext).requestUserInfo(params.getRequestParams(), new ApiObserver<ApiLoginBean>(mContext, true, false) {
+            @Override
+            public void onSuccess(ApiLoginBean data) {
+                if (data != null) {
+                    if (data.getCompanyAuthentication() != null) {
+                        AppCacheManager.getInstance().setCompanyBean(data.getCompanyAuthentication());
+                    }
+                    callBack.onData(true);
+                }
+            }
+
+            @Override
+            public void onFinish() {
+            }
+        });
+    }
+
+    /**
      * http请求获取岗位列表数据
      *
      * @param callBack

+ 5 - 6
app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/PositionApplyManagerPresenter.java

@@ -80,15 +80,14 @@ public class PositionApplyManagerPresenter extends BasePresenter<PositionApplyMa
     public void changeApplysStatus(List<ResumeBean> mSelectList, String isRefuse, String isEmploy) {
         if (isViewAttach()) {
             if (mSelectList != null && !mSelectList.isEmpty()) {
-                String userIds = "";
+                String applyIds = "";
                 for (ResumeBean item : mSelectList) {
-                    String id = item.getHpUser() == null ? "" : item.getHpUser().getId();
-                    if (!TextUtils.isEmpty(id)) {
-                        userIds += TextUtils.isEmpty(userIds) ? id : ("," + id);
+                    if (!TextUtils.isEmpty(item.getApplyId())) {
+                        applyIds += TextUtils.isEmpty(applyIds) ? item.getApplyId() : ("," + item.getApplyId());
                     }
                 }
-                if (!TextUtils.isEmpty(userIds)) {
-                    mPositionApplyManagerModel.changeApplysStatus(userIds, isRefuse, isEmploy, new MvpDataCallBack<Boolean>() {
+                if (!TextUtils.isEmpty(applyIds)) {
+                    mPositionApplyManagerModel.changeApplysStatus(applyIds, isRefuse, isEmploy, new MvpDataCallBack<Boolean>() {
                         @Override
                         public void onData(Boolean data) {
                             if (data)

+ 33 - 0
app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/PositionDetailPresenter.java

@@ -0,0 +1,33 @@
+package com.webrain.dailypay.ui.mvp.presenter;
+
+import com.webrain.dailypay.bean.PositionListBean;
+import com.webrain.dailypay.callback.MvpDataCallBack;
+import com.webrain.dailypay.ui.activity.position.PositionDetailActivity;
+import com.webrain.dailypay.ui.base.BasePresenter;
+import com.webrain.dailypay.ui.mvp.contacts.PositionDetailContacts;
+import com.webrain.dailypay.ui.mvp.model.PositionDetailModel;
+
+public class PositionDetailPresenter extends BasePresenter<PositionDetailActivity> implements PositionDetailContacts.IPositionDetailPresenter {
+    private PositionDetailModel mPositionDetailModel;
+
+    public PositionDetailPresenter(PositionDetailActivity view) {
+        super(view);
+        this.mPositionDetailModel = new PositionDetailModel(mvpReference.get());
+    }
+
+    /**
+     * 获取岗位详情
+     */
+    @Override
+    public void getPositionDetail() {
+        if (isViewAttach()) {
+            mPositionDetailModel.getPositionDetail(new MvpDataCallBack<PositionListBean>() {
+                @Override
+                public void onData(PositionListBean data) {
+                    if (data != null)
+                        mvpReference.get().onPositionDetail(data);
+                }
+            });
+        }
+    }
+}

+ 35 - 0
app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/PositionFragmentPresenter.java

@@ -1,17 +1,27 @@
 package com.webrain.dailypay.ui.mvp.presenter;
 
+import android.content.Intent;
+
 import com.webrain.baselibrary.AppConstant;
+import com.webrain.baselibrary.EventConstant;
+import com.webrain.baselibrary.IntentConstant;
 import com.webrain.baselibrary.utils.ToastUtils;
 import com.webrain.dailypay.AppCacheManager;
 import com.webrain.dailypay.R;
 import com.webrain.dailypay.bean.PositionBean;
 import com.webrain.dailypay.bean.PositionListBean;
 import com.webrain.dailypay.callback.MvpDataCallBack;
+import com.webrain.dailypay.event.StringEvent;
+import com.webrain.dailypay.ui.activity.identity.IdentityCompanyActivity;
+import com.webrain.dailypay.ui.activity.identity.IdentityRecruitersActivity;
+import com.webrain.dailypay.ui.activity.identity.IdentityResultActivity;
 import com.webrain.dailypay.ui.base.BasePresenter;
 import com.webrain.dailypay.ui.fragment.PositionFragment;
 import com.webrain.dailypay.ui.mvp.contacts.PositionFragmentContacts;
 import com.webrain.dailypay.ui.mvp.model.PositionFragmentModel;
 
+import org.greenrobot.eventbus.EventBus;
+
 import java.util.List;
 
 public class PositionFragmentPresenter extends BasePresenter<PositionFragment> implements PositionFragmentContacts.IPositionFragmentPresenter {
@@ -52,6 +62,31 @@ public class PositionFragmentPresenter extends BasePresenter<PositionFragment> i
         }
     }
 
+    @Override
+    public void getHttpUserCompanyBean() {
+        if (isViewAttach())
+            mPositionListFragmentModel.getHttpUserCompanyBean(new MvpDataCallBack<Boolean>() {
+                @Override
+                public void onData(Boolean data) {
+                    if (isViewAttach()) {
+                        EventBus.getDefault().post(new StringEvent(EventConstant.EVENT_COMPANY_AUTHENTICATION_STATUS_CHANGE));
+                        if (AppCacheManager.getInstance().getCompanyModel() == null) {//无企业对象,去认证页
+                            mvpReference.get().startActivity(new Intent(mvpReference.get().getContext(), IdentityCompanyActivity.class));
+                        } else if (AppCacheManager.getInstance().getCompanyModel().getAuthenticationStatus() == AppConstant.APPROVE_SUCCESS) {//认证成功状态,提示认证成功
+                            ToastUtils.show(mvpReference.get().getContext(), R.string.toast_yes_authentication);
+                        } else if (AppCacheManager.getInstance().getCompanyModel().getAuthenticationStatus() == AppConstant.APPROVE_NONE) {//未认证状态,去认证页
+                            mvpReference.get().startActivity(new Intent(mvpReference.get().getContext(), IdentityCompanyActivity.class));
+                        } else {//认证失败,认证等待状态,去认证结果页
+                            Intent intent = new Intent(mvpReference.get().getContext(), IdentityResultActivity.class);
+                            intent.putExtra(IntentConstant.TYPE, AppConstant.APPROVE_COMPANY);
+                            mvpReference.get().startActivity(intent);
+                        }
+
+                    }
+                }
+            });
+    }
+
     /**
      * 刷新岗位
      *

+ 67 - 0
app/src/main/java/com/webrain/dailypay/utils/BaseInformationUtils.java

@@ -6,6 +6,7 @@ import android.text.TextUtils;
 
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
+import com.webrain.baselibrary.AppConstant;
 import com.webrain.dailypay.bean.BaseInformationBean;
 import com.webrain.dailypay.bean.ProvinceBean;
 
@@ -67,6 +68,50 @@ public class BaseInformationUtils {
     }
 
     /**
+     * 获取结算方式
+     *
+     * @param mContext
+     * @param code
+     * @return
+     */
+    public static String getClearType(Context mContext, String code) {
+        if (!TextUtils.isEmpty(code))
+            for (BaseInformationBean item : getClearTypeList(mContext)) {
+                if (item.getCode().equals(code)) {
+                    return item.getName();
+                }
+            }
+        return "";
+    }
+
+
+    /**
+     * 获取岗位类型
+     *
+     * @param mContext
+     * @param code
+     * @return
+     */
+    public static String getPositionType(Context mContext, String code, int positionType) {
+        if (!TextUtils.isEmpty(code))
+            if (positionType == AppConstant.FULL_TIME_JOB) {
+                for (BaseInformationBean item : getPositionFullTypeList(mContext)) {
+                    if (item.getCode().equals(code)) {
+                        return item.getName();
+                    }
+                }
+            } else if (positionType == AppConstant.PART_TIME_JOB) {
+                for (BaseInformationBean item : getPositionPartTypeList(mContext)) {
+                    if (item.getCode().equals(code)) {
+                        return item.getName();
+                    }
+                }
+            }
+
+        return "";
+    }
+
+    /**
      * 获取工龄
      *
      * @param mContext
@@ -84,6 +129,28 @@ public class BaseInformationUtils {
     }
 
     /**
+     * 获取岗位福利
+     *
+     * @param mContext
+     * @param code
+     * @return
+     */
+    public static String getPositionWelfare(Context mContext, String code) {
+        String result = "";
+        if (TextUtils.isEmpty(code))
+            return result;
+        String[] codes = code.split(",");
+        for (BaseInformationBean item : getPositionWelfare(mContext)) {
+            for (String codeItem : codes) {
+                if (item.getCode().equals(codeItem)) {
+                    result += TextUtils.isEmpty(result) ? item.getName() : ("," + item.getName());
+                }
+            }
+        }
+        return result;
+    }
+
+    /**
      * 获取期望岗位
      *
      * @param mContext

+ 6 - 0
app/src/main/res/drawable/corners_blue_10.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <!--圆角半径-->
+    <corners android:radius="10dp" />
+    <solid android:color="@color/text_blue" />
+</shape>

+ 1 - 1
app/src/main/res/drawable/corners_blue_btn_bg.xml

@@ -4,6 +4,6 @@
     <corners android:radius="21.5dp" />
     <gradient
         android:angle="0"
-        android:endColor="#4170C7"
+        android:endColor="@color/text_blue"
         android:startColor="@color/main_purple" />
 </shape>

+ 7 - 0
app/src/main/res/drawable/corners_purple_10.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <!--圆角半径-->
+    <corners android:radius="10dp" />
+    <solid
+        android:color="@color/text_purple"/>
+</shape>

+ 1 - 1
app/src/main/res/drawable/edit_input_color.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <shape xmlns:android="http://schemas.android.com/apk/res/android">
     <gradient
-        android:endColor="#4170C7"
+        android:endColor="@color/text_blue"
         android:startColor="@color/main_purple" />
 </shape>

+ 1 - 1
app/src/main/res/drawable/gradient_purple.xml

@@ -2,6 +2,6 @@
 <shape xmlns:android="http://schemas.android.com/apk/res/android">
     <gradient
         android:angle="315"
-        android:endColor="#4170C7"
+        android:endColor="@color/text_blue"
         android:startColor="@color/main_purple" />
 </shape>

+ 2 - 2
app/src/main/res/drawable/identity_choice_bg.xml

@@ -3,10 +3,10 @@
     android:shape="rectangle">
     <solid android:color="@color/white" />
     <gradient
-        android:startColor="#4170c7"
+        android:angle="135"
         android:endColor="@color/main_purple"
+        android:startColor="@color/text_blue"
         android:type="linear"
-        android:angle="135"
         android:useLevel="true" />
     <corners
         android:bottomLeftRadius="54dp"

+ 240 - 0
app/src/main/res/layout/activity_position_detail.xml

@@ -0,0 +1,240 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="vertical">
+
+        <android.support.v7.widget.CardView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="14dp"
+            android:layout_marginTop="15dp"
+            android:layout_marginRight="14dp"
+            app:cardCornerRadius="17dp"
+            app:cardElevation="5dp">
+
+            <RelativeLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content">
+
+                <android.support.v7.widget.CardView
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    app:cardCornerRadius="17dp"
+                    app:cardElevation="5dp">
+
+                    <LinearLayout
+                        android:layout_width="match_parent"
+                        android:layout_height="83dp"
+                        android:gravity="center_vertical"
+                        android:orientation="vertical"
+                        android:paddingLeft="19dp"
+                        android:paddingRight="19dp">
+
+                        <LinearLayout
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:orientation="horizontal">
+
+                            <TextView
+                                android:id="@+id/tv_name"
+                                android:layout_width="0dp"
+                                android:layout_height="wrap_content"
+                                android:layout_weight="1"
+                                android:singleLine="true"
+                                android:textColor="@color/text_black"
+                                android:textSize="@dimen/px48_16sp" />
+
+                            <TextView
+                                android:id="@+id/tv_price"
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:singleLine="true"
+                                android:textColor="@color/main_purple"
+                                android:textSize="@dimen/px48_16sp" />
+                        </LinearLayout>
+
+                        <TextView
+                            android:id="@+id/tv_tips"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:layout_marginTop="5dp"
+                            android:drawableLeft="@mipmap/ic_detail_tips"
+                            android:drawablePadding="5dp"
+                            android:singleLine="true"
+                            android:textColor="@color/text_gray"
+                            android:textSize="@dimen/px33_11sp" />
+
+                    </LinearLayout>
+                </android.support.v7.widget.CardView>
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="66dp"
+                    android:orientation="vertical">
+
+                    <com.webrain.dailypay.ui.widget.ShrinkAnimationLayout
+                        android:id="@+id/sal_again"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:orientation="vertical"
+                        android:paddingTop="40dp"
+                        android:paddingLeft="29dp"
+                        android:paddingBottom="23dp"
+                        android:paddingRight="29dp">
+
+
+                        <LinearLayout
+                            android:id="@+id/ll_work_time"
+                            android:layout_marginBottom="15dp"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:orientation="horizontal">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_marginRight="15dp"
+                                android:text="@string/title_work_time"
+                                android:textColor="@color/text_black"
+                                android:textSize="@dimen/px30_10sp" />
+
+                            <TextView
+                                android:id="@+id/tv_work_time"
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_marginRight="19dp"
+                                android:lineSpacingExtra="6dp"
+                                android:textColor="@color/text_black"
+                                android:textSize="@dimen/px30_10sp" />
+
+                        </LinearLayout>
+
+                        <LinearLayout
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:orientation="horizontal">
+
+                            <TextView
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_marginRight="15dp"
+                                android:text="@string/title_work_welfare"
+                                android:textColor="@color/text_black"
+                                android:textSize="@dimen/px30_10sp" />
+
+                            <TextView
+                                android:id="@+id/tv_welfare"
+                                android:layout_width="wrap_content"
+                                android:layout_height="wrap_content"
+                                android:layout_marginRight="19dp"
+                                android:lineSpacingExtra="6dp"
+                                android:textColor="@color/text_black"
+                                android:textSize="@dimen/px30_10sp" />
+
+                        </LinearLayout>
+                    </com.webrain.dailypay.ui.widget.ShrinkAnimationLayout>
+
+
+                    <LinearLayout
+                        android:id="@+id/ll_information_again_close"
+                        android:layout_width="match_parent"
+                        android:layout_height="56dp"
+                        android:background="@drawable/corners_purple_position_more_btn_bg"
+                        android:gravity="center">
+
+                        <TextView
+                            android:id="@+id/tv_information_again"
+                            android:layout_width="wrap_content"
+                            android:layout_height="wrap_content"
+                            android:drawableLeft="@mipmap/ic_position_release_add"
+                            android:drawablePadding="9dp"
+                            android:text="@string/position_click_open_all_information"
+                            android:textColor="@color/white"
+                            android:textSize="@dimen/px33_11sp" />
+                    </LinearLayout>
+
+                </LinearLayout>
+            </RelativeLayout>
+        </android.support.v7.widget.CardView>
+
+        <android.support.v7.widget.CardView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="14dp"
+            android:layout_marginTop="20dp"
+            android:layout_marginRight="14dp"
+            app:cardCornerRadius="17dp"
+            app:cardElevation="5dp">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                android:padding="19dp">
+
+                <TextView
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:drawableLeft="@mipmap/ic_detail_position"
+                    android:drawablePadding="5dp"
+                    android:text="@string/title_work_desc"
+                    android:textColor="@color/text_purple"
+                    android:textSize="@dimen/px36_12sp" />
+
+                <TextView
+                    android:id="@+id/tv_desc"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:lineSpacingExtra="6dp"
+                    android:textColor="@color/text_black"
+                    android:textSize="@dimen/px30_10sp" />
+
+            </LinearLayout>
+        </android.support.v7.widget.CardView>
+
+        <android.support.v7.widget.CardView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="14dp"
+            android:layout_marginTop="20dp"
+            android:layout_marginRight="14dp"
+            android:layout_marginBottom="20dp"
+            app:cardCornerRadius="17dp"
+            app:cardElevation="5dp">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                android:padding="19dp">
+
+                <TextView
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:drawableLeft="@mipmap/ic_detail_address"
+                    android:drawablePadding="5dp"
+                    android:text="@string/title_work_address"
+                    android:textColor="@color/text_purple"
+                    android:textSize="@dimen/px36_12sp" />
+
+                <TextView
+                    android:id="@+id/tv_address"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="10dp"
+                    android:lineSpacingExtra="6dp"
+                    android:textColor="@color/text_black"
+                    android:textSize="@dimen/px30_10sp" />
+
+            </LinearLayout>
+        </android.support.v7.widget.CardView>
+    </LinearLayout>
+</ScrollView>

+ 36 - 2
app/src/main/res/layout/item_listview_position.xml

@@ -204,7 +204,7 @@
 
 
         <TextView
-            android:id="@+id/tv_tips"
+            android:id="@+id/tv_authentication"
             android:layout_width="wrap_content"
             android:layout_height="20dp"
             android:layout_alignParentRight="true"
@@ -213,11 +213,45 @@
             android:background="@drawable/corners_light_gray_10"
             android:gravity="center"
             android:paddingLeft="10dp"
+            android:visibility="gone"
             android:paddingRight="10dp"
-            android:text="您还未进行企业认证 点击认证"
+            android:text="@string/company_no_authentication"
             android:textColor="@color/text_purple"
             android:textSize="@dimen/px30_10sp" />
 
+        <TextView
+            android:id="@+id/tv_new_apply"
+            android:layout_width="wrap_content"
+            android:layout_height="20dp"
+            android:layout_alignParentRight="true"
+            android:layout_marginTop="7.5dp"
+            android:layout_marginRight="44dp"
+            android:background="@drawable/corners_blue_10"
+            android:gravity="center"
+            android:paddingLeft="10dp"
+            android:paddingRight="10dp"
+            android:visibility="gone"
+            android:textColor="@color/white"
+            android:textSize="@dimen/px30_10sp" />
+
+        <TextView
+            android:id="@+id/tv_manager_apply"
+            android:layout_width="wrap_content"
+            android:layout_height="20dp"
+            android:layout_alignParentRight="true"
+            android:layout_marginTop="7.5dp"
+            android:layout_marginRight="44dp"
+            android:drawableLeft="@mipmap/ic_position_apply"
+            android:background="@drawable/corners_purple_10"
+            android:gravity="center"
+            android:drawablePadding="5dp"
+            android:text="@string/manager_apply"
+            android:paddingLeft="6dp"
+            android:paddingRight="10dp"
+            android:textColor="@color/white"
+            android:textSize="@dimen/px30_10sp" />
+
+
     </RelativeLayout>
 
 

BIN
app/src/main/res/mipmap-hdpi/ic_detail_address.png


BIN
app/src/main/res/mipmap-hdpi/ic_detail_position.png


BIN
app/src/main/res/mipmap-hdpi/ic_detail_tips.png


BIN
app/src/main/res/mipmap-hdpi/ic_position_apply.png


BIN
app/src/main/res/mipmap-xhdpi/ic_detail_address.png


BIN
app/src/main/res/mipmap-xhdpi/ic_detail_position.png


BIN
app/src/main/res/mipmap-xhdpi/ic_detail_tips.png


BIN
app/src/main/res/mipmap-xhdpi/ic_position_apply.png


BIN
app/src/main/res/mipmap-xxhdpi/ic_detail_address.png


BIN
app/src/main/res/mipmap-xxhdpi/ic_detail_position.png


BIN
app/src/main/res/mipmap-xxhdpi/ic_detail_tips.png


BIN
app/src/main/res/mipmap-xxhdpi/ic_position_apply.png


BIN
app/src/main/res/mipmap-xxxhdpi/ic_detail_address.png


BIN
app/src/main/res/mipmap-xxxhdpi/ic_detail_position.png


BIN
app/src/main/res/mipmap-xxxhdpi/ic_detail_tips.png


BIN
app/src/main/res/mipmap-xxxhdpi/ic_position_apply.png


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

@@ -44,6 +44,8 @@
     <string name="in_the_recruitment">招聘中</string>
     <string name="in_the_review">审核中</string>
     <string name="review_no">审核驳回</string>
+    <string name="title_work_desc">职位描述:</string>
+    <string name="title_work_welfare">福利待遇:</string>
     <string name="title_work_time">工作时间:</string>
     <string name="title_work_address">工作地点:</string>
     <string name="title_recruiting_numbers">招聘人数:</string>
@@ -84,6 +86,9 @@
     <string name="no_real_authentication_click">您还未进行实名认证,点击认证</string>
     <string name="progress_wait">努力加载中...</string>
     <string name="cache_clear">已清除缓存</string>
+    <string name="company_no_authentication">您还未进行企业认证 点击认证</string>
+    <string name="manager_apply">管理岗位报名</string>
+
 
     <string name="day">天</string>
     <string name="week">周</string>

+ 1 - 0
baselibrary/src/main/java/com/webrain/baselibrary/IntentConstant.java

@@ -6,6 +6,7 @@ public class IntentConstant {
     public static final String HEIGHT = "height";
     public static final String BEAN = "bean";
     public static final String JSON = "json";
+    public static final String ID = "id";
     public static final String CROPPER = "isCropper";
     public static final String TYPE = "type";
 }