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 @@
-
-
-
-
-
-
+ android:orientation="vertical">
-
+ android:layout_height="match_parent"
+ android:background="#F5F5F5"
+ android:orientation="vertical">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/src/Logistics/app/src/main/res/values/style.xml b/src/Logistics/app/src/main/res/values/style.xml
index 90bd43d..3fbeb84 100644
--- a/src/Logistics/app/src/main/res/values/style.xml
+++ b/src/Logistics/app/src/main/res/values/style.xml
@@ -19,4 +19,22 @@
- center
- @color/blue
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Logistics/app/src/main/res/values/themes.xml b/src/Logistics/app/src/main/res/values/themes.xml
index 408c620..abfd56f 100644
--- a/src/Logistics/app/src/main/res/values/themes.xml
+++ b/src/Logistics/app/src/main/res/values/themes.xml
@@ -1,7 +1,8 @@
-