From a4f9d630dfd8bbf82f388a50d20e0d380b00fda6 Mon Sep 17 00:00:00 2001 From: fengjignqi <15192412330@163.com> Date: Wed, 24 Jun 2026 10:05:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=BB=E9=99=A4=E9=83=A8=E5=88=86=E6=97=A0?= =?UTF-8?q?=E7=94=A8=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../water/device/DeviceControlActivity.java | 4 +- .../ckkj/water/device/SelectWifiActivity.java | 14 +- .../ckkj/water/history/HistoryFragment.java | 4 +- .../water/history/mvp/HistoryPresenter.java | 6 +- .../water/index/entity/WaterDeviceEntity.java | 1 + .../ckkj/water/login/RegisterActivity.java | 11 + .../ckkj/water/plan/AddWaterPlanActivity.java | 10 +- .../ckkj/water/plan/BindDeviceFragment.java | 8 +- .../ckkj/water/plan/WaterConfigFragment.java | 761 ++++--- .../ckkj/water/plan/WaterConfigFragment2.java | 412 ++++ .../water/plan/WaterConfigFragment_copy.java | 715 ------- .../adapter/ViewPagerAdapter.java | 4 +- .../com/ckkj/water/plate/PlateFragment.java | 114 -- .../water/plate/adapter/CangGanAdapter.java | 40 - .../water/plate/adapter/DayunAdapter.java | 76 - .../plate/adapter/DayunColumnAdapter.java | 167 -- .../plate/adapter/LiuNianColumnAdapter.java | 77 - .../plate/adapter/LiuYueColumnAdapter.java | 75 - .../water/plate/adapter/LiunianAdapter.java | 63 - .../water/plate/adapter/LiuyueAdapter.java | 64 - .../plate/adapter/PaipanHistoryAdapter.java | 60 - .../water/plate/adapter/ShenshaAdapter.java | 30 - .../water/plate/adapter/SizhuAdapter.java | 128 -- .../water/plate/entity/BaziPaiPanEntity.java | 1780 ----------------- .../water/plate/entity/BaziResultBean.java | 661 ------ .../plate/entity/BaziSaveSuccessEntity.java | 62 - .../ckkj/water/plate/entity/PaipanCache.java | 17 - .../plate/entity/PaipanHistoryEntity.java | 76 - .../ckkj/water/plate/mvp/PlateContract.java | 63 - .../com/ckkj/water/plate/mvp/PlateImpl.java | 424 ---- .../ckkj/water/plate/mvp/PlatePresenter.java | 225 --- .../{ClickUtils.java => FastClickUtils.java} | 2 +- app/src/main/res/values-en/strings.xml | 14 + app/src/main/res/values/strings.xml | 14 + 34 files changed, 1009 insertions(+), 5173 deletions(-) create mode 100644 app/src/main/java/com/ckkj/water/plan/WaterConfigFragment2.java delete mode 100644 app/src/main/java/com/ckkj/water/plan/WaterConfigFragment_copy.java rename app/src/main/java/com/ckkj/water/{plate => plan}/adapter/ViewPagerAdapter.java (92%) delete mode 100644 app/src/main/java/com/ckkj/water/plate/PlateFragment.java delete mode 100644 app/src/main/java/com/ckkj/water/plate/adapter/CangGanAdapter.java delete mode 100644 app/src/main/java/com/ckkj/water/plate/adapter/DayunAdapter.java delete mode 100644 app/src/main/java/com/ckkj/water/plate/adapter/DayunColumnAdapter.java delete mode 100644 app/src/main/java/com/ckkj/water/plate/adapter/LiuNianColumnAdapter.java delete mode 100644 app/src/main/java/com/ckkj/water/plate/adapter/LiuYueColumnAdapter.java delete mode 100644 app/src/main/java/com/ckkj/water/plate/adapter/LiunianAdapter.java delete mode 100644 app/src/main/java/com/ckkj/water/plate/adapter/LiuyueAdapter.java delete mode 100644 app/src/main/java/com/ckkj/water/plate/adapter/PaipanHistoryAdapter.java delete mode 100644 app/src/main/java/com/ckkj/water/plate/adapter/ShenshaAdapter.java delete mode 100644 app/src/main/java/com/ckkj/water/plate/adapter/SizhuAdapter.java delete mode 100644 app/src/main/java/com/ckkj/water/plate/entity/BaziPaiPanEntity.java delete mode 100644 app/src/main/java/com/ckkj/water/plate/entity/BaziResultBean.java delete mode 100644 app/src/main/java/com/ckkj/water/plate/entity/BaziSaveSuccessEntity.java delete mode 100644 app/src/main/java/com/ckkj/water/plate/entity/PaipanCache.java delete mode 100644 app/src/main/java/com/ckkj/water/plate/entity/PaipanHistoryEntity.java delete mode 100644 app/src/main/java/com/ckkj/water/plate/mvp/PlateContract.java delete mode 100644 app/src/main/java/com/ckkj/water/plate/mvp/PlateImpl.java delete mode 100644 app/src/main/java/com/ckkj/water/plate/mvp/PlatePresenter.java rename app/src/main/java/com/ckkj/water/utils/{ClickUtils.java => FastClickUtils.java} (96%) diff --git a/app/src/main/java/com/ckkj/water/device/DeviceControlActivity.java b/app/src/main/java/com/ckkj/water/device/DeviceControlActivity.java index 027060b..fffd7c6 100644 --- a/app/src/main/java/com/ckkj/water/device/DeviceControlActivity.java +++ b/app/src/main/java/com/ckkj/water/device/DeviceControlActivity.java @@ -21,7 +21,7 @@ import com.ckkj.water.device.mvp.DeviceImpl; import com.ckkj.water.device.mvp.DevicePresenter; import com.ckkj.water.index.entity.WaterDeviceEntity; import com.ckkj.water.network.BaseBean; -import com.ckkj.water.utils.ClickUtils; +import com.ckkj.water.utils.FastClickUtils; import com.ckkj.water.utils.manager.PowerIconManage; import com.ckkj.water.utils.manager.ThemeManager; import com.ckkj.water.utils.show.ToastUtil; @@ -295,7 +295,7 @@ public class DeviceControlActivity extends BaseActivity { - ToastUtil.showShort(mContext, "扫描失败: " + e.getMessage()); + ToastUtil.showShort(mContext, getString(R.string.scan_failed) + e.getMessage()); hideDialogLoading(); }); } diff --git a/app/src/main/java/com/ckkj/water/history/HistoryFragment.java b/app/src/main/java/com/ckkj/water/history/HistoryFragment.java index 73771e7..09d2fa8 100644 --- a/app/src/main/java/com/ckkj/water/history/HistoryFragment.java +++ b/app/src/main/java/com/ckkj/water/history/HistoryFragment.java @@ -15,9 +15,7 @@ import com.ckkj.water.history.entity.WateringRecord; import com.ckkj.water.history.mvp.HistoryContract; import com.ckkj.water.history.mvp.HistoryPresenter; import com.ckkj.water.network.BaseBean; -import com.ckkj.water.plan.BindDeviceFragment; -import com.ckkj.water.plan.WaterConfigFragment; -import com.ckkj.water.plate.adapter.ViewPagerAdapter; +import com.ckkj.water.plan.adapter.ViewPagerAdapter; import com.ckkj.water.utils.manager.ThemeManager; import com.gyf.immersionbar.ImmersionBar; diff --git a/app/src/main/java/com/ckkj/water/history/mvp/HistoryPresenter.java b/app/src/main/java/com/ckkj/water/history/mvp/HistoryPresenter.java index ac20d1f..c768c13 100644 --- a/app/src/main/java/com/ckkj/water/history/mvp/HistoryPresenter.java +++ b/app/src/main/java/com/ckkj/water/history/mvp/HistoryPresenter.java @@ -28,19 +28,19 @@ public class HistoryPresenter extends BasePresenter public void getWaterHistoryList(int mCurrentPage, String mFilterStartTime, String mFilterEndTime, int mFilterType) { Map map = new HashMap<>(); map.put("pageNum",mCurrentPage+""); + if(!TextUtils.isEmpty(mFilterStartTime)){ -// map.put("beginTime",mFilterStartTime); map.put("params[beginTime]", mFilterStartTime); } if(!TextUtils.isEmpty(mFilterStartTime)){ -// map.put("endTime",mFilterEndTime); map.put("params[endTime]", mFilterEndTime); - } + if(mFilterType != -1){ map.put("triggerType",mFilterType+""); } + impl.getHistoryList(map, new HistoryContract.CallBack>() { @Override public void success(List list,int total) { diff --git a/app/src/main/java/com/ckkj/water/index/entity/WaterDeviceEntity.java b/app/src/main/java/com/ckkj/water/index/entity/WaterDeviceEntity.java index e179368..6a69caa 100644 --- a/app/src/main/java/com/ckkj/water/index/entity/WaterDeviceEntity.java +++ b/app/src/main/java/com/ckkj/water/index/entity/WaterDeviceEntity.java @@ -77,5 +77,6 @@ public class WaterDeviceEntity implements Serializable { private Object deviceImgX; private String powerLevelUpdatatimeX; private Object expirationTimeX; + private String checkStatus = "0"; } } diff --git a/app/src/main/java/com/ckkj/water/login/RegisterActivity.java b/app/src/main/java/com/ckkj/water/login/RegisterActivity.java index 581f1f1..136099c 100644 --- a/app/src/main/java/com/ckkj/water/login/RegisterActivity.java +++ b/app/src/main/java/com/ckkj/water/login/RegisterActivity.java @@ -13,6 +13,7 @@ import com.ckkj.water.login.mvp.LoginContract; import com.ckkj.water.login.mvp.LoginImpl; import com.ckkj.water.login.mvp.LoginPresenter; import com.ckkj.water.network.BaseBean; +import com.ckkj.water.utils.FastClickUtils; import com.ckkj.water.utils.manager.ThemeManager; import com.ckkj.water.utils.number.PhoneNumberUtils; import com.ckkj.water.utils.show.ToastUtil; @@ -61,6 +62,11 @@ public class RegisterActivity extends BaseActivity { - WaterConfigFragment_copy configFragment = (WaterConfigFragment_copy) mFragmentList.get(0); + WaterConfigFragment configFragment = (WaterConfigFragment) mFragmentList.get(0); configFragment.setEditEntity(mEditEntity); PlanBoundDeviceFragment boundDeviceFragment = (PlanBoundDeviceFragment) mFragmentList.get(1); @@ -137,7 +137,7 @@ public class AddWaterPlanActivity extends BaseActivity selected = new ArrayList<>(); for(WaterDeviceEntity.DeviceListBean bean : mDeviceList){ - if(bean.getStatus().equals("1")){ + if(bean.getCheckStatus().equals("1")){ isSelected = true; selected.add(bean.getDeviceNo()); } diff --git a/app/src/main/java/com/ckkj/water/plan/WaterConfigFragment.java b/app/src/main/java/com/ckkj/water/plan/WaterConfigFragment.java index 3889670..1e91178 100644 --- a/app/src/main/java/com/ckkj/water/plan/WaterConfigFragment.java +++ b/app/src/main/java/com/ckkj/water/plan/WaterConfigFragment.java @@ -5,6 +5,9 @@ import android.text.Editable; import android.text.TextUtils; import android.text.TextWatcher; import android.view.View; +import android.view.ViewGroup; + +import androidx.recyclerview.widget.RecyclerView; import com.bigkoo.pickerview.builder.TimePickerBuilder; import com.bigkoo.pickerview.listener.OnTimeSelectListener; @@ -13,55 +16,234 @@ import com.chad.library.adapter.base.BaseQuickAdapter; import com.ckkj.water.R; import com.ckkj.water.base.BaseActivity; import com.ckkj.water.base.BaseFragment; -import com.ckkj.water.databinding.WaterConfigFragmentLayoutBinding; +import com.ckkj.water.databinding.WaterConfigFragmentLayoutCopyBinding; import com.ckkj.water.index.entity.WaterDeviceEntity; import com.ckkj.water.network.BaseBean; -import com.ckkj.water.plan.adapter.WaterPlanWeekAdapter; +import com.ckkj.water.plan.adapter.WaterPlanTimeDataAdapter; +import com.ckkj.water.plan.adapter.WaterPlanWeekAdapter_copy; 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.utils.FastClickUtils; import com.ckkj.water.utils.show.ToastUtil; import com.ckkj.water.utils.time.ZYTimeUtils; +import com.yanzhenjie.recyclerview.OnItemMenuClickListener; +import com.yanzhenjie.recyclerview.SwipeMenu; +import com.yanzhenjie.recyclerview.SwipeMenuBridge; +import com.yanzhenjie.recyclerview.SwipeMenuCreator; +import com.yanzhenjie.recyclerview.SwipeMenuItem; +import com.yanzhenjie.recyclerview.SwipeRecyclerView; +import com.yanzhenjie.recyclerview.widget.DefaultItemDecoration; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Locale; -/** - * 配置信息页面 - */ -public class WaterConfigFragment extends BaseFragment +public class WaterConfigFragment extends BaseFragment implements WaterPlanContract.WaterPlanView { - private List mConfigList = new ArrayList<>(); - //用户本地操作排程时的数据 - private WaterPlanWeekEntity mConfigEntity; - //排程接口新增成功之后,接口返回的该排程在远端的数据信息 - private WaterPlanWeekEntity mRemoteConfigEntity; - private WaterPlanWeekAdapter mWeekAdapter; - private String mPlanName = ""; - public static boolean isConfigSave; + //本地新增排程时的实体 + private WaterPlanWeekEntity mLocalEntity; + //新增之后返回的实体 + private WaterPlanWeekEntity mRemoteEntity; + private List weekList = new ArrayList<>(); + private List timeList = new ArrayList<>(); + private WaterPlanWeekAdapter_copy mWeekAdapter; + private WaterPlanTimeDataAdapter mTimeAdapter; + private RecyclerView.ItemDecoration itemDecoration; + private boolean isConfigSubmitted = false; //当下是否编辑模式 private boolean mIsEditMode = false; + @Override public void initData(Bundle state) { - mConfigEntity = new WaterPlanWeekEntity(); + // 设置菜单创建器。 + viewBinding.rvTimes.setSwipeMenuCreator(mSwipeMenuCreator); + viewBinding.rvTimes.setOnItemMenuClickListener(mItemMenuClickListener); + itemDecoration = new DefaultItemDecoration + (mContext.getColor(R.color.transparent),20,40); + viewBinding.rvTimes.addItemDecoration(itemDecoration); List list = new ArrayList<>(); for(int i = 0; i < 7; i++){ WaterPlanWeekEntity.DetailsBean bean = new WaterPlanWeekEntity.DetailsBean(); + WaterPlanWeekEntity.TimeDataBean timeData = new WaterPlanWeekEntity.TimeDataBean(); + List timeDataList = new ArrayList<>(); + timeDataList.add(timeData); + bean.setTimeData(timeDataList); bean.setWeekday(i + 1); - bean.setStatus("0"); + bean.setStatus("1"); bean.setWeekName(ZYTimeUtils.getWeekName(i,mContext)); + bean.setTriggerType("0"); list.add(bean); } - mConfigEntity.setDetails(list); - mWeekAdapter = new WaterPlanWeekAdapter(mContext,R.layout.plan_week_config_item, mConfigEntity.getDetails()); - viewBinding.rvWeekConfig.setAdapter(mWeekAdapter); + weekList = list; + //这里先处理新增,后面再处理编辑 + mLocalEntity = new WaterPlanWeekEntity(); + mLocalEntity.setStatus("1"); + mLocalEntity.setDetails(weekList); + //顶部周一、周二。。。。。 + mWeekAdapter = new WaterPlanWeekAdapter_copy(mContext, R.layout.plan_period_item,list); + viewBinding.rvWeek.setAdapter(mWeekAdapter); + //周期对应的 时间配置 + List timeList = weekList.get(0).getTimeData(); + mTimeAdapter = new WaterPlanTimeDataAdapter(mContext,R.layout.include_plan_time_item_layout,timeList); + viewBinding.rvTimes.setAdapter(mTimeAdapter); initListener(); + } + + + private void initListener() { + setClick(viewBinding.tvCommit); + setClick(viewBinding.imgAdd); + setClick(viewBinding.switchButton); + //头部 周一~周日 + mWeekAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() { + @Override + public void onItemClick(BaseQuickAdapter adapter, View view, int position) { + mWeekAdapter.setSelPos(position); + List timeList = weekList.get(position).getTimeData(); + mTimeAdapter.setNewData(timeList); + viewBinding.switchButton.setChecked(weekList.get(position).getStatus().equals("1")); + } + }); + //周期对应的 时间配置 + mTimeAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() { + @Override + public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) { + switch (view.getId()){ + case R.id.tv_select_time: + selectStartTime(position); + break; + + case R.id.tv_plan_duration: + inputDuration(position); + break; + } + } + }); + //输入框监听 + viewBinding.editPlanName.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) { + String planName = ""; + if(!TextUtils.isEmpty(s.toString())){ + planName = s.toString(); + } + mLocalEntity.setName(planName); + } + }); + } + + + private void setClick(View view) { + view.setOnClickListener(this::onClick); + } + + public void onClick(View v){ + int selPos = mWeekAdapter.getmPos(); + switch (v.getId()){ + + case R.id.img_add: + isConfigSubmitted = false; + WaterPlanWeekEntity.TimeDataBean timeDataAdd = new WaterPlanWeekEntity.TimeDataBean(); + weekList.get(selPos).getTimeData().add(timeDataAdd); + mTimeAdapter.notifyItemInserted(weekList.get(selPos).getTimeData().size() - 1); + break; + + case R.id.switch_button: + if(weekList.get(selPos).getStatus().equals("0")){ + weekList.get(selPos).setStatus("1"); + viewBinding.switchButton.setChecked(true); + }else{ + weekList.get(selPos).setStatus("0"); + viewBinding.switchButton.setChecked(false); + } + break; + + case R.id.tv_commit: + // 防止快速点击 + if (!FastClickUtils.onclickTimes()) { + return; + } + // 如果已经保存过(mRemoteEntity 不为空),则走更新逻辑;否则走新增逻辑 + if (mRemoteEntity != null) { + updateConfig(); + } else { + validateAndSave(); + } + break; + } + } + + public boolean isConfigSubmitted() { + return isConfigSubmitted; + } + + /** + * 获取当前排程名称 + * @return 排程名称 + */ + public String getPlanName() { + if (mLocalEntity != null) { + return mLocalEntity.getName(); + } + return ""; + } + + /** + * 检查是否至少配置了一天的时间 + * @return true表示有时间配置,false表示没有配置任何时间 + */ + public boolean hasTimeConfig() { + for (WaterPlanWeekEntity.DetailsBean dayBean : weekList) { + List timeDataList = dayBean.getTimeData(); + if (timeDataList != null && !timeDataList.isEmpty()) { + for (WaterPlanWeekEntity.TimeDataBean timeData : timeDataList) { + if (!TextUtils.isEmpty(timeData.getStartTime()) && timeData.getDurationMin() > 0) { + return true; + } + } + } + } + return false; + } + + /** + * 校验并保存配置(供外部调用) + * @return true表示校验通过并已提交保存,false表示校验失败 + */ + public boolean commitConfig() { + return validateAndSave(); + } + + /** + * 更新配置(用于数据变更后调用) + * @return true表示校验通过并已提交更新,false表示校验失败 + */ + public boolean updateConfig() { + if (!validateConfig()) { + return false; + } + // 调用更新接口 + if(mLocalEntity != null){ + mPresenter.updateConfig(mLocalEntity); + } + return true; + } + + /** * 设置编辑模式的排程数据 * @param entity 从详情页传来的排程数据 @@ -72,18 +254,18 @@ public class WaterConfigFragment extends BaseFragment detailsList = new ArrayList<>(); for (WaterPlanWeekEntity.DetailsBean bean : source.getDetails()) { WaterPlanWeekEntity.DetailsBean newBean = new WaterPlanWeekEntity.DetailsBean(); + List timeDataList = new ArrayList<>(); + for(WaterPlanWeekEntity.TimeDataBean timeDataBean : bean.getTimeData()){ + WaterPlanWeekEntity.TimeDataBean newTimeDataBean = new WaterPlanWeekEntity.TimeDataBean(); + newTimeDataBean.setStartTime(ZYTimeUtils.formatHHmm(timeDataBean.getStartTime())); + newTimeDataBean.setDurationMin(timeDataBean.getDurationMin()); + timeDataList.add(newTimeDataBean); + } + newBean.setTimeData(timeDataList); newBean.setId(bean.getId()); newBean.setWeekday(bean.getWeekday()); newBean.setWeekName(ZYTimeUtils.getWeekName(bean.getWeekday() - 1,mContext)); newBean.setStatus(bean.getStatus()); - newBean.setStartTime(ZYTimeUtils.formatHHmm(bean.getStartTime())); - newBean.setDurationMin(bean.getDurationMin()); detailsList.add(newBean); } target.setDetails(detailsList); @@ -117,112 +305,218 @@ public class WaterConfigFragment extends BaseFragment timeDataList = dayBean.getTimeData(); + if (timeDataList != null && !timeDataList.isEmpty()) { + for (WaterPlanWeekEntity.TimeDataBean timeData : timeDataList) { + if (!TextUtils.isEmpty(timeData.getStartTime()) && timeData.getDurationMin() > 0) { + allTimeEmpty = false; break; + } } } - }); + if (!allTimeEmpty) break; + } + if (allTimeEmpty) { + ToastUtil.showShort(mContext, getString(R.string.schedule_select_at_least_one_day)); + return false; + } + // 校验每一天内的时间是否有冲突 + String conflictMsg = checkTimeConflict(); + if (conflictMsg != null) { + ToastUtil.showShort(mContext, conflictMsg); + return false; + } + return true; + } - viewBinding.etPlanName.addTextChangedListener(new TextWatcher() { - @Override - public void beforeTextChanged(CharSequence s, int start, int count, int after) {} + /** + * 校验配置并保存(新增) + * @return true表示校验通过并已提交保存,false表示校验失败 + */ + private boolean validateAndSave() { + if (!validateConfig()) { + return false; + } + if(mLocalEntity != null){ + mPresenter.saveConfig(mLocalEntity); + return true; + } + return false; + } - @Override - public void onTextChanged(CharSequence s, int start, int before, int count) {} + /** + * 获取远程实体(用于AddWaterPlanActivity比对) + * @return mRemoteEntity + */ + public WaterPlanWeekEntity getRemoteEntity() { + return mRemoteEntity; + } - @Override - public void afterTextChanged(Editable s) { - if(!TextUtils.isEmpty(s.toString())){ - mPlanName = s.toString(); - mConfigEntity.setName(s.toString()); + /** + * 获取本地实体(用于AddWaterPlanActivity比对) + * @return mLocalEntity + */ + public WaterPlanWeekEntity getLocalEntity() { + return mLocalEntity; + } + + /** + * 检查本地数据是否与远程数据有变更 + * @return true表示有变更,false表示无变更 + */ + public boolean hasDataChanged() { + if (mRemoteEntity == null || mLocalEntity == null) { + return false; + } + + // 比对排程名称 + String localName = mLocalEntity.getName(); + String remoteName = mRemoteEntity.getName(); + if (!TextUtils.isEmpty(localName) && !localName.equals(remoteName)) { + return true; + } + + // 比对排程状态 + String localStatus = mLocalEntity.getStatus(); + String remoteStatus = mRemoteEntity.getStatus(); + if (!TextUtils.isEmpty(localStatus) && !localStatus.equals(remoteStatus)) { + return true; + } + + // 比对 details 列表 + List localDetails = mLocalEntity.getDetails(); + List remoteDetails = mRemoteEntity.getDetails(); + + if (localDetails == null && remoteDetails == null) { + return false; + } + if (localDetails == null || remoteDetails == null) { + return true; + } + if (localDetails.size() != remoteDetails.size()) { + return true; + } + + // 逐个比对每个 DetailsBean + for (int i = 0; i < localDetails.size(); i++) { + WaterPlanWeekEntity.DetailsBean localDetail = localDetails.get(i); + WaterPlanWeekEntity.DetailsBean remoteDetail = remoteDetails.get(i); + + // 比对 status + String localDetailStatus = localDetail.getStatus(); + String remoteDetailStatus = remoteDetail.getStatus(); + if (!TextUtils.isEmpty(localDetailStatus) && !localDetailStatus.equals(remoteDetailStatus)) { + return true; + } + + // 比对 triggerType + String localTriggerType = localDetail.getTriggerType(); + String remoteTriggerType = remoteDetail.getTriggerType(); + if (!TextUtils.isEmpty(localTriggerType) && !localTriggerType.equals(remoteTriggerType)) { + return true; + } + + // 比对 timeData 列表 + List localTimeData = localDetail.getTimeData(); + List remoteTimeData = remoteDetail.getTimeData(); + + if (localTimeData == null && remoteTimeData == null) { + continue; + } + if (localTimeData == null || remoteTimeData == null) { + return true; + } + if (localTimeData.size() != remoteTimeData.size()) { + return true; + } + + // 逐个比对 TimeDataBean + for (int j = 0; j < localTimeData.size(); j++) { + WaterPlanWeekEntity.TimeDataBean localTime = localTimeData.get(j); + WaterPlanWeekEntity.TimeDataBean remoteTime = remoteTimeData.get(j); + + // 比对 startTime + String localStartTime = localTime.getStartTime(); + String remoteStartTime = remoteTime.getStartTime(); + if (!TextUtils.isEmpty(localStartTime) && !localStartTime.equals(remoteStartTime)) { + return true; + } + + // 比对 durationMin + if (localTime.getDurationMin() != remoteTime.getDurationMin()) { + return true; } } - }); + } + + return false; } - public void onClick(View v){ - switch (v.getId()){ - case R.id.tv_commit: - commitConfig(); - break; + /** + * 校验每一天内的时间配置是否有冲突 + * @return null表示无冲突,返回具体提示信息表示有冲突 + */ + private String checkTimeConflict() { + SimpleDateFormat sdf = new SimpleDateFormat("HH:mm", Locale.getDefault()); + + for (int dayIndex = 0; dayIndex < weekList.size(); dayIndex++) { + WaterPlanWeekEntity.DetailsBean dayBean = weekList.get(dayIndex); + List timeDataList = dayBean.getTimeData(); + + if (timeDataList == null || timeDataList.isEmpty()) { + continue; + } + + // 收集该天所有有效的时间段(开始时间 + 结束时间) + List periods = new ArrayList<>(); + for (WaterPlanWeekEntity.TimeDataBean timeData : timeDataList) { + if (TextUtils.isEmpty(timeData.getStartTime()) || timeData.getDurationMin() <= 0) { + continue; + } + try { + Date startDate = sdf.parse(timeData.getStartTime()); + long startMinutes = startDate.getHours() * 60 + startDate.getMinutes(); + long endMinutes = startMinutes + timeData.getDurationMin(); + periods.add(new long[]{startMinutes, endMinutes}); + } catch (Exception e) { + e.printStackTrace(); + } + } + + // 检查是否有冲突 + for (int i = 0; i < periods.size(); i++) { + for (int j = i + 1; j < periods.size(); j++) { + long[] p1 = periods.get(i); + long[] p2 = periods.get(j); + // 冲突条件:一个段的开始时间在另一个段的结束时间之前(即有重叠) + // 不冲突:p1.end <= p2.start 或 p2.end <= p1.start + if (!(p1[1] <= p2[0] || p2[1] <= p1[0])) { + String dayName = dayBean.getWeekName(); + return dayName + getString(R.string.schedule_time_conflict); + } + } + } } + return null; } - - public void commitConfig(){ - if (!checkConfigFinish()) { - return; - } - // mRemoteConfigEntity 为空,说明是新增场景 - if (mRemoteConfigEntity == null) { - mPresenter.saveConfig(mConfigEntity); - return; - } - // mRemoteConfigEntity 不为空,说明是更新场景 - if (isConfigChanged()) { - // TODO: 触发更新接口,调用 mPresenter.updateConfig(mConfigEntity) - mPresenter.updateConfig(mConfigEntity); - } else { - ToastUtil.showShort(mContext, "配置没有变化,无需保存"); - } - } - - private void inputDuration(int position) { - showEditDialog(getString(R.string.device_work_times_title), - getString(R.string.input_water_plan_time), - mConfigEntity.getDetails().get(position).getDurationMin() == 0 ? - "" : mConfigEntity.getDetails().get(position).getDurationMin() + "", - true, - getString(R.string.cancel_text), - getString(R.string.confirm_text), - BaseFragment.INPUT_TYPE_NUMBER, - new BaseActivity.OnDialogClick() { - @Override - public void onCancelClick() { - } - - @Override - public void onConfirmClisk() { - } - - @Override - public void onConfirmClisk(String content) { - if(Integer.parseInt(content) <= 0){ - ToastUtil.showShort(mContext, getString(R.string.input_water_plan_time_error)); - return; - } - mConfigEntity.getDetails().get(position).setDurationMin(Integer.parseInt(content)); - mWeekAdapter.notifyItemChanged(position); - } - - @Override - public void onView1Click() { - - } - }); - } - + /** + * 选择开始时间 + * @param position + */ private void selectStartTime(int position) { boolean times[] = {false, false, false, true, true, false}; //时间选择器 @@ -230,8 +524,9 @@ public class WaterConfigFragment extends BaseFragment localDetails = mConfigEntity.getDetails(); - List remoteDetails = mRemoteConfigEntity.getDetails(); - for (int i = 0; i < localDetails.size(); i++) { - WaterPlanWeekEntity.DetailsBean local = localDetails.get(i); - WaterPlanWeekEntity.DetailsBean remote = remoteDetails.get(i); - // 勾选状态下对比状态、时间、时长 - if ("1".equals(local.getStatus())) { - if (!equalsString(local.getStatus(), remote.getStatus()) - || !equalsString(local.getStartTime(), ZYTimeUtils.formatHHmm(remote.getStartTime())) - || local.getDurationMin() != remote.getDurationMin()) { - return true; - } - } else { - // 未勾选状态下只对比勾选状态,不关心时间/时长 - if (!equalsString(local.getStatus(), remote.getStatus())) { - return true; - } - } - } - return false; + private void inputDuration(int position) { + WaterPlanWeekEntity.TimeDataBean timeData = weekList.get(mWeekAdapter.getmPos()).getTimeData().get(position); + showEditDialog(getString(R.string.device_work_times_title), + getString(R.string.input_water_plan_time), + timeData.getDurationMin() == 0 ? "" : timeData.getDurationMin() + "", + true, + getString(R.string.cancel_text), + getString(R.string.confirm_text), + BaseFragment.INPUT_TYPE_NUMBER, + new BaseActivity.OnDialogClick() { + @Override + public void onCancelClick() {} + + @Override + public void onConfirmClisk() {} + + @Override + public void onConfirmClisk(String content) { + if (Integer.parseInt(content) <= 0) { + ToastUtil.showShort(mContext, getString(R.string.input_water_plan_time_error)); + return; + } + timeData.setDurationMin(Integer.parseInt(content)); + mTimeAdapter.notifyItemChanged(position); + } + + @Override + public void onView1Click() { + + } + }); } - private boolean equalsString(String s1, String s2) { - if (s1 == null && s2 == null) return true; - if (s1 == null || s2 == null) return false; - return s1.equals(s2); - } /** - * 检查配置信息是否完成 - * @return + * 侧滑相关 */ - public boolean checkConfigFinish() { - if(TextUtils.isEmpty(viewBinding.etPlanName.getText().toString())){ - ToastUtil.showShort(mContext,getString(R.string.plan_name_text_empty_hint)); - return false; + // 创建菜单: + SwipeMenuCreator mSwipeMenuCreator = new SwipeMenuCreator() { + @Override + public void onCreateMenu(SwipeMenu leftMenu, SwipeMenu rightMenu, int position) { + SwipeMenuItem deleteItem = new SwipeMenuItem(mContext); + deleteItem.setBackground(mContext.getResources().getDrawable(R.drawable.shape_item_delete_bg)); + deleteItem.setText(getString(R.string.button_delete)); + deleteItem.setTextColor(mContext.getResources().getColor(R.color.white)); + deleteItem.setHeight(ViewGroup.LayoutParams.MATCH_PARENT); + deleteItem.setWidth((int) mContext.getResources().getDimension(R.dimen.dp_90)); + // 各种文字和图标属性设置。 + rightMenu.addMenuItem(deleteItem); // 在Item右侧添加一个菜单。 } - List list = mConfigEntity.getDetails(); - //是否勾选了排程日期 - boolean isSelectOne = false; - if(list != null){ - for(WaterPlanWeekEntity.DetailsBean bean : list){ - if(bean.getStatus().equals("1")){ - isSelectOne = true; - } - } - } - if(!isSelectOne){ - ToastUtil.showShort(mContext,getString(R.string.plan_week_empty_hint)); - return false; - } - //是否配置了排程日期的时间 - boolean isPlanConfig = false; - for(WaterPlanWeekEntity.DetailsBean bean : list){ - if(bean.getStatus().equals("1")){ - if((TextUtils.isEmpty(bean.getStartTime()) || - bean.getDurationMin() == 0)){ - ToastUtil.showShort(mContext,"请完成" + bean.getWeekName() + "的时间配置"); - return false; + }; + + // 菜单点击监听。 + OnItemMenuClickListener mItemMenuClickListener = new OnItemMenuClickListener() { + @Override + public void onItemClick(SwipeMenuBridge menuBridge, int position) { + // 先关闭菜单 + menuBridge.closeMenu(); + // 左/右菜单 + int direction = menuBridge.getDirection(); + // 点击的是第几个菜单 + int menuPosition = menuBridge.getPosition(); + // 只处理右侧菜单 + if (direction == SwipeRecyclerView.RIGHT_DIRECTION) { + if (menuPosition == 0) { + weekList.get(mWeekAdapter.getmPos()).getTimeData().remove(position); + if(mTimeAdapter != null){ + mTimeAdapter.notifyItemRemoved(position); + } } } } + }; - return true; - } - - @Override - public void getWaterConfigListSuccess(List list,int total) { - - } - + /** + * 新增 + * @param entity + */ @Override public void saveConfigSuccess(WaterPlanWeekEntity entity) { - ToastUtil.showShort(mContext, "排程新增成功"); - isConfigSave = true; + ToastUtil.showShort(mContext, getString(R.string.schedule_add_success)); + isConfigSubmitted = true; // 把接口返回的 ID 设置到 mConfigEntity,便于后续更新操作 - mConfigEntity.setId(entity.getId()); + mLocalEntity.setId(entity.getId()); // 把 details 中每个 bean 的 id 也设置到 mConfigEntity,便于后续更新操作 - if (entity.getDetails() != null && mConfigEntity.getDetails() != null) { - for (int i = 0; i < entity.getDetails().size() && i < mConfigEntity.getDetails().size(); i++) { - mConfigEntity.getDetails().get(i).setId(entity.getDetails().get(i).getId()); + if (entity.getDetails() != null && mLocalEntity.getDetails() != null) { + for (int i = 0; i < entity.getDetails().size() && i < mLocalEntity.getDetails().size(); i++) { + mLocalEntity.getDetails().get(i).setId(entity.getDetails().get(i).getId()); + mLocalEntity.getDetails().get(i).setStatus(entity.getDetails().get(i).getStatus()); } } //接口请求之后返回的数据,方便后面做对比 - mRemoteConfigEntity = entity; + mRemoteEntity = entity; if (getActivity() instanceof AddWaterPlanActivity) { ((AddWaterPlanActivity) getActivity()).onConfigSaved(entity); } } + /** - * 更新排程成功 + * 更新 * @param entity */ @Override public void updateConfigSuccess(WaterPlanWeekEntity entity) { - ToastUtil.showShort(mContext, "排程更新成功"); - mRemoteConfigEntity = entity; + ToastUtil.showShort(mContext, getString(R.string.schedule_update_success)); + mRemoteEntity = entity; + } + + +// private List getSelectedDevices() { +// if (getActivity() instanceof AddWaterPlanActivity) { +// return ((AddWaterPlanActivity) getActivity()).getSelectedDevices(); +// } +// return new ArrayList<>(); +// } + + @Override + public WaterPlanPresenter createPresenter() { + return new WaterPlanPresenter(new WaterPlanImpl()); + } + + @Override + public void onNetChange(int netModel) { + + } + + @Override + public void showError(String message) { + + } + + @Override + public void logOut(BaseBean bean) { + + } + + @Override + public void getWaterConfigListSuccess(List list, int total) { + } @Override @@ -388,25 +714,4 @@ public class WaterConfigFragment extends BaseFragment + implements WaterPlanContract.WaterPlanView { + private List mConfigList = new ArrayList<>(); + //用户本地操作排程时的数据 + private WaterPlanWeekEntity mConfigEntity; + //排程接口新增成功之后,接口返回的该排程在远端的数据信息 + private WaterPlanWeekEntity mRemoteConfigEntity; + private WaterPlanWeekAdapter mWeekAdapter; + private String mPlanName = ""; + public static boolean isConfigSave; + //当下是否编辑模式 + private boolean mIsEditMode = false; + + + @Override + public void initData(Bundle state) { + mConfigEntity = new WaterPlanWeekEntity(); + List list = new ArrayList<>(); + for(int i = 0; i < 7; i++){ + WaterPlanWeekEntity.DetailsBean bean = new WaterPlanWeekEntity.DetailsBean(); + bean.setWeekday(i + 1); + bean.setStatus("0"); + bean.setWeekName(ZYTimeUtils.getWeekName(i,mContext)); + list.add(bean); + } + mConfigEntity.setDetails(list); + mWeekAdapter = new WaterPlanWeekAdapter(mContext,R.layout.plan_week_config_item, mConfigEntity.getDetails()); + viewBinding.rvWeekConfig.setAdapter(mWeekAdapter); + initListener(); + } + + /** + * 设置编辑模式的排程数据 + * @param entity 从详情页传来的排程数据 + */ + public void setEditEntity(WaterPlanWeekEntity entity) { + if (entity == null) { + return; + } + mIsEditMode = true; + // 深拷贝数据到 mConfigEntity,用于本地编辑 + mConfigEntity = cloneEntity(entity); + // 保存远程原始数据,用于后续变化检测 + mRemoteConfigEntity = entity; + isConfigSave = true; + + // 初始化 UI + viewBinding.etPlanName.setText(entity.getName()); + mPlanName = entity.getName(); + + // 更新周配置列表的显示,使用 mConfigEntity.getDetails() 保证数据一致 + if (mConfigEntity.getDetails() != null) { + mWeekAdapter.setNewData(mConfigEntity.getDetails()); + } + } + + /** + * 深拷贝 WaterPlanWeekEntity + */ + private WaterPlanWeekEntity cloneEntity(WaterPlanWeekEntity source) { + if (source == null) { + return null; + } + WaterPlanWeekEntity target = new WaterPlanWeekEntity(); + target.setId(source.getId()); + target.setName(source.getName()); + target.setStatus(source.getStatus()); + + if (source.getDetails() != null) { + List detailsList = new ArrayList<>(); + for (WaterPlanWeekEntity.DetailsBean bean : source.getDetails()) { + WaterPlanWeekEntity.DetailsBean newBean = new WaterPlanWeekEntity.DetailsBean(); + newBean.setId(bean.getId()); + newBean.setWeekday(bean.getWeekday()); + newBean.setWeekName(ZYTimeUtils.getWeekName(bean.getWeekday() - 1,mContext)); + newBean.setStatus(bean.getStatus()); + newBean.setStartTime(ZYTimeUtils.formatHHmm(bean.getStartTime())); + newBean.setDurationMin(bean.getDurationMin()); + detailsList.add(newBean); + } + target.setDetails(detailsList); + } + + return target; + } + + private void initListener() { + setClick(viewBinding.tvCommit); + mWeekAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() { + @Override + public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) { + switch (view.getId()){ + case R.id.linear_week://选中 + case R.id.checkbox: + if(mConfigEntity.getDetails().get(position).getStatus().equals("1")){ + mConfigEntity.getDetails().get(position).setStatus("0"); + }else{ + mConfigEntity.getDetails().get(position).setStatus("1"); + } + mWeekAdapter.notifyItemChanged(position); + break; + + case R.id.tv_select_time: + selectStartTime(position); + break; + + case R.id.tv_plan_duration: + inputDuration(position); + break; + } + } + }); + + 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: + commitConfig(); + break; + } + } + + + public void commitConfig(){ + if (!checkConfigFinish()) { + return; + } + // mRemoteConfigEntity 为空,说明是新增场景 + if (mRemoteConfigEntity == null) { + mPresenter.saveConfig(mConfigEntity); + return; + } + // mRemoteConfigEntity 不为空,说明是更新场景 + if (isConfigChanged()) { + // TODO: 触发更新接口,调用 mPresenter.updateConfig(mConfigEntity) + mPresenter.updateConfig(mConfigEntity); + } else { + ToastUtil.showShort(mContext, "配置没有变化,无需保存"); + } + } + + private void inputDuration(int position) { + showEditDialog(getString(R.string.device_work_times_title), + getString(R.string.input_water_plan_time), + mConfigEntity.getDetails().get(position).getDurationMin() == 0 ? + "" : mConfigEntity.getDetails().get(position).getDurationMin() + "", + true, + getString(R.string.cancel_text), + getString(R.string.confirm_text), + BaseFragment.INPUT_TYPE_NUMBER, + new BaseActivity.OnDialogClick() { + @Override + public void onCancelClick() { + } + + @Override + public void onConfirmClisk() { + } + + @Override + public void onConfirmClisk(String content) { + if(Integer.parseInt(content) <= 0){ + ToastUtil.showShort(mContext, getString(R.string.input_water_plan_time_error)); + return; + } + mConfigEntity.getDetails().get(position).setDurationMin(Integer.parseInt(content)); + mWeekAdapter.notifyItemChanged(position); + } + + @Override + public void onView1Click() { + + } + }); + } + + private void selectStartTime(int position) { + boolean times[] = {false, false, false, true, true, false}; + //时间选择器 + 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)); + mWeekAdapter.notifyItemChanged(position); + } + }).setType(times) + .setCancelColor(mContext.getColor(R.color.color_999999)) + .setSubmitColor(mContext.getColor(R.color.color_zhu)) + .setTextColorCenter(mContext.getColor(R.color.color_zhu)) + .build(); + pvTime.show(); + } + + private void setClick(View view) { + view.setOnClickListener(this::onClick); + } + + /** + * 比较本地配置和远程配置是否有变化 + * @return true 表示有变化,false 表示无变化 + */ + public boolean isConfigChanged() { + if (mRemoteConfigEntity == null || mRemoteConfigEntity.getDetails() == null) { + return true; + } + // 比对排程名称 + if (!equalsString(mConfigEntity.getName(), mRemoteConfigEntity.getName())) { + return true; + } + List localDetails = mConfigEntity.getDetails(); + List remoteDetails = mRemoteConfigEntity.getDetails(); + for (int i = 0; i < localDetails.size(); i++) { + WaterPlanWeekEntity.DetailsBean local = localDetails.get(i); + WaterPlanWeekEntity.DetailsBean remote = remoteDetails.get(i); + // 勾选状态下对比状态、时间、时长 + if ("1".equals(local.getStatus())) { + if (!equalsString(local.getStatus(), remote.getStatus()) + || !equalsString(local.getStartTime(), ZYTimeUtils.formatHHmm(remote.getStartTime())) + || local.getDurationMin() != remote.getDurationMin()) { + return true; + } + } else { + // 未勾选状态下只对比勾选状态,不关心时间/时长 + if (!equalsString(local.getStatus(), remote.getStatus())) { + return true; + } + } + } + return false; + } + + private boolean equalsString(String s1, String s2) { + if (s1 == null && s2 == null) return true; + if (s1 == null || s2 == null) return false; + return s1.equals(s2); + } + + /** + * 检查配置信息是否完成 + * @return + */ + public boolean checkConfigFinish() { + if(TextUtils.isEmpty(viewBinding.etPlanName.getText().toString())){ + ToastUtil.showShort(mContext,getString(R.string.plan_name_text_empty_hint)); + return false; + } + List list = mConfigEntity.getDetails(); + //是否勾选了排程日期 + boolean isSelectOne = false; + if(list != null){ + for(WaterPlanWeekEntity.DetailsBean bean : list){ + if(bean.getStatus().equals("1")){ + isSelectOne = true; + } + } + } + if(!isSelectOne){ + ToastUtil.showShort(mContext,getString(R.string.plan_week_empty_hint)); + return false; + } + //是否配置了排程日期的时间 + boolean isPlanConfig = false; + for(WaterPlanWeekEntity.DetailsBean bean : list){ + if(bean.getStatus().equals("1")){ + if((TextUtils.isEmpty(bean.getStartTime()) || + bean.getDurationMin() == 0)){ + ToastUtil.showShort(mContext,"请完成" + bean.getWeekName() + "的时间配置"); + return false; + } + } + } + + return true; + } + + @Override + public void getWaterConfigListSuccess(List list,int total) { + + } + + @Override + public void saveConfigSuccess(WaterPlanWeekEntity entity) { + ToastUtil.showShort(mContext, "排程新增成功"); + isConfigSave = true; + // 把接口返回的 ID 设置到 mConfigEntity,便于后续更新操作 + mConfigEntity.setId(entity.getId()); + // 把 details 中每个 bean 的 id 也设置到 mConfigEntity,便于后续更新操作 + if (entity.getDetails() != null && mConfigEntity.getDetails() != null) { + for (int i = 0; i < entity.getDetails().size() && i < mConfigEntity.getDetails().size(); i++) { + mConfigEntity.getDetails().get(i).setId(entity.getDetails().get(i).getId()); + } + } + //接口请求之后返回的数据,方便后面做对比 + mRemoteConfigEntity = entity; + if (getActivity() instanceof AddWaterPlanActivity) { + ((AddWaterPlanActivity) getActivity()).onConfigSaved(entity); + } + } + + /** + * 更新排程成功 + * @param entity + */ + @Override + public void updateConfigSuccess(WaterPlanWeekEntity entity) { + ToastUtil.showShort(mContext, "排程更新成功"); + mRemoteConfigEntity = entity; + } + + @Override + public void updatePlanStatusSuccess(BaseBean bean, String status) { + + } + + @Override + public void getPlanDetailInfo(WaterPlanWeekEntity entity) { + + } + + @Override + public void getPlanBindDeviceList(WaterDeviceEntity bean) { + + } + + @Override + public void planBindDeviceSuccess(BaseBean bean) { + + } + + @Override + public void deletePlanSuccess(BaseBean bean) { + + } + + @Override + public void planUnbindDeviceSuccess(BaseBean bean, int position) { + + } + + + @Override + public WaterPlanPresenter createPresenter() { + return new WaterPlanPresenter(new WaterPlanImpl()); + } + + @Override + public void onNetChange(int netModel) { + + } + + @Override + public void showError(String message) { + + } + + @Override + public void logOut(BaseBean bean) { + + } + + +} diff --git a/app/src/main/java/com/ckkj/water/plan/WaterConfigFragment_copy.java b/app/src/main/java/com/ckkj/water/plan/WaterConfigFragment_copy.java deleted file mode 100644 index 26d96c9..0000000 --- a/app/src/main/java/com/ckkj/water/plan/WaterConfigFragment_copy.java +++ /dev/null @@ -1,715 +0,0 @@ -package com.ckkj.water.plan; - -import android.os.Bundle; -import android.text.Editable; -import android.text.TextUtils; -import android.text.TextWatcher; -import android.view.View; -import android.view.ViewGroup; - -import androidx.recyclerview.widget.RecyclerView; - -import com.bigkoo.pickerview.builder.TimePickerBuilder; -import com.bigkoo.pickerview.listener.OnTimeSelectListener; -import com.bigkoo.pickerview.view.TimePickerView; -import com.chad.library.adapter.base.BaseQuickAdapter; -import com.ckkj.water.R; -import com.ckkj.water.base.BaseActivity; -import com.ckkj.water.base.BaseFragment; -import com.ckkj.water.databinding.WaterConfigFragmentLayoutBinding; -import com.ckkj.water.databinding.WaterConfigFragmentLayoutCopyBinding; -import com.ckkj.water.index.entity.WaterDeviceEntity; -import com.ckkj.water.network.BaseBean; -import com.ckkj.water.plan.adapter.WaterPlanTimeDataAdapter; -import com.ckkj.water.plan.adapter.WaterPlanWeekAdapter; -import com.ckkj.water.plan.adapter.WaterPlanWeekAdapter_copy; -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.utils.show.ToastUtil; -import com.ckkj.water.utils.time.ZYTimeUtils; -import com.google.gson.Gson; -import com.yanzhenjie.recyclerview.OnItemMenuClickListener; -import com.yanzhenjie.recyclerview.SwipeMenu; -import com.yanzhenjie.recyclerview.SwipeMenuBridge; -import com.yanzhenjie.recyclerview.SwipeMenuCreator; -import com.yanzhenjie.recyclerview.SwipeMenuItem; -import com.yanzhenjie.recyclerview.SwipeRecyclerView; -import com.yanzhenjie.recyclerview.widget.DefaultItemDecoration; - -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Locale; - -public class WaterConfigFragment_copy extends BaseFragment - implements WaterPlanContract.WaterPlanView { - //本地新增排程时的实体 - private WaterPlanWeekEntity mLocalEntity; - //新增之后返回的实体 - private WaterPlanWeekEntity mRemoteEntity; - private List weekList = new ArrayList<>(); - private List timeList = new ArrayList<>(); - private WaterPlanWeekAdapter_copy mWeekAdapter; - private WaterPlanTimeDataAdapter mTimeAdapter; - private RecyclerView.ItemDecoration itemDecoration; - private boolean isConfigSubmitted = false; - //当下是否编辑模式 - private boolean mIsEditMode = false; - - - - @Override - public void initData(Bundle state) { - // 设置菜单创建器。 - viewBinding.rvTimes.setSwipeMenuCreator(mSwipeMenuCreator); - viewBinding.rvTimes.setOnItemMenuClickListener(mItemMenuClickListener); - itemDecoration = new DefaultItemDecoration - (mContext.getColor(R.color.transparent),20,40); - viewBinding.rvTimes.addItemDecoration(itemDecoration); - List list = new ArrayList<>(); - for(int i = 0; i < 7; i++){ - WaterPlanWeekEntity.DetailsBean bean = new WaterPlanWeekEntity.DetailsBean(); - WaterPlanWeekEntity.TimeDataBean timeData = new WaterPlanWeekEntity.TimeDataBean(); - List timeDataList = new ArrayList<>(); - timeDataList.add(timeData); - bean.setTimeData(timeDataList); - bean.setWeekday(i + 1); - bean.setStatus("1"); - bean.setWeekName(ZYTimeUtils.getWeekName(i,mContext)); - bean.setTriggerType("0"); - list.add(bean); - } - weekList = list; - //这里先处理新增,后面再处理编辑 - mLocalEntity = new WaterPlanWeekEntity(); - mLocalEntity.setStatus("1"); - mLocalEntity.setDetails(weekList); - //顶部周一、周二。。。。。 - mWeekAdapter = new WaterPlanWeekAdapter_copy(mContext, R.layout.plan_period_item,list); - viewBinding.rvWeek.setAdapter(mWeekAdapter); - //周期对应的 时间配置 - List timeList = weekList.get(0).getTimeData(); - mTimeAdapter = new WaterPlanTimeDataAdapter(mContext,R.layout.include_plan_time_item_layout,timeList); - viewBinding.rvTimes.setAdapter(mTimeAdapter); - initListener(); - - } - - - - private void initListener() { - setClick(viewBinding.tvCommit); - setClick(viewBinding.imgAdd); - setClick(viewBinding.switchButton); - //头部 周一~周日 - mWeekAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() { - @Override - public void onItemClick(BaseQuickAdapter adapter, View view, int position) { - mWeekAdapter.setSelPos(position); - List timeList = weekList.get(position).getTimeData(); - mTimeAdapter.setNewData(timeList); - viewBinding.switchButton.setChecked(weekList.get(position).getStatus().equals("1")); - } - }); - //周期对应的 时间配置 - mTimeAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() { - @Override - public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) { - switch (view.getId()){ - case R.id.tv_select_time: - selectStartTime(position); - break; - - case R.id.tv_plan_duration: - inputDuration(position); - break; - } - } - }); - //输入框监听 - viewBinding.editPlanName.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) { - String planName = ""; - if(!TextUtils.isEmpty(s.toString())){ - planName = s.toString(); - } - mLocalEntity.setName(planName); - } - }); - } - - - private void setClick(View view) { - view.setOnClickListener(this::onClick); - } - - public void onClick(View v){ - int selPos = mWeekAdapter.getmPos(); - switch (v.getId()){ - - case R.id.img_add: - isConfigSubmitted = false; - WaterPlanWeekEntity.TimeDataBean timeDataAdd = new WaterPlanWeekEntity.TimeDataBean(); - weekList.get(selPos).getTimeData().add(timeDataAdd); - mTimeAdapter.notifyItemInserted(weekList.get(selPos).getTimeData().size() - 1); - break; - - case R.id.switch_button: - if(weekList.get(selPos).getStatus().equals("0")){ - weekList.get(selPos).setStatus("1"); - viewBinding.switchButton.setChecked(true); - }else{ - weekList.get(selPos).setStatus("0"); - viewBinding.switchButton.setChecked(false); - } - break; - - case R.id.tv_commit: - // 如果已经保存过(mRemoteEntity 不为空),则走更新逻辑;否则走新增逻辑 - if (mRemoteEntity != null) { - updateConfig(); - } else { - validateAndSave(); - } - break; - } - } - - public boolean isConfigSubmitted() { - return isConfigSubmitted; - } - - /** - * 获取当前排程名称 - * @return 排程名称 - */ - public String getPlanName() { - if (mLocalEntity != null) { - return mLocalEntity.getName(); - } - return ""; - } - - /** - * 检查是否至少配置了一天的时间 - * @return true表示有时间配置,false表示没有配置任何时间 - */ - public boolean hasTimeConfig() { - for (WaterPlanWeekEntity.DetailsBean dayBean : weekList) { - List timeDataList = dayBean.getTimeData(); - if (timeDataList != null && !timeDataList.isEmpty()) { - for (WaterPlanWeekEntity.TimeDataBean timeData : timeDataList) { - if (!TextUtils.isEmpty(timeData.getStartTime()) && timeData.getDurationMin() > 0) { - return true; - } - } - } - } - return false; - } - - /** - * 校验并保存配置(供外部调用) - * @return true表示校验通过并已提交保存,false表示校验失败 - */ - public boolean commitConfig() { - return validateAndSave(); - } - - /** - * 更新配置(用于数据变更后调用) - * @return true表示校验通过并已提交更新,false表示校验失败 - */ - public boolean updateConfig() { - if (!validateConfig()) { - return false; - } - // 调用更新接口 - if(mLocalEntity != null){ - mPresenter.updateConfig(mLocalEntity); - } - return true; - } - - - /** - * 设置编辑模式的排程数据 - * @param entity 从详情页传来的排程数据 - */ - public void setEditEntity(WaterPlanWeekEntity entity) { - if (entity == null) { - return; - } - mIsEditMode = true; - // 深拷贝数据到 mConfigEntity,用于本地编辑 - mLocalEntity = cloneEntity(entity); - // 保存远程原始数据,用于后续变化检测 - mRemoteEntity = entity; - isConfigSubmitted = true; - - // 初始化 UI - viewBinding.editPlanName.setText(entity.getName()); - // 更新周配置列表的显示,使用 mConfigEntity.getDetails() 保证数据一致 - if (mLocalEntity.getDetails() != null) { - weekList = mLocalEntity.getDetails(); - mWeekAdapter.setNewData(mLocalEntity.getDetails()); - mTimeAdapter.setNewData(weekList.get(mWeekAdapter.getmPos()).getTimeData()); - } - } - - /** - * 深拷贝 WaterPlanWeekEntity - */ - private WaterPlanWeekEntity cloneEntity(WaterPlanWeekEntity source) { - if (source == null) { - return null; - } - WaterPlanWeekEntity target = new WaterPlanWeekEntity(); - target.setId(source.getId()); - target.setName(source.getName()); - target.setStatus(source.getStatus()); - - if (source.getDetails() != null) { - List detailsList = new ArrayList<>(); - for (WaterPlanWeekEntity.DetailsBean bean : source.getDetails()) { - WaterPlanWeekEntity.DetailsBean newBean = new WaterPlanWeekEntity.DetailsBean(); - List timeDataList = new ArrayList<>(); - for(WaterPlanWeekEntity.TimeDataBean timeDataBean : bean.getTimeData()){ - WaterPlanWeekEntity.TimeDataBean newTimeDataBean = new WaterPlanWeekEntity.TimeDataBean(); - newTimeDataBean.setStartTime(ZYTimeUtils.formatHHmm(timeDataBean.getStartTime())); - newTimeDataBean.setDurationMin(timeDataBean.getDurationMin()); - timeDataList.add(newTimeDataBean); - } - newBean.setTimeData(timeDataList); - newBean.setId(bean.getId()); - newBean.setWeekday(bean.getWeekday()); - newBean.setWeekName(ZYTimeUtils.getWeekName(bean.getWeekday() - 1,mContext)); - newBean.setStatus(bean.getStatus()); - detailsList.add(newBean); - } - target.setDetails(detailsList); - } - - return target; - } - - - /** - * 校验配置 - * @return true表示校验通过,false表示校验失败 - */ - private boolean validateConfig() { - if(TextUtils.isEmpty(viewBinding.editPlanName.getText().toString())){ - ToastUtil.showShort(mContext,getString(R.string.plan_name_text_empty_hint)); - return false; - } - // 检查七天的所有时间配置是否全部为空 - boolean allTimeEmpty = true; - for (WaterPlanWeekEntity.DetailsBean dayBean : weekList) { - List timeDataList = dayBean.getTimeData(); - if (timeDataList != null && !timeDataList.isEmpty()) { - for (WaterPlanWeekEntity.TimeDataBean timeData : timeDataList) { - if (!TextUtils.isEmpty(timeData.getStartTime()) && timeData.getDurationMin() > 0) { - allTimeEmpty = false; - break; - } - } - } - if (!allTimeEmpty) break; - } - if (allTimeEmpty) { - ToastUtil.showShort(mContext, getString(R.string.schedule_select_at_least_one_day)); - return false; - } - // 校验每一天内的时间是否有冲突 - String conflictMsg = checkTimeConflict(); - if (conflictMsg != null) { - ToastUtil.showShort(mContext, conflictMsg); - return false; - } - return true; - } - - /** - * 校验配置并保存(新增) - * @return true表示校验通过并已提交保存,false表示校验失败 - */ - private boolean validateAndSave() { - if (!validateConfig()) { - return false; - } - if(mLocalEntity != null){ - mPresenter.saveConfig(mLocalEntity); - return true; - } - return false; - } - - /** - * 获取远程实体(用于AddWaterPlanActivity比对) - * @return mRemoteEntity - */ - public WaterPlanWeekEntity getRemoteEntity() { - return mRemoteEntity; - } - - /** - * 获取本地实体(用于AddWaterPlanActivity比对) - * @return mLocalEntity - */ - public WaterPlanWeekEntity getLocalEntity() { - return mLocalEntity; - } - - /** - * 检查本地数据是否与远程数据有变更 - * @return true表示有变更,false表示无变更 - */ - public boolean hasDataChanged() { - if (mRemoteEntity == null || mLocalEntity == null) { - return false; - } - - // 比对排程名称 - String localName = mLocalEntity.getName(); - String remoteName = mRemoteEntity.getName(); - if (!TextUtils.isEmpty(localName) && !localName.equals(remoteName)) { - return true; - } - - // 比对排程状态 - String localStatus = mLocalEntity.getStatus(); - String remoteStatus = mRemoteEntity.getStatus(); - if (!TextUtils.isEmpty(localStatus) && !localStatus.equals(remoteStatus)) { - return true; - } - - // 比对 details 列表 - List localDetails = mLocalEntity.getDetails(); - List remoteDetails = mRemoteEntity.getDetails(); - - if (localDetails == null && remoteDetails == null) { - return false; - } - if (localDetails == null || remoteDetails == null) { - return true; - } - if (localDetails.size() != remoteDetails.size()) { - return true; - } - - // 逐个比对每个 DetailsBean - for (int i = 0; i < localDetails.size(); i++) { - WaterPlanWeekEntity.DetailsBean localDetail = localDetails.get(i); - WaterPlanWeekEntity.DetailsBean remoteDetail = remoteDetails.get(i); - - // 比对 status - String localDetailStatus = localDetail.getStatus(); - String remoteDetailStatus = remoteDetail.getStatus(); - if (!TextUtils.isEmpty(localDetailStatus) && !localDetailStatus.equals(remoteDetailStatus)) { - return true; - } - - // 比对 triggerType - String localTriggerType = localDetail.getTriggerType(); - String remoteTriggerType = remoteDetail.getTriggerType(); - if (!TextUtils.isEmpty(localTriggerType) && !localTriggerType.equals(remoteTriggerType)) { - return true; - } - - // 比对 timeData 列表 - List localTimeData = localDetail.getTimeData(); - List remoteTimeData = remoteDetail.getTimeData(); - - if (localTimeData == null && remoteTimeData == null) { - continue; - } - if (localTimeData == null || remoteTimeData == null) { - return true; - } - if (localTimeData.size() != remoteTimeData.size()) { - return true; - } - - // 逐个比对 TimeDataBean - for (int j = 0; j < localTimeData.size(); j++) { - WaterPlanWeekEntity.TimeDataBean localTime = localTimeData.get(j); - WaterPlanWeekEntity.TimeDataBean remoteTime = remoteTimeData.get(j); - - // 比对 startTime - String localStartTime = localTime.getStartTime(); - String remoteStartTime = remoteTime.getStartTime(); - if (!TextUtils.isEmpty(localStartTime) && !localStartTime.equals(remoteStartTime)) { - return true; - } - - // 比对 durationMin - if (localTime.getDurationMin() != remoteTime.getDurationMin()) { - return true; - } - } - } - - return false; - } - - /** - * 校验每一天内的时间配置是否有冲突 - * @return null表示无冲突,返回具体提示信息表示有冲突 - */ - private String checkTimeConflict() { - SimpleDateFormat sdf = new SimpleDateFormat("HH:mm", Locale.getDefault()); - - for (int dayIndex = 0; dayIndex < weekList.size(); dayIndex++) { - WaterPlanWeekEntity.DetailsBean dayBean = weekList.get(dayIndex); - List timeDataList = dayBean.getTimeData(); - - if (timeDataList == null || timeDataList.isEmpty()) { - continue; - } - - // 收集该天所有有效的时间段(开始时间 + 结束时间) - List periods = new ArrayList<>(); - for (WaterPlanWeekEntity.TimeDataBean timeData : timeDataList) { - if (TextUtils.isEmpty(timeData.getStartTime()) || timeData.getDurationMin() <= 0) { - continue; - } - try { - Date startDate = sdf.parse(timeData.getStartTime()); - long startMinutes = startDate.getHours() * 60 + startDate.getMinutes(); - long endMinutes = startMinutes + timeData.getDurationMin(); - periods.add(new long[]{startMinutes, endMinutes}); - } catch (Exception e) { - e.printStackTrace(); - } - } - - // 检查是否有冲突 - for (int i = 0; i < periods.size(); i++) { - for (int j = i + 1; j < periods.size(); j++) { - long[] p1 = periods.get(i); - long[] p2 = periods.get(j); - // 冲突条件:一个段的开始时间在另一个段的结束时间之前(即有重叠) - // 不冲突:p1.end <= p2.start 或 p2.end <= p1.start - if (!(p1[1] <= p2[0] || p2[1] <= p1[0])) { - String dayName = dayBean.getWeekName(); - return dayName + getString(R.string.schedule_time_conflict); - } - } - } - } - return null; - } - - /** - * 选择开始时间 - * @param position - */ - private void selectStartTime(int position) { - boolean times[] = {false, false, false, true, true, false}; - //时间选择器 - TimePickerView pvTime = new TimePickerBuilder(mContext, new OnTimeSelectListener() { - @Override - public void onTimeSelect(Date date, View v) { - //用于提交接口 - weekList.get(mWeekAdapter.getmPos()).getTimeData().get(position). - setStartTime(ZYTimeUtils.getStrTimeData_H_M(date)); - mTimeAdapter.notifyItemChanged(position); - } - }).setType(times) - .setCancelColor(mContext.getColor(R.color.color_999999)) - .setSubmitColor(mContext.getColor(R.color.color_zhu)) - .setTextColorCenter(mContext.getColor(R.color.color_zhu)) - .build(); - pvTime.show(); - } - - - /** - * 输入浇水时间 - * @param position - */ - private void inputDuration(int position) { - WaterPlanWeekEntity.TimeDataBean timeData = weekList.get(mWeekAdapter.getmPos()).getTimeData().get(position); - showEditDialog(getString(R.string.device_work_times_title), - getString(R.string.input_water_plan_time), - timeData.getDurationMin() == 0 ? "" : timeData.getDurationMin() + "", - true, - getString(R.string.cancel_text), - getString(R.string.confirm_text), - BaseFragment.INPUT_TYPE_NUMBER, - new BaseActivity.OnDialogClick() { - @Override - public void onCancelClick() {} - - @Override - public void onConfirmClisk() {} - - @Override - public void onConfirmClisk(String content) { - if (Integer.parseInt(content) <= 0) { - ToastUtil.showShort(mContext, getString(R.string.input_water_plan_time_error)); - return; - } - timeData.setDurationMin(Integer.parseInt(content)); - mTimeAdapter.notifyItemChanged(position); - } - - @Override - public void onView1Click() { - - } - }); - } - - - /** - * 侧滑相关 - */ - // 创建菜单: - SwipeMenuCreator mSwipeMenuCreator = new SwipeMenuCreator() { - @Override - public void onCreateMenu(SwipeMenu leftMenu, SwipeMenu rightMenu, int position) { - SwipeMenuItem deleteItem = new SwipeMenuItem(mContext); - deleteItem.setBackground(mContext.getResources().getDrawable(R.drawable.shape_item_delete_bg)); - deleteItem.setText(getString(R.string.button_delete)); - deleteItem.setTextColor(mContext.getResources().getColor(R.color.white)); - deleteItem.setHeight(ViewGroup.LayoutParams.MATCH_PARENT); - deleteItem.setWidth((int) mContext.getResources().getDimension(R.dimen.dp_90)); - // 各种文字和图标属性设置。 - rightMenu.addMenuItem(deleteItem); // 在Item右侧添加一个菜单。 - } - }; - - // 菜单点击监听。 - OnItemMenuClickListener mItemMenuClickListener = new OnItemMenuClickListener() { - @Override - public void onItemClick(SwipeMenuBridge menuBridge, int position) { - // 先关闭菜单 - menuBridge.closeMenu(); - // 左/右菜单 - int direction = menuBridge.getDirection(); - // 点击的是第几个菜单 - int menuPosition = menuBridge.getPosition(); - // 只处理右侧菜单 - if (direction == SwipeRecyclerView.RIGHT_DIRECTION) { - if (menuPosition == 0) { - weekList.get(mWeekAdapter.getmPos()).getTimeData().remove(position); - if(mTimeAdapter != null){ - mTimeAdapter.notifyItemRemoved(position); - } - } - } - } - }; - - /** - * 新增 - * @param entity - */ - @Override - public void saveConfigSuccess(WaterPlanWeekEntity entity) { - ToastUtil.showShort(mContext, getString(R.string.schedule_add_success)); - isConfigSubmitted = true; - // 把接口返回的 ID 设置到 mConfigEntity,便于后续更新操作 - mLocalEntity.setId(entity.getId()); - // 把 details 中每个 bean 的 id 也设置到 mConfigEntity,便于后续更新操作 - if (entity.getDetails() != null && mLocalEntity.getDetails() != null) { - for (int i = 0; i < entity.getDetails().size() && i < mLocalEntity.getDetails().size(); i++) { - mLocalEntity.getDetails().get(i).setId(entity.getDetails().get(i).getId()); - mLocalEntity.getDetails().get(i).setStatus(entity.getDetails().get(i).getStatus()); - } - } - //接口请求之后返回的数据,方便后面做对比 - mRemoteEntity = entity; - if (getActivity() instanceof AddWaterPlanActivity) { - ((AddWaterPlanActivity) getActivity()).onConfigSaved(entity); - } - } - - - /** - * 更新 - * @param entity - */ - @Override - public void updateConfigSuccess(WaterPlanWeekEntity entity) { - ToastUtil.showShort(mContext, getString(R.string.schedule_update_success)); - mRemoteEntity = entity; - } - - -// private List getSelectedDevices() { -// if (getActivity() instanceof AddWaterPlanActivity) { -// return ((AddWaterPlanActivity) getActivity()).getSelectedDevices(); -// } -// return new ArrayList<>(); -// } - - @Override - public WaterPlanPresenter createPresenter() { - return new WaterPlanPresenter(new WaterPlanImpl()); - } - - @Override - public void onNetChange(int netModel) { - - } - - @Override - public void showError(String message) { - - } - - @Override - public void logOut(BaseBean bean) { - - } - - @Override - public void getWaterConfigListSuccess(List list, int total) { - - } - - @Override - public void updatePlanStatusSuccess(BaseBean bean, String status) { - - } - - @Override - public void getPlanDetailInfo(WaterPlanWeekEntity entity) { - - } - - @Override - public void getPlanBindDeviceList(WaterDeviceEntity bean) { - - } - - @Override - public void planBindDeviceSuccess(BaseBean bean) { - - } - - @Override - public void deletePlanSuccess(BaseBean bean) { - - } - - @Override - public void planUnbindDeviceSuccess(BaseBean bean, int position) { - - } - - -} diff --git a/app/src/main/java/com/ckkj/water/plate/adapter/ViewPagerAdapter.java b/app/src/main/java/com/ckkj/water/plan/adapter/ViewPagerAdapter.java similarity index 92% rename from app/src/main/java/com/ckkj/water/plate/adapter/ViewPagerAdapter.java rename to app/src/main/java/com/ckkj/water/plan/adapter/ViewPagerAdapter.java index 780af3c..3abf458 100644 --- a/app/src/main/java/com/ckkj/water/plate/adapter/ViewPagerAdapter.java +++ b/app/src/main/java/com/ckkj/water/plan/adapter/ViewPagerAdapter.java @@ -1,6 +1,4 @@ -package com.ckkj.water.plate.adapter; - -import android.content.Context; +package com.ckkj.water.plan.adapter; import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; diff --git a/app/src/main/java/com/ckkj/water/plate/PlateFragment.java b/app/src/main/java/com/ckkj/water/plate/PlateFragment.java deleted file mode 100644 index 1394afe..0000000 --- a/app/src/main/java/com/ckkj/water/plate/PlateFragment.java +++ /dev/null @@ -1,114 +0,0 @@ -//package com.ckkj.water.plate; -// -//import android.os.Bundle; -//import android.view.View; -// -//import androidx.annotation.NonNull; -//import androidx.fragment.app.Fragment; -// -//import com.ckkj.water.AppConfig; -//import com.ckkj.water.R; -//import com.ckkj.water.base.BaseFragment; -//import com.ckkj.water.databinding.PlateFragmentBinding; -//import com.ckkj.water.login.LoginActivity; -//import com.ckkj.water.network.BaseBean; -//import com.ckkj.water.plate.adapter.ViewPagerAdapter; -//import com.ckkj.water.plate.entity.BaziResultBean; -//import com.ckkj.water.plate.entity.BaziSaveSuccessEntity; -//import com.ckkj.water.plate.entity.PaipanHistoryEntity; -//import com.ckkj.water.plate.mvp.PlateContract; -//import com.ckkj.water.plate.mvp.PlateImpl; -//import com.ckkj.water.plate.mvp.PlatePresenter; -// -//import java.util.ArrayList; -//import java.util.List; -// -// -///** -// * @author fengxiaoyang -// * @date 2025/7/30 -// * @description TODO: 排盘页面 -// */ -// -//public class PlateFragment extends BaseFragment -// implements PlateContract.PlateView { -// private List mFragmentList = new ArrayList<>(); -// -// @Override -// public PlatePresenter createPresenter() { -// return new PlatePresenter(new PlateImpl()); -// } -// -// @Override -// public void initData(Bundle state) { -// viewBinding.includedTitle.imgBack.setVisibility(View.GONE); -// viewBinding.includedTitle.tvTitle.setText("信息录入"); -// ViewPagerAdapter adapter = new ViewPagerAdapter(this, mFragmentList); -// viewBinding.viewpage.setAdapter(adapter); -// viewBinding.tvPaipan.setSelected(true); -// viewBinding.viewpage.setCurrentItem(0); -// //viewpage2 特有的 api,禁止滑动 -// viewBinding.viewpage.setUserInputEnabled(false); -// } -// -// -// @Override -// public void onNetChange(int netModel) { -// -// } -// -// @Override -// public void showError(String message) { -// -// } -// -// @Override -// public void logOut(BaseBean bean) { -// -// } -// -// @Override -// public void getPaipanResult(BaziResultBean bean) { -// -// } -// -// @Override -// public void saveBaziResultSuccess(BaziSaveSuccessEntity bean) { -// -// } -// -// @Override -// public void getHistorySuccess(PaipanHistoryEntity entity) { -// -// } -// -// @Override -// public void deletePaipanHistorySuccess(int pos) { -// -// } -// -// @Override -// public void onStreamMessageReceived(String messageChunk) { -// -// } -// -// @Override -// public void onStreamComplete(String complateMsg) { -// -// } -// -// @Override -// public void commitReportSuccess(BaseBean bean) { -// -// } -// -// @Override -// public void onPermissionsGranted(int requestCode, @NonNull List perms) { -// -// } -// -// @Override -// public void onPermissionsDenied(int requestCode, @NonNull List perms) { -// -// } -//} diff --git a/app/src/main/java/com/ckkj/water/plate/adapter/CangGanAdapter.java b/app/src/main/java/com/ckkj/water/plate/adapter/CangGanAdapter.java deleted file mode 100644 index 5f42eca..0000000 --- a/app/src/main/java/com/ckkj/water/plate/adapter/CangGanAdapter.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.ckkj.water.plate.adapter; - -import android.content.Context; -import android.graphics.Color; - -import androidx.annotation.Nullable; - -import com.chad.library.adapter.base.BaseQuickAdapter; -import com.chad.library.adapter.base.BaseViewHolder; -import com.ckkj.water.R; -import com.ckkj.water.utils.helper.FiveElementsHelper; - -import java.util.List; - -/** - * @author fengxiaoyang - * @date 2025/8/6 - * @description TODO: 描述该类的作用 - */ - -public class CangGanAdapter extends BaseQuickAdapter { - private Context mContext; - private List mDzGodList; - public CangGanAdapter(Context context, int layoutResId, @Nullable List data,List dzGodList) { - super(layoutResId, data); - this.mContext = context; - this.mDzGodList = dzGodList; - } - - public void setmDzGodList(List mDzGodList) { - this.mDzGodList = mDzGodList; - } - - @Override - protected void convert(BaseViewHolder holder, String item) { - holder.setText(R.id.tv_cg_gan,item); - holder.setTextColor(R.id.tv_cg_gan, Color.parseColor(FiveElementsHelper.getElementInfo(item).get("color"))); - holder.setText(R.id.tv_cg_shishen,mDzGodList.get(holder.getLayoutPosition())); - } -} diff --git a/app/src/main/java/com/ckkj/water/plate/adapter/DayunAdapter.java b/app/src/main/java/com/ckkj/water/plate/adapter/DayunAdapter.java deleted file mode 100644 index c760d77..0000000 --- a/app/src/main/java/com/ckkj/water/plate/adapter/DayunAdapter.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.ckkj.water.plate.adapter; - -import android.content.Context; - -import androidx.annotation.Nullable; -import androidx.core.content.ContextCompat; - -import com.chad.library.adapter.base.BaseQuickAdapter; -import com.chad.library.adapter.base.BaseViewHolder; -import com.ckkj.water.R; -import com.ckkj.water.plate.entity.BaziResultBean; -import com.ckkj.water.utils.helper.ShiShenCalculator; - -import java.util.List; - -/** - * @author fengxiaoyang - * @date 2025/8/5 - * @description TODO: 描述该类的作用 - */ - -public class DayunAdapter extends BaseQuickAdapter { - private Context mContext; - private int mSelPos = -1; - public DayunAdapter(Context context,int layoutResId, @Nullable List data, - BaziResultBean.DetailInfoDTO.SizhuInfoDTO sizhuInfoDTO) { - super(layoutResId, data); - this.mContext = context; - } - - public int getmSelPos() { - return mSelPos; - } - - - @Override - protected void convert(BaseViewHolder holder, BaziResultBean.DetailInfoDTO.DayunInfoDTO item) { - holder.setText(R.id.tv_year,item.getDayunStartYear() + ""); - if(holder.getLayoutPosition() != 0){ - holder.setText(R.id.tv_age,item.getDayunStartAge() + "岁"); - holder.setText(R.id.tv_gan_value,ShiShenCalculator.getAbbreviation(item.getDayunShishen())); - holder.setText(R.id.tv_zhi_value,ShiShenCalculator.getAbbreviation(item.getDayunYearDzGod().get(0))); - holder.setGone(R.id.tv_gan_value,true); - holder.setGone(R.id.tv_zhi_value,true); - holder.setGone(R.id.tv_zhi_key,true); - holder.setText(R.id.tv_gan_key,item.getDayunYearTg()); - holder.setText(R.id.tv_zhi_key,item.getDayunYearDz()); - }else{ - int dyStart = item.getDayunStartYear(); - int dyEnd = item.getDayunEndYear(); - if(dyStart > dyEnd){ - holder.setText(R.id.tv_age,"0岁"); - }else if(dyStart == dyEnd){ - holder.setText(R.id.tv_age,"1岁"); - }else{ - holder.setText(R.id.tv_age,item.getDayunStartAge() + "-" + item.getDayunEndAge() + "岁"); - } - holder.setGone(R.id.tv_gan_value,false); - holder.setGone(R.id.tv_zhi_value,false); - holder.setText(R.id.tv_gan_key,item.getDayunTongxian()); - holder.setGone(R.id.tv_zhi_key,false); - holder.setGone(R.id.tv_zhi_value,false); - } - - if(holder.getLayoutPosition() == mSelPos){ - holder.setBackgroundColor(R.id.ll_item, ContextCompat.getColor(mContext,R.color.divider)); - }else{ - holder.setBackgroundColor(R.id.ll_item, ContextCompat.getColor(mContext,R.color.white)); - } - } - - public void setSelPostion(int pos){ - this.mSelPos = pos; - notifyDataSetChanged(); - } -} diff --git a/app/src/main/java/com/ckkj/water/plate/adapter/DayunColumnAdapter.java b/app/src/main/java/com/ckkj/water/plate/adapter/DayunColumnAdapter.java deleted file mode 100644 index c7b020e..0000000 --- a/app/src/main/java/com/ckkj/water/plate/adapter/DayunColumnAdapter.java +++ /dev/null @@ -1,167 +0,0 @@ -package com.ckkj.water.plate.adapter; - -import android.content.Context; -import android.graphics.Color; -import android.text.TextUtils; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.RecyclerView; - -import com.chad.library.adapter.base.BaseQuickAdapter; -import com.chad.library.adapter.base.BaseViewHolder; -import com.ckkj.water.R; -import com.ckkj.water.plate.entity.BaziResultBean; -import com.ckkj.water.utils.helper.FiveElementsHelper; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -/** - * @author fengxiaoyang - * @date 2025/8/6 - * @description 大运、流年、流月柱状图适配器 - */ - -public class DayunColumnAdapter extends BaseQuickAdapter { - private Context mContext; - private int mDayunTypeCode = 100; - private CangGanAdapter mCangganAdapter; - private ShenshaAdapter mShenshaAdapter; - private int mSelectXiaoyunPos = -1; - - public DayunColumnAdapter(Context context, int layoutResId, - @Nullable List data, - int typeCode) { - super(layoutResId, data); - this.mContext = context; - this.mDayunTypeCode = typeCode; - } - - @Override - protected void convert(BaseViewHolder holder, BaziResultBean.DetailInfoDTO.DayunInfoDTO item) { - RecyclerView rvDatas = holder.getView(R.id.rv_canggan); - RecyclerView rvShenShaData = holder.getView(R.id.rv_shensha_data); - holder.setGone(R.id.viewline,true); - - switch (mDayunTypeCode) { - case 100: // 大运 - // 第一个item(bornBean)童限 的特殊处理 - holder.setText(R.id.tv_shishen, item.isTongXian() ? - item.getXiaoyunInfo().get(0).getXiaoyunShishen() : item.getDayunShishen()); - holder.setText(R.id.tv_tg, item.isTongXian() ? - item.getXiaoyunInfo().get(0).getXiaoyunYearTg() : item.getDayunYearTg()); - holder.setText(R.id.tv_dz, item.isTongXian() ? - item.getXiaoyunInfo().get(0).getXiaoyunYearDz() : item.getDayunYearDz()); - holder.setTextColor(R.id.tv_tg, Color.parseColor(FiveElementsHelper.getElementInfo - (item.isTongXian() ? - item.getXiaoyunInfo().get(0).getXiaoyunYearTg() : item.getDayunYearTg()).get("color"))); - holder.setTextColor(R.id.tv_dz, Color.parseColor(FiveElementsHelper.getElementInfo - (item.isTongXian() ? - item.getXiaoyunInfo().get(0).getXiaoyunYearTg() : item.getDayunYearTg()).get("color"))); - holder.setText(R.id.tv_xingyun, item.isTongXian() ? - item.getXiaoyunInfo().get(0).getXiaoyunDzStarCs() : item.getDayunDzStarCs()); - holder.setText(R.id.tv_zizuo, item.isTongXian() ? - item.getXiaoyunInfo().get(0).getXiaoyunDzSelfCs() : item.getDayunDzSelfCs()); - holder.setText(R.id.tv_kongwang, item.isTongXian() ? - item.getXiaoyunInfo().get(0).getXiaoyunKongwang() : item.getDayunKongwang()); - holder.setText(R.id.tv_nayin, item.isTongXian() ? - item.getXiaoyunInfo().get(0).getXiaoyunNayin() : item.getDayunNayin()); - // bornBean可能没有藏干和神煞数据,需要特殊处理 - if (mCangganAdapter == null) { - mCangganAdapter = new CangGanAdapter(mContext, - R.layout.paipan_canggan_item, - item.isTongXian() ? item.getXiaoyunInfo().get(0).getXiaoyunYearCg() : item.getDayunYearCg(), - item.isTongXian() ? item.getXiaoyunInfo().get(0).getXiaoyunDzGod() : item.getDayunYearDzGod()); - rvDatas.setAdapter(mCangganAdapter); - } else { - mCangganAdapter.setNewData(item.isTongXian() ? - item.getXiaoyunInfo().get(0).getXiaoyunYearCg() : item.getDayunYearCg()); - mCangganAdapter.setmDzGodList(item.isTongXian() ? - item.getXiaoyunInfo().get(0).getXiaoyunDzGod() : item.getDayunYearDzGod()); - } - List shenshaList = new ArrayList<>(); - if (item.isTongXian()) { - String shensha = item.getXiaoyunInfo().get(0).getXiaoyunShensha(); - if (!TextUtils.isEmpty(shensha)) { - shenshaList = Arrays.asList(shensha.split(" ")); - } - } else { - String shensha = item.getDayunShensha(); - if (!TextUtils.isEmpty(shensha)) { - shenshaList = Arrays.asList(shensha.split(" ")); - } - } - if (mShenshaAdapter == null) { - mShenshaAdapter = new ShenshaAdapter(mContext, R.layout.paipan_shensha_item, shenshaList); - rvShenShaData.setAdapter(mShenshaAdapter); - } else { - mShenshaAdapter.setNewData(shenshaList); - } - - break; - - case 200: // 流年 - BaziResultBean.DetailInfoDTO.DayunInfoDTO.XiaoyunInfoDTO xiaoyunEntity = item.getXiaoyunInfo().get(mSelectXiaoyunPos); - // 第一个item(bornBean)的特殊处理 - holder.setText(R.id.tv_shishen, xiaoyunEntity.getXiaoyunShishen()); - holder.setText(R.id.tv_tg, xiaoyunEntity.getXiaoyunYearTg()); - holder.setText(R.id.tv_dz, xiaoyunEntity.getXiaoyunYearDz()); - holder.setTextColor(R.id.tv_tg, Color.parseColor(FiveElementsHelper.getElementInfo(xiaoyunEntity.getXiaoyunYearTg()).get("color"))); - holder.setTextColor(R.id.tv_dz, Color.parseColor(FiveElementsHelper.getElementInfo(xiaoyunEntity.getXiaoyunYearDz()).get("color"))); - holder.setText(R.id.tv_xingyun, xiaoyunEntity.getXiaoyunDzStarCs()); - holder.setText(R.id.tv_zizuo, xiaoyunEntity.getXiaoyunDzSelfCs()); - holder.setText(R.id.tv_kongwang, xiaoyunEntity.getXiaoyunKongwang()); - holder.setText(R.id.tv_nayin, xiaoyunEntity.getXiaoyunNayin()); - - // bornBean的流年数据可能为空,需要特殊处理 - if (mCangganAdapter == null) { - mCangganAdapter = new CangGanAdapter(mContext, R.layout.paipan_canggan_item, - xiaoyunEntity.getXiaoyunYearCg(), xiaoyunEntity.getXiaoyunDzGod()); - rvDatas.setAdapter(mCangganAdapter); - }else{ - mCangganAdapter.setNewData(xiaoyunEntity.getXiaoyunYearCg()); - mCangganAdapter.setmDzGodList(xiaoyunEntity.getXiaoyunDzGod()); - } - if (mShenshaAdapter == null) { - String shensha = xiaoyunEntity.getXiaoyunShensha(); - mShenshaAdapter = new ShenshaAdapter(mContext, R.layout.paipan_shensha_item, Arrays.asList(shensha.split(" "))); - rvShenShaData.setAdapter(mShenshaAdapter); - }else{ - String shensha = xiaoyunEntity.getXiaoyunShensha(); - mShenshaAdapter.setNewData(Arrays.asList(shensha.split(" "))); - } - break; - - case 300: // 流月 - // 第一个item(bornBean)的特殊处理 - holder.setText(R.id.tv_shishen, "小运"); - holder.setText(R.id.tv_tg, item.getDayunYearTg()); - holder.setText(R.id.tv_dz, item.getDayunYearDz()); - holder.setTextColor(R.id.tv_tg, Color.parseColor(FiveElementsHelper.getElementInfo(item.getDayunYearTg()).get("color"))); - holder.setTextColor(R.id.tv_dz, Color.parseColor(FiveElementsHelper.getElementInfo(item.getDayunYearDz()).get("color"))); - holder.setText(R.id.tv_xingyun, ""); - holder.setText(R.id.tv_zizuo, ""); - holder.setText(R.id.tv_kongwang, ""); - holder.setText(R.id.tv_nayin, ""); - - // bornBean的流月数据可能为空,需要特殊处理 - if (mCangganAdapter == null) { - mCangganAdapter = new CangGanAdapter(mContext, R.layout.paipan_canggan_item, - Arrays.asList(), Arrays.asList()); - rvDatas.setAdapter(mCangganAdapter); - } - if (mShenshaAdapter == null) { - mShenshaAdapter = new ShenshaAdapter(mContext, R.layout.paipan_shensha_item, Arrays.asList()); - rvShenShaData.setAdapter(mShenshaAdapter); - } - break; - } - } - - public void setColumnCode(int code,int xiaoyunPos) { - mDayunTypeCode = code; - mSelectXiaoyunPos = xiaoyunPos; - notifyDataSetChanged(); - } -} \ No newline at end of file diff --git a/app/src/main/java/com/ckkj/water/plate/adapter/LiuNianColumnAdapter.java b/app/src/main/java/com/ckkj/water/plate/adapter/LiuNianColumnAdapter.java deleted file mode 100644 index 2c1f1ec..0000000 --- a/app/src/main/java/com/ckkj/water/plate/adapter/LiuNianColumnAdapter.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.ckkj.water.plate.adapter; - -import android.content.Context; -import android.graphics.Color; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.RecyclerView; - -import com.chad.library.adapter.base.BaseQuickAdapter; -import com.chad.library.adapter.base.BaseViewHolder; -import com.ckkj.water.R; -import com.ckkj.water.plate.entity.BaziResultBean; -import com.ckkj.water.utils.helper.FiveElementsHelper; - -import java.util.Arrays; -import java.util.List; - -/** - * @author fengxiaoyang - * @date 2025/8/7 - * @description TODO: 描述该类的作用 - */ - -public class LiuNianColumnAdapter extends BaseQuickAdapter - { - private CangGanAdapter mCangganAdapter; - private ShenshaAdapter mShenshaAdapter; - - - private Context mContext; - private List xiaoyunInfo; - - public LiuNianColumnAdapter(Context context, int layoutResId, - @Nullable List data, - List xiaoyunInfo) { - super(layoutResId, data); - this.mContext = context; - this.xiaoyunInfo = xiaoyunInfo; - } - - @Override - protected void convert(BaseViewHolder holder, BaziResultBean.DetailInfoDTO.DayunInfoDTO.LiunianInfoDTO item) { - RecyclerView rvDatas = holder.getView(R.id.rv_canggan); - RecyclerView rvShenShaData = holder.getView(R.id.rv_shensha_data); - // 第一个item(bornBean)的特殊处理 - holder.setText(R.id.tv_shishen, item.getLiunianShishen()); - holder.setText(R.id.tv_tg, item.getLiunianYearTg()); - holder.setText(R.id.tv_dz, item.getLiunianYearDz()); - holder.setTextColor(R.id.tv_tg, Color.parseColor(FiveElementsHelper.getElementInfo(item.getLiunianYearTg()).get("color"))); - holder.setTextColor(R.id.tv_dz, Color.parseColor(FiveElementsHelper.getElementInfo(item.getLiunianYearDz()).get("color"))); - holder.setText(R.id.tv_xingyun, item.getLiunianDzStarCs()); - holder.setText(R.id.tv_zizuo, item.getLiunianDzSelfCs()); - holder.setText(R.id.tv_kongwang, item.getLiunianKongwang()); - holder.setText(R.id.tv_nayin, item.getLiunianNayin()); - - // bornBean的流年数据可能为空,需要特殊处理 - if (mCangganAdapter == null) { - mCangganAdapter = new CangGanAdapter(mContext, R.layout.paipan_canggan_item, - item.getLiunianYearCg(), item.getLiunianDzGod()); - rvDatas.setAdapter(mCangganAdapter); - }else{ - mCangganAdapter.setNewData(item.getLiunianYearCg()); - mCangganAdapter.setmDzGodList(item.getLiunianDzGod()); - } - if (mShenshaAdapter == null) { - mShenshaAdapter = new ShenshaAdapter(mContext, R.layout.paipan_shensha_item, Arrays.asList(item.getLiunianShensha().split(" "))); - rvShenShaData.setAdapter(mShenshaAdapter); - }else{ - String shensha = item.getLiunianShensha(); - mShenshaAdapter.setNewData(Arrays.asList(shensha.split(" "))); - } - } - - public void setXiaoyunDatas(List xiaoyunInfoDTOList) { - this.xiaoyunInfo = xiaoyunInfoDTOList; - } -} diff --git a/app/src/main/java/com/ckkj/water/plate/adapter/LiuYueColumnAdapter.java b/app/src/main/java/com/ckkj/water/plate/adapter/LiuYueColumnAdapter.java deleted file mode 100644 index c46dd33..0000000 --- a/app/src/main/java/com/ckkj/water/plate/adapter/LiuYueColumnAdapter.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.ckkj.water.plate.adapter; - -import android.content.Context; -import android.graphics.Color; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.RecyclerView; - -import com.chad.library.adapter.base.BaseQuickAdapter; -import com.chad.library.adapter.base.BaseViewHolder; -import com.ckkj.water.R; -import com.ckkj.water.plate.entity.BaziResultBean; -import com.ckkj.water.utils.helper.FiveElementsHelper; - -import java.util.Arrays; -import java.util.List; - -/** - * @author fengxiaoyang - * @date 2025/8/7 - * @description TODO: 描述该类的作用 - */ - -public class LiuYueColumnAdapter extends BaseQuickAdapter - { - private CangGanAdapter mCangganAdapter; - private ShenshaAdapter mShenshaAdapter; - - - private Context mContext; - private List xiaoyunInfo; - - public LiuYueColumnAdapter(Context context, int layoutResId, - @Nullable List data) { - super(layoutResId, data); - this.mContext = context; - } - - @Override - protected void convert(BaseViewHolder holder, BaziResultBean.DetailInfoDTO.DayunInfoDTO.LiunianInfoDTO.LiuyueInfoDTO item) { - RecyclerView rvDatas = holder.getView(R.id.rv_canggan); - RecyclerView rvShenShaData = holder.getView(R.id.rv_shensha_data); - // 第一个item(bornBean)的特殊处理 - holder.setText(R.id.tv_shishen, item.getLiuyueShishen()); - holder.setText(R.id.tv_tg, item.getLiuyueMonthTg()); - holder.setText(R.id.tv_dz, item.getLiuyueMonthDz()); - holder.setTextColor(R.id.tv_tg, Color.parseColor(FiveElementsHelper.getElementInfo(item.getLiuyueMonthTg()).get("color"))); - holder.setTextColor(R.id.tv_dz, Color.parseColor(FiveElementsHelper.getElementInfo(item.getLiuyueMonthDz()).get("color"))); - holder.setText(R.id.tv_xingyun, item.getLiuyueDzStarCs()); - holder.setText(R.id.tv_zizuo, item.getLiuyueDzSelfCs()); - holder.setText(R.id.tv_kongwang, item.getLiuyueKongwang()); - holder.setText(R.id.tv_nayin, item.getLiuyueNayin()); - - // bornBean的流年数据可能为空,需要特殊处理 - if (mCangganAdapter == null) { - mCangganAdapter = new CangGanAdapter(mContext, R.layout.paipan_canggan_item, - item.getLiuyueMonthCg(), item.getLiuyueMonthDzGod()); - rvDatas.setAdapter(mCangganAdapter); - }else{ - mCangganAdapter.setNewData(item.getLiuyueMonthCg()); - mCangganAdapter.setmDzGodList(item.getLiuyueMonthDzGod()); - } - if (mShenshaAdapter == null) { - mShenshaAdapter = new ShenshaAdapter(mContext, R.layout.paipan_shensha_item, Arrays.asList(item.getLiuyueShensha().split(" "))); - rvShenShaData.setAdapter(mShenshaAdapter); - }else{ - String shensha = item.getLiuyueShensha(); - mShenshaAdapter.setNewData(Arrays.asList(shensha.split(" "))); - } - } - -// public void setXiaoyunDatas(List xiaoyunInfoDTOList) { -// this.xiaoyunInfo = xiaoyunInfoDTOList; -// } -} diff --git a/app/src/main/java/com/ckkj/water/plate/adapter/LiunianAdapter.java b/app/src/main/java/com/ckkj/water/plate/adapter/LiunianAdapter.java deleted file mode 100644 index 64be2a6..0000000 --- a/app/src/main/java/com/ckkj/water/plate/adapter/LiunianAdapter.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.ckkj.water.plate.adapter; - -import android.content.Context; - -import androidx.annotation.Nullable; -import androidx.core.content.ContextCompat; - -import com.chad.library.adapter.base.BaseQuickAdapter; -import com.chad.library.adapter.base.BaseViewHolder; -import com.ckkj.water.R; -import com.ckkj.water.plate.entity.BaziResultBean; -import com.ckkj.water.utils.helper.ShiShenCalculator; - -import java.util.ArrayList; -import java.util.List; - -/** - * @author fengxiaoyang - * @date 2025/8/6 - * @description TODO: 描述该类的作用 - */ - -public class LiunianAdapter extends BaseQuickAdapter { - private Context mContext; - private int mSelPos = -1; - private List xiaoyunList = - new ArrayList<>(); - - - public LiunianAdapter(Context context, int layoutResId, - @Nullable List data, - List xiaoyunInfo) { - super(layoutResId, data); - this.mContext = context; - this.xiaoyunList = xiaoyunInfo; - } - - @Override - protected void convert(BaseViewHolder holder, BaziResultBean.DetailInfoDTO.DayunInfoDTO.LiunianInfoDTO item) { - holder.setText(R.id.tv_year,item.getLiunianYear() + ""); - holder.setGone(R.id.tv_age,false); - holder.setText(R.id.tv_gan_value, ShiShenCalculator.getAbbreviation(item.getLiunianTgGod())); - holder.setText(R.id.tv_zhi_value,ShiShenCalculator.getAbbreviation(item.getLiunianDzGod().get(0))); - holder.setText(R.id.tv_gan_key,item.getLiunianYearTg()); - holder.setText(R.id.tv_zhi_key,item.getLiunianYearDz()); - holder.setGone(R.id.tv_xiaoyun,true); - holder.setText(R.id.tv_xiaoyun,xiaoyunList.get(holder.getLayoutPosition()).getXiaoyunGanzhi()); - if(holder.getLayoutPosition() == mSelPos){ - holder.setBackgroundColor(R.id.ll_item, ContextCompat.getColor(mContext,R.color.divider)); - }else{ - holder.setBackgroundColor(R.id.ll_item, ContextCompat.getColor(mContext,R.color.white)); - } - } - - public void setSelPostion(int pos){ - this.mSelPos = pos; - notifyDataSetChanged(); - } - - public int getmSelPos() { - return mSelPos; - } -} diff --git a/app/src/main/java/com/ckkj/water/plate/adapter/LiuyueAdapter.java b/app/src/main/java/com/ckkj/water/plate/adapter/LiuyueAdapter.java deleted file mode 100644 index 1486a31..0000000 --- a/app/src/main/java/com/ckkj/water/plate/adapter/LiuyueAdapter.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.ckkj.water.plate.adapter; - -import android.content.Context; - -import androidx.annotation.Nullable; -import androidx.core.content.ContextCompat; - -import com.chad.library.adapter.base.BaseQuickAdapter; -import com.chad.library.adapter.base.BaseViewHolder; -import com.ckkj.water.R; -import com.ckkj.water.plate.entity.BaziResultBean; -import com.ckkj.water.utils.helper.ShiShenCalculator; -import com.ckkj.water.utils.time.ZYTimeUtils; - -import java.util.ArrayList; -import java.util.List; - -/** - * @author fengxiaoyang - * @date 2025/8/6 - * @description TODO: 描述该类的作用 - */ - -public class LiuyueAdapter extends BaseQuickAdapter { - private Context mContext; - private int mSelPos = -1; - private List jieqiList = - new ArrayList<>(); - public LiuyueAdapter(Context context,int layoutResId, @Nullable List data, - List jieqiList) { - super(layoutResId, data); - this.mContext = context; - this.jieqiList = jieqiList; - } - - @Override - protected void convert(BaseViewHolder holder, BaziResultBean.DetailInfoDTO.DayunInfoDTO.LiunianInfoDTO.LiuyueInfoDTO item) { - holder.setText(R.id.tv_year,jieqiList.get(holder.getLayoutPosition()).getJieqiName()); - holder.setGone(R.id.tv_age,true); - //节气日期转换 - String jieqiDate = ZYTimeUtils.formatToMonthDay(jieqiList.get(holder.getLayoutPosition()).getJieqiSolarYmdhms()); - holder.setText(R.id.tv_age, jieqiDate); - holder.setText(R.id.tv_gan_value, ShiShenCalculator.getAbbreviation(item.getLiuyueMonthTgGod())); - holder.setText(R.id.tv_zhi_value,ShiShenCalculator.getAbbreviation(item.getLiuyueMonthDzGod().get(0))); - holder.setText(R.id.tv_gan_key,item.getLiuyueMonthTg()); - holder.setText(R.id.tv_zhi_key,item.getLiuyueMonthDz()); - holder.setGone(R.id.tv_xiaoyun,false); - if(holder.getLayoutPosition() == mSelPos){ - holder.setBackgroundColor(R.id.ll_item, ContextCompat.getColor(mContext,R.color.divider)); - }else{ - holder.setBackgroundColor(R.id.ll_item, ContextCompat.getColor(mContext,R.color.white)); - } - } - - public void setSelPostion(int pos){ - this.mSelPos = pos; - notifyDataSetChanged(); - } - - public int getmSelPos() { - return mSelPos; - } -} diff --git a/app/src/main/java/com/ckkj/water/plate/adapter/PaipanHistoryAdapter.java b/app/src/main/java/com/ckkj/water/plate/adapter/PaipanHistoryAdapter.java deleted file mode 100644 index febb254..0000000 --- a/app/src/main/java/com/ckkj/water/plate/adapter/PaipanHistoryAdapter.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.ckkj.water.plate.adapter; - -import android.content.Context; -import android.graphics.Color; - -import androidx.annotation.Nullable; - -import com.chad.library.adapter.base.BaseQuickAdapter; -import com.chad.library.adapter.base.BaseViewHolder; -import com.ckkj.water.R; -import com.ckkj.water.plate.entity.PaipanHistoryEntity; -import com.ckkj.water.utils.click.ClickUtil; -import com.ckkj.water.utils.helper.FiveElementsHelper; - -import java.util.List; - -/** - * @author fengxiaoyang - * @date 2025/8/9 - * @description TODO: 描述该类的作用 - */ - -public class PaipanHistoryAdapter extends BaseQuickAdapter { - private Context mContext; - public PaipanHistoryAdapter(Context context,int layoutResId, @Nullable List data) { - super(layoutResId, data); - this.mContext = context; - } - - @Override - protected void convert(BaseViewHolder holder, PaipanHistoryEntity.RecordsDTO item) { - String []nianArr = item.getNianZhu().split(","); - String []yueArr = item.getYueZhu().split(","); - String []riArr = item.getRiZhu().split(","); - String []shiArr = item.getShiZhu().split(","); - holder.setText(R.id.tv_nian_tg,nianArr[0]); - holder.setText(R.id.tv_nian_dz,nianArr[1]); - holder.setText(R.id.tv_yue_tg,yueArr[0]); - holder.setText(R.id.tv_yue_dz,yueArr[1]); - holder.setText(R.id.tv_ri_tg,riArr[0]); - holder.setText(R.id.tv_ri_dz,riArr[1]); - holder.setText(R.id.tv_shi_tg,shiArr[0]); - holder.setText(R.id.tv_shi_dz,shiArr[1]); - holder.setTextColor(R.id.tv_nian_tg, Color.parseColor(FiveElementsHelper.getElementInfo(nianArr[0]).get("color"))); - holder.setTextColor(R.id.tv_nian_dz, Color.parseColor(FiveElementsHelper.getElementInfo(nianArr[1]).get("color"))); - holder.setTextColor(R.id.tv_yue_tg, Color.parseColor(FiveElementsHelper.getElementInfo(yueArr[0]).get("color"))); - holder.setTextColor(R.id.tv_yue_dz, Color.parseColor(FiveElementsHelper.getElementInfo(yueArr[1]).get("color"))); - holder.setTextColor(R.id.tv_ri_tg, Color.parseColor(FiveElementsHelper.getElementInfo(riArr[0]).get("color"))); - holder.setTextColor(R.id.tv_ri_dz, Color.parseColor(FiveElementsHelper.getElementInfo(riArr[1]).get("color"))); - holder.setTextColor(R.id.tv_shi_tg, Color.parseColor(FiveElementsHelper.getElementInfo(shiArr[0]).get("color"))); - holder.setTextColor(R.id.tv_shi_dz, Color.parseColor(FiveElementsHelper.getElementInfo(shiArr[1]).get("color"))); - holder.setText(R.id.tv_user_name,item.getName()); - holder.setText(R.id.tv_user_sex,Integer.parseInt(item.getGender()) == 0 ? "男":"女"); - holder.setText(R.id.tv_user_birthtime,Integer.parseInt(item.getBirthType()) == 1 ? - "公历:" + item.getYangLiBirthTime(): - "农历:" + item.getYinLiBirthTime()); - ClickUtil.addClickPart(holder.getView(R.id.img_delete),80); - holder.addOnClickListener(R.id.img_delete); - } -} diff --git a/app/src/main/java/com/ckkj/water/plate/adapter/ShenshaAdapter.java b/app/src/main/java/com/ckkj/water/plate/adapter/ShenshaAdapter.java deleted file mode 100644 index 4b06e6a..0000000 --- a/app/src/main/java/com/ckkj/water/plate/adapter/ShenshaAdapter.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.ckkj.water.plate.adapter; - -import android.content.Context; - -import androidx.annotation.Nullable; - -import com.chad.library.adapter.base.BaseQuickAdapter; -import com.chad.library.adapter.base.BaseViewHolder; -import com.ckkj.water.R; - -import java.util.List; - -/** - * @author fengxiaoyang - * @date 2025/8/6 - * @description TODO: 描述该类的作用 - */ - -public class ShenshaAdapter extends BaseQuickAdapter { - private Context mContext; - public ShenshaAdapter(Context context,int layoutResId, @Nullable List data) { - super(layoutResId, data); - this.mContext = context; - } - - @Override - protected void convert(BaseViewHolder helper, String item) { - helper.setText(R.id.tv_shensha_value,item); - } -} diff --git a/app/src/main/java/com/ckkj/water/plate/adapter/SizhuAdapter.java b/app/src/main/java/com/ckkj/water/plate/adapter/SizhuAdapter.java deleted file mode 100644 index efcfeed..0000000 --- a/app/src/main/java/com/ckkj/water/plate/adapter/SizhuAdapter.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.ckkj.water.plate.adapter; - -import android.content.Context; -import android.graphics.Color; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.RecyclerView; - -import com.chad.library.adapter.base.BaseQuickAdapter; -import com.chad.library.adapter.base.BaseViewHolder; -import com.ckkj.water.R; -import com.ckkj.water.plate.entity.BaziResultBean; -import com.ckkj.water.utils.helper.FiveElementsHelper; - -import java.util.Arrays; -import java.util.List; - -/** - * @author fengxiaoyang - * @date 2025/8/6 - * @description TODO: 描述该类的作用 - */ - -public class SizhuAdapter extends BaseQuickAdapter { - private Context mContext; - private int mSizhuTypeCode = 100; - private CangGanAdapter mCangganAdapter; - private ShenshaAdapter mShenshaAdapter; - public SizhuAdapter(Context context,int layoutResId, - @Nullable List data, - int typeCode) { - super(layoutResId, data); - this.mContext = context; - this.mSizhuTypeCode = typeCode; - } - - @Override - protected void convert(BaseViewHolder holder, BaziResultBean.DetailInfoDTO.SizhuInfoDTO item) { - RecyclerView rvDatas = holder.getView(R.id.rv_canggan); - RecyclerView rvShenShaData = holder.getView(R.id.rv_shensha_data); - switch (mSizhuTypeCode){ - case 100: // 年柱 - holder.setText(R.id.tv_shishen,item.getYear().getTgGod()); - holder.setText(R.id.tv_tg,item.getYear().getTg()); - holder.setText(R.id.tv_dz,item.getYear().getDz()); - holder.setTextColor(R.id.tv_tg, Color.parseColor(FiveElementsHelper.getElementInfo(item.getYear().getTg()).get("color"))); - holder.setTextColor(R.id.tv_dz, Color.parseColor(FiveElementsHelper.getElementInfo(item.getYear().getDz()).get("color"))); - holder.setText(R.id.tv_xingyun,item.getYear().getDzStarCs()); - holder.setText(R.id.tv_zizuo,item.getYear().getDzSelfCs()); - holder.setText(R.id.tv_kongwang,item.getYear().getKw()); - holder.setText(R.id.tv_nayin,item.getYear().getNy()); - if(mCangganAdapter == null){ - mCangganAdapter = new CangGanAdapter(mContext,R.layout.paipan_canggan_item, - item.getYear().getCg(), item.getYear().getDzGod()); - rvDatas.setAdapter(mCangganAdapter); - } - if(mShenshaAdapter == null){ - List shenshaList = Arrays.asList(item.getYear().getShensha().split(" ")); - mShenshaAdapter = new ShenshaAdapter(mContext,R.layout.paipan_shensha_item,shenshaList); - rvShenShaData.setAdapter(mShenshaAdapter); - } - break; - case 200: // 月柱 - holder.setText(R.id.tv_shishen,item.getMonth().getTgGod()); - holder.setText(R.id.tv_tg,item.getMonth().getTg()); - holder.setText(R.id.tv_dz,item.getMonth().getDz()); - holder.setTextColor(R.id.tv_tg, Color.parseColor(FiveElementsHelper.getElementInfo(item.getMonth().getTg()).get("color"))); - holder.setTextColor(R.id.tv_dz, Color.parseColor(FiveElementsHelper.getElementInfo(item.getMonth().getDz()).get("color"))); - holder.setText(R.id.tv_xingyun,item.getMonth().getDzStarCs()); - holder.setText(R.id.tv_zizuo,item.getMonth().getDzSelfCs()); - holder.setText(R.id.tv_kongwang,item.getMonth().getKw()); - holder.setText(R.id.tv_nayin,item.getMonth().getNy()); - if(mCangganAdapter == null){ - mCangganAdapter = new CangGanAdapter(mContext,R.layout.paipan_canggan_item, - item.getMonth().getCg(), item.getMonth().getDzGod()); - rvDatas.setAdapter(mCangganAdapter); - } - if(mShenshaAdapter == null){ - List shenshaList = Arrays.asList(item.getMonth().getShensha().split(" ")); - mShenshaAdapter = new ShenshaAdapter(mContext,R.layout.paipan_shensha_item,shenshaList); - rvShenShaData.setAdapter(mShenshaAdapter); - } - break; - case 300: // 日柱 - holder.setText(R.id.tv_shishen,item.getDay().getTgGod()); - holder.setText(R.id.tv_tg,item.getDay().getTg()); - holder.setText(R.id.tv_dz,item.getDay().getDz()); - holder.setTextColor(R.id.tv_tg, Color.parseColor(FiveElementsHelper.getElementInfo(item.getDay().getTg()).get("color"))); - holder.setTextColor(R.id.tv_dz, Color.parseColor(FiveElementsHelper.getElementInfo(item.getDay().getDz()).get("color"))); - holder.setText(R.id.tv_xingyun,item.getDay().getDzStarCs()); - holder.setText(R.id.tv_zizuo,item.getDay().getDzSelfCs()); - holder.setText(R.id.tv_kongwang,item.getDay().getKw()); - holder.setText(R.id.tv_nayin,item.getDay().getNy()); - if(mCangganAdapter == null){ - mCangganAdapter = new CangGanAdapter(mContext,R.layout.paipan_canggan_item, - item.getDay().getCg(), item.getDay().getDzGod()); - rvDatas.setAdapter(mCangganAdapter); - } - if(mShenshaAdapter == null){ - List shenshaList = Arrays.asList(item.getDay().getShensha().split(" ")); - mShenshaAdapter = new ShenshaAdapter(mContext,R.layout.paipan_shensha_item,shenshaList); - rvShenShaData.setAdapter(mShenshaAdapter); - } - break; - case 400: // 时柱 - holder.setText(R.id.tv_shishen,item.getHour().getTgGod()); - holder.setText(R.id.tv_tg,item.getHour().getTg()); - holder.setText(R.id.tv_dz,item.getHour().getDz()); - holder.setTextColor(R.id.tv_tg, Color.parseColor(FiveElementsHelper.getElementInfo(item.getHour().getTg()).get("color"))); - holder.setTextColor(R.id.tv_dz, Color.parseColor(FiveElementsHelper.getElementInfo(item.getHour().getDz()).get("color"))); - holder.setText(R.id.tv_xingyun,item.getHour().getDzStarCs()); - holder.setText(R.id.tv_zizuo,item.getHour().getDzSelfCs()); - holder.setText(R.id.tv_kongwang,item.getHour().getKw()); - holder.setText(R.id.tv_nayin,item.getHour().getNy()); - if(mCangganAdapter == null){ - mCangganAdapter = new CangGanAdapter(mContext,R.layout.paipan_canggan_item, - item.getHour().getCg(), item.getHour().getDzGod()); - rvDatas.setAdapter(mCangganAdapter); - } - if(mShenshaAdapter == null){ - List shenshaList = Arrays.asList(item.getHour().getShensha().split(" ")); - mShenshaAdapter = new ShenshaAdapter(mContext,R.layout.paipan_shensha_item,shenshaList); - rvShenShaData.setAdapter(mShenshaAdapter); - } - break; - } - } -} diff --git a/app/src/main/java/com/ckkj/water/plate/entity/BaziPaiPanEntity.java b/app/src/main/java/com/ckkj/water/plate/entity/BaziPaiPanEntity.java deleted file mode 100644 index 42c6c6d..0000000 --- a/app/src/main/java/com/ckkj/water/plate/entity/BaziPaiPanEntity.java +++ /dev/null @@ -1,1780 +0,0 @@ -package com.ckkj.water.plate.entity; - -import java.util.List; - - -public class BaziPaiPanEntity { - private Base_info base_info; - private Detail_info detail_info; - public void setBase_info(Base_info base_info) { - this.base_info = base_info; - } - public Base_info getBase_info() { - return base_info; - } - - public void setDetail_info(Detail_info detail_info) { - this.detail_info = detail_info; - } - public Detail_info getDetail_info() { - return detail_info; - } - - /** - * Auto-generated: 2025-08-04 17:55:40 - * - * @author bejson.com (i@bejson.com) - * @website http://www.bejson.com/java2pojo/ - */ - public static class Detail_info { - - private List dayun_info; - private Sizhu_info sizhu_info; - public void setDayun_info(List dayun_info) { - this.dayun_info = dayun_info; - } - public List getDayun_info() { - return dayun_info; - } - - public void setSizhu_info(Sizhu_info sizhu_info) { - this.sizhu_info = sizhu_info; - } - public Sizhu_info getSizhu_info() { - return sizhu_info; - } - } - - - /** - * Auto-generated: 2025-08-04 17:55:40 - * - * @author bejson.com (i@bejson.com) - * @website http://www.bejson.com/java2pojo/ - */ - public static class Sizhu_info { - - private Year year; - private Month month; - private Day day; - private Hour hour; - private Sizhu_indication sizhu_indication; - public void setYear(Year year) { - this.year = year; - } - public Year getYear() { - return year; - } - - public void setMonth(Month month) { - this.month = month; - } - public Month getMonth() { - return month; - } - - public void setDay(Day day) { - this.day = day; - } - public Day getDay() { - return day; - } - - public void setHour(Hour hour) { - this.hour = hour; - } - public Hour getHour() { - return hour; - } - - public void setSizhu_indication(Sizhu_indication sizhu_indication) { - this.sizhu_indication = sizhu_indication; - } - public Sizhu_indication getSizhu_indication() { - return sizhu_indication; - } - - } - - - - /** - * Auto-generated: 2025-08-04 17:55:40 - * - * @author bejson.com (i@bejson.com) - * @website http://www.bejson.com/java2pojo/ - */ - public static class Sizhu_indication { - - private Chenggu chenggu; - private Wuxing wuxing; - private Yinyuan yinyuan; - private Caiyun caiyun; - private Xingge xingge; - private Mingyun mingyun; - public void setChenggu(Chenggu chenggu) { - this.chenggu = chenggu; - } - public Chenggu getChenggu() { - return chenggu; - } - - public void setWuxing(Wuxing wuxing) { - this.wuxing = wuxing; - } - public Wuxing getWuxing() { - return wuxing; - } - - public void setYinyuan(Yinyuan yinyuan) { - this.yinyuan = yinyuan; - } - public Yinyuan getYinyuan() { - return yinyuan; - } - - public void setCaiyun(Caiyun caiyun) { - this.caiyun = caiyun; - } - public Caiyun getCaiyun() { - return caiyun; - } - - public void setXingge(Xingge xingge) { - this.xingge = xingge; - } - public Xingge getXingge() { - return xingge; - } - - public void setMingyun(Mingyun mingyun) { - this.mingyun = mingyun; - } - public Mingyun getMingyun() { - return mingyun; - } - - } - - - - /** - * Auto-generated: 2025-08-04 17:55:40 - * - * @author bejson.com (i@bejson.com) - * @website http://www.bejson.com/java2pojo/ - */ - public static class Mingyun { - - private String sanshishu_mingyun; - public void setSanshishu_mingyun(String sanshishu_mingyun) { - this.sanshishu_mingyun = sanshishu_mingyun; - } - public String getSanshishu_mingyun() { - return sanshishu_mingyun; - } - - } - - - - /** - * Auto-generated: 2025-08-04 17:55:40 - * - * @author bejson.com (i@bejson.com) - * @website http://www.bejson.com/java2pojo/ - */ - public static class Xingge { - - private String rizhu; - public void setRizhu(String rizhu) { - this.rizhu = rizhu; - } - public String getRizhu() { - return rizhu; - } - - } - - - - /** - * Auto-generated: 2025-08-04 17:55:40 - * - * @author bejson.com (i@bejson.com) - * @website http://www.bejson.com/java2pojo/ - */ - public static class Caiyun { - - private Sanshishu_caiyun sanshishu_caiyun; - public void setSanshishu_caiyun(Sanshishu_caiyun sanshishu_caiyun) { - this.sanshishu_caiyun = sanshishu_caiyun; - } - public Sanshishu_caiyun getSanshishu_caiyun() { - return sanshishu_caiyun; - } - - } - - - - /** - * Auto-generated: 2025-08-04 17:55:40 - * - * @author bejson.com (i@bejson.com) - * @website http://www.bejson.com/java2pojo/ - */ - public static class Sanshishu_caiyun { - - private String simple_desc; - private String detail_desc; - public void setSimple_desc(String simple_desc) { - this.simple_desc = simple_desc; - } - public String getSimple_desc() { - return simple_desc; - } - - public void setDetail_desc(String detail_desc) { - this.detail_desc = detail_desc; - } - public String getDetail_desc() { - return detail_desc; - } - - } - - - /** - * Auto-generated: 2025-08-04 17:55:40 - * - * @author bejson.com (i@bejson.com) - * @website http://www.bejson.com/java2pojo/ - */ - public static class Yinyuan { - - private String sanshishu_yinyuan; - public void setSanshishu_yinyuan(String sanshishu_yinyuan) { - this.sanshishu_yinyuan = sanshishu_yinyuan; - } - public String getSanshishu_yinyuan() { - return sanshishu_yinyuan; - } - - } - - - - /** - * Auto-generated: 2025-08-04 17:55:40 - * - * @author bejson.com (i@bejson.com) - * @website http://www.bejson.com/java2pojo/ - */ - public static class Wuxing { - - private String detail_desc; - private String simple_desc; - private String simple_description; - private String detail_description; - public void setDetail_desc(String detail_desc) { - this.detail_desc = detail_desc; - } - public String getDetail_desc() { - return detail_desc; - } - - public void setSimple_desc(String simple_desc) { - this.simple_desc = simple_desc; - } - public String getSimple_desc() { - return simple_desc; - } - - public void setSimple_description(String simple_description) { - this.simple_description = simple_description; - } - public String getSimple_description() { - return simple_description; - } - - public void setDetail_description(String detail_description) { - this.detail_description = detail_description; - } - public String getDetail_description() { - return detail_description; - } - - } - - - - /** - * Auto-generated: 2025-08-04 17:55:40 - * - * @author bejson.com (i@bejson.com) - * @website http://www.bejson.com/java2pojo/ - */ - public static class Chenggu { - - private String year_weight; - private String month_weight; - private String day_weight; - private String hour_weight; - private String total_weight; - private String description; - public void setYear_weight(String year_weight) { - this.year_weight = year_weight; - } - public String getYear_weight() { - return year_weight; - } - - public void setMonth_weight(String month_weight) { - this.month_weight = month_weight; - } - public String getMonth_weight() { - return month_weight; - } - - public void setDay_weight(String day_weight) { - this.day_weight = day_weight; - } - public String getDay_weight() { - return day_weight; - } - - public void setHour_weight(String hour_weight) { - this.hour_weight = hour_weight; - } - public String getHour_weight() { - return hour_weight; - } - - public void setTotal_weight(String total_weight) { - this.total_weight = total_weight; - } - public String getTotal_weight() { - return total_weight; - } - - public void setDescription(String description) { - this.description = description; - } - public String getDescription() { - return description; - } - - } - - /** - * Auto-generated: 2025-08-04 17:55:40 - * - * @author bejson.com (i@bejson.com) - * @website http://www.bejson.com/java2pojo/ - */ - public static class Hour { - - private String tg_god; - private String tg; - private String dz; - private List cg; - private List dz_god; - private String dz_star_cs; - private String dz_self_cs; - private String kw; - private String ny; - private String wx; - private String xun; - private String shensha; - public void setTg_god(String tg_god) { - this.tg_god = tg_god; - } - public String getTg_god() { - return tg_god; - } - - public void setTg(String tg) { - this.tg = tg; - } - public String getTg() { - return tg; - } - - public void setDz(String dz) { - this.dz = dz; - } - public String getDz() { - return dz; - } - - public void setCg(List cg) { - this.cg = cg; - } - public List getCg() { - return cg; - } - - public void setDz_god(List dz_god) { - this.dz_god = dz_god; - } - public List getDz_god() { - return dz_god; - } - - public void setDz_star_cs(String dz_star_cs) { - this.dz_star_cs = dz_star_cs; - } - public String getDz_star_cs() { - return dz_star_cs; - } - - public void setDz_self_cs(String dz_self_cs) { - this.dz_self_cs = dz_self_cs; - } - public String getDz_self_cs() { - return dz_self_cs; - } - - public void setKw(String kw) { - this.kw = kw; - } - public String getKw() { - return kw; - } - - public void setNy(String ny) { - this.ny = ny; - } - public String getNy() { - return ny; - } - - public void setWx(String wx) { - this.wx = wx; - } - public String getWx() { - return wx; - } - - public void setXun(String xun) { - this.xun = xun; - } - public String getXun() { - return xun; - } - - public void setShensha(String shensha) { - this.shensha = shensha; - } - public String getShensha() { - return shensha; - } - - } - - - /** - * Auto-generated: 2025-08-04 17:55:40 - * - * @author bejson.com (i@bejson.com) - * @website http://www.bejson.com/java2pojo/ - */ - public static class Day { - - private String tg_god; - private String tg; - private String dz; - private List cg; - private List dz_god; - private String dz_star_cs; - private String dz_self_cs; - private String kw; - private String ny; - private String wx; - private String xun; - private String shensha; - public void setTg_god(String tg_god) { - this.tg_god = tg_god; - } - public String getTg_god() { - return tg_god; - } - - public void setTg(String tg) { - this.tg = tg; - } - public String getTg() { - return tg; - } - - public void setDz(String dz) { - this.dz = dz; - } - public String getDz() { - return dz; - } - - public void setCg(List cg) { - this.cg = cg; - } - public List getCg() { - return cg; - } - - public void setDz_god(List dz_god) { - this.dz_god = dz_god; - } - public List getDz_god() { - return dz_god; - } - - public void setDz_star_cs(String dz_star_cs) { - this.dz_star_cs = dz_star_cs; - } - public String getDz_star_cs() { - return dz_star_cs; - } - - public void setDz_self_cs(String dz_self_cs) { - this.dz_self_cs = dz_self_cs; - } - public String getDz_self_cs() { - return dz_self_cs; - } - - public void setKw(String kw) { - this.kw = kw; - } - public String getKw() { - return kw; - } - - public void setNy(String ny) { - this.ny = ny; - } - public String getNy() { - return ny; - } - - public void setWx(String wx) { - this.wx = wx; - } - public String getWx() { - return wx; - } - - public void setXun(String xun) { - this.xun = xun; - } - public String getXun() { - return xun; - } - - public void setShensha(String shensha) { - this.shensha = shensha; - } - public String getShensha() { - return shensha; - } - - } - - - /** - * Auto-generated: 2025-08-04 17:55:40 - * - * @author bejson.com (i@bejson.com) - * @website http://www.bejson.com/java2pojo/ - */ - public static class Month { - - private String tg_god; - private String tg; - private String dz; - private List cg; - private List dz_god; - private String dz_star_cs; - private String dz_self_cs; - private String kw; - private String ny; - private String wx; - private String xun; - private String shensha; - public void setTg_god(String tg_god) { - this.tg_god = tg_god; - } - public String getTg_god() { - return tg_god; - } - - public void setTg(String tg) { - this.tg = tg; - } - public String getTg() { - return tg; - } - - public void setDz(String dz) { - this.dz = dz; - } - public String getDz() { - return dz; - } - - public void setCg(List cg) { - this.cg = cg; - } - public List getCg() { - return cg; - } - - public void setDz_god(List dz_god) { - this.dz_god = dz_god; - } - public List getDz_god() { - return dz_god; - } - - public void setDz_star_cs(String dz_star_cs) { - this.dz_star_cs = dz_star_cs; - } - public String getDz_star_cs() { - return dz_star_cs; - } - - public void setDz_self_cs(String dz_self_cs) { - this.dz_self_cs = dz_self_cs; - } - public String getDz_self_cs() { - return dz_self_cs; - } - - public void setKw(String kw) { - this.kw = kw; - } - public String getKw() { - return kw; - } - - public void setNy(String ny) { - this.ny = ny; - } - public String getNy() { - return ny; - } - - public void setWx(String wx) { - this.wx = wx; - } - public String getWx() { - return wx; - } - - public void setXun(String xun) { - this.xun = xun; - } - public String getXun() { - return xun; - } - - public void setShensha(String shensha) { - this.shensha = shensha; - } - public String getShensha() { - return shensha; - } - - } - - - /** - * Auto-generated: 2025-08-04 17:55:40 - * - * @author bejson.com (i@bejson.com) - * @website http://www.bejson.com/java2pojo/ - */ - public static class Year { - - private String tg_god; - private String tg; - private String dz; - private List cg; - private List dz_god; - private String dz_star_cs; - private String dz_self_cs; - private String kw; - private String ny; - private String wx; - private String xun; - private String shensha; - public void setTg_god(String tg_god) { - this.tg_god = tg_god; - } - public String getTg_god() { - return tg_god; - } - - public void setTg(String tg) { - this.tg = tg; - } - public String getTg() { - return tg; - } - - public void setDz(String dz) { - this.dz = dz; - } - public String getDz() { - return dz; - } - - public void setCg(List cg) { - this.cg = cg; - } - public List getCg() { - return cg; - } - - public void setDz_god(List dz_god) { - this.dz_god = dz_god; - } - public List getDz_god() { - return dz_god; - } - - public void setDz_star_cs(String dz_star_cs) { - this.dz_star_cs = dz_star_cs; - } - public String getDz_star_cs() { - return dz_star_cs; - } - - public void setDz_self_cs(String dz_self_cs) { - this.dz_self_cs = dz_self_cs; - } - public String getDz_self_cs() { - return dz_self_cs; - } - - public void setKw(String kw) { - this.kw = kw; - } - public String getKw() { - return kw; - } - - public void setNy(String ny) { - this.ny = ny; - } - public String getNy() { - return ny; - } - - public void setWx(String wx) { - this.wx = wx; - } - public String getWx() { - return wx; - } - - public void setXun(String xun) { - this.xun = xun; - } - public String getXun() { - return xun; - } - - public void setShensha(String shensha) { - this.shensha = shensha; - } - public String getShensha() { - return shensha; - } - - } - - - - /** - * Auto-generated: 2025-08-04 17:55:40 - * - * @author bejson.com (i@bejson.com) - * @website http://www.bejson.com/java2pojo/ - */ - public static class Dayun_info { - - private int dayun_index; - private int dayun_start_year; - private int dayun_start_age; - private int dayun_end_year; - private int dayun_end_age; - private String dayun_start_ganzhi; - private String dayun_xun; - private String dayun_kongwang; - private String dayun_shishen; - private String dayun_changsheng; - private String dayun_year_tg; - private String dayun_year_dz; - private List dayun_year_cg; - private String dayun_year_tg_god; - private List dayun_year_dz_god; - private String dayun_dz_star_cs; - private String dayun_dz_self_cs; - private String dayun_nayin; - private String dayun_wuxing; - private String dayun_tg_liuyi; - private String dayun_dz_liuyi; - private List liunian_info; - private String dayun_shensha; - private Dayun_indication dayun_indication; - public void setDayun_index(int dayun_index) { - this.dayun_index = dayun_index; - } - public int getDayun_index() { - return dayun_index; - } - - public void setDayun_start_year(int dayun_start_year) { - this.dayun_start_year = dayun_start_year; - } - public int getDayun_start_year() { - return dayun_start_year; - } - - public void setDayun_start_age(int dayun_start_age) { - this.dayun_start_age = dayun_start_age; - } - public int getDayun_start_age() { - return dayun_start_age; - } - - public void setDayun_end_year(int dayun_end_year) { - this.dayun_end_year = dayun_end_year; - } - public int getDayun_end_year() { - return dayun_end_year; - } - - public void setDayun_end_age(int dayun_end_age) { - this.dayun_end_age = dayun_end_age; - } - public int getDayun_end_age() { - return dayun_end_age; - } - - public void setDayun_start_ganzhi(String dayun_start_ganzhi) { - this.dayun_start_ganzhi = dayun_start_ganzhi; - } - public String getDayun_start_ganzhi() { - return dayun_start_ganzhi; - } - - public void setDayun_xun(String dayun_xun) { - this.dayun_xun = dayun_xun; - } - public String getDayun_xun() { - return dayun_xun; - } - - public void setDayun_kongwang(String dayun_kongwang) { - this.dayun_kongwang = dayun_kongwang; - } - public String getDayun_kongwang() { - return dayun_kongwang; - } - - public void setDayun_shishen(String dayun_shishen) { - this.dayun_shishen = dayun_shishen; - } - public String getDayun_shishen() { - return dayun_shishen; - } - - public void setDayun_changsheng(String dayun_changsheng) { - this.dayun_changsheng = dayun_changsheng; - } - public String getDayun_changsheng() { - return dayun_changsheng; - } - - public void setDayun_year_tg(String dayun_year_tg) { - this.dayun_year_tg = dayun_year_tg; - } - public String getDayun_year_tg() { - return dayun_year_tg; - } - - public void setDayun_year_dz(String dayun_year_dz) { - this.dayun_year_dz = dayun_year_dz; - } - public String getDayun_year_dz() { - return dayun_year_dz; - } - - public void setDayun_year_cg(List dayun_year_cg) { - this.dayun_year_cg = dayun_year_cg; - } - public List getDayun_year_cg() { - return dayun_year_cg; - } - - public void setDayun_year_tg_god(String dayun_year_tg_god) { - this.dayun_year_tg_god = dayun_year_tg_god; - } - public String getDayun_year_tg_god() { - return dayun_year_tg_god; - } - - public void setDayun_year_dz_god(List dayun_year_dz_god) { - this.dayun_year_dz_god = dayun_year_dz_god; - } - public List getDayun_year_dz_god() { - return dayun_year_dz_god; - } - - public void setDayun_dz_star_cs(String dayun_dz_star_cs) { - this.dayun_dz_star_cs = dayun_dz_star_cs; - } - public String getDayun_dz_star_cs() { - return dayun_dz_star_cs; - } - - public void setDayun_dz_self_cs(String dayun_dz_self_cs) { - this.dayun_dz_self_cs = dayun_dz_self_cs; - } - public String getDayun_dz_self_cs() { - return dayun_dz_self_cs; - } - - public void setDayun_nayin(String dayun_nayin) { - this.dayun_nayin = dayun_nayin; - } - public String getDayun_nayin() { - return dayun_nayin; - } - - public void setDayun_wuxing(String dayun_wuxing) { - this.dayun_wuxing = dayun_wuxing; - } - public String getDayun_wuxing() { - return dayun_wuxing; - } - - public void setDayun_tg_liuyi(String dayun_tg_liuyi) { - this.dayun_tg_liuyi = dayun_tg_liuyi; - } - public String getDayun_tg_liuyi() { - return dayun_tg_liuyi; - } - - public void setDayun_dz_liuyi(String dayun_dz_liuyi) { - this.dayun_dz_liuyi = dayun_dz_liuyi; - } - public String getDayun_dz_liuyi() { - return dayun_dz_liuyi; - } - - public void setLiunian_info(List liunian_info) { - this.liunian_info = liunian_info; - } - public List getLiunian_info() { - return liunian_info; - } - - public void setDayun_shensha(String dayun_shensha) { - this.dayun_shensha = dayun_shensha; - } - public String getDayun_shensha() { - return dayun_shensha; - } - - public void setDayun_indication(Dayun_indication dayun_indication) { - this.dayun_indication = dayun_indication; - } - public Dayun_indication getDayun_indication() { - return dayun_indication; - } - - } - - - /** - * Auto-generated: 2025-08-04 17:55:40 - * - * @author bejson.com (i@bejson.com) - * @website http://www.bejson.com/java2pojo/ - */ - public static class Dayun_indication { - - private String shiye; - private String xueye; - private String yunshi; - private String yinyuan; - private String caiyun; - private String jiankang; - public void setShiye(String shiye) { - this.shiye = shiye; - } - public String getShiye() { - return shiye; - } - - public void setXueye(String xueye) { - this.xueye = xueye; - } - public String getXueye() { - return xueye; - } - - public void setYunshi(String yunshi) { - this.yunshi = yunshi; - } - public String getYunshi() { - return yunshi; - } - - public void setYinyuan(String yinyuan) { - this.yinyuan = yinyuan; - } - public String getYinyuan() { - return yinyuan; - } - - public void setCaiyun(String caiyun) { - this.caiyun = caiyun; - } - public String getCaiyun() { - return caiyun; - } - - public void setJiankang(String jiankang) { - this.jiankang = jiankang; - } - public String getJiankang() { - return jiankang; - } - - } - - - /** - * Auto-generated: 2025-08-04 17:55:40 - * - * @author bejson.com (i@bejson.com) - * @website http://www.bejson.com/java2pojo/ - */ - public static class Liunian_info { - - private int liunian_index; - private int liunian_year; - private int liunian_age; - private String liunian_ganzhi; - private String liunian_xun; - private String liunian_kongwang; - private String liunian_shishen; - private String liunian_changsheng; - private String liunian_year_tg; - private String liunian_year_dz; - private List liunian_year_cg; - private String liunian_tg_god; - private List liunian_dz_god; - private String liunian_dz_star_cs; - private String liunian_dz_self_cs; - private String liunian_nayin; - private String liunian_wuxing; - private String liunian_tg_liuyi; - private String liunian_dz_liuyi; - private String liunian_shensha; - private Liunian_indication liunian_indication; - public void setLiunian_index(int liunian_index) { - this.liunian_index = liunian_index; - } - public int getLiunian_index() { - return liunian_index; - } - - public void setLiunian_year(int liunian_year) { - this.liunian_year = liunian_year; - } - public int getLiunian_year() { - return liunian_year; - } - - public void setLiunian_age(int liunian_age) { - this.liunian_age = liunian_age; - } - public int getLiunian_age() { - return liunian_age; - } - - public void setLiunian_ganzhi(String liunian_ganzhi) { - this.liunian_ganzhi = liunian_ganzhi; - } - public String getLiunian_ganzhi() { - return liunian_ganzhi; - } - - public void setLiunian_xun(String liunian_xun) { - this.liunian_xun = liunian_xun; - } - public String getLiunian_xun() { - return liunian_xun; - } - - public void setLiunian_kongwang(String liunian_kongwang) { - this.liunian_kongwang = liunian_kongwang; - } - public String getLiunian_kongwang() { - return liunian_kongwang; - } - - public void setLiunian_shishen(String liunian_shishen) { - this.liunian_shishen = liunian_shishen; - } - public String getLiunian_shishen() { - return liunian_shishen; - } - - public void setLiunian_changsheng(String liunian_changsheng) { - this.liunian_changsheng = liunian_changsheng; - } - public String getLiunian_changsheng() { - return liunian_changsheng; - } - - public void setLiunian_year_tg(String liunian_year_tg) { - this.liunian_year_tg = liunian_year_tg; - } - public String getLiunian_year_tg() { - return liunian_year_tg; - } - - public void setLiunian_year_dz(String liunian_year_dz) { - this.liunian_year_dz = liunian_year_dz; - } - public String getLiunian_year_dz() { - return liunian_year_dz; - } - - public void setLiunian_year_cg(List liunian_year_cg) { - this.liunian_year_cg = liunian_year_cg; - } - public List getLiunian_year_cg() { - return liunian_year_cg; - } - - public void setLiunian_tg_god(String liunian_tg_god) { - this.liunian_tg_god = liunian_tg_god; - } - public String getLiunian_tg_god() { - return liunian_tg_god; - } - - public void setLiunian_dz_god(List liunian_dz_god) { - this.liunian_dz_god = liunian_dz_god; - } - public List getLiunian_dz_god() { - return liunian_dz_god; - } - - public void setLiunian_dz_star_cs(String liunian_dz_star_cs) { - this.liunian_dz_star_cs = liunian_dz_star_cs; - } - public String getLiunian_dz_star_cs() { - return liunian_dz_star_cs; - } - - public void setLiunian_dz_self_cs(String liunian_dz_self_cs) { - this.liunian_dz_self_cs = liunian_dz_self_cs; - } - public String getLiunian_dz_self_cs() { - return liunian_dz_self_cs; - } - - public void setLiunian_nayin(String liunian_nayin) { - this.liunian_nayin = liunian_nayin; - } - public String getLiunian_nayin() { - return liunian_nayin; - } - - public void setLiunian_wuxing(String liunian_wuxing) { - this.liunian_wuxing = liunian_wuxing; - } - public String getLiunian_wuxing() { - return liunian_wuxing; - } - - public void setLiunian_tg_liuyi(String liunian_tg_liuyi) { - this.liunian_tg_liuyi = liunian_tg_liuyi; - } - public String getLiunian_tg_liuyi() { - return liunian_tg_liuyi; - } - - public void setLiunian_dz_liuyi(String liunian_dz_liuyi) { - this.liunian_dz_liuyi = liunian_dz_liuyi; - } - public String getLiunian_dz_liuyi() { - return liunian_dz_liuyi; - } - - public void setLiunian_shensha(String liunian_shensha) { - this.liunian_shensha = liunian_shensha; - } - public String getLiunian_shensha() { - return liunian_shensha; - } - - public void setLiunian_indication(Liunian_indication liunian_indication) { - this.liunian_indication = liunian_indication; - } - public Liunian_indication getLiunian_indication() { - return liunian_indication; - } - - } - - - /** - * Auto-generated: 2025-08-04 17:55:40 - * - * @author bejson.com (i@bejson.com) - * @website http://www.bejson.com/java2pojo/ - */ - public static class Liunian_indication { - - private String shiye; - private String xueye; - private String yunshi; - private String yinyuan; - private String caiyun; - private String jiankang; - public void setShiye(String shiye) { - this.shiye = shiye; - } - public String getShiye() { - return shiye; - } - - public void setXueye(String xueye) { - this.xueye = xueye; - } - public String getXueye() { - return xueye; - } - - public void setYunshi(String yunshi) { - this.yunshi = yunshi; - } - public String getYunshi() { - return yunshi; - } - - public void setYinyuan(String yinyuan) { - this.yinyuan = yinyuan; - } - public String getYinyuan() { - return yinyuan; - } - - public void setCaiyun(String caiyun) { - this.caiyun = caiyun; - } - public String getCaiyun() { - return caiyun; - } - - public void setJiankang(String jiankang) { - this.jiankang = jiankang; - } - public String getJiankang() { - return jiankang; - } - - } - - - - /** - * Auto-generated: 2025-08-04 17:55:40 - * - * @author bejson.com (i@bejson.com) - * @website http://www.bejson.com/java2pojo/ - */ - public static class Base_info { - - private String sex; - private String name; - private String gongli; - private String nongli; - private String qiyun; - private String jiaoyun; - private String taiyuan; - private String taiyuan_nayin; - private String taixi; - private String taixi_nayin; - private String minggong; - private String minggong_nayin; - private String shengong; - private String shengong_nayin; - private String shengxiao; - private String xingzuo; - private String siling; - private String jiaoyun_mang; - private String xingxiu; - private Minggua minggua; - private String wuxing_wangdu; - private String tiangan_liuyi; - private String dizhi_liuyi; - private String zhengge; - private Xiyongshen xiyongshen; - private String wuxing_xiji; - public void setSex(String sex) { - this.sex = sex; - } - public String getSex() { - return sex; - } - - public void setName(String name) { - this.name = name; - } - public String getName() { - return name; - } - - public String getGongli() { - return gongli; - } - - public void setGongli(String gongli) { - this.gongli = gongli; - } - - public void setNongli(String nongli) { - this.nongli = nongli; - } - public String getNongli() { - return nongli; - } - - public void setQiyun(String qiyun) { - this.qiyun = qiyun; - } - public String getQiyun() { - return qiyun; - } - - public void setJiaoyun(String jiaoyun) { - this.jiaoyun = jiaoyun; - } - public String getJiaoyun() { - return jiaoyun; - } - - public void setTaiyuan(String taiyuan) { - this.taiyuan = taiyuan; - } - public String getTaiyuan() { - return taiyuan; - } - - public void setTaiyuan_nayin(String taiyuan_nayin) { - this.taiyuan_nayin = taiyuan_nayin; - } - public String getTaiyuan_nayin() { - return taiyuan_nayin; - } - - public void setTaixi(String taixi) { - this.taixi = taixi; - } - public String getTaixi() { - return taixi; - } - - public void setTaixi_nayin(String taixi_nayin) { - this.taixi_nayin = taixi_nayin; - } - public String getTaixi_nayin() { - return taixi_nayin; - } - - public void setMinggong(String minggong) { - this.minggong = minggong; - } - public String getMinggong() { - return minggong; - } - - public void setMinggong_nayin(String minggong_nayin) { - this.minggong_nayin = minggong_nayin; - } - public String getMinggong_nayin() { - return minggong_nayin; - } - - public void setShengong(String shengong) { - this.shengong = shengong; - } - public String getShengong() { - return shengong; - } - - public void setShengong_nayin(String shengong_nayin) { - this.shengong_nayin = shengong_nayin; - } - public String getShengong_nayin() { - return shengong_nayin; - } - - public void setShengxiao(String shengxiao) { - this.shengxiao = shengxiao; - } - public String getShengxiao() { - return shengxiao; - } - - public void setXingzuo(String xingzuo) { - this.xingzuo = xingzuo; - } - public String getXingzuo() { - return xingzuo; - } - - public void setSiling(String siling) { - this.siling = siling; - } - public String getSiling() { - return siling; - } - - public void setJiaoyun_mang(String jiaoyun_mang) { - this.jiaoyun_mang = jiaoyun_mang; - } - public String getJiaoyun_mang() { - return jiaoyun_mang; - } - - public void setXingxiu(String xingxiu) { - this.xingxiu = xingxiu; - } - public String getXingxiu() { - return xingxiu; - } - - public void setMinggua(Minggua minggua) { - this.minggua = minggua; - } - public Minggua getMinggua() { - return minggua; - } - - public void setWuxing_wangdu(String wuxing_wangdu) { - this.wuxing_wangdu = wuxing_wangdu; - } - public String getWuxing_wangdu() { - return wuxing_wangdu; - } - - public void setTiangan_liuyi(String tiangan_liuyi) { - this.tiangan_liuyi = tiangan_liuyi; - } - public String getTiangan_liuyi() { - return tiangan_liuyi; - } - - public void setDizhi_liuyi(String dizhi_liuyi) { - this.dizhi_liuyi = dizhi_liuyi; - } - public String getDizhi_liuyi() { - return dizhi_liuyi; - } - - public void setZhengge(String zhengge) { - this.zhengge = zhengge; - } - public String getZhengge() { - return zhengge; - } - - public void setXiyongshen(Xiyongshen xiyongshen) { - this.xiyongshen = xiyongshen; - } - public Xiyongshen getXiyongshen() { - return xiyongshen; - } - - public void setWuxing_xiji(String wuxing_xiji) { - this.wuxing_xiji = wuxing_xiji; - } - public String getWuxing_xiji() { - return wuxing_xiji; - } - - } - - - - /** - * Auto-generated: 2025-08-04 17:55:40 - * - * @author bejson.com (i@bejson.com) - * @website http://www.bejson.com/java2pojo/ - */ - public static class Xiyongshen { - - private String qiangruo; - private String xiyongshen; - private String jishen; - private String xiyongshen_desc; - private int jin_number; - private int mu_number; - private int shui_number; - private int huo_number; - private int tu_number; - private int zidang; - private int yidang; - private String zidang_percent; - private String yidang_percent; - private String tonglei; - private String yilei; - private String rizhu_tiangan; - private int jin_score; - private int mu_score; - private int shui_score; - private int huo_score; - private int tu_score; - private String jin_score_percent; - private String mu_score_percent; - private String shui_score_percent; - private String huo_score_percent; - private String tu_score_percent; - private String yinyang; - public void setQiangruo(String qiangruo) { - this.qiangruo = qiangruo; - } - public String getQiangruo() { - return qiangruo; - } - - public void setXiyongshen(String xiyongshen) { - this.xiyongshen = xiyongshen; - } - public String getXiyongshen() { - return xiyongshen; - } - - public void setJishen(String jishen) { - this.jishen = jishen; - } - public String getJishen() { - return jishen; - } - - public void setXiyongshen_desc(String xiyongshen_desc) { - this.xiyongshen_desc = xiyongshen_desc; - } - public String getXiyongshen_desc() { - return xiyongshen_desc; - } - - public void setJin_number(int jin_number) { - this.jin_number = jin_number; - } - public int getJin_number() { - return jin_number; - } - - public void setMu_number(int mu_number) { - this.mu_number = mu_number; - } - public int getMu_number() { - return mu_number; - } - - public void setShui_number(int shui_number) { - this.shui_number = shui_number; - } - public int getShui_number() { - return shui_number; - } - - public void setHuo_number(int huo_number) { - this.huo_number = huo_number; - } - public int getHuo_number() { - return huo_number; - } - - public void setTu_number(int tu_number) { - this.tu_number = tu_number; - } - public int getTu_number() { - return tu_number; - } - - public void setZidang(int zidang) { - this.zidang = zidang; - } - public int getZidang() { - return zidang; - } - - public void setYidang(int yidang) { - this.yidang = yidang; - } - public int getYidang() { - return yidang; - } - - public void setZidang_percent(String zidang_percent) { - this.zidang_percent = zidang_percent; - } - public String getZidang_percent() { - return zidang_percent; - } - - public void setYidang_percent(String yidang_percent) { - this.yidang_percent = yidang_percent; - } - public String getYidang_percent() { - return yidang_percent; - } - - public void setTonglei(String tonglei) { - this.tonglei = tonglei; - } - public String getTonglei() { - return tonglei; - } - - public void setYilei(String yilei) { - this.yilei = yilei; - } - public String getYilei() { - return yilei; - } - - public void setRizhu_tiangan(String rizhu_tiangan) { - this.rizhu_tiangan = rizhu_tiangan; - } - public String getRizhu_tiangan() { - return rizhu_tiangan; - } - - public void setJin_score(int jin_score) { - this.jin_score = jin_score; - } - public int getJin_score() { - return jin_score; - } - - public void setMu_score(int mu_score) { - this.mu_score = mu_score; - } - public int getMu_score() { - return mu_score; - } - - public void setShui_score(int shui_score) { - this.shui_score = shui_score; - } - public int getShui_score() { - return shui_score; - } - - public void setHuo_score(int huo_score) { - this.huo_score = huo_score; - } - public int getHuo_score() { - return huo_score; - } - - public void setTu_score(int tu_score) { - this.tu_score = tu_score; - } - public int getTu_score() { - return tu_score; - } - - public void setJin_score_percent(String jin_score_percent) { - this.jin_score_percent = jin_score_percent; - } - public String getJin_score_percent() { - return jin_score_percent; - } - - - public String getMu_score_percent() { - return mu_score_percent; - } - - public void setMu_score_percent(String mu_score_percent) { - this.mu_score_percent = mu_score_percent; - } - - public String getShui_score_percent() { - return shui_score_percent; - } - - public void setShui_score_percent(String shui_score_percent) { - this.shui_score_percent = shui_score_percent; - } - - public void setHuo_score_percent(String huo_score_percent) { - this.huo_score_percent = huo_score_percent; - } - public String getHuo_score_percent() { - return huo_score_percent; - } - - public void setTu_score_percent(String tu_score_percent) { - this.tu_score_percent = tu_score_percent; - } - public String getTu_score_percent() { - return tu_score_percent; - } - - public void setYinyang(String yinyang) { - this.yinyang = yinyang; - } - public String getYinyang() { - return yinyang; - } - - } - - - /** - * Auto-generated: 2025-08-04 17:55:40 - * - * @author bejson.com (i@bejson.com) - * @website http://www.bejson.com/java2pojo/ - */ - public static class Minggua { - - private String minggua_name; - private String minggua_fangwei; - public void setMinggua_name(String minggua_name) { - this.minggua_name = minggua_name; - } - public String getMinggua_name() { - return minggua_name; - } - - public void setMinggua_fangwei(String minggua_fangwei) { - this.minggua_fangwei = minggua_fangwei; - } - public String getMinggua_fangwei() { - return minggua_fangwei; - } - - } - - - - -} \ No newline at end of file diff --git a/app/src/main/java/com/ckkj/water/plate/entity/BaziResultBean.java b/app/src/main/java/com/ckkj/water/plate/entity/BaziResultBean.java deleted file mode 100644 index db8b625..0000000 --- a/app/src/main/java/com/ckkj/water/plate/entity/BaziResultBean.java +++ /dev/null @@ -1,661 +0,0 @@ -package com.ckkj.water.plate.entity; - -import com.google.gson.annotations.SerializedName; - -import java.io.Serializable; -import java.util.List; - -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author fengxiaoyang - * @date 2025/8/5 - * @description TODO: 描述该类的作用 - */ - -@NoArgsConstructor -@Data -public class BaziResultBean implements Serializable { - - @SerializedName("base_info") - private BaseInfoDTO baseInfo; - @SerializedName("detail_info") - private DetailInfoDTO detailInfo; - - @NoArgsConstructor - @Data - public static class BaseInfoDTO implements Serializable { - @SerializedName("sex") - private String sex; - @SerializedName("name") - private String name; - @SerializedName("gongli") - private String gongli; - @SerializedName("nongli") - private String nongli; - @SerializedName("qiyun") - private String qiyun; - @SerializedName("jiaoyun") - private String jiaoyun; - @SerializedName("taiyuan") - private String taiyuan; - @SerializedName("taiyuan_nayin") - private String taiyuanNayin; - @SerializedName("taixi") - private String taixi; - @SerializedName("taixi_nayin") - private String taixiNayin; - @SerializedName("minggong") - private String minggong; - @SerializedName("minggong_nayin") - private String minggongNayin; - @SerializedName("shengong") - private String shengong; - @SerializedName("shengong_nayin") - private String shengongNayin; - @SerializedName("shengxiao") - private String shengxiao; - @SerializedName("xingzuo") - private String xingzuo; - @SerializedName("siling") - private String siling; - @SerializedName("jiaoyun_mang") - private String jiaoyunMang; - @SerializedName("xingxiu") - private String xingxiu; - @SerializedName("minggua") - private MingguaDTO minggua; - @SerializedName("wuxing_wangdu") - private String wuxingWangdu; - @SerializedName("tiangan_liuyi") - private String tianganLiuyi; - @SerializedName("dizhi_liuyi") - private String dizhiLiuyi; - @SerializedName("zhengge") - private String zhengge; - @SerializedName("xiyongshen") - private XiyongshenDTO xiyongshen; - @SerializedName("wuxing_xiji") - private String wuxingXiji; - - @NoArgsConstructor - @Data - public static class MingguaDTO implements Serializable { - @SerializedName("minggua_name") - private String mingguaName; - @SerializedName("minggua_fangwei") - private String mingguaFangwei; - } - - @NoArgsConstructor - @Data - public static class XiyongshenDTO implements Serializable { - @SerializedName("qiangruo") - private String qiangruo; - @SerializedName("xiyongshen") - private String xiyongshen; - @SerializedName("jishen") - private String jishen; - @SerializedName("xiyongshen_desc") - private String xiyongshenDesc; - @SerializedName("jin_number") - private Integer jinNumber; - @SerializedName("mu_number") - private Integer muNumber; - @SerializedName("shui_number") - private Integer shuiNumber; - @SerializedName("huo_number") - private Integer huoNumber; - @SerializedName("tu_number") - private Integer tuNumber; - @SerializedName("zidang") - private Integer zidang; - @SerializedName("yidang") - private Integer yidang; - @SerializedName("zidang_percent") - private String zidangPercent; - @SerializedName("yidang_percent") - private String yidangPercent; - @SerializedName("tonglei") - private String tonglei; - @SerializedName("yilei") - private String yilei; - @SerializedName("rizhu_tiangan") - private String rizhuTiangan; - @SerializedName("jin_score") - private Integer jinScore; - @SerializedName("mu_score") - private Integer muScore; - @SerializedName("shui_score") - private Integer shuiScore; - @SerializedName("huo_score") - private Integer huoScore; - @SerializedName("tu_score") - private Integer tuScore; - @SerializedName("jin_score_percent") - private String jinScorePercent; - @SerializedName("mu_score_percent") - private String muScorePercent; - @SerializedName("shui_score_percent") - private String shuiScorePercent; - @SerializedName("huo_score_percent") - private String huoScorePercent; - @SerializedName("tu_score_percent") - private String tuScorePercent; - @SerializedName("yinyang") - private String yinyang; - } - } - - @NoArgsConstructor - @Data - public static class DetailInfoDTO implements Serializable { - @SerializedName("dayun_info") - private List dayunInfo; - @SerializedName("dayun_born_info") - private DayunInfoDTO dayunBornInfo; - @SerializedName("sizhu_info") - private SizhuInfoDTO sizhuInfo; - @SerializedName("taishen_info") - private TaishenInfoDTO taishenInfo; - - - @NoArgsConstructor - @Data - public static class SizhuInfoDTO implements Serializable { - @SerializedName("year") - private YearDTO year; - @SerializedName("month") - private MonthDTO month; - @SerializedName("day") - private DayDTO day; - @SerializedName("hour") - private HourDTO hour; - - @NoArgsConstructor - @Data - public static class YearDTO implements Serializable { - @SerializedName("tg_god") - private String tgGod; - @SerializedName("tg") - private String tg; - @SerializedName("dz") - private String dz; - @SerializedName("cg") - private List cg; - @SerializedName("dz_god") - private List dzGod; - @SerializedName("dz_star_cs") - private String dzStarCs; - @SerializedName("dz_self_cs") - private String dzSelfCs; - @SerializedName("kw") - private String kw; - @SerializedName("ny") - private String ny; - @SerializedName("wx") - private String wx; - @SerializedName("xun") - private String xun; - @SerializedName("shensha") - private String shensha; - } - - @NoArgsConstructor - @Data - public static class MonthDTO implements Serializable { - @SerializedName("tg_god") - private String tgGod; - @SerializedName("tg") - private String tg; - @SerializedName("dz") - private String dz; - @SerializedName("cg") - private List cg; - @SerializedName("dz_god") - private List dzGod; - @SerializedName("dz_star_cs") - private String dzStarCs; - @SerializedName("dz_self_cs") - private String dzSelfCs; - @SerializedName("kw") - private String kw; - @SerializedName("ny") - private String ny; - @SerializedName("wx") - private String wx; - @SerializedName("xun") - private String xun; - @SerializedName("shensha") - private String shensha; - } - - @NoArgsConstructor - @Data - public static class DayDTO implements Serializable { - @SerializedName("tg_god") - private String tgGod; - @SerializedName("tg") - private String tg; - @SerializedName("dz") - private String dz; - @SerializedName("cg") - private List cg; - @SerializedName("dz_god") - private List dzGod; - @SerializedName("dz_star_cs") - private String dzStarCs; - @SerializedName("dz_self_cs") - private String dzSelfCs; - @SerializedName("kw") - private String kw; - @SerializedName("ny") - private String ny; - @SerializedName("wx") - private String wx; - @SerializedName("xun") - private String xun; - @SerializedName("shensha") - private String shensha; - } - - @NoArgsConstructor - @Data - public static class HourDTO implements Serializable { - @SerializedName("tg_god") - private String tgGod; - @SerializedName("tg") - private String tg; - @SerializedName("dz") - private String dz; - @SerializedName("cg") - private List cg; - @SerializedName("dz_god") - private List dzGod; - @SerializedName("dz_star_cs") - private String dzStarCs; - @SerializedName("dz_self_cs") - private String dzSelfCs; - @SerializedName("kw") - private String kw; - @SerializedName("ny") - private String ny; - @SerializedName("wx") - private String wx; - @SerializedName("xun") - private String xun; - @SerializedName("shensha") - private String shensha; - } - } - - @NoArgsConstructor - @Data - public static class TaishenInfoDTO implements Serializable { - @SerializedName("taiyuan") - private TaiyuanDTO taiyuan; - @SerializedName("taixi") - private TaixiDTO taixi; - @SerializedName("minggong") - private MinggongDTO minggong; - @SerializedName("shengong") - private ShengongDTO shengong; - - @NoArgsConstructor - @Data - public static class TaiyuanDTO implements Serializable { - @SerializedName("ganzhi") - private String ganzhi; - @SerializedName("xun") - private String xun; - @SerializedName("kongwang") - private String kongwang; - @SerializedName("changsheng") - private String changsheng; - @SerializedName("gan") - private String gan; - @SerializedName("zhi") - private String zhi; - @SerializedName("dz_cg") - private List dzCg; - @SerializedName("tg_god") - private String tgGod; - @SerializedName("dz_god") - private List dzGod; - @SerializedName("dz_star_cs") - private String dzStarCs; - @SerializedName("dz_self_cs") - private String dzSelfCs; - @SerializedName("nayin") - private String nayin; - @SerializedName("wuxing") - private String wuxing; - @SerializedName("tg_liuyi") - private String tgLiuyi; - @SerializedName("dz_liuyi") - private String dzLiuyi; - @SerializedName("shensha") - private String shensha; - } - - @NoArgsConstructor - @Data - public static class TaixiDTO implements Serializable { - @SerializedName("ganzhi") - private String ganzhi; - @SerializedName("xun") - private String xun; - @SerializedName("kongwang") - private String kongwang; - @SerializedName("changsheng") - private String changsheng; - @SerializedName("gan") - private String gan; - @SerializedName("zhi") - private String zhi; - @SerializedName("dz_cg") - private List dzCg; - @SerializedName("tg_god") - private String tgGod; - @SerializedName("dz_god") - private List dzGod; - @SerializedName("dz_star_cs") - private String dzStarCs; - @SerializedName("dz_self_cs") - private String dzSelfCs; - @SerializedName("nayin") - private String nayin; - @SerializedName("wuxing") - private String wuxing; - @SerializedName("tg_liuyi") - private String tgLiuyi; - @SerializedName("dz_liuyi") - private String dzLiuyi; - @SerializedName("shensha") - private String shensha; - } - - @NoArgsConstructor - @Data - public static class MinggongDTO implements Serializable { - @SerializedName("ganzhi") - private String ganzhi; - @SerializedName("xun") - private String xun; - @SerializedName("kongwang") - private String kongwang; - @SerializedName("changsheng") - private String changsheng; - @SerializedName("gan") - private String gan; - @SerializedName("zhi") - private String zhi; - @SerializedName("dz_cg") - private List dzCg; - @SerializedName("tg_god") - private String tgGod; - @SerializedName("dz_god") - private List dzGod; - @SerializedName("dz_star_cs") - private String dzStarCs; - @SerializedName("dz_self_cs") - private String dzSelfCs; - @SerializedName("nayin") - private String nayin; - @SerializedName("wuxing") - private String wuxing; - @SerializedName("tg_liuyi") - private String tgLiuyi; - @SerializedName("dz_liuyi") - private String dzLiuyi; - @SerializedName("shensha") - private String shensha; - } - - @NoArgsConstructor - @Data - public static class ShengongDTO implements Serializable { - @SerializedName("ganzhi") - private String ganzhi; - @SerializedName("xun") - private String xun; - @SerializedName("kongwang") - private String kongwang; - @SerializedName("changsheng") - private String changsheng; - @SerializedName("gan") - private String gan; - @SerializedName("zhi") - private String zhi; - @SerializedName("dz_cg") - private List dzCg; - @SerializedName("tg_god") - private String tgGod; - @SerializedName("dz_god") - private List dzGod; - @SerializedName("dz_star_cs") - private String dzStarCs; - @SerializedName("dz_self_cs") - private String dzSelfCs; - @SerializedName("nayin") - private String nayin; - @SerializedName("wuxing") - private String wuxing; - @SerializedName("tg_liuyi") - private String tgLiuyi; - @SerializedName("dz_liuyi") - private String dzLiuyi; - @SerializedName("shensha") - private String shensha; - } - } - - @NoArgsConstructor - @Data - public static class DayunInfoDTO implements Serializable { - @SerializedName("dayun_is_tongxian") - private boolean isTongXian = false; - @SerializedName("dayun_tongxian") - private String dayunTongxian; - @SerializedName("dayun_index") - private Integer dayunIndex; - @SerializedName("dayun_start_year") - private Integer dayunStartYear; - @SerializedName("dayun_start_age") - private Integer dayunStartAge; - @SerializedName("dayun_end_year") - private Integer dayunEndYear; - @SerializedName("dayun_end_age") - private Integer dayunEndAge; - @SerializedName("dayun_start_ganzhi") - private String dayunStartGanzhi; - @SerializedName("dayun_xun") - private String dayunXun; - @SerializedName("dayun_kongwang") - private String dayunKongwang; - @SerializedName("dayun_shishen") - private String dayunShishen; - @SerializedName("dayun_changsheng") - private String dayunChangsheng; - @SerializedName("dayun_year_tg") - private String dayunYearTg; - @SerializedName("dayun_year_dz") - private String dayunYearDz; - @SerializedName("dayun_year_cg") - private List dayunYearCg; - @SerializedName("dayun_year_tg_god") - private String dayunYearTgGod; - @SerializedName("dayun_year_dz_god") - private List dayunYearDzGod; - @SerializedName("dayun_dz_star_cs") - private String dayunDzStarCs; - @SerializedName("dayun_dz_self_cs") - private String dayunDzSelfCs; - @SerializedName("dayun_nayin") - private String dayunNayin; - @SerializedName("dayun_wuxing") - private String dayunWuxing; - @SerializedName("dayun_tg_liuyi") - private String dayunTgLiuyi; - @SerializedName("dayun_dz_liuyi") - private String dayunDzLiuyi; - @SerializedName("liunian_info") - private List liunianInfo; - @SerializedName("xiaoyun_info") - private List xiaoyunInfo; - @SerializedName("dayun_shensha") - private String dayunShensha; - - @NoArgsConstructor - @Data - public static class LiunianInfoDTO implements Serializable { - @SerializedName("liunian_index") - private Integer liunianIndex; - @SerializedName("liunian_year") - private Integer liunianYear; - @SerializedName("liunian_age") - private Integer liunianAge; - @SerializedName("liunian_ganzhi") - private String liunianGanzhi; - @SerializedName("liunian_xun") - private String liunianXun; - @SerializedName("liunian_kongwang") - private String liunianKongwang; - @SerializedName("liunian_shishen") - private String liunianShishen; - @SerializedName("liunian_changsheng") - private String liunianChangsheng; - @SerializedName("liunian_jieqi") - private List liunianJieqi; - @SerializedName("liunian_year_tg") - private String liunianYearTg; - @SerializedName("liunian_year_dz") - private String liunianYearDz; - @SerializedName("liunian_year_cg") - private List liunianYearCg; - @SerializedName("liunian_tg_god") - private String liunianTgGod; - @SerializedName("liunian_dz_god") - private List liunianDzGod; - @SerializedName("liunian_dz_star_cs") - private String liunianDzStarCs; - @SerializedName("liunian_dz_self_cs") - private String liunianDzSelfCs; - @SerializedName("liunian_nayin") - private String liunianNayin; - @SerializedName("liunian_wuxing") - private String liunianWuxing; - @SerializedName("liunian_tg_liuyi") - private String liunianTgLiuyi; - @SerializedName("liunian_dz_liuyi") - private String liunianDzLiuyi; - @SerializedName("liunian_shensha") - private String liunianShensha; - @SerializedName("liuyue_info") - private List liuyueInfo; - - @NoArgsConstructor - @Data - public static class LiunianJieqiDTO implements Serializable { - @SerializedName("jieqi_name") - private String jieqiName; - @SerializedName("jieqi_solar_ymdhms") - private String jieqiSolarYmdhms; - @SerializedName("jieqi_lunar_ymdhms_isleap") - private String jieqiLunarYmdhmsIsleap; - @SerializedName("jieqi_lunar_ymdhms") - private String jieqiLunarYmdhms; - } - - @NoArgsConstructor - @Data - public static class LiuyueInfoDTO implements Serializable { - @SerializedName("liuyue_index") - private Integer liuyueIndex; - @SerializedName("liuyue_month") - private String liuyueMonth; - @SerializedName("liuyue_ganzhi") - private String liuyueGanzhi; - @SerializedName("liuyue_xun") - private String liuyueXun; - @SerializedName("liuyue_kongwang") - private String liuyueKongwang; - @SerializedName("liuyue_shishen") - private String liuyueShishen; - @SerializedName("liuyue_changsheng") - private String liuyueChangsheng; - @SerializedName("liuyue_month_tg") - private String liuyueMonthTg; - @SerializedName("liuyue_month_dz") - private String liuyueMonthDz; - @SerializedName("liuyue_month_cg") - private List liuyueMonthCg; - @SerializedName("liuyue_month_tg_god") - private String liuyueMonthTgGod; - @SerializedName("liuyue_month_dz_god") - private List liuyueMonthDzGod; - @SerializedName("liuyue_dz_star_cs") - private String liuyueDzStarCs; - @SerializedName("liuyue_dz_self_cs") - private String liuyueDzSelfCs; - @SerializedName("liuyue_nayin") - private String liuyueNayin; - @SerializedName("liuyue_wuxing") - private String liuyueWuxing; - @SerializedName("liuyue_tg_liuyi") - private String liuyueTgLiuyi; - @SerializedName("liuyue_dz_liuyi") - private String liuyueDzLiuyi; - @SerializedName("liuyue_shensha") - private String liuyueShensha; - } - } - - @NoArgsConstructor - @Data - public static class XiaoyunInfoDTO implements Serializable { - @SerializedName("xiaoyun_index") - private Integer xiaoyunIndex; - @SerializedName("xiaoyun_year") - private Integer xiaoyunYear; - @SerializedName("xiaoyun_age") - private Integer xiaoyunAge; - @SerializedName("xiaoyun_ganzhi") - private String xiaoyunGanzhi; - @SerializedName("xiaoyun_xun") - private String xiaoyunXun; - @SerializedName("xiaoyun_kongwang") - private String xiaoyunKongwang; - @SerializedName("xiaoyun_shishen") - private String xiaoyunShishen; - @SerializedName("xiaoyun_changsheng") - private String xiaoyunChangsheng; - @SerializedName("xiaoyun_year_tg") - private String xiaoyunYearTg; - @SerializedName("xiaoyun_year_dz") - private String xiaoyunYearDz; - @SerializedName("xiaoyun_year_cg") - private List xiaoyunYearCg; - @SerializedName("xiaoyun_tg_god") - private String xiaoyunTgGod; - @SerializedName("xiaoyun_dz_god") - private List xiaoyunDzGod; - @SerializedName("xiaoyun_dz_star_cs") - private String xiaoyunDzStarCs; - @SerializedName("xiaoyun_dz_self_cs") - private String xiaoyunDzSelfCs; - @SerializedName("xiaoyun_nayin") - private String xiaoyunNayin; - @SerializedName("xiaoyun_wuxing") - private String xiaoyunWuxing; - @SerializedName("xiaoyun_tg_liuyi") - private String xiaoyunTgLiuyi; - @SerializedName("xiaoyun_dz_liuyi") - private String xiaoyunDzLiuyi; - @SerializedName("xiaoyun_shensha") - private String xiaoyunShensha; - } - } - } -} diff --git a/app/src/main/java/com/ckkj/water/plate/entity/BaziSaveSuccessEntity.java b/app/src/main/java/com/ckkj/water/plate/entity/BaziSaveSuccessEntity.java deleted file mode 100644 index c9ca162..0000000 --- a/app/src/main/java/com/ckkj/water/plate/entity/BaziSaveSuccessEntity.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.ckkj.water.plate.entity; - -import com.google.gson.annotations.SerializedName; - -import java.io.Serializable; - -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author fengxiaoyang - * @date 2025/8/11 - * @description TODO: 描述该类的作用 - */ - -@NoArgsConstructor -@Data -public class BaziSaveSuccessEntity implements Serializable { - - @SerializedName("recordId") - private String recordId; - @SerializedName("savedData") - private SavedDataDTO savedData; - @SerializedName("message") - private String message; - @SerializedName("saveTime") - private String saveTime; - - @NoArgsConstructor - @Data - public static class SavedDataDTO { - @SerializedName("recordId") - private String recordId; - @SerializedName("birthPlace") - private String birthPlace; - @SerializedName("gender") - private String gender; - @SerializedName("yinLiBirthTime") - private String yinLiBirthTime; - @SerializedName("siZhu") - private SiZhuDTO siZhu; - @SerializedName("name") - private String name; - @SerializedName("yangLiBirthTime") - private String yangLiBirthTime; - @SerializedName("openSolarTime") - private String openSolarTime; - - @NoArgsConstructor - @Data - public static class SiZhuDTO { - @SerializedName("yueZhu") - private String yueZhu; - @SerializedName("shiZhu") - private String shiZhu; - @SerializedName("riZhu") - private String riZhu; - @SerializedName("nianZhu") - private String nianZhu; - } - } -} diff --git a/app/src/main/java/com/ckkj/water/plate/entity/PaipanCache.java b/app/src/main/java/com/ckkj/water/plate/entity/PaipanCache.java deleted file mode 100644 index b3c68cc..0000000 --- a/app/src/main/java/com/ckkj/water/plate/entity/PaipanCache.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.ckkj.water.plate.entity; - -public class PaipanCache { - private static BaziResultBean cachedResult; - - public static void set(BaziResultBean result) { - cachedResult = result; - } - - public static BaziResultBean get() { - return cachedResult; - } - - public static void clear() { - cachedResult = null; - } -} \ No newline at end of file diff --git a/app/src/main/java/com/ckkj/water/plate/entity/PaipanHistoryEntity.java b/app/src/main/java/com/ckkj/water/plate/entity/PaipanHistoryEntity.java deleted file mode 100644 index 9846ef4..0000000 --- a/app/src/main/java/com/ckkj/water/plate/entity/PaipanHistoryEntity.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.ckkj.water.plate.entity; - -import com.google.gson.annotations.SerializedName; - -import java.io.Serializable; -import java.util.List; - -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * @author fengxiaoyang - * @date 2025/8/9 - * @description TODO: 描述该类的作用 - */ - -@NoArgsConstructor -@Data -public class PaipanHistoryEntity implements Serializable { - - @SerializedName("total") - private Integer total; - @SerializedName("pages") - private Integer pages; - @SerializedName("records") - private List records; - @SerializedName("hasNextPage") - private Boolean hasNextPage; - @SerializedName("pageSize") - private Integer pageSize; - @SerializedName("hasPreviousPage") - private Boolean hasPreviousPage; - @SerializedName("userId") - private Long userId; - @SerializedName("pageNum") - private Integer pageNum; - - @NoArgsConstructor - @Data - public static class RecordsDTO implements Serializable{ - @SerializedName("id") - private String id; - @SerializedName("userId") - private Long userId; - @SerializedName("name") - private String name; - @SerializedName("gender") - private String gender; - @SerializedName("birthType") - private String birthType; - @SerializedName("yangLiBirthTime") - private String yangLiBirthTime; - @SerializedName("yinLiBirthTime") - private String yinLiBirthTime; - @SerializedName("birthPlace") - private String birthPlace; - @SerializedName("openSolarTime") - private String openSolarTime; - @SerializedName("nianZhu") - private String nianZhu; - @SerializedName("yueZhu") - private String yueZhu; - @SerializedName("riZhu") - private String riZhu; - @SerializedName("shiZhu") - private String shiZhu; - @SerializedName("apiStatus") - private Integer apiStatus; - @SerializedName("apiMessage") - private String apiMessage; - @SerializedName("requestIp") - private String requestIp; - @SerializedName("remark") - private Object remark; - } -} diff --git a/app/src/main/java/com/ckkj/water/plate/mvp/PlateContract.java b/app/src/main/java/com/ckkj/water/plate/mvp/PlateContract.java deleted file mode 100644 index 9607125..0000000 --- a/app/src/main/java/com/ckkj/water/plate/mvp/PlateContract.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.ckkj.water.plate.mvp; - -import com.ckkj.water.base.IView; -import com.ckkj.water.network.BaseBean; -import com.ckkj.water.plate.entity.BaziResultBean; -import com.ckkj.water.plate.entity.BaziSaveSuccessEntity; -import com.ckkj.water.plate.entity.PaipanHistoryEntity; - -import org.json.JSONObject; - -import java.util.Map; - -/** - * @author fengxiaoyang - * @date 2025/7/30 - * @description TODO: 描述该类的作用 - */ - -public class PlateContract { - public interface CallBack { - void success(T msg); - void fail(String msg); - } - public interface DataModel{ - //保存八字排盘结果 - void saveUserBirthInfo(JSONObject json, CallBack callBack); - //开始排盘 - void startPaiPanByYfjApi(Map map , CallBack callBack); - //获取排盘结果 - void getPaipanHistoryList(Map map, CallBack callBack); - //删除记录 - void deleteRecordByID(Map map, CallBack callBack); - //根据八字排盘结果,ai 解析 - void aiParseBaziResult(JSONObject json, CallBack callBack); - //发送消息给 AI - void sendMsgToAi(JSONObject json, AiStreamCallback callBack); - } - - public interface AiStreamCallback { - void onMessage(String messageChunk); // 每次返回一段内容 - void onError(String error); - void onComplete(String complateContent); // 结束 - void onSessionReceived(String sessionId); // 新增:接收sessionId - void loginLost(); - } - - public interface PlateView extends IView { - //排盘成功 - void getPaipanResult(BaziResultBean bean); - //保存八字成功 - void saveBaziResultSuccess(BaziSaveSuccessEntity bean); - //历史记录 - void getHistorySuccess(PaipanHistoryEntity entity); - //删除成功 - void deletePaipanHistorySuccess(int pos); - // 新增流式回调方法 - void onStreamMessageReceived(String messageChunk); - //完成 - void onStreamComplete(String complateMsg); - //提交举报完成 - void commitReportSuccess(BaseBean bean); - } -} diff --git a/app/src/main/java/com/ckkj/water/plate/mvp/PlateImpl.java b/app/src/main/java/com/ckkj/water/plate/mvp/PlateImpl.java deleted file mode 100644 index 7baeddc..0000000 --- a/app/src/main/java/com/ckkj/water/plate/mvp/PlateImpl.java +++ /dev/null @@ -1,424 +0,0 @@ -package com.ckkj.water.plate.mvp; - -import static android.content.ContentValues.TAG; - -import android.os.Handler; -import android.os.Looper; -import android.util.Log; - -import com.ckkj.water.AppConfig; -import com.ckkj.water.network.BaseBean; -import com.ckkj.water.network.BaseYfjApiBean; -import com.ckkj.water.network.NetWorkManager; -import com.ckkj.water.plate.entity.BaziResultBean; -import com.ckkj.water.plate.entity.BaziSaveSuccessEntity; -import com.ckkj.water.plate.entity.PaipanHistoryEntity; - -import org.json.JSONObject; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.Map; - -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; -import okhttp3.Call; -import okhttp3.Callback; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.Response; -import org.json.JSONException; - -/** - * @author fengxiaoyang - * @date 2025/7/30 - * @description TODO: 描述该类的作用 - */ - -public class PlateImpl implements PlateContract.DataModel{ - - /** - * 保存八字排盘记录 - * @param json - * @param callBack - */ - @Override - public void saveUserBirthInfo(JSONObject json, PlateContract.CallBack callBack) { - try { - NetWorkManager.getRequest().startPaipan(NetWorkManager.getToken(), NetWorkManager.toRequestBody(json)) - .subscribeOn(Schedulers.io()) - .unsubscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer>() { - @Override - public void onSubscribe(@NonNull Disposable d) { - } - - @Override - public void onNext(@NonNull BaseBean 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(); - } - } - - /** - * 排盘数据,调用三方 api - * @param map - * @param callBack - */ - @Override - public void startPaiPanByYfjApi(Map map, PlateContract.CallBack callBack) { - try { - // 使用getNoBaseUrlRequest()调用第三方API,因为API URL是完整的 - NetWorkManager.getNoBaseUrlRequest().startPaipanByYfj(NetWorkManager.getToken(), map) - .subscribeOn(Schedulers.io()) - .unsubscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer>() { - @Override - public void onSubscribe(@NonNull Disposable d) { - } - - @Override - public void onNext(@NonNull BaseYfjApiBean bean) { - if (bean.getErrcode() == 0) { - // 成功返回数据 - callBack.success(bean.getData()); - } else { - // API返回错误 - callBack.fail(bean.getErrmsg()); - } - } - - @Override - public void onError(@NonNull Throwable e) { - callBack.fail(e.getMessage()); - } - - @Override - public void onComplete() { - } - }); - } catch (Exception e) { - e.printStackTrace(); - callBack.fail(e.getMessage()); - } - } - - /** - * 排盘历史记录 - * @param map - * @param callBack - */ - @Override - public void getPaipanHistoryList(Map map, PlateContract.CallBack callBack) { - try { - NetWorkManager.getRequest().getPaipanHistoryList(NetWorkManager.getToken()) - .subscribeOn(Schedulers.io()) - .unsubscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer>() { - @Override - public void onSubscribe(@NonNull Disposable d) { - - } - - @Override - public void onNext(@NonNull BaseBean 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(); - } - } - - /** - * 删除记录 - * @param map - * @param callBack - */ - @Override - public void deleteRecordByID(Map map, PlateContract.CallBack callBack) { - try { - NetWorkManager.getRequest().deletePaipanRecordById(NetWorkManager.getToken(),map) - .subscribeOn(Schedulers.io()) - .unsubscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - - } - - @Override - public void onNext(@NonNull BaseBean bean) { - if(bean.getCode() == 200){ - callBack.success(bean); - }else{ - callBack.fail(bean.getMessage()); - } - } - - @Override - public void onError(@NonNull Throwable e) { - callBack.fail(e.getMessage()); - } - - @Override - public void onComplete() { - } - }); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - - /** - * 八字排盘结果,AI 解析 - * @param json - * @param callBack - */ - @Override - public void aiParseBaziResult(JSONObject json, PlateContract.CallBack callBack) { - try { - NetWorkManager.getRequest().aiParesBaziResult(NetWorkManager.getToken(), NetWorkManager.toRequestBody(json)) - .subscribeOn(Schedulers.io()) - .unsubscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { - } - - @Override - public void onNext(@NonNull BaseBean 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(); - } - } - - /** - * AI解盘 - * @param json - * @param callBack - */ - private final OkHttpClient client = new OkHttpClient(); - private Call currentCall = null; // 新增:保存当前请求的Call对象 - private volatile boolean isRequestStopped = false; // 新增:标记是否已停止请求 - @Override - public void sendMsgToAi(JSONObject json, PlateContract.AiStreamCallback callBack) { - try { - String finalUrl = AppConfig.BASE_URL + "mobile/paiPan/ai"; - Log.d(TAG, "Request URL: " + finalUrl); - - Request request = new Request.Builder() - .addHeader("Authorization", "Bearer " + AppConfig.USER_TOKEN) - .post(NetWorkManager.toRequestBody(json)) - .url(finalUrl) - .build(); - - currentCall = client.newCall(request); - isRequestStopped = false; - - currentCall.enqueue(new Callback() { - @Override - public void onFailure(Call call, IOException e) { - if (isRequestStopped) return; // 如果已停止,不处理失败回调 - new Handler(Looper.getMainLooper()).post(() -> { - if (callBack != null) callBack.onError(e.getMessage()); - }); - } - - @Override - public void onResponse(Call call, Response response) { - if (isRequestStopped) return; - - if (!response.isSuccessful()) { - new Handler(Looper.getMainLooper()).post(() -> { - if (callBack != null) callBack.onError("请求失败: " + response.code()); - }); - return; - } - - InputStream inputStream = response.body().byteStream(); - BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); - - try { - // 处理SSE流式数据 - handleSSEStream(reader, callBack); - } catch (Exception e) { - new Handler(Looper.getMainLooper()).post(() -> { - if (callBack != null) callBack.onError("解析异常: " + e.getMessage()); - }); - } finally { - try { - reader.close(); - response.close(); - } catch (IOException ignored) {} - } - } - }); - - } catch (Exception e) { - new Handler(Looper.getMainLooper()).post(() -> { - if (callBack != null) callBack.onError("请求异常: " + e.getMessage()); - }); - } - } - - /** - * 处理SSE流式数据 - */ - private void handleSSEStream(BufferedReader reader, PlateContract.AiStreamCallback callBack) throws IOException { - String line; - StringBuilder currentEvent = new StringBuilder(); - String currentEventType = null; - - while ((line = reader.readLine()) != null && !isRequestStopped) { - if (line.trim().isEmpty()) { - // 空行表示一个事件结束,处理当前事件 - if (currentEventType != null && currentEvent.length() > 0) { - processEvent(currentEventType, currentEvent.toString(), callBack); - currentEvent.setLength(0); - currentEventType = null; - } - } else if (line.startsWith("event:")) { - // 事件类型 - currentEventType = line.substring(6).trim(); - } else if (line.startsWith("data:")) { - // 事件数据 - String data = line.substring(5).trim(); - currentEvent.append(data); - } - } - - // 处理最后一个事件 - if (currentEventType != null && currentEvent.length() > 0) { - processEvent(currentEventType, currentEvent.toString(), callBack); - } - } - - /** - * 处理单个事件 - */ - private void processEvent(String eventType, String data, PlateContract.AiStreamCallback callBack) { - new Handler(Looper.getMainLooper()).post(() -> { - try { - switch (eventType) { - case "start": - // 开始事件,可以在这里做一些初始化 - Log.d(TAG, "AI解盘开始: " + data); - break; - - case "paiPanInfo": - // 排盘信息事件 - Log.d(TAG, "排盘信息: " + data); - break; - - case "api-info": - // API信息事件 - Log.d(TAG, "API信息: " + data); - break; - - case "chunk": - // 内容块事件,这是主要的文本内容 - try { - JSONObject chunkData = new JSONObject(data); - String content = chunkData.optString("content", ""); - boolean hasNewline = chunkData.optBoolean("hasNewline", false); - boolean isMarkdown = chunkData.optBoolean("isMarkdown", false); - - // 发送内容块到回调 - if (callBack != null && !content.isEmpty()) { - callBack.onMessage(content); - } - } catch (JSONException e) { - Log.e(TAG, "解析chunk数据失败: " + e.getMessage()); - } - break; - - case "request-id": - // 请求ID事件 - Log.d(TAG, "请求ID: " + data); - break; - - case "complete": - // 完成事件 - Log.d(TAG, "AI解盘完成: " + data); - if (callBack != null) { - callBack.onComplete(data); - } - break; - - default: - Log.d(TAG, "未知事件类型: " + eventType + ", 数据: " + data); - break; - } - } catch (Exception e) { - Log.e(TAG, "处理事件失败: " + e.getMessage()); - } - }); - } - - /** - * 停止当前请求 - */ - public void stopCurrentRequest() { - isRequestStopped = true; - if (currentCall != null && !currentCall.isCanceled()) { - currentCall.cancel(); - currentCall = null; - } - } -} diff --git a/app/src/main/java/com/ckkj/water/plate/mvp/PlatePresenter.java b/app/src/main/java/com/ckkj/water/plate/mvp/PlatePresenter.java deleted file mode 100644 index 8feab75..0000000 --- a/app/src/main/java/com/ckkj/water/plate/mvp/PlatePresenter.java +++ /dev/null @@ -1,225 +0,0 @@ -//package com.ckkj.water.plate.mvp; -// -//import com.ckkj.water.base.BasePresenter; -//import com.ckkj.water.network.BaseBean; -//import com.ckkj.water.plate.entity.BaziResultBean; -//import com.ckkj.water.plate.entity.BaziSaveSuccessEntity; -//import com.ckkj.water.plate.entity.PaipanHistoryEntity; -// -//import org.json.JSONException; -//import org.json.JSONObject; -// -//import java.util.HashMap; -//import java.util.Map; -// -///** -// * @author fengxiaoyang -// * @date 2025/7/30 -// * @description TODO: 描述该类的作用 -// */ -// -//public class PlatePresenter extends BasePresenter { -// private PlateImpl impl; -// -// public PlatePresenter(PlateImpl impl) { -// this.impl = impl; -// } -// -// /** -// * 排盘,直接调用缘份居 Api -// * @param map -// */ -// public void startPaiPan(Map map) { -// impl.startPaiPanByYfjApi(map, new PlateContract.CallBack() { -// @Override -// public void success(BaziResultBean entity) { -// if(PlatePresenter.this.getView() != null){ -// if(PlatePresenter.this.getView() != null){ -// PlatePresenter.this.getView().getPaipanResult(entity); -// } -// } -// } -// -// @Override -// public void fail(String msg) { -// if(PlatePresenter.this.getView() != null){ -// PlatePresenter.this.getView().showError(msg); -// } -// } -// }); -// } -// -// /** -// * 上传八字结果 -// * -// * @param result -// * @param cityData -// * @param timeType -// */ -// public void uploadBaziResult(BaziResultBean result, CityDataEntity cityData, int timeType) { -// try { -// BaziResultBean.BaseInfoDTO baseInfoDTO = result.getBaseInfo(); -// BaziResultBean.DetailInfoDTO.SizhuInfoDTO sizhuInfoDTO = result.getDetailInfo().getSizhuInfo(); -// JSONObject json = new JSONObject(); -// json.put("name",baseInfoDTO.getName()); -// json.put("gender",baseInfoDTO.getSex().equals("乾造")? "0" : "1"); -// json.put("birthType",timeType == 2001 ? "1":"0"); -// json.put("yangLiBirthTime",baseInfoDTO.getGongli()); -// json.put("yinLiBirthTime",baseInfoDTO.getNongli()); -// json.put("birthPlace",cityData == null ? "北京市": cityData.getCityName()); -// json.put("province",cityData == null ? "北京市": cityData.getProvinceName()); -// json.put("city",cityData == null ? "北京": cityData.getCityName()); -// json.put("openSolarTime","2"); -// json.put("nianZhu",sizhuInfoDTO.getYear().getTg() + "," + sizhuInfoDTO.getYear().getDz()); -// json.put("yueZhu",sizhuInfoDTO.getMonth().getTg() + "," + sizhuInfoDTO.getMonth().getDz()); -// json.put("riZhu",sizhuInfoDTO.getDay().getTg() + "," + sizhuInfoDTO.getDay().getDz()); -// json.put("shiZhu",sizhuInfoDTO.getHour().getTg() + "," + sizhuInfoDTO.getHour().getDz()); -// impl.saveUserBirthInfo(json, new PlateContract.CallBack() { -// @Override -// public void success(BaziSaveSuccessEntity bean) { -// if(PlatePresenter.this.getView() != null){ -// if(PlatePresenter.this.getView() != null){ -// PlatePresenter.this.getView().saveBaziResultSuccess(bean); -// } -// } -// } -// -// @Override -// public void fail(String msg) { -// if(PlatePresenter.this.getView() != null){ -// if(PlatePresenter.this.getView() != null){ -// PlatePresenter.this.getView().showError(msg); -// } -// } -// } -// }); -// } catch (JSONException e) { -// throw new RuntimeException(e); -// } -// } -// -// /** -// * 获取历史运势 -// * @param page -// */ -// public void getHistoryDatas(int page) { -// Map map = new HashMap<>(); -// map.put("pageNum", page); -// map.put("pageSize", 10); -// impl.getPaipanHistoryList(map, new PlateContract.CallBack() { -// -// @Override -// public void success(PaipanHistoryEntity entity) { -// if(PlatePresenter.this.getView() != null){ -// PlatePresenter.this.getView().getHistorySuccess(entity); -// } -// } -// -// @Override -// public void fail(String msg) { -// if(PlatePresenter.this.getView() != null){ -// PlatePresenter.this.getView().showError(msg); -// } -// } -// }); -// } -// -// /** -// * 删除记录 -// * @param id -// */ -// public void deleteRecordByID(String id,int pos) { -// Map map = new HashMap<>(); -// map.put("recordId", id); -// impl.deleteRecordByID(map, new PlateContract.CallBack() { -// @Override -// public void success(BaseBean bean) { -// if(PlatePresenter.this.getView() != null){ -// PlatePresenter.this.getView().deletePaipanHistorySuccess(pos); -// } -// } -// -// @Override -// public void fail(String msg) { -// if(PlatePresenter.this.getView() != null){ -// PlatePresenter.this.getView().showError(msg); -// } -// } -// }); -// } -// -// /** -// * ai 分析八字 -// * @param mSaveEntity -// */ -// public void AiParseBaziResult(BaziSaveSuccessEntity mSaveEntity) { -// try { -// JSONObject json = new JSONObject(); -// json.put("resultId", mSaveEntity.getRecordId()); -// impl.sendMsgToAi(json, new PlateContract.AiStreamCallback() { -// @Override -// public void onMessage(String messageChunk) { -// if (PlatePresenter.this.getView() != null) { -// PlatePresenter.this.getView().onStreamMessageReceived(messageChunk); -// } -// } -// -// @Override -// public void onError(String error) { -// if (PlatePresenter.this.getView() != null) { -// PlatePresenter.this.getView().showError(error); -// } -// } -// -// @Override -// public void onComplete(String complateContent) { -// if (PlatePresenter.this.getView() != null) { -// PlatePresenter.this.getView().onStreamComplete(complateContent); -// } -// } -// -// @Override -// public void onSessionReceived(String sessionId) { -// // 这个回调在当前场景下可能不需要,但保留接口一致性 -// // Log.d("PlatePresenter", "Session received: " + sessionId); -// } -// -// @Override -// public void loginLost() { -// if (PlatePresenter.this.getView() != null) { -// // 处理登录失效的情况 -// // 这里可以根据需要跳转到登录页面 -// // Log.w("PlatePresenter", "Login lost"); -// } -// } -// }); -// } catch (JSONException e) { -// throw new RuntimeException(e); -// } -// } -// -// -// /** -// * 举报 -// * @param reason -// */ -// public void commitReport(String reason) { -// Map map = new HashMap<>(); -// map.put("content", reason); -// new IndexImpl().commitReport(map, new IndexContract.CallBack() { -// @Override -// public void success(BaseBean bean) { -// if (PlatePresenter.this.getView() != null) { -// PlatePresenter.this.getView().commitReportSuccess(bean); -// } -// } -// -// @Override -// public void fail(String msg) { -// if (PlatePresenter.this.getView() != null) { -// PlatePresenter.this.getView().showError(msg); -// } -// } -// }); -// } -//} diff --git a/app/src/main/java/com/ckkj/water/utils/ClickUtils.java b/app/src/main/java/com/ckkj/water/utils/FastClickUtils.java similarity index 96% rename from app/src/main/java/com/ckkj/water/utils/ClickUtils.java rename to app/src/main/java/com/ckkj/water/utils/FastClickUtils.java index 56e47de..2fc3767 100644 --- a/app/src/main/java/com/ckkj/water/utils/ClickUtils.java +++ b/app/src/main/java/com/ckkj/water/utils/FastClickUtils.java @@ -2,7 +2,7 @@ package com.ckkj.water.utils; import android.util.Log; -public class ClickUtils { +public class FastClickUtils { /** * Android优雅地处理按钮重复点击的几种方法 diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index 0238eb7..376b10e 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -243,6 +243,20 @@ Avatar updated successfully File does not exist + Device connected successfully + + Connection successful + + Device disconnected + + Device connection is not initialized + + Device is connecting, please try again later + + Device is not connected, please try again + + Scan failed: %1$s + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 269bf61..366e031 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -229,6 +229,20 @@ 头像修改成功 文件不存在 + 设备连接成功 + + 连接成功 + + 设备已断开 + + 设备连接未初始化 + + 设备连接中,请稍后再试 + + 设备未连接,请稍后重试 + + 扫描失败: %1$s +