Просмотр исходного кода

新手任务等接口调试成功,还差任务进度

zengjiebin лет назад: 8
Родитель
Сommit
d156417544

+ 4 - 0
app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java

@@ -253,6 +253,8 @@ public interface ApiService {
 
     @GET("app/newbie_task")
     Observable<BaseMessage> getNewbieTask();
+    @PUT("app/newbie_task")
+    Observable<BaseMessage> putNewbieTask(@Body JSONObject jsonObject);
     @POST("app/newbie_task/learn_finish")
     Observable<BaseMessage> appNewbieTaskLearnFinish();
 
@@ -264,6 +266,8 @@ public interface ApiService {
     Observable<BaseMessage> releaseTaskCreditCard(@Body JSONObject jsonObject);
     @PUT("app/release_task/{id}/credit_card")
     Observable<BaseMessage> releaseTaskCreditCard(@Path("id") int id, @Body JSONObject jsonObject);
+    @GET("app/release_task/{id}/desc")
+    Observable<BaseMessage> getReleaseTaskCreditCardDesc(@Path("id") int id);
 
     /**
      * 首页轮播图

+ 26 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/Ext.java

@@ -0,0 +1,26 @@
+package com.sheep.gamegroup.model.entity;
+
+/**
+ * Created by realicing on 2018/4/26.
+ * realicing@sina.com
+ */
+public class Ext {
+    private int id;
+    private String query_url;
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public String getQuery_url() {
+        return query_url;
+    }
+
+    public void setQuery_url(String query_url) {
+        this.query_url = query_url;
+    }
+}

+ 25 - 5
app/src/main/java/com/sheep/gamegroup/model/entity/NewbieTask.java

@@ -9,7 +9,7 @@ import java.io.Serializable;
 public class NewbieTask implements Serializable{
     private double amount;
 
-    private boolean finished;
+    private int status;//0 初始状态 1 提交审核 2 成功 3审核失败
 
     private int id;
 
@@ -21,18 +21,31 @@ public class NewbieTask implements Serializable{
 
     private int create_time;
 
+    private int user_task_id;
+
     public void setAmount(double amount){
         this.amount = amount;
     }
     public double getAmount(){
         return this.amount;
     }
-    public void setFinished(boolean finished){
-        this.finished = finished;
+
+    public int getStatus() {
+        return status;
+    }
+
+    public void setStatus(int status) {
+        this.status = status;
     }
-    public boolean getFinished(){
-        return this.finished;
+
+    public int getUser_task_id() {
+        return user_task_id;
     }
+
+    public void setUser_task_id(int user_task_id) {
+        this.user_task_id = user_task_id;
+    }
+
     public void setId(int id){
         this.id = id;
     }
@@ -64,4 +77,11 @@ public class NewbieTask implements Serializable{
         return this.create_time;
     }
 
+    public boolean getFinished() {
+        return status == 2;
+    }
+
+    public boolean getEnabled() {
+        return status == 0 || status == 3 ;
+    }
 }

+ 3 - 3
app/src/main/java/com/sheep/gamegroup/model/entity/TaskEty.java

@@ -25,7 +25,7 @@ public class TaskEty implements Serializable{
     private int acceptedTaskId;//接受任务id
     private String bonus;// 0,
     private String desc;// 任务详情介绍
-    private int ext;// 对应的信用卡配置的id
+    private String ext;// 对应的信用卡配置的id
 
     public int getAcceptedTaskId() {
         return acceptedTaskId;
@@ -183,11 +183,11 @@ public class TaskEty implements Serializable{
         this.update_time = update_time;
     }
 
-    public int getExt() {
+    public String getExt() {
         return ext;
     }
 
-    public void setExt(int ext) {
+    public void setExt(String ext) {
         this.ext = ext;
     }
 }

+ 9 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/TaskReleaseEty.java

@@ -27,11 +27,20 @@ public class TaskReleaseEty implements Serializable{
 
     private int is_hot;// 0,
     private int is_recommend;// 0,
+    private int accepted_task_id;// 0,
 
     private TaskEty task;
 
     private int cancel_duration;
 
+    public int getAccepted_task_id() {
+        return accepted_task_id;
+    }
+
+    public void setAccepted_task_id(int accepted_task_id) {
+        this.accepted_task_id = accepted_task_id;
+    }
+
     public int getIs_hot() {
         return is_hot;
     }

+ 21 - 1
app/src/main/java/com/sheep/gamegroup/view/activity/ActCreditCardTaskList.java

@@ -9,6 +9,7 @@ import com.kfzs.duanduan.fragment.FgtCreditCardProgressQuery;
 import com.kfzs.duanduan.fragment.FgtCreditCardTaskList;
 import com.kfzs.duanduan.mine.GiftpackListAdapter;
 import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.base.AbsChooseImageActivity;
 import com.sheep.jiuyan.samllsheep.base.BaseActivity;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
@@ -21,7 +22,7 @@ import butterknife.BindView;
  * Created by realicing on 2018/4/24.
  */
 
-public class ActCreditCardTaskList extends BaseActivity {
+public class ActCreditCardTaskList extends AbsChooseImageActivity {
 
 
     @BindView(R.id.indicator)
@@ -59,4 +60,23 @@ public class ActCreditCardTaskList extends BaseActivity {
 
     }
 
+    @Override
+    protected void onNotGetImage(String msg) {
+
+    }
+
+    @Override
+    protected void onGetImage(String path) {
+
+    }
+
+    @Override
+    protected void onSetNetImageUrl(String url) {
+
+    }
+
+    @Override
+    protected void onGetNetImageUrl(String url) {
+
+    }
 }

+ 48 - 53
app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailAddQQAct.java

@@ -1,12 +1,8 @@
 package com.sheep.gamegroup.view.activity;
 
 import android.app.Activity;
-import android.content.Intent;
-import android.database.Cursor;
-import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
-import android.provider.MediaStore;
 import android.support.annotation.RequiresApi;
 import android.text.TextUtils;
 import android.view.View;
@@ -14,50 +10,25 @@ import android.webkit.WebChromeClient;
 import android.webkit.WebResourceRequest;
 import android.webkit.WebView;
 import android.webkit.WebViewClient;
-import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.bumptech.glide.Glide;
-import com.bumptech.glide.request.RequestOptions;
-import com.kfzs.appstore.utils.string.HexUtils;
-import com.kfzs.duanduan.datashare.DDProviderHelper;
-import com.kfzs.duanduan.datashare.provider.download.DownLoadInfo;
-import com.kfzs.duanduan.event.BigEvent;
-import com.kfzs.duanduan.event.EventTypes;
-import com.kfzs.duanduan.react.upfile.UpFileListener;
-import com.kfzs.duanduan.react.upfile.UpFileUtils;
-import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.model.entity.BaseMessage;
-import com.sheep.gamegroup.model.entity.CreditCard;
 import com.sheep.gamegroup.model.entity.NewbieTask;
-import com.sheep.gamegroup.model.entity.TaskEty;
-import com.sheep.gamegroup.model.entity.UploadResult;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.util.Jump2View;
-import com.sheep.gamegroup.util.TimeUtil;
 import com.sheep.gamegroup.util.UMConfigUtils;
-import com.sheep.gamegroup.view.dialog.DialogShowLoading;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.base.AbsChooseImageActivity;
-import com.sheep.jiuyan.samllsheep.page.WebActivity;
 import com.sheep.jiuyan.samllsheep.utils.G;
-import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
 import com.sheep.jiuyan.samllsheep.utils.TitleBarUtils;
 
-import org.greenrobot.eventbus.EventBus;
-
-import java.io.File;
-
 import butterknife.BindView;
 import butterknife.ButterKnife;
 import butterknife.OnClick;
-import go.kfzssafe.Kfzssafe;
-import me.iwf.photopicker.PhotoPicker;
 import rx.android.schedulers.AndroidSchedulers;
 import rx.schedulers.Schedulers;
 
@@ -94,7 +65,7 @@ public class TaskDetailAddQQAct extends AbsChooseImageActivity {
     LinearLayout bottom_btn_layout;
     private Activity activity;
 
-    private NewbieTask taskEty;
+    private NewbieTask newbieTask;
 
     @Override
     protected int getLayoutId() {
@@ -104,7 +75,7 @@ public class TaskDetailAddQQAct extends AbsChooseImageActivity {
     @Override
     public void initView() {
         activity = this;
-        taskEty = (NewbieTask) getIntent().getSerializableExtra("task_entity");
+        newbieTask = (NewbieTask) getIntent().getSerializableExtra("task_entity");
         TitleBarUtils.getInstance()
                 .setTitle(activity, "加入官方QQ群任务详情")
                 .setTitleFinish(activity);
@@ -119,7 +90,7 @@ public class TaskDetailAddQQAct extends AbsChooseImageActivity {
 
     @Override
     public void initData() {
-        if(taskEty == null){
+        if(newbieTask == null){
             G.showToast("网络异常,请稍候再试");
 //            finish();
             return;
@@ -148,7 +119,7 @@ public class TaskDetailAddQQAct extends AbsChooseImageActivity {
                 "initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes\" />"+
                 "<style>img{max-width:100% !important;height:auto !important;}</style>"
                 +"<style>body{max-width:100% !important;}</style>"+"</head><body>";
-        webText.loadDataWithBaseURL(null,sHead + taskEty.getDesc() + "</body></html>", "text/html", "utf-8", null);
+        webText.loadDataWithBaseURL(null,sHead + newbieTask.getDesc() + "</body></html>", "text/html", "utf-8", null);
 
 
         detailTaskTv.setVisibility(View.INVISIBLE);
@@ -192,26 +163,50 @@ public class TaskDetailAddQQAct extends AbsChooseImageActivity {
         setLoaddingText("更新中");
         JSONObject jsonObject = new JSONObject();
         jsonObject.put("ext", url);
-        SheepApp.getInstance().getNetComponent().getApiService().newbieTaskAddQq(jsonObject)
-                        .subscribeOn(Schedulers.io())
-                        .observeOn(AndroidSchedulers.mainThread())
-                        .subscribe(new SheepSubscriber<BaseMessage>(getApplicationContext()) {
-                            @Override
-                            public void onNext(BaseMessage baseMessage) {
-                                if(BuildConfig.DEBUG)
-                                    System.out.println("baseMessage onNext "+JSON.toJSONString(baseMessage));
-                                setLoaddingText("完成");
-                                onGetNetImageUrl(url);
-                                dismissLoaddingDialog();
-                            }
-
-                            @Override
-                            public void onError(BaseMessage baseMessage) {
-                                if(BuildConfig.DEBUG)
-                                    System.out.println("baseMessage onError "+JSON.toJSONString(baseMessage));
-                                updateError(TextUtils.isEmpty(baseMessage.getMsg()) ? "服务器错误,请稍候再试" : baseMessage.getMsg());
-                            }
-                        });
+        if(newbieTask.getUser_task_id() == 0) {//第一次提交
+            SheepApp.getInstance().getNetComponent().getApiService().newbieTaskAddQq(jsonObject)
+                    .subscribeOn(Schedulers.io())
+                    .observeOn(AndroidSchedulers.mainThread())
+                    .subscribe(new SheepSubscriber<BaseMessage>(getApplicationContext()) {
+                        @Override
+                        public void onNext(BaseMessage baseMessage) {
+                            if (BuildConfig.DEBUG)
+                                System.out.println("baseMessage onNext " + JSON.toJSONString(baseMessage));
+                            setLoaddingText("完成");
+                            onGetNetImageUrl(url);
+                            dismissLoaddingDialog();
+                        }
+
+                        @Override
+                        public void onError(BaseMessage baseMessage) {
+                            if (BuildConfig.DEBUG)
+                                System.out.println("baseMessage onError " + JSON.toJSONString(baseMessage));
+                            updateError(TextUtils.isEmpty(baseMessage.getMsg()) ? "服务器错误,请稍候再试" : baseMessage.getMsg());
+                        }
+                    });
+        } else {//第一次提交已经失败,第二次提交接口不一样。。。。。。
+            jsonObject.put("id", newbieTask.getUser_task_id());
+            SheepApp.getInstance().getNetComponent().getApiService().putNewbieTask(jsonObject)
+                    .subscribeOn(Schedulers.io())
+                    .observeOn(AndroidSchedulers.mainThread())
+                    .subscribe(new SheepSubscriber<BaseMessage>(getApplicationContext()) {
+                        @Override
+                        public void onNext(BaseMessage baseMessage) {
+                            if (BuildConfig.DEBUG)
+                                System.out.println("baseMessage onNext " + JSON.toJSONString(baseMessage));
+                            setLoaddingText("完成");
+                            onGetNetImageUrl(url);
+                            dismissLoaddingDialog();
+                        }
+
+                        @Override
+                        public void onError(BaseMessage baseMessage) {
+                            if (BuildConfig.DEBUG)
+                                System.out.println("baseMessage onError " + JSON.toJSONString(baseMessage));
+                            updateError(TextUtils.isEmpty(baseMessage.getMsg()) ? "服务器错误,请稍候再试" : baseMessage.getMsg());
+                        }
+                    });
+        }
     }
 
     @Override

+ 53 - 21
app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailCreditCardAct.java

@@ -34,8 +34,10 @@ import com.sheep.gamegroup.di.components.DaggerTaskDetailComponent;
 import com.sheep.gamegroup.di.modules.TaskDetailModule;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.CreditCard;
+import com.sheep.gamegroup.model.entity.Ext;
 import com.sheep.gamegroup.model.entity.TaskAcceptedEty;
 import com.sheep.gamegroup.model.entity.TaskEty;
+import com.sheep.gamegroup.model.entity.TaskReleaseEty;
 import com.sheep.gamegroup.model.entity.UploadResult;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.presenter.TaskDetailContract;
@@ -98,6 +100,7 @@ public class TaskDetailCreditCardAct extends AbsChooseImageActivity {
     private Activity activity;
 
     private TaskEty taskEty;
+    private TaskReleaseEty taskReleaseEty;
 
     @Override
     protected int getLayoutId() {
@@ -111,6 +114,7 @@ public class TaskDetailCreditCardAct extends AbsChooseImageActivity {
         TitleBarUtils.getInstance()
                 .setTitle(activity, "任务详情")
                 .setTitleFinish(activity);
+        btnUpImag.setVisibility(View.GONE);
     }
 
     @Override
@@ -125,6 +129,7 @@ public class TaskDetailCreditCardAct extends AbsChooseImageActivity {
 //            finish();
             return;
         }
+        netTaskSchedule();
         webText.setWebChromeClient(new WebChromeClient(){
 
         });
@@ -161,8 +166,6 @@ public class TaskDetailCreditCardAct extends AbsChooseImageActivity {
                         .dontAnimate())
                 .into(iconIv);
 
-        taskSchedule();
-
         if (taskEty.getRunTask() == 0 || taskEty.getInspect_type() == 1){
             detailTaskTv.setVisibility(View.INVISIBLE);
             bottom_btn_layout.setVisibility(View.VISIBLE);
@@ -191,6 +194,31 @@ public class TaskDetailCreditCardAct extends AbsChooseImageActivity {
         }
     }
 
+    private void netTaskSchedule() {
+        if(mPd == null || !mPd.isShowing())
+            showProgress();
+        SheepApp.getInstance().getNetComponent().getApiService().getReleaseTaskCreditCardDesc(taskEty.getId())
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(activity) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        if(BuildConfig.DEBUG)
+                            System.out.println("baseMessage onNext "+JSON.toJSONString(baseMessage));
+                        taskReleaseEty = baseMessage.getData(TaskReleaseEty.class);
+                        taskSchedule();
+                        hideProgress();
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        if(BuildConfig.DEBUG)
+                            System.out.println("baseMessage onError "+JSON.toJSONString(baseMessage));
+                        hideProgress();
+                    }
+                });
+    }
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -216,7 +244,8 @@ public class TaskDetailCreditCardAct extends AbsChooseImageActivity {
             case R.id.ll_infos:
                 break;
             case R.id.btn_task_item:
-                if(taskEty.getRunTask() != 1){
+                showProgress();
+                if(taskReleaseEty == null || taskReleaseEty.getAccepted_task_id() == 0){
                     acceptTask();
                 } else {
                     goWeb();
@@ -232,7 +261,7 @@ public class TaskDetailCreditCardAct extends AbsChooseImageActivity {
     private void acceptTask() {
         JSONObject object = new JSONObject();
         object.put("device_id", DeviceUtil.getDeviceId(activity));
-        object.put("release_task_id", Integer.valueOf(taskEty.getRelease_task_id()+""));
+        object.put("release_task_id", Integer.valueOf(taskEty.getId()+""));
         UMConfigUtils.onEvent(UMConfigUtils.Event.TASK_ACCEPT);
         SheepApp.getInstance().getNetComponent().getApiService().releaseTaskCreditCard(object)
                         .subscribeOn(Schedulers.io())
@@ -247,15 +276,21 @@ public class TaskDetailCreditCardAct extends AbsChooseImageActivity {
 
                             @Override
                             public void onError(BaseMessage baseMessage) {
-                                if(BuildConfig.DEBUG)
-                                    System.out.println("baseMessage onError "+JSON.toJSONString(baseMessage));
-                                G.showToast(TextUtils.isEmpty(baseMessage.getMsg()) ? "服务器错误,请稍候再试" : baseMessage.getMsg());
+                                if (baseMessage.getCode() == 1001){//已经接受过该任务
+                                    onNext(baseMessage);
+                                } else {
+                                    if(BuildConfig.DEBUG)
+                                        System.out.println("baseMessage onError "+JSON.toJSONString(baseMessage));
+                                    G.showToast(TextUtils.isEmpty(baseMessage.getMsg()) ? "服务器错误,请稍候再试" : baseMessage.getMsg());
+                                    hideProgress();
+                                }
                             }
                         });
     }
 
     private void goWeb() {
-        SheepApp.getInstance().getNetComponent().getApiService().getCredit(taskEty.getExt())
+        Ext ext = JSONObject.parseObject(JSONObject.toJSONString(taskEty.getExt()), Ext.class);
+        SheepApp.getInstance().getNetComponent().getApiService().getCredit(ext.getId())
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
                 .subscribe(new SheepSubscriber<BaseMessage>(activity) {
@@ -265,6 +300,7 @@ public class TaskDetailCreditCardAct extends AbsChooseImageActivity {
                         Jump2View.getInstance().goCreditCardWeb(activity, creditCard);
                         if(BuildConfig.DEBUG)
                             System.out.println("baseMessage onNext "+JSON.toJSONString(baseMessage));
+                        netTaskSchedule();
                     }
 
                     @Override
@@ -272,6 +308,7 @@ public class TaskDetailCreditCardAct extends AbsChooseImageActivity {
                         if(BuildConfig.DEBUG)
                             System.out.println("baseMessage onError "+JSON.toJSONString(baseMessage));
                         G.showToast(TextUtils.isEmpty(baseMessage.getMsg()) ? "服务器错误,请稍候再试" : baseMessage.getMsg());
+                        hideProgress();
                     }
                 });
     }
@@ -281,20 +318,15 @@ public class TaskDetailCreditCardAct extends AbsChooseImageActivity {
      */
     private void taskSchedule(){
         llInfos.removeAllViews();
-        if (taskEty != null) {
-            int thisRun = taskEty.getRunTask();
-            if (thisRun == 1) {//接受了任务
-                llInfos.addView(getStep("领取任务", "已完成", 0));
-                if(taskEty.getTask_type() == 2){//信用卡
-                    llInfos.addView(getStep("信用卡注册", "待完成", 0));
-                }else if (PackageUtil.isAppInstalled(SheepApp.mContext, taskEty.getPackage_names())) {
-                    llInfos.addView(getStep("下载游戏", "已完成", 0));
-                    llInfos.addView(getStep("完成任务", "进行中", 1));
-                } else {
-                    llInfos.addView(getStep("下载游戏", "待完成", 2));
-                }
+        if (taskEty != null && taskReleaseEty != null && taskReleaseEty.getAccepted_task_id() != 0) {
+            llInfos.addView(getStep("领取任务", "已完成", 0));
+            if(taskEty.getTask_type() == 2){//信用卡
+                llInfos.addView(getStep("信用卡注册", "待完成", 0));
+            }else if (PackageUtil.isAppInstalled(SheepApp.mContext, taskEty.getPackage_names())) {
+                llInfos.addView(getStep("下载游戏", "已完成", 0));
+                llInfos.addView(getStep("完成任务", "进行中", 1));
             } else {
-                llInfos.addView(getStep("领取任务", "待完成", 2));
+                llInfos.addView(getStep("下载游戏", "待完成", 2));
             }
         } else {
             llInfos.addView(getStep("领取任务", "待完成", 2));

+ 32 - 3
app/src/main/java/com/sheep/gamegroup/view/adapter/NewbieTaskAdp.java

@@ -82,8 +82,21 @@ public class NewbieTaskAdp extends BaseAdapter {
                 doActionByTask(context, ety);
             }
         });
-        holder.newbie_task_tv.setText(ety.getFinished() ? "已完成" : "去完成");
-        holder.newbie_task_tv.setEnabled(!ety.getFinished());
+        switch (ety.getStatus()){
+            case 0:
+                holder.newbie_task_tv.setText("去完成");
+                break;
+            case 1:
+                holder.newbie_task_tv.setText("审核中");
+                break;
+            case 2:
+                holder.newbie_task_tv.setText("已完成");
+                break;
+            case 3:
+                holder.newbie_task_tv.setText("去完成");
+                break;
+        }
+        holder.newbie_task_tv.setEnabled(ety.getEnabled());
         return convertView;
     }
 
@@ -115,7 +128,7 @@ public class NewbieTaskAdp extends BaseAdapter {
                     }
                     break;
                 case 6://加入官方QQ群
-                    Jump2View.getInstance().goAddQQTaskDetail(context, task);
+                    doActionByTaskQQ(context, task);
                     break;
             }
         } else {
@@ -124,4 +137,20 @@ public class NewbieTaskAdp extends BaseAdapter {
         }
     }
 
+    private static void doActionByTaskQQ(Context context,NewbieTask task) {
+
+        switch (task.getStatus()){
+            case 0://"去完成");
+                Jump2View.getInstance().goAddQQTaskDetail(context, task);
+                break;
+            case 1://"审核中");
+                break;
+            case 2://"已完成");
+                break;
+            case 3://"去完成");
+                Jump2View.getInstance().goAddQQTaskDetail(context, task);
+                break;
+        }
+    }
+
 }