Explorar o código

1.完成用户统计页面

wsad5123 %!s(int64=5) %!d(string=hai) anos
pai
achega
184f3d17bd

+ 40 - 0
app/src/main/java/com/tongyu/luck/happywork/bean/ClockSettlementBean.java

@@ -0,0 +1,40 @@
+package com.tongyu.luck.happywork.bean;
+
+public class ClockSettlementBean {
+    String nextMoney;
+    String lackClock;
+    String countDuration;
+    String attendance;
+
+    public String getNextMoney() {
+        return nextMoney;
+    }
+
+    public void setNextMoney(String nextMoney) {
+        this.nextMoney = nextMoney;
+    }
+
+    public String getLackClock() {
+        return lackClock;
+    }
+
+    public void setLackClock(String lackClock) {
+        this.lackClock = lackClock;
+    }
+
+    public String getCountDuration() {
+        return countDuration;
+    }
+
+    public void setCountDuration(String countDuration) {
+        this.countDuration = countDuration;
+    }
+
+    public String getAttendance() {
+        return attendance;
+    }
+
+    public void setAttendance(String attendance) {
+        this.attendance = attendance;
+    }
+}

+ 15 - 0
app/src/main/java/com/tongyu/luck/happywork/bean/api/ApiClockSettlementBean.java

@@ -0,0 +1,15 @@
+package com.tongyu.luck.happywork.bean.api;
+
+import com.tongyu.luck.happywork.bean.ClockSettlementBean;
+
+public class ApiClockSettlementBean {
+    ClockSettlementBean currentSettlement;
+
+    public ClockSettlementBean getCurrentSettlement() {
+        return currentSettlement;
+    }
+
+    public void setCurrentSettlement(ClockSettlementBean currentSettlement) {
+        this.currentSettlement = currentSettlement;
+    }
+}

+ 3 - 2
app/src/main/java/com/tongyu/luck/happywork/http/Api.java

@@ -6,6 +6,7 @@ import com.tongyu.luck.happywork.bean.ClockInfoBean;
 import com.tongyu.luck.happywork.bean.ClockResultBean;
 import com.tongyu.luck.happywork.bean.api.ApiClockMonthClockDataBean;
 import com.tongyu.luck.happywork.bean.api.ApiClockMonthDataBean;
+import com.tongyu.luck.happywork.bean.api.ApiClockSettlementBean;
 import com.tongyu.luck.happywork.bean.api.ApiPayBean;
 import com.tongyu.luck.happywork.bean.api.ApiAllAssembleListBean;
 import com.tongyu.luck.happywork.bean.api.ApiApplyListBean;
@@ -488,11 +489,11 @@ public class Api {
 
         //周数据统计
         @GET("f/api/wsSettlement/weekSettlement")
-        Observable<ApiResultBean<ApiNormalBean>> getWeekSettlement(@QueryMap Map<String, Object> args);
+        Observable<ApiResultBean<ApiClockSettlementBean>> getWeekSettlement(@QueryMap Map<String, Object> args);
 
         //月数据统计
         @GET("f/api/wsSettlement/monthSettlement")
-        Observable<ApiResultBean<ApiNormalBean>> getMonthSettlement(@QueryMap Map<String, Object> args);
+        Observable<ApiResultBean<ApiClockSettlementBean>> getMonthSettlement(@QueryMap Map<String, Object> args);
 
     }
 

+ 5 - 4
app/src/main/java/com/tongyu/luck/happywork/http/subscribe/ClockSubscribe.java

@@ -7,6 +7,7 @@ import com.tongyu.luck.happywork.bean.ClockInfoBean;
 import com.tongyu.luck.happywork.bean.ClockResultBean;
 import com.tongyu.luck.happywork.bean.api.ApiClockMonthClockDataBean;
 import com.tongyu.luck.happywork.bean.api.ApiClockMonthDataBean;
+import com.tongyu.luck.happywork.bean.api.ApiClockSettlementBean;
 import com.tongyu.luck.happywork.bean.api.ApiNormalBean;
 import com.tongyu.luck.happywork.bean.api.ApiResultBean;
 import com.tongyu.luck.happywork.bean.api.ApiWalletBean;
