소스 검색

1.修改被保人姓名.
2.修改locationsdk的位置

石慧云 4 년 전
부모
커밋
11142888e3

+ 1 - 1
app/build.gradle

@@ -126,7 +126,6 @@ dependencies {
     addComponent 'jpush'
     addComponent 'gaode'
 //    addComponent 'lookimg'
-   implementation (name:'locationsdk-1.0.0', ext:'aar')
 
 
     //微信sdk
@@ -143,4 +142,5 @@ dependencies {
     //各种图标折线图
     implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
 
+
 }

+ 1 - 0
app/src/main/AndroidManifest.xml

@@ -41,6 +41,7 @@
         android:requestLegacyExternalStorage="true"
         android:usesCleartextTraffic="true" >
 
+
         <meta-data
             android:name="design_width_in_dp"
             android:value="375" />

+ 7 - 1
app/src/main/java/com/quansu/heifengwuliu/App.java

@@ -5,6 +5,7 @@ import com.quansu.heifengwuliu.utils.WeChatUtil;
 import com.ysnows.base.base.BApp;
 import com.ysnows.base.ccretrofit.CCRetrofit;
 import com.ysnows.base.config.IConfig;
+import com.ysnows.base.route.IGaode;
 import com.ysnows.base.route.IJpush;
 import com.ysnows.base.route.IUpdate;
 
@@ -55,11 +56,16 @@ public class App extends BApp {
 //                .subscribe();
 
 
+        CCRetrofit.instance()
+                .create(IGaode.class)
+                .setNotification()
+                .subscribe();
 
 
+    }
+
 
 
-    }
 
     public static App getApp() {
         return app;

+ 16 - 0
app/src/main/java/com/quansu/heifengwuliu/activity/HomeActivity.kt

@@ -13,8 +13,10 @@ import com.quansu.heifengwuliu.base.MBActivity
 import com.quansu.heifengwuliu.config.ConfigRx
 import com.quansu.heifengwuliu.databinding.ActivityHomeBinding
 import com.quansu.heifengwuliu.fragment.*
+import com.quansu.heifengwuliu.model.User
 import com.quansu.heifengwuliu.vmodel.HomeVModel
 import com.ysnows.base.ccretrofit.CCRetrofit
+import com.ysnows.base.route.IGaode
 import com.ysnows.base.route.IJpush
 import com.ysnows.base.route.IUpdate
 import com.ysnows.base.utils.KeySimulateUtils
@@ -69,8 +71,20 @@ class HomeActivity : MBActivity<HomeVModel, ActivityHomeBinding>() {
                 .checkUpgrade(false)
                 .subscribe()
 
+
+        if (null != User.get() && User.get()!!.isDriver) {
+            CCRetrofit.instance()
+                    .with(this)
+                    .create(IGaode::class.java)
+                    .initLocationSdk()
+                    .subscribe()
+        }
+
+
+
     }
 
+
     override fun vmClass(): Class<HomeVModel> {
         return HomeVModel::class.java
     }
@@ -201,4 +215,6 @@ class HomeActivity : MBActivity<HomeVModel, ActivityHomeBinding>() {
 
 
 
+
+
 }

+ 12 - 0
app/src/main/java/com/quansu/heifengwuliu/config/Config.kt

@@ -42,4 +42,16 @@ class Config : IConfig {
     override fun UmengAppKey(): String {
         return "5f5603967823567fd8650597"
     }
+
+    override fun appId(): String {
+       return "q88e781e8d484"
+    }
+
+    override fun appSecurity(): String {
+      return "37252555"
+    }
+
+    override fun enterpriseSenderCode(): String {
+       return "9db07b886ee3457aa33bf79745591fa21ae24fdc687794431c98668520e5dd18d5"
+    }
 }

+ 8 - 4
app/src/main/java/com/quansu/heifengwuliu/vmodel/BuyInsureVModel.kt

@@ -78,8 +78,6 @@ class BuyInsureVModel(application: Application) : BViewModel<BRepository>(applic
 
     fun getInfo(order_id: String) {//被保人信息
         this.order_id = order_id
-        name = User.get()!!.name
-        phone = User.get()!!.mobile
 
 
         viewModelScope.launch {
@@ -90,6 +88,8 @@ class BuyInsureVModel(application: Application) : BViewModel<BRepository>(applic
                 info.value = bean
                 if (null != bean) {
                     number = bean.insurantInfoList[0].certificateNo
+                    name = bean.insurantInfoList[0].name
+                    phone =  bean.insurantInfoList[0].mobile
 
                 }
             }
@@ -252,8 +252,7 @@ class BuyInsureVModel(application: Application) : BViewModel<BRepository>(applic
 
     fun getDatailsInfo(order_id: String) {//详情
 
-        name = User.get()!!.name
-        phone = User.get()!!.mobile
+
 
         viewModelScope.launch {
             var it = repository().lreq { NetEngine.service.baoxianGetInfo(order_id) }
@@ -263,11 +262,16 @@ class BuyInsureVModel(application: Application) : BViewModel<BRepository>(applic
                 info.value = bean
                 if (null != bean) {
                     number = bean.insurantInfoList[0].certificateNo
+                    name = bean.insurantInfoList[0].name
+                    phone =  bean.insurantInfoList[0].mobile
                     money=bean.amount
                     priceFormat.value=bean.payMoney
                     schemeName.value=bean.goodsInfoList[0].schemeName
                     schemeCodeName.value=bean.goodsInfoList[0].rate
 
+
+
+
                 }
             }
         }

+ 43 - 31
app/src/main/java/com/quansu/heifengwuliu/vmodel/WaybillDetailsVModel.kt

@@ -37,7 +37,6 @@ import com.quansu.heifengwuliu.config.ConfigRx
 import com.quansu.heifengwuliu.config.MIntentAction
 import com.quansu.heifengwuliu.model.WaybillDetails
 import com.quansu.heifengwuliu.utils.ChosePhotoUtils
-import com.quansu.heifengwuliu.utils.VerifyUtils
 import com.quansu.heifengwuliu.utils.net.NetEngine
 import com.quansu.heifengwuliu.view.PasswordView
 import com.yanzhenjie.permission.Action
@@ -132,8 +131,8 @@ open class WaybillDetailsVModel(application: Application) : BViewModel<BReposito
                                 20 -> tvTitle.value = "运输轨迹"
                                 30 -> {
                                     tvTitle.value = "去结算"
-                                    number=info.value!!.order.t_nums
-                                    modifyTime.value=info.value!!.order.sd_time
+                                    number = info.value!!.order.t_nums
+                                    modifyTime.value = info.value!!.order.sd_time
                                     nopath.addAll(info.value!!.order.t_img)
 
                                     isVoucherShow.value = true
@@ -148,30 +147,30 @@ open class WaybillDetailsVModel(application: Application) : BViewModel<BReposito
                                         tvTitle.value = "待评价"
                                     }
 
-                                    number=info.value!!.order.t_nums
-                                    modifyTime.value=info.value!!.order.sd_time
+                                    number = info.value!!.order.t_nums
+                                    modifyTime.value = info.value!!.order.sd_time
 
                                     nopath.addAll(info.value!!.order.t_img)
                                     isVoucherShow.value = true
                                     isModify.value = false
 
                                     //实际支付
-                                    isPayShow.value=true
-                                    payMoney.value=info.value!!.info.true_total
+                                    isPayShow.value = true
+                                    payMoney.value = info.value!!.info.true_total
 
 
                                 }
                                 50 -> {
                                     tvTitle.value = "查看评价"
-                                    number=info.value!!.order.t_nums
-                                    modifyTime.value=info.value!!.order.sd_time
+                                    number = info.value!!.order.t_nums
+                                    modifyTime.value = info.value!!.order.sd_time
                                     nopath.addAll(info.value!!.order.t_img)
                                     isVoucherShow.value = true
                                     isModify.value = false
 
                                     //实际支付
-                                    isPayShow.value=true
-                                    payMoney.value=info.value!!.info.true_total
+                                    isPayShow.value = true
+                                    payMoney.value = info.value!!.info.true_total
 
                                 }
                             }
@@ -194,8 +193,8 @@ open class WaybillDetailsVModel(application: Application) : BViewModel<BReposito
                                 10 -> tvTitle.value = "开始送货"
                                 20 -> tvTitle.value = "已送达"
                                 30 -> {
-                                    number=info.value!!.order.t_nums
-                                    modifyTime.value=info.value!!.order.sd_time
+                                    number = info.value!!.order.t_nums
+                                    modifyTime.value = info.value!!.order.sd_time
                                     nopath.addAll(info.value!!.order.t_img)
                                     isVoucherShow.value = true
                                     isModify.value = true
@@ -208,32 +207,30 @@ open class WaybillDetailsVModel(application: Application) : BViewModel<BReposito
                                         tvTitle.value = "待评价"
                                     }
                                     //回单
-                                    number=info.value!!.order.t_nums
-                                    modifyTime.value=info.value!!.order.sd_time
+                                    number = info.value!!.order.t_nums
+                                    modifyTime.value = info.value!!.order.sd_time
                                     nopath.addAll(info.value!!.order.t_img)
-                                    isVoucherShow.value=true
-                                    isModify.value=false
+                                    isVoucherShow.value = true
+                                    isModify.value = false
 
                                     //实际支付
-                                    isPayShow.value=true
-                                    payMoney.value=info.value!!.info.true_total
-
-
+                                    isPayShow.value = true
+                                    payMoney.value = info.value!!.info.true_total
 
 
                                 }
                                 50 -> {
                                     tvTitle.value = "查看评价"
                                     //回单
-                                    number=info.value!!.order.t_nums
-                                    modifyTime.value=info.value!!.order.sd_time
+                                    number = info.value!!.order.t_nums
+                                    modifyTime.value = info.value!!.order.sd_time
                                     nopath.addAll(info.value!!.order.t_img)
                                     isVoucherShow.value = true
                                     isModify.value = false
 
                                     //实际支付
-                                    isPayShow.value=true
-                                    payMoney.value=info.value!!.info.true_total
+                                    isPayShow.value = true
+                                    payMoney.value = info.value!!.info.true_total
 
                                 }
 
@@ -292,7 +289,7 @@ open class WaybillDetailsVModel(application: Application) : BViewModel<BReposito
             if (order_state == 30) {
 
 
-                showPayDialog(order_id,info.value!!.info.total)
+                showPayDialog(order_id, info.value!!.info.total)
 
 
 
@@ -388,6 +385,13 @@ open class WaybillDetailsVModel(application: Application) : BViewModel<BReposito
 
                         order_state = 20//变成运输中
                         tvTitle.value = "已送达"
+                        //开启定位
+                        CCRetrofit.instance()
+                                .with(repository().context)
+                                .create(IGaode::class.java)
+                                .loacationStart(info.value!!.order.order_sn,info.value!!.info.send[0].city.code,info.value!!.info.receive[info.value!!.info.receive.size-1].city.code)
+                                .subscribe()
+
                     }
                 }
                 .subscribe()
@@ -426,7 +430,7 @@ open class WaybillDetailsVModel(application: Application) : BViewModel<BReposito
 
     }
 
-    fun clearMoreImg(position:Int){
+    fun clearMoreImg(position: Int){
         nopath!!.removeAt(position)
 
 
@@ -472,6 +476,14 @@ open class WaybillDetailsVModel(application: Application) : BViewModel<BReposito
                             isVoucherShow.value=true
                             isModify.value=true
 
+                            //已送达 停止定位
+
+                            CCRetrofit.instance()
+                                    .with(repository().context)
+                                    .create(IGaode::class.java)
+                                    .loacationStop(info.value!!.order.order_sn,info.value!!.info.send[0].city.code,info.value!!.info.receive[info.value!!.info.receive.size-1].city.code)
+                                    .subscribe()
+
                         }
                     }
                     .subscribe()
@@ -506,7 +518,7 @@ open class WaybillDetailsVModel(application: Application) : BViewModel<BReposito
     }
 
 
