Explorar o código

完成部分 审核结果页面 完成部分业务逻辑 完成部分面试邀请逻辑

ZhangXinYu %!s(int64=6) %!d(string=hai) anos
pai
achega
247d25764f
Modificáronse 65 ficheiros con 1820 adicións e 174 borrados
  1. 7 0
      app/src/main/AndroidManifest.xml
  2. 32 0
      app/src/main/java/com/webrain/dailypay/AppCacheManager.java
  3. 103 0
      app/src/main/java/com/webrain/dailypay/bean/CompanyBean.java
  4. 85 0
      app/src/main/java/com/webrain/dailypay/bean/MsgBean.java
  5. 33 2
      app/src/main/java/com/webrain/dailypay/bean/ResumeBean.java
  6. 62 1
      app/src/main/java/com/webrain/dailypay/bean/UserBean.java
  7. 15 0
      app/src/main/java/com/webrain/dailypay/bean/api/ApiAuthenticationCompanyBean.java
  8. 10 0
      app/src/main/java/com/webrain/dailypay/bean/api/ApiLoginBean.java
  9. 18 0
      app/src/main/java/com/webrain/dailypay/bean/api/ApiMsgListBean.java
  10. 11 2
      app/src/main/java/com/webrain/dailypay/http/Api.java
  11. 18 2
      app/src/main/java/com/webrain/dailypay/http/subscribe/AnterpriseSubscribe.java
  12. 11 0
      app/src/main/java/com/webrain/dailypay/http/subscribe/PositionSubscribe.java
  13. 114 0
      app/src/main/java/com/webrain/dailypay/ui/activity/GuideActivity.java
  14. 4 4
      app/src/main/java/com/webrain/dailypay/ui/activity/LoginActivity.java
  15. 98 0
      app/src/main/java/com/webrain/dailypay/ui/activity/StartActivity.java
  16. 35 13
      app/src/main/java/com/webrain/dailypay/ui/activity/identity/IdentityResultActivity.java
  17. 82 7
      app/src/main/java/com/webrain/dailypay/ui/activity/position/PositionApplyManagerActivity.java
  18. 29 0
      app/src/main/java/com/webrain/dailypay/ui/activity/resume/InvitedInterviewActivity.java
  19. 5 2
      app/src/main/java/com/webrain/dailypay/ui/activity/resume/ResumeDetailActivity.java
  20. 50 7
      app/src/main/java/com/webrain/dailypay/ui/adapter/listview/MsgAdapter.java
  21. 58 1
      app/src/main/java/com/webrain/dailypay/ui/adapter/listview/PositionApplyAdapter.java
  22. 1 3
      app/src/main/java/com/webrain/dailypay/ui/adapter/listview/ResumeAdapter.java
  23. 27 1
      app/src/main/java/com/webrain/dailypay/ui/fragment/MeFragment.java
  24. 68 24
      app/src/main/java/com/webrain/dailypay/ui/fragment/MsgFragment.java
  25. 2 1
      app/src/main/java/com/webrain/dailypay/ui/mvp/contacts/IdentityCompanyContacts.java
  26. 5 0
      app/src/main/java/com/webrain/dailypay/ui/mvp/contacts/IdentityResultContacts.java
  27. 9 0
      app/src/main/java/com/webrain/dailypay/ui/mvp/contacts/InvitedInterviewContacts.java
  28. 20 0
      app/src/main/java/com/webrain/dailypay/ui/mvp/contacts/MsgFragmentContacts.java
  29. 10 3
      app/src/main/java/com/webrain/dailypay/ui/mvp/contacts/PositionApplyManagerContacts.java
  30. 6 0
      app/src/main/java/com/webrain/dailypay/ui/mvp/contacts/ResumeDetailContacts.java
  31. 8 4
      app/src/main/java/com/webrain/dailypay/ui/mvp/model/IdentityCompanyModel.java
  32. 38 0
      app/src/main/java/com/webrain/dailypay/ui/mvp/model/IdentityResultModel.java
  33. 34 0
      app/src/main/java/com/webrain/dailypay/ui/mvp/model/InvitedInterviewModel.java
  34. 3 0
      app/src/main/java/com/webrain/dailypay/ui/mvp/model/LoginModel.java
  35. 98 0
      app/src/main/java/com/webrain/dailypay/ui/mvp/model/MsgFragmentModel.java
  36. 50 1
      app/src/main/java/com/webrain/dailypay/ui/mvp/model/PositionApplyManagerModel.java
  37. 7 1
      app/src/main/java/com/webrain/dailypay/ui/mvp/model/ResumeDetailModel.java
  38. 12 7
      app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/IdentityCompanyPresenter.java
  39. 5 0
      app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/IdentityRecruitersPresenter.java
  40. 6 0
      app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/IdentityResultPresenter.java
  41. 8 0
      app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/InvitedInterviewPresenter.java
  42. 3 2
      app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/MainPresenter.java
  43. 43 0
      app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/MsgFragmentPresenter.java
  44. 48 3
      app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/PositionApplyManagerPresenter.java
  45. 37 0
      app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/ResumeDetailPresenter.java
  46. 1 4
      app/src/main/res/drawable/mipmap_select_all_refuse.xml
  47. 1 4
      app/src/main/res/drawable/mipmap_select_invited_interview.xml
  48. 73 0
      app/src/main/res/layout/activity_guide.xml
  49. 2 2
      app/src/main/res/layout/activity_identity_company.xml
  50. 13 7
      app/src/main/res/layout/activity_position_apply_manager.xml
  51. 9 0
      app/src/main/res/layout/activity_start.xml
  52. 13 5
      app/src/main/res/layout/fragment_msg.xml
  53. 41 61
      app/src/main/res/layout/item_listview_msg.xml
  54. 11 0
      app/src/main/res/layout/item_listview_position_apply_header.xml
  55. BIN=BIN
      app/src/main/res/mipmap-hdpi/hdpi.png
  56. BIN=BIN
      app/src/main/res/mipmap-xhdpi/ic_start.png
  57. BIN=BIN
      app/src/main/res/mipmap-xxhdpi/ic_start.png
  58. BIN=BIN
      app/src/main/res/mipmap-xxxhdpi/ic_start.png
  59. 1 0
      app/src/main/res/values/strings.xml
  60. 1 0
      app/src/main/res/values/styles.xml
  61. 3 0
      baselibrary/src/main/java/com/webrain/baselibrary/AppConstant.java
  62. 1 0
      baselibrary/src/main/java/com/webrain/baselibrary/EventConstant.java
  63. 1 0
      baselibrary/src/main/java/com/webrain/baselibrary/IntentConstant.java
  64. 178 0
      baselibrary/src/main/java/com/webrain/baselibrary/utils/AppUtils.java
  65. 43 0
      baselibrary/src/main/java/com/webrain/baselibrary/utils/SharedPreferencesUtils.java

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

@@ -28,6 +28,8 @@
     <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
     <!--安装未知来源APK权限-->
     <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
+    <!-- 拨打电话 -->
+    <uses-permission android:name="android.permission.CALL_PHONE" />
     <application
         android:name=".MyApplication"
         android:allowBackup="true"
@@ -91,6 +93,11 @@
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>
+        <activity
+            android:name=".ui.activity.StartActivity"
+            android:screenOrientation="portrait">
+
+        </activity>
     </application>
 
 </manifest>

+ 32 - 0
app/src/main/java/com/webrain/dailypay/AppCacheManager.java

@@ -4,6 +4,7 @@ import android.text.TextUtils;
 
 import com.google.gson.Gson;
 import com.webrain.baselibrary.utils.SharedPreferencesUtils;
+import com.webrain.dailypay.bean.CompanyBean;
 import com.webrain.dailypay.bean.UserBean;
 
 /**
@@ -12,6 +13,7 @@ import com.webrain.dailypay.bean.UserBean;
 public class AppCacheManager {
     private static volatile AppCacheManager instance = null;
     private UserBean mUserBean;
+    private CompanyBean mCompanyBean;
 
     private AppCacheManager() {
     }
@@ -57,6 +59,35 @@ public class AppCacheManager {
     }
 
     /**
+     * 获取企业信息类
+     *
+     * @return
+     */
+    public CompanyBean getCompanyModel() {
+        if (mCompanyBean != null) {
+            return mCompanyBean;
+        } else {
+            String jsonData = SharedPreferencesUtils.getCompanyBeanJsonData(MyApplication.getContext());
+            if (!TextUtils.isEmpty(jsonData)) {
+                mCompanyBean = new Gson().fromJson(jsonData, CompanyBean.class);
+            }
+        }
+        return mCompanyBean;
+    }
+
+    /**
+     * 设置企业信息类
+     *
+     * @return
+     */
+    public void setCompanyBean(CompanyBean mCompanyBean) {
+        if (mCompanyBean != null) {
+            this.mCompanyBean = mCompanyBean;
+            SharedPreferencesUtils.setCompanyBeanJsonData(MyApplication.getContext(), new Gson().toJson(mCompanyBean));
+        }
+    }
+
+    /**
      * 判断用户是否登录
      *
      * @return
@@ -104,6 +135,7 @@ public class AppCacheManager {
      */
     public void clear() {
         mUserBean = null;
+        mCompanyBean = null;
         SharedPreferencesUtils.clear(MyApplication.getInstance().getApplicationContext());
     }
 

+ 103 - 0
app/src/main/java/com/webrain/dailypay/bean/CompanyBean.java