@@ -85,9 +86,9 @@ public class ClockSubscribe extends BaseSubscribe {
      *
      * @param mObservable
      */
-    public void getWeekSettlement(Map<String, Object> params, ApiObserver<ApiNormalBean> mObservable) {
+    public void getWeekSettlement(Map<String, Object> params, ApiObserver<ApiClockSettlementBean> mObservable) {
         Api.ClockInterface apiService = ServiceGenerator.createService(Api.ClockInterface.class);
-        Observable<ApiResultBean<ApiNormalBean>> observable = apiService.getWeekSettlement(params);
+        Observable<ApiResultBean<ApiClockSettlementBean>> observable = apiService.getWeekSettlement(params);
         subscribe(observable, mObservable);
     }
 
@@ -96,9 +97,9 @@ public class ClockSubscribe extends BaseSubscribe {
      *
      * @param mObservable
      */
-    public void getMonthSettlement(Map<String, Object> params, ApiObserver<ApiNormalBean> mObservable) {
+    public void getMonthSettlement(Map<String, Object> params, ApiObserver<ApiClockSettlementBean> mObservable) {
         Api.ClockInterface apiService = ServiceGenerator.createService(Api.ClockInterface.class);
-        Observable<ApiResultBean<ApiNormalBean>> observable = apiService.getMonthSettlement(params);
+        Observable<ApiResultBean<ApiClockSettlementBean>> observable = apiService.getMonthSettlement(params);
         subscribe(observable, mObservable);
     }
 }

+ 1 - 1
app/src/main/java/com/tongyu/luck/happywork/ui/activity/cclient/clock/ClockMonthStatisticsActivity.java

@@ -182,7 +182,7 @@ public class ClockMonthStatisticsActivity extends BaseActivity<ClockMonthStatist
                 cvClockDate.scrollToNext(true);
                 break;
             case R.id.rl_month:
-                startActivity(new Intent(mContext, ClockUserStatisticsActivity.class));
+                mvpPresenter.goUserStatistics();
                 break;
         }
     }

+ 107 - 0
app/src/main/java/com/tongyu/luck/happywork/ui/activity/cclient/clock/ClockUserStatisticsActivity.java

@@ -1,17 +1,23 @@
 package com.tongyu.luck.happywork.ui.activity.cclient.clock;
 
 import android.os.Bundle;
+import android.text.TextUtils;
 import android.view.View;
 import android.widget.ImageView;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
 
+import com.tongyu.luck.happywork.AppCacheManager;
 import com.tongyu.luck.happywork.R;
+import com.tongyu.luck.happywork.baselibrary.AppConstant;
+import com.tongyu.luck.happywork.baselibrary.imageloader.ImageLoaderUtil;
+import com.tongyu.luck.happywork.bean.ClockSettlementBean;
 import com.tongyu.luck.happywork.ui.base.BaseActivity;
 import com.tongyu.luck.happywork.ui.mvp.cclient.contacts.ClockUserStatisticsContacts;
 import com.tongyu.luck.happywork.ui.mvp.cclient.presenter.ClockUserStatisticsPresenter;
 
 import butterknife.BindView;
+import butterknife.OnClick;
 
 public class ClockUserStatisticsActivity extends BaseActivity<ClockUserStatisticsPresenter> implements ClockUserStatisticsContacts.IClockUserStatisticsView {
     @BindView(R.id.iv_header)
@@ -71,5 +77,106 @@ public class ClockUserStatisticsActivity extends BaseActivity<ClockUserStatistic
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setTitle(R.string.statistics);
+        setLoadingVisible(true);
+        mvpPresenter.init();
     }
+
+    /**
+     * 显示用户信息
+     */
+    @Override
+    public void onUserData() {
+        setLoadingVisible(false);
+        setErrorVisible(false);
+        if (!TextUtils.isEmpty(AppCacheManager.getInstance().getLoginModel().getNickName())) {
+            tvName.setText(AppCacheManager.getInstance().getLoginModel().getNickName());
+        } else {
+            tvName.setText("开心用户");
+        }
+        ImageLoaderUtil.getInstance().loadCircleImage(AppCacheManager.getInstance().getLoginModel().getHeadImgUrl(), R.mipmap.ic_default_header, ivHeader);
+        if (AppConstant.APPROVE_SUCCESS.equals(AppCacheManager.getInstance().getMemberModel().getAuthenticationStatus())) {//已认证
+            vState.setBackgroundResource(R.mipmap.ic_clock_authentication_p);
+            tvState.setText("开心工作认证用户");
+            tvState.setTextColor(getResources().getColor(R.color.blue_01));
+        } else {
+            vState.setBackgroundResource(R.mipmap.ic_clock_authentication_n);
+            tvState.setText("认证信息审核中");
+            tvState.setTextColor(getResources().getColor(R.color.text_gray_99));
+        }
+
+    }
+
+    /**
+     * 回显周数据
+     *
+     * @param settlementBean
+     * @param title
+     */
+    @Override
+    public void onWeekSettlementData(ClockSettlementBean settlementBean, String title) {
+        tvWeek.setText(title);
+        tvRepayTotalWeek.setText((TextUtils.isEmpty(settlementBean.getNextMoney()) ? "0.0" : settlementBean.getNextMoney()) + " 元");
+        tvWorkHourTotalWeek.setText((TextUtils.isEmpty(settlementBean.getCountDuration()) ? "0" : settlementBean.getCountDuration()) + " 小时");
+        tvWorkDayWeek.setText((TextUtils.isEmpty(settlementBean.getAttendance()) ? "0" : settlementBean.getAttendance()) + " 天");
+        tvLossWeek.setText((TextUtils.isEmpty(settlementBean.getLackClock()) ? "0" : settlementBean.getLackClock()) + " 次");
+    }
+
+    /**
+     * 回显月数据
+     *
+     * @param settlementBean
+     * @param title
+     */
+    @Override
+    public void onMonthSettlementData(ClockSettlementBean settlementBean, String title) {
+        tvMonth.setText(title);
+        tvRepayTotalMonth.setText((TextUtils.isEmpty(settlementBean.getNextMoney()) ? "0.0" : settlementBean.getNextMoney()) + " 元");
+        tvWorkHourTotalMonth.setText((TextUtils.isEmpty(settlementBean.getCountDuration()) ? "0" : settlementBean.getCountDuration()) + " 小时");
+        tvWorkDayMonth.setText((TextUtils.isEmpty(settlementBean.getAttendance()) ? "0" : settlementBean.getAttendance()) + " 天");
+        tvLossMonth.setText((TextUtils.isEmpty(settlementBean.getLackClock()) ? "0" : settlementBean.getLackClock()) + " 次");
+    }
+
+
+    /**
+     * 网络错误
+     */
+    @Override
+    public void onError() {
+        setErrorVisible(true);
+        setOnRefreshClickListener(onRefreshClickListener);
+    }
+
+    /**
+     * 点击事件
+     *
+     * @param view
+     */
+    @OnClick({R.id.rl_left_month, R.id.rl_right_month, R.id.rl_left_week, R.id.rl_right_week})
+    public void onClick(View view) {
+        switch (view.getId()) {
+            case R.id.rl_left_month:
+                mvpPresenter.goPreMonth();
+                break;
+            case R.id.rl_right_month:
+                mvpPresenter.goNextMonth();
+                break;
+            case R.id.rl_left_week:
+                mvpPresenter.goPreWeek();
+                break;
+            case R.id.rl_right_week:
+                mvpPresenter.goNextWeek();
+                break;
+        }
+    }
+
+    /**
+     * 错误页面刷新按钮
+     */
+    View.OnClickListener onRefreshClickListener = new View.OnClickListener() {
+        @Override
+        public void onClick(View v) {
+            setLoadingVisible(true);
+            mvpPresenter.init();
+        }
+    };
 }

