新增排程接口
This commit is contained in:
@@ -5,6 +5,7 @@ import android.os.Bundle;
|
||||
import com.ckkj.water.base.BaseFragment;
|
||||
import com.ckkj.water.databinding.WaterCountFragmentLayoutBinding;
|
||||
import com.ckkj.water.network.BaseBean;
|
||||
import com.ckkj.water.plan.entity.WaterPlanWeekEntity;
|
||||
import com.ckkj.water.plan.mvp.WaterPlanContract;
|
||||
import com.ckkj.water.plan.mvp.WaterPlanPresenter;
|
||||
|
||||
@@ -39,4 +40,9 @@ public class StatisticFragment extends BaseFragment<WaterCountFragmentLayoutBind
|
||||
public void logOut(BaseBean bean) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveConfigSuccess(WaterPlanWeekEntity entity) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.ckkj.water.base.entity.MineUserInfoBean;
|
||||
import com.ckkj.water.index.entity.IndexDeviceEntity;
|
||||
import com.ckkj.water.login.entity.LoginEntity;
|
||||
import com.ckkj.water.main.entity.CheckVersionEntity;
|
||||
import com.ckkj.water.plan.entity.WaterPlanWeekEntity;
|
||||
import com.ckkj.water.plate.entity.BaziResultBean;
|
||||
import com.ckkj.water.plate.entity.BaziSaveSuccessEntity;
|
||||
import com.ckkj.water.plate.entity.PaipanHistoryEntity;
|
||||
@@ -64,6 +65,10 @@ public interface Request {
|
||||
@PUT("app/v1/updataPassword")
|
||||
Observable<BaseBean> updatePasswordByOld(@HeaderMap Map<String, String> headMap, @Body RequestBody requestBody);
|
||||
|
||||
//添加排程信息
|
||||
@POST("app/v1/addschedule")
|
||||
Observable<BaseBean<WaterPlanWeekEntity>> addSchedule(@HeaderMap Map<String, String> headMap, @Body RequestBody requestBody);
|
||||
|
||||
//解绑信息
|
||||
// 示例:ids array[string]
|
||||
//["2052921001527869441"]
|
||||
|
||||
@@ -5,20 +5,28 @@ import android.view.View;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.ckkj.water.EventMessage;
|
||||
import com.ckkj.water.R;
|
||||
import com.ckkj.water.base.BaseActivity;
|
||||
import com.ckkj.water.base.BaseFragment;
|
||||
import com.ckkj.water.databinding.AddWaterPlanLayoutBinding;
|
||||
import com.ckkj.water.login.LoginActivity;
|
||||
import com.ckkj.water.network.BaseBean;
|
||||
import com.ckkj.water.plan.entity.WaterPlanWeekEntity;
|
||||
import com.ckkj.water.plan.mvp.WaterPlanContract;
|
||||
import com.ckkj.water.plan.mvp.WaterPlanImpl;
|
||||
import com.ckkj.water.plan.mvp.WaterPlanPresenter;
|
||||
import com.ckkj.water.plate.adapter.ViewPagerAdapter;
|
||||
import com.ckkj.water.utils.manager.ActivityManager;
|
||||
import com.ckkj.water.utils.manager.WaterUserInfoManager;
|
||||
import com.ckkj.water.utils.show.ToastUtil;
|
||||
import com.gyf.immersionbar.ImmersionBar;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import de.greenrobot.event.EventBus;
|
||||
|
||||
/**
|
||||
* 添加浇水排程
|
||||
*/
|
||||
@@ -88,9 +96,34 @@ public class AddWaterPlanActivity extends BaseActivity<AddWaterPlanLayoutBinding
|
||||
break;
|
||||
|
||||
case R.id.tv_bind:
|
||||
WaterConfigFragment configFragment = (WaterConfigFragment) mFragmentList.get(0);
|
||||
if (!configFragment.checkConfigFinish()) {
|
||||
ToastUtil.showShort(mContext, "请完成配置");
|
||||
return;
|
||||
}else{
|
||||
if(!configFragment.isConfigSave){
|
||||
showDialogtext(mContext.getResources().getDrawable(R.mipmap.img_location), false, false,true,
|
||||
"提示", "关联设备需要保存排程配置,是否继续?",
|
||||
"取消", "继续", new BaseFragment.OnDialogClick() {
|
||||
@Override
|
||||
public void onCancelClick() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onConfirmClick() {
|
||||
configFragment.commitConfig();
|
||||
}
|
||||
});
|
||||
}else{
|
||||
ToastUtil.showShort(mContext, "继续");
|
||||
viewBinding.tvConfig.setSelected(false);
|
||||
viewBinding.tvBind.setSelected(true);
|
||||
viewBinding.viewpage.setCurrentItem(1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
break;
|
||||
|
||||
|
||||
@@ -111,4 +144,9 @@ public class AddWaterPlanActivity extends BaseActivity<AddWaterPlanLayoutBinding
|
||||
public void logOut(BaseBean bean) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveConfigSuccess(WaterPlanWeekEntity entity) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,4 +79,9 @@ public class BindDeviceFragment extends BaseFragment<PlanBindDeviceLayoutBinding
|
||||
public void logOut(BaseBean bean) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveConfigSuccess(WaterPlanWeekEntity entity) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,4 +78,9 @@ public class PlanDetailActivity extends BaseActivity<WaterPlanDetailLayoutBindin
|
||||
public void logOut(BaseBean bean) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveConfigSuccess(WaterPlanWeekEntity entity) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,12 +29,17 @@ import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 配置信息页面
|
||||
*/
|
||||
public class WaterConfigFragment extends BaseFragment<WaterConfigFragmentLayoutBinding, WaterPlanPresenter>
|
||||
implements WaterPlanContract.WaterPlanView {
|
||||
private List<WaterPlanWeekEntity.DetailsBean> mConfigList = new ArrayList<>();
|
||||
|
||||
private WaterPlanWeekEntity mConfigEntity;
|
||||
private WaterPlanWeekAdapter mWeekAdapter;
|
||||
private String mPlanName = "";
|
||||
public static boolean isConfigSave;
|
||||
|
||||
|
||||
@Override
|
||||
@@ -43,7 +48,7 @@ public class WaterConfigFragment extends BaseFragment<WaterConfigFragmentLayoutB
|
||||
List<WaterPlanWeekEntity.DetailsBean> list = new ArrayList<>();
|
||||
for(int i = 0; i < 7; i++){
|
||||
WaterPlanWeekEntity.DetailsBean bean = new WaterPlanWeekEntity.DetailsBean();
|
||||
bean.setWeekday(i);
|
||||
bean.setWeekday(i + 1);
|
||||
bean.setStatus("0");
|
||||
bean.setWeekName(ZYTimeUtils.getWeekName(i));
|
||||
list.add(bean);
|
||||
@@ -56,7 +61,6 @@ public class WaterConfigFragment extends BaseFragment<WaterConfigFragmentLayoutB
|
||||
|
||||
private void initListener() {
|
||||
setClick(viewBinding.tvCommit);
|
||||
//
|
||||
mWeekAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
|
||||
@Override
|
||||
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
|
||||
@@ -81,6 +85,39 @@ public class WaterConfigFragment extends BaseFragment<WaterConfigFragmentLayoutB
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
viewBinding.etPlanName.addTextChangedListener(new TextWatcher() {
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
|
||||
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {}
|
||||
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {
|
||||
if(!TextUtils.isEmpty(s.toString())){
|
||||
mPlanName = s.toString();
|
||||
mConfigEntity.setName(s.toString());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void onClick(View v){
|
||||
switch (v.getId()){
|
||||
case R.id.tv_commit:
|
||||
if(checkConfigFinish()){
|
||||
mPresenter.saveConfig(mConfigEntity);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void commitConfig(){
|
||||
if(checkConfigFinish()){
|
||||
mPresenter.saveConfig(mConfigEntity);
|
||||
}
|
||||
}
|
||||
|
||||
private void inputDuration(int position) {
|
||||
@@ -124,7 +161,8 @@ public class WaterConfigFragment extends BaseFragment<WaterConfigFragmentLayoutB
|
||||
TimePickerView pvTime = new TimePickerBuilder(mContext, new OnTimeSelectListener() {
|
||||
@Override
|
||||
public void onTimeSelect(Date date, View v) {
|
||||
mConfigEntity.getDetails().get(position).setStartTime(ZYTimeUtils.getStrTimeData_H_M(date));
|
||||
//用于提交接口
|
||||
mConfigEntity.getDetails().get(position).setStartTime(ZYTimeUtils.getStrTimeData(date));
|
||||
mWeekAdapter.notifyItemChanged(position);
|
||||
}
|
||||
}).setType(times)
|
||||
@@ -139,20 +177,13 @@ public class WaterConfigFragment extends BaseFragment<WaterConfigFragmentLayoutB
|
||||
view.setOnClickListener(this::onClick);
|
||||
}
|
||||
|
||||
public void onClick(View v){
|
||||
switch (v.getId()){
|
||||
case R.id.tv_select_time:
|
||||
break;
|
||||
|
||||
case R.id.tv_commit:
|
||||
if(checkConfigFinish()){
|
||||
ToastUtil.showShort(mContext,"提交");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private boolean checkConfigFinish() {
|
||||
/**
|
||||
* 检查配置信息是否完成
|
||||
* @return
|
||||
*/
|
||||
public boolean checkConfigFinish() {
|
||||
if(TextUtils.isEmpty(viewBinding.etPlanName.getText().toString())){
|
||||
ToastUtil.showShort(mContext,getString(R.string.plan_name_text_empty_hint));
|
||||
return false;
|
||||
@@ -185,6 +216,12 @@ public class WaterConfigFragment extends BaseFragment<WaterConfigFragmentLayoutB
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveConfigSuccess(WaterPlanWeekEntity entity) {
|
||||
ToastUtil.showShort(mContext, "排程新增成功");
|
||||
isConfigSave = true;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public WaterPlanPresenter createPresenter() {
|
||||
@@ -205,4 +242,6 @@ public class WaterConfigFragment extends BaseFragment<WaterConfigFragmentLayoutB
|
||||
public void logOut(BaseBean bean) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -89,4 +89,9 @@ public class WaterPlanFragment extends BaseFragment<WaterPlanFragmentBinding, Wa
|
||||
public void logOut(BaseBean bean) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveConfigSuccess(WaterPlanWeekEntity entity) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.ckkj.water.R;
|
||||
import com.ckkj.water.plan.entity.WaterPlanWeekEntity;
|
||||
import com.ckkj.water.utils.time.ZYTimeUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -42,7 +43,7 @@ public class WaterPlanWeekAdapter extends BaseQuickAdapter<WaterPlanWeekEntity.D
|
||||
helper.setText(R.id.tv_week_name,item.getWeekName());
|
||||
|
||||
if(!TextUtils.isEmpty(item.getStartTime())){
|
||||
helper.setText(R.id.tv_select_time,item.getStartTime());
|
||||
helper.setText(R.id.tv_select_time, ZYTimeUtils.yyyyMMdd2HH_mm(item.getStartTime()));
|
||||
}else{
|
||||
helper.setText(R.id.tv_select_time,"");
|
||||
tvStartTime.setHint(mContext.getString(R.string.select_water_time));
|
||||
|
||||
@@ -24,7 +24,7 @@ public class WaterPlanWeekEntity implements Serializable {
|
||||
private String userId;
|
||||
private String name;
|
||||
private Object deviceIds;
|
||||
private String status;
|
||||
private String status = "1";
|
||||
private List<DetailsBean> details;
|
||||
|
||||
@NoArgsConstructor
|
||||
@@ -53,12 +53,12 @@ public class WaterPlanWeekEntity implements Serializable {
|
||||
private String updateTime;
|
||||
private String id;
|
||||
private String scheduleId;
|
||||
private int weekday;
|
||||
private int weekday = 1;
|
||||
private String weekName;
|
||||
private String startTime;
|
||||
private int durationMin = 0;
|
||||
private Object zones;
|
||||
private String triggerType;
|
||||
private String status;
|
||||
private String triggerType = "0";
|
||||
private String status = "1";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
package com.ckkj.water.plan.mvp;
|
||||
|
||||
import com.ckkj.water.base.IView;
|
||||
import com.ckkj.water.plan.entity.WaterPlanWeekEntity;
|
||||
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class WaterPlanContract {
|
||||
public interface CallBack<T> {
|
||||
@@ -8,8 +11,12 @@ public class WaterPlanContract {
|
||||
void fail(String msg);
|
||||
}
|
||||
public interface DataModel{
|
||||
//新增排程
|
||||
void saveConfig(JSONObject json,CallBack callBack);
|
||||
}
|
||||
|
||||
public interface WaterPlanView extends IView {
|
||||
//排程保存成功g
|
||||
void saveConfigSuccess(WaterPlanWeekEntity entity);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,58 @@
|
||||
package com.ckkj.water.plan.mvp;
|
||||
|
||||
import com.ckkj.water.device.mvp.DeviceContract;
|
||||
import com.ckkj.water.network.BaseBean;
|
||||
import com.ckkj.water.network.LoginStateManager;
|
||||
import com.ckkj.water.network.NetWorkManager;
|
||||
import com.ckkj.water.plan.entity.WaterPlanWeekEntity;
|
||||
|
||||
import org.json.JSONObject;
|
||||
|
||||
import io.reactivex.Observer;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.annotations.NonNull;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
|
||||
public class WaterPlanImpl implements WaterPlanContract.DataModel{
|
||||
|
||||
/**
|
||||
* 新增排程
|
||||
* @param json
|
||||
* @param callBack
|
||||
*/
|
||||
@Override
|
||||
public void saveConfig(JSONObject json, WaterPlanContract.CallBack callBack) {
|
||||
try {
|
||||
NetWorkManager.getRequest().addSchedule(NetWorkManager.getToken(),NetWorkManager.toRequestBody(json))
|
||||
.subscribeOn(Schedulers.io())
|
||||
.unsubscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(new Observer<BaseBean<WaterPlanWeekEntity>>() {
|
||||
@Override
|
||||
public void onSubscribe(@NonNull Disposable d) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(@NonNull BaseBean<WaterPlanWeekEntity> bean) {
|
||||
if (bean.getCode() == 200) {
|
||||
callBack.success(bean.getData());
|
||||
} else {
|
||||
callBack.fail(bean.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(@NonNull Throwable e) {
|
||||
callBack.fail(e.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onComplete() {
|
||||
}
|
||||
});
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,17 @@
|
||||
package com.ckkj.water.plan.mvp;
|
||||
|
||||
import com.ckkj.water.AppConfig;
|
||||
import com.ckkj.water.base.BasePresenter;
|
||||
import com.ckkj.water.device.mvp.DeviceContract;
|
||||
import com.ckkj.water.device.mvp.DeviceImpl;
|
||||
import com.ckkj.water.login.mvp.LoginContract;
|
||||
import com.ckkj.water.login.mvp.LoginPresenter;
|
||||
import com.ckkj.water.network.BaseBean;
|
||||
import com.ckkj.water.plan.entity.WaterPlanWeekEntity;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class WaterPlanPresenter extends BasePresenter<WaterPlanContract.WaterPlanView> {
|
||||
private WaterPlanImpl impl;
|
||||
@@ -10,4 +19,45 @@ public class WaterPlanPresenter extends BasePresenter<WaterPlanContract.WaterPla
|
||||
public WaterPlanPresenter(WaterPlanImpl impl) {
|
||||
this.impl = impl;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存排程信息
|
||||
* @param entity
|
||||
*/
|
||||
public void saveConfig(WaterPlanWeekEntity entity) {
|
||||
try {
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("name", entity.getName());
|
||||
json.put("status", entity.getStatus());
|
||||
JSONArray array = new JSONArray();
|
||||
for(WaterPlanWeekEntity.DetailsBean detailsBean : entity.getDetails()){
|
||||
JSONObject jsonDetails = new JSONObject();
|
||||
jsonDetails.put("weekday", detailsBean.getWeekday());
|
||||
jsonDetails.put("startTime", detailsBean.getStartTime());
|
||||
jsonDetails.put("durationMin", detailsBean.getDurationMin());
|
||||
jsonDetails.put("triggerType", detailsBean.getTriggerType());
|
||||
jsonDetails.put("status", detailsBean.getStatus());
|
||||
array.put(jsonDetails);
|
||||
}
|
||||
json.put("details", array);
|
||||
impl.saveConfig(json, new WaterPlanContract.CallBack<WaterPlanWeekEntity>() {
|
||||
@Override
|
||||
public void success(WaterPlanWeekEntity bean) {
|
||||
if(WaterPlanPresenter.this.getView() != null){
|
||||
WaterPlanPresenter.this.getView().saveConfigSuccess(bean);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fail(String msg) {
|
||||
if(WaterPlanPresenter.this.getView() != null){
|
||||
WaterPlanPresenter.this.getView().showError(msg);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
} catch (JSONException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -229,10 +229,38 @@ public class ZYTimeUtils {
|
||||
public static String getStrTimeData(Date date) {
|
||||
String timeString = null;
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
|
||||
timeString = sdf.format(new Date());//单位秒
|
||||
timeString = sdf.format(date);//单位秒
|
||||
return timeString;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* yyyy-MM-dd HH:mm 转换为 HH:mm显示
|
||||
* @param date
|
||||
* @return
|
||||
*/
|
||||
public static String yyyyMMdd2HH_mm(String date) {
|
||||
if (TextUtils.isEmpty(date)) {
|
||||
return "";
|
||||
}
|
||||
try {
|
||||
SimpleDateFormat sourceFormat =
|
||||
new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.getDefault());
|
||||
|
||||
SimpleDateFormat targetFormat =
|
||||
new SimpleDateFormat("HH:mm", Locale.getDefault());
|
||||
|
||||
Date parseDate = sourceFormat.parse(date);
|
||||
|
||||
return parseDate == null ? "" : targetFormat.format(parseDate);
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
public static String getStrTimeData_H_M(Date date) {
|
||||
String timeString = null;
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
|
||||
|
||||
Reference in New Issue
Block a user