@@ -0,0 +1,103 @@
+package com.webrain.dailypay.bean;
+
+public class CompanyBean {
+    private String id;
+    private String userId;
+    private String licenseFront;
+    private String otherLicense;
+    private String enterpriseName;
+    private String expiryDate;
+    private int isHumanResource;
+    private int authenticationStatus;
+    private String createTime;
+    private String updateTime;
+    private String delFlag;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getLicenseFront() {
+        return licenseFront;
+    }
+
+    public void setLicenseFront(String licenseFront) {
+        this.licenseFront = licenseFront;
+    }
+
+    public String getOtherLicense() {
+        return otherLicense;
+    }
+
+    public void setOtherLicense(String otherLicense) {
+        this.otherLicense = otherLicense;
+    }
+
+    public String getEnterpriseName() {
+        return enterpriseName;
+    }
+
+    public void setEnterpriseName(String enterpriseName) {
+        this.enterpriseName = enterpriseName;
+    }
+
+    public String getExpiryDate() {
+        return expiryDate;
+    }
+
+    public void setExpiryDate(String expiryDate) {
+        this.expiryDate = expiryDate;
+    }
+
+    public int getIsHumanResource() {
+        return isHumanResource;
+    }
+
+    public void setIsHumanResource(int isHumanResource) {
+        this.isHumanResource = isHumanResource;
+    }
+
+    public int getAuthenticationStatus() {
+        return authenticationStatus;
+    }
+
+    public void setAuthenticationStatus(int authenticationStatus) {
+        this.authenticationStatus = authenticationStatus;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(String updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getDelFlag() {
+        return delFlag;
+    }
+
+    public void setDelFlag(String delFlag) {
+        this.delFlag = delFlag;
+    }
+}

+ 85 - 0
app/src/main/java/com/webrain/dailypay/bean/MsgBean.java

@@ -0,0 +1,85 @@
+package com.webrain.dailypay.bean;
+
+public class MsgBean {
+    private String id;
+    private String userId;
+    private String positionId;
+    private String title;
+    private String content;
+    private String messageTime;
+    private int type;//1:个人认证 2:企业认证 3.职位认证 4.新的简历提醒
+    private boolean isRead;
+    private String delFlag;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getPositionId() {
+        return positionId;
+    }
+
+    public void setPositionId(String positionId) {
+        this.positionId = positionId;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public String getMessageTime() {
+        return messageTime;
+    }
+
+    public void setMessageTime(String messageTime) {
+        this.messageTime = messageTime;
+    }
+
+    public int getType() {
+        return type;
+    }
+
+    public void setType(int type) {
+        this.type = type;
+    }
+
+    public boolean isRead() {
+        return isRead;
+    }
+
+    public void setRead(boolean read) {
+        isRead = read;
+    }
+
+    public String getDelFlag() {
+        return delFlag;
+    }
+
+    public void setDelFlag(String delFlag) {
+        this.delFlag = delFlag;
+    }
+}

+ 33 - 2
app/src/main/java/com/webrain/dailypay/bean/ResumeBean.java

@@ -2,6 +2,8 @@ package com.webrain.dailypay.bean;
 
 import android.os.Parcel;
 import android.os.Parcelable;
+import android.support.annotation.Nullable;
+import android.text.TextUtils;
 
 import java.util.List;
 
@@ -21,6 +23,8 @@ public class ResumeBean implements Parcelable {
     private String expectationAddress;
     private String id;
     private String expectationProvinceId;
+    private UserBean hpUser;
+    private String applyTime;
     private String createDate;
     private List<WorkExperienceBean> hpResumeWorkExperienceList;
 
@@ -41,6 +45,8 @@ public class ResumeBean implements Parcelable {
         expectationAddress = in.readString();
         id = in.readString();
         expectationProvinceId = in.readString();
+        hpUser = in.readParcelable(UserBean.class.getClassLoader());
+        applyTime = in.readString();
         createDate = in.readString();
     }
 
@@ -192,6 +198,31 @@ public class ResumeBean implements Parcelable {
         this.hpResumeWorkExperienceList = hpResumeWorkExperienceList;
     }
 
+    public UserBean getHpUser() {
+        return hpUser;
+    }
+
+    public void setHpUser(UserBean hpUser) {
+        this.hpUser = hpUser;
+    }
+
+    public String getApplyTime() {
+        return applyTime;
+    }
+
+    public void setApplyTime(String applyTime) {
+        this.applyTime = applyTime;
+    }
+
+    @Override
+    public boolean equals(@Nullable Object obj) {
+        if (obj instanceof ResumeBean) {
+            if (!TextUtils.isEmpty(id) && id.equals(((ResumeBean) obj).getId()))
+                return true;
+        }
+        return super.equals(obj);
+    }
+
     @Override
     public int describeContents() {
         return 0;
@@ -199,7 +230,6 @@ public class ResumeBean implements Parcelable {
 
     @Override
     public void writeToParcel(Parcel dest, int flags) {
-
         dest.writeString(updateDate);
         dest.writeString(gender);
         dest.writeString(headImg);
@@ -215,7 +245,8 @@ public class ResumeBean implements Parcelable {
         dest.writeString(expectationAddress);
         dest.writeString(id);
         dest.writeString(expectationProvinceId);
+        dest.writeParcelable(hpUser, flags);
+        dest.writeString(applyTime);
         dest.writeString(createDate);
     }
-
 }

+ 62 - 1
app/src/main/java/com/webrain/dailypay/bean/UserBean.java

@@ -1,6 +1,9 @@
 package com.webrain.dailypay.bean;
 
-public class UserBean {
+import android.os.Parcel;
+import android.os.Parcelable;
+
+public class UserBean implements Parcelable {
     private String id;
     private String phone;
     private String gender;
@@ -20,6 +23,38 @@ public class UserBean {
     private int delFlag;
 
 
+    protected UserBean(Parcel in) {
+        id = in.readString();
+        phone = in.readString();
+        gender = in.readString();
+        headImgUrl = in.readString();
+        clientId = in.readString();
+        userToken = in.readString();
+        realName = in.readString();
+        idCardNumber = in.readString();
+        idCardFront = in.readString();
+        idCardBack = in.readString();
+        position = in.readString();
+        userType = in.readString();
+        authenticationStatus = in.readInt();
+        createTime = in.readString();
+        updateTime = in.readString();
+        loginTime = in.readString();
+        delFlag = in.readInt();
+    }
+
+    public static final Creator<UserBean> CREATOR = new Creator<UserBean>() {
+        @Override
+        public UserBean createFromParcel(Parcel in) {
+            return new UserBean(in);
+        }
+
+        @Override
+        public UserBean[] newArray(int size) {
+            return new UserBean[size];
+        }
+    };
+
     public String getId() {
         return id;
     }
@@ -155,4 +190,30 @@ public class UserBean {
     public void setDelFlag(int delFlag) {
         this.delFlag = delFlag;
     }
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        dest.writeString(id);
+        dest.writeString(phone);
+        dest.writeString(gender);
+        dest.writeString(headImgUrl);
+        dest.writeString(clientId);
+        dest.writeString(userToken);
+        dest.writeString(realName);
+        dest.writeString(idCardNumber);
+        dest.writeString(idCardFront);
+        dest.writeString(idCardBack);
+        dest.writeString(position);
+        dest.writeString(userType);
+        dest.writeInt(authenticationStatus);
+        dest.writeString(createTime);
+        dest.writeString(updateTime);
+        dest.writeString(loginTime);
+        dest.writeInt(delFlag);
+    }
 }

+ 15 - 0
app/src/main/java/com/webrain/dailypay/bean/api/ApiAuthenticationCompanyBean.java

@@ -0,0 +1,15 @@
+package com.webrain.dailypay.bean.api;
+
+import com.webrain.dailypay.bean.CompanyBean;
+
+public class ApiAuthenticationCompanyBean {
+    CompanyBean companyAuthentication;
+
+    public CompanyBean getCompanyAuthentication() {
+        return companyAuthentication;
+    }
+
+    public void setCompanyAuthentication(CompanyBean companyAuthentication) {
+        this.companyAuthentication = companyAuthentication;
+    }
+}

+ 10 - 0
app/src/main/java/com/webrain/dailypay/bean/api/ApiLoginBean.java

@@ -1,10 +1,20 @@
 package com.webrain.dailypay.bean.api;
 
 
+import com.webrain.dailypay.bean.CompanyBean;
 import com.webrain.dailypay.bean.UserBean;
 
 public class ApiLoginBean {
     UserBean userInfo;
+    CompanyBean companyAuthentication;
+
+    public CompanyBean getCompanyAuthentication() {
+        return companyAuthentication;
+    }
+
+    public void setCompanyAuthentication(CompanyBean companyAuthentication) {
+        this.companyAuthentication = companyAuthentication;
+    }
 
     public UserBean getUserInfo() {
         return userInfo;

+ 18 - 0
app/src/main/java/com/webrain/dailypay/bean/api/ApiMsgListBean.java

@@ -0,0 +1,18 @@
+package com.webrain.dailypay.bean.api;
+
+import com.webrain.dailypay.bean.MsgBean;
+import com.webrain.dailypay.bean.PositionListBean;
+
+import java.util.List;
+
+public class ApiMsgListBean extends ApiBaseListBean {
+    private List<MsgBean> Positions;
+
+    public List<MsgBean> getPositions() {
+        return Positions;
+    }
+
+    public void setPositions(List<MsgBean> positions) {
+        Positions = positions;
+    }
+}

+ 11 - 2
app/src/main/java/com/webrain/dailypay/http/Api.java

@@ -1,6 +1,8 @@
 package com.webrain.dailypay.http;
 
+import com.webrain.dailypay.bean.api.ApiAuthenticationCompanyBean;
 import com.webrain.dailypay.bean.api.ApiLoginBean;
+import com.webrain.dailypay.bean.api.ApiMsgListBean;
 import com.webrain.dailypay.bean.api.ApiNormalBean;
 import com.webrain.dailypay.bean.api.ApiPositionListBean;
 import com.webrain.dailypay.bean.api.ApiPositionPauseBean;
@@ -43,7 +45,12 @@ public class Api {
     public interface AnterpriseInterface {
         //企业认证
         @POST("api/anterprise/anterpriseAuth")
-        Observable<ApiResultBean<ApiNormalBean>> uploadAnterpriseAuth(@Body MultipartBody img);
+        Observable<ApiResultBean<ApiAuthenticationCompanyBean>> uploadAnterpriseAuth(@Body MultipartBody img);
+
+        //获取消息
+        @GET("api/anterprise/getMessage")
+        Observable<ApiResultBean<ApiMsgListBean>> uploadAnterpriseGetMessage(@QueryMap Map<String, Object> args);
+
     }
 
     public interface PositionInterface {
@@ -75,7 +82,9 @@ public class Api {
         @GET("api/position/remuse")
         Observable<ApiResultBean<ApiPositionResumeListBean>> getPositionResume(@QueryMap Map<String, Object> args);
 
-
+        //批量处理简历
+        @GET("api/position/changeApplysStatus")
+        Observable<ApiResultBean<ApiNormalBean>> httpChangeApplyStatus(@QueryMap Map<String, Object> args);
     }
 
     public interface ResumeInterface {

+ 18 - 2
app/src/main/java/com/webrain/dailypay/http/subscribe/AnterpriseSubscribe.java

@@ -2,12 +2,17 @@ package com.webrain.dailypay.http.subscribe;
 
 import android.content.Context;
 
+import com.webrain.dailypay.bean.api.ApiAuthenticationCompanyBean;
+import com.webrain.dailypay.bean.api.ApiMsgListBean;
 import com.webrain.dailypay.bean.api.ApiNormalBean;
 import com.webrain.dailypay.bean.api.ApiResultBean;
+import com.webrain.dailypay.bean.api.ApiResumeListBean;
 import com.webrain.dailypay.http.Api;
 import com.webrain.dailypay.http.ApiObserver;
 import com.webrain.dailypay.http.ServiceGenerator;
 
+import java.util.Map;
+
 import io.reactivex.Observable;
 import okhttp3.MultipartBody;
 
@@ -22,9 +27,20 @@ public class AnterpriseSubscribe extends BaseSubscribe {
      *
      * @param mObservable
      */
-    public void requestAnterpriseAuth(MultipartBody params, ApiObserver<ApiNormalBean> mObservable) {
+    public void requestAnterpriseAuth(MultipartBody params, ApiObserver<ApiAuthenticationCompanyBean> mObservable) {
+        Api.AnterpriseInterface apiService = ServiceGenerator.createService(Api.AnterpriseInterface.class);
+        Observable<ApiResultBean<ApiAuthenticationCompanyBean>> observable = apiService.uploadAnterpriseAuth(params);
+        subscribe(observable, mObservable);
+    }
+
+    /**
+     * 获取消息
+     *
+     * @param mObservable
+     */
+    public void requestAnterpriseGetMessage(Map<String, Object> params, ApiObserver<ApiMsgListBean> mObservable) {
         Api.AnterpriseInterface apiService = ServiceGenerator.createService(Api.AnterpriseInterface.class);
-        Observable<ApiResultBean<ApiNormalBean>> observable = apiService.uploadAnterpriseAuth(params);
+        Observable<ApiResultBean<ApiMsgListBean>> observable = apiService.uploadAnterpriseGetMessage(params);
         subscribe(observable, mObservable);
     }
 

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

@@ -103,5 +103,16 @@ public class PositionSubscribe extends BaseSubscribe {
         subscribe(observable, mObservable);
     }
 
+    /**
+     * 批量处理简历
+     *
+     * @param mObservable
+     */
+    public void requestChangeApplyStatus(Map<String, Object> params, ApiObserver<ApiNormalBean> mObservable) {
+        Api.PositionInterface apiService = ServiceGenerator.createService(Api.PositionInterface.class);
+        Observable<ApiResultBean<ApiNormalBean>> observable = apiService.httpChangeApplyStatus(params);
+        subscribe(observable, mObservable);
+    }
+
 
 }

+ 114 - 0
app/src/main/java/com/webrain/dailypay/ui/activity/GuideActivity.java

@@ -0,0 +1,114 @@
+package com.webrain.dailypay.ui.activity;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v4.view.ViewPager;
+import android.view.View;
+import android.widget.TextView;
+
+
+import com.webrain.dailypay.AppCacheManager;
+import com.webrain.dailypay.R;
+import com.webrain.dailypay.ui.base.BaseActivity;
+import com.webrain.dailypay.ui.base.IPresenter;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+import butterknife.OnPageChange;
+
+/**
+ * 引导页-MVC
+ */
+public class GuideActivity extends BaseActivity {
+    @BindView(R.id.vp_guide)
+    ViewPager vpGuide;
+    @BindView(R.id.tv_jump)
+    TextView tvJump;
+    @BindView(R.id.tv_next)
+    TextView tvNext;
+    @BindView(R.id.v_1)
+    View v1;
+    @BindView(R.id.v_2)
+    View v2;
+    @BindView(R.id.v_3)
+    View v3;
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.activity_guide;
+    }
+
+    @Override
+    public IPresenter bindPresenter() {
+        return null;
+    }
+
+    @Override
+    public boolean isShowActionBar() {
+        return false;
+    }
+
+    @Override
+    public boolean isShowStatusTitle() {
+        return false;
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        initView();
+    }
+
+    private void initView() {
+//        vpGuide.setAdapter(new GuidePageAdapter(mContext));
+        initPageStrip();
+    }
+
+    @OnClick({R.id.tv_jump, R.id.tv_next})
+    public void onClick(View view) {
+        switch (view.getId()) {
+            case R.id.tv_jump:
+                goJump();
+                break;
+            case R.id.tv_next:
+                if (vpGuide.getCurrentItem() < 2) {
+                    vpGuide.setCurrentItem(vpGuide.getCurrentItem() + 1);
+                } else {
+                    goJump();
+                }
+                break;
+        }
+    }
+
+
+    @OnPageChange(R.id.vp_guide)
+    public void onPageSelected(int i) {
+        initPageStrip();
+    }
+
+    /**
+     * 指示条状态
+     */
+    private void initPageStrip() {
+        int position = vpGuide.getCurrentItem();
+        v1.setSelected(false);
+        v2.setSelected(false);
+        v3.setSelected(false);
+        if (position == 0)
+            v1.setSelected(true);
+        else if (position == 1)
+            v2.setSelected(true);
+        else
+            v3.setSelected(true);
+
+    }
+
+    private void goJump() {
+        if (AppCacheManager.getInstance().isLogin()) {
+            startActivity(new Intent(mContext, MainActivity.class));
+        } else {
+            startActivity(new Intent(mContext, LoginActivity.class));
+        }
+        finish();
+    }
+}

+ 4 - 4
app/src/main/java/com/webrain/dailypay/ui/activity/LoginActivity.java

@@ -79,10 +79,10 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        if (AppCacheManager.getInstance().isLogin()) {
-            finish();
-            startActivity(new Intent(this, MainActivity.class));
-        }
+//        if (AppCacheManager.getInstance().isLogin()) {
+//            finish();
+//            startActivity(new Intent(this, MainActivity.class));
+//        }
     }
 
     @OnClick({R.id.btn_login, R.id.tv_code})

+ 98 - 0
app/src/main/java/com/webrain/dailypay/ui/activity/StartActivity.java

@@ -0,0 +1,98 @@
+package com.webrain.dailypay.ui.activity;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+
+import com.webrain.baselibrary.utils.SharedPreferencesUtils;
+import com.webrain.dailypay.AppCacheManager;
+import com.webrain.dailypay.R;
+import com.webrain.dailypay.ui.base.BaseActivity;
+import com.webrain.dailypay.ui.base.IPresenter;
+
+import java.util.concurrent.TimeUnit;
+
+import io.reactivex.Observable;
+import io.reactivex.Observer;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.annotations.NonNull;
+import io.reactivex.disposables.Disposable;
+
+/**
+ * 开机页-MVC
+ */
+public class StartActivity extends BaseActivity {
+
+    private Disposable mDisposable;
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.activity_start;
+    }
+
+    @Override
+    public IPresenter bindPresenter() {
+        return null;
+    }
+
+    @Override
+    public boolean isShowActionBar() {
+        return false;
+    }
+
+    @Override
+    public boolean isShowStatusTitle() {
+        return false;
+    }
+
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        Observable.timer(3, TimeUnit.SECONDS)
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new Observer<Long>() {
+                    @Override
+                    public void onSubscribe(@NonNull Disposable disposable) {
+                        mDisposable = disposable;
+                    }
+
+                    @Override
+                    public void onNext(@NonNull Long number) {
+                    }
+
+                    @Override
+                    public void onError(@NonNull Throwable e) {
+                    }
+
+                    @Override
+                    public void onComplete() {
+                        goJump();
+                    }
+                });
+    }
+
+    private void goJump() {
+        if (mDisposable != null && !mDisposable.isDisposed()) {
+            mDisposable.dispose();
+            if (AppCacheManager.getInstance().isLogin()) {
+                startActivity(new Intent(mContext, MainActivity.class));
+            } else {
+                if (SharedPreferencesUtils.isHistoryFirstLogin(mContext)) {
+//                    startActivity(new Intent(mContext, GuideActivity.class));
+                    startActivity(new Intent(mContext, LoginActivity.class));
+                } else {
+                    startActivity(new Intent(mContext, LoginActivity.class));
+                }
+            }
+            finish();
+        }
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        if (mDisposable != null && !mDisposable.isDisposed()) {//关闭定时器
+            mDisposable.dispose();
+        }
+    }
+}

+ 35 - 13
app/src/main/java/com/webrain/dailypay/ui/activity/identity/IdentityResultActivity.java

@@ -1,13 +1,12 @@
 package com.webrain.dailypay.ui.activity.identity;
 
-import android.content.Intent;
 import android.os.Bundle;
 import android.support.annotation.Nullable;
 import android.view.View;
 import android.widget.TextView;
 
+import com.webrain.baselibrary.AppConstant;
 import com.webrain.dailypay.R;
-import com.webrain.dailypay.ui.activity.MainActivity;
 import com.webrain.dailypay.ui.base.BaseActivity;
 import com.webrain.dailypay.ui.mvp.contacts.IdentityResultContacts;
 import com.webrain.dailypay.ui.mvp.presenter.IdentityResultPresenter;
@@ -40,17 +39,8 @@ public class IdentityResultActivity extends BaseActivity<IdentityResultPresenter
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setBackColor(R.color.white);
-        tvTips.setText("感谢您的耐心填写,认证信息已经成功提交,\n" +
-                "后台人员会在2至3个工作日内审核完毕。\n" +
-                "\n" +
-                "您的公民资料仅用于实名认证,不会用于其他渠道。");
-        tvTips.setText("您的实名认证未通过,可能存在以下原因:\n" +
-                "\n" +
-                "·身份信息与证件照片上的信息不符\n" +
-                "·证件照片模糊不清\n" +
-                "·证件照片并未完整将证件拍摄出来\n" +
-                "·身份信息已存在\n" +
-                "·其他原因");
+
+
     }
 
     @Override
@@ -65,4 +55,36 @@ public class IdentityResultActivity extends BaseActivity<IdentityResultPresenter
                 break;
         }
     }
+
+    /**
+     * 企业或者个人认证状态
+     *
+     * @param statue
+     * @param type
+     */
+    @Override
+    public void onStatue(int statue, int type) {
+        if (type == AppConstant.APPROVE_PERSONAL) {
+            if (statue == AppConstant.APPROVE_WAIT) {
+                tvTips.setText("感谢您的耐心填写,认证信息已经成功提交,\n" +
+                        "后台人员会在2至3个工作日内审核完毕。\n" +
+                        "\n" +
+                        "您的公民资料仅用于实名认证,不会用于其他渠道。");
+                btnReplay.setVisibility(View.VISIBLE);
+                tvResult.setText(R.string.identity_result_going);
+            } else if (statue == AppConstant.APPROVE_FAIL) {
+                tvTips.setText("您的实名认证未通过,可能存在以下原因:\n" +
+                        "\n" +
+                        "·身份信息与证件照片上的信息不符\n" +
+                        "·证件照片模糊不清\n" +
+                        "·证件照片并未完整将证件拍摄出来\n" +
+                        "·身份信息已存在\n" +
+                        "·其他原因");
+                btnReplay.setVisibility(View.VISIBLE);
+                tvResult.setText(R.string.identity_result_failed);
+            }
+        } else if (type == AppConstant.APPROVE_COMPANY) {
+
+        }
+    }
 }

+ 82 - 7
app/src/main/java/com/webrain/dailypay/ui/activity/position/PositionApplyManagerActivity.java

@@ -14,7 +14,6 @@ import com.scwang.smartrefresh.layout.api.RefreshLayout;
 import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
 import com.webrain.baselibrary.widget.refresh.ProgressRefreshLayout;
 import com.webrain.dailypay.R;
-import com.webrain.dailypay.bean.PositionListBean;
 import com.webrain.dailypay.bean.ResumeBean;
 import com.webrain.dailypay.ui.adapter.listview.PositionApplyAdapter;
 import com.webrain.dailypay.ui.base.BaseActivity;
@@ -25,6 +24,7 @@ import com.webrain.dailypay.ui.viewholder.FooterViewHolder;
 import java.util.List;
 
 import butterknife.BindView;
+import butterknife.OnClick;
 
 /**
  * 职位报名管理
@@ -34,8 +34,8 @@ public class PositionApplyManagerActivity extends BaseActivity<PositionApplyMana
     TextView tvAllSelect;
     @BindView(R.id.tv_all_refuse)
     TextView tvAllRefuse;
-    @BindView(R.id.tv_invited_interview)
-    TextView tvInvitedInterview;
+    @BindView(R.id.tv_employed)
+    TextView tvEmployed;
     @BindView(R.id.cv_release)
     CardView cvRelease;
     @BindView(R.id.lv_resume)
@@ -67,25 +67,35 @@ public class PositionApplyManagerActivity extends BaseActivity<PositionApplyMana
         super.onCreate(savedInstanceState);
         setLoadingVisible(true);
         prlRefresh.setOnRefreshListener(onRefreshListener);
+        rgState.setOnCheckedChangeListener(onCheckedChangeListener);
         mvpPresenter.init();
     }
 
     @Override
-    public void onPositionList(List<ResumeBean> mData, boolean isLastPage) {
+    public void onPositionList(List<ResumeBean> mData, boolean isLastPage, boolean isChangeType) {
         setLoadingVisible(false);
         setErrorVisible(false);
         if (mAdapter == null) {
             mFooterHolder = new FooterViewHolder(mContext);
             mAdapter = new PositionApplyAdapter(mContext, mData);
+            mAdapter.setOnSelectChangeListener(onSelectChangeListener);
             lvResume.setAdapter(mAdapter);
             lvResume.setOnItemClickListener(mAdapter);
-//            lvResume.addHeaderView(View.inflate(mContext, R.layout.item_listview_position_header, null));
+            lvResume.addHeaderView(View.inflate(mContext, R.layout.item_listview_position_apply_header, null));
             lvResume.addFooterView(mFooterHolder.getView());
             lvResume.setOnScrollListener(onScrollListener);
         } else {
             mAdapter.updateData(mData);
             mAdapter.notifyDataSetChanged();
         }
+        if (isChangeType) {//如果是切换则清空选中
+            if (tbWaitInterview.isChecked())
+                tvEmployed.setVisibility(View.VISIBLE);
+            else
+                tvEmployed.setVisibility(View.INVISIBLE);
+            mAdapter.clearSelect();
+            mAdapter.notifyDataSetChanged();
+        }
         if (isLastPage) {
             mFooterHolder.noMoreData();
         } else {
@@ -99,13 +109,78 @@ public class PositionApplyManagerActivity extends BaseActivity<PositionApplyMana
 
     }
 
+    @OnClick({R.id.tv_all_select, R.id.tv_all_refuse, R.id.tv_employed})
+    public void onClick(View view) {
+        switch (view.getId()) {
+            case R.id.tv_all_select:
+                if (mAdapter != null) {
+                    if (tvAllSelect.isSelected()) {
+                        mAdapter.clearSelect();
+                        mAdapter.notifyDataSetChanged();
+                    } else {
+                        mAdapter.selectAll();
+                        mAdapter.notifyDataSetChanged();
+                    }
+                }
+                break;
+            case R.id.tv_all_refuse:
+                if (mAdapter != null)
+                    mvpPresenter.changeApplysStatus(mAdapter.getSelectResume(), tbNewApply.isChecked() ? "1" : "", tbWaitInterview.isChecked() ? "0" : "");
+                break;
+            case R.id.tv_employed:
+                if (mAdapter != null)
+                    mvpPresenter.changeApplysStatus(mAdapter.getSelectResume(), "", "1");
+                break;
+        }
+    }
+
+    /**
+     * 选择数据回调
+     */
+    PositionApplyAdapter.OnSelectChangeListener onSelectChangeListener = new PositionApplyAdapter.OnSelectChangeListener() {
+        @Override
+        public void onSelectChange(int selectCount, int totalCount) {
+            if (selectCount > 0) {
+                tvAllRefuse.setEnabled(true);
+                if (tbWaitInterview.isChecked()) {
+                    tvEmployed.setEnabled(true);
+                }
+                if (selectCount == totalCount)
+                    tvAllSelect.setSelected(true);
+                else
+                    tvAllSelect.setSelected(false);
+            } else {
+                tvAllRefuse.setEnabled(false);
+                if (tbWaitInterview.isChecked()) {
+                    tvEmployed.setEnabled(false);
+                }
+                tvAllSelect.setSelected(false);
+            }
+        }
+    };
+
+
+    /**
+     * 状态改变
+     */
+    RadioGroup.OnCheckedChangeListener onCheckedChangeListener = new RadioGroup.OnCheckedChangeListener() {
+        @Override
+        public void onCheckedChanged(RadioGroup group, int checkedId) {
+            if (checkedId == R.id.tb_new_apply)
+                mvpPresenter.setType(1);
+            else
+                mvpPresenter.setType(2);
+            mvpPresenter.getHttpPositionList(true, true, false, true);
+
+        }
+    };
     /**
      * 监听下拉刷新触发
      */
     OnRefreshListener onRefreshListener = new OnRefreshListener() {
         @Override
         public void onRefresh(@NonNull RefreshLayout refreshLayout) {
-            mvpPresenter.getHttpPositionList(true, false, false);
+            mvpPresenter.getHttpPositionList(true, false, false, false);
         }
     };
     /**
@@ -118,7 +193,7 @@ public class PositionApplyManagerActivity extends BaseActivity<PositionApplyMana
         public void onScrollStateChanged(AbsListView view, int scrollState) {
             if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE
                     && mLastItemVisible) {
-                mvpPresenter.getHttpPositionList(false, false, false);
+                mvpPresenter.getHttpPositionList(false, false, false, false);
             }
         }
 

+ 29 - 0
app/src/main/java/com/webrain/dailypay/ui/activity/resume/InvitedInterviewActivity.java

@@ -1,12 +1,15 @@
 package com.webrain.dailypay.ui.activity.resume;
 
 import android.os.Bundle;
+import android.text.TextUtils;
 import android.view.View;
 import android.widget.EditText;
 import android.widget.ScrollView;
 import android.widget.TextView;
 
 import com.webrain.dailypay.R;
+import com.webrain.dailypay.bean.CompanyBean;
+import com.webrain.dailypay.bean.ResumeBean;
 import com.webrain.dailypay.ui.base.BaseActivity;
 import com.webrain.dailypay.ui.mvp.contacts.InvitedInterviewContacts;
 import com.webrain.dailypay.ui.mvp.presenter.InvitedInterviewPresenter;
@@ -151,4 +154,30 @@ public class InvitedInterviewActivity extends BaseActivity<InvitedInterviewPrese
             tvTime.setText(timeFrame);
         }
     };
+
+    /**
+     * 获得简历
+     *
+     * @param bean
+     */
+    @Override
+    public void onResume(ResumeBean bean) {
+        if (bean != null)
+            tvName.setText(bean.getRealName() + " " + ("1".equals(bean.getGender()) ? "先生:" : "2".equals(bean.getGender()) ? "女士:" : ":"));
+        else
+            tvName.setText("");
+    }
+
+    /**
+     * 获得公司
+     *
+     * @param bean
+     */
+    @Override
+    public void onCompany(CompanyBean bean) {
+        if (bean != null && !TextUtils.isEmpty(bean.getEnterpriseName()))
+            tvCompanyName.setText(bean.getEnterpriseName());
+        else
+            tvCompanyName.setText("");
+    }
 }

+ 5 - 2
app/src/main/java/com/webrain/dailypay/ui/activity/resume/ResumeDetailActivity.java

@@ -60,11 +60,14 @@ public class ResumeDetailActivity extends BaseActivity<ResumeDetailPresenter> im
         mvpPresenter.getUserResume();
     }
 
-    @OnClick(R.id.btn_invited_interview)
+    @OnClick({R.id.btn_invited_interview, R.id.btn_phone_talk})
     public void onClick(View view) {
         switch (view.getId()) {
             case R.id.btn_invited_interview:
-                startActivity(new Intent(mContext, InvitedInterviewActivity.class));
+                mvpPresenter.invitedInterview();
+                break;
+            case R.id.btn_phone_talk:
+                mvpPresenter.call();
                 break;
         }
     }

+ 50 - 7
app/src/main/java/com/webrain/dailypay/ui/adapter/listview/MsgAdapter.java

@@ -1,18 +1,25 @@
 package com.webrain.dailypay.ui.adapter.listview;
 
 import android.content.Context;
+import android.text.TextUtils;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.AdapterView;
 import android.widget.BaseAdapter;
+import android.widget.ImageView;
+import android.widget.TextView;
 
 import com.webrain.dailypay.R;
+import com.webrain.dailypay.bean.MsgBean;
 import com.webrain.dailypay.ui.base.BaseViewHolder;
 
 import java.util.List;
 
-public class MsgAdapter extends BaseAdapter {
+import butterknife.BindView;
+
+public class MsgAdapter extends BaseAdapter implements AdapterView.OnItemClickListener {
     private Context mContext;
-    private List<String> mData;
+    private List<MsgBean> mData;
 
     /**
      * 构造函数,初始化岗位数据,选中数据
@@ -20,7 +27,7 @@ public class MsgAdapter extends BaseAdapter {
      * @param mContext
      * @param mData
      */
-    public MsgAdapter(Context mContext, List<String> mData) {
+    public MsgAdapter(Context mContext, List<MsgBean> mData) {
         this.mContext = mContext;
         this.mData = mData;
     }
@@ -30,18 +37,17 @@ public class MsgAdapter extends BaseAdapter {
      *
      * @param mData
      */
-    public void updateData(List<String> mData) {
+    public void updateData(List<MsgBean> mData) {
         this.mData = mData;
     }
 
     @Override
     public int getCount() {
-        return 10;
-        // mData == null ? 0 : mData.size();
+        return mData == null ? 0 : mData.size();
     }
 
     @Override
-    public String getItem(int position) {
+    public MsgBean getItem(int position) {
         return mData.get(position);
     }
 
@@ -60,11 +66,26 @@ public class MsgAdapter extends BaseAdapter {
         } else {
             holder = (MsgViewHolder) convertView.getTag();
         }
+        holder.initData(getItem(position));
         return convertView;
     }
 
+    @Override
+    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+
+    }
+
     class MsgViewHolder extends BaseViewHolder {
 
+        @BindView(R.id.tv_title)
+        TextView tvTitle;
+        @BindView(R.id.tv_date)
+        TextView tvDate;
+        @BindView(R.id.tv_msg)
+        TextView tvMsg;
+        @BindView(R.id.iv_icon)
+        ImageView ivIcon;
+
         public MsgViewHolder(Context mContext) {
             super(mContext);
         }
@@ -73,5 +94,27 @@ public class MsgAdapter extends BaseAdapter {
         public int bindViewLayoutId() {
             return R.layout.item_listview_msg;
         }
+
+        public void initData(MsgBean bean) {
+            if (bean != null) {
+                if (!TextUtils.isEmpty(bean.getTitle()))
+                    tvTitle.setText(bean.getTitle());
+                else
+                    tvTitle.setText("");
+                if (!TextUtils.isEmpty(bean.getContent()))
+                    tvMsg.setText(bean.getContent());
+                else
+                    tvMsg.setText("");
+                if (!TextUtils.isEmpty(bean.getMessageTime()))
+                    tvDate.setText(bean.getMessageTime().substring(0, bean.getMessageTime().length() - 3));
+                else
+                    tvDate.setText("");
+                if (bean.getType() != 4) {
+                    ivIcon.setImageResource(R.mipmap.ic_msg_box_tips);
+                } else {
+                    ivIcon.setImageResource(R.mipmap.ic_msg_box_resume);
+                }
+            }
+        }
     }
 }

+ 58 - 1
app/src/main/java/com/webrain/dailypay/ui/adapter/listview/PositionApplyAdapter.java

@@ -10,11 +10,13 @@ import android.widget.BaseAdapter;
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import com.webrain.baselibrary.IntentConstant;
 import com.webrain.baselibrary.imageloader.ImageLoaderUtil;
 import com.webrain.dailypay.R;
 import com.webrain.dailypay.bean.PositionListBean;
 import com.webrain.dailypay.bean.ResumeBean;
 import com.webrain.dailypay.ui.activity.position.PositionApplyManagerActivity;
+import com.webrain.dailypay.ui.activity.resume.ResumeDetailActivity;
 import com.webrain.dailypay.ui.base.BaseViewHolder;
 import com.webrain.dailypay.utils.BaseInformationUtils;
 
@@ -22,11 +24,13 @@ import java.util.ArrayList;
 import java.util.List;
 
 import butterknife.BindView;
+import butterknife.OnClick;
 
 public class PositionApplyAdapter extends BaseAdapter implements AdapterView.OnItemClickListener {
     private Context mContext;
     private List<ResumeBean> mData;
     private List<ResumeBean> mSelect;
+    private OnSelectChangeListener onSelectChangeListener;
 
     /**
      * 构造函数,初始化岗位数据,选中数据
@@ -40,11 +44,44 @@ public class PositionApplyAdapter extends BaseAdapter implements AdapterView.OnI
         this.mSelect = new ArrayList<>();
     }
 
+    /**
+     * 获取选中对象
+     *
+     * @return
+     */
     public List<ResumeBean> getSelectResume() {
         return mSelect;
     }
 
     /**
+     * 全选
+     */
+    public void selectAll() {
+        mSelect.clear();
+        mSelect.addAll(mData);
+        if (onSelectChangeListener != null)
+            onSelectChangeListener.onSelectChange(mSelect.size(), getCount());
+    }
+
+    /**
+     * 全部不选
+     */
+    public void clearSelect() {
+        mSelect.clear();
+        if (onSelectChangeListener != null)
+            onSelectChangeListener.onSelectChange(mSelect.size(), getCount());
+    }
+
+    /**
+     * 设置选择回调
+     *
+     * @param onSelectChangeListener
+     */
+    public void setOnSelectChangeListener(OnSelectChangeListener onSelectChangeListener) {
+        this.onSelectChangeListener = onSelectChangeListener;
+    }
+
+    /**
      * 更新数据
      *
      * @param mData
@@ -84,12 +121,16 @@ public class PositionApplyAdapter extends BaseAdapter implements AdapterView.OnI
 
     @Override
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-        ResumeBean bean = getItem(position);
+        if (position == 0 || position > getCount())
+            return;
+        ResumeBean bean = getItem(position - 1);
         if (mSelect.contains(bean))
             mSelect.remove(bean);
         else
             mSelect.add(bean);
         notifyDataSetChanged();
+        if (onSelectChangeListener != null)
+            onSelectChangeListener.onSelectChange(mSelect.size(), getCount());
     }
 
     class ResumeViewHolder extends BaseViewHolder {
@@ -107,6 +148,8 @@ public class PositionApplyAdapter extends BaseAdapter implements AdapterView.OnI
         @BindView(R.id.tv_look_resume)
         TextView tvLookResume;
 
+        ResumeBean resumeBean;
+
         public ResumeViewHolder(Context mContext) {
             super(mContext);
             vState.setSelected(true);
@@ -119,6 +162,7 @@ public class PositionApplyAdapter extends BaseAdapter implements AdapterView.OnI
 
         public void initData(ResumeBean bean) {
             if (bean != null) {
+                resumeBean = bean;
                 ImageLoaderUtil.getInstance().loadCircleImage(bean.getHeadImg(), R.mipmap.ic_default_header, ivHeader);
                 //名称
                 if (!TextUtils.isEmpty(bean.getRealName())) {
@@ -145,5 +189,18 @@ public class PositionApplyAdapter extends BaseAdapter implements AdapterView.OnI
                     vState.setSelected(false);
             }
         }
+
+
+        @OnClick(R.id.tv_look_resume)
+        public void onClick(View view) {
+            Intent intent = new Intent(mContext, ResumeDetailActivity.class);
+            intent.putExtra(IntentConstant.BEAN, resumeBean);
+            mContext.startActivity(intent);
+        }
+    }
+
+
+    public interface OnSelectChangeListener {
+        void onSelectChange(int selectCount, int totalCount);
     }
 }

+ 1 - 3
app/src/main/java/com/webrain/dailypay/ui/adapter/listview/ResumeAdapter.java

@@ -77,7 +77,7 @@ public class ResumeAdapter extends BaseAdapter implements AdapterView.OnItemClic
 
     @Override
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-        if (position == 0)
+        if (position == 0 && position > getCount())
             return;
         Intent intent = new Intent(mContext, ResumeDetailActivity.class);
         intent.putExtra(IntentConstant.BEAN, getItem(position - 1));
@@ -132,8 +132,6 @@ public class ResumeAdapter extends BaseAdapter implements AdapterView.OnItemClic
                     desc += (",求职意向:" + BaseInformationUtils.getExpectationPosition(mContext, bean.getExpectationPosition().split(",")[0]));
                 }
                 tvDesc.setText(desc);
-
-
             }
         }
     }

+ 27 - 1
app/src/main/java/com/webrain/dailypay/ui/fragment/MeFragment.java

@@ -7,19 +7,45 @@ import android.support.annotation.Nullable;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
 
 import com.webrain.dailypay.R;
 import com.webrain.dailypay.ui.activity.identity.IdentityCompanyActivity;
 import com.webrain.dailypay.ui.base.BaseFragment;
-import com.webrain.dailypay.ui.mvp.contacts.IdentityCompanyContacts;
 import com.webrain.dailypay.ui.mvp.contacts.MeFragmentContacts;
 import com.webrain.dailypay.ui.mvp.presenter.MeFragmentPresenter;
 
+import butterknife.BindView;
+import butterknife.ButterKnife;
 import butterknife.OnClick;
+import butterknife.Unbinder;
 
 
 public class MeFragment extends BaseFragment<MeFragmentPresenter> implements MeFragmentContacts.IMeFragmentView {
 
+    @BindView(R.id.iv_header)
+    ImageView ivHeader;
+    @BindView(R.id.v_right)
+    View vRight;
+    @BindView(R.id.tv_name)
+    TextView tvName;
+    @BindView(R.id.tv_state)
+    TextView tvState;
+    @BindView(R.id.tv_desc)
+    TextView tvDesc;
+    @BindView(R.id.tv_company_state)
+    TextView tvCompanyState;
+    @BindView(R.id.ll_company)
+    LinearLayout llCompany;
+    @BindView(R.id.ll_feed_back)
+    LinearLayout llFeedBack;
+    @BindView(R.id.ll_collect)
+    LinearLayout llCollect;
+    @BindView(R.id.ll_money)
+    LinearLayout llMoney;
+
     @Override
     protected int getLayoutId() {
         return R.layout.fragment_me;

+ 68 - 24
app/src/main/java/com/webrain/dailypay/ui/fragment/MsgFragment.java

@@ -1,33 +1,39 @@
 package com.webrain.dailypay.ui.fragment;
 
-import android.content.Context;
-import android.content.Intent;
 import android.os.Bundle;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.AbsListView;
 import android.widget.ListView;
-import android.widget.TextView;
 
+import com.scwang.smartrefresh.layout.api.RefreshLayout;
+import com.scwang.smartrefresh.layout.listener.OnRefreshListener;
+import com.webrain.baselibrary.widget.refresh.ProgressRefreshLayout;
 import com.webrain.dailypay.R;
-import com.webrain.dailypay.ui.activity.msg.MsgBoxActivity;
+import com.webrain.dailypay.bean.MsgBean;
+import com.webrain.dailypay.bean.ResumeBean;
 import com.webrain.dailypay.ui.adapter.listview.MsgAdapter;
 import com.webrain.dailypay.ui.base.BaseFragment;
-import com.webrain.dailypay.ui.base.BaseViewHolder;
 import com.webrain.dailypay.ui.mvp.contacts.MsgFragmentContacts;
 import com.webrain.dailypay.ui.mvp.presenter.MsgFragmentPresenter;
+import com.webrain.dailypay.ui.viewholder.FooterViewHolder;
+
+import java.util.List;
 
 import butterknife.BindView;
-import butterknife.OnClick;
 
 public class MsgFragment extends BaseFragment<MsgFragmentPresenter> implements MsgFragmentContacts.IMsgFragmentView {
     @BindView(R.id.lv_msg)
     ListView lvMsg;
+    @BindView(R.id.prl_refresh)
+    ProgressRefreshLayout prlRefresh;
+
+    private MsgAdapter mAdapter;
+    private FooterViewHolder mFooterHolder;
 
-    MsgAdapter mAdapter;
-    MsgHeaderHolder mHeaderHolder;
 
     @Override
     protected int getLayoutId() {
@@ -39,10 +45,11 @@ public class MsgFragment extends BaseFragment<MsgFragmentPresenter> implements M
     @Override
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
         View view = super.onCreateView(inflater, container, savedInstanceState);
-        mHeaderHolder = new MsgHeaderHolder(mContext);
-        mAdapter = new MsgAdapter(mContext, null);
-        lvMsg.setAdapter(mAdapter);
-        lvMsg.addHeaderView(mHeaderHolder.getView());
+
+        setLoadingVisible(true);
+        prlRefresh.setOnRefreshListener(onRefreshListener);
+        mvpPresenter.init();
+
         return view;
     }
 
@@ -67,24 +74,61 @@ public class MsgFragment extends BaseFragment<MsgFragmentPresenter> implements M
         super.onDestroyView();
     }
 
-    class MsgHeaderHolder extends BaseViewHolder {
+    @Override
+    public void onMsgList(List<MsgBean> mData, boolean isLastPage) {
+        setLoadingVisible(false);
+        setErrorVisible(false);
+        if (mAdapter == null) {
+            mFooterHolder = new FooterViewHolder(mContext);
+            mAdapter = new MsgAdapter(mContext, mData);
+            lvMsg.setAdapter(mAdapter);
+            lvMsg.setOnItemClickListener(mAdapter);
+            lvMsg.addFooterView(mFooterHolder.getView());
+            lvMsg.setOnScrollListener(onScrollListener);
+        } else {
+            mAdapter.updateData(mData);
+            mAdapter.notifyDataSetChanged();
+        }
+        if (isLastPage) {
+            mFooterHolder.noMoreData();
+        } else {
+            mFooterHolder.moreData();
+        }
+        prlRefresh.finishRefresh();
+    }
 
-        @BindView(R.id.tv_news)
-        TextView tvNews;
+    @Override
+    public void onError() {
 
-        public MsgHeaderHolder(Context mContext) {
-            super(mContext);
-        }
+    }
 
+    /**
+     * 监听下拉刷新触发
+     */
+    OnRefreshListener onRefreshListener = new OnRefreshListener() {
         @Override
-        public int bindViewLayoutId() {
-            return R.layout.item_listview_msg_header;
+        public void onRefresh(@NonNull RefreshLayout refreshLayout) {
+            mvpPresenter.getHttpMsgList(true, false, false);
         }
+    };
+    /**
+     * 监听ListView 滑动 , 实现滑动底部加载更多
+     */
+    AbsListView.OnScrollListener onScrollListener = new AbsListView.OnScrollListener() {
+        private boolean mLastItemVisible;
 
-        @OnClick(R.id.cv_msg)
-        public void onClick(View view) {
-            startActivity(new Intent(mContext, MsgBoxActivity.class));
+        @Override
+        public void onScrollStateChanged(AbsListView view, int scrollState) {
+            if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE
+                    && mLastItemVisible) {
+                mvpPresenter.getHttpMsgList(false, false, false);
+            }
         }
-    }
 
+        @Override
+        public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
+            mLastItemVisible = (totalItemCount > 0)
+                    && (firstVisibleItem + visibleItemCount >= totalItemCount - 1);
+        }
+    };
 }

+ 2 - 1
app/src/main/java/com/webrain/dailypay/ui/mvp/contacts/IdentityCompanyContacts.java

@@ -2,6 +2,7 @@ package com.webrain.dailypay.ui.mvp.contacts;
 
 import android.content.Intent;
 
+import com.webrain.dailypay.bean.CompanyBean;
 import com.webrain.dailypay.callback.MvpDataCallBack;
 import com.webrain.dailypay.ui.base.IPresenter;
 import com.webrain.dailypay.ui.base.IView;
@@ -28,7 +29,7 @@ public class IdentityCompanyContacts {
 
         void onActivityForResult(int requestCode, int resultCode, Intent data, MvpDataCallBack<Integer> callBack);
 
-        void httpRealAuthentication(String name, String date, int isHuman, MvpDataCallBack<Boolean> callBack);
+        void httpRealAuthentication(String name, String date, int isHuman, MvpDataCallBack<CompanyBean> callBack);
 
         String getImagePath(int position);
     }

+ 5 - 0
app/src/main/java/com/webrain/dailypay/ui/mvp/contacts/IdentityResultContacts.java

@@ -5,11 +5,16 @@ import com.webrain.dailypay.ui.base.IView;
 
 public class IdentityResultContacts {
     public interface IIdentityResultView extends IView {
+        void onStatue(int statue, int type);
     }
 
     public interface IIdentityResultPresenter extends IPresenter {
+        void init();
     }
 
     public interface IIdentityResultModel {
+        int getStatue();
+
+        int getType();
     }
 }

+ 9 - 0
app/src/main/java/com/webrain/dailypay/ui/mvp/contacts/InvitedInterviewContacts.java

@@ -1,15 +1,24 @@
 package com.webrain.dailypay.ui.mvp.contacts;
 
+import com.webrain.dailypay.bean.CompanyBean;
+import com.webrain.dailypay.bean.ResumeBean;
 import com.webrain.dailypay.ui.base.IPresenter;
 import com.webrain.dailypay.ui.base.IView;
 
 public class InvitedInterviewContacts {
     public interface IInvitedInterviewView extends IView {
+        void onResume(ResumeBean bean);
+
+        void onCompany(CompanyBean bean);
     }
 
     public interface IInvitedInterviewPresenter extends IPresenter {
+        void init();
     }
 
     public interface IInvitedInterviewModel {
+        ResumeBean getResumeBean();
+
+        CompanyBean getCompanyBean();
     }
 }

+ 20 - 0
app/src/main/java/com/webrain/dailypay/ui/mvp/contacts/MsgFragmentContacts.java

@@ -1,15 +1,35 @@
 package com.webrain.dailypay.ui.mvp.contacts;
 
+import com.webrain.dailypay.bean.MsgBean;
+import com.webrain.dailypay.bean.ResumeBean;
+import com.webrain.dailypay.callback.MvpDataCallBack;
 import com.webrain.dailypay.ui.base.IPresenter;
 import com.webrain.dailypay.ui.base.IView;
 
+import java.util.List;
+
 public class MsgFragmentContacts {
     public interface IMsgFragmentView extends IView {
+        void onMsgList(List<MsgBean> mData, boolean isLastPage);
+
+        void onError();
+
     }
 
     public interface IMsgFragmentPresenter extends IPresenter {
+        void getHttpMsgList(boolean isRefresh, boolean isShowDialog, boolean isInit);
+
+
+        void init();
     }
 
     public interface IMsgFragmentModel {
+        void getHttpMsgList(MvpDataCallBack<List<MsgBean>> callBack, boolean isShowDialog, boolean isInit);
+
+        boolean isLastPage();
+
+        boolean isLoading();
+
+        void refreshPageNum();
     }
 }

+ 10 - 3
app/src/main/java/com/webrain/dailypay/ui/mvp/contacts/PositionApplyManagerContacts.java

@@ -1,7 +1,6 @@
 package com.webrain.dailypay.ui.mvp.contacts;
 
 
-import com.webrain.dailypay.bean.PositionListBean;
 import com.webrain.dailypay.bean.ResumeBean;
 import com.webrain.dailypay.callback.MvpDataCallBack;
 import com.webrain.dailypay.ui.base.IPresenter;
@@ -11,15 +10,19 @@ import java.util.List;
 
 public class PositionApplyManagerContacts {
     public interface IPositionApplyManagerView extends IView {
-        void onPositionList(List<ResumeBean> mData, boolean isLastPage);
+        void onPositionList(List<ResumeBean> mData, boolean isLastPage, boolean isChangeType);
 
         void onError();
     }
 
     public interface IPositionApplyManagerPresenter extends IPresenter {
-        void getHttpPositionList(boolean isRefresh, boolean isShowDialog, boolean isInit);
+        void getHttpPositionList(boolean isRefresh, boolean isShowDialog, boolean isInit, boolean isChangeType);
+
+        void setType(int type);
 
         void init();
+
+        void changeApplysStatus(List<ResumeBean> mSelectList, String isRefuse, String isEmploy);
     }
 
     public interface IPositionApplyManagerModel {
@@ -32,5 +35,9 @@ public class PositionApplyManagerContacts {
         boolean isLoading();
 
         void refreshPageNum();
+
+        void setType(int type);
+
+        void changeApplysStatus(String user_ids, String isRefuse, String isEmploy, MvpDataCallBack<Boolean> callBack);
     }
 }

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

@@ -12,9 +12,15 @@ public class ResumeDetailContacts {
 
     public interface IResumeDetailPresenter extends IPresenter {
         void getUserResume();
+
+        void invitedInterview();
+
+        void call();
     }
 
     public interface IResumeDetailModel {
         void getUserResume(MvpDataCallBack<ResumeBean> callBack);
+
+        ResumeBean getResume();
     }
 }

+ 8 - 4
app/src/main/java/com/webrain/dailypay/ui/mvp/model/IdentityCompanyModel.java

@@ -11,6 +11,8 @@ import com.webrain.baselibrary.utils.CommonUtils;
 import com.webrain.baselibrary.utils.SharedPreferencesUtils;
 import com.webrain.baselibrary.utils.ToastUtils;
 import com.webrain.dailypay.R;
+import com.webrain.dailypay.bean.CompanyBean;
+import com.webrain.dailypay.bean.api.ApiAuthenticationCompanyBean;
 import com.webrain.dailypay.bean.api.ApiNormalBean;
 import com.webrain.dailypay.callback.MvpDataCallBack;
 import com.webrain.dailypay.http.ApiObserver;
@@ -108,7 +110,7 @@ public class IdentityCompanyModel extends BaseModel implements IdentityCompanyCo
      * @param callBack
      */
     @Override
-    public void httpRealAuthentication(String name, String date, int isHuman, final MvpDataCallBack<Boolean> callBack) {
+    public void httpRealAuthentication(String name, String date, int isHuman, final MvpDataCallBack<CompanyBean> callBack) {
         MultipartBody.Builder builder = new RetrofitHttpParams(mContext).getRequestMultipartBody();
         if (FileUtils.isFileExit(imagePathPositive)) {
             File file = new File(imagePathPositive.replace("file://", ""));
@@ -125,10 +127,12 @@ public class IdentityCompanyModel extends BaseModel implements IdentityCompanyCo
         builder.addFormDataPart("isHumanResource", isHuman + "");
         builder.addFormDataPart("expiryDate", date);
         builder.addFormDataPart("enterpriseName", name);
-        new AnterpriseSubscribe(mContext).requestAnterpriseAuth(builder.build(), new ApiObserver<ApiNormalBean>(mContext, true, false) {
+        new AnterpriseSubscribe(mContext).requestAnterpriseAuth(builder.build(), new ApiObserver<ApiAuthenticationCompanyBean>(mContext, true, false) {
             @Override
-            public void onSuccess(ApiNormalBean data) {
-                callBack.onData(true);
+            public void onSuccess(ApiAuthenticationCompanyBean data) {
+                if (data != null && data.getCompanyAuthentication() != null) {
+                    callBack.onData(data.getCompanyAuthentication());
+                }
             }
 
             @Override

+ 38 - 0
app/src/main/java/com/webrain/dailypay/ui/mvp/model/IdentityResultModel.java

@@ -2,11 +2,49 @@ package com.webrain.dailypay.ui.mvp.model;
 
 import android.content.Context;
 
+import com.webrain.baselibrary.AppConstant;
+import com.webrain.baselibrary.IntentConstant;
+import com.webrain.dailypay.AppCacheManager;
+import com.webrain.dailypay.ui.activity.identity.IdentityResultActivity;
 import com.webrain.dailypay.ui.base.BaseModel;
 import com.webrain.dailypay.ui.mvp.contacts.IdentityResultContacts;
 
 public class IdentityResultModel extends BaseModel implements IdentityResultContacts.IIdentityResultModel {
+    private int type = -1;
+    private int state = -1;
+
     public IdentityResultModel(Context mContext) {
         super(mContext);
     }
+
+
+    /**
+     * 获取状态
+     *
+     * @return
+     */
+    @Override
+    public int getStatue() {
+        if (state == -1) {
+            if (getType() == AppConstant.APPROVE_PERSONAL) {
+                state = AppCacheManager.getInstance().getLoginModel() == null ? -1 : AppCacheManager.getInstance().getLoginModel().getAuthenticationStatus();
+            } else if (getType() == AppConstant.APPROVE_COMPANY) {
+                state = AppCacheManager.getInstance().getCompanyModel() == null ? -1 : AppCacheManager.getInstance().getCompanyModel().getAuthenticationStatus();
+            }
+        }
+        return state;
+    }
+
+    /**
+     * 获取类型
+     *
+     * @return
+     */
+    @Override
+    public int getType() {
+        if (type == -1) {
+            type = ((IdentityResultActivity) mContext).getIntent().getIntExtra(IntentConstant.TYPE, -1);
+        }
+        return type;
+    }
 }

+ 34 - 0
app/src/main/java/com/webrain/dailypay/ui/mvp/model/InvitedInterviewModel.java

@@ -2,11 +2,45 @@ package com.webrain.dailypay.ui.mvp.model;
 
 import android.content.Context;
 
+import com.webrain.baselibrary.IntentConstant;
+import com.webrain.dailypay.AppCacheManager;
+import com.webrain.dailypay.bean.CompanyBean;
+import com.webrain.dailypay.bean.ResumeBean;
+import com.webrain.dailypay.ui.activity.resume.InvitedInterviewActivity;
 import com.webrain.dailypay.ui.base.BaseModel;
 import com.webrain.dailypay.ui.mvp.contacts.InvitedInterviewContacts;
 
 public class InvitedInterviewModel extends BaseModel implements InvitedInterviewContacts.IInvitedInterviewModel {
+    private ResumeBean resumeBean;
+    private CompanyBean companyBean;
+
     public InvitedInterviewModel(Context mContext) {
         super(mContext);
     }
+
+    /**
+     * 简历
+     *
+     * @return
+     */
+    @Override
+    public ResumeBean getResumeBean() {
+        if (resumeBean == null) {
+            resumeBean = ((InvitedInterviewActivity) mContext).getIntent().getParcelableExtra(IntentConstant.BEAN);
+        }
+        return resumeBean;
+    }
+
+    /**
+     * 公司
+     *
+     * @return
+     */
+    @Override
+    public CompanyBean getCompanyBean() {
+        if (companyBean == null) {
+            companyBean = AppCacheManager.getInstance().getCompanyModel();
+        }
+        return companyBean;
+    }
 }

+ 3 - 0
app/src/main/java/com/webrain/dailypay/ui/mvp/model/LoginModel.java

@@ -66,6 +66,9 @@ public class LoginModel extends BaseModel implements LoginContacts.ILoginModel {
                     if (data.getUserInfo() != null) {
                         AppCacheManager.getInstance().setLoginModel(data.getUserInfo());
                     }
+                    if (data.getCompanyAuthentication() != null) {
+                        AppCacheManager.getInstance().setCompanyBean(data.getCompanyAuthentication());
+                    }
                     mvpDataCallBack.onData(true);
                 }
             }

+ 98 - 0
app/src/main/java/com/webrain/dailypay/ui/mvp/model/MsgFragmentModel.java

@@ -1,12 +1,110 @@
 package com.webrain.dailypay.ui.mvp.model;
 
 import android.content.Context;
+import android.text.TextUtils;
 
+import com.webrain.dailypay.bean.MsgBean;
+import com.webrain.dailypay.bean.ResumeBean;
+import com.webrain.dailypay.bean.api.ApiMsgListBean;
+import com.webrain.dailypay.bean.api.ApiResumeListBean;
+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.AnterpriseSubscribe;
+import com.webrain.dailypay.http.subscribe.ResumeSubscribe;
 import com.webrain.dailypay.ui.base.BaseModel;
 import com.webrain.dailypay.ui.mvp.contacts.MsgFragmentContacts;
 
+import java.util.ArrayList;
+import java.util.List;
+
 public class MsgFragmentModel extends BaseModel implements MsgFragmentContacts.IMsgFragmentModel {
+    private List<MsgBean> mPositionData = new ArrayList<>();//消息数据
+    private boolean isError = false;//是否出错
+    private int pageNum = 0;//第一页为1开始 初始为0
+    private boolean isLoading = false;//是否加载中
+    private boolean isLastPage;//是否已经最后一页
+
     public MsgFragmentModel(Context mContext) {
         super(mContext);
     }
+
+    @Override
+    public void getHttpMsgList(MvpDataCallBack<List<MsgBean>> callBack, boolean isShowDialog, boolean isInit) {
+        httpMsgList(callBack, isShowDialog, isInit);
+    }
+
+    /**
+     * http请求获取消息列表数据
+     *
+     * @param callBack
+     */
+    private void httpMsgList(final MvpDataCallBack<List<MsgBean>> callBack, boolean isShowDialog, final boolean isInit) {
+        isLoading = true;
+        RetrofitHttpParams params = new RetrofitHttpParams(mContext);
+        params.put("pageNo", pageNum + 1);
+        params.put("pageSize", 10);
+        new AnterpriseSubscribe(mContext).requestAnterpriseGetMessage(params.getRequestParams(), new ApiObserver<ApiMsgListBean>(mContext, isShowDialog, false) {
+            @Override
+            public void onSuccess(ApiMsgListBean data) {
+                if (data != null) {
+                    pageNum = data.getPageNum();
+                    isLastPage = data.isLastPage();
+                    if (pageNum == 1 || pageNum == 0) {
+                        mPositionData.clear();
+                    }
+                    if (data.getPositions() != null && !data.getPositions().isEmpty()) {
+                        mPositionData.addAll(data.getPositions());
+                    }
+                }
+            }
+
+            @Override
+            public void onError(ApiMsgListBean data, ApiException exception) {
+                super.onError(data, exception);
+                if (isInit)
+                    isError = true;
+            }
+
+            @Override
+            public void onFinish() {
+                callBack.onData(mPositionData);
+                if (isError) {
+                    callBack.onError();
+                }
+                isError = false;
+                isLoading = false;
+            }
+
+        });
+    }
+
+    /**
+     * 是否最后一页
+     *
+     * @return
+     */
+    @Override
+    public boolean isLastPage() {
+        return isLastPage;
+    }
+
+    /**
+     * 是否正在加载中
+     *
+     * @return
+     */
+    @Override
+    public boolean isLoading() {
+        return isLoading;
+    }
+
+    /**
+     * 刷新页码
+     */
+    @Override
+    public void refreshPageNum() {
+        pageNum = 0;
+    }
 }

+ 50 - 1
app/src/main/java/com/webrain/dailypay/ui/mvp/model/PositionApplyManagerModel.java

@@ -1,6 +1,7 @@
 package com.webrain.dailypay.ui.mvp.model;
 
 import android.content.Context;
+import android.text.TextUtils;
 
 import com.webrain.baselibrary.IntentConstant;
 import com.webrain.dailypay.R;
@@ -8,6 +9,7 @@ import com.webrain.dailypay.bean.PositionBean;
 import com.webrain.dailypay.bean.PositionListBean;
 import com.webrain.dailypay.bean.ResumeBean;
 import com.webrain.dailypay.bean.TabItemBean;
+import com.webrain.dailypay.bean.api.ApiNormalBean;
 import com.webrain.dailypay.bean.api.ApiPositionListBean;
 import com.webrain.dailypay.bean.api.ApiPositionResumeListBean;
 import com.webrain.dailypay.callback.MvpDataCallBack;
@@ -29,6 +31,7 @@ public class PositionApplyManagerModel extends BaseModel implements PositionAppl
     private int pageNum = 0;//第一页为1开始 初始为0
     private boolean isLoading = false;//是否加载中
     private boolean isLastPage;//是否已经最后一页
+    private int type = 1;//1 新报名,2 待面试
 
     public PositionApplyManagerModel(Context mContext) {
         super(mContext);
@@ -58,7 +61,7 @@ public class PositionApplyManagerModel extends BaseModel implements PositionAppl
         params.put("pageSize", 10);
         params.put("positionId", mIntentBean.getId());
         params.put("positionCategory", mIntentBean.getPositionCategory() == 0 ? 6 : 7);//兼容服务端C端
-        params.put("type", 1);
+        params.put("type", type);
         new PositionSubscribe(mContext).requestPositionResume(params.getRequestParams(), new ApiObserver<ApiPositionResumeListBean>(mContext, isShowDialog, false) {
             @Override
             public void onSuccess(ApiPositionResumeListBean data) {
@@ -121,4 +124,50 @@ public class PositionApplyManagerModel extends BaseModel implements PositionAppl
     public void refreshPageNum() {
         pageNum = 0;
     }
+
+    /**
+     * 设置类型
+     * 1 新报名,2 待面试
+     *
+     * @param type
+     */
+    @Override
+    public void setType(int type) {
+        this.type = type;
+    }
+
+    /**
+     * 批量处理简历
+     *
+     * @param user_ids
+     * @param isRefuse
+     * @param isEmploy
+     * @param callBack
+     */
+    @Override
+    public void changeApplysStatus(String user_ids, 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() == 0 ? 6 : 7);//兼容服务端C端
+        params.put("type", type);
+        if (!TextUtils.isEmpty(isRefuse))
+            params.put("isRefuse", isRefuse);
+        if (!TextUtils.isEmpty(isEmploy))
+            params.put("isEmploy", isEmploy);
+        new PositionSubscribe(mContext).requestChangeApplyStatus(params.getRequestParams(), new ApiObserver<ApiNormalBean>(mContext, true, false) {
+            @Override
+            public void onSuccess(ApiNormalBean data) {
+                if (data != null) {
+                    callBack.onData(true);
+                }
+            }
+
+            @Override
+            public void onFinish() {
+            }
+
+        });
+    }
 }

+ 7 - 1
app/src/main/java/com/webrain/dailypay/ui/mvp/model/ResumeDetailModel.java

@@ -39,7 +39,8 @@ public class ResumeDetailModel extends BaseModel implements ResumeDetailContacts
                 @Override
                 public void onSuccess(ApiResumeDetailBean data) {
                     if (data != null && data.getHpResume() != null) {
-                        callBack.onData(data.getHpResume());
+                        resumeListBean = data.getHpResume();
+                        callBack.onData(resumeListBean);
                     }
                 }
 
@@ -51,4 +52,9 @@ public class ResumeDetailModel extends BaseModel implements ResumeDetailContacts
             });
         }
     }
+
+    @Override
+    public ResumeBean getResume() {
+        return resumeListBean;
+    }
 }

+ 12 - 7
app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/IdentityCompanyPresenter.java

@@ -5,12 +5,15 @@ import android.text.TextUtils;
 
 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.CompanyBean;
 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.IdentityResultActivity;
 import com.webrain.dailypay.ui.base.BasePresenter;
 import com.webrain.dailypay.ui.mvp.contacts.IdentityCompanyContacts;
 import com.webrain.dailypay.ui.mvp.model.IdentityCompanyModel;
@@ -95,14 +98,16 @@ public class IdentityCompanyPresenter extends BasePresenter<IdentityCompanyActiv
         if (isViewAttach() && isValid(name, date, isLong)) {
             String uploadDate = isLong == 1 ? "2100-01-01" : date.replace("年", "-").replace("月", "-").replace("日", "-");
             mIdentityCompanyModel.httpRealAuthentication(name, uploadDate, isHuman,
-                    new MvpDataCallBack<Boolean>() {
+                    new MvpDataCallBack<CompanyBean>() {
                         @Override
-                        public void onData(Boolean data) {
-                            if (AppCacheManager.getInstance().isLogin()) {//todo
-//                                AppCacheManager.getInstance().getLoginModel().setAuthenticationStatus(AppConstant.APPROVE_WAIT);
-//                                AppCacheManager.getInstance().setLoginModel(AppCacheManager.getInstance().getLoginModel());//刷新本地缓存数据更新状态
-//                                EventBus.getDefault().post(new StringEvent(EventConstant.EVENT_USER_AUTHENTICATION_STATUS_CHANGE));
-//                                mvpReference.get().finish();
+                        public void onData(CompanyBean data) {
+                            if (AppCacheManager.getInstance().isLogin()) {
+                                AppCacheManager.getInstance().setCompanyBean(data);//刷新本地缓存数据更新状态
+                                EventBus.getDefault().post(new StringEvent(EventConstant.EVENT_COMPANY_AUTHENTICATION_STATUS_CHANGE));
+                                mvpReference.get().finish();
+                                Intent intent = new Intent(mvpReference.get(), IdentityResultActivity.class);
+                                intent.putExtra(IntentConstant.TYPE, AppConstant.APPROVE_COMPANY);
+                                mvpReference.get().startActivity(intent);
                             }
                         }
                     });

+ 5 - 0
app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/IdentityRecruitersPresenter.java

@@ -4,10 +4,12 @@ import android.content.Intent;
 
 import com.webrain.baselibrary.AppConstant;
 import com.webrain.baselibrary.EventConstant;
+import com.webrain.baselibrary.IntentConstant;
 import com.webrain.dailypay.AppCacheManager;
 import com.webrain.dailypay.callback.MvpDataCallBack;
 import com.webrain.dailypay.event.StringEvent;
 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.mvp.contacts.IdentityRecruitersContacts;
 import com.webrain.dailypay.ui.mvp.model.IdentityRecruitersModel;
@@ -79,6 +81,9 @@ public class IdentityRecruitersPresenter extends BasePresenter<IdentityRecruiter
                                 AppCacheManager.getInstance().setLoginModel(AppCacheManager.getInstance().getLoginModel());//刷新本地缓存数据更新状态
                                 EventBus.getDefault().post(new StringEvent(EventConstant.EVENT_USER_AUTHENTICATION_STATUS_CHANGE));
                                 mvpReference.get().finish();
+                                Intent intent = new Intent(mvpReference.get(), IdentityResultActivity.class);
+                                intent.putExtra(IntentConstant.TYPE, AppConstant.APPROVE_PERSONAL);
+                                mvpReference.get().startActivity(intent);
                             }
 
                         }

+ 6 - 0
app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/IdentityResultPresenter.java

@@ -12,4 +12,10 @@ public class IdentityResultPresenter extends BasePresenter<IdentityResultActivit
         super(view);
         this.mIdentityResultModel = new IdentityResultModel(mvpReference.get());
     }
+
+    @Override
+    public void init() {
+        if(isViewAttach())
+            mvpReference.get().onStatue(mIdentityResultModel.getStatue(),mIdentityResultModel.getType());
+    }
 }

+ 8 - 0
app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/InvitedInterviewPresenter.java

@@ -12,4 +12,12 @@ public class InvitedInterviewPresenter extends BasePresenter<InvitedInterviewAct
         super(view);
         this.mInvitedInterviewModel = new InvitedInterviewModel(mvpReference.get());
     }
+
+    @Override
+    public void init() {
+        if (isViewAttach()) {
+            mvpReference.get().onCompany(mInvitedInterviewModel.getCompanyBean());
+            mvpReference.get().onResume(mInvitedInterviewModel.getResumeBean());
+        }
+    }
 }

+ 3 - 2
app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/MainPresenter.java

@@ -1,7 +1,7 @@
 package com.webrain.dailypay.ui.mvp.presenter;
 
-import android.view.View;
-
+import com.webrain.baselibrary.utils.AppUtils;
+import com.webrain.baselibrary.utils.SharedPreferencesUtils;
 import com.webrain.dailypay.ui.activity.MainActivity;
 import com.webrain.dailypay.ui.base.BasePresenter;
 import com.webrain.dailypay.ui.mvp.contacts.MainContacts;
@@ -19,6 +19,7 @@ public class MainPresenter extends BasePresenter<MainActivity> implements MainCo
     public void getTabItem() {
         if (isViewAttach()) {
             mvpReference.get().onTabItem(mMainModel.getTabItem(mvpReference.get()));
+            SharedPreferencesUtils.setHistoryAppVersion(mvpReference.get(), AppUtils.getVersionName(mvpReference.get()));
         }
     }
 }

+ 43 - 0
app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/MsgFragmentPresenter.java

@@ -1,10 +1,14 @@
 package com.webrain.dailypay.ui.mvp.presenter;
 
+import com.webrain.dailypay.bean.MsgBean;
+import com.webrain.dailypay.callback.MvpDataCallBack;
 import com.webrain.dailypay.ui.base.BasePresenter;
 import com.webrain.dailypay.ui.fragment.MsgFragment;
 import com.webrain.dailypay.ui.mvp.contacts.MsgFragmentContacts;
 import com.webrain.dailypay.ui.mvp.model.MsgFragmentModel;
 
+import java.util.List;
+
 public class MsgFragmentPresenter extends BasePresenter<MsgFragment> implements MsgFragmentContacts.IMsgFragmentPresenter {
     private MsgFragmentModel mMsgFragmentModel;
 
@@ -12,4 +16,43 @@ public class MsgFragmentPresenter extends BasePresenter<MsgFragment> implements
         super(view);
         this.mMsgFragmentModel = new MsgFragmentModel(mvpReference.get().getContext());
     }
+
+    /**
+     * 获取消息数据
+     *
+     * @param isRefresh
+     * @param isShowDialog
+     * @param isInit
+     */
+    @Override
+    public void getHttpMsgList(boolean isRefresh, boolean isShowDialog, boolean isInit) {
+        if (isViewAttach()) {
+            if (isRefresh)
+                mMsgFragmentModel.refreshPageNum();
+            if (isRefresh || (!mMsgFragmentModel.isLastPage() && !mMsgFragmentModel.isLoading())) {
+                mMsgFragmentModel.getHttpMsgList(new MvpDataCallBack<List<MsgBean>>() {
+                    @Override
+                    public void onData(List<MsgBean> data) {
+                        if (isViewAttach())
+                            mvpReference.get().onMsgList(data, mMsgFragmentModel.isLastPage());
+                    }
+
+                    @Override
+                    public void onError() {
+                        super.onError();
+                        if (isViewAttach())
+                            mvpReference.get().onError();
+                    }
+                }, isShowDialog, isInit);
+            }
+        }
+    }
+
+    /**
+     * 初始化
+     */
+    @Override
+    public void init() {
+        getHttpMsgList(false, false, true);
+    }
 }

+ 48 - 3
app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/PositionApplyManagerPresenter.java

@@ -1,5 +1,7 @@
 package com.webrain.dailypay.ui.mvp.presenter;
 
+import android.text.TextUtils;
+
 import com.webrain.dailypay.bean.ResumeBean;
 import com.webrain.dailypay.callback.MvpDataCallBack;
 import com.webrain.dailypay.ui.activity.position.PositionApplyManagerActivity;
@@ -23,7 +25,7 @@ public class PositionApplyManagerPresenter extends BasePresenter<PositionApplyMa
      * @param isRefresh
      */
     @Override
-    public void getHttpPositionList(boolean isRefresh, boolean isShowDialog, boolean isInit) {
+    public void getHttpPositionList(boolean isRefresh, boolean isShowDialog, boolean isInit, final boolean isChangeType) {
         if (isViewAttach()) {
             if (isRefresh)
                 mPositionApplyManagerModel.refreshPageNum();
@@ -32,7 +34,7 @@ public class PositionApplyManagerPresenter extends BasePresenter<PositionApplyMa
                     @Override
                     public void onData(List<ResumeBean> data) {
                         if (isViewAttach())
-                            mvpReference.get().onPositionList(data, mPositionApplyManagerModel.isLastPage());
+                            mvpReference.get().onPositionList(data, mPositionApplyManagerModel.isLastPage(), isChangeType);
                     }
 
                     @Override
@@ -47,11 +49,54 @@ public class PositionApplyManagerPresenter extends BasePresenter<PositionApplyMa
     }
 
     /**
+     * 设置类型
+     * 1 新报名,2 待面试
+     *
+     * @param type
+     */
+    @Override
+    public void setType(int type) {
+        if (isViewAttach())
+            mPositionApplyManagerModel.setType(type);
+    }
+
+    /**
      * 初始化
      */
     @Override
     public void init() {
         mPositionApplyManagerModel.initIntent();
-        getHttpPositionList(false, false, true);
+        getHttpPositionList(false, false, true, false);
+    }
+
+    /**
+     * 处理报名管理
+     *
+     * @param mSelectList
+     * @param isRefuse    新报名批量拒绝 (1:拒绝)
+     * @param isEmploy    待面试那边按钮(0:拒绝 1:录用)
+     */
+    @Override
+    public void changeApplysStatus(List<ResumeBean> mSelectList, String isRefuse, String isEmploy) {
+        if (isViewAttach()) {
+            if (mSelectList != null && !mSelectList.isEmpty()) {
+                String userIds = "";
+                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(userIds)) {
+                    mPositionApplyManagerModel.changeApplysStatus(userIds, isRefuse, isEmploy, new MvpDataCallBack<Boolean>() {
+                        @Override
+                        public void onData(Boolean data) {
+                            if (data)
+                                getHttpPositionList(true, true, false, true);
+                        }
+                    });
+                }
+            }
+        }
     }
 }

+ 37 - 0
app/src/main/java/com/webrain/dailypay/ui/mvp/presenter/ResumeDetailPresenter.java

@@ -1,7 +1,13 @@
 package com.webrain.dailypay.ui.mvp.presenter;
 
+import android.content.Intent;
+import android.net.Uri;
+import android.text.TextUtils;
+
+import com.webrain.baselibrary.IntentConstant;
 import com.webrain.dailypay.bean.ResumeBean;
 import com.webrain.dailypay.callback.MvpDataCallBack;
+import com.webrain.dailypay.ui.activity.resume.InvitedInterviewActivity;
 import com.webrain.dailypay.ui.activity.resume.ResumeDetailActivity;
 import com.webrain.dailypay.ui.base.BasePresenter;
 import com.webrain.dailypay.ui.mvp.contacts.ResumeDetailContacts;
@@ -29,4 +35,35 @@ public class ResumeDetailPresenter extends BasePresenter<ResumeDetailActivity> i
                 }
             });
     }
+
+    /**
+     * 面试邀请
+     */
+    @Override
+    public void invitedInterview() {
+        if (isViewAttach()) {
+            ResumeBean bean = mResumeDetailModel.getResume();
+            if (bean != null) {
+                Intent intent = new Intent(mvpReference.get(), InvitedInterviewActivity.class);
+                intent.putExtra(IntentConstant.BEAN, bean);
+                mvpReference.get().startActivity(intent);
+            }
+        }
+    }
+
+    /**
+     * 电话联系
+     */
+    @Override
+    public void call() {
+        if (isViewAttach()) {
+            ResumeBean bean = mResumeDetailModel.getResume();
+            if (bean != null && !TextUtils.isEmpty(bean.getPhone())) {
+                Intent intent = new Intent(Intent.ACTION_CALL);
+                Uri data = Uri.parse("tel:" + bean.getPhone());
+                intent.setData(data);
+                mvpReference.get().startActivity(intent);
+            }
+        }
+    }
 }

+ 1 - 4
app/src/main/res/drawable/mipmap_select_all_refuse.xml

@@ -1,8 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:drawable="@mipmap/ic_all_refuse_p" android:state_pressed="true" />
-    <item android:drawable="@mipmap/ic_all_refuse_p" android:state_checked="true" />
-    <item android:drawable="@mipmap/ic_all_refuse_p" android:state_selected="true" />
     <item android:drawable="@mipmap/ic_all_refuse_n" android:state_enabled="false" />
-    <item android:drawable="@mipmap/ic_all_refuse_n" />
+    <item android:drawable="@mipmap/ic_all_refuse_p" />
 </selector>

+ 1 - 4
app/src/main/res/drawable/mipmap_select_invited_interview.xml

@@ -1,8 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:drawable="@mipmap/ic_invited_interview_p" android:state_pressed="true" />
-    <item android:drawable="@mipmap/ic_invited_interview_p" android:state_checked="true" />
-    <item android:drawable="@mipmap/ic_invited_interview_p" android:state_selected="true" />
     <item android:drawable="@mipmap/ic_invited_interview_n" android:state_enabled="false" />
-    <item android:drawable="@mipmap/ic_invited_interview_n" />
+    <item android:drawable="@mipmap/ic_invited_interview_p" />
 </selector>

+ 73 - 0
app/src/main/res/layout/activity_guide.xml

@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/white">
+
+
+    <android.support.v4.view.ViewPager
+        android:id="@+id/vp_guide"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+
+    <RelativeLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:layout_marginBottom="48dp"
+        android:paddingLeft="35dp"
+        android:paddingRight="35dp">
+
+        <TextView
+            android:id="@+id/tv_jump"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:padding="10dp"
+            android:textSize="@dimen/px39_13sp" />
+            <!--android:text="@string/jump"-->
+            <!--android:textColor="@color/text_dark_gray2"-->
+
+
+        <TextView
+            android:id="@+id/tv_next"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentRight="true"
+            android:padding="10dp"
+            android:text="@string/next"
+            android:textSize="@dimen/px39_13sp" />
+            <!--android:textColor="@color/text_blue"-->
+
+
+
+        <LinearLayout
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerInParent="true"
+            android:orientation="horizontal">
+
+            <View
+                android:id="@+id/v_1"
+                android:layout_width="6dp"
+                android:layout_height="6dp"  />
+                <!--android:background="@drawable/corners_guide_banner_type"-->
+
+
+            <View
+                android:id="@+id/v_2"
+                android:layout_width="6dp"
+                android:layout_height="6dp"
+                android:layout_marginLeft="11dp"  />
+                <!--android:background="@drawable/corners_guide_banner_type"-->
+
+            <View
+                android:id="@+id/v_3"
+                android:layout_width="6dp"
+                android:layout_height="6dp"
+                android:layout_marginLeft="11dp"  />
+                <!--android:background="@drawable/corners_guide_banner_type"-->
+
+        </LinearLayout>
+    </RelativeLayout>
+
+</RelativeLayout>

+ 2 - 2
app/src/main/res/layout/activity_identity_company.xml

@@ -111,8 +111,8 @@
 
                             <ImageView
                                 android:id="@+id/iv_reverse"
-                                android:layout_width="121dp"
-                                android:layout_height="68dp"
+                                android:layout_width="106dp"
+                                android:layout_height="72dp"
                                 android:layout_gravity="center_horizontal"
                                 android:layout_marginLeft="10dp"
                                 android:scaleType="fitXY"

+ 13 - 7
app/src/main/res/layout/activity_position_apply_manager.xml

@@ -65,9 +65,10 @@
                 <TextView
                     android:id="@+id/tv_all_select"
                     android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
+                    android:layout_height="match_parent"
                     android:drawableLeft="@drawable/mipmap_select_all_select"
                     android:drawablePadding="5dp"
+                    android:gravity="center"
                     android:text="@string/all_select"
                     android:textColor="@drawable/color_gray_black_tv"
                     android:textSize="@dimen/px33_11sp" />
@@ -80,22 +81,27 @@
                 <TextView
                     android:id="@+id/tv_all_refuse"
                     android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
+                    android:layout_height="match_parent"
                     android:layout_marginRight="30dp"
                     android:drawableLeft="@drawable/mipmap_select_all_refuse"
                     android:drawablePadding="5dp"
+                    android:enabled="false"
+                    android:gravity="center"
                     android:text="@string/all_refuse"
-                    android:textColor="@drawable/color_gray_black_tv"
+                    android:textColor="@drawable/color_black_gray_tv"
                     android:textSize="@dimen/px33_11sp" />
 
                 <TextView
-                    android:id="@+id/tv_invited_interview"
+                    android:id="@+id/tv_employed"
                     android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
+                    android:layout_height="match_parent"
                     android:drawableLeft="@drawable/mipmap_select_invited_interview"
                     android:drawablePadding="5dp"
-                    android:text="@string/invited_interview"
-                    android:textColor="@drawable/color_gray_black_tv"
+                    android:enabled="false"
+                    android:visibility="invisible"
+                    android:gravity="center"
+                    android:text="@string/employed"
+                    android:textColor="@drawable/color_black_gray_tv"
                     android:textSize="@dimen/px33_11sp" />
 
             </LinearLayout>

+ 9 - 0
app/src/main/res/layout/activity_start.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@mipmap/ic_start"
+    android:gravity="center_horizontal"
+    android:orientation="vertical">
+
+</RelativeLayout>

+ 13 - 5
app/src/main/res/layout/fragment_msg.xml

@@ -4,10 +4,18 @@
     android:layout_height="match_parent"
     android:background="@color/white">
 
-    <ListView
-        android:id="@+id/lv_msg"
+    <com.webrain.baselibrary.widget.refresh.ProgressRefreshLayout
+        android:id="@+id/prl_refresh"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:divider="@null"
-        android:dividerHeight="0px" />
+        android:layout_height="match_parent">
+
+        <ListView
+            android:id="@+id/lv_msg"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:divider="@null"
+            android:dividerHeight="0px" />
+
+    </com.webrain.baselibrary.widget.refresh.ProgressRefreshLayout>
+
 </RelativeLayout>

+ 41 - 61
app/src/main/res/layout/item_listview_msg.xml

@@ -6,7 +6,7 @@
 
     <android.support.v7.widget.CardView
         android:layout_width="match_parent"
-        android:layout_height="58dp"
+        android:layout_height="63dp"
         android:layout_marginLeft="15dp"
         android:layout_marginTop="9dp"
         android:layout_marginRight="15dp"
@@ -14,82 +14,62 @@
         app:cardCornerRadius="17dp"
         app:cardElevation="5dp">
 
+
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            android:orientation="horizontal"
-            android:gravity="center_vertical">
-
-
-            <RelativeLayout
-                android:layout_width="43dp"
-                android:layout_height="43dp"
-                android:layout_marginLeft="19dp"
-                android:background="@drawable/circle_image_header_bg">
-
-                <ImageView
-                    android:id="@+id/iv_header"
-                    android:layout_width="37dp"
-                    android:layout_height="37dp"
-                    android:src="@mipmap/ic_default_header"
-                    android:layout_centerInParent="true" />
-
-
-                <View
-                    android:id="@+id/v_sure"
-                    android:layout_width="12dp"
-                    android:layout_height="12dp"
-                    android:layout_alignParentRight="true"
-                    android:layout_marginRight="2dp"
-                    android:background="@mipmap/ic_sure" />
-            </RelativeLayout>
-
+            android:layout_marginLeft="20dp"
+            android:layout_marginRight="14dp"
+            android:gravity="center_vertical"
+            android:orientation="vertical">
 
             <LinearLayout
                 android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:layout_marginLeft="6dp"
-                android:layout_marginRight="28dp"
+                android:layout_height="wrap_content"
                 android:gravity="center_vertical"
-                android:orientation="vertical">
-
-                <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_weight="1"
-                        android:layout_height="wrap_content"
-                        android:ellipsize="end"
-                        android:singleLine="true"
-                        android:text="刘大样子"
-                        android:textColor="@color/text_black"
-                        android:textSize="@dimen/px36_12sp" />
-
-                    <TextView
-                        android:id="@+id/tv_date"
-                        android:layout_width="wrap_content"
-                        android:layout_height="wrap_content"
-                        android:text="刚刚"
-                        android:textColor="@color/text_hint_gray"
-                        android:textSize="@dimen/px33_11sp" />
-                </LinearLayout>
+                android:orientation="horizontal">
 
+                <ImageView
+                    android:id="@+id/iv_icon"
+                    android:layout_width="12dp"
+                    android:layout_height="12dp"
+                    android:layout_marginRight="9dp"
+                    android:scaleType="center"
+                    android:src="@mipmap/ic_msg_box_tips" />
 
                 <TextView
-                    android:id="@+id/tv_msg"
-                    android:layout_width="wrap_content"
+                    android:id="@+id/tv_title"
+                    android:layout_width="0dp"
                     android:layout_height="wrap_content"
-                    android:layout_marginTop="3dp"
+                    android:layout_weight="1"
                     android:ellipsize="end"
                     android:singleLine="true"
-                    android:text="你好,我对你发布的“饿了么 外卖配送员..."
-                    android:textColor="@color/text_gray"
+                    android:text="简历推荐"
+                    android:textColor="@color/text_purple"
                     android:textSize="@dimen/px36_12sp" />
 
+                <TextView
+                    android:id="@+id/tv_date"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="2019-08-19 12:30"
+                    android:textColor="@color/text_hint_gray"
+                    android:textSize="@dimen/px33_11sp" />
             </LinearLayout>
+
+
+            <TextView
+                android:id="@+id/tv_msg"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="10dp"
+                android:layout_marginTop="10dp"
+                android:ellipsize="end"
+                android:singleLine="true"
+                android:text="已为您发布的岗位匹配了15份新简历!快去看看吧!"
+                android:textColor="@color/text_gray"
+                android:textSize="@dimen/px36_12sp" />
+
         </LinearLayout>
     </android.support.v7.widget.CardView>
 

+ 11 - 0
app/src/main/res/layout/item_listview_position_apply_header.xml

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="94dp" />
+
+</LinearLayout>

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


BIN=BIN
app/src/main/res/mipmap-xhdpi/ic_start.png


BIN=BIN
app/src/main/res/mipmap-xxhdpi/ic_start.png


BIN=BIN
app/src/main/res/mipmap-xxxhdpi/ic_start.png


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

@@ -47,6 +47,7 @@
     <string name="no_long_time_valid">非长期</string>
     <string name="all_select">全选</string>
     <string name="all_refuse">统一拒绝</string>
+    <string name="employed">录用</string>
     <string name="invited_interview">邀请面试</string>
     <string name="look_resume">查看简历</string>
     <string name="job_intention">求职意向</string>

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

@@ -7,6 +7,7 @@
         <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
         <item name="colorAccent">@color/colorAccent</item>
         <item name="android:windowTranslucentStatus">true</item><!--沉静式-->
+        <item name="android:windowBackground">@mipmap/ic_start</item>
         <item name="colorControlNormal">@color/main_purple</item>
         <item name="colorControlActivated">@color/main_purple</item>
     </style>

+ 3 - 0
baselibrary/src/main/java/com/webrain/baselibrary/AppConstant.java

@@ -15,6 +15,9 @@ public class AppConstant {
     public static final int APPROVE_WAIT = 1;
     public static final int APPROVE_FAIL = 2;
     public static final int APPROVE_SUCCESS = 3;
+    //ApproveType(0:个人认证 1:企业认证)
+    public static final int APPROVE_PERSONAL = 0;
+    public static final int APPROVE_COMPANY = 1;
 
     //JobList
     public static final int FULL_TIME_JOB = 0;//全职工作

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

@@ -5,4 +5,5 @@ package com.webrain.baselibrary;
  */
 public class EventConstant {
     public static final String EVENT_USER_AUTHENTICATION_STATUS_CHANGE = "user_authentication_status_change"; //用户认账状态变更
+    public static final String EVENT_COMPANY_AUTHENTICATION_STATUS_CHANGE = "company_authentication_status_change"; //用户认账状态变更
 }

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

@@ -6,4 +6,5 @@ public class IntentConstant {
     public static final String HEIGHT = "height";
     public static final String BEAN = "bean";
     public static final String CROPPER = "isCropper";
+    public static final String TYPE = "type";
 }

+ 178 - 0
baselibrary/src/main/java/com/webrain/baselibrary/utils/AppUtils.java

@@ -0,0 +1,178 @@
+package com.webrain.baselibrary.utils;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.text.TextUtils;
+import android.view.WindowManager;
+
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+public class AppUtils {
+    /**
+     * @return 包名
+     */
+    public static String getPackageName(Context context) {
+        return context.getPackageName();
+    }
+
+
+    /**
+     * 获取应用程序名称
+     */
+    public static synchronized String getAppName(Context context) {
+        try {
+            PackageManager packageManager = context.getPackageManager();
+            PackageInfo packageInfo = packageManager.getPackageInfo(
+                    context.getPackageName(), 0);
+            int labelRes = packageInfo.applicationInfo.labelRes;
+            return context.getResources().getString(labelRes);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    /**
+     * @return 当前应用的版本号
+     */
+    public static int getVersionCode(Context context) {
+        try {
+            PackageManager manager = context.getPackageManager();
+            PackageInfo info = manager.getPackageInfo(context.getPackageName(),
+                    0);
+            if (info != null)
+                return info.versionCode;
+            else
+                return 0;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return 0;
+        }
+    }
+
+    /**
+     * @return 当前应用的版本名
+     */
+    public static String getVersionName(Context context) {
+        try {
+            PackageManager manager = context.getPackageManager();
+            PackageInfo info = manager.getPackageInfo(context.getPackageName(),
+                    0);
+            if (info != null)
+                return info.versionName;
+            else
+                return "";
+        } catch (Exception e) {
+            e.printStackTrace();
+            return "";
+        }
+    }
+
+    /**
+     * @return 当前应用的渠道名称
+     */
+    public static String getProductFlavorName(Context context) {
+        try {
+            PackageManager manager = context.getPackageManager();
+            ApplicationInfo info = manager.getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA);
+            return info.metaData.getString("CHANNEL_NAME");
+        } catch (Exception e) {
+            e.printStackTrace();
+            return "OFFICIAL";
+        }
+    }
+
+    /**
+     * 当前应用MetaData的对应值
+     *
+     * @param context
+     * @param key
+     * @return
+     */
+    public static String getMetaDataString(Context context, String key) {
+        try {
+            PackageManager manager = context.getPackageManager();
+            ApplicationInfo info = manager.getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA);
+            String value = info.metaData.get(key) + "";
+            return value;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return "";
+        }
+    }
+
+
+    /**
+     * 检查手机上是否安装了指定的软件
+     *
+     * @param context
+     * @param packageName:应用包名
+     * @return
+     */
+    public static boolean isInstalled(Context context, String packageName) {
+        //获取packagemanager
+        final PackageManager packageManager = context.getPackageManager();
+        //获取所有已安装程序的包信息
+        List<PackageInfo> packageInfos = packageManager.getInstalledPackages(0);
+        //用于存储所有已安装程序的包名
+        List<String> packageNames = new ArrayList<String>();
+        //从pinfo中将包名字逐一取出,压入pName list中
+        if (packageInfos != null) {
+            for (int i = 0; i < packageInfos.size(); i++) {
+                String packName = packageInfos.get(i).packageName;
+                packageNames.add(packName);
+            }
+        }
+        //判断packageNames中是否有目标程序的包名,有TRUE,没有FALSE
+        return packageNames.contains(packageName);
+    }
+
+    /**
+     * 设置窗口半透明 1f为全透明
+     *
+     * @param mContext
+     * @param alpha
+     */
+    public static void setWindowAttributes(Activity mContext, float alpha) {
+        WindowManager.LayoutParams lp = mContext.getWindow().getAttributes();
+        lp.alpha = alpha;
+        mContext.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
+        mContext.getWindow().setAttributes(lp);
+    }
+
+    /**
+     * 获取进程号对应的进程名
+     *
+     * @param pid 进程号
+     * @return 进程名
+     */
+    public static String getProcessName(int pid) {
+        BufferedReader reader = null;
+        try {
+            reader = new BufferedReader(new FileReader("/proc/" + pid + "/cmdline"));
+            String processName = reader.readLine();
+            if (!TextUtils.isEmpty(processName)) {
+                processName = processName.trim();
+            }
+            return processName;
+        } catch (Throwable throwable) {
+            throwable.printStackTrace();
+        } finally {
+            try {
+                if (reader != null) {
+                    reader.close();
+                }
+            } catch (IOException exception) {
+                exception.printStackTrace();
+            }
+        }
+        return null;
+    }
+}

+ 43 - 0
baselibrary/src/main/java/com/webrain/baselibrary/utils/SharedPreferencesUtils.java

@@ -10,6 +10,8 @@ public class SharedPreferencesUtils {
 
     public static final String CAMERA_IMAGE_FILE = "camera_image_file";//照片路径
     public static final String USER_BEAN_JSON_DATA = "user_bean_json_data";//用户信息Json数据
+    public static final String COMPANY_BEAN_JSON_DATA = "company_bean_json_data";//企业信息Json数据
+    public static final String HISTORY_APP_VERSION = "history_app_version";//历史版本号
 
     public static void setCameraImageFile(Context context, String tag) {
         saveData(context, CAMERA_IMAGE_FILE, tag);
@@ -18,6 +20,7 @@ public class SharedPreferencesUtils {
     public static String getCameraImageFile(Context context) {
         return (String) getData(context, CAMERA_IMAGE_FILE, "");
     }
+
     public static void setUserBeanJsonData(Context context, String jsonData) {
         saveData(context, USER_BEAN_JSON_DATA, jsonData);
     }
@@ -26,6 +29,45 @@ public class SharedPreferencesUtils {
         return (String) getData(context, USER_BEAN_JSON_DATA, "");
     }
 
+    public static void setCompanyBeanJsonData(Context context, String jsonData) {
+        saveData(context, COMPANY_BEAN_JSON_DATA, jsonData);
+    }
+
+    public static String getCompanyBeanJsonData(Context context) {
+        return (String) getData(context, COMPANY_BEAN_JSON_DATA, "");
+    }
+
+    /**
+     * 设置登录版本号
+     *
+     * @param context
+     * @param jsonData
+     */
+    public static void setHistoryAppVersion(Context context, String jsonData) {
+        saveData(context, HISTORY_APP_VERSION, jsonData);
+    }
+
+    /**
+     * 获取登录版本号
+     *
+     * @param context
+     * @return
+     */
+    public static String getHistoryAppVersion(Context context) {
+        return (String) getData(context, HISTORY_APP_VERSION, "");
+    }
+
+    /**
+     * 判断是否该版本第一次登录
+     *
+     * @param context
+     * @return
+     */
+    public static boolean isHistoryFirstLogin(Context context) {
+        return !AppUtils.getVersionName(context).equals(getHistoryAppVersion(context));
+    }
+
+
     /**
      * 删除SharedPreferences文件中所有数据
      *
@@ -34,6 +76,7 @@ public class SharedPreferencesUtils {
     public static void clear(Context context) {
         remove(context, CAMERA_IMAGE_FILE);
         remove(context, USER_BEAN_JSON_DATA);
+        remove(context, COMPANY_BEAN_JSON_DATA);
     }
 
     /**