+ 4 - 0
app/src/main/java/com/tongyu/luck/happywork/ui/mvp/cclient/contacts/ClockMonthStatisticsContacts.java

@@ -36,6 +36,8 @@ public class ClockMonthStatisticsContacts {
         int getNowDateShowMonth();
 
         void setNowDateShowMonth(int nowDateShowMonth);
+
+        void goUserStatistics();
     }
 
     public interface IClockMonthStatisticsModel {
@@ -48,6 +50,8 @@ public class ClockMonthStatisticsContacts {
 
         List<ClockMonthClockDataBean> getMonthClockData(boolean isLastMonth);
 
+        ClockMonthDataBean getClockMonthData();
+
         boolean isLastMonth(int month);
 
         int getNowDateShowMonth();

+ 38 - 0
app/src/main/java/com/tongyu/luck/happywork/ui/mvp/cclient/contacts/ClockUserStatisticsContacts.java

@@ -1,15 +1,53 @@
 package com.tongyu.luck.happywork.ui.mvp.cclient.contacts;
 
+import com.tongyu.luck.happywork.bean.ClockSettlementBean;
+import com.tongyu.luck.happywork.callback.MvpDataCallBack;
 import com.tongyu.luck.happywork.ui.base.IPresenter;
 import com.tongyu.luck.happywork.ui.base.IView;
 
 public class ClockUserStatisticsContacts {
     public interface IClockUserStatisticsView extends IView {
+        void onUserData();
+
+        void onWeekSettlementData(ClockSettlementBean settlementBean, String title);
+
+        void onMonthSettlementData(ClockSettlementBean settlementBean, String title);
+
+        void onError();
     }
 
     public interface IClockUserStatisticsPresenter extends IPresenter {
+        void init();
+
+        void getHttpUserBean();
+
+        void getWeekSettlement(boolean isLastWeek, boolean isInit);
+
+        void getMonthSettlement(boolean isLastWeek, boolean isInit);
+
+        void goPreWeek();
+
+        void goNextWeek();
+
+        void goPreMonth();
+
+        void goNextMonth();
+
     }
 
     public interface IClockUserStatisticsModel {
+        void getHttpUserBean(MvpDataCallBack<Boolean> callBack);
+
+        void getHttpWeekSettlement(MvpDataCallBack<ClockSettlementBean> callBack, boolean isLastWeek, boolean isInit);
+
+        void getHttpMonthSettlement(MvpDataCallBack<ClockSettlementBean> callBack, boolean isLastMonth, boolean isInit);
+
+        ClockSettlementBean getWeekSettlement(boolean isLastWeek);
+
+        ClockSettlementBean getMonthSettlement(boolean isLastMonth);
+
+        String getWeekTitle(boolean isLastWeek);
+
+        String getMonthTitle(boolean isLastMonth);
     }
 }

+ 9 - 1
app/src/main/java/com/tongyu/luck/happywork/ui/mvp/cclient/model/ClockMonthStatisticsModel.java

@@ -7,7 +7,6 @@ import com.tongyu.luck.happywork.bean.ClockMonthClockDataBean;
 import com.tongyu.luck.happywork.bean.ClockMonthDataBean;
 import com.tongyu.luck.happywork.bean.api.ApiClockMonthClockDataBean;
 import com.tongyu.luck.happywork.bean.api.ApiClockMonthDataBean;
-import com.tongyu.luck.happywork.bean.api.ApiNormalBean;
 import com.tongyu.luck.happywork.callback.MvpDataCallBack;
 import com.tongyu.luck.happywork.http.ApiObserver;
 import com.tongyu.luck.happywork.http.RetrofitHttpParams;
@@ -116,6 +115,15 @@ public class ClockMonthStatisticsModel extends BaseModel implements ClockMonthSt
     }
 
     /**
+     * 获取月汇总信息
+     * @return
+     */
+    @Override
+    public ClockMonthDataBean getClockMonthData() {
+        return dataBean;
+    }
+
+    /**
      * 是否为上月
      *
      * @param month

+ 203 - 1
app/src/main/java/com/tongyu/luck/happywork/ui/mvp/cclient/model/ClockUserStatisticsModel.java

@@ -1,6 +1,208 @@
 package com.tongyu.luck.happywork.ui.mvp.cclient.model;
 
+import android.content.Context;
+import android.text.TextUtils;
+import android.widget.TextView;
+
+import com.tongyu.luck.happywork.AppCacheManager;
+import com.tongyu.luck.happywork.baselibrary.IntentConstant;
+import com.tongyu.luck.happywork.baselibrary.utils.DateUtils;
+import com.tongyu.luck.happywork.baselibrary.utils.SharedPreferencesUtils;
+import com.tongyu.luck.happywork.bean.ClockSettlementBean;
+import com.tongyu.luck.happywork.bean.api.ApiClockSettlementBean;
+import com.tongyu.luck.happywork.bean.api.ApiLoginBean;
+import com.tongyu.luck.happywork.callback.MvpDataCallBack;
+import com.tongyu.luck.happywork.http.ApiObserver;
+import com.tongyu.luck.happywork.http.RetrofitHttpParams;
+import com.tongyu.luck.happywork.http.exception.ApiException;
+import com.tongyu.luck.happywork.http.subscribe.ClockSubscribe;
+import com.tongyu.luck.happywork.http.subscribe.LoginSubscribe;
+import com.tongyu.luck.happywork.ui.activity.cclient.clock.ClockUserStatisticsActivity;
+import com.tongyu.luck.happywork.ui.base.BaseModel;
 import com.tongyu.luck.happywork.ui.mvp.cclient.contacts.ClockUserStatisticsContacts;
 
-public class ClockUserStatisticsModel implements ClockUserStatisticsContacts.IClockUserStatisticsModel {
+public class ClockUserStatisticsModel extends BaseModel implements ClockUserStatisticsContacts.IClockUserStatisticsModel {
+    ClockSettlementBean monthBean;
+    ClockSettlementBean lastMonthBean;
+    ClockSettlementBean weekBean;
+    ClockSettlementBean lastWeekBean;
+
+    boolean isShowLastMonth;
+    boolean isShowLastWeek;
+
+    String monthData;
+
+
+    public ClockUserStatisticsModel(Context mContext) {
+        super(mContext);
+    }
+
+    /**
+     * 获取服务端用户数据
+     *
+     * @param callBack
+     */
+    @Override
+    public void getHttpUserBean(final MvpDataCallBack<Boolean> callBack) {
+        RetrofitHttpParams params = new RetrofitHttpParams(mContext);
+        if (!SharedPreferencesUtils.isWeChatLogin(mContext))//非微信登录传1
+            params.put("login_type", "1");
+        new LoginSubscribe(mContext).requestUserInfoNew(params.getRequestParams(), new ApiObserver<ApiLoginBean>(mContext) {
+            @Override
+            public void onSuccess(ApiLoginBean data) {
+                if (data != null) {
+                    AppCacheManager.getInstance().setLoginModel(data.getHpUser());
+                    AppCacheManager.getInstance().setMemberModel(data.getHpMember());
+                    callBack.onData(true);
+                }
+            }
+
+            @Override
+            public void onError(ApiLoginBean data, ApiException exception) {
+                super.onError(data, exception);
+                callBack.onError(exception);
+            }
+
+            @Override
+            public void onFinish() {
+            }
+        });
+    }
+
+    /**
+     * 获取周数据
+     *
+     * @param callBack
+     * @param isLastWeek
+     */
+    @Override
+    public void getHttpWeekSettlement(final MvpDataCallBack<ClockSettlementBean> callBack, final boolean isLastWeek, boolean isInit) {
+        RetrofitHttpParams params = new RetrofitHttpParams(mContext);
+        params.put("week_type", isLastWeek ? 2 : 1);
+        new ClockSubscribe(mContext).getWeekSettlement(params.getRequestParams(), new ApiObserver<ApiClockSettlementBean>(mContext, !isInit) {
+            @Override
+            public void onSuccess(ApiClockSettlementBean data) {
+                if (data != null && data.getCurrentSettlement() != null) {
+                    if (isLastWeek)
+                        lastWeekBean = data.getCurrentSettlement();
+                    else
+                        weekBean = data.getCurrentSettlement();
+                    callBack.onData(data.getCurrentSettlement());
+                }
+            }
+
+            @Override
+            public void onFinish() {
+            }
+        });
+    }
+
+    /**
+     * 获取月数据
+     *
+     * @param callBack
+     * @param isLastMonth
+     */
+    @Override
+    public void getHttpMonthSettlement(final MvpDataCallBack<ClockSettlementBean> callBack, final boolean isLastMonth, boolean isInit) {
+        RetrofitHttpParams params = new RetrofitHttpParams(mContext);
+        params.put("month_type", isLastMonth ? 2 : 1);
+        new ClockSubscribe(mContext).getMonthSettlement(params.getRequestParams(), new ApiObserver<ApiClockSettlementBean>(mContext, !isInit) {
+            @Override
+            public void onSuccess(ApiClockSettlementBean data) {
+                if (data != null && data.getCurrentSettlement() != null) {
+                    if (isLastMonth)
+                        lastMonthBean = data.getCurrentSettlement();
+                    else
+                        monthBean = data.getCurrentSettlement();
+                    callBack.onData(data.getCurrentSettlement());
+                }
+            }
+
+            @Override
+            public void onFinish() {
+            }
+        });
+    }
+
+    /**
+     * 获取本地的周数据
+     *
+     * @param isLastWeek
+     * @return
+     */
+    @Override
+    public ClockSettlementBean getWeekSettlement(boolean isLastWeek) {
+        return isLastWeek ? lastWeekBean : weekBean;
+    }
+
+    /**
+     * 获取本地的月数据
+     *
+     * @param isLastMonth
+     * @return
+     */
+    @Override
+    public ClockSettlementBean getMonthSettlement(boolean isLastMonth) {
+        return isLastMonth ? lastMonthBean : monthBean;
+    }
+
+    /**
+     * 获取周标题显示
+     *
+     * @param isLastWeek
+     * @return
+     */
+    @Override
+    public String getWeekTitle(boolean isLastWeek) {
+        return isLastWeek ? "上周" : "本周";
+    }
+
+    /**
+     * 获取月标题显示
+     *
+     * @param isLastMonth
+     * @return
+     */
+    @Override
+    public String getMonthTitle(boolean isLastMonth) {
+        if (TextUtils.isEmpty(monthData)) {
+            monthData = ((ClockUserStatisticsActivity) mContext).getIntent().getStringExtra(IntentConstant.CONTENT);
+        }
+        if (!TextUtils.isEmpty(monthData)) {
+            if (isLastMonth) {
+                return DateUtils.getLastMonthStr(monthData);
+            } else {
+                return DateUtils.getFormatYMDStrToStr(monthData, "yyyy-MM");
+            }
+        }
+        return "";
+    }
+
+
+    /**
+     * 判斷是否展示上月数据
+     *
+     * @return
+     */
+    public boolean isShowLastMonth() {
+        return isShowLastMonth;
+    }
+
+    public void setShowLastMonth(boolean showLastMonth) {
+        isShowLastMonth = showLastMonth;
+    }
+
+    /**
+     * 判斷是否展示上周数据
+     *
+     * @return
+     */
+    public boolean isShowLastWeek() {
+        return isShowLastWeek;
+    }
+
+    public void setShowLastWeek(boolean showLastWeek) {
+        isShowLastWeek = showLastWeek;
+    }
 }

