Commit 6356c68e by han xu

Merge branch 'dev_xx' into dev

* dev_xx:
  选择地址问题修复
  按天用工单等待验收UI修改
  隐藏工单详情按钮
  提交验收
  服务技能
  打卡
  商家详情
  打卡
  按天用工单UI修改,个人中心UI修改
parents c62ca07a 76944fa8
Showing with 1279 additions and 195 deletions
......@@ -4,9 +4,8 @@
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="PLATFORM" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
......@@ -29,8 +28,7 @@
<option value="$PROJECT_DIR$/wheelview" />
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" />
<option name="useQualifiedModuleNames" value="true" />
<option name="resolveExternalAnnotations" value="false" />
</GradleProjectSettings>
</option>
<option name="offlineMode" value="true" />
......
......@@ -24,7 +24,7 @@
<option name="myDefaultNotNull" value="android.support.annotation.NonNull" />
<option name="myNullables">
<value>
<list size="14">
<list size="16">
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
<item index="2" class="java.lang.String" itemvalue="javax.annotation.CheckForNull" />
......@@ -39,12 +39,14 @@
<item index="11" class="java.lang.String" itemvalue="org.eclipse.jdt.annotation.Nullable" />
<item index="12" class="java.lang.String" itemvalue="io.reactivex.annotations.Nullable" />
<item index="13" class="java.lang.String" itemvalue="io.reactivex.rxjava3.annotations.Nullable" />
<item index="14" class="java.lang.String" itemvalue="org.jspecify.nullness.Nullable" />
<item index="15" class="java.lang.String" itemvalue="jakarta.annotation.Nullable" />
</list>
</value>
</option>
<option name="myNotNulls">
<value>
<list size="14">
<list size="16">
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
<item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
......@@ -59,11 +61,13 @@
<item index="11" class="java.lang.String" itemvalue="io.reactivex.annotations.NonNull" />
<item index="12" class="java.lang.String" itemvalue="io.reactivex.rxjava3.annotations.NonNull" />
<item index="13" class="java.lang.String" itemvalue="lombok.NonNull" />
<item index="14" class="java.lang.String" itemvalue="jakarta.annotation.Nonnull" />
<item index="15" class="java.lang.String" itemvalue="org.jspecify.nullness.NonNull" />
</list>
</value>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="corretto-11" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
......
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/modules/dayu-saas-android.iml" filepath="$PROJECT_DIR$/.idea/modules/dayu-saas-android.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/IDCardLib/dayu-saas-android.IDCardLib.iml" filepath="$PROJECT_DIR$/.idea/modules/IDCardLib/dayu-saas-android.IDCardLib.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/app/dayu-saas-android.app.iml" filepath="$PROJECT_DIR$/.idea/modules/app/dayu-saas-android.app.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/baseSDK/dayu-saas-android.baseSDK.iml" filepath="$PROJECT_DIR$/.idea/modules/baseSDK/dayu-saas-android.baseSDK.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/beauty/dayu-saas-android.beauty.iml" filepath="$PROJECT_DIR$/.idea/modules/beauty/dayu-saas-android.beauty.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/camera/dayu-saas-android.camera.iml" filepath="$PROJECT_DIR$/.idea/modules/camera/dayu-saas-android.camera.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/captcha/dayu-saas-android.captcha.iml" filepath="$PROJECT_DIR$/.idea/modules/captcha/dayu-saas-android.captcha.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/learnCenter/dayu-saas-android.learnCenter.iml" filepath="$PROJECT_DIR$/.idea/modules/learnCenter/dayu-saas-android.learnCenter.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/liveModule/dayu-saas-android.liveModule.iml" filepath="$PROJECT_DIR$/.idea/modules/liveModule/dayu-saas-android.liveModule.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/locationComponent/dayu-saas-android.locationComponent.iml" filepath="$PROJECT_DIR$/.idea/modules/locationComponent/dayu-saas-android.locationComponent.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/managercenter/dayu-saas-android.managercenter.iml" filepath="$PROJECT_DIR$/.idea/modules/managercenter/dayu-saas-android.managercenter.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/messageCenter/dayu-saas-android.messageCenter.iml" filepath="$PROJECT_DIR$/.idea/modules/messageCenter/dayu-saas-android.messageCenter.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/orderCenter/dayu-saas-android.orderCenter.iml" filepath="$PROJECT_DIR$/.idea/modules/orderCenter/dayu-saas-android.orderCenter.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/pickerview/dayu-saas-android.pickerview.iml" filepath="$PROJECT_DIR$/.idea/modules/pickerview/dayu-saas-android.pickerview.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/provider/dayu-saas-android.provider.iml" filepath="$PROJECT_DIR$/.idea/modules/provider/dayu-saas-android.provider.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/saleCenter/dayu-saas-android.saleCenter.iml" filepath="$PROJECT_DIR$/.idea/modules/saleCenter/dayu-saas-android.saleCenter.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/userCenter/dayu-saas-android.userCenter.iml" filepath="$PROJECT_DIR$/.idea/modules/userCenter/dayu-saas-android.userCenter.iml" />
<module fileurl="file://$PROJECT_DIR$/.idea/modules/wheelview/dayu-saas-android.wheelview.iml" filepath="$PROJECT_DIR$/.idea/modules/wheelview/dayu-saas-android.wheelview.iml" />
</modules>
</component>
</project>
\ No newline at end of file
......@@ -52,6 +52,7 @@ import com.dayu.learncenter.ui.fragment.HomeLearnFragment;
import com.dayu.livemodule.LiveUtils;
import com.dayu.livemodule.event.UserKickOutEvent;
import com.dayu.order.common.TabNumEvent;
import com.dayu.order.ui.activity.CheckInTakePhotoActivity;
import com.dayu.order.ui.activity.OrderDetailsActivity;
import com.dayu.order.ui.activity.ReceivingActivity;
import com.dayu.order.ui.fragment.HomeOrderFragment;
......@@ -719,6 +720,14 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
if (requestCode == CheckInTakePhotoActivity.TAKE_PHOTO_CODE && resultCode == RESULT_OK){
//按天用工打卡上传图片成功,通知fragment调用打卡接口并刷新页面
Intent intent = new Intent();
intent.putExtra("photoUrl", data.getStringExtra("photoUrl"));
intent.setAction(CheckInTakePhotoActivity.TAKE_PHOTO_FINISH_BROADCAST);
sendBroadcast(intent);
}
}
@Override
......
......@@ -27,6 +27,11 @@
style="@style/toolbar_title" />
</androidx.appcompat.widget.Toolbar>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
......@@ -333,10 +338,13 @@
android:layout_marginRight="15dp"
android:layout_gravity="center"
android:layout_marginTop="33.3dp"
android:layout_marginBottom="@dimen/dp_30"
android:background="@drawable/tab_blue_react"
android:onClick="@{()->presenter.exite()}"
android:text="@string/tv_exit_login"
android:textColor="@color/cl_white" />
</LinearLayout>
</ScrollView>
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -87,6 +87,12 @@ public interface APIService {
Observable<BaseResponse<List<String>>> uploadPhotoNew(
@Part MultipartBody.Part part, @Query("targetPath") String path, @Query("pathDateFmt") String pathDateFmt);
@Multipart
@POST("/file/uploadOne")
Observable<BaseResponse<String>> uploadPhotoOne(
@Part MultipartBody.Part part, @Query("targetPath") String path, @Query("pathDateFmt") String pathDateFmt);
/**
* 上传单个视频.
*
......
......@@ -33,6 +33,10 @@ public class BaseApiFactory {
return Api.getService(APIService.class).uploadPhotoNew(part,path,pathDateFmt).compose(Api.applySchedulers());
}
public static Observable<String> uploadPhotoOne(MultipartBody.Part part,String path,String pathDateFmt) {
return Api.getService(APIService.class).uploadPhotoOne(part,path,pathDateFmt).compose(Api.applySchedulers());
}
public static Observable<String> uploadVideo(MultipartBody.Part part) {
return Api.getService(APIService.class).uploadVideo(part).compose(Api.applySchedulers());
}
......
......@@ -45,21 +45,21 @@ public class Constants {
/**
* dev环境配置.
*/
// public static String ENVIROMENT = "debug";
// public static String PHOTO = "dev";
// public static int LOG_LEVEL = LogUtils.LEVEL_ALL;
// public static String BASE_URL = "http://47.94.101.239:3112";
// public static String WEB_SOP = "http://47.94.101.239:9004/#/sop";
// public static String CHECK_MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manyServiceResult";
// public static String MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manySop";
// public static String WEB_SOP_DETAIL = "http://47.94.101.239:9004/#/sopdetail";
// public static String WEB_ZHI_SHI = "http://47.94.101.239:9004/#/detail";
// public static final String UP_PHOTO = "/file/uploadMore?targetPath=dev/sp/mobile/android/business/checkApply";
// public static final String UP_VIDEO = "/file/uploadVideoOne?targetPath=dev/video";
// public static boolean IS_DEBUG = true;
// public static String VIDEO_SHARE_URL = "http://uat.kf.ai:9099/#/shareVideo?type=_type&id="; //uat 学习视频分享链接 type(课程: course 直播: live)
// public static int XLR_PID = 239; //小绿人商家id
// public static String SCHEME_9099 = "http://dev.kf.ai:9099/#/";
public static String ENVIROMENT = "debug";
public static String PHOTO = "dev";
public static int LOG_LEVEL = LogUtils.LEVEL_ALL;
public static String BASE_URL = "http://47.94.101.239:3112";
public static String WEB_SOP = "http://47.94.101.239:9004/#/sop";
public static String CHECK_MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manyServiceResult";
public static String MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manySop";
public static String WEB_SOP_DETAIL = "http://47.94.101.239:9004/#/sopdetail";
public static String WEB_ZHI_SHI = "http://47.94.101.239:9004/#/detail";
public static final String UP_PHOTO = "/file/uploadMore?targetPath=dev/sp/mobile/android/business/checkApply";
public static final String UP_VIDEO = "/file/uploadVideoOne?targetPath=dev/video";
public static boolean IS_DEBUG = true;
public static String VIDEO_SHARE_URL = "http://uat.kf.ai:9099/#/shareVideo?type=_type&id="; //uat 学习视频分享链接 type(课程: course 直播: live)
public static int XLR_PID = 239; //小绿人商家id
public static String SCHEME_9099 = "http://dev.kf.ai:9099/#/";
/**
......@@ -85,21 +85,21 @@ public class Constants {
/**
* 正式环境.
*/
public static String ENVIROMENT = "release";
public static String PHOTO = "online";
public static int LOG_LEVEL = LogUtils.LEVEL_OFF;
public static String BASE_URL = "https://mobile.dayuspm.com";
public static String WEB_SOP = "https://sop.kf.ai/#/sop";
public static String WEB_SOP_DETAIL = "https://sop.kf.ai/#/sopdetail";
public static String WEB_ZHI_SHI = "https://sop.kf.ai/#/detail";
public static String CHECK_MULTI_WEB_SOP = "https://sop.kf.ai/#/manyServiceResult";
public static String MULTI_WEB_SOP = "https://sop.kf.ai/#/manySop";
public static final String UP_PHOTO = "/file/uploadMore?targetPath=online/sp/mobile/android/business/checkApply";
public static final String UP_VIDEO = "/file/uploadVideoOne?targetPath=online/video";
public static boolean IS_DEBUG = false;
public static String VIDEO_SHARE_URL = "http://app.dl.kf.ai/ext/#/shareVideo?type=_type&id="; //学习视频分享链接 type(课程: course 直播: live)
public static int XLR_PID = 1936; //小绿人商家id
public static String SCHEME_9099 = "http://app.dl.kf.ai/ext/#/";
// public static String ENVIROMENT = "release";
// public static String PHOTO = "online";
// public static int LOG_LEVEL = LogUtils.LEVEL_OFF;
// public static String BASE_URL = "https://mobile.dayuspm.com";
// public static String WEB_SOP = "https://sop.kf.ai/#/sop";
// public static String WEB_SOP_DETAIL = "https://sop.kf.ai/#/sopdetail";
// public static String WEB_ZHI_SHI = "https://sop.kf.ai/#/detail";
// public static String CHECK_MULTI_WEB_SOP = "https://sop.kf.ai/#/manyServiceResult";
// public static String MULTI_WEB_SOP = "https://sop.kf.ai/#/manySop";
// public static final String UP_PHOTO = "/file/uploadMore?targetPath=online/sp/mobile/android/business/checkApply";
// public static final String UP_VIDEO = "/file/uploadVideoOne?targetPath=online/video";
// public static boolean IS_DEBUG = false;
// public static String VIDEO_SHARE_URL = "http://app.dl.kf.ai/ext/#/shareVideo?type=_type&id="; //学习视频分享链接 type(课程: course 直播: live)
// public static int XLR_PID = 1936; //小绿人商家id
// public static String SCHEME_9099 = "http://app.dl.kf.ai/ext/#/";
/**
......
......@@ -134,6 +134,27 @@ public class PictrueUtils {
});
}
public static void showOriginPicDialog(Activity activity) {
String[] mPerArr = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE};
MPermissionUtils.requestPermissionsResult(activity, 1, mPerArr, new MPermissionUtils.OnPermissionListener() {
@SuppressLint("CheckResult")
@Override
public void onPermissionGranted() {
PictureSelectionModel selector = PictureSelector.create(activity)
.openGallery(SelectMimeType.ofImage())//全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo()
.setImageEngine(GlideEngine.createGlideEngine())
.setImageSpanCount(4)
.setMaxSelectNum(1)
.setSelectionMode(SelectModeConfig.MULTIPLE);
selector.forResult(PictureConfig.CHOOSE_REQUEST);
}
@Override
public void onPermissionDenied() {
}
});
}
public static void showPicDialogs(Activity activity,int maxImgCout) {
PictureSelectionModel selector = PictureSelector.create(activity)
.openGallery(SelectMimeType.ofImage())//全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo()
......@@ -177,4 +198,5 @@ public class PictrueUtils {
}
return path;
}
}
......@@ -57,6 +57,8 @@ public class UtilsDate {
// 格式:年-月
public static final String MONTG_DATE_FORMAT = "yyyy-MM";
// 格式:x月x日
public static final String MON_DAY_FORMAT = "M月d日";
// 年的加减
public static final int SUB_YEAR = Calendar.YEAR;
......@@ -1472,6 +1474,21 @@ public class UtilsDate {
return formatDate(l, destPattern);
}
public static String changeFormat(String date, String srcPattern, String destPattern, boolean showToday, boolean
showTomorrow)
throws ParseException {
if (showToday && IsToday(date)){
return "今天";
}
if (showTomorrow && IsNextday(date)){
return "明天";
}
long l = parseDate(date, srcPattern);
return formatDate(l, destPattern);
}
/**
* for example : yyyy-MM-dd HH:mm:ss
*
......
......@@ -223,6 +223,7 @@
<string name="modify_appointment_time">修改预约时间</string>
<string name="have_go_on">我已出发</string>
<string name="begain_server">开始服务</string>
<string name="receive_now">马上接单</string>
<string name="process_order">处理工单</string>
<string name="check_upon_delivery">等待验收</string>
<string name="order_finish">已完成</string>
......
......@@ -18,6 +18,17 @@ public class LearnTabBean {
private int totalProviderCourses;
private String gptUrl;
public int getEnterKnowledge() {
return enterKnowledge;
}
public void setEnterKnowledge(int enterKnowledge) {
this.enterKnowledge = enterKnowledge;
}
private int enterKnowledge;
public String getGptUrl() {
return gptUrl;
}
......
......@@ -100,10 +100,17 @@ public class HomeLearnFragment extends BaseFragment<SImplePresenter, FragmentHom
Api.getService(LearnService.class).getLearTabNum(mUserId).compose(Api.applySchedulers())
.subscribe(mPresenter.baseObserver(data -> {
tabBean = data;
String url = data.getPaperListUrl() + "?accountId=" + mUserInfo.getAccountId() + "&token=" + mUserInfo.getToken();
webFragment.setUrl(url);
commeWebViewFragment.setUrl(data.getGptUrl() + "?accountId=" + mUserInfo.getAccountId() + "&token=" + mUserInfo.getToken());
if (data.getEnterKnowledge() == 1) {
if (list_fragments.contains(commeWebViewFragment))
{
list_fragments.remove(commeWebViewFragment);
list_fragments.add(KnowledgeCenterFragment.newInstance());
}
} else {
String url = data.getPaperListUrl() + "?accountId=" + mUserInfo.getAccountId() + "&token=" + mUserInfo.getToken();
webFragment.setUrl(url);
commeWebViewFragment.setUrl(data.getGptUrl() + "?accountId=" + mUserInfo.getAccountId() + "&token=" + mUserInfo.getToken());
}
setTabNum();
}));
}
......@@ -290,15 +297,15 @@ public class HomeLearnFragment extends BaseFragment<SImplePresenter, FragmentHom
}
Observable.timer(500, TimeUnit.MILLISECONDS).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()).subscribe(aLong -> {
if (data.isEmpty()) {
mBind.notice.setVisibility(View.GONE);
} else {
mBind.notice.setVisibility(View.VISIBLE);
}
mBind.notice.setFocusable(true);
mBind.notice.requestFocus();
mBind.notice.setText(tip.toString());
});
if (data.isEmpty()) {
mBind.notice.setVisibility(View.GONE);
} else {
mBind.notice.setVisibility(View.VISIBLE);
}
mBind.notice.setFocusable(true);
mBind.notice.requestFocus();
mBind.notice.setText(tip.toString());
});
}));
}
......
......@@ -72,6 +72,15 @@ public class Order implements Serializable{
private double receiveOrderCommission;
private int source;
private String finishedDays;
private String referenceTime;
public String getReferenceTime() {
return referenceTime;
}
public void setReferenceTime(String referenceTime) {
this.referenceTime = referenceTime;
}
public String getFinishedDays() {
return finishedDays;
......
package com.dayu.order.presenter.checkintakephoto;
import com.dayu.base.ui.presenter.BasePresenter;
import com.dayu.common.BaseView;
public interface CheckInTakePhotoContract {
interface View extends BaseView {
void selectPhoto();
String getPhotoPath();
void uploadPhotoSuccess(String photoUrl);
}
abstract class Presenter extends BasePresenter<CheckInTakePhotoContract.View> {
public abstract void selectPhoto();
public abstract void submit();
}
}
package com.dayu.order.presenter.checkintakephoto;
import android.text.TextUtils;
import com.dayu.base.api.BaseApiFactory;
import com.dayu.common.Constants;
public class CheckInTakePhotoPresenter extends CheckInTakePhotoContract.Presenter {
@Override
public void onAttached() {
}
@Override
public void selectPhoto(){
mView.selectPhoto();
}
@Override
public void submit(){
if (mView.getPhotoPath().isEmpty()){
mView.showToast("请先选择照片");
return;
}
BaseApiFactory.uploadPhotoOne(BaseApiFactory.packPhoto(mView.getPhotoPath()), Constants.PHOTO + "/order/clockIn", "yyMM")
.subscribe(this.baseObserver(img -> {
String photoUrl = img;
mView.uploadPhotoSuccess(photoUrl);
}));
}
}
......@@ -29,6 +29,13 @@ public interface OrderDetailClockContract {
void setDatas(OrderDetail detail);
void setOrderPhoneNum(List<String> info);
void showVerifyDialog(String code, String message, String data);
void showNoCashDialog(String message);
void showStudyDialog(String message);
}
abstract class Presenter extends BaseListPresenter<OrderDetailClockContract.View> {
......
......@@ -19,11 +19,21 @@ import com.dayu.order.common.OrderConstant;
import com.dayu.order.ui.activity.CheckContentActivity;
import com.dayu.order.ui.activity.LogisticsInfoActivity;
import com.dayu.order.ui.activity.SopWebViewActivity;
import com.dayu.provider.event.RefreshApoiment;
import com.dayu.provider.event.RefreshTab;
import com.dayu.provider.event.SwtichOrderFragment;
import com.dayu.utils.ToastUtils;
import com.dayu.utils.UIUtils;
import com.dayu.utils.UserManager;
import org.greenrobot.eventbus.EventBus;
import java.util.List;
import java.util.concurrent.TimeUnit;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
/**
* Created by luofan
......@@ -38,6 +48,11 @@ public class OrderDetailClockPresenter extends OrderDetailClockContract.Presente
private OrderDetail mDetails;
private Disposable mDisPosable;
public int getmUserId() {
return mUserId;
}
@Override
......@@ -172,6 +187,60 @@ public class OrderDetailClockPresenter extends OrderDetailClockContract.Presente
}
public boolean getIsShowBtn() {
return isShowBtn;
// return isShowBtn;
//隐藏所有情况的按钮
return false;
}
public void receiveOrder(int orders, int engineer, String appointmentTime , int createdSource) {
mView.showDialog();
OrderApiFactory.verifyOrder(orders + "", mUserId).subscribe(baseObserver(data -> {
if (data.isSuccess()) {
receive(orders, engineer, appointmentTime, createdSource);
} else {
mView.showVerifyDialog(data.getSubCode(), data.getMsg(), data.getData());
}
}, responeThrowable -> {
}));
}
public void receive(int orders, int engineer, String appointmentTime , int createdSource) {
OrderApiFactory.receiveOrder(orders, engineer).subscribe(baseObserverByU(
aBoolean -> {
// MobclickAgent.onEvent(BaseApplication.getContext(), "get_serviceOrder");
mView.showToast(R.string.receive_order_success);
receiveOrderSuccess(orders, appointmentTime, createdSource);
}, responeThrowable -> {
if ("ORDER0002".equals(responeThrowable.subCode) || "ORDER0003".equals(responeThrowable.subCode)) {
refresh();
} else if ("ORDER0042".equals(responeThrowable.subCode)) {
mView.showNoCashDialog(responeThrowable.message);
} else if ("ORDER0046".equals(responeThrowable.subCode)) {
mView.showStudyDialog(responeThrowable.message);
}
}));
}
public void receiveOrderSuccess(int orders, String appointmentTime, int createdSource) {
mDisPosable = Observable.timer(300, TimeUnit.MILLISECONDS).
observeOn(AndroidSchedulers.mainThread()).
subscribe(aLong -> {
if (createdSource == 7 || createdSource == 8){
//按天用工单马上接单,跳转到待服务列表,不提示【马上预约】弹窗
EventBus.getDefault().post(new SwtichOrderFragment(2));
}else {
EventBus.getDefault().post(new SwtichOrderFragment(1));
}
EventBus.getDefault().post(new RefreshTab(0));
// EventBus.getDefault().post(new RefreshReceivingNum(num < 0 ? 0 : num));
EventBus.getDefault().post(new RefreshApoiment(-1));
// if (!TextUtils.isEmpty(appointmentTime) && createdSource != 7 && createdSource != 8) { //订单详情页接单则不弹框提示.
// mView.showOrderDialog(orders, appointmentTime);
// }
mDisPosable.dispose();
mView.dumpBack();
});
}
}
......@@ -2,13 +2,25 @@ package com.dayu.order.presenter.orderdoing;
import static com.dayu.utils.UIUtils.getString;
import android.Manifest;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.location.Address;
import android.os.Bundle;
import androidx.core.content.ContextCompat;
import androidx.databinding.ObservableField;
import androidx.fragment.app.Fragment;
import com.dayu.base.api.Api;
import com.dayu.common.BaseApplication;
import com.dayu.common.Constants;
import com.dayu.event.UserInfo;
import com.dayu.location.base.LocationUtils1;
import com.dayu.order.R;
import com.dayu.order.api.OrderApiFactory;
import com.dayu.order.api.OrderService;
......@@ -16,26 +28,34 @@ import com.dayu.order.api.protocol.Order;
import com.dayu.order.api.protocol.Spu;
import com.dayu.order.api.protocol.data.AddDialRecordData;
import com.dayu.order.common.OrderConstant;
import com.dayu.order.ui.activity.CheckInTakePhotoActivity;
import com.dayu.order.ui.activity.MultiProcessOrderActivity;
import com.dayu.order.ui.activity.MultipleProcessActivity;
import com.dayu.order.ui.activity.OrderDetailsActivity;
import com.dayu.order.ui.activity.OrderDetailsClockActivity;
import com.dayu.order.ui.activity.SopWebViewActivity;
import com.dayu.order.ui.fragment.OrderDoneFragment;
import com.dayu.order.ui.fragment.OrderSecondTabFragment;
import com.dayu.order.ui.fragment.OrderThreeTabFragment;
import com.dayu.provider.event.RefreshServe;
import com.dayu.provider.event.RefreshTab;
import com.dayu.utils.AppManager;
import com.dayu.utils.ToastUtils;
import com.dayu.utils.UIUtils;
import com.dayu.utils.UserManager;
import com.dayu.utils.UtilsDate;
import com.dayu.widgets.CustomDialog;
import com.tbruyelle.rxpermissions2.RxPermissions;
import org.greenrobot.eventbus.EventBus;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import io.reactivex.Observable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import okhttp3.MediaType;
import okhttp3.RequestBody;
......@@ -53,13 +73,44 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter {
UserInfo userInfo;
public int sopOrderVersion;
private int position = 0;
private int checkInPosition;
private Activity mActivity;
private int checkinOrderId;
//接收打卡拍照成功通知
private BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Fragment fragment = (Fragment) mView;
if (intent.getAction().equals(CheckInTakePhotoActivity.TAKE_PHOTO_FINISH_BROADCAST) && (mView instanceof OrderSecondTabFragment) ) {
String photoUrl = intent.getStringExtra("photoUrl");
//打卡获取到图片链接,下一步获取定位信息
mView.showDialog();
getLocation(checkinOrderId, photoUrl);
// clockIn(checkinOrderId)
// .observeOn(AndroidSchedulers.mainThread())
// .subscribe(baseObserver(aBoolean -> {
// ToastUtils.showShortToast("打卡成功");
// setPosition(position);
// EventBus.getDefault().post(new RefreshServe(1));
// }, responeThrowable -> {
//
// }));
}
}
};
@Override
public void onAttached() {
userInfo = UserManager.getInstance().getUser();
mUserId = Integer.parseInt(userInfo.getAccountId());
mSiteId = userInfo.getSiteId();
mState = mView.getState();
BaseApplication.getContext().registerReceiver(receiver, new IntentFilter(CheckInTakePhotoActivity.TAKE_PHOTO_FINISH_BROADCAST));
}
@Override
......@@ -250,14 +301,74 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter {
}
public Observable<Boolean> clockIn(int id) {
public void takePhoto(int orderId, int position){
checkinOrderId = orderId;
checkInPosition = position;
Bundle bundle = new Bundle();
mView.startActivityForReult(CheckInTakePhotoActivity.class, bundle, CheckInTakePhotoActivity.TAKE_PHOTO_CODE);
}
//打卡接口
public Observable<Boolean> clockIn(int id, String photoUrl, double latitude, double longitude) {
HashMap<String, Object> params = new HashMap<>();
params.put("orderId", id);
params.put("commentInfo", photoUrl);
params.put("latitude", latitude);
params.put("longitude", longitude);
JSONObject jsonObject = new JSONObject(params);
RequestBody body = RequestBody.create(MediaType.parse("application/json"), jsonObject.toString());
return OrderApiFactory.clockIn(body);
}
//获取定位
private void getLocation(int orderId, String photoUrl){
if (ContextCompat.checkSelfPermission(mActivity, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
LocationUtils1.getInstance(UIUtils.getContext()).setAddressCallback(new LocationUtils1.AddressCallback() {
@Override
public void onGetAddress(Address address) {
//获取定位无论成功失败,结束后调打卡接口
clockIn(checkinOrderId, photoUrl, address.getLatitude(), address.getLongitude())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(baseObserver(aBoolean -> {
ToastUtils.showShortToast("打卡成功");
setPosition(checkInPosition);
EventBus.getDefault().post(new RefreshServe(1));
}, responeThrowable -> {
}));
}
@Override
public void onGetLocation(double lat, double lng) {
}
});
} else {
clockIn(checkinOrderId, photoUrl, 0.0, 0.0)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(baseObserver(aBoolean -> {
ToastUtils.showShortToast("打卡成功");
setPosition(checkInPosition);
EventBus.getDefault().post(new RefreshServe(1));
}, responeThrowable -> {
}));
}
}
//跳转提交订单页面
public void dumpToProcess(ArrayList<Spu> spus, int position){
Bundle bundle = new Bundle();
bundle.putParcelableArrayList(OrderConstant.SPUS, spus);
bundle.putBoolean("isDaysOrder",true);
mView.startActivity(MultipleProcessActivity.class, bundle);
}
public void refreshClear() {
getOrders(mState, mUserId, mSiteId, mPage, Constants.PAGESIZE);
}
......@@ -285,4 +396,12 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter {
this.position = position;
}
public Activity getmActivity() {
return mActivity;
}
public void setmActivity(Activity mActivity) {
this.mActivity = mActivity;
}
}
......@@ -18,6 +18,8 @@ public interface ReceivingContract {
void showCashDialog( double cash,int engineer, int orders, String appointmentTime);
void showNoCashDialog(String message);
void showStudyDialog(String message);
}
abstract class Presenter extends BaseOrderPresenter<View> {
......@@ -32,6 +34,8 @@ public interface ReceivingContract {
public abstract void receiveOrderSuccess(int orders, String appointmentTime);
public abstract void receiveOrderSuccess(int orders, String appointmentTime, int createSource);
}
}
......@@ -70,6 +70,25 @@ public class ReceivingPresenter extends ReceivingContract.Presenter {
refresh();
} else if ("ORDER0042".equals(responeThrowable.subCode)) {
mView.showNoCashDialog(responeThrowable.message);
} else if ("ORDER0046".equals(responeThrowable.subCode)) {
mView.showStudyDialog(responeThrowable.message);
}
}));
}
public void receive(int orders, int engineer, String appointmentTime , int createdSource) {
OrderApiFactory.receiveOrder(orders, engineer).subscribe(baseObserverByU(
aBoolean -> {
// MobclickAgent.onEvent(BaseApplication.getContext(), "get_serviceOrder");
mView.showToast(R.string.receive_order_success);
receiveOrderSuccess(orders, appointmentTime, createdSource);
}, responeThrowable -> {
if ("ORDER0002".equals(responeThrowable.subCode) || "ORDER0003".equals(responeThrowable.subCode)) {
refresh();
} else if ("ORDER0042".equals(responeThrowable.subCode)) {
mView.showNoCashDialog(responeThrowable.message);
} else if ("ORDER0046".equals(responeThrowable.subCode)) {
mView.showStudyDialog(responeThrowable.message);
}
}));
}
......@@ -82,7 +101,7 @@ public class ReceivingPresenter extends ReceivingContract.Presenter {
if (createdSource == 4 && cash > 0) {
mView.showCashDialog(cash, engineer, orders, appointmentTime);
} else {
receive(orders, engineer, appointmentTime);
receive(orders, engineer, appointmentTime, createdSource);
}
} else {
mView.showVerifyDialog(data.getSubCode(), data.getMsg(), data.getData());
......@@ -119,6 +138,31 @@ public class ReceivingPresenter extends ReceivingContract.Presenter {
}
@Override
public void receiveOrderSuccess(int orders, String appointmentTime, int createdSource) {
int num = mTotalRows - 1;
getReceivingData();
// mView.dumpBack();
mDisPosable = Observable.timer(300, TimeUnit.MILLISECONDS).
observeOn(AndroidSchedulers.mainThread()).
subscribe(aLong -> {
if (createdSource == 7 || createdSource == 8){
//按天用工单马上接单,跳转到待服务列表,不提示【马上预约】弹窗
EventBus.getDefault().post(new SwtichOrderFragment(2));
}else {
EventBus.getDefault().post(new SwtichOrderFragment(1));
}
EventBus.getDefault().post(new RefreshTab(0));
// EventBus.getDefault().post(new RefreshReceivingNum(num < 0 ? 0 : num));
EventBus.getDefault().post(new RefreshApoiment(-1));
if (!TextUtils.isEmpty(appointmentTime) && createdSource != 7 && createdSource != 8) { //订单详情页接单则不弹框提示.
mView.showOrderDialog(orders, appointmentTime);
}
mDisPosable.dispose();
});
}
@Override
public void refresh() {
mPage = 1;
getReceivingData();
......@@ -161,6 +205,7 @@ public class ReceivingPresenter extends ReceivingContract.Presenter {
public void dumpDetailClock(int orderId) {
Bundle bundle = new Bundle();
bundle.putInt(Constants.ORDER_ID, orderId);
bundle.putBoolean(Constants.IS_SHOW_BTN,true);
mView.startActivity(OrderDetailsClockActivity.class, bundle);
}
}
package com.dayu.order.ui.activity;
import android.Manifest;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.text.TextUtils;
import android.view.View;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.order.R;
import com.dayu.order.databinding.ActivityCheckInTakePhotoLayoutBinding;
import com.dayu.order.presenter.checkintakephoto.CheckInTakePhotoContract;
import com.dayu.order.presenter.checkintakephoto.CheckInTakePhotoPresenter;
import com.dayu.utils.GlideImageLoader;
import com.dayu.utils.MPermissionUtils;
import com.dayu.utils.PictrueUtils;
import com.luck.picture.lib.basic.PictureSelector;
import com.luck.picture.lib.config.PictureConfig;
import com.luck.picture.lib.entity.LocalMedia;
import java.util.List;
public class CheckInTakePhotoActivity extends BaseActivity<CheckInTakePhotoPresenter, ActivityCheckInTakePhotoLayoutBinding> implements CheckInTakePhotoContract.View {
public String photoPath = "";
public static final int TAKE_PHOTO_CODE = 700;
public static final String TAKE_PHOTO_FINISH_BROADCAST = "TAKE_PHOTO_FINISH_BROADCAST";
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
switch (requestCode) {
case PictureConfig.CHOOSE_REQUEST:
List<LocalMedia> mSelectList = PictureSelector.obtainSelectorList(data);
if (mSelectList != null) {
photoPath = mSelectList.get(0).getRealPath();
GlideImageLoader.loadDrawable(this, photoPath, mBind.photo);
mBind.cameraButton.setVisibility(View.GONE);
mBind.selectPhoto.setVisibility(View.VISIBLE);
}
break;
}
}
}
public void selectPhoto(){
String[] mPerArr = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE};
MPermissionUtils.requestPermissionsResult(mActivity, 1, mPerArr, new MPermissionUtils.OnPermissionListener() {
@SuppressLint("CheckResult")
@Override
public void onPermissionGranted() {
PictrueUtils.showOriginPicDialog(CheckInTakePhotoActivity.this);
}
@Override
public void onPermissionDenied() {
}
});
}
public void uploadPhotoSuccess(String photoUrl){
//照片上传成功,返回上一页面调打卡接口
if (!TextUtils.isEmpty(photoUrl)){
Intent intent = new Intent();
intent.putExtra("photoUrl", photoUrl);
setResult(RESULT_OK, intent);
finish();
}
}
@Override
public int getLayoutId() {
return R.layout.activity_check_in_take_photo_layout;
}
@Override
public void initView() {
mBind.titleClose.setOnClickListener(v -> onBackPressed());
}
@Override
public void setPresenter() {
mBind.setPresenter(mPresenter);
}
@Override
public String getPhotoPath() {
return photoPath;
}
}
......@@ -102,6 +102,10 @@ public class MultipleProcessActivity extends BaseActivity<MultipleProcessPresent
public void initView() {
path = mActivity.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS) + "/dayu/image/signature.png";
mBind.tvTitle.setText(getString(R.string.submit_order));
if (getBundle().getBoolean("isDaysOrder")){
//按天用工单,修改UI展示
mBind.recyclerView.setViewType(R.layout.item_multi_process_order_day);
}
mBind.recyclerView.mCoreAdapter.addFooterViewType(R.layout.item_multi_process_foot, null);
View view = LayoutInflater.from(mActivity).inflate(R.layout.item_multi_process_foot, null);
mBind.recyclerView.mCoreAdapter.addFootViwe(view, R.layout.item_multi_process_foot);
......
......@@ -83,4 +83,9 @@ public class ReceivingActivity extends BaseActivity<ReceivingPresenter, Activity
public void showNoCashDialog(String message) {
}
@Override
public void showStudyDialog(String message) {
}
}
......@@ -38,12 +38,13 @@ public class OrderFirstTabFragment extends BaseFragment<OrderDoingPresenter, Fra
mAdapter.initPresenter(mPresenter);
mBind.recyclerView.setAdapter(mAdapter);
mPresenter.refresh();
mPresenter.setmActivity(getActivity());
EventBus.getDefault().register(this);
mBind.recyclerView.setOnItemClickListener(new OnItemClickListener<Order, FragmentOrderdoingItemBinding>() {
@Override
public void OnItemClick(Order item, FragmentOrderdoingItemBinding bind) {
if (7 == item.getSource()){
if (7 == item.getSource() || 8 == item.getSource()){
mPresenter.dumpDetailClock(item.getId());
}else{
mPresenter.dumpDetail(item.getId());
......
......@@ -36,7 +36,7 @@ public class OrderFourTabFragment extends BaseFragment<OrderDoingPresenter, Frag
mBind.recyclerView.setOnItemClickListener(new OnItemClickListener<Order,FragmentOrderCancleItemBinding>() {
@Override
public void OnItemClick(Order item, FragmentOrderCancleItemBinding bind) {
if (7 == item.getSource()){
if (7 == item.getSource() || 8 == item.getSource()){
mPresenter.dumpDetailClock(item.getId());
}else{
mPresenter.dumpDetail(item.getId());
......
......@@ -24,6 +24,7 @@ import com.dayu.provider.event.RefreshApoiment;
import com.dayu.provider.event.RefreshEvent;
import com.dayu.provider.event.TakeOrderSuccessEvent;
import com.dayu.provider.router.RouterPath;
import com.dayu.usercenter.ui.activity.BusinessDetailActivity;
import com.dayu.utils.LogUtils;
import com.dayu.utils.ProgressUtil;
import com.dayu.utils.ToastUtils;
......@@ -48,6 +49,8 @@ public class OrderReceivingFragment extends BaseFragment<ReceivingPresenter, Fra
ReceivingContract.View {
private OrderAdapter mAdapter;
private Order currentItem;
@Override
public int getLayoutId() {
return R.layout.fragment_commom_recycle;
......@@ -79,8 +82,8 @@ public class OrderReceivingFragment extends BaseFragment<ReceivingPresenter, Fra
if (4 == item.getSource() && item.getReceiveOrderCommission() > 0) {
showCashDialog(item.getReceiveOrderCommission(), mUserId, item.getId(), item.getAppointmentTime());
} else {
if (7 == item.getSource()){
mPresenter.dumpDetailClock(item.getId());
if (7 == item.getSource() || 8 == item.getSource()){
mPresenter.dumpDetailClock (item.getId());
}else{
mPresenter.dumpDetail(item.getId());
}
......@@ -104,6 +107,7 @@ public class OrderReceivingFragment extends BaseFragment<ReceivingPresenter, Fra
if (view.getId() == R.id.item_text_phone) {
showDialog();
Order order = (Order) adapter.getItem(position);
currentItem = order;
OrderApiFactory.verifyOrder(order.getId() + "", mUserId).subscribe(mPresenter.baseObserver(bean -> {
if (bean.isSuccess()) {
Api.getService(APIService.class).getAddressInfo(mUserId).compose(Api.applySchedulers())
......@@ -127,6 +131,7 @@ public class OrderReceivingFragment extends BaseFragment<ReceivingPresenter, Fra
}));
} else if (view.getId() == R.id.redeploy) {
Order order = (Order) adapter.getItem(position);
currentItem = order;
OrderApiFactory.verifyOrder(order.getId() + "", mUserId).subscribe(mPresenter.baseObserver(bean -> {
if (bean.isSuccess()) {
Bundle bundle = new Bundle();
......@@ -201,9 +206,11 @@ public class OrderReceivingFragment extends BaseFragment<ReceivingPresenter, Fra
} else if (code.equals("STATISTIC0012")) { //没有相应技能
buttonStr = "马上去增加技能";
} else if (code.equals("STATISTIC0013")) { //没有设置服务区域
buttonStr = "马上去修改地区";
// buttonStr = "马上去修改地区";
buttonStr = "好的";
} else if (code.equals("STATISTIC0014")) { //城市不匹配
buttonStr = "马上去修改地区";
// buttonStr = "马上去修改地区";
buttonStr = "好的";
} else if (code.equals("STATISTIC0015")) { //没有授权认证
buttonStr = "马上去申请认证";
} else if (code.equals("STATISTIC0016")) { //没有权限接
......@@ -226,10 +233,19 @@ public class OrderReceivingFragment extends BaseFragment<ReceivingPresenter, Fra
} else if (code.equals("STATISTIC0014")) { //城市不匹配
ARouter.getInstance().build(RouterPath.PATH_BUSINESS_TYPE).navigation();
} else if (code.equals("STATISTIC0015")) { //没有授权认证
// Bundle bundle1 = new Bundle();
// bundle1.putString(Constants.URL, data + "&accountId=" + mUserId + "&token=" + mUserInfo.getToken());
// bundle1.putString(Constants.TITLE, "商家详情");
// ARouter.getInstance().build(RouterPath.PATH_WEBVIEW).withBundle(Constants.BUNDLE, bundle1).navigation();
Bundle bundle1 = new Bundle();
bundle1.putString(Constants.URL, data + "&accountId=" + mUserId + "&token=" + mUserInfo.getToken());
bundle1.putString(Constants.TITLE, "商家详情");
ARouter.getInstance().build(RouterPath.PATH_WEBVIEW).withBundle(Constants.BUNDLE, bundle1).navigation();
int licenceAuthorityId = currentItem.getCreateProviderId();
bundle1.putInt("licenceAuthorityId",licenceAuthorityId);
bundle1.putInt("mUserId",mUserId);
Intent intent = new Intent(mActivity, BusinessDetailActivity.class);
intent.putExtra(Constants.BUNDLE, bundle1);
startActivity(intent);
} else if (code.equals("STATISTIC0016")) { //没有权限接
}
......@@ -271,6 +287,26 @@ public class OrderReceivingFragment extends BaseFragment<ReceivingPresenter, Fra
dialog.show();
}
@Override
public void showStudyDialog(String message) {
CustomDialog dialog = new CustomDialog(mActivity, R.style.CustomDialog, message,
(dialog1, confirm) -> {
if (confirm) {
Bundle bundle1 = new Bundle();
bundle1.putString(Constants.TITLE, "商家详情");
int licenceAuthorityId = currentItem.getCreateProviderId();
bundle1.putInt("licenceAuthorityId",licenceAuthorityId);
bundle1.putInt("mUserId",mUserId);
Intent intent = new Intent(mActivity, BusinessDetailActivity.class);
intent.putExtra(Constants.BUNDLE, bundle1);
startActivity(intent);
}
});
dialog.setTitle("温馨提醒")
.setPositiveButton("马上去学习");
dialog.show();
}
private void showCertificationDialog() {
CustomDialog customDialog = new CustomDialog(mActivity, R.style.CustomDialog, UIUtils.getString(R.string.engineer_identity_not_audite)
, (dialog, confirm) -> {
......
......@@ -55,11 +55,13 @@ public class OrderSecondTabFragment extends BaseFragment<OrderDoingPresenter, Fr
mAdapter = new OrderAdapter(true);
mAdapter.setViewType(R.layout.fragment_orderdoing_item);
mAdapter.initPresenter(mPresenter);
mPresenter.setmActivity(getActivity());
mBind.recyclerView.setAdapter(mAdapter);
mBind.recyclerView.setOnItemClickListener(new OnItemClickListener<Order, FragmentOrderdoingItemBinding>() {
@Override
public void OnItemClick(Order item, FragmentOrderdoingItemBinding bind) {
if (7 == item.getSource()){
if (7 == item.getSource() || 8 == item.getSource()){
mPresenter.dumpDetailClockSecond(item.getId());
}else{
mPresenter.dumpDetail(item.getId());
......
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dayu.order">
......@@ -15,14 +16,17 @@
android:name=".ui.activity.SubcribeTimeActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.dayu.order.ui.activity.ReceivingActivity"
android:name=".ui.activity.ReceivingActivity"
android:screenOrientation="portrait"
android:theme="@style/Transparent" />
<activity
android:name="com.dayu.order.ui.activity.OrderRecordActivity"
android:name=".ui.activity.OrderRecordActivity"
android:screenOrientation="portrait"
android:theme="@style/Transparent" />
<activity
android:name=".ui.activity.CheckInTakePhotoActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.ProcessOrderActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />
......@@ -40,18 +44,16 @@
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.OrderDetailsActivity"
android:launchMode="singleTask"
android:windowSoftInputMode="adjustResize"
android:configChanges="orientation|screenSize|keyboardHidden"
android:launchMode="singleTask"
android:screenOrientation="portrait"
/>
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".ui.activity.OrderDetailsClockActivity"
android:launchMode="singleTask"
android:windowSoftInputMode="adjustResize"
android:configChanges="orientation|screenSize|keyboardHidden"
android:launchMode="singleTask"
android:screenOrientation="portrait"
/>
android:windowSoftInputMode="adjustResize" />
<activity
android:name=".ui.activity.ReturnPartNewActivity"
android:screenOrientation="portrait" />
......@@ -79,8 +81,8 @@
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.MultiProcessOrderActivity"
android:hardwareAccelerated="true"
android:configChanges="orientation|screenSize|keyboardHidden"
android:hardwareAccelerated="true"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.SignatureActivity"
......@@ -93,9 +95,9 @@
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.SopLocalActivity"
android:windowSoftInputMode="stateHidden|adjustPan"
android:configChanges="orientation|screenSize|keyboardHidden"
android:screenOrientation="portrait" />
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustPan" />
<activity
android:name=".ui.activity.ApplyAndRefuseActivity"
android:screenOrientation="portrait" />
......@@ -105,17 +107,14 @@
<activity
android:name=".ui.activity.OrderPartReceiveActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustPan"
/>
android:windowSoftInputMode="stateHidden|adjustPan" />
<activity
android:name=".ui.activity.OrderPartSendActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustPan"
/>
android:windowSoftInputMode="stateHidden|adjustPan" />
<activity
android:name=".ui.activity.KnowledgeDetailActivity"
android:screenOrientation="portrait"
/>
android:screenOrientation="portrait" />
</application>
</manifest>
</manifest>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="presenter"
type="com.dayu.order.presenter.checkintakephoto.CheckInTakePhotoPresenter" />
</data>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/title_close"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="@dimen/size_main_title"
android:background="#e8e8e8">
<TextView
android:id="@+id/tv_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/dp_15"
android:textColor="#333"
android:textStyle="bold"
android:text="工作现场拍照打卡记录" />
<ImageView
android:id="@+id/receiving_back"
android:src="@drawable/btn_close_black"
style="@style/title_right_image"
/>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/photo"
/>
<Button
android:id="@+id/camera_button"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:background="@drawable/icon_camera_black"
android:onClick="@{()->presenter.selectPhoto()}"/>
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="bottom"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginBottom="@dimen/dp_20"
>
<TextView
android:id="@+id/select_photo"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="40dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginTop="25dp"
android:background="@drawable/tab_blue_react"
android:gravity="center"
android:onClick="@{()->presenter.selectPhoto()}"
android:text="选择图片"
android:textStyle="bold"
android:textColor="@color/white"
android:visibility="gone"
android:textSize="16sp" />
<TextView
android:id="@+id/submit"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="40dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginTop="25dp"
android:background="@drawable/tab_blue_react"
android:gravity="center"
android:onClick="@{()->presenter.submit()}"
android:text="提交"
android:textStyle="bold"
android:textColor="@color/white"
android:textSize="16sp" />
</LinearLayout>
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -410,7 +410,6 @@
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_10"
android:background="@color/transparent" />
</RelativeLayout>
......@@ -434,6 +433,6 @@
android:text="@string/tv_work_order_four"
android:textColor="@color/cl_white"
android:textSize="@dimen/sp_16"
android:visibility="invisible"/>
android:visibility="gone"/>
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -25,7 +25,7 @@
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
......@@ -199,14 +199,44 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_14"
android:layout_weight="1"
android:layout_weight="3"
android:ellipsize="end"
android:maxLines="1"
android:text="xxxxxvvvvvvvvvvvvvvvvvvv"
android:textColor="@color/cl_home_title_text_color"
android:textSize="@dimen/size_login_hint_text"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_days_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="10dp"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:text="3天"
android:visibility="gone"
android:layout_weight="1"
android:textColor="@color/common_red"
android:textSize="@dimen/size_login_hint_text"
android:textStyle="bold" />
<TextView
android:id="@+id/tv_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:ellipsize="end"
android:gravity="right"
android:maxEms="7"
android:maxLines="1"
android:text="共"
android:visibility="gone"
android:textColor="@color/cl_home_title_text_color"
android:textSize="@dimen/size_login_hint_text"/>
<TextView
android:id="@+id/tv_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
......
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="item"
type="com.dayu.order.api.protocol.Spu" />
</data>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="82dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="10dp"
android:background="@color/white"
android:paddingLeft="@dimen/dp_15">
<TextView
android:id="@+id/tv_repair_type"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="@dimen/dp_20"
android:text='@{item.providerTypeName}'
android:textColor="@color/default_text_color"
android:textSize="16sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_repair_type"
android:layout_marginTop="6dp"
android:text="@{item.kaSpuName}"
android:textColor="@color/default_editext_color" />
<TextView
android:id="@+id/tv_state"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="15sp"
android:text='@{@string/order_finish}'
android:textColor="@color/bg_button"
android:textSize="@dimen/sp_14" />
<!--android:text='@{item.status==1?@string/process:@string/order_finish}'-->
</RelativeLayout>
</layout>
\ No newline at end of file
......@@ -51,4 +51,47 @@
<string name="query_str">查询</string>
<string name="query_result_count">相关联的知识共有%d条</string>
<string name="help_tool">辅助工具</string>
<string name="start_day">开始日期</string>
<!-- Strings used for fragments for navigation -->
<string name="first_fragment_label">First Fragment</string>
<string name="second_fragment_label">Second Fragment</string>
<string name="next">Next</string>
<string name="previous">Previous</string>
<string name="lorem_ipsum">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam in scelerisque sem. Mauris
volutpat, dolor id interdum ullamcorper, risus dolor egestas lectus, sit amet mattis purus
dui nec risus. Maecenas non sodales nisi, vel dictum dolor. Class aptent taciti sociosqu ad
litora torquent per conubia nostra, per inceptos himenaeos. Suspendisse blandit eleifend
diam, vel rutrum tellus vulputate quis. Aliquam eget libero aliquet, imperdiet nisl a,
ornare ex. Sed rhoncus est ut libero porta lobortis. Fusce in dictum tellus.\n\n
Suspendisse interdum ornare ante. Aliquam nec cursus lorem. Morbi id magna felis. Vivamus
egestas, est a condimentum egestas, turpis nisl iaculis ipsum, in dictum tellus dolor sed
neque. Morbi tellus erat, dapibus ut sem a, iaculis tincidunt dui. Interdum et malesuada
fames ac ante ipsum primis in faucibus. Curabitur et eros porttitor, ultricies urna vitae,
molestie nibh. Phasellus at commodo eros, non aliquet metus. Sed maximus nisl nec dolor
bibendum, vel congue leo egestas.\n\n
Sed interdum tortor nibh, in sagittis risus mollis quis. Curabitur mi odio, condimentum sit
amet auctor at, mollis non turpis. Nullam pretium libero vestibulum, finibus orci vel,
molestie quam. Fusce blandit tincidunt nulla, quis sollicitudin libero facilisis et. Integer
interdum nunc ligula, et fermentum metus hendrerit id. Vestibulum lectus felis, dictum at
lacinia sit amet, tristique id quam. Cras eu consequat dui. Suspendisse sodales nunc ligula,
in lobortis sem porta sed. Integer id ultrices magna, in luctus elit. Sed a pellentesque
est.\n\n
Aenean nunc velit, lacinia sed dolor sed, ultrices viverra nulla. Etiam a venenatis nibh.
Morbi laoreet, tortor sed facilisis varius, nibh orci rhoncus nulla, id elementum leo dui
non lorem. Nam mollis ipsum quis auctor varius. Quisque elementum eu libero sed commodo. In
eros nisl, imperdiet vel imperdiet et, scelerisque a mauris. Pellentesque varius ex nunc,
quis imperdiet eros placerat ac. Duis finibus orci et est auctor tincidunt. Sed non viverra
ipsum. Nunc quis augue egestas, cursus lorem at, molestie sem. Morbi a consectetur ipsum, a
placerat diam. Etiam vulputate dignissim convallis. Integer faucibus mauris sit amet finibus
convallis.\n\n
Phasellus in aliquet mi. Pellentesque habitant morbi tristique senectus et netus et
malesuada fames ac turpis egestas. In volutpat arcu ut felis sagittis, in finibus massa
gravida. Pellentesque id tellus orci. Integer dictum, lorem sed efficitur ullamcorper,
libero justo consectetur ipsum, in mollis nisl ex sed nisl. Donec maximus ullamcorper
sodales. Praesent bibendum rhoncus tellus nec feugiat. In a ornare nulla. Donec rhoncus
libero vel nunc consequat, quis tincidunt nisl eleifend. Cras bibendum enim a justo luctus
vestibulum. Fusce dictum libero quis erat maximus, vitae volutpat diam dignissim.
</string>
</resources>
......@@ -22,19 +22,26 @@ public class SelfLicenceAdapter extends CoreAdapter<SelfLicenceBean, ItemUserLic
GlideImageLoader.loadFit(mContext, holder.ivImg, item.getUrl(), R.drawable.icon_img_default);
holder.tvTitle.setText("【证书名称】 : "+item.getName());
// holder.tvCompany.setText(getStatusDesc(item.getStatus()));
holder.tvCompany.setText(" 颁机构: " + item.getProviderName());
holder.tvCompany.setText(" 颁机构: " + item.getProviderName());
if (item.getStatus() == 3) {
holder.tvCompany.setTextColor(mContext.getResources().getColor(R.color.common_red));
} else {
holder.tvCompany.setTextColor(mContext.getResources().getColor(R.color.color_69));
}
if (item.getStatus() == 1 || item.getStatus() == 3){
holder.tvLicenceStatus.setVisibility(View.VISIBLE);
holder.tvLicenceStatus.setText(getStatusDesc(item.getStatus()));
}else {
holder.tvLicenceStatus.setVisibility(View.GONE);
}
holder.ivArrow.setVisibility(View.GONE);
}
private String getStatusDesc(int status) {
switch (status) {
case 1:
return "待审核";
return "平台审核中";
case 2:
return "审核通过";
case 3:
......
......@@ -13,6 +13,7 @@ import com.dayu.usercenter.model.BusinessDetailData;
import com.dayu.usercenter.model.ChangeNickData;
import com.dayu.usercenter.model.CoursesVideoData;
import com.dayu.usercenter.model.EditBankData;
import com.dayu.usercenter.model.ExamListData;
import com.dayu.usercenter.model.FinishedStudyData;
import com.dayu.usercenter.model.LicencePayData;
import com.dayu.usercenter.model.SaveSceneData;
......@@ -444,6 +445,13 @@ public interface UserService2 {
/**
* 商家详情-在线考试
*/
@GET(Constants.API_7900+"/paper/accountId/{accountId}")
Observable<BaseResponse<ExamListData>> getExamList(@Path("accountId") int accountId, @Query("accountId") int accountId1, @Query("providerId") int providerId, @Query("page") int page, @Query("pageSize") int pageSize);
/**
* 申请商家认证
* @param finishedStudyData
* @return
......
package com.dayu.usercenter.model;
import java.util.ArrayList;
import java.util.List;
public class ExamListData {
ArrayList<Exam> data;
public void setData(ArrayList<Exam> data) {
this.data = data;
}
public ArrayList<Exam> getData() {
return data;
}
public class Exam{
private String title;
private String detailUrl;
public void setTitle(String name) {
this.title = name;
}
public String getTitle() {
return title;
}
public String getDetailUrl() {
return detailUrl;
}
public void setDetailUrl(String detailUrl) {
this.detailUrl = detailUrl;
}
}
}
package com.dayu.usercenter.model;
import com.dayu.usercenter.model.bean.ServiceSaveTypeBean;
import java.util.List;
public class UploadSelfLicenceData {
public int engineerId ;
public String engineerName;
......@@ -9,6 +13,9 @@ public class UploadSelfLicenceData {
public int status = 1 ;
public int id;
public List<ServiceSaveTypeBean> labelList;
public UploadSelfLicenceData() {
}
......@@ -25,4 +32,13 @@ public class UploadSelfLicenceData {
this.name = name;
this.url = url;
}
public UploadSelfLicenceData(int engineerId, String engineerName, String engineerMobile, String name, String url, List<ServiceSaveTypeBean>labelList) {
this.engineerId = engineerId;
this.engineerName = engineerName;
this.engineerMobile = engineerMobile;
this.name = name;
this.url = url;
this.labelList = labelList;
}
}
......@@ -63,4 +63,8 @@ public class ServiceSaveBean {
public ServiceSaveBean(String lowestPriceDay){
this.lowestPriceDay = lowestPriceDay;
}
public ServiceSaveBean(List<Long> labelIds){
this.labelIds = labelIds;
}
}
package com.dayu.usercenter.model.bean;
public class ServiceSaveTypeBean {
private long labelId;
private String labelName;
public ServiceSaveTypeBean(long labelId, String labelName){
this.labelId = labelId;
this.labelName = labelName;
}
public long getLabelId() {
return labelId;
}
public void setLabelId(long labelId) {
this.labelId = labelId;
}
public String getLabelName() {
return labelName;
}
public void setLabelName(String labelName) {
this.labelName = labelName;
}
}
package com.dayu.usercenter.ui.activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
......@@ -11,6 +13,7 @@ import com.chad.library.adapter.base.BaseViewHolder;
import com.dayu.base.api.APIService;
import com.dayu.base.api.Api;
import com.dayu.base.ui.activity.BaseActivity;
import com.dayu.common.Constants;
import com.dayu.event.CheckPayData;
import com.dayu.event.PayData;
import com.dayu.event.StudyCourseData;
......@@ -21,18 +24,22 @@ import com.dayu.usercenter.api.UserService2;
import com.dayu.usercenter.databinding.ActivityBusinessDetailBinding;
import com.dayu.usercenter.model.BusinessDetailData;
import com.dayu.usercenter.model.CoursesVideoData;
import com.dayu.usercenter.model.ExamListData;
import com.dayu.usercenter.model.FinishedStudyData;
import com.dayu.usercenter.presenter.businessdetail.BusinessDetailContract;
import com.dayu.usercenter.presenter.businessdetail.BusinessDetailPresenter;
import com.dayu.utils.CommonUtils;
import com.dayu.utils.GlideImageLoader;
import com.dayu.utils.UIUtils;
import com.dayu.utils.UserManager;
import com.dayu.widgets.CustomDialog;
import com.dayu.widgets.MyJzvdStd;
import java.util.ArrayList;
import java.util.List;
import cn.jzvd.Jzvd;
import retrofit2.http.Path;
/**
* 商家详情
......@@ -43,6 +50,9 @@ public class BusinessDetailActivity extends BaseActivity<BusinessDetailPresenter
private String currentPrice;
private List<CoursesVideoData> videoDataList;
private CoursesVideoAdapter coursesVideoAdapter;
private ArrayList<ExamListData.Exam> examDataList;
private CoursesVideoAdapter examListAdapter;
private int licenceAuthorityId;
private int mUserId;
......@@ -70,6 +80,8 @@ public class BusinessDetailActivity extends BaseActivity<BusinessDetailPresenter
getVideo(licenceAuthorityId, mUserId);
getExamList(licenceAuthorityId, mUserId);
mBind.rlClick.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
......@@ -333,6 +345,64 @@ public class BusinessDetailActivity extends BaseActivity<BusinessDetailPresenter
}));
}
/**
* 在线考试
* @param licenceAuthorityId
* @param mUserId
*/
private void getExamList(int licenceAuthorityId, int mUserId) {
Api.getService(UserService2.class).getExamList(mUserId,mUserId, licenceAuthorityId, 1, 5).compose(Api.applySchedulers())
.subscribe(mPresenter.baseObserver(data -> {
ArrayList<ExamListData.Exam> examList = data.getData();
if (!examList.isEmpty()){
mBind.rlExamTitle.setVisibility(View.VISIBLE);
mBind.rlExam.setVisibility(View.VISIBLE);
examDataList = new ArrayList<ExamListData.Exam>();
for (int i = 0; i < 5; i++) {
//在线考试列表最多展示5个
if (examList.size() > i){
examDataList.add(examList.get(i));
}
}
BaseQuickAdapter<ExamListData.Exam, BaseViewHolder> mAdapter
= new BaseQuickAdapter<ExamListData.Exam, BaseViewHolder>(R.layout.item_supdata, examDataList) {
@Override
protected void convert(BaseViewHolder baseViewHolder, ExamListData.Exam exam) {
baseViewHolder.setText(R.id.tv_name_business, exam.getTitle());
baseViewHolder.setTextColor(R.id.tv_name_business, UIUtils.getColor(R.color.cl_home_button));
}
};
mAdapter.setOnItemClickListener((adapter,view,pos)->{
ExamListData.Exam exam = examDataList.get(pos);
String url = exam.getDetailUrl() +"&token=" + UserManager.getInstance().getUser().getToken();
Intent intent = new Intent(BusinessDetailActivity.this, CommeWebViewActivity.class);
Bundle bundle = new Bundle();
bundle.putString(Constants.TITLE, exam.getTitle());
bundle.putString(Constants.URL, url);
intent.putExtra(Constants.BUNDLE, bundle);
startActivity(intent);
});
mBind.rlExam.setLayoutManager(new LinearLayoutManager(mActivity));
mBind.rlExam.setAdapter(mAdapter);
}else {//没有在线考试 不展示列表和标题
mBind.rlExamTitle.setVisibility(View.GONE);
mBind.rlExam.setVisibility(View.GONE);
}
}));
}
@Override
public void onPause() {
super.onPause();
......
......@@ -27,6 +27,7 @@ import com.dayu.usercenter.event.RefreshUserRecordEvent;
import com.dayu.usercenter.model.SaveSceneData;
import com.dayu.usercenter.model.bean.BusinessSceneBean;
import com.dayu.usercenter.model.bean.ServiceSaveBean;
import com.dayu.usercenter.model.bean.ServiceSaveTypeBean;
import com.dayu.usercenter.model.bean.ServiceTypeBean;
import com.dayu.utils.CommonUtils;
import com.dayu.utils.ToastUtils;
......@@ -129,15 +130,15 @@ public class BusinessTypeActivity extends BaseActivity<SImplePresenter, Activity
.subscribe(mPresenter.baseObserver(data -> {
savedTypeDatas = data.getLabels();
setTypeAdapter();
showDaySelect(data.getLowestPriceDay());
mBind.province.setText(provinceName = data.getProvinceName());
mBind.city.setText(cityName = data.getCityName());
mBind.area.setText(areaName = data.getDistrictName());
getTreeAddrData(data.getProvinceId(), 2, false);
getTreeAddrData(data.getCityId(), 3, false);
provinceId = data.getProvinceId();
cityId = data.getCityId();
areaId = data.getDistrictId();
// showDaySelect(data.getLowestPriceDay());
// mBind.province.setText(provinceName = data.getProvinceName());
// mBind.city.setText(cityName = data.getCityName());
// mBind.area.setText(areaName = data.getDistrictName());
// getTreeAddrData(data.getProvinceId(), 2, false);
// getTreeAddrData(data.getCityId(), 3, false);
// provinceId = data.getProvinceId();
// cityId = data.getCityId();
// areaId = data.getDistrictId();
}));
//服务类型数据
Api.getService(UserService2.class).getServiceType(1).compose(Api.applySchedulers())
......@@ -241,11 +242,11 @@ public class BusinessTypeActivity extends BaseActivity<SImplePresenter, Activity
private void saveType(List<Long> ids) {
if (ids.size() == 0)
return;
if (TextUtils.isEmpty(provinceName) || TextUtils.isEmpty(cityName) || TextUtils.isEmpty(areaName)) {
ToastUtils.showShortToast("请先选择城市");
return;
}
// if (TextUtils.isEmpty(provinceName) || TextUtils.isEmpty(cityName) || TextUtils.isEmpty(areaName)) {
// ToastUtils.showShortToast("请先选择城市");
// return;
//
// }
showDialog();
ServiceSaveBean saveBean = new ServiceSaveBean(
dayPrice,
......@@ -254,6 +255,7 @@ public class BusinessTypeActivity extends BaseActivity<SImplePresenter, Activity
areaId, areaName,
ids
);
Api.getService(UserService2.class).saveServiceTypeNew(saveBean, mUserId).compose(Api.applySchedulers())
.subscribe(mPresenter.baseObserver(bool -> {
ToastUtils.showShortToast(bool ? R.string.save_success : R.string.save_fail);
......
......@@ -2,7 +2,12 @@ package com.dayu.usercenter.ui.activity2;
import android.content.Intent;
import android.text.TextUtils;
import android.widget.CheckBox;
import androidx.recyclerview.widget.GridLayoutManager;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.dayu.base.api.Api;
import com.dayu.base.api.BaseApiFactory;
import com.dayu.base.ui.activity.BaseActivity;
......@@ -13,6 +18,9 @@ import com.dayu.usercenter.api.UserService2;
import com.dayu.usercenter.databinding.ActivityUploadSelfLicenceBinding;
import com.dayu.usercenter.event.UploadSelfLicenceEvent;
import com.dayu.usercenter.model.UploadSelfLicenceData;
import com.dayu.usercenter.model.bean.BusinessSceneBean;
import com.dayu.usercenter.model.bean.ServiceSaveTypeBean;
import com.dayu.usercenter.model.bean.ServiceTypeBean;
import com.dayu.utils.GlideImageLoader;
import com.dayu.utils.MediaChooseUtils;
import com.luck.picture.lib.basic.PictureSelector;
......@@ -22,6 +30,7 @@ import com.luck.picture.lib.entity.LocalMedia;
import org.greenrobot.eventbus.EventBus;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import okhttp3.MediaType;
......@@ -36,6 +45,10 @@ public class UploadSelfLicenceActivity extends BaseActivity<SImplePresenter, Act
private boolean isEdit;
int lid;
List<ServiceTypeBean> typeDatas = new ArrayList<>();
List<ServiceSaveTypeBean> selectedTypeDatas = new ArrayList<>();
BaseQuickAdapter<ServiceTypeBean, BaseViewHolder> typeAdapter;
@Override
public void setPresenter() {
......@@ -65,6 +78,36 @@ public class UploadSelfLicenceActivity extends BaseActivity<SImplePresenter, Act
});
mBind.btnUpload.setOnClickListener(view -> preSubmit());
mBind.rlImg.setOnClickListener(view -> MediaChooseUtils.chooseSigleImg(this));
initData();
}
//服务产品类型
private void setTypeAdapter() {
typeAdapter = new BaseQuickAdapter<ServiceTypeBean, BaseViewHolder>(R.layout.item_business_type, typeDatas) {
@Override
protected void convert(BaseViewHolder helper, ServiceTypeBean item) {
CheckBox cbItem = helper.getView(R.id.cb_item);
cbItem.setText(item.getName());
cbItem.setChecked(item.isSelected());
cbItem.setOnCheckedChangeListener((compoundButton, b) -> {
item.setSelected(b);
});
}
};
mBind.rvType.setLayoutManager(new GridLayoutManager(this, 2));
mBind.rvType.setAdapter(typeAdapter);
}
private void initData() {
showDialog();
//服务类型数据
Api.getService(UserService2.class).getServiceType(1).compose(Api.applySchedulers())
.subscribe(mPresenter.baseObserver(datas -> {
typeDatas = datas;
setTypeAdapter();
}, responeThrowable -> {
}));
}
private void preSubmit(){
......@@ -73,6 +116,14 @@ public class UploadSelfLicenceActivity extends BaseActivity<SImplePresenter, Act
showToast("请输入认证名称");
return;
}
selectedTypeDatas.clear();
//服务类型
for (ServiceTypeBean typeBean : typeDatas) {
if (typeBean.isSelected())
selectedTypeDatas.add(new ServiceSaveTypeBean(typeBean.getLabelId(), typeBean.getLabelName()));
}
if (isEdit && !TextUtils.isEmpty(imgEditUrl)){
imgUrl = imgEditUrl;
reUpload();
......@@ -118,7 +169,7 @@ public class UploadSelfLicenceActivity extends BaseActivity<SImplePresenter, Act
}
//上传认证资料
private void reUpload() {
UploadSelfLicenceData data = new UploadSelfLicenceData(mUserId,mUserInfo.getAccountName(),mUserInfo.getMobile(), content, imgUrl);
UploadSelfLicenceData data = new UploadSelfLicenceData(mUserId,mUserInfo.getAccountName(),mUserInfo.getMobile(), content, imgUrl, selectedTypeDatas);
data.id = lid;
Api.getService(UserService2.class).reUploadSelfLicence(data).compose(Api.applySchedulers())
.subscribe(mPresenter.baseObserver(success -> {
......
......@@ -143,7 +143,8 @@ public class HomeUserFragment extends BaseFragment<HomeUserPresenter, FragmentHo
//已保存服务类型数据
Api.getService(UserService2.class).getRelationCategory(mUserId).compose(Api.applySchedulers())
.subscribe(mPresenter.baseObserver(data -> {
showDaySelect(data.getLowestPriceDay());
// showDaySelect(data.getLowestPriceDay());
mBind.tvPrice.setText(data.getLowestPriceDay() + "元/天");
}));
......@@ -809,9 +810,9 @@ public class HomeUserFragment extends BaseFragment<HomeUserPresenter, FragmentHo
//更新选择地址布局显示
private void updateAddressView() {
cityId = cityList.size() > 0 ? cityId : 0;
cityName = cityList.size() > 0 ? cityName : "";
cityName = cityList.size() > 0 ? cityName : "请选择市";
areaId = areaList.size() > 0 ? areaId : 0;
areaName = areaList.size() > 0 ? areaName : "";
areaName = areaList.size() > 0 ? areaName : "请选择区";
mBind.province.setText(provinceName);
mBind.city.setText(cityName);
mBind.area.setText(areaName);
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
android:width="2dp"
android:color="#ff5a4b" />
<corners android:radius="0dp" />
</shape>
\ No newline at end of file
......@@ -89,7 +89,7 @@
android:gravity="center|left"
android:background="@color/white"/>
</androidx.core.widget.NestedScrollView>
Y
<LinearLayout
android:id="@+id/ll_video"
......@@ -168,11 +168,12 @@ Y
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rl_video"
android:layout_width="match_parent"
android:layout_height="140dp"/>
android:layout_height="140dp" />
<TextView
android:id="@+id/tv_tips"
......@@ -188,6 +189,20 @@ Y
<TextView
android:id="@+id/rl_exam_title"
android:layout_width="match_parent"
android:layout_height="35dp"
android:text="在线考试"
android:textSize="20dp"
android:paddingLeft="20dp"
android:gravity="center|left"
android:background="@color/cl_selector_hui"/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rl_exam"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:layout_width="match_parent"
android:layout_height="35dp"
android:text="服务项目"
......
......@@ -51,6 +51,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
android:orientation="horizontal">
<TextView
......@@ -78,6 +79,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="1dp"
android:visibility="gone"
android:orientation="horizontal">
<View
......@@ -94,6 +96,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
android:orientation="horizontal">
<TextView
......@@ -155,6 +158,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="1dp"
android:visibility="gone"
android:orientation="horizontal">
<View
......@@ -188,6 +192,7 @@
android:text="我的服务技能:"
android:textColor="@color/cl_home_title_text_color"
android:textSize="@dimen/size_login_hint_text"
android:visibility="gone"
android:textStyle="bold" />
<androidx.recyclerview.widget.RecyclerView
......
......@@ -84,6 +84,14 @@
</RelativeLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_type"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="15dp"
android:overScrollMode="never" />
<Button
android:id="@+id/btn_upload"
android:layout_width="match_parent"
......
......@@ -267,6 +267,7 @@
</LinearLayout>
<LinearLayout
android:id="@+id/ll_star"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/ll_score"
......@@ -292,6 +293,32 @@
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/ll_star"
android:layout_alignLeft="@id/ll_star"
android:layout_marginTop="9.3dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/lowest_price"
android:textColor="@color/cl_home_title_text_color"
android:textSize="12sp" />
<TextView
android:id="@+id/tv_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_13"
android:layout_toRightOf="@id/tv_age"
android:textColor="@color/cl_home_title_text_color"
android:textSize="12sp" />
</LinearLayout>
</RelativeLayout>
......@@ -361,81 +388,90 @@
android:textSize="@dimen/sp_16"
android:visibility="gone" />
<TextView
style="@style/sale_item_text"
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:background="@drawable/personal_center_selector"
android:gravity="center"
android:text="我的服务区域"
android:textColor="@color/default_text_color"
android:textSize="15dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_marginTop="5dp"
android:gravity="center_vertical"
android:paddingStart="15dp"
android:paddingEnd="15dp">
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:background="@drawable/personal_center_selector"
android:orientation="vertical">
<TextView
android:id="@+id/province"
android:layout_width="0dp"
style="@style/sale_item_text"
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_weight="1"
android:background="@drawable/bg_input_black_react"
android:drawableEnd="@drawable/icon_arrow_down_gray32"
android:drawablePadding="10dp"
android:gravity="center_vertical"
android:paddingStart="2dp"
android:paddingTop="1dp"
android:paddingEnd="10dp"
android:text="请选择省"
android:layout_marginTop="10dp"
android:gravity="center"
android:textStyle="bold"
android:text="设置我的服务区域"
android:textColor="@color/default_text_color"
android:textSize="15dp" />
<TextView
android:id="@+id/city"
android:layout_width="0dp"
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_marginEnd="10dp"
android:layout_weight="1"
android:background="@drawable/bg_input_black_react"
android:drawableEnd="@drawable/icon_arrow_down_gray32"
android:drawablePadding="10dp"
android:layout_marginTop="5dp"
android:gravity="center_vertical"
android:paddingStart="2dp"
android:paddingEnd="10dp"
android:text="@string/setlect_ciy_hint"
android:textColor="@color/default_text_color"
android:textSize="15dp" />
android:layout_gravity="center"
android:paddingStart="15dp"
android:paddingEnd="15dp">
<TextView
android:id="@+id/area"
android:layout_width="0dp"
android:layout_height="30dp"
android:layout_gravity="right"
android:layout_weight="1"
android:background="@drawable/bg_input_black_react"
android:drawableEnd="@drawable/icon_arrow_down_gray32"
android:drawablePadding="10dp"
android:gravity="center_vertical"
android:paddingStart="2dp"
android:paddingEnd="10dp"
android:text="请选择区"
android:textColor="@color/default_text_color"
android:textSize="15dp" />
<TextView
android:id="@+id/province"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_marginEnd="10dp"
android:layout_weight="1"
android:drawablePadding="10dp"
android:gravity="center_vertical"
android:paddingStart="2dp"
android:paddingTop="1dp"
android:paddingEnd="10dp"
android:text="请选择省"
android:textColor="@color/cl_home_button"
android:textSize="15dp"
android:textStyle="bold" />
<TextView
android:id="@+id/city"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_marginEnd="10dp"
android:layout_weight="1"
android:drawablePadding="10dp"
android:gravity="center_vertical"
android:paddingStart="2dp"
android:paddingEnd="10dp"
android:text="@string/setlect_ciy_hint"
android:textStyle="bold"
android:textColor="@color/cl_home_button"
android:textSize="15dp" />
<TextView
android:id="@+id/area"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_gravity="right"
android:layout_weight="1"
android:drawablePadding="10dp"
android:gravity="center_vertical"
android:paddingStart="2dp"
android:paddingEnd="10dp"
android:text="请选择区"
android:textStyle="bold"
android:textColor="@color/cl_home_button"
android:textSize="15dp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
android:orientation="horizontal"
android:visibility="gone">
<TextView
style="@style/sale_item_text"
......
......@@ -34,14 +34,37 @@
android:maxLines="2"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
>
<TextView
android:id="@+id/tv_company"
android:layout_width="0dp"
android:layout_weight="1"
style="@style/sale_item_text"
android:layout_marginTop="10dp"
android:text=""
android:text="颁发机构:石佛额哈否发到你十大s"
android:maxLines="2"
/>
<TextView
android:id="@+id/tv_licence_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="平台审核中"
android:layout_gravity="center_vertical"
android:background="@drawable/btn_red_rect_bord"
android:paddingBottom="3dp"
android:paddingTop="3dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:textColor="#ff5a4b"
android:textStyle="bold"/>
</LinearLayout>
</LinearLayout>
<RelativeLayout
......
......@@ -50,10 +50,11 @@
<string name="add_service_wechat">添加客服微信获得更多派单</string>
<string name="copy_wechat_num">复制微信号</string>
<string name="send_user_card">发微信名片给客户</string>
<string name="user_level">等级</string>
<string name="user_level">服务等级</string>
<string name="user_level1">金牌师傅</string>
<string name="user_level2">银牌师傅</string>
<string name="user_level3">铜牌师傅</string>
<string name="user_level4">普通师傅</string>
<string name="apply_fetch">申请提现</string>
<string name="lowest_price">工费标准</string>
</resources>
......@@ -23,6 +23,8 @@
<item name="android:layout_marginTop">@dimen/dp_11</item>
<item name="android:textColor">@color/cl_home_title_text_color</item>
<item name="android:textSize">14sp</item>
<item name="android:textStyle">bold</item>
</style>
<style name="tv_user_bottom2">
......@@ -31,6 +33,7 @@
<item name="android:layout_marginTop">2dp</item>
<item name="android:textColor">@color/cl_home_button</item>
<item name="android:textSize">14sp</item>
<item name="android:textStyle">bold</item>
</style>
<style name="ll_service_wechat" parent="ll_horizontal">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment