Files
fuzhu/app/src/main/java/com/fisherbone/fuzhu/activity/StartTask.java
dyx123 7feceda7f5 atom
2021-10-22 16:09:03 +08:00

901 lines
46 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.fisherbone.fuzhu.activity;
import android.content.Context;
import android.util.Log;
import com.blankj.utilcode.util.ToastUtils;
import com.fisherbone.ContactsHelp;
import com.fisherbone.fuzhu.ChangLiang;
import com.fisherbone.fuzhu.abllib.AblStepHandler;
import com.fisherbone.fuzhu.abllib.AblSteps;
import com.fisherbone.fuzhu.abllib.utils.AblUtil;
import com.fisherbone.fuzhu.db.dao.ZhanghaoDao;
import com.fisherbone.fuzhu.db.zhuanghaoBeanData;
import com.fisherbone.fuzhu.entity.LiveBean;
import com.fisherbone.fuzhu.entity.RecFollowBean;
import com.fisherbone.fuzhu.entity.RedEnvBean;
import com.fisherbone.fuzhu.entity.UrgentTaskBean;
import com.fisherbone.fuzhu.entity.touchTaskBean;
import com.fisherbone.fuzhu.okgonet.HttpConstants;
import com.fisherbone.fuzhu.okgonet.NetApi;
import com.fisherbone.fuzhu.utils.DateUtils;
import com.fisherbone.fuzhu.utils.JsonUtils;
import com.fisherbone.fuzhu.utils.ProfileSpUtils;
import com.lzy.okgo.model.HttpParams;
import com.lzy.okgo.model.Response;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
import io.reactivex.Flowable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Action;
import io.reactivex.functions.Consumer;
/**
* Time: 2021/6/28
* Description:
* @author : jianbo
*/
public class StartTask {
public String valueZero="0";
public String valueOne="1";
public String valueTwo="2";
public String valueTwoF="-2";
private Disposable mdDisposable;
Context mContext;
private boolean isRandGoodb;
private boolean isRandCommentb;
private boolean isRandFollowb;
public StartTask(Context mContext, ControlWindow controlWindow, ZhanghaoDao zhanghaoDao){
this.mContext=mContext;
this.controlWindow=controlWindow;
this.zhanghaoDao=zhanghaoDao;
}
private List<zhuanghaoBeanData> phoneNumber = new ArrayList<>();
ControlWindow controlWindow;
private ZhanghaoDao zhanghaoDao;
public void startTask(String body) {
UrgentTaskBean urgentTaskBean = JsonUtils.fromJson(body, UrgentTaskBean.class);
int success = urgentTaskBean.getSuccess();
//success=-1:代表报错success=0:代表暂无任务success=1:代表账号登录success=2:代表停止任务success=3:代表紧急任务success=4:代表固定任务
switch (success) {
case -1:
Log.w("TIAOSHI###", "5s----代表报错");
break;
case 0:
Log.w("TIAOSHI###", "5s----暂无紧急任务");
break;
case 1:
Log.w("TIAOSHI###", "5s----账号登录");
ChangLiang.istask = true;
//领取到任务开始执行,调接口通知后台
//有任务且任务没有执行
if (ChangLiang.istask && valueZero.equals(ChangLiang.isstart)) {
ChangLiang.isstart = "1";
//拿到这个功能类型,然后去解析数据。
tastJiexidenglu(body);
//daojishithree(20);
} else {
Log.e("TIAOSHI###", "当前没有认领到可执行的任务");
}
break;
//代表停止任务
case 2:
Log.w("TIAOSHI###", "5s----停止任务");
ChangLiang.task_type = "2";
ChangLiang.istask = false;
//领取到任务开始执行,调接口通知后台
Log.e("TIAOSHI###", "开始给后台上报拿到了停任务");
updateTaskStatus();
AblStepHandler.getInstance().setStop(true);
ChangLiang.isstart = "0";
if (valueZero.equals(ChangLiang.isstarttwo)) {
ChangLiang.isstarttwo = "1";
Log.e("TIAOSHI###", "停止了任务,并开始倒计时10秒关闭抖音");
taskdaojishi(30);
}
break;
//代表紧急任务
case 3:
Log.w("TIAOSHI###", "5s----紧急任务");
ChangLiang.task_type = "3";
ChangLiang.istask = true;
if (!ChangLiang.istask) {
Log.e("TIAOSHI###", "紧急任务——当前没有认领到可执行的任务");
}
//任务没有执行
if (valueZero.equals(ChangLiang.isstart)) {
ChangLiang.isstart = "1";
//func_type 1推荐加关2一键取关3撞号设置
String funcType = urgentTaskBean.getData().getFunc_type();
Log.e("TIAOSHI###", "执行的功能类型==" + funcType);
//领取到任务开始执行,调接口通知后台
//updateTaskStatus();
switch (funcType) {
case "1":
tastJiexi(body);
// daojishitwo(20);
break;
case "2":
tastJiexitwo(body);
// daojishitwo(20);
break;
//幢号任务
case "3":
//解析数据,开始执行幢号任务
Log.e("TIAOSHI###", "temp1");
tastJiexithree(body);
break;
default:
Log.e("TIAOSHI###", "执行的功能类型不匹配");
break;
}
} else {
Log.e("TIAOSHI###", "固定任务——任务正在执行");
}
break;
//代表固定任务
case 4:
Log.w("TIAOSHI###", "5s----固定任务");
ChangLiang.istask = true;
ChangLiang.task_type = "4";
if (!ChangLiang.istask) {
Log.e("TIAOSHI###", "固定任务——没有任务");
}
//任务没有执行
Log.e("TIAOSHI###", "任务是否执行==" + ChangLiang.isstart);
if (valueZero.equals(ChangLiang.isstart)) {
ChangLiang.isstart = "1";
//func_type 1推荐加关2一键取关3撞号设置 5.抢红包
String funcType = urgentTaskBean.getData().getFunc_type();
Log.e("TIAOSHI###", "执行的功能类型==" + funcType);
//领取到任务开始执行,调接口通知后台
// updateTaskStatus();
switch (funcType) {
case "1":
tastJiexi(body);
// daojishitwo(20);
break;
case "2":
tastJiexitwo(body);
// daojishitwo(20);
break;
case "3":
//解析数据,开始执行幢号任务
tastJiexithree(body);
break;
case "5":
tastJiexifive(body);
break;
case "6":
tastJiexisix(body);
break;
default:
Log.e("TIAOSHI###", "执行的功能类型不匹配");
break;
}
} else {
Log.e("TIAOSHI###", "固定任务——任务正在执行");
}
break;
default:
}
}
/**
* app拿到任务调用接口
*/
private void updateTaskStatus() {
final HttpParams paramsPost = new HttpParams();
paramsPost.put("short_id", ChangLiang.short_id);
paramsPost.put("task_id", ChangLiang.task_id);
paramsPost.put("task_type", ChangLiang.task_type);
new NetApi().getPostData(paramsPost, HttpConstants.URi_device_Appscanlogin_updateTaskStatus).subscribe(new com.fisherbone.fuzhu.okgonet.Observer<Response>() {
@Override
public void onNext(Response response) {
String body = (String) response.body();
try {
JSONObject jsonObject = new JSONObject(body);
String msg = jsonObject.getString("msg");
String success = jsonObject.getString("success");
if (valueZero.equals(success)) {
com.fisherbone.fuzhu.utils.ToastUtils.showToast(mContext, "开始执行新任务");
Log.e("TIAOSHI###", "给后台上报任务==" + msg);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public void onError(Exception e) {
e.printStackTrace();
}
});
}
private void tastJiexi(String body) {
//拿到这个功能类型,然后去解析数据。
try {
/**
* -- ----------------------------
* DROP TABLE IF EXISTS `t_sys_task_function_tjjg`;
* CREATE TABLE `t_sys_task_function_tjjg` (
* `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
* `task_id` varchar(32) NOT NULL COMMENT '任务id',
* `account_duration` int(11) DEFAULT '0' COMMENT '单账号时长h',
* `watch_duration_max` int(11) DEFAULT '0' COMMENT '视频最大观看时长s',
* `watch_duration_min` int(11) DEFAULT '0' COMMENT '视频最小观看时长s',
* `is_rand_good` tinyint(2) DEFAULT '1' COMMENT '是否随机点赞1是随机点赞0',
* `is_rand_follow` tinyint(2) DEFAULT '1' COMMENT '是否随机关注1是随机关注0',
* `is_rand_comment` tinyint(2) DEFAULT '1' COMMENT '是否随机评论1是随机评论0',
* `max_follow` int(11) DEFAULT '0' COMMENT '最大关注数',
* `and_follow_max` int(11) DEFAULT '0' COMMENT '最大加关关注数',
* `and_follow_min` int(11) DEFAULT '0' COMMENT '最小加关关注数',
* `and_fans_max` int(11) DEFAULT '0' COMMENT '最大加关粉丝数',
* `and_fans_min` int(11) DEFAULT '0' COMMENT '最小加关粉丝数',
* `min_work` int(11) DEFAULT '0' COMMENT '最小作品数',
* `max_work_time` int(11) DEFAULT '0' COMMENT '最大作品时间(天)',
* `create_time` datetime DEFAULT NULL COMMENT '系统时间',
* `is_rand_forward` tinyint(2) DEFAULT '0' COMMENT '是否随机转发1是随机转发0',
* PRIMARY KEY (`id`)
* ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='任务功能推荐加关表';
*/
//拿到json字符串假数据
// String JsonData = new GetJsonDataUtil().getJson(MainActivity.this, "jiaguan.json");//获取assets目录下的json文件数据
JSONObject jsonObject = new JSONObject(body);
JSONObject data = jsonObject.getJSONObject("data");
String funcType = data.getString("func_type");
JSONObject functionExecute = data.getJSONObject("function_execute");
String taskId = data.getString("task_id");//任务id
String shortId = data.getString("short_id");//抖音id
String shortName = data.getString("short_name");//抖音昵称
String end_time = data.getString("end_time");//抖音昵称
String accountDuration = functionExecute.getString("account_duration");//单账号时长h
String watchDurationMax = functionExecute.getString("watch_duration_max");//视频最大观看时长s
String watchDurationMin = functionExecute.getString("watch_duration_min");//视频最小观看时长s
String isRandGood = functionExecute.getString("is_rand_good");//是否随机点赞1是随机点赞0
if(isRandGood.equals("1")){
isRandGoodb = true;
}else {
isRandGoodb =false;
}
String isRandComment = functionExecute.getString("is_rand_comment");//是否随机评论1是随机评论0
if(isRandComment.equals("1")){
isRandCommentb = true;
}else {
isRandCommentb =false;
}
String isRandFollow = functionExecute.getString("is_rand_follow");//是否随机关注1是随机关注0
if(isRandFollow.equals("1")){
isRandFollowb = true;
}else {
isRandFollowb =false;
}
String maxFollow = functionExecute.getString("max_follow");//最大关注数
// String maxFollow = "30";//最大关注数
String andFollow = functionExecute.getString("and_follow");//加关关注数
String andFans = functionExecute.getString("and_fans");//加关粉丝数
String minWork = functionExecute.getString("min_work");//最小作品数
String maxWork = functionExecute.getString("max_work");//最大作品数(新)
String andFollowMax = functionExecute.getString("and_follow_max");//最大加关关注数(新)
String andFansMax = functionExecute.getString("and_fans_max");//最大加关粉丝数(新)
String maxWorkTime = functionExecute.getString("max_work_time");//最大作品时间(天)
String createTime = functionExecute.getString("create_time");//系统时间
String isRandForward = functionExecute.getString("is_rand_forward");//是否随机转发
String id = functionExecute.getString("id");//功能id
ChangLiang.short_id = shortId;//抖音id
ChangLiang.task_short_name = shortName;//任务抖音昵称
ChangLiang.task_id = taskId;//任务id
ChangLiang.id = id;//功能id
String gaizaotime = gaizaotime(end_time);
RecFollowBean recFollowBean = new RecFollowBean(accountDuration,watchDurationMin,watchDurationMax,isRandGoodb,isRandCommentb,isRandFollowb,maxFollow,andFollow,andFans,minWork,maxWorkTime,maxWork,andFollowMax,andFansMax,gaizaotime);
ProfileSpUtils.getInstance().saveProfile(recFollowBean);
Log.e("TIAOSHI###", "一键加关的数据解析成功");
//领取到任务开始执行,调接口通知后台
updateTaskStatus();
//执行帐号切换帐号
Log.e("TIAOSHI###", "开始执行帐号切换帐号");
AblStepHandler.getInstance().setStop(false);
startExecution(mContext, AblSteps.STEP_3);
daojishifour(35, funcType);
} catch (JSONException e) {
e.printStackTrace();
}
}
private String gaizaotime(String end_time) {
String nowString = DateUtils.getNowString();
String[] all = nowString.split(" ");
// Log.e("TIAOSHI###", nowString);
// Log.e("TIAOSHI###", "获得的抖音号==" + all[0]);
// Log.e("TIAOSHI###", "获得的抖音号==" + all[1]);
String xend_time = all[0]+" "+end_time;
//Log.e("TIAOSHI###", xend_time);
return xend_time;
}
private void tastJiexitwo(String body) {
Log.e("TIAOSHI###", "一键取关的数据开始解析");
//拿到这个功能类型,然后去解析数据。
try {
/**
* -- ----------------------------
*DROP TABLE IF EXISTS `t_sys_task_function_yjqg`;
* CREATE TABLE `t_sys_task_function_yjqg` (
* `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
* `task_id` varchar(32) NOT NULL COMMENT '任务id',
* `account_duration` int(11) DEFAULT '0' COMMENT '单账号时长h',
* `cancel_type` tinyint(2) DEFAULT '1' COMMENT '取消状态1取消已关 2取消互关',
* `cancel_num` int(11) DEFAULT '0' COMMENT '取关数',
* `cancel_gap_max` int(11) DEFAULT '0' COMMENT '最大取关间隔s',
* `cancel_gap_min` int(11) DEFAULT '0' COMMENT '最小取关间隔s',
* `min_cancel_num` int(11) DEFAULT '0' COMMENT '最小开始取关数',
* `save_fans` int(11) DEFAULT '0' COMMENT '互关保留粉丝数',
* `create_time` datetime DEFAULT NULL COMMENT '系统时间',
* PRIMARY KEY (`id`)
* ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='任务功能一键取关表';
*/
//拿到json字符串假数据
// String JsonData = new GetJsonDataUtil().getJson(MainActivity.this, "quguan.json");//获取assets目录下的json文件数据
JSONObject jsonObject = new JSONObject(body);
JSONObject data = jsonObject.getJSONObject("data");
String funcType = data.getString("func_type");
JSONObject functionExecute = data.getJSONObject("function_execute");
String taskId = data.getString("task_id");//任务id
String shortId = data.getString("short_id");//抖音id
String shortName = data.getString("short_name");//抖音昵称
functionExecute.getString("account_duration");//单账号时长h
String cancelType = functionExecute.getString("cancel_type");//取消状态1取消已关 2取消互关
String cancelNum = functionExecute.getString("cancel_num");//取关数
functionExecute.getString("cancel_gap_max");//最大取关间隔s
functionExecute.getString("cancel_gap_min");//最小取关间隔s
String minCancelNum = functionExecute.getString("min_cancel_num");//最小开始取关数
String saveFans = functionExecute.getString("save_fans");//互关保留粉丝数
functionExecute.getString("create_time");//系统时间
String id = functionExecute.getString("id");//功能id
ChangLiang.task_id = taskId;//任务id
ChangLiang.short_id = shortId;//抖音id
ChangLiang.task_short_name = shortName;//任务抖音昵称
ChangLiang.id = id;//功能id
if (valueOne.equals(cancelType)) {
ChangLiang.cancelclosed = true;
} else {
ChangLiang.cancelcrosscor = true;
}
ChangLiang.passnumber = cancelNum;
ChangLiang.swiinterval = "1";
ChangLiang.minthrthr = minCancelNum;
ChangLiang.minfans = saveFans;
Log.e("TIAOSHI###", "一键取关的数据解析成功");
//领取到任务开始执行,调接口通知后台
updateTaskStatus();
//执行帐号切换帐号
Log.e("TIAOSHI###", "执行帐号切换帐号");
startExecution(mContext, AblSteps.STEP_3);
daojishifour(30, funcType);
} catch (JSONException e) {
e.printStackTrace();
}
}
private void tastJiexithree(String body) {
Log.e("TIAOSHI###", "幢号的数据开始解析");
//拿到这个功能类型,然后去解析数据。
try {
//拿到json字符串假数据
// String JsonData = new GetJsonDataUtil().getJson(MainActivity.this, "quguan.json");//获取assets目录下的json文件数据
JSONObject jsonObject = new JSONObject(body);
JSONObject data = jsonObject.getJSONObject("data");
String funcType = data.getString("func_type");
JSONObject functionExecute = data.getJSONObject("function_execute");
String taskId = data.getString("task_id");//任务id
String shortId = data.getString("short_id");//抖音id
String shortName = data.getString("short_name");//抖音昵称
String accountDuration = functionExecute.getString("account_duration");//单账号时长
String touchNum = functionExecute.getString("touch_num");//幢号数量
String ifQuguan = functionExecute.getString("if_quguan");//是否取关
ChangLiang.if_quguan = ifQuguan;//是否要先取关0是要取关 1是不要取关
functionExecute.getString("create_time");//系统时间
String id = functionExecute.getString("id");//功能id
ChangLiang.task_id = taskId;//任务id
ChangLiang.short_id = shortId;//抖音id
ChangLiang.task_short_name = shortName;//任务抖音昵称
ChangLiang.id = id;//功能id
ChangLiang.account_duration = ChangLiang.account_duration;//功能id
ChangLiang.touch_num = touchNum;//功能id
Log.e("TIAOSHI###", "幢号的数据解析成功");
updateTaskStatus();
//如果当前登录的抖音号和后台指派任务的抖音号不一致
touchTask(touchNum, new MainActivity.Zhuanhaoretren() {
@Override
public void call(touchTaskBean urgentTaskBean, String success) {
if (valueZero.equals(success)) {
phoneNumber = urgentTaskBean.getData();
Log.e("TIAOSHI###", "幢号的数据解析成功个数==" + phoneNumber.size());
//存入本地数据库
for (int i = 0; i < phoneNumber.size(); i++) {
zhuanghaoBeanData zhuanghaoBeanData = phoneNumber.get(i);
if (null != zhanghaoDao.queryByCustom("Id", zhuanghaoBeanData.getId()) && zhanghaoDao.queryByCustom("Id", zhuanghaoBeanData.getId()).size() > 0) {
zhanghaoDao.updateData(zhuanghaoBeanData);
} else {
zhanghaoDao.addInsert(zhuanghaoBeanData);
}
}
//导入通讯录
ContactsHelp.getInstance(mContext).importContacts(phoneNumber);
//执行帐号切换帐号
startExecution(mContext, AblSteps.STEP_3);
daojishifour(30, funcType);
} else if (valueTwoF.equals(success)) {
Log.e("TIAOSHI###", "获取撞号账号==" + urgentTaskBean.getMsg());
//表示撞号结束,可以去请求其他任务
finishTask();
}
}
});
} catch (JSONException e) {
e.printStackTrace();
}
}
/**
* app每执行完一个任务成功后调取接口
*/
private void finishTask() {
final HttpParams paramsPost = new HttpParams();
paramsPost.put("short_id", ChangLiang.short_id);// 拿到的抖音id
paramsPost.put("task_id", ChangLiang.task_id);//拿到的任务id
paramsPost.put("id", ChangLiang.id);//功能id
paramsPost.put("task_type", ChangLiang.task_type);//拿到的任务类型 1代表账号登录 2停任务 3代表紧急任务4:代表固定任务
new NetApi().getPostData(paramsPost, HttpConstants.URi_device_Appscanlogin_FinishTask).subscribe(new com.fisherbone.fuzhu.okgonet.Observer<Response>() {
@Override
public void onNext(Response response) {
String body = (String) response.body();
try {
JSONObject jsonObject = new JSONObject(body);
String msg = jsonObject.getString("msg");
String success = jsonObject.getString("success");
if (valueZero.equals(success)) {
Log.e("TIAOSHI###", "每执行完一个任务成功后调取接口==" + msg);
Log.e("TIAOSHI###", "任务执行完毕,领取新的任务。");
ChangLiang.isstarttwo = "0";
ChangLiang.isstart = "0";
fixedTask();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public void onError(Exception e) {
e.printStackTrace();
}
});
}
/**
* 固定任务(当前任务执行完请求下一个任务接口)
* 此处有一个核心逻辑,最后三个参数,传值分两种情况,一、如果来的紧急任务是一个停任务,那么就传空。二、如果来的紧急任务是一个其它任务。那么就传值
*/
private void fixedTask() {
if (valueTwo.equals(ChangLiang.task_type)) {
Log.e("TIAOSHI###", "执行了传值分两种情况第一种情况");
final HttpParams paramsPost = new HttpParams();
paramsPost.put("short_id", ChangLiang.short_id);// 拿到的抖音id
paramsPost.put("task_id", ChangLiang.task_id);//拿到的任务id
paramsPost.put("id", ChangLiang.id);//功能id
paramsPost.put("task_type", ChangLiang.task_type);//拿到的任务类型 1代表账号登录 2停任务 3代表紧急任务4:代表固定任务
paramsPost.put("urgent_short_id", "");//未处理完成紧急任务抖音id
paramsPost.put("urgent_task_id", "");//未处理完成紧急任务id
paramsPost.put("urgent_id", "");// 未处理完成紧急功能id
paramsPost.put("fixed_short_id", "");//未处理完成固定任务抖音id
paramsPost.put("fixed_task_id", "");//未处理完成固定任务id
paramsPost.put("fixed_id", "");//未处理完成固定功能id
new NetApi().getPostData(paramsPost, HttpConstants.URi_device_Appscanlogin_fixedTask).subscribe(new com.fisherbone.fuzhu.okgonet.Observer<Response>() {
@Override
public void onNext(Response response) {
String body = (String) response.body();
UrgentTaskBean urgentTaskBean = JsonUtils.fromJson(body, UrgentTaskBean.class);
int success = urgentTaskBean.getSuccess();
if (success == 0) {
//初始化5秒的接口参数
ChangLiang.task_id = "";//当前执行任务id
ChangLiang.id = "";//当前执行任务功能id
ChangLiang.task_type = "";//当前执行任务类型
}
startTask(body);
}
@Override
public void onError(Exception e) {
e.printStackTrace();
}
});
} else {
final HttpParams paramsPost = new HttpParams();
paramsPost.put("short_id", ChangLiang.short_id);// 拿到的抖音id
paramsPost.put("task_id", ChangLiang.task_id);//拿到的任务id
paramsPost.put("id", ChangLiang.id);//功能id
paramsPost.put("task_type", ChangLiang.task_type);//拿到的任务类型 1代表账号登录 2停任务 3代表紧急任务4:代表固定任务
paramsPost.put("urgent_short_id", ChangLiang.short_id_jf);//未处理完成紧急任务抖音id
paramsPost.put("urgent_task_id", ChangLiang.task_id_jf);//未处理完成紧急任务id
paramsPost.put("urgent_id", ChangLiang.id_jf);// 未处理完成紧急功能id
paramsPost.put("fixed_short_id", ChangLiang.short_id_f);//未处理完成固定任务抖音id
paramsPost.put("fixed_task_id", ChangLiang.task_id_f);//未处理完成固定任务id
paramsPost.put("fixed_id", ChangLiang.id_f);//未处理完成固定功能id
new NetApi().getPostData(paramsPost, HttpConstants.URi_device_Appscanlogin_fixedTask).subscribe(new com.fisherbone.fuzhu.okgonet.Observer<Response>() {
@Override
public void onNext(Response response) {
String body = (String) response.body();
startTask(body);
}
@Override
public void onError(Exception e) {
e.printStackTrace();
}
});
}
}
private void tastJiexifive(String body) {
Log.e("TIAOSHI###", "抢红包的数据开始解析");
/**
* -- 直播间抢抖币
* {
* "success": 4,
* "msg": "执行固定任务",
* "data": {
* "task_type": "4", -- 固定任务
* "short_id": "tangjie0501", -- 抖音号
* "short_name": "软件工程师蝴蝶剑", -- 抖音名称
* "task_id": "3000def9108812dbd2df76980516532e", -- 任务id
* "start_time": "09:00:00", -- 开始时间
* "end_time": "16:00:00", -- 结束时间
* "create_time": "2021-01-12 18:31:22", -- 创建时间
* "function_execute": {
* "id": 1, -- 任务功能id
* "task_id": "3000def9108812dbd2df76980516532e", -- 任务id
* "account_duration": 2, -- 单账号时长h
* "live_num": 10, -- 直播间个数
* "change_time": 3, -- 切换时间设置s
* "live_speech": 1, -- 直播间话术是否开启 1开启 0关闭'
* "live_click": 1, -- 是否点赞 1是 0
* "grab_lucky_bag": 1, -- 是否抢福袋 1是 0
* "bag_min_coin": 1, -- 抢福袋时,抖币的最小数字,小于则不参与
* "grab_red_envelopes": 1, -- 是否抢红包 1是 0
* "red_min_coin": 1, -- 抢红包时,抖币的最小数字,大于参与
* "create_time": "2021-07-01 10:48:37", -- 创建时间
* "task_type": 1, -- 任务类型1固定 0临时
* "if_quguan": 1, -- 0:要取关1不要取关
* "touch_num": "0" -- 撞号数量
* },
* "func_type": "5" -- 任务功能是直播间抢抖币* }
* }
*/
//拿到这个功能类型,然后去解析数据。
try {
//拿到json字符串假数据
// String JsonData = new GetJsonDataUtil().getJson(MainActivity.this, "quguan.json");//获取assets目录下的json文件数据
JSONObject jsonObject = new JSONObject(body);
JSONObject data = jsonObject.getJSONObject("data");
String createTime =data.getString("create_time");
String endTime =data.getString("end_time");
String startTime =data.getString("start_time");
String funcType = data.getString("func_type");
String taskId = data.getString("task_id");//任务id
String shortId = data.getString("short_id");//抖音id
String shortName = data.getString("short_name");//抖音昵称
String taskType = data.getString("task_type");//固定任务
JSONObject functionExecute = data.getJSONObject("function_execute");
String id = functionExecute.getString("id");//单账号时长h
String accountDuration = functionExecute.getString("account_duration");//单账号时长h
String liveNum = functionExecute.getString("live_num");//直播间个数
String changeTime = functionExecute.getString("change_time");//直播间切换时间
String redMinCoin = functionExecute.getString("red_min_coin");//抢红包时,抖币的最小数字,大于参与
String liveSpeech = functionExecute.getString("live_speech");//直播间话术是否开启 1开启 0关闭'
String liveClick = functionExecute.getString("live_click");//是否点赞 1是 0
String grabRedEnvelopes = functionExecute.getString("grab_red_envelopes");//是否抢红包 1是 0
ChangLiang.task_id = taskId;//任务id
ChangLiang.short_id = shortId;//抖音id
ChangLiang.task_short_name = shortName;//任务抖音昵称
ChangLiang.task_type = taskType;//固定任务
ChangLiang.id = id;//功能id
ChangLiang.func_type = funcType;//功能id
String gaizaotime = gaizaotime(endTime);
RedEnvBean redEnvBean = new RedEnvBean();
redEnvBean.setEndtime(gaizaotime);
String accountduration = Integer.parseInt(accountDuration)*60+"";
// String accountduration = Integer.parseInt(accountDuration)+"";
redEnvBean.setRuntime(accountduration);
redEnvBean.setLivenum(liveNum);
String changetime = Integer.parseInt(changeTime)+"";
redEnvBean.setQiehuantime(changetime);
redEnvBean.setDoubinum(redMinCoin);
if(valueOne.equals(liveSpeech)){
redEnvBean.setRedswitchone(true);
}else {
redEnvBean.setRedswitchone(false);
}
if(valueOne.equals(liveClick)){
redEnvBean.setRedswitchtwo(true);
}else {
redEnvBean.setRedswitchtwo(false);
}
if(valueOne.equals(grabRedEnvelopes)){
redEnvBean.setRedswitchthree(true);
}else {
redEnvBean.setRedswitchthree(false);
}
ProfileSpUtils.getInstance().saveRedEnvBean(redEnvBean);
Log.e("TIAOSHI###", "抢红包的数据解析成功");
//领取到任务开始执行,调接口通知后台
updateTaskStatus();
Log.e("TIAOSHI###", "执行帐号切换帐号");
startExecution(mContext, AblSteps.STEP_3);
daojishifour(30, funcType);
} catch (JSONException e) {
e.printStackTrace();
}
}
private void tastJiexisix(String body) {
Log.e("TIAOSHI###", "抢红包的数据开始解析");
/**
-- 直播间加热
{
"success": 4,
"msg": "执行固定任务",
"data": {
"task_type": "4", -- 固定任务
"short_id": "tangjie0501", -- 抖音id
"short_name": "软件工程师蝴蝶剑", -- 抖音名
"task_id": "3000def9108812dbd2df76980516532e", -- 任务id
"start_time": "09:00:00",-- 开始时间
"end_time": "16:00:00", -- 结束时间
"create_time": "2021-01-12 18:31:22", -- 创建时间
"function_execute": {
"id": 1, -- 任务功能id
"task_id": "3000def9108812dbd2df76980516532e", -- 任务id
"account_duration": 1, -- 单账号时长h
"live_nickname": "12", -- 加热直播间抖音昵称
"live_come": 1, -- 进直播间方式 1直播广场 2关注列表
"live_speech": 1, -- 直播间话术是否开启 1开启 0关闭
"live_click": 0, -- 是否点赞 1是 0
"live_documentary": 1, -- 直播间跟单 1是 0
"fans_gift": 1, -- 优先粉丝团礼物 1是 0
"fans_gift_type": 1, -- 礼物类型 1固定礼物 2全部礼物
"gift_heart": 1, -- 心心相吸的个数
"gift_time_min": 3, -- 随机间隔时间的最小时间(分)
"gift_time_max": 10, -- 随机间隔时间的最大时间(分)
"grab_lucky_bag": 1, -- 是否抢福袋 1是 0
"bag_min_coin": 1, -- 抢福袋时,抖币的最小数字,小于则不参与
"grab_red_envelopes": 1, -- 是否抢红包 1是 0
"red_min_coin": 2, -- 抢红包时,抖币的最小数字,大于参与
"create_time": "2021-07-01 10:50:51", -- 创建事假
"task_type": 1, -- 任务类型1固定 0临时
"if_quguan": 1, -- 0:要取关1不要取关
"touch_num": "0" -- -- 撞号数量
},
"func_type": "6" -- 任务功能是直播间加热
}
}
*/
//拿到这个功能类型,然后去解析数据。
try {
//拿到json字符串假数据
// String JsonData = new GetJsonDataUtil().getJson(MainActivity.this, "quguan.json");//获取assets目录下的json文件数据
JSONObject jsonObject = new JSONObject(body);
JSONObject data = jsonObject.getJSONObject("data");
String createTime =data.getString("create_time");
String endTime =data.getString("end_time");
String startTime =data.getString("start_time");
String funcType = data.getString("func_type");
String taskId = data.getString("task_id");//任务id
String shortId = data.getString("short_id");//抖音id
String shortName = data.getString("short_name");//抖音昵称
String taskType = data.getString("task_type");//固定任务
JSONObject functionExecute = data.getJSONObject("function_execute");
String id = functionExecute.getString("id");//-- 任务功能id
String taskId1 = functionExecute.getString("task_id");//-- 任务id
String accountDuration = functionExecute.getString("account_duration");//单账号时长h
String liveNickname = functionExecute.getString("live_nickname");//-- 加热直播间抖音昵称
String liveCome = functionExecute.getString("live_come");//-- -- 进直播间方式 1直播广场 2关注列表
String liveSpeech = functionExecute.getString("live_speech");// -- 直播间话术是否开启 1开启 0关闭
String liveClick = functionExecute.getString("live_click");// -- 是否点赞 1是 0
String liveDocumentary = functionExecute.getString("live_documentary");// -- 直播间跟单 1是 0
String fansGift = functionExecute.getString("fans_gift");// -- 优先粉丝团礼物 1是 0
String fansGiftType = functionExecute.getString("fans_gift_type");// -- 礼物类型 1固定礼物 2全部礼物
String giftHeart = functionExecute.getString("gift_heart");// -- 心心相吸的个数
String giftTimeMin = functionExecute.getString("gift_time_min");// -- 随机间隔时间的最小时间(分)
String giftTimeMax = functionExecute.getString("gift_time_max");// -- 随机间隔时间的最大时间(分)
String grabLuckyBag = functionExecute.getString("grab_lucky_bag");// -- 是否抢福袋 1是 0
String bagMinCoin = functionExecute.getString("bag_min_coin");// -- 抢福袋时,抖币的最小数字,小于则不参与
String grabRedEnvelopes = functionExecute.getString("grab_red_envelopes");// -- 是否抢红包 1是 0
String redMinCoin = functionExecute.getString("red_min_coin");//-- 抢红包时,抖币的最小数字,大于参与
String ifQuguan = functionExecute.getString("if_quguan");//-- 0:要取关1不要取关
String touchNum = functionExecute.getString("touch_num");//-- 撞号数量
ChangLiang.task_id = taskId;//任务id
ChangLiang.short_id = shortId;//抖音id
ChangLiang.task_short_name = shortName;//任务抖音昵称
ChangLiang.task_type = taskType;//固定任务
ChangLiang.id = id;//功能id
String gaizaotime = gaizaotime(endTime);
LiveBean liveBean = new LiveBean();
liveBean.setEndtime(gaizaotime);
liveBean.setDouyinhao(liveNickname);
String accountduration = Integer.parseInt(accountDuration)*60+"";
liveBean.setZhibomin(accountduration);
if(valueOne.equals(liveSpeech)){
liveBean.setSwitchone(true);
}else {
liveBean.setSwitchone(false);
}
if(valueOne.equals(liveClick)){
liveBean.setSwitchtwo(true);
}else {
liveBean.setSwitchtwo(false);
}
if(valueOne.equals(liveDocumentary)){
liveBean.setSwitchthree(true);
}else {
liveBean.setSwitchthree(false);
}
if(valueOne.equals(fansGift)){
liveBean.setSwitchfive(true);
}else {
liveBean.setSwitchfive(false);
}
ProfileSpUtils.getInstance().saveLiveBean(liveBean);
Log.e("TIAOSHI###", "直播间加热的数据解析成功");
//领取到任务开始执行,调接口通知后台
updateTaskStatus();
//执行帐号切换帐号
Log.e("TIAOSHI###", "执行帐号切换帐号");
startExecution(mContext, AblSteps.STEP_3);
daojishifour(30, funcType);
} catch (JSONException e) {
e.printStackTrace();
}
}
private void tastJiexidenglu(String body) {
//拿到这个功能类型,然后去解析数据。
try {
//拿到json字符串假数据
// String JsonData = new GetJsonDataUtil().getJson(MainActivity.this, "denglu.json");//获取assets目录下的json文件数据
JSONObject jsonObject = new JSONObject(body);
JSONObject data = jsonObject.getJSONObject("data");
String phone = data.getString("phone");
ChangLiang.phonenum = phone;
// ChangLiang.tasktype = 1;
ChangLiang.task_type = "1";
updateTaskStatus();
AblUtil.addSuspensionWindowView(mContext, controlWindow.initWindowView("4"));
} catch (JSONException e) {
e.printStackTrace();
}
}
/**
* 停任务的倒计时
*
* @param a
*/
private void taskdaojishi(final int a) {
//启动计时器
//从0开始发射11个数字为0-10依次输出延时0s执行每1s发射一次。
mdDisposable = Flowable.intervalRange(0, a + 1, 0, 1, TimeUnit.SECONDS)
.observeOn(AndroidSchedulers.mainThread())
.doOnNext(new Consumer<Long>() {
@Override
public void accept(Long aLong) throws Exception {
long b = a - aLong;
Log.e("TIAOSHI###", b + "");
}
})
.doOnComplete(new Action() {
@Override
public void run() throws Exception {
AblStepHandler.getInstance().setStop(false);
// StartExecution(MainActivity.this, AblSteps.STEP_109);
Log.e("TIAOSHI###", "开始执行关闭抖音程序");
startExecution(mContext, AblSteps.STEP_192);
}
})
.subscribe();
}
/**
* 开始执行
*/
public void startExecution(Context context,int arg) {
if (AblUtil.isAccessibilityServiceOpen(context)) {
AblStepHandler.getInstance().setStop(false);
AblStepHandler.sendMsg(arg);
} else {
ToastUtils.showShort("点到了");
ToastUtils.showShort("请先开启辅助服务");
AblUtil.openAccessibilitySettings();
}
}
/**
* 获取撞号账号
* 如果{"success":-2,"msg":"暂无需要撞号的账号"}停止撞号任务
*/
private void touchTask(String touchNum, MainActivity.Zhuanhaoretren zhuanhaoretren) {
final HttpParams paramsPost = new HttpParams();
paramsPost.put("short_id", ChangLiang.short_id);// 拿到的抖音id
paramsPost.put("touch_num", touchNum);//功能id
new NetApi().getPostData(paramsPost, HttpConstants.URi_device_Appscanlogin_touchTask).subscribe(new com.fisherbone.fuzhu.okgonet.Observer<Response>() {
@Override
public void onNext(Response response) {
String body = (String) response.body();
touchTaskBean urgentTaskBean = JsonUtils.fromJson(body, touchTaskBean.class);
int success = urgentTaskBean.getSuccess();
zhuanhaoretren.call(urgentTaskBean, urgentTaskBean.getSuccess() + "");
}
@Override
public void onError(Exception e) {
e.printStackTrace();
}
});
}
/**
* 倒计时开始执行任务
*
* @param a
*/
private void daojishifour(final int a, String funcType) {
//启动计时器
//从0开始发射11个数字为0-10依次输出延时0s执行每1s发射一次。
mdDisposable = Flowable.intervalRange(0, a + 1, 0, 1, TimeUnit.SECONDS)
.observeOn(AndroidSchedulers.mainThread())
.doOnNext(new Consumer<Long>() {
@Override
public void accept(Long aLong) throws Exception {
long b = a - aLong;
Log.e("TIAOSHI###", b + "");
}
})
.doOnComplete(new Action() {
@Override
public void run() throws Exception {
//先判断无障碍是否开启
Log.e("TIAOSHI###", "temp3");
AblUtil.addSuspensionWindowView(mContext, controlWindow.initWindowView(funcType));
}
})
.subscribe();
}
}