+ 21 - 0
app/src/main/java/com/tongyu/luck/happywork/ui/mvp/cclient/presenter/ClockMonthStatisticsPresenter.java

@@ -1,11 +1,16 @@
 package com.tongyu.luck.happywork.ui.mvp.cclient.presenter;
 
+import android.content.Intent;
+import android.text.TextUtils;
+
+import com.tongyu.luck.happywork.baselibrary.IntentConstant;
 import com.tongyu.luck.happywork.bean.ClockDayDataBean;
 import com.tongyu.luck.happywork.bean.ClockMonthClockDataBean;
 import com.tongyu.luck.happywork.bean.ClockMonthDataBean;
 import com.tongyu.luck.happywork.callback.MvpDataCallBack;
 import com.tongyu.luck.happywork.http.exception.ApiException;
 import com.tongyu.luck.happywork.ui.activity.cclient.clock.ClockMonthStatisticsActivity;
+import com.tongyu.luck.happywork.ui.activity.cclient.clock.ClockUserStatisticsActivity;
 import com.tongyu.luck.happywork.ui.base.BasePresenter;
 import com.tongyu.luck.happywork.ui.mvp.cclient.contacts.ClockMonthStatisticsContacts;
 import com.tongyu.luck.happywork.ui.mvp.cclient.model.ClockMonthStatisticsModel;