-    fun showPayDialog(order_id: String,total:String) {
+    fun showPayDialog(order_id: String, total: String) {
         var mNormalPopup = QMUIPopups.fullScreenPopup(repository().context)
         val builder: QMUISkinValueBuilder = QMUISkinValueBuilder.acquire()
         val frameLayout = QMUIFrameLayout(repository().context)
@@ -691,7 +703,7 @@ open class WaybillDetailsVModel(application: Application) : BViewModel<BReposito
     }
 
 
-    fun reviseModel(order_id:String){
+    fun reviseModel(order_id: String){
         //确定
         if (TextUtils.isEmpty(number)) {
             toast("输入运送数量")
@@ -721,11 +733,11 @@ open class WaybillDetailsVModel(application: Application) : BViewModel<BReposito
 
 
 
-    fun toBuy(is_baoxian:Int){
+    fun toBuy(is_baoxian: Int){
         UiSwitch.bundleRes(repository().context as Activity,
                 BuyInsureActivity::class.java,
                 B.with().putInt("type", is_baoxian)
-                        .putString("order_id",info.value!!.order.order_id)
+                        .putString("order_id", info.value!!.order.order_id)
                         .ok(),
                 MIntentAction.REQUEST_CHOSE_INSURE)
     }

+ 1 - 1
app/src/main/res/layout/activity_buy_insure.xml

@@ -125,7 +125,7 @@
                                 <TextView
                                     android:layout_width="wrap_content"
                                     android:layout_height="wrap_content"
-                                    android:text="姓名"
+                                    android:text="被保人"
                                     android:textColor="@color/text_title"
                                     android:textSize="@dimen/sp_16">
 

+ 1 - 1
base/src/main/java/com/ysnows/base/config/IConfig.java

@@ -1,6 +1,6 @@
 package com.ysnows.base.config;
 
-public interface IConfig extends ApiConfig,IConfigBugly, IConfigOss,IConfigUmeng {
+public interface IConfig extends ApiConfig,IConfigBugly, IConfigOss,IConfigUmeng,IConfigLocation {
 
 
 

+ 10 - 0
base/src/main/java/com/ysnows/base/config/IConfigLocation.java

@@ -0,0 +1,10 @@
+package com.ysnows.base.config;
+
+public interface IConfigLocation {
+
+    String appId();
+    String appSecurity();
+    String enterpriseSenderCode();
+
+
+}

+ 12 - 0
base/src/main/java/com/ysnows/base/route/IGaode.kt

@@ -21,4 +21,16 @@ interface  IGaode : IRoute {
 
     fun currentLocation(): Observable<CCResult>
 
+
+    fun setNotification(): Observable<CCResult>
+
+    fun initLocationSdk(): Observable<CCResult>
+
+    fun loacationStart(@Param("shippingNoteNumber") shippingNoteNumber: String,
+                       @Param("startCountrySubdivisionCode") startCountrySubdivisionCode: String,
+                       @Param("endCountrySubdivisionCode") endCountrySubdivisionCode: String): Observable<CCResult>
+    fun loacationStop(@Param("shippingNoteNumber") shippingNoteNumber: String,
+                      @Param("startCountrySubdivisionCode") startCountrySubdivisionCode: String,
+                      @Param("endCountrySubdivisionCode") endCountrySubdivisionCode: String): Observable<CCResult>
+
 }

+ 10 - 1
gaode/build.gradle

@@ -47,9 +47,18 @@ android {
 dependencies {
     implementation fileTree(dir: "libs", include: ["*.jar"])
 
+    implementation 'com.lzy.net:okgo:3.0.4'
+    implementation 'com.alibaba:fastjson:1.2.61'
+    implementation 'org.bouncycastle:bcprov-jdk15on:1.47'
+    // implementation (name:'locationsdk-1.0.0', ext:'aar')
 
 
-    compileOnly 'com.amap.api:location:latest.integration' //定位功能
+
+    implementation files('libs/locationsdk-1.0.0.aar')
+
+
+
+    // compileOnly 'com.amap.api:location:latest.integration' //定位功能
     implementation 'com.amap.api:search:latest.integration' //搜索功能
     implementation 'com.amap.api:3dmap:latest.integration'//3D地图
 

+ 0 - 0
app/libs/locationsdk-1.0.0.aar → gaode/libs/locationsdk-1.0.0.aar


+ 1 - 0
gaode/src/main/java/com/quansu/gaode/activity/GaodeActivity.java

@@ -22,6 +22,7 @@ import android.widget.Toast;
 import androidx.annotation.Nullable;
 import androidx.appcompat.app.AppCompatActivity;
 
+
 //import com.amap.api.location.AMapLocation;
 //import com.amap.api.location.AMapLocationClient;
 //import com.amap.api.location.AMapLocationClientOption;

+ 70 - 0
gaode/src/main/java/com/quansu/gaode/componnent/CpGaode.java

@@ -7,10 +7,12 @@ import com.billy.cc.core.component.CC;
 import com.billy.cc.core.component.CCResult;
 import com.billy.cc.core.component.IComponent;
 import com.google.gson.Gson;
+import com.hdgq.locationlib.entity.ShippingNoteInfo;
 import com.quansu.gaode.activity.GaodeActivity;
 import com.quansu.gaode.activity.PolylineActivity;
 import com.quansu.gaode.activity.RouteActivity;
 import com.quansu.gaode.utils.CurrentLocationUtils;
+import com.quansu.gaode.utils.LocationUtils;
 import com.ysnows.base.base.BApp;
 import com.ysnows.base.ccextension.BIComponent;
 import com.ysnows.base.model.PositionBean;
@@ -92,11 +94,79 @@ public class CpGaode extends BIComponent implements IComponent {
         return false;
 
 
+    }
+
+    public boolean setNotification(CC cc){
+        LocationUtils.setNotification();
+        CC.sendCCResult(cc.getCallId(), CCResult.success());
+        return false;
+    }
+
+
+    public boolean initLocationSdk(CC cc){
+
+        LocationUtils.initLoacation(cc.getContext());
+
+        CC.sendCCResult(cc.getCallId(), CCResult.success());
+        return false;
+
+    }
+
+
+    /**
+     * 启用定位
+     * @param cc
+     * @param shippingNoteNumber
+     * @param startCountrySubdivisionCode
+     * @param endCountrySubdivisionCode
+     * @return
+     */
+    public boolean loacationStart(CC cc,
+                                  String shippingNoteNumber,
+                                  String startCountrySubdivisionCode,
+                                  String endCountrySubdivisionCode){
+
+        ShippingNoteInfo info=new ShippingNoteInfo();
+        info.setShippingNoteNumber(shippingNoteNumber);
+        info.setSerialNumber(shippingNoteNumber+"1");
+        info.setStartCountrySubdivisionCode(startCountrySubdivisionCode);
+        info.setEndCountrySubdivisionCode(endCountrySubdivisionCode);
 
+        ShippingNoteInfo[] shippingNoteInfos = {info};
+
+        LocationUtils.loacationStart(cc.getContext(),shippingNoteInfos);
+
+        CC.sendCCResult(cc.getCallId(), CCResult.success());
+        return false;
 
     }
 
+    /**
+     * 结束定位
+     * @param cc
+     * @param shippingNoteNumber
+     * @param startCountrySubdivisionCode
+     * @param endCountrySubdivisionCode
+     * @return
+     */
+    public boolean loacationStop(CC cc,
+                                 String shippingNoteNumber,
+                                 String startCountrySubdivisionCode,
+                                 String endCountrySubdivisionCode){
+
+        ShippingNoteInfo info=new ShippingNoteInfo();
+        info.setShippingNoteNumber(shippingNoteNumber);
+        info.setSerialNumber(shippingNoteNumber+"1");
+        info.setStartCountrySubdivisionCode(startCountrySubdivisionCode);
+        info.setEndCountrySubdivisionCode(endCountrySubdivisionCode);
+
+        ShippingNoteInfo[] shippingNoteInfos = {info};
 
+        LocationUtils.loacationStop(cc.getContext(),shippingNoteInfos);
+        CC.sendCCResult(cc.getCallId(), CCResult.success());
+        return false;
+
+    }
 
 }
 

+ 146 - 0
gaode/src/main/java/com/quansu/gaode/utils/LocationUtils.java

@@ -0,0 +1,146 @@
+package com.quansu.gaode.utils;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+
+
+import com.hdgq.locationlib.LocationOpenApi;
+import com.hdgq.locationlib.entity.ShippingNoteInfo;
+import com.hdgq.locationlib.keeplive.KeepLive;
+import com.hdgq.locationlib.keeplive.config.ForegroundNotification;
+import com.hdgq.locationlib.keeplive.config.ForegroundNotificationClickListener;
+import com.hdgq.locationlib.keeplive.config.KeepLiveService;
+import com.hdgq.locationlib.listener.OnResultListener;
+import com.quansu.gaode.BuildConfig;
+import com.quansu.gaode.R;
+import com.ysnows.base.base.BApp;
+
+
+
+/**
+ * Created by shihuiyun
+ * on 2020/10/26
+ */
+public class LocationUtils {
+
+
+    public static void setNotification() {
+
+        ForegroundNotification foregroundNotification = new ForegroundNotification("测试", "描述", R.mipmap.ic_launcher,
+                new ForegroundNotificationClickListener() {
+                    @Override
+                    public void foregroundNotificationClick(Context context, Intent intent) {
+
+                    }
+                });
+        //启动保活服务
+
+        KeepLive.startWork(BApp.instance(), KeepLive.RunMode.ENERGY,
+                foregroundNotification, new KeepLiveService() {
+                    @Override
+                    public void onWorking() {
+                        /**
+                         * 运行中
+                         * 由于服务可能会多次自动启动,该方法可能重复调用
+                         */
+
+                        Log.e("-shy-", "onWorking: ");
+
+                    }
+
+
+                    @Override
+                    public void onStop() {
+                        /**
+                         * 服务终止
+                         * 由于服务可能会被多次终止,该方法可能重复调用,需同 onWorking 配
+                         套使用,
+                         * 如注册和注销 broadcast */
+                        Log.e("-shy-", "onStop: ");
+
+                    }
+                });
+
+
+    }
+
+    //在启动页或 app 首页中,初始化 sdk 服务。context 必须为 activity。
+    public static void initLoacation(Context context) {
+
+
+        String environment = "release";
+        if (BuildConfig.DEBUG) {
+            environment = "debug";
+        }
+
+        Log.e("-shy-", "environment=" + environment);
+
+        Log.e("-shy-", "appID=: " + BApp.instance().config().appId());
+
+        LocationOpenApi.init((Activity) context, BApp.instance().config().appId(), BApp.instance().config().appSecurity(),
+                BApp.instance().config().enterpriseSenderCode(),
+                environment, new OnResultListener() {
+                    @Override
+                    public void onSuccess() {
+                        Log.e("-shy-", "onSuccess: ");
+
+                    }
+
+                    @Override
+                    public void onFailure(String s, String s1) {
+                        Log.e("-shy-", "s=: " + s + "//s1=" + s1);
+
+                    }
+                });
+
+
+    }
+
+    //启动服务,context 必须为 activity。
+
+
+    public static void loacationStart(Context context, ShippingNoteInfo[] shippingNoteInfos) {
+
+
+        LocationOpenApi.start((Activity) context, shippingNoteInfos, new OnResultListener() {
+            @Override
+            public void onSuccess() {
+
+                Log.e("-shy-", "onSuccess: ");
+
+            }
+
+            @Override
+            public void onFailure(String s, String s1) {
+                Log.e("-shy-", "s=: " + s + "//s1=" + s1);
+
+            }
+        });
+
+    }
+
+    //停止服务。context 必须为 activity。
+
+    public static void loacationStop(Context context, ShippingNoteInfo[] shippingNoteInfos) {
+
+        LocationOpenApi.stop((Activity) context, shippingNoteInfos, new OnResultListener() {
+            @Override
+            public void onSuccess() {
+
+            }
+
+            @Override
+            public void onFailure(String s, String s1) {
+                Log.e("-shy-", "s=: " + s + "//s1=" + s1);
+
+            }
+        });
+    }
+
+
+
+
+
+}