From 939e826907db2aa7d1adc6f8e50143424a335787 Mon Sep 17 00:00:00 2001 From: Li Tianhong <1225674957@qq.com> Date: Fri, 8 Apr 2022 11:22:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B3=A8=E5=86=8C=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Logistics/.idea/misc.xml | 6 +- .../com/example/logistics/dao/goodDao.java | 84 ++++++++++++++++++ .../com/example/logistics/dao/userDao.java | 8 +- .../com/example/logistics/entity/Good.java | 53 ++++++++++++ .../example/logistics/tools/DBOpenHelper.java | 28 ++++++ .../example/logistics/ui/MainActivity.java | 6 ++ .../com/example/logistics/ui/MyFragment1.java | 72 ++++++++++------ .../main/res/drawable/border_input_box.xml | 13 +++ .../src/main/res/drawable/button_shape.xml | 13 +++ .../app/src/main/res/layout/activity_menu.xml | 17 +--- .../src/main/res/layout/activity_sign_up.xml | 2 - .../app/src/main/res/layout/my_fragment1.xml | 85 ++++++++++++++----- .../app/src/main/res/values/style.xml | 18 ++++ .../app/src/main/res/values/themes.xml | 5 +- src/Logistics/build.gradle | 1 + 15 files changed, 340 insertions(+), 71 deletions(-) create mode 100644 src/Logistics/app/src/main/java/com/example/logistics/dao/goodDao.java create mode 100644 src/Logistics/app/src/main/java/com/example/logistics/entity/Good.java create mode 100644 src/Logistics/app/src/main/java/com/example/logistics/tools/DBOpenHelper.java create mode 100644 src/Logistics/app/src/main/res/drawable/border_input_box.xml create mode 100644 src/Logistics/app/src/main/res/drawable/button_shape.xml diff --git a/src/Logistics/.idea/misc.xml b/src/Logistics/.idea/misc.xml index 52b23a3..5799ea6 100644 --- a/src/Logistics/.idea/misc.xml +++ b/src/Logistics/.idea/misc.xml @@ -9,8 +9,12 @@ + + + + @@ -18,7 +22,7 @@ - + diff --git a/src/Logistics/app/src/main/java/com/example/logistics/dao/goodDao.java b/src/Logistics/app/src/main/java/com/example/logistics/dao/goodDao.java new file mode 100644 index 0000000..e3a2183 --- /dev/null +++ b/src/Logistics/app/src/main/java/com/example/logistics/dao/goodDao.java @@ -0,0 +1,84 @@ +package com.example.logistics.dao; + +import android.app.AlertDialog; +import android.content.Context; +import android.os.Looper; +import android.util.Log; + +import com.example.logistics.tools.DBOpenHelper; +import com.example.logistics.tools.MD5Utils; +import com.example.logistics.ui.MainActivity; +import com.example.logistics.ui.MenuActivity; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.HashMap; + +public class goodDao { + + private static final String TAG = "goodDao"; + + public int search(String id, String phonenum, Context context){ + HashMap map = new HashMap<>(); + + Connection connection = DBOpenHelper.getConn(); + + int msg = 0; + try{ + String sql = "select * from goods where id = ?"; + + if(connection != null){ + PreparedStatement ps = connection.prepareStatement(sql); + if(ps != null){ + Log.e(TAG, "id: " + id); + ps.setInt(1,Integer.parseInt(id)); + ResultSet rs = ps.executeQuery(); + + int count = rs.getMetaData().getColumnCount(); + while(rs.next()){ + for(int i = 1; i <= count; i++){ + String field = rs.getMetaData().getColumnName(i); + map.put(field, rs.getString(field)); + } + } + connection.close(); + ps.close(); + if(map.size() != 0){ + StringBuilder s = new StringBuilder(); + for(String key:map.keySet()){ + if(key.equals("phonenum")){ + if(phonenum.equals(map.get(key))){ + msg = 1; //phonenum correct + AlertDialog.Builder builder = new AlertDialog.Builder(context); + builder.setTitle("快件位置"); + builder.setMessage("\n第 "+ map.get("shelfnum")+ " 号货架\n第 " + map.get("floornum")+ " 层"); + Looper.prepare(); + builder.show(); + Looper.loop(); + }else{ + msg = 2; //phonenum incorrect + } + break; + } + } + }else{ + Log.e(TAG, "result is null"); + msg = 3; //result is null + } + }else{ + Log.e(TAG, "ps is null"); + msg = 0; + } + }else{ + Log.e(TAG, "connection is null"); + msg = 0; + } + }catch (Exception e){ + e.printStackTrace(); + Log.d(TAG, "search bug: " + e.getMessage()); + msg = 0; + } + return msg; + } +} diff --git a/src/Logistics/app/src/main/java/com/example/logistics/dao/userDao.java b/src/Logistics/app/src/main/java/com/example/logistics/dao/userDao.java index 020590e..bd3bd0d 100644 --- a/src/Logistics/app/src/main/java/com/example/logistics/dao/userDao.java +++ b/src/Logistics/app/src/main/java/com/example/logistics/dao/userDao.java @@ -3,8 +3,8 @@ package com.example.logistics.dao; import android.util.Log; import com.example.logistics.entity.User; -import com.example.logistics.mysqlconnection.DBOpenHelper; -import com.google.android.material.behavior.HideBottomViewOnScrollBehavior; +import com.example.logistics.tools.DBOpenHelper; +import com.example.logistics.tools.MD5Utils; import java.sql.PreparedStatement; import java.sql.SQLException; @@ -41,7 +41,7 @@ public class userDao { } connection.close(); ps.close(); - + password = MD5Utils.md5(password); if(map.size() != 0){ StringBuilder s = new StringBuilder(); for(String key:map.keySet()){ @@ -114,7 +114,7 @@ public class userDao { if(ps != null){ ps.setString(1, user.getUserName()); - ps.setString(2, user.getPassWord()); + ps.setString(2, MD5Utils.md5(user.getPassWord())); ps.setString(3, user.getPhoneNum()); int rs = ps.executeUpdate(); diff --git a/src/Logistics/app/src/main/java/com/example/logistics/entity/Good.java b/src/Logistics/app/src/main/java/com/example/logistics/entity/Good.java new file mode 100644 index 0000000..e2e5c30 --- /dev/null +++ b/src/Logistics/app/src/main/java/com/example/logistics/entity/Good.java @@ -0,0 +1,53 @@ +package com.example.logistics.entity; + +public class Good { + private int id; + private String phoneNum; + private int shelfNum; + private int floorNum; + private String time; + + public Good(){ + + } + + public int getId(){ + return id; + } + + public void setId(int id){ + this.id = id; + } + + public String getPhoneNum(){ + return phoneNum; + } + + public void setPhoneNum(String phoneNum){ + this.phoneNum = phoneNum; + } + + public int getShelfNum(){ + return shelfNum; + } + + public void setShelfNum(int shelfNum){ + this.shelfNum = shelfNum; + } + + public int getFloorNum(){ + return floorNum; + } + + public void setFloorNum(int floorNum){ + this.floorNum = floorNum; + } + + public String getTime(){ + return time; + } + public void setTime(String time){ + this.time = time; + } + +} diff --git a/src/Logistics/app/src/main/java/com/example/logistics/tools/DBOpenHelper.java b/src/Logistics/app/src/main/java/com/example/logistics/tools/DBOpenHelper.java new file mode 100644 index 0000000..c561dbb --- /dev/null +++ b/src/Logistics/app/src/main/java/com/example/logistics/tools/DBOpenHelper.java @@ -0,0 +1,28 @@ +package com.example.logistics.tools; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + +public class DBOpenHelper { + private static String diver = "com.mysql.jdbc.Driver"; + //加入utf-8是为了后面往表中输入中文,表中不会出现乱码的情况 + private static String url = "jdbc:mysql://49.235.83.73:3306/logistics?characterEncoding=utf-8"; + private static String user = "root";//用户名 + private static String password = "123";//密码 + /* + * 连接数据库 + * */ + public static Connection getConn(){ + Connection conn = null; + try { + Class.forName(diver); + conn = (Connection) DriverManager.getConnection(url,user,password);//获取连接 + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } catch (SQLException e) { + e.printStackTrace(); + } + return conn; + } +} \ No newline at end of file diff --git a/src/Logistics/app/src/main/java/com/example/logistics/ui/MainActivity.java b/src/Logistics/app/src/main/java/com/example/logistics/ui/MainActivity.java index accf321..77f2293 100644 --- a/src/Logistics/app/src/main/java/com/example/logistics/ui/MainActivity.java +++ b/src/Logistics/app/src/main/java/com/example/logistics/ui/MainActivity.java @@ -2,6 +2,7 @@ package com.example.logistics.ui; import com.example.logistics.R; import com.example.logistics.dao.userDao; +import com.example.logistics.tools.MD5Utils; import android.annotation.SuppressLint; import android.app.Activity; @@ -15,9 +16,13 @@ import android.widget.Button; import android.widget.EditText; import android.widget.Toast; +import java.text.SimpleDateFormat; +import java.util.Date; + public class MainActivity extends Activity { + private int islogin = 0; // 调用Actvity @Override protected void onCreate(Bundle savedInstanceState) { @@ -75,6 +80,7 @@ public class MainActivity extends Activity { Toast.makeText(getApplicationContext(), "登录失败", Toast.LENGTH_SHORT).show(); }else if(msg.what == 1){ Toast.makeText(getApplicationContext(), "登录成功", Toast.LENGTH_SHORT).show(); + islogin = 1; }else if(msg.what == 2){ Toast.makeText(getApplicationContext(), "密码错误", Toast.LENGTH_SHORT).show(); }else if(msg.what == 3){ diff --git a/src/Logistics/app/src/main/java/com/example/logistics/ui/MyFragment1.java b/src/Logistics/app/src/main/java/com/example/logistics/ui/MyFragment1.java index 8577436..46caef0 100644 --- a/src/Logistics/app/src/main/java/com/example/logistics/ui/MyFragment1.java +++ b/src/Logistics/app/src/main/java/com/example/logistics/ui/MyFragment1.java @@ -1,25 +1,34 @@ package com.example.logistics.ui; +import android.annotation.SuppressLint; +import android.app.AlertDialog; import android.content.Context; +import android.content.Intent; import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; +import android.widget.EditText; import android.widget.TextView; +import android.widget.Toast; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import com.example.logistics.R; +import com.example.logistics.dao.goodDao; +import com.example.logistics.dao.userDao; public class MyFragment1 extends Fragment implements View.OnClickListener{ private Context mContext; - private Button btn_one; - private Button btn_two; - private Button btn_three; - private Button btn_four; + private Button mButton; + private EditText mPickUpCode; + private EditText mPhoneNum; public MyFragment1(){ @@ -29,34 +38,47 @@ public class MyFragment1 extends Fragment implements View.OnClickListener{ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.my_fragment1,container,false); - btn_one = (Button)view.findViewById(R.id.btn_one); - btn_two = (Button)view.findViewById(R.id.btn_two); - btn_three = (Button)view.findViewById(R.id.btn_three); - - btn_one.setOnClickListener(this); - btn_two.setOnClickListener(this); - btn_three.setOnClickListener(this); + mButton = (Button)view.findViewById(R.id.Sea_Button); + mPickUpCode = (EditText)view.findViewById(R.id.Sea_PickUpCode); + mPhoneNum = (EditText)view.findViewById(R.id.Sea_PhoneNum); + mButton.setOnClickListener(this); + mContext = getActivity(); return view; } @Override public void onClick(View v) { switch(v.getId()){ - case R.id.btn_one: - TextView mTextViewDeal = (TextView)getActivity().findViewById(R.id.tab_menu_deal_num); - mTextViewDeal.setText("11"); - mTextViewDeal.setVisibility(View.VISIBLE); - break; - case R.id.btn_two: - TextView mTextViewPoi = (TextView)getActivity().findViewById(R.id.tab_menu_poi_num); - mTextViewPoi.setText("99"); - mTextViewPoi.setVisibility(View.VISIBLE); - break; - case R.id.btn_three: - TextView mTextViewMore = (TextView)getActivity().findViewById(R.id.tab_menu_more_num); - mTextViewMore.setText("999+"); - mTextViewMore.setVisibility(View.VISIBLE); + case R.id.Sea_Button: + search(v); break; } } + + public void search(View view){ + + new Thread(){ + @Override + public void run(){ + goodDao goodDao = new goodDao(); + int msg = goodDao.search(mPickUpCode.getText().toString().trim(), mPhoneNum.getText().toString().trim(), getActivity()); + Log.e("Main", "msg"); + hand1.sendEmptyMessage(msg); + } + }.start(); + } + + @SuppressLint("HandlerLeak") + final Handler hand1 = new Handler(){ + @Override + public void handleMessage(Message msg){ + if(msg.what == 0){ + Toast.makeText(mContext, "搜索失败", Toast.LENGTH_SHORT).show(); + }else if(msg.what == 2){ + Toast.makeText(mContext, "手机尾号错误", Toast.LENGTH_SHORT).show(); + }else if(msg.what == 3){ + Toast.makeText(mContext, "取件码不存在", Toast.LENGTH_SHORT).show(); + } + } + }; } diff --git a/src/Logistics/app/src/main/res/drawable/border_input_box.xml b/src/Logistics/app/src/main/res/drawable/border_input_box.xml new file mode 100644 index 0000000..dbb456e --- /dev/null +++ b/src/Logistics/app/src/main/res/drawable/border_input_box.xml @@ -0,0 +1,13 @@ + + + + + + + diff --git a/src/Logistics/app/src/main/res/drawable/button_shape.xml b/src/Logistics/app/src/main/res/drawable/button_shape.xml new file mode 100644 index 0000000..2b2d505 --- /dev/null +++ b/src/Logistics/app/src/main/res/drawable/button_shape.xml @@ -0,0 +1,13 @@ + + + + + + + + \ No newline at end of file diff --git a/src/Logistics/app/src/main/res/layout/activity_menu.xml b/src/Logistics/app/src/main/res/layout/activity_menu.xml index 402d6ff..4fd8e89 100644 --- a/src/Logistics/app/src/main/res/layout/activity_menu.xml +++ b/src/Logistics/app/src/main/res/layout/activity_menu.xml @@ -7,24 +7,9 @@ - - - - - -