@@ -92,6 +97,20 @@ public class ClockMonthStatisticsPresenter extends BasePresenter<ClockMonthStati
     }
 
     /**
+     * 前往用户汇总界面
+     */
+    @Override
+    public void goUserStatistics() {
+        if (isViewAttach()) {
+            if (mClockMonthStatisticsModel.getClockMonthData() != null && !TextUtils.isEmpty(mClockMonthStatisticsModel.getClockMonthData().getDate())) {
+                Intent intent = new Intent(mvpReference.get(), ClockUserStatisticsActivity.class);
+                intent.putExtra(IntentConstant.CONTENT, mClockMonthStatisticsModel.getClockMonthData().getDate());
+                mvpReference.get().startActivity(intent);
+            }
+        }
+    }
+
+    /**
      * 是否为上个月
      *
      * @param month
@@ -116,4 +135,6 @@ public class ClockMonthStatisticsPresenter extends BasePresenter<ClockMonthStati
     public void setNowDateShowMonth(int nowDateShowMonth) {
         mClockMonthStatisticsModel.setNowDateShowMonth(nowDateShowMonth);
     }
+
+
 }

+ 124 - 1
app/src/main/java/com/tongyu/luck/happywork/ui/mvp/cclient/presenter/ClockUserStatisticsPresenter.java

@@ -1,5 +1,8 @@
 package com.tongyu.luck.happywork.ui.mvp.cclient.presenter;
 
+import com.tongyu.luck.happywork.bean.ClockSettlementBean;
+import com.tongyu.luck.happywork.callback.MvpDataCallBack;
+import com.tongyu.luck.happywork.http.exception.ApiException;
 import com.tongyu.luck.happywork.ui.activity.cclient.clock.ClockUserStatisticsActivity;
 import com.tongyu.luck.happywork.ui.base.BasePresenter;
 import com.tongyu.luck.happywork.ui.mvp.cclient.contacts.ClockUserStatisticsContacts;
@@ -10,7 +13,127 @@ public class ClockUserStatisticsPresenter extends BasePresenter<ClockUserStatist
 
     public ClockUserStatisticsPresenter(ClockUserStatisticsActivity view) {
         super(view);
-        this.mClockUserStatisticsModel = new ClockUserStatisticsModel();
+        this.mClockUserStatisticsModel = new ClockUserStatisticsModel(mvpReference.get());
     }
 
+    @Override
+    public void init() {
+        getHttpUserBean();
+        getWeekSettlement(false, true);
+        getMonthSettlement(false, true);
+    }
+
+    /**
+     * 从服务器获取用户信息
+     */
+    @Override
+    public void getHttpUserBean() {
+        if (isViewAttach())
+            mClockUserStatisticsModel.getHttpUserBean(new MvpDataCallBack<Boolean>() {
+                @Override
+                public void onData(Boolean data) {
+                    if (isViewAttach()) {
+                        mvpReference.get().onUserData();
+                    }
+                }
+
+                @Override
+                public void onError(ApiException exception) {
+                    super.onError(exception);
+                    mvpReference.get().onError();
+                }
+            });
+    }
+
+    /**
+     * 获取周数据
+     */
+    @Override
+    public void getWeekSettlement(final boolean isLastWeek, boolean isInit) {
+        if (isViewAttach()) {
+            if (mClockUserStatisticsModel.getWeekSettlement(isLastWeek) != null) {//本地存在获取本地
+                mvpReference.get().onWeekSettlementData(mClockUserStatisticsModel.getWeekSettlement(isLastWeek), mClockUserStatisticsModel.getWeekTitle(isLastWeek));
+            } else {//本地不存在获取网络
+                mClockUserStatisticsModel.getHttpWeekSettlement(new MvpDataCallBack<ClockSettlementBean>() {
+                    @Override
+                    public void onData(ClockSettlementBean data) {
+                        if (isViewAttach())
+                            mvpReference.get().onWeekSettlementData(data, mClockUserStatisticsModel.getWeekTitle(isLastWeek));
+                    }
+                }, isLastWeek, isInit);
+            }
+        }
+    }
+
+    /**
+     * 获取月数据
+     */
+    @Override
+    public void getMonthSettlement(final boolean isLastMonth, boolean isInit) {
+        if (isViewAttach()) {
+            if (mClockUserStatisticsModel.getMonthSettlement(isLastMonth) != null) {//本地存在获取本地
+                mvpReference.get().onMonthSettlementData(mClockUserStatisticsModel.getMonthSettlement(isLastMonth), mClockUserStatisticsModel.getMonthTitle(isLastMonth));
+            } else {//本地不存在获取网络
+                mClockUserStatisticsModel.getHttpMonthSettlement(new MvpDataCallBack<ClockSettlementBean>() {
+                    @Override
+                    public void onData(ClockSettlementBean data) {
+                        if (isViewAttach())
+                            mvpReference.get().onMonthSettlementData(data, mClockUserStatisticsModel.getMonthTitle(isLastMonth));
+                    }
+                }, isLastMonth, isInit);
+            }
+        }
+    }
+
+    /**
+     * 上一周
+     */
+    @Override
+    public void goPreWeek() {
+        if (isViewAttach()) {
+            if (!mClockUserStatisticsModel.isShowLastWeek()) {
+                mClockUserStatisticsModel.setShowLastWeek(true);
+                getWeekSettlement(true, false);
+            }
+        }
+    }
+
+    /**
+     * 下一周
+     */
+    @Override
+    public void goNextWeek() {
+        if (isViewAttach()) {
+            if (mClockUserStatisticsModel.isShowLastWeek()) {
+                mClockUserStatisticsModel.setShowLastWeek(false);
+                getWeekSettlement(false, false);
+            }
+        }
+    }
+
+    /**
+     * 上个月
+     */
+    @Override
+    public void goPreMonth() {
+        if (isViewAttach()) {
+            if (!mClockUserStatisticsModel.isShowLastMonth()) {
+                mClockUserStatisticsModel.setShowLastMonth(true);
+                getMonthSettlement(true, false);
+            }
+        }
+    }
+
+    /**
+     * 下个月
+     */
+    @Override
+    public void goNextMonth() {
+        if (isViewAttach()) {
+            if (mClockUserStatisticsModel.isShowLastMonth()) {
+                mClockUserStatisticsModel.setShowLastMonth(false);
+                getMonthSettlement(false, false);
+            }
+        }
+    }
 }

