Commit 11a1872a912e169958382126f032411ac102d1c7

Authored by 杜方
1 parent 3e2f9301

畅游通标准:新增动态二维码检票

AndroidManifest.xml
@@ -2,8 +2,8 @@ @@ -2,8 +2,8 @@
2 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 xmlns:tool="http://schemas.android.com/tools" 3 xmlns:tool="http://schemas.android.com/tools"
4 package="com.ectrip.trips.check" 4 package="com.ectrip.trips.check"
5 - android:versionCode="27"  
6 - android:versionName="4.24" 5 + android:versionCode="28"
  6 + android:versionName="4.25"
7 tool:ignore="LockedOrientationActivity"> 7 tool:ignore="LockedOrientationActivity">
8 8
9 <!-- 各个类型的大小布局声明 --> 9 <!-- 各个类型的大小布局声明 -->
build.gradle
@@ -30,7 +30,7 @@ dependencies { @@ -30,7 +30,7 @@ dependencies {
30 implementation files('libs/fastjson-1.2.3.jar') 30 implementation files('libs/fastjson-1.2.3.jar')
31 implementation files('libs/sunjce_provider.jar') 31 implementation files('libs/sunjce_provider.jar')
32 implementation files('libs/zbar.jar') 32 implementation files('libs/zbar.jar')
33 - implementation files('libs/zxing.jar') 33 +// implementation files('libs/zxing.jar')
34 implementation files('libs/gson-2.6.2.jar') 34 implementation files('libs/gson-2.6.2.jar')
35 implementation files('libs\\rskapi.jar') 35 implementation files('libs\\rskapi.jar')
36 implementation files('libs\\zkandroidcore.jar') 36 implementation files('libs\\zkandroidcore.jar')
@@ -42,6 +42,8 @@ dependencies { @@ -42,6 +42,8 @@ dependencies {
42 implementation files('libs\\zypos1.8.jar') 42 implementation files('libs\\zypos1.8.jar')
43 implementation files('libs\\jsch-0.1.54.jar') 43 implementation files('libs\\jsch-0.1.54.jar')
44 implementation 'org.jetbrains:annotations-java5:15.0' 44 implementation 'org.jetbrains:annotations-java5:15.0'
  45 + implementation files('libs\\cyt-common-dynamic-code-3.6.4.jar')
  46 + implementation files('libs\\zxingcore-2.3.0.jar')
45 compileOnly files('external_libs/classes_2.1.11_20160907.jar') 47 compileOnly files('external_libs/classes_2.1.11_20160907.jar')
46 compileOnly files('external_libs/bw_odm_20160526.jar') 48 compileOnly files('external_libs/bw_odm_20160526.jar')
47 implementation files('libs/bw_pos_sdk2.0.18.jar') 49 implementation files('libs/bw_pos_sdk2.0.18.jar')
@@ -83,6 +85,11 @@ android { @@ -83,6 +85,11 @@ android {
83 } 85 }
84 } 86 }
85 87
  88 + compileOptions {
  89 + sourceCompatibility JavaVersion.VERSION_1_8
  90 + targetCompatibility JavaVersion.VERSION_1_8
  91 + }
  92 +
86 //在apk文件后边生成版本号信息 93 //在apk文件后边生成版本号信息
87 android.applicationVariants.all { 94 android.applicationVariants.all {
88 variant -> 95 variant ->
@@ -119,7 +126,7 @@ android { @@ -119,7 +126,7 @@ android {
119 defaultConfig { 126 defaultConfig {
120 minSdkVersion 14 127 minSdkVersion 14
121 targetSdkVersion 21 128 targetSdkVersion 21
122 - vectorDrawables.useSupportLibrary =true 129 + vectorDrawables.useSupportLibrary = true
123 130
124 ndk { 131 ndk {
125 abiFilters "armeabi", "armeabi-v7a"//可以适当补填其他 132 abiFilters "armeabi", "armeabi-v7a"//可以适当补填其他
@@ -144,6 +151,7 @@ android { @@ -144,6 +151,7 @@ android {
144 // } 151 // }
145 152
146 } 153 }
  154 +
147 def releaseTime() { 155 def releaseTime() {
148 return new SimpleDateFormat("yyyyMMddHHmm").format(new Date()) 156 return new SimpleDateFormat("yyyyMMddHHmm").format(new Date())
149 } 157 }
libs/cyt-common-dynamic-code-3.6.4.jar 0 → 100644
No preview for this file type
libs/zxingcore-2.3.0.jar 0 → 100644
No preview for this file type
src/com/ectrip/cyt/ui/NewHandleScanerActivity.java
@@ -8,6 +8,7 @@ import java.io.OutputStream; @@ -8,6 +8,7 @@ import java.io.OutputStream;
8 import java.io.UnsupportedEncodingException; 8 import java.io.UnsupportedEncodingException;
9 import java.security.InvalidParameterException; 9 import java.security.InvalidParameterException;
10 import java.util.ArrayList; 10 import java.util.ArrayList;
  11 +import java.util.Date;
11 import java.util.concurrent.atomic.AtomicBoolean; 12 import java.util.concurrent.atomic.AtomicBoolean;
12 13
13 import android.app.AlertDialog; 14 import android.app.AlertDialog;
@@ -23,6 +24,9 @@ import android.widget.Toast; @@ -23,6 +24,9 @@ import android.widget.Toast;
23 24
24 import android_serialport_api.SerialPortNewHandset; 25 import android_serialport_api.SerialPortNewHandset;
25 26
  27 +import com.ectrip.common.dynamic.code.core.DynamicVerifyCodeTool;
  28 +import com.ectrip.common.dynamic.code.exception.DynamicVerifyCodeException;
  29 +import com.ectrip.common.dynamic.code.model.DynamicVerifyCodeDecodeResult;
26 import com.ectrip.cyt.bean.ConfigBean; 30 import com.ectrip.cyt.bean.ConfigBean;
27 import com.ectrip.cyt.config.DevicTool; 31 import com.ectrip.cyt.config.DevicTool;
28 import com.ectrip.cyt.config.MyApp; 32 import com.ectrip.cyt.config.MyApp;
@@ -159,7 +163,7 @@ public class NewHandleScanerActivity extends BaseActivity { @@ -159,7 +163,7 @@ public class NewHandleScanerActivity extends BaseActivity {
159 } else { 163 } else {
160 try { 164 try {
161 if (result.startsWith("CYT_")) { 165 if (result.startsWith("CYT_")) {
162 - LogUtil.i(TAG,"result = " + result); 166 + LogUtil.i(TAG, "result = " + result);
163 typeScan = 0; 167 typeScan = 0;
164 if (result.contains(",")) { 168 if (result.contains(",")) {
165 result = result.substring(result.indexOf("_") + 1, result.indexOf(",")); 169 result = result.substring(result.indexOf("_") + 1, result.indexOf(","));
@@ -186,6 +190,31 @@ public class NewHandleScanerActivity extends BaseActivity { @@ -186,6 +190,31 @@ public class NewHandleScanerActivity extends BaseActivity {
186 } else if ((result.startsWith("TY_") || (result.startsWith("PMS_")))) { 190 } else if ((result.startsWith("TY_") || (result.startsWith("PMS_")))) {
187 typeScan = 1; 191 typeScan = 1;
188 result = result; 192 result = result;
  193 + } else if (result.startsWith("OCP_")) {
  194 + typeScan = 0;
  195 + result = result;
  196 + } else if (result.startsWith("DYV_")) {
  197 + try {
  198 + DynamicVerifyCodeDecodeResult decodeResult = DynamicVerifyCodeTool.decodeDynamicCode(result);
  199 + boolean expired = decodeResult.getExpired();
  200 + String staticCode = decodeResult.getStaticCode();
  201 + Date expireTime = decodeResult.getExpireTime();
  202 + LogUtil.d(TAG, "expired = " + expired);
  203 + LogUtil.d(TAG, "staticCode = " + staticCode);
  204 + LogUtil.d(TAG, "expireTime = " + expireTime);
  205 + if (!expired) {
  206 + typeScan = 1;
  207 + result = staticCode;
  208 + } else {
  209 + typeScan = 2;
  210 + result = "动态二维码已过有效期";
  211 + }
  212 + } catch (DynamicVerifyCodeException e) {
  213 + typeScan = 2;
  214 + LogUtil.d(TAG, "动态核销码异常:" + e.getMessage());
  215 + result = e.getMessage();
  216 + e.printStackTrace();
  217 + }
189 } else { 218 } else {
190 typeScan = 1; 219 typeScan = 1;
191 result = result; 220 result = result;
src/com/ectrip/cyt/ui/PhomeScanerOrderActivity.java
@@ -2,6 +2,7 @@ package com.ectrip.cyt.ui; @@ -2,6 +2,7 @@ package com.ectrip.cyt.ui;
2 2
3 import java.io.IOException; 3 import java.io.IOException;
4 import java.util.ArrayList; 4 import java.util.ArrayList;
  5 +import java.util.Date;
5 import java.util.Vector; 6 import java.util.Vector;
6 7
7 import android.content.Intent; 8 import android.content.Intent;
@@ -22,6 +23,9 @@ import android.view.WindowManager; @@ -22,6 +23,9 @@ import android.view.WindowManager;
22 import android.widget.TextView; 23 import android.widget.TextView;
23 import android.widget.Toast; 24 import android.widget.Toast;
24 25
  26 +import com.ectrip.common.dynamic.code.core.DynamicVerifyCodeTool;
  27 +import com.ectrip.common.dynamic.code.exception.DynamicVerifyCodeException;
  28 +import com.ectrip.common.dynamic.code.model.DynamicVerifyCodeDecodeResult;
25 import com.ectrip.cyt.bean.ConfigBean; 29 import com.ectrip.cyt.bean.ConfigBean;
26 import com.ectrip.cyt.config.DevicTool; 30 import com.ectrip.cyt.config.DevicTool;
27 import com.ectrip.cyt.constant.constant; 31 import com.ectrip.cyt.constant.constant;
@@ -174,6 +178,29 @@ public class PhomeScanerOrderActivity extends BaseActivity implements Callback { @@ -174,6 +178,29 @@ public class PhomeScanerOrderActivity extends BaseActivity implements Callback {
174 } else if (resultString.startsWith("OCP_")) { 178 } else if (resultString.startsWith("OCP_")) {
175 typeScan = 0; 179 typeScan = 0;
176 resultString = resultString; 180 resultString = resultString;
  181 + } else if (resultString.startsWith("DYV_")) {
  182 + try {
  183 + DynamicVerifyCodeDecodeResult decodeResult = DynamicVerifyCodeTool.decodeDynamicCode(resultString);
  184 + boolean expired = decodeResult.getExpired();
  185 + String staticCode = decodeResult.getStaticCode();
  186 + Date expireTime = decodeResult.getExpireTime();
  187 + LogUtil.d(TAG, "expired = " + expired);
  188 + LogUtil.d(TAG, "staticCode = " + staticCode);
  189 + LogUtil.d(TAG, "expireTime = " + expireTime);
  190 + if (!expired) {
  191 + typeScan = 1;
  192 + resultString = staticCode;
  193 + } else {
  194 + typeScan = 2;
  195 + resultString = "动态二维码已过有效期";
  196 + }
  197 + } catch (DynamicVerifyCodeException e) {
  198 + typeScan = 2;
  199 + LogUtil.d(TAG, "动态核销码异常:" + e.getMessage());
  200 + resultString = e.getMessage();
  201 + e.printStackTrace();
  202 + }
  203 +
177 } else { 204 } else {
178 typeScan = 1; 205 typeScan = 1;
179 resultString = resultString; 206 resultString = resultString;
src/com/ectrip/cyt/ui/QRCodeOrderListActivity.java
@@ -103,6 +103,12 @@ public class QRCodeOrderListActivity extends BaseActivity implements ListOnclick @@ -103,6 +103,12 @@ public class QRCodeOrderListActivity extends BaseActivity implements ListOnclick
103 LogUtil.d(TAG, "orid = " + orid); 103 LogUtil.d(TAG, "orid = " + orid);
104 typeScan = getIntent().getIntExtra("typeScan", 0); 104 typeScan = getIntent().getIntExtra("typeScan", 0);
105 LogUtil.d(TAG, "typeScan = " + typeScan); 105 LogUtil.d(TAG, "typeScan = " + typeScan);
  106 + if (typeScan == 2) {
  107 + orderList.setEmptyView(errorLayout);
  108 + errorLayout.setVisibility(View.VISIBLE);
  109 + errorInfo.setText(orid);
  110 + return;
  111 + }
106 if (orid.startsWith("OCP_")) { 112 if (orid.startsWith("OCP_")) {
107 ArrayList<ProductOfConsumeOrder> productOfConsumeOrders = new ArrayList<>(); 113 ArrayList<ProductOfConsumeOrder> productOfConsumeOrders = new ArrayList<>();
108 ProductOfConsumeOrder productOfConsumeOrder = new ProductOfConsumeOrder(); 114 ProductOfConsumeOrder productOfConsumeOrder = new ProductOfConsumeOrder();
src/com/ectrip/cyt/ui/ScanerOrderActivity.java
@@ -3,6 +3,7 @@ package com.ectrip.cyt.ui; @@ -3,6 +3,7 @@ package com.ectrip.cyt.ui;
3 import android.annotation.SuppressLint; 3 import android.annotation.SuppressLint;
4 import android.content.Intent; 4 import android.content.Intent;
5 import android.content.res.AssetFileDescriptor; 5 import android.content.res.AssetFileDescriptor;
  6 +import android.graphics.Color;
6 import android.hardware.Camera; 7 import android.hardware.Camera;
7 import android.hardware.Camera.Parameters; 8 import android.hardware.Camera.Parameters;
8 import android.hardware.Camera.PreviewCallback; 9 import android.hardware.Camera.PreviewCallback;
@@ -17,12 +18,18 @@ import android.os.Bundle; @@ -17,12 +18,18 @@ import android.os.Bundle;
17 import android.os.Handler; 18 import android.os.Handler;
18 import android.os.Message; 19 import android.os.Message;
19 import android.os.Vibrator; 20 import android.os.Vibrator;
  21 +import android.text.SpannableStringBuilder;
  22 +import android.text.TextUtils;
  23 +import android.text.style.ForegroundColorSpan;
20 import android.view.KeyEvent; 24 import android.view.KeyEvent;
21 import android.view.View; 25 import android.view.View;
22 import android.view.View.OnClickListener; 26 import android.view.View.OnClickListener;
23 import android.widget.FrameLayout; 27 import android.widget.FrameLayout;
24 import android.widget.TextView; 28 import android.widget.TextView;
25 29
  30 +import com.ectrip.common.dynamic.code.core.DynamicVerifyCodeTool;
  31 +import com.ectrip.common.dynamic.code.exception.DynamicVerifyCodeException;
  32 +import com.ectrip.common.dynamic.code.model.DynamicVerifyCodeDecodeResult;
26 import com.ectrip.cyt.bean.ConfigBean; 33 import com.ectrip.cyt.bean.ConfigBean;
27 import com.ectrip.cyt.constant.constant; 34 import com.ectrip.cyt.constant.constant;
28 import com.ectrip.cyt.db.DbManager; 35 import com.ectrip.cyt.db.DbManager;
@@ -45,6 +52,7 @@ import net.sourceforge.zbar.SymbolSet; @@ -45,6 +52,7 @@ import net.sourceforge.zbar.SymbolSet;
45 52
46 import java.io.IOException; 53 import java.io.IOException;
47 import java.util.ArrayList; 54 import java.util.ArrayList;
  55 +import java.util.Date;
48 56
49 /** 57 /**
50 * 二维码pos版扫描 58 * 二维码pos版扫描
@@ -240,6 +248,31 @@ public class ScanerOrderActivity extends BaseActivity { @@ -240,6 +248,31 @@ public class ScanerOrderActivity extends BaseActivity {
240 } else if ((scannerResult.startsWith("TY_") || (scannerResult.startsWith("PMS_")))) { 248 } else if ((scannerResult.startsWith("TY_") || (scannerResult.startsWith("PMS_")))) {
241 typeScan = 1; 249 typeScan = 1;
242 scannerResult = scannerResult; 250 scannerResult = scannerResult;
  251 + } else if (scannerResult.startsWith("DYV_")) {
  252 + try {
  253 + DynamicVerifyCodeDecodeResult decodeResult = DynamicVerifyCodeTool.decodeDynamicCode(scannerResult);
  254 + boolean expired = decodeResult.getExpired();
  255 + String staticCode = decodeResult.getStaticCode();
  256 + Date expireTime = decodeResult.getExpireTime();
  257 + LogUtil.d(TAG, "expired = " + expired);
  258 + LogUtil.d(TAG, "staticCode = " + staticCode);
  259 + LogUtil.d(TAG, "expireTime = " + expireTime);
  260 + if (!expired) {
  261 + typeScan = 1;
  262 + scannerResult = staticCode;
  263 + } else {
  264 + typeScan = 2;
  265 + scannerResult = "动态二维码已过有效期";
  266 + }
  267 + } catch (DynamicVerifyCodeException e) {
  268 + String errorMsg = e.getMessage();
  269 + LogUtil.d(TAG, "动态核销码异常:" + errorMsg);
  270 + typeScan = 2;
  271 + scannerResult = errorMsg;
  272 + e.printStackTrace();
  273 + return;
  274 + }
  275 +
243 } else { 276 } else {
244 typeScan = 1; 277 typeScan = 1;
245 scannerResult = scannerResult; 278 scannerResult = scannerResult;
src/com/ectrip/cyt/zxing/decoding/DecodeFormatManager.java
@@ -39,7 +39,7 @@ final class DecodeFormatManager { @@ -39,7 +39,7 @@ final class DecodeFormatManager {
39 PRODUCT_FORMATS.add(BarcodeFormat.UPC_E); 39 PRODUCT_FORMATS.add(BarcodeFormat.UPC_E);
40 PRODUCT_FORMATS.add(BarcodeFormat.EAN_13); 40 PRODUCT_FORMATS.add(BarcodeFormat.EAN_13);
41 PRODUCT_FORMATS.add(BarcodeFormat.EAN_8); 41 PRODUCT_FORMATS.add(BarcodeFormat.EAN_8);
42 - PRODUCT_FORMATS.add(BarcodeFormat.RSS14); 42 + PRODUCT_FORMATS.add(BarcodeFormat.RSS_14);
43 ONE_D_FORMATS = new Vector<BarcodeFormat>(PRODUCT_FORMATS.size() + 4); 43 ONE_D_FORMATS = new Vector<BarcodeFormat>(PRODUCT_FORMATS.size() + 4);
44 ONE_D_FORMATS.addAll(PRODUCT_FORMATS); 44 ONE_D_FORMATS.addAll(PRODUCT_FORMATS);
45 ONE_D_FORMATS.add(BarcodeFormat.CODE_39); 45 ONE_D_FORMATS.add(BarcodeFormat.CODE_39);