33
This commit is contained in:
@@ -0,0 +1,486 @@
|
||||
package cn.shangyu.gdxzExpert.activity;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.gyf.immersionbar.ImmersionBar;
|
||||
import com.lidroid.xutils.exception.HttpException;
|
||||
import com.lidroid.xutils.http.RequestParams;
|
||||
import com.lidroid.xutils.http.ResponseInfo;
|
||||
import com.lidroid.xutils.http.callback.RequestCallBack;
|
||||
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;
|
||||
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import cn.shangyu.gdxzExpert.R;
|
||||
import cn.shangyu.gdxzExpert.base.BaseActivity;
|
||||
import cn.shangyu.gdxzExpert.bean.MonthDetailBean;
|
||||
import cn.shangyu.gdxzExpert.bean.MonthDetailBean.DataFee;
|
||||
import cn.shangyu.gdxzExpert.bean.MonthDetailBean.DataTime;
|
||||
import cn.shangyu.gdxzExpert.ecdemo.ui.SettingItem;
|
||||
import cn.shangyu.gdxzExpert.http.HttpHelper;
|
||||
import cn.shangyu.gdxzExpert.utils.Constant;
|
||||
import cn.shangyu.gdxzExpert.utils.GsonTools;
|
||||
import cn.shangyu.gdxzExpert.utils.LogUtil;
|
||||
import cn.shangyu.gdxzExpert.utils.SharePrefUtil;
|
||||
import cn.shangyu.gdxzExpert.utils.ToastUtil;
|
||||
import cn.shangyu.gdxzExpert.utils.UIUtils;
|
||||
import cn.shangyu.gdxzExpert.utils.Url;
|
||||
import cn.shangyu.gdxzExpert.widget.LoadingPage.ResultState;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author ssy
|
||||
* @date 2015-8-31 下午2:47:47
|
||||
* Copyright (C) 2015 河南商宇科技有限公司
|
||||
*
|
||||
* 功能说明:我的-服务设置-电话咨询
|
||||
*/
|
||||
public class TelephoneConsultationActivity extends BaseActivity {
|
||||
|
||||
|
||||
private TextView tv_howLong;
|
||||
private EditText et_ten_price;
|
||||
private EditText et_twenty_price;
|
||||
private SettingItem m_consultation;
|
||||
public static final int RESILTCODE = 99;
|
||||
|
||||
private String price = "";
|
||||
private String howLong = "";
|
||||
private String isEnable = "";
|
||||
//电话咨询服务查看
|
||||
public static String callServiceDetailUrl=Url.getcallServiceDetail;
|
||||
//电话服务设置1(价格、人次等设置)
|
||||
public static String callServiceFeeUrl=Url.getcallServiceFee;
|
||||
//电话服务设置2(时间设置)
|
||||
public static String callServiceTimeUrl=Url.getcallServiceTime;
|
||||
private String callWeek = "";
|
||||
private String startDate = "";
|
||||
private String hl = "";
|
||||
private Button bt_ok;
|
||||
private LinearLayout m_service;
|
||||
private String startDateArr = "";
|
||||
|
||||
@Override
|
||||
public void setTitle() {
|
||||
top_title.setText("电话咨询");
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateSuccessedView() {
|
||||
ImmersionBar.with(this).keyboardEnable(true).statusBarDarkFont(true).titleBar(mToolbar).init();
|
||||
View view = UIUtils.inflate(R.layout.activity_telephone_consultation);
|
||||
m_consultation = (SettingItem) view.findViewById(R.id.switch_telephone_consultation);//是否开启服务
|
||||
et_ten_price = (EditText) view.findViewById(R.id.et_ten_price);//10分钟价格
|
||||
et_twenty_price = (EditText) view.findViewById(R.id.et_twenty_price);//20分钟价格
|
||||
m_service = (LinearLayout) view.findViewById(R.id.rl_setting_howLong);
|
||||
tv_howLong = (TextView) view.findViewById(R.id.tv_howLong);//服务时段回显
|
||||
bt_ok = (Button) view.findViewById(R.id.bt_ok);
|
||||
|
||||
//初始化是否开启
|
||||
boolean isOpen = SharePrefUtil.getBoolean(ct, "Telephone_m_consultation", false);
|
||||
m_consultation.setChecked(isOpen);
|
||||
//是否开启服务
|
||||
m_consultation.getCheckedTextView().setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
m_consultation.toggle();
|
||||
if (m_consultation.isChecked()) {
|
||||
setEnable(true);
|
||||
operaterVIP(1);
|
||||
} else {
|
||||
setEnable(false);
|
||||
operaterVIP(0);
|
||||
}
|
||||
}
|
||||
});
|
||||
//初始化是否选中
|
||||
if (m_consultation.isChecked()) {
|
||||
setEnable(true);
|
||||
}else{
|
||||
setEnable(false);
|
||||
}
|
||||
|
||||
m_service.setOnClickListener(this);
|
||||
bt_ok.setOnClickListener(this);
|
||||
|
||||
//从sp里取出缓存
|
||||
String monthDetail = SharePrefUtil.getString(ct, callServiceDetailUrl, null);
|
||||
if (!TextUtils.isEmpty(monthDetail)) {
|
||||
processData(monthDetail, true, 0, true);
|
||||
}else{
|
||||
showProgressDialog("正在加载");
|
||||
}
|
||||
// showProgressDialog("加载中...");
|
||||
//查看服务设置
|
||||
lookAndSetMonth(callServiceDetailUrl, true, 0, false);
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置未选中则禁止输入
|
||||
* setEnable
|
||||
*
|
||||
* @param isEnable
|
||||
* void
|
||||
*/
|
||||
private void setEnable(boolean isEnable){
|
||||
// et_ten_price.setEnabled(isEnable);
|
||||
// et_twenty_price.setEnabled(isEnable);
|
||||
// bt_ok.setEnabled(isEnable);
|
||||
// m_service.setEnabled(isEnable);
|
||||
if (isEnable) {
|
||||
bt_ok.setVisibility(View.VISIBLE);
|
||||
}else{
|
||||
bt_ok.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResultState onLoad() {
|
||||
return ResultState.STATE_SUCCESSED;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void processClick(View v) {
|
||||
switch (v.getId()) {
|
||||
case R.id.bt_ok:
|
||||
//确定提交设置
|
||||
submitSetting();
|
||||
break;
|
||||
case R.id.rl_setting_howLong:
|
||||
// 服务时段
|
||||
Intent intent = new Intent(ct, SelectDateTimeActivity.class);
|
||||
intent.putExtra("callWeek", callWeek);//把获取的星期几传过去
|
||||
intent.putExtra("startDate", startDateArr);//把选择的时间传过去,以便回显设置的时间
|
||||
LogUtil.i("callWeek = "+callWeek+", startDate = "+startDateArr);
|
||||
startActivityForResult(intent, RESILTCODE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改设置提交
|
||||
* submitSetting
|
||||
*
|
||||
* void
|
||||
*/
|
||||
private void submitSetting() {
|
||||
String ten_price = et_ten_price.getText().toString();//价格
|
||||
String twenty_price = et_twenty_price.getText().toString();//次数
|
||||
if (m_consultation.isChecked()) {
|
||||
isEnable = "1";//开启
|
||||
}else{
|
||||
isEnable = "0";//关闭
|
||||
}
|
||||
if (TextUtils.isEmpty(ten_price) || TextUtils.isEmpty(twenty_price)) {
|
||||
ToastUtil.showToast("请输入价格");
|
||||
return ;
|
||||
}
|
||||
if (Double.parseDouble(ten_price) >= Double.parseDouble(twenty_price)) {
|
||||
ToastUtil.showToast("10分钟的电话咨询价格不可以大于或者等于20分钟的电话咨询价格!");
|
||||
return ;
|
||||
}
|
||||
if (0 > Double.parseDouble(ten_price)) {
|
||||
ToastUtil.showToast("价格最小0元");
|
||||
return ;
|
||||
}
|
||||
if (100000 < Double.parseDouble(ten_price)) {
|
||||
ToastUtil.showToast("价格最大100000元");
|
||||
return ;
|
||||
}
|
||||
if (0 > Double.parseDouble(twenty_price)) {
|
||||
ToastUtil.showToast("价格最小0元");
|
||||
return ;
|
||||
}
|
||||
if (100000 < Double.parseDouble(twenty_price)) {
|
||||
ToastUtil.showToast("价格最大100000元");
|
||||
return ;
|
||||
}
|
||||
if (TextUtils.isEmpty(callWeek) && TextUtils.isEmpty(startDate)) {
|
||||
ToastUtil.showToast("请设置电话咨询时间");
|
||||
return ;
|
||||
}
|
||||
showProgressDialog("提交中...");
|
||||
//价格 (多个价格以逗号隔开) 必填
|
||||
price = ten_price + "," + twenty_price;
|
||||
//时长 (多个以逗号隔开,与价格一一对应)必填
|
||||
howLong = "10,20";//这里按照页面的是10分钟,20分钟,写死,如果以后更改分钟,请注意。
|
||||
//价格、人次等设置
|
||||
lookAndSetMonth(callServiceFeeUrl, false, 1, false);
|
||||
}
|
||||
|
||||
private void lookAndSetMonth(final String loadUrl, final boolean isLook, final int type, final boolean isCache) {
|
||||
String expertUuid = SharePrefUtil.getString(UIUtils.getContext(), Constant.uuid, "");
|
||||
RequestParams params = new RequestParams();//封装参数
|
||||
if (isLook && 0 == type) {//判断是查看服务,还是设置服务
|
||||
params.addBodyParameter("expertUuid", expertUuid);
|
||||
}else if (!isLook && 1 == type) {//价格,人次设置
|
||||
params.addBodyParameter("price", price);
|
||||
params.addBodyParameter("howLong", howLong);
|
||||
params.addBodyParameter("isEnable", isEnable);
|
||||
params.addBodyParameter("expertUuid", expertUuid);
|
||||
}else if (!isLook && 2 == type) {//时间设置
|
||||
//取出电话咨询uuid
|
||||
String callServiceUuid = SharePrefUtil.getString(ct, "callServiceUuid","");
|
||||
params.addBodyParameter("callWeek", callWeek);
|
||||
params.addBodyParameter("startDate", startDate);
|
||||
params.addBodyParameter("callServiceUuid", callServiceUuid);
|
||||
}
|
||||
//请求数据
|
||||
HttpHelper.loadData(HttpMethod.POST, loadUrl, params, new RequestCallBack<String>() {
|
||||
|
||||
@Override
|
||||
public void onSuccess(ResponseInfo<String> info) {
|
||||
if (isCache) {
|
||||
SharePrefUtil.saveString(ct, callServiceDetailUrl, info.result);
|
||||
}else{
|
||||
processData(info.result, isLook, type, false);
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void onFailure(HttpException arg0, String arg1) {
|
||||
LogUtil.i("数据请求失败了: " + arg1);
|
||||
closeProgressDialog();
|
||||
ToastUtil.showToast("请求失败,请稍候再试");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//解析数据
|
||||
protected void processData(String result, boolean isLook, int type, boolean isCache) {
|
||||
MonthDetailBean bean = GsonTools.fromGsonToBean(result,MonthDetailBean.class);
|
||||
//判断是查看还是修改
|
||||
if (isLook) {
|
||||
SharePrefUtil.saveString(ct, callServiceDetailUrl, result);
|
||||
closeProgressDialog();
|
||||
if ("1".equals(bean.code)) {//查询成功
|
||||
if (bean.data != null && !isCache) {
|
||||
if (1 == bean.data.isEnable) {//是否开启,1是,0否
|
||||
m_consultation.setChecked(true);
|
||||
}else{
|
||||
m_consultation.setChecked(false);
|
||||
}
|
||||
SharePrefUtil.saveBoolean(ct, "Telephone_m_consultation", m_consultation.isChecked());
|
||||
}
|
||||
//价格
|
||||
List<DataFee> fee = bean.fee;
|
||||
if (fee != null && fee.size() > 0) {
|
||||
for (int i = 0; i < fee.size(); i++) {
|
||||
int hl = fee.get(i).howLong;
|
||||
// int price = Integer.parseInt(fee.get(i).price);
|
||||
int price = (int) Math.round(Double.parseDouble(fee.get(i).price));
|
||||
switch (hl) {
|
||||
case 10://10分钟的价格
|
||||
|
||||
et_ten_price.setText(price+"");
|
||||
break;
|
||||
case 20://20分钟的
|
||||
et_twenty_price.setText(price+"");
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
LogUtil.i("bean.data====="+result);
|
||||
//时间
|
||||
List<DataTime> time = bean.time;
|
||||
tv_howLong.setText("");
|
||||
callWeek = "";
|
||||
startDate = "";
|
||||
if (time != null && time.size() > 0) {
|
||||
for (int i = 0; i < time.size(); i++) {
|
||||
String cw = time.get(i).callWeek;
|
||||
String w = "";
|
||||
if (!TextUtils.isEmpty(cw)) {
|
||||
callWeek += cw + ",";
|
||||
switch (Integer.parseInt(cw)) {
|
||||
case 1:
|
||||
w = "星期日 ";
|
||||
break;
|
||||
case 2:
|
||||
w = "星期一 ";
|
||||
break;
|
||||
case 3:
|
||||
w = "星期二 ";
|
||||
break;
|
||||
case 4:
|
||||
w = "星期三 ";
|
||||
break;
|
||||
case 5:
|
||||
w = "星期四 ";
|
||||
break;
|
||||
case 6:
|
||||
w = "星期五 ";
|
||||
break;
|
||||
case 7:
|
||||
w = "星期六 ";
|
||||
break;
|
||||
}
|
||||
}
|
||||
String sd = time.get(i).startDate;
|
||||
String ed = time.get(i).endDate;
|
||||
String m = sd + "-" + ed;
|
||||
startDate += m + ";";
|
||||
startDateArr += "#" + sd + ";";
|
||||
//查看的回显
|
||||
if (i == time.size() - 1) {
|
||||
tv_howLong.append(w+m);
|
||||
}else{
|
||||
tv_howLong.append(w + m + ",");
|
||||
}
|
||||
}
|
||||
}
|
||||
//如果返回的code是 3 说明该服务已经被禁用 radiobutton禁用
|
||||
}else if("3".equals(bean.code)){
|
||||
SharePrefUtil.saveString(ct, callServiceDetailUrl, null);
|
||||
m_consultation.setChecked(false);
|
||||
m_consultation.setEnabled(false);
|
||||
ToastUtil.showMessage(bean.message, 1);
|
||||
}
|
||||
} else {//修改设置
|
||||
if ("1".equals(bean.code)) {//设置成功
|
||||
if (1 == type) {
|
||||
//时间设置
|
||||
//保存电话uuid到sp
|
||||
MonthDetailBean b = GsonTools.fromGsonToBean(result,MonthDetailBean.class);
|
||||
SharePrefUtil.saveString(ct, "callServiceUuid",b.data.uuid);
|
||||
if (1 == bean.data.isEnable) {//是否开启,1是,0否
|
||||
SharePrefUtil.saveBoolean(ct, "Telephone_m_consultation", true);
|
||||
}else{
|
||||
SharePrefUtil.saveBoolean(ct, "Telephone_m_consultation", false);
|
||||
}
|
||||
lookAndSetMonth(callServiceTimeUrl, false, 2, false);
|
||||
}else if (2 == type) {
|
||||
closeProgressDialog();
|
||||
ToastUtil.showToast("设置成功");
|
||||
lookAndSetMonth(callServiceDetailUrl, true, 0, true);
|
||||
}
|
||||
}else{
|
||||
closeProgressDialog();
|
||||
ToastUtil.showToast(bean.message);
|
||||
}
|
||||
}
|
||||
|
||||
//初始化是否选中
|
||||
if (m_consultation.isChecked()) {
|
||||
setEnable(true);
|
||||
}else{
|
||||
setEnable(false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
LogUtil.i("onActivityResult=="+requestCode+"==="+resultCode+"=="+data);
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (requestCode == RESILTCODE && data != null && resultCode == Activity.RESULT_OK) {
|
||||
startDate = "";
|
||||
callWeek = "";
|
||||
startDateArr = "";
|
||||
hl = "";
|
||||
String[] Date = data.getStringArrayExtra("startDates");
|
||||
String[] Week = data.getStringArrayExtra("callWeeks");
|
||||
String[] weeks = data.getStringArrayExtra("weeks");
|
||||
String[] DateArr = data.getStringArrayExtra("DateArr");
|
||||
//时间(与星期对应,以分号分隔,如当天设置多个时段,时段之间以逗号分隔。
|
||||
//如周日8:00-9:00,13:00-15:00 周一8:00-15:00 周二 13:00-15:00,
|
||||
//传参格式为”8:00-9:00,13:00-15:00;8:00-15:00;13:00-15:00;”)
|
||||
for (int i = 0; i < Date.length; i++) {
|
||||
if (!TextUtils.isEmpty(Date[i])) {
|
||||
Date[i] = Date[i].substring(0, Date[i].length() - 1);
|
||||
startDate += Date[i] + ";";
|
||||
hl += weeks[i] + Date[i];
|
||||
startDateArr += DateArr[i] + ";";
|
||||
}
|
||||
LogUtil.i("Date=="+Date[i] + "startDateArr="+ startDateArr);
|
||||
}
|
||||
//遍历星期,并以星期 (多天以逗号分隔,如周日、周一、周二,传参格式为”1,2,3”)传参
|
||||
for (int i = 0; i < Week.length; i++) {
|
||||
if (!TextUtils.isEmpty(Week[i])) {
|
||||
callWeek += Week[i] + ",";
|
||||
}
|
||||
LogUtil.i("Week=="+Week[i]);
|
||||
}
|
||||
|
||||
LogUtil.i("callWeek = "+callWeek+", startDate = "+startDate);
|
||||
//回显
|
||||
tv_howLong.setText(hl);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务是否开启
|
||||
*/
|
||||
private void operaterVIP(int type) {
|
||||
String expertUuid = SharePrefUtil.getString(UIUtils.getContext(), Constant.uuid, "");
|
||||
|
||||
RequestParams params = new RequestParams();
|
||||
params.addBodyParameter("expertUuid", expertUuid);
|
||||
params.addBodyParameter("VIPType", String.valueOf(1));
|
||||
params.addBodyParameter("operaterType", String.valueOf(type));
|
||||
LogUtil.d("expertUuid = " + expertUuid + ", VIPType = 1" + ", operaterType = " + type);
|
||||
showProgressDialog("操作中...");
|
||||
HttpHelper.loadData(HttpMethod.POST, Url.operaterVIP, params, new RequestCallBack<String>() {
|
||||
|
||||
@Override
|
||||
public void onFailure(HttpException arg0, String arg1) {
|
||||
closeProgressDialog();
|
||||
// ToastUtil.showToast(arg1);
|
||||
LogUtil.d("onFailure = " + arg1);
|
||||
m_consultation.toggle();
|
||||
setEnable(false);
|
||||
SharePrefUtil.saveBoolean(ct, "Telephone_m_consultation", m_consultation.isChecked());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(ResponseInfo<String> info) {
|
||||
closeProgressDialog();
|
||||
LogUtil.d("onSuccess = " + info.result);
|
||||
try {
|
||||
JSONObject objs = new JSONObject(info.result);
|
||||
String retcode = objs.getString("code");
|
||||
String message = objs.getString("message");
|
||||
if (retcode.equals(String.valueOf(1))) {
|
||||
//ToastUtil.showToast("开启成功!");
|
||||
} else if (retcode.equals(String.valueOf(3))) {
|
||||
//ToastUtil.showToast("关闭成功");
|
||||
setEnable(false);
|
||||
//如果返回状态是5 说明该专家所在医院或地区限制开启服务 默认关闭该服务
|
||||
} else if (retcode.equals(String.valueOf(5))){
|
||||
ToastUtil.showToast(message);
|
||||
m_consultation.toggle();
|
||||
setEnable(false);
|
||||
m_consultation.setEnabled(false);
|
||||
}else{
|
||||
ToastUtil.showToast(message);
|
||||
m_consultation.toggle();
|
||||
setEnable(false);
|
||||
}
|
||||
SharePrefUtil.saveBoolean(ct, "Telephone_m_consultation", m_consultation.isChecked());
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
// ToastUtil.showToast("提交失败!");
|
||||
m_consultation.toggle();
|
||||
setEnable(false);
|
||||
SharePrefUtil.saveBoolean(ct, "Telephone_m_consultation", m_consultation.isChecked());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user