+ 7 - 5
app/src/main/res/layout/activity_clock_user_statistics.xml

@@ -45,7 +45,6 @@
                 android:layout_alignTop="@id/rl_header"
                 android:layout_marginTop="5dp"
                 android:layout_toRightOf="@id/rl_header"
-                android:text="铁锤"
                 android:textColor="@color/text_black_33"
                 android:textSize="@dimen/px54_18sp"
                 android:textStyle="bold" />
@@ -56,7 +55,6 @@
                 android:layout_height="wrap_content"
                 android:layout_below="@id/tv_name"
                 android:layout_toRightOf="@id/rl_header"
-                android:text="认证审核中"
                 android:textColor="@color/text_gray_99"
                 android:textSize="@dimen/px39_13sp"
                 android:textStyle="bold" />
@@ -104,7 +102,7 @@
                 android:layout_width="70dp"
                 android:layout_height="match_parent"
                 android:gravity="center"
-                android:text="本月"
+                android:text="2020-09"
                 android:textColor="@color/text_black"
                 android:textSize="@dimen/px42_14sp" />
 
@@ -225,6 +223,7 @@
             android:layout_height="56dp"
             android:background="@color/white"
             android:paddingLeft="15dp"
+            android:visibility="gone"
             android:paddingRight="15dp">
 
             <TextView
