feat: implement serve-first-pay-later order flow

- Redesign order status: 0待接单→1已接单→2服务中→3待支付→4已完成
- Backend: startService now requires status=1, completeOrder sets status=3
- Backend: payment callback sets status=4, only status=3 can pay
- Backend: cancel only allowed at status 0/1 (not during service)
- Mini-program: update status labels and payment button to status=3
- Android: TobeSerFragment queries status=1, SerFragment queries status=2
- Update all status comments and UI mappings across three platforms

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
renjianbo
2026-05-21 23:16:27 +08:00
parent 17e91fcf84
commit 97ad453e89
16 changed files with 1564 additions and 60 deletions

View File

@@ -24,7 +24,7 @@ public class CustomerDetailActivity extends BaseActivity {
super.onCreate(savedInstanceState);
ActivityCustomerDetailBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_customer_detail);
dataBean = (KehuinfoBean) getIntent().getSerializableExtra("dataBean");
// //条目点击---订单状态:-2:已取消 -1:拒绝接单 0:待接单 1:已接单 2:已支付(待服务)3:服务中 4:已完成 5申请退款 6退款中 7已退款 8:已结算
// //条目点击---订单状态:-2:已取消 -1:拒绝接单 0:待接单 1:已接单 2:服务中 3:待支付 4:已完成 5申请退款 6退款中 7已退款 8:已结算
switch (dataBean.getStatus()) {
case "-2":
dataBean.setStatusname("已取消");
@@ -53,17 +53,6 @@ public class CustomerDetailActivity extends BaseActivity {
dataBean.setStatusname("已接单");
break;
case "2":
dataBean.setStatusname("待服务");
binding.rl01.setBackgroundResource(R.drawable.bg_detail_b);
drawable_n = getResources().getDrawable(R.mipmap.icon_time_b);
drawable_n.setBounds(0, 0, drawable_n.getMinimumWidth(),drawable_n.getMinimumHeight()); //此为必须写的,如果不写图片显示不出来
binding.tvDraUserName.setCompoundDrawables(drawable_n, null, null, null);
binding.tvDraUserName.setText("待服务");
binding.tvDraUserName.setTextColor(getResources().getColor(R.color.color_228BFE));
binding.tvDarUserPhone.setText("服务开始时间:"+dataBean.getStartTime());
break;
case "3":
dataBean.setStatusname("服务中");
binding.rl01.setBackgroundResource(R.drawable.bg_markingxinxii);
@@ -72,7 +61,18 @@ public class CustomerDetailActivity extends BaseActivity {
binding.tvDraUserName.setCompoundDrawables(drawable_n, null, null, null);
binding.tvDraUserName.setText("已服务:3天6小时");
binding.tvDraUserName.setTextColor(getResources().getColor(R.color.color_FF8F1F));
binding.tvDarUserPhone.setText("请认真完成此次服务,订单完成后可在“我的—累计收益—收益明细”中查看本单收益");
binding.tvDarUserPhone.setText("请认真完成此次服务,订单完成后可在我的—累计收益—收益明细中查看本单收益");
break;
case "3":
dataBean.setStatusname("待支付");
binding.rl01.setBackgroundResource(R.drawable.bg_detail_b);
drawable_n = getResources().getDrawable(R.mipmap.icon_time_b);
drawable_n.setBounds(0, 0, drawable_n.getMinimumWidth(),drawable_n.getMinimumHeight()); //此为必须写的,如果不写图片显示不出来
binding.tvDraUserName.setCompoundDrawables(drawable_n, null, null, null);
binding.tvDraUserName.setText("待支付");
binding.tvDraUserName.setTextColor(getResources().getColor(R.color.color_228BFE));
binding.tvDarUserPhone.setText("服务已完成,等待患者付款");
break;
case "4":
dataBean.setStatusname("已完成");

View File

@@ -35,7 +35,7 @@ public class CusListAdapter extends BaseQuickAdapter<KehuinfoBean, BaseViewHolde
CircleImageView iv_dea_avatar = helper.getView(R.id.iv_dea_avatar);
GlideTools.init(mContext).displaypic(iv_dea_avatar, item.getUserbAvatar(), R.mipmap.icon_default_head);
TextView tv_status = helper.getView(R.id.tv_status);
//条目点击---订单状态:-2:已取消 -1:拒绝接单 0:待接单 1:已接单(待支付) 2:已支付(待服务)3:服务中 4:已完成 5申请退款 6退款中 7已退款 8:已结算
//条目点击---订单状态:-2:已取消 -1:拒绝接单 0:待接单 1:已接单 2:服务中 3:待支付 4:已完成 5申请退款 6退款中 7已退款 8:已结算
String status = item.getStatus();
switch(status){
case "-2" :
@@ -51,10 +51,10 @@ public class CusListAdapter extends BaseQuickAdapter<KehuinfoBean, BaseViewHolde
tv_status.setText("已接单");
break; //可选
case "2" :
tv_status.setText("待服务");
tv_status.setText("服务中");
break; //可选
case "3" :
tv_status.setText("服务中");
tv_status.setText("待支付");
break; //可选
case "4" :
tv_status.setText("已完成");

View File

@@ -222,7 +222,7 @@ public class ComFragment extends MobanFragment {
}
//订单状态:-2:已取消 -1:拒绝接单 0:待接单 1:已接单(待支付) 2:已支付(待服务)3:服务中 4:已完成 5申请退款 6退款中 7已退款 8:已结算
//订单状态:-2:已取消 -1:拒绝接单 0:待接单 1:已接单 2:服务中 3:待支付 4:已完成 5申请退款 6退款中 7已退款 8:已结算
final HttpParams paramsPost = new HttpParams();
paramsPost.put("status", "4");
paramsPost.put("pageSize", "10");

View File

@@ -35,7 +35,7 @@ import de.greenrobot.event.EventBus;
import io.reactivex.disposables.Disposable;
/**
* 待服务客户
* 服务中客户
*/
public class SerFragment extends MobanFragment {
@@ -222,9 +222,9 @@ public class SerFragment extends MobanFragment {
}
//订单状态:-2:已取消 -1:拒绝接单 0:待接单 1:已接单(待支付) 2:已支付(待服务)3:服务中 4:已完成 5申请退款 6退款中 7已退款 8:已结算
//订单状态:-2:已取消 -1:拒绝接单 0:待接单 1:已接单 2:服务中 3:待支付 4:已完成 5申请退款 6退款中 7已退款 8:已结算
final HttpParams paramsPost = new HttpParams();
paramsPost.put("status", "3");
paramsPost.put("status", "2");
paramsPost.put("pageSize", "10");
paramsPost.put("pageNum", "1");
new NetApi().getPostDatatwo(paramsPost, HttpConstants.URi_syste_view_list).subscribe(new Observer<Response>() {

View File

@@ -233,10 +233,10 @@ public class TobeSerFragment extends MobanFragment {
return;
}
//订单状态:-2:已取消 -1:拒绝接单 0:待接单 1:已接单(待支付) 2:已支付(待服务)3:服务中 4:已完成 5申请退款 6退款中 7已退款 8:已结算
// 待服务客户包含状态 1(已接单) 和 2(已支付)
//订单状态:-2:已取消 -1:拒绝接单 0:待接单 1:已接单 2:服务中 3:待支付 4:已完成 5申请退款 6退款中 7已退款 8:已结算
// 待服务客户 = 状态 1(已接单)
final HttpParams paramsPost = new HttpParams();
paramsPost.put("status", "1,2");
paramsPost.put("status", "1");
paramsPost.put("pageSize", "10");
paramsPost.put("pageNum", "1");
new NetApi().getPostDatatwo(paramsPost, HttpConstants.URi_syste_view_list).subscribe(new Observer<Response>() {