Преглед на файлове

新增设备IP地址上传,代码优化

weizhengliang преди 11 месеца
родител
ревизия
8ee6e39c3e

+ 4 - 8
app/build.gradle

@@ -112,14 +112,10 @@ dependencies {
      * 外部化Moudle配置
      * moudle独立编译配置
      */
-    if (!componentTag) {
-        compile project(':welcome') // ===> 开始模块  建议在模块内添加广告 欢迎页 等页面
-        //compile project(':home')   // ===> 主页模块  里面一般是App的首页 分类楼层页面
-        //compile project(':shop')      // ===> 店铺模块 店铺列表 详细 等
-        //compile project(':setting')   // ===> 设置模块 设置 缓存 App分享等
-        compile project(':extra')    // ===> 额外的一些页面 比如二维码扫描等一些附加功能
-        compile project(':lcd_board')
-    }
+
+    compile project(':welcome') // ===> 开始模块  建议在模块内添加广告 欢迎页 等页面
+    compile project(':lcd_board')
+
     /**
      * JavaShopAndroid 中间件依赖库
      */

+ 9 - 9
build.gradle

@@ -62,9 +62,9 @@ buildscript {
             /**
              * 依赖仓储
              */
-            maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
-            maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
-            maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
+            maven { url 'https://maven.aliyun.com/nexus/content/repositories/google' }
+            maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
+            maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
 
             //jcenter()
             mavenCentral()
@@ -97,9 +97,9 @@ buildscript {
     }
 
     repositories {
-        maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
-        maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
-        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
+        maven { url 'https://maven.aliyun.com/nexus/content/repositories/google' }
+        maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
+        maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
 
         jcenter()
         mavenCentral()
@@ -113,9 +113,9 @@ buildscript {
  */
 allprojects {
     repositories {
-        maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
-        maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter'}
-        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
+        maven { url 'https://maven.aliyun.com/nexus/content/repositories/google' }
+        maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
+        maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
 
         jcenter()
         mavenCentral()

+ 2 - 21
lcd_board/src/main/java/com/wdkl/lcd_board/activity/MainActivity.kt

@@ -147,9 +147,10 @@ class MainActivity :BaseActivity<MainActivityPresenter, ActivityMainLayoutBindin
         }.start()
 
         val buildUrl = UrlManager.build()
+        Constant.LOCAL_IP = NetHelper.getInstance().localIP
         serverIp =  buildUrl.buyer.substringAfterLast("//").substringBefore(":")
         val str = ("MAC: " + Constant.LOCAL_MAC
-                + "\r\nIP: " + NetHelper.getInstance().localIP + ", server: " + serverIp
+                + "\r\nIP: " + Constant.LOCAL_IP + ", server: " + serverIp
                 + "\r\nAPP版本: V" + BuildConfig.VERSION_NAME + "_" + BuildConfig.VERSION_CODE + "_" + Build.MODEL
                 + "\r\n发布日期:" + BuildConfig.BUILD_TIME
                 + "\r\nAndroid SDK: " + Build.VERSION.SDK_INT)
@@ -640,7 +641,6 @@ class MainActivity :BaseActivity<MainActivityPresenter, ActivityMainLayoutBindin
 
             //TCP连接状态
             Constant.EVENT_TCP_STATE -> {
-                //updateTcpState()
                 updateNetState()
             }
 
@@ -685,16 +685,6 @@ class MainActivity :BaseActivity<MainActivityPresenter, ActivityMainLayoutBindin
     }
 
     private fun updateNetState() {
-        /*if (NetHelper.getInstance().networkType == ConnectivityManager.TYPE_WIFI) {
-            view_title_layout_iv_wifi.visibility = View.VISIBLE
-            view_title_layout_iv_wifi.setImageResource(R.mipmap.ic_wifi_success)
-            view_title_layout_iv_ethernet.visibility = View.GONE
-        } else if (NetHelper.getInstance().networkType == ConnectivityManager.TYPE_ETHERNET) {
-            view_title_layout_iv_ethernet.visibility = View.VISIBLE
-            view_title_layout_iv_ethernet.setImageResource(R.mipmap.ic_ethernet_success)
-            view_title_layout_iv_wifi.visibility = View.GONE
-        }*/
-
         runOnUiThread {
             if (Constant.TCP_CONNECTED) {
                 view_title_layout_tv_point.setBackgroundResource(R.color.green)
@@ -706,21 +696,12 @@ class MainActivity :BaseActivity<MainActivityPresenter, ActivityMainLayoutBindin
         }
     }
 
-    private fun updateTcpState() {
-        /*if (Constant.TCP_CONNECTED) {
-            view_title_layout_iv_tcp.setImageResource(R.mipmap.ic_tcp_success)
-        } else {
-            view_title_layout_iv_tcp.setImageResource(R.mipmap.ic_tcp_fail)
-        }*/
-    }
-
 
     inner class TimeReceiver: BroadcastReceiver() {
         override fun onReceive(context: Context, intent: Intent) {
             if (intent.action == Intent.ACTION_TIME_TICK) {
                 updateNetState()
                 if (initialized) {
-                    //updateTcpState()
                     updateNetState()
                     resetPrograms()
                 }

+ 1 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/common/Constant.java

@@ -52,6 +52,7 @@ public class Constant {
 
     //MAC地址
     public static String LOCAL_MAC = "";
+    public static String LOCAL_IP = "";
 
     //设备ID
     public static Integer DEVICE_ID;

+ 1 - 45
middleware/src/main/code/com/wdkl/ncs/android/middleware/tcp/TcpClientHandler.java

@@ -44,7 +44,7 @@ public class TcpClientHandler extends SimpleChannelInboundHandler<String> {
         retryTimes = 0;
         Constant.TCP_CONNECTED = true;
         EventBus.getDefault().post(new MessageEvent(1, Constant.EVENT_TCP_STATE));
-        TcpModel tcpModel = DeviceUtil.deviceConnect(Constant.LOCAL_MAC);
+        TcpModel tcpModel = DeviceUtil.deviceConnect(Constant.LOCAL_MAC, Constant.LOCAL_IP);
         TcpClient.getInstance().sendMsg(tcpModel.toJson());
     }
 
@@ -57,7 +57,6 @@ public class TcpClientHandler extends SimpleChannelInboundHandler<String> {
         Constant.TCP_CONNECTED = false;
         Log.i(TAG, "失去连接");
         TcpClient.getInstance().doConnect();
-        //reConnect(ctx);
     }
 
     //读取String消息
@@ -87,10 +86,8 @@ public class TcpClientHandler extends SimpleChannelInboundHandler<String> {
             if (event.state() == IdleState.WRITER_IDLE) { //超时未执行写操作,在指定的超时时间内未有写操作,要发送心跳包,告诉服务器连接还存活。服务器收到心跳立马回应,正常客户端收到后执行读操作,
                 ctx.writeAndFlush("0");                //这种情况下不会引发READER_IDLE事件。如果服务器因为网络或其他原因导致回应的心跳,客户端没有收到,在超过写超时时间2个周期后依然没有收到,
             } else if (event.state() == IdleState.READER_IDLE) { //认为服务不可用,主动断开连接
-//                ctx.channel().close();
                 Log.i(TAG, "TcpClientHandler ===> READER_IDLE");
                 ctx.close();
-//                ctx.close();
             } else if (event.state() == IdleState.ALL_IDLE) {
                 Log.i(TAG, "TcpClientHandler ===> ALL_IDLE");
 
@@ -112,50 +109,9 @@ public class TcpClientHandler extends SimpleChannelInboundHandler<String> {
     public void sendMsg(String msg){
         if (ctx==null){
             System.out.println("ctx is null");
-            /*try {
-                Thread.sleep(1000);
-                sendMsg(msg);
-            } catch (InterruptedException e) {
-                e.printStackTrace();
-            }*/
             return;
         }
         System.out.println("wzlll: send tcp msg====" + msg);
         ctx.writeAndFlush(Unpooled.copiedBuffer(msg, CharsetUtil.UTF_8));
     }
-
-    //已经连接上,中途失去连接时的处理
-    private void reConnect(final ChannelHandlerContext ctx){
-        if (totalRetryTimes>100){
-            //todo: 存储数据库,并告警
-        }
-        if (connected && (TcpClient.getInstance().channel != null && TcpClient.getInstance().channel.isActive())){
-            return;
-        }
-        totalRetryTimes++;
-        System.out.println("TcpClientHandler 总计连接次数:"+totalRetryTimes);
-        retryTimes++;
-        if (retryTimes > 30) { //超时30次,10分钟后再试
-            retryTimes = 0;
-            ctx.channel().eventLoop().schedule(new Runnable() {
-                @Override
-                public void run() {
-                    System.out.println("TcpClientHandler 重新连接,第" + retryTimes + "次");
-                    TcpClient.getInstance().doConnect();
-                    reConnect(ctx);
-                }
-            }, 10*60, TimeUnit.SECONDS);
-
-
-        }else {
-            ctx.channel().eventLoop().schedule(new Runnable() {
-                @Override
-                public void run() {
-                    System.out.println("TcpClientHandler 重新连接,第" + retryTimes + "次");
-                    TcpClient.getInstance().doConnect();
-                    reConnect(ctx);
-                }
-            }, retrySeconds * retryTimes, TimeUnit.SECONDS);
-        }
-    }
 }

+ 5 - 1
middleware/src/main/code/com/wdkl/ncs/android/middleware/tcp/channel/DeviceUtil.java

@@ -1,6 +1,7 @@
 package com.wdkl.ncs.android.middleware.tcp.channel;
 
 import android.os.Build;
+import android.text.TextUtils;
 
 import com.wdkl.ncs.android.middleware.BuildConfig;
 import com.wdkl.ncs.android.middleware.tcp.dto.DeviceConnectDTO;
@@ -9,7 +10,7 @@ import com.wdkl.ncs.android.middleware.tcp.enums.TcpAction;
 import com.wdkl.ncs.android.middleware.tcp.enums.TcpType;
 
 public class DeviceUtil {
-    public static TcpModel deviceConnect(String mac){
+    public static TcpModel deviceConnect(String mac, String ip){
         TcpModel tcpModel = new TcpModel();
         DeviceConnectDTO connectDTO = new DeviceConnectDTO();
         connectDTO.setIdentification(mac);
@@ -17,6 +18,9 @@ public class DeviceUtil {
         connectDTO.setSoftware_version("V"+BuildConfig.VERSION_NAME);
         connectDTO.setModel(Build.MODEL);
         connectDTO.setCode(Build.SERIAL);
+        if (!TextUtils.isEmpty(ip)) {
+            connectDTO.setClientIp(ip);
+        }
         tcpModel.setType(TcpType.DEVICE);
         tcpModel.setAction(TcpAction.DeviceAction.CONNECT);
         tcpModel.setData(connectDTO);

+ 11 - 0
middleware/src/main/code/com/wdkl/ncs/android/middleware/tcp/dto/DeviceConnectDTO.java

@@ -31,6 +31,9 @@ public class DeviceConnectDTO implements Serializable {
      */
     private String code;
 
+    /** 客户端Ip **/
+    private String clientIp;
+
 
     public String getIdentification() {
         return identification;
@@ -71,4 +74,12 @@ public class DeviceConnectDTO implements Serializable {
     public void setCode(String code) {
         this.code = code;
     }
+
+    public String getClientIp() {
+        return clientIp;
+    }
+
+    public void setClientIp(String clientIp) {
+        this.clientIp = clientIp;
+    }
 }

+ 1 - 1
settings.gradle

@@ -1,3 +1,3 @@
-include ':app', ':common', ':welcome', ':resource', ':middleware', ':extra'
+include ':app', ':common', ':welcome', ':resource', ':middleware'
 
 include ':lcd_board'