@@ -248,6 +247,7 @@
 
         <View
             android:layout_width="match_parent"
+            android:visibility="gone"
             android:layout_height="1dp"
             android:background="@color/view_line_color_gray" />
 
@@ -316,10 +316,10 @@
 
             <TextView
                 android:id="@+id/tv_week"
-                android:layout_width="113dp"
+                android:layout_width="70dp"
                 android:layout_height="match_parent"
                 android:gravity="center"
-                android:text="08.10 - 08.16"
+                android:text="本周"
                 android:textColor="@color/text_black"
                 android:textSize="@dimen/px42_14sp" />
 
@@ -439,6 +439,7 @@
             android:layout_width="match_parent"
             android:layout_height="56dp"
             android:background="@color/white"
+            android:visibility="gone"
             android:paddingLeft="15dp"
             android:paddingRight="15dp">
 
@@ -464,6 +465,7 @@
         <View
             android:layout_width="match_parent"
             android:layout_height="1dp"
+            android:visibility="gone"
             android:background="@color/view_line_color_gray" />
 
         <RelativeLayout

+ 20 - 0
baselibrary/src/main/java/com/tongyu/luck/happywork/baselibrary/utils/DateUtils.java

@@ -7,6 +7,7 @@ import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.Date;
+import java.util.TimeZone;
 
 public class DateUtils {
     public static String getFormatDateFileName() {
@@ -277,6 +278,25 @@ public class DateUtils {
     }
 
     /**
+     * 获取上个月日期
+     *
+     * @param dateStr
+     * @return
+     */
+    public static String getLastMonthStr(String dateStr) {
+        Date date = getFormatToDate(dateStr);
+        if (date != null) {
+            Calendar cal = Calendar.getInstance();
+            cal.setTime(date);
+            cal.add(Calendar.MONTH, -1);
+            Date date2 = cal.getTime();
+            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
+            return format.format(date2);
+        }
+        return "";
+    }
+
+    /**
      * 将yyyy-MM-dd转化为Date
      *
      * @param dateStr