博主介绍:本人专注于Android/java/数据库/微信小程序技术领域的开发,以及有好几年的计算机毕业设计方面的实战开发经验和技术积累;尤其是在安卓(Android)的app的开发和微信小程序的开发,很是熟悉和了解;本人也是多年的Android开发人员;希望我发布的此篇文件可以帮助到您;
🍅文章末尾获取源码下载方式🍅
目录
功能演示
一、项目介绍
系统分为四个主要模块,即用户管理模块、快递管理模块、查询及统计模块、推送模块。
1.用户管理模块
A.注册/登陆
管理员、快递代取员、用户可选择各自的角色进行注册并登陆。
B.个人主页
C.我的订单
用户可进行发单、收单操作并随时查看发单、接单的实时情况
D.我的收货地址
E.账户与安全
用户可设置登陆密码,进行手机号码的绑定。
2.快递管理模块
A.快递公司管理
登记快递公司信息,准确接收快递信息及时签收,保证快件的安全。
B.订单管理
管理员可实时查看用户快递信息,及时发布任务公告,减少用户等待时间。
3.查询及统计模块
A.全部订单
B.已完成订单
C.待完成订单
4.推送模块
A.公告栏
B.信息交流区
C.系统消息提示
二、运行环境
1:客户端使用Android stuido进行开发;
2:服务端后台使用Myeclipse2014进行开发;
3:mysql数据库进行数据存储;
4:需要jdk1.7以上
5:使用雷电模拟器或者Androidstuio自带的模拟器进行运行
三、使用技术
总体设计逻辑和思路:
1:先设计数据库表文件
2:写服务端jsp页面以及写api接口给客户端提供数据
3:完成后台服务端的数据交互,也就是jsp页面数据的存储和显示
4:进行客户端页面的开发;
5:进行客户端对api接口的调用,也就是获取数据库的数据以及在客户端进行显示移动端:
1:使用android原生控件以及xml布局文件来完成界面的显示
2:使用java代码完成功能的数据和逻辑交互
3:使用http网络请求完成数据的请求;
4:使用json数据解析完成客户端数据的回调和显示服务端后台:
1:使用mysql完成数据的存储
2:使用jdbc完成数据库和代码的逻辑交互
3:使用jsp完成网页数据的显示
4:使用java代码完成api接口的编写以及以及数据的回调
四、数据库设计
/*
Navicat MySQL Data Transfer
Source Server : mydata
Source Server Version : 50537
Source Host : localhost:3306
Source Database : campusexpressdb
Target Server Type : MYSQL
Target Server Version : 50537
File Encoding : 65001
Date: 2019-03-08 17:35:46
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for addresstb
-- ----------------------------
DROP TABLE IF EXISTS `addresstb`;
CREATE TABLE `addresstb` (
`addressId` int(11) NOT NULL AUTO_INCREMENT,
`addressMessage` varchar(255) DEFAULT NULL,
`addressUserId` int(11) DEFAULT NULL,
`addressTime` varchar(100) DEFAULT NULL,
PRIMARY KEY (`addressId`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of addresstb
-- ----------------------------
INSERT INTO `addresstb` VALUES ('1', '西安市雁塔区', '106', '2019-03-07 11:53');
INSERT INTO `addresstb` VALUES ('2', '西安市莲湖区', '106', '2019-03-07 11:53');
INSERT INTO `addresstb` VALUES ('3', '上海市徐汇区', '106', '2019-03-07 11:54');
INSERT INTO `addresstb` VALUES ('4', '上海市浦东新区', '106', '2019-03-07 11:55');
INSERT INTO `addresstb` VALUES ('5', '北京市', '114', '2019-03-07 15:09');
INSERT INTO `addresstb` VALUES ('6', '上海市', '114', '2019-03-07 15:09');
INSERT INTO `addresstb` VALUES ('7', '我的地址信息', '106', '2019-03-07 18:33');
-- ----------------------------
-- Table structure for mailingtb
-- ----------------------------
DROP TABLE IF EXISTS `mailingtb`;
CREATE TABLE `mailingtb` (
`mailingId` int(11) NOT NULL AUTO_INCREMENT,
`mailingTitle` varchar(255) DEFAULT NULL,
`mailingSendUserName` varchar(255) DEFAULT NULL,
`mailingSendUserPhone` varchar(255) DEFAULT NULL,
`mailingStartAddress` varchar(255) DEFAULT NULL,
`mailingEndAddress` varchar(255) DEFAULT NULL,
`mailingMessage` varchar(255) DEFAULT NULL,
`mailingUserId` varchar(11) DEFAULT NULL,
`mailingUserName` varchar(255) DEFAULT NULL,
`mailingTime` varchar(100) DEFAULT NULL,
PRIMARY KEY (`mailingId`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of mailingtb
-- ----------------------------
INSERT INTO `mailingtb` VALUES ('1', '书籍物品', '呆呆的home', '15249248888', '西安市莲湖区', '上海市浦东新区', '物品比较重要,麻烦一块快一点帮我寄出!', '106', '小丸子', '2019-03-07 13:54');
INSERT INTO `mailingtb` VALUES ('2', '衣服物品', '呆呆的home', '15249248888', '西安市雁塔区', '上海市浦东新区', '物品比较重要,麻烦一块快一点帮我寄出!', '106', '小丸子', '2019-03-07 14:09');
INSERT INTO `mailingtb` VALUES ('4', '电脑', '呆呆的home', '15249248888', '北京市', '上海市', '物品比较重要,麻烦一块快一点帮我寄出!', '114', '小花', '2019-03-07 15:10');
INSERT INTO `mailingtb` VALUES ('5', '书籍物品66', '呆呆的home', '15249248888', '上海市浦东新区', '我的地址信息', '物品比较重要,麻烦一块快一点帮我寄出!', '106', '小丸子', '2019-03-07 18:34');
INSERT INTO `mailingtb` VALUES ('9', '电子设备', '小多多', '15249248888', '西安市莲湖区', '上海市浦东新区', '我的东西需要寄件', '106', '小丸子', '2019-03-08 16:57');
-- ----------------------------
-- Table structure for ordermsg
-- ----------------------------
DROP TABLE IF EXISTS `ordermsg`;
CREATE TABLE `ordermsg` (
`orderId` int(50) NOT NULL AUTO_INCREMENT,
`orderMessageId` varchar(50) DEFAULT NULL,
`orderMessageName` varchar(255) DEFAULT NULL,
`orderMessageMoney` varchar(255) DEFAULT NULL,
`orderUserId` varchar(100) DEFAULT NULL,
`orderUserName` varchar(255) DEFAULT NULL,
`orderTime` varchar(100) DEFAULT NULL,
PRIMARY KEY (`orderId`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of ordermsg
-- ----------------------------
-- ----------------------------
-- Table structure for qiangdantb
-- ----------------------------
DROP TABLE IF EXISTS `qiangdantb`;
CREATE TABLE `qiangdantb` (
`qiangdanId` int(50) NOT NULL AUTO_INCREMENT,
`qiangdanUserId` varchar(100) DEFAULT NULL,
`qiangdanMessgaeId` varchar(100) DEFAULT NULL,
`qiangdanMessgaeUserId` varchar(11) DEFAULT NULL,
`qiangdanType` varchar(255) DEFAULT NULL,
`qiangdanTime` varchar(100) DEFAULT NULL,
`qiangdanMoney` varchar(255) DEFAULT NULL,
PRIMARY KEY (`qiangdanId`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of qiangdantb
-- ----------------------------
INSERT INTO `qiangdantb` VALUES ('8', '99', '5', '106', '已取件', '2019-03-08 15:44', '21');
INSERT INTO `qiangdantb` VALUES ('10', '99', '4', '114', '已取件', '2019-03-08 15:52', '30');
INSERT INTO `qiangdantb` VALUES ('11', '99', '2', '106', '已取件', '2019-03-08 15:52', '33.0');
INSERT INTO `qiangdantb` VALUES ('12', '99', '9', '106', '已接单', '2019-03-08 16:58', '34.5');
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`userId` int(255) NOT NULL AUTO_INCREMENT,
`userName` varchar(200) CHARACTER SET utf8 NOT NULL,
`userPhone` varchar(100) CHARACTER SET utf8 NOT NULL,
`userPswd` varchar(200) CHARACTER SET utf8 NOT NULL,
`userTime` varchar(300) CHARACTER SET utf8 NOT NULL,
`userType` varchar(255) DEFAULT NULL,
`userNo` varchar(100) DEFAULT NULL,
`userCompanyName` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
`userCompanyAddress` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
`userCompanyMessage` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
PRIMARY KEY (`userId`)
) ENGINE=InnoDB AUTO_INCREMENT=115 DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES ('99', '小明', '15249241234', '123456', '2019-03-06 16:15', '1', 'NO20190214111540', '多多快递送', '西安市雁塔区', '快递员李元的车在蜿蜒的山路上穿行,一个又一个的急转弯,他嘱咐旁边的摄影师刘禹扬将之用宝丽来相机拍下来;');
INSERT INTO `user` VALUES ('106', '小丸子', '15249249696', '123456', '2019-03-06 17:03', '2', 'NO20190214111542', null, null, null);
INSERT INTO `user` VALUES ('113', 'daidai', '15249245656', '123456', '2019-03-06 16:01', '2', 'NO20190215160138', null, null, null);
INSERT INTO `user` VALUES ('114', '小花', '15249247878', '123456', '2019-03-07 15:09', '2', 'NO20190307150915', null, null, null);
五、部分代码
1:寄件详情界面
public class JieDanMessageActivity extends BaseActivity {
MailingModel intersetModel;
// title
private TextView mTvTitle;
// 返回
private ImageView mIvBack;
// 查询按钮
private TextView mtvMessagetitle;
private TextView mtvcontent;
private Button mbtnPay;
private TextView mtvShopPrice;
private ImageView guide_image;
private ScrollView mslView;
private TextView mIvStu;
private TextView mtv1,mtv2,mtv3,mtv4;
private EditText jiedanMoney;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_jiedan);
initWidget();
initData();
}
@Override
public void initWidget() {
jiedanMoney= (EditText) findViewById(R.id.jiedanMoney);
mtv1 = (TextView)findViewById(R.id.mtv1);
mtv2 = (TextView)findViewById(R.id.mtv2);
mtv3 = (TextView)findViewById(R.id.mtv3);
mtv4 = (TextView)findViewById(R.id.mtv4);
mIvStu = (TextView)findViewById(R.id.mIvStu);
mslView = (ScrollView) findViewById(R.id.mslView);
mbtnPay = (Button) findViewById(R.id.mbtnPay);
mbtnPay.setOnClickListener(this);
mtvShopPrice = (TextView) findViewById(R.id.mtvShopPrice);
mtvShopPrice.setOnClickListener(this);
guide_image = (ImageView) findViewById(R.id.guide_image);
mtvMessagetitle = (TextView) findViewById(R.id.mtvMessagetitle);
mtvcontent = (TextView) findViewById(R.id.mtvcontent);
mIvBack = (ImageView) findViewById(R.id.mIvBack);
mTvTitle = (TextView) findViewById(R.id.mTvTitle);
mTvTitle.setText("寄件详情");
mIvBack.setVisibility(View.VISIBLE);
mIvBack.setOnClickListener(this);
mIvStu.setVisibility(View.GONE);
mIvStu.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.mIvBack:
JieDanMessageActivity.this.finish();
break;
case R.id.mbtnPay:
// UserModel userModel = (UserModel) MemberUserUtils.getBean(this, "user_messgae");
// if(userModel.getUserType().equals("2")){
// CustomToast.showToast(JieDanMessageActivity.this,"非快递代员不能接单!");
// return;
// }
if (TextUtils.isEmpty(jiedanMoney.getText().toString())) {
ToastUtil.ShowCentre(this, "请输入运费金额");
return;
}
addMessage(true);
break;
}
}
@SuppressLint("SetTextI18n")
@Override
public void initData() {
intersetModel = (MailingModel) this.getIntent().getSerializableExtra("msg");
mtvMessagetitle.setText(intersetModel.getMailingTitle());
mtv1.setText("用户:" + intersetModel.getMailingSendUserName());
mtv2.setText("手机:" + intersetModel.getMailingSendUserPhone());
mtv3.setText("寄件地址:" + intersetModel.getMailingStartAddress());
mtv4.setText("收件地址:" + intersetModel.getMailingEndAddress());
mtvcontent.setText(intersetModel.getMailingMessage());
mtvShopPrice.setText("时间:"+intersetModel.getMailingTime());
if (intersetModel.isMailingState()) {
mbtnPay.setBackgroundResource(R.drawable.btn_no_huimsg);
mbtnPay.setFocusable(false);
mbtnPay.setClickable(false);
mbtnPay.setText("已接单");
}
}
private void addMessage(boolean isShow) {
AjaxParams params = new AjaxParams();
params.put("action_flag", "addQiangDan");
params.put("qiangdanUserId", MemberUserUtils.getUid(this));
params.put("qiangdanMessgaeUserId", intersetModel.getMailingUserId());
params.put("qiangdanMessgaeId", intersetModel.getMailingId()+"");
params.put("qiangdanType", "已接单");
params.put("qiangdanMoney", jiedanMoney.getText().toString());
httpPost(Consts.URL + Consts.APP.MessageAction, params, Consts.actionId.resultFlag, isShow, "正在领养...");
}
@Override
protected void callBackSuccess(ResponseEntry entry, int actionId) {
super.callBackSuccess(entry, actionId);
switch (actionId) {
case Consts.actionId.resultFlag:
MailAdminObservable.getInstance().notifyStepChange("ok");
TipObservable.getInstance().notifyStepChange("ok");
CustomToast.showToast(JieDanMessageActivity.this, entry.getRepMsg());
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
finish();
}
}, 2000);
break;
}
}
@Override
protected void callBackAllFailure(String strMsg, int actionId) {
super.callBackAllFailure(strMsg, actionId);
ToastUtil.show(JieDanMessageActivity.this, strMsg);
}
}
六、浏览更多Android毕业设计
毕业设计-基于android的租房信息发布平台的APP_信息发布app源码_Android毕业设计源码的博客-CSDN博客
毕业设计-基于android选课系统的设计与实现_android学生选课系统_Android毕业设计源码的博客-CSDN博客
毕业设计之校园一卡通管理系统的设计与实现_一卡通管理系统实现_Android毕业设计源码的博客-CSDN博客
基于Android的校园二手闲置物品交易系统设计与实现_基于android的二手交易平台_Android毕业设计源码的博客-CSDN博客
基于androidstudio校园快递APP系统的设计与实现_android studio论文_Android毕业设计源码的博客-CSDN博客
基于android的商城购物定制APP_安卓开发购物app_Android毕业设计源码的博客-CSDN博客
更多毕业设计可以浏览我的个人主页哦!
七、源码下载
大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取联系方式👇🏻👇🏻👇🏻
https://download.csdn.net/download/u014